ArcGIS数据生产与精细化制图之中国年降水量分布图的制作

更新时间:2023-11-22 04:55:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

ArcGIS数据生产与精细化制图之中国年降水量分布

图的制作

本文以中国年降水量分布图的制作为例详细地介绍了数据的获取、预处理、空间降水插值直到最后成图的整个过程。共分为三个部分:

第一部分:底图的制作。这一部分介绍衬托专题图的底图的制作,这一部分的结果还可以作为其它专题图的底图;

第二部分:中国年降水量插值。这一部分介绍用ArcGIS的空间插值方法将气象站点的降水量数据插值得到全国范围内的降水分布;

第三部分:地图整饰。这一部分介绍添加地图要素和美化及最后出图。

第一部分:底图的制作

Step1-1:数据准备

总共包含五个文件:

bou2_4l.shp:中国政区的线文件,在这个线文件里包含了南海的九段线 bou2_4p.shp:中国政区的面文件 rivers.shp:世界主要河流 cntry02.shp:世界国家面文件

省会城市.shp:中国省会城市点文件 注意:ITT提供的两个文件没有设置坐标系,需要先在Catalog中将这两个文件(rivers.shp和cntry02.shp)的地理坐标系设为WGS84。 Step 1-2:设置投影

打开ArcMap将这些文件添加进去,接下来我们要给Dataframe设置一个投影坐标系。由于我们要做的是中国全国的降水量分布,我们使用等面积的Albers投影。右击Layers->Properties->Coordinate System选项卡->new Project System,选择Albers,设置中央经线105,标准纬线25度,47度,在地理坐标系中选择WGS84。设置如图:

1

Step 1-3:放大图我们可以看到,沿海一带有很多面积很小的岛屿,为了制图的美观,我们需要删掉一些面积小的岛屿,但是在这之前,我们必需把南海诸岛以及台湾周围的岛屿保留下来(原因大家都懂的)。

关闭其它图层(只留下政区图层bou2_4p),开始编辑进入编辑状态,选中南海的那些岛屿以及台湾周边岛屿,如图:

2

在bou2_4p图层上右击选择Selection->Create Layer From Selected Features。将选中的要素创建一个新的图层。

停止编辑,在刚刚产生的图层上右击选择Data->Export Data…,将选择的要素导出,命名为“南海诸岛及其它岛屿.shp”。

3

接下来我们就可以删掉面积小的岛屿了。继续进入编辑状态,打开bou2_4p的属性表,打开Select by Attribute对话框,输入\,点击apply,选中面积为小于0.01的多边形,删除。

Step 1-4:提取出中国的轮廓线

接下来我们要从政区文件(bou2_4p)中提取出中国的轮廓线。这一步的目的是我们要分开中国在陆地上的国界和在海岸线上的国界,因为这两者在制图的时候是不同的。之所不直接用政区线文件提取轮廓是因为经过一些处理以后用面文件提取会更方便(下面会细说);而不用IDL中的国家(cntry02)是因为ITT提供的世界图是他们所认为的世界图(对比一下中国的藏南地区就会发现,在这个世界图上,中国的藏南地区是直接划给印度的,所以我们不

4

用它,只把它作为底图)。

打开Toolbox->Data Management Tools->Features->Polygon to Line,将输出文件命名为“中国线.shp”。确保”Identify and store polygon neighboring information(optional)”选中(保留每条线段两边的多边形信息是下一步提取轮廓线的关键;另外,Feature to Line也能实现面转线的功能,但是没有选项)。

打开“中国线.shp”属性表,选中LEFT_FID=-1或者RIGHT_FID=-1的所有要素,这个时候边界上的所有线要素就被选中了。如前所述的方法,将选中的要素创建图层,并导出成单独的图层,命名为“中国轮廓线.shp”。

Step 1-5:提取陆上国界和海上国界

新建一个点文件(坐标系设为WGS84),进入编辑状态。在辽宁与朝鲜的入海口处、广西与越南的入海口处创建两个点,保存并停止编辑。

5

使用Toolbox->Data Management Tools->Features->Split Line at Point工具,将线在点处打段。并且在编辑状态下,用Merge工具将两部分分别合并在一起;并新建一个字段用以区分陆上国界和海上国界。 Step 1-6:提取出九段线

这一步我们从中国政区的线文件(bou2_4l)中提取出九段线。名称是叫九段线,但是实际上在现在地图出版物中都是10段的。这一步比较简单,在编辑状态下选出这10段线,导出成单独的文件,命名为“九段线.shp”。

到目前为止,我们已经整理出来我们的底图所需要的要素文件: 省会城市(点) 九段线(线) 中国轮廓线(线) 河流(线)

南海诸岛及其它岛屿(面) 中国政区(面) 国家(面)

接下来我们对这些要素进行符号化。 Step 1-7:纸张设置

首先在File->Page and Print Setup中,将纸张调成横向。进入版面视图,适当调整数据框的大小和位置(上面留出写标题的空间,右边留出说明文字的空间),将地图比例尺改为

6

1:25 000 000。

Step 1-8:设置国家层的符号样式

将国家层的填充颜色设为10%灰度,边框宽度0.2,边框颜色为20%灰度。这时,整体如图:

Step 1-9:设置国界线的符号样式

双击“中国轮廓线”图层打开Layer Properties对话框,在Symbology中选择Categories方式,在ValueField中选择国界类型,点击Add all Values。双击陆上国界的符号,打开Symbol Selector对话框,随便选择一种线型符号,点击“Edit Symbol”,打开Symbol Property Editor对话框。

7

对对话框中点击左下的“+”号新建两层。将线型符号的颜色设为50%灰度,线宽0.5,Line Joins为“Round”。第二层的颜色设为Mango(RGB 255,211,127),线宽2,LineJoins设为“Round”,将Line Propeties中的Offset设为1。类似地,第三层的颜色设为Topaz Sand(RGB 255,235,175),线宽4,Line Joins设为“Round”,将Line Propeties中的Offset设

8

为2。点击确定,返回Symbol Selector对话框,可以将刚刚设置的样式保存。

点击确定返回Layer Properties对话框,将海上国界的符号样式设置为:颜色Yogo Blue(RGB 115,178,255),线宽0.4。设置完成后国界线的效果如图:

9

将九段线的符号样式也设置成陆上国界的样式。 Step 1-10:设置省会城市符号

将省会城市的符号类型设置为“Circle 19”,颜色50%灰度,大小6。并右击该图层设置“Label Features”。

Step 1-11:设置河流符号样式

使用ArcToolbox->Cartography Tools->Generalization->Smooth Line工具,将河流光滑。”Smoothing Algorithm”方法选择BEZIER_INTERPOLATION。完成以后设置河流的符号样式为:颜色Cretean Blue(RGB 0,112,255),线宽0.5。为了只让它显示长江和黄河,双击光滑过的河流图层,切换到“Definition Query”选项卡,在Definition Query中输入\= 'Huang He' OR \,点击确定。 Step 1-12:为数据框设置背景颜色

双击数据框“Layers”打开Data Frame Properties对话框,切换到“Frmae”选项卡,在“Background”中选择“Lt Blue”,确定,此时效果如图:

10

Step 1-13:为数据框添加经纬线

双击数据框“Layers”打开Data Frame Properties对话框,切换到“Grids”选项卡,点击“New Grid…”,保持默认一直到Finish。接下来点击“Properties…”打开“Reference System Properties”对话框。

在“Axes”选项卡中,取消”Major Division Ticks”和”Subdivision Ticks”中所有的复选框; 在“Interior Labels”选项卡中,取消”Show interior grid labels”复选框; 在“Labels”选项卡中,设置Label的字体为Times new Roman,8号,“Label Offset”为“-2”pts。点击“Additional Properties”打开“Grid Label Properties”对话框,取消“Show coordinate direction labels”复选框,取消“Show zero minutes”和“Show zero seconds”复选框;

在“Lines”选项卡中,点击Symbol,设置经纬线的符号样式为:颜色Moorea Blue(RGB 0,169,230),线宽0.2;

点击确定,效果如图:

11

Step 1-14:添加北回归线

双击数据框“Layers”打开Data Frame Properties对话框,切换到“Grids”选项卡,点击“New Grid…”,保持默认一直到Finish。点击“Properties…”打开“Reference System Properties”对话框。

在“Lines”选项卡中设置线型为“Dashed 4:4”,颜色40%灰度,线宽0.4; 在“Label”选项卡中取消所有复选框; 在“Intervals”选项卡中如下设置:

12

点击确定。点击菜单”Insert”->”Text”插入“北回归线”四个字,双击这四个字,如下设置:

到现在为止,我们的底图就基本做完了,效果如下图所示。之所以叫基本做完了,是因为,还有重要的南海诸岛没有放上去,但是这一步我们留到最后才做。

13

第二部分:中国年降水量插值

要做中国年降水量的空间分布图,首要的问题是如何获取降水量数据,我们从中国气象科学数据共享服务网(cdc.cma.gov.cn)下载中国国际地点交换站的降水量数据。 Step 2-1:数据准备

中国气象科学数据共享服务网(cdc.cma.gov.cn)。在中国地面国际交换点气候资料日值数据集(本文可以直接利用月值数据集来做)中下载2011年中国气象站20-20时降水量数据,包括66430条数据。并下载元数据。元数据中包括中国地面气候资料国际交换站数据集台站信息,其中有区站编号、站名、经纬度、海拔高度等信息。站点的经纬度信息是建立空间关系的基础(如图1所示)。国际交换站从建站到2007年资料台站数为206个。

14

下载不到数据的请点这里(http://pan.http://www.wodefanwen.com//share/link?shareid=60717&uk=352462598) Step 2-2:数据预处理

在下到的数据中,有一些值如999、9999、32700等是填充值,要先去掉。接下来,这些数据存放的是每个台站365天的降水量,所以先要统计得到每个站的年降水量数据。在Excel中打开降水量数据表,选中所有数据,点击插入->数据透视表,插入一个新的数据透视表。

15

方法二:矢量转栅格。将降水量的矢量数据转为栅格数据,并用Spatial Analyst->Extraction->Extract by Mask将中国区域提取出来。

由于第一种方法每次刷新时都要实时计算显示的范围,速度很慢,帮本文使用方法二。结果如图:

Step 3-4:生成等降水量线

用Spatial Analyst->Surface->Contour,设置间隔100,生成等降水量线。并使用Maplex引擎对其进行标注。ArcGIS10.1默认使用Maplex标注引擎,在ArcGIS10中,可以通过打开

26

Data Frame Properties对话框在General选项卡中设置标注引擎为Maplex。

双击等降水量线在图层属性对话框中切换到Labels选项卡,设置标注的字体和颜色,点击“Placement Properties”,在“Label Position”中设置标注方式为“Contour Placement”;在“Label Density”中勾选“Repeat Label”并设置适当的间隔;效果如图:

Setp 3-5:添加南海诸岛

复制一份数据框Layers,粘贴,并调整到适当大小。

Step 3-6:添加图例

在左下角放置图例,图例的类型是“Legend Item Selector”中的第一种。

27

Step 3-7:添加比例尺和投影信息 在左上角添加比例尺和投影信息。

Step 3-8:添加其它要素

可以再添加对我国年降水量分布特征的说明性文字,ArcGIS中可以插入对象,将Word文档插入到MXD文档中,但是在导出图片的时候会有一些问题,所以本文把这些文字做成了图片插入。另外,还可以在EXCEL中统计年降水量最多或最小的站点的数据,做成图片插入MXD文档中。最后添加一些制作人的信息。

Step 3-9:出图

到现在为止,所有的工作都完成了,File->Export Map把图片导出成JPG格式,设置下分辨

28

率300dpi,最终的结果如下:

总结:制作一幅精美的地图要考虑很多的因素,一些很小的细节都要考虑到,涉及到从数据到处理到分析的各个方面。ArcGIS为精细化制图提供了一个很好的平台。当然本文的最终结果还有很多可以改进的地方,比如有的地方样本点太少(如西藏,台湾),导致这些地方的插值结果误差较大(涉及到数据的问题);本文使用的协同克里金插值是否是正确的需要进一步考证(涉及到降水的插值方法)等等。

当然ArcGIS也还需要一些改进,比如使用Geostatistical Wizard产生的插值中间结果导出成栅格文件时会产生一些数据异常(与导出的矢量数据结果不一致,这也是本文导出成矢量再转栅格的原因);使用数据框的动态裁剪功能速度太慢;Maplex还是没有实现把字标注在线上并且在字的底下不显示那条线(看上去就是线被打断成两截)的功能;ArcGIS在插入对象后导出图片时对象那一块会没有显示;对段落文本的支持不够,等。

当然我也相信,随着GIS的发展,尤其是“普适化”的发展,这些问题都会不断地解决,将会有更多的人更方便地进行制图。

29

拔高度”;

第二步:由经验知我国的降水由东南往西北会递减,在这里选择“First”以剔除降水分布的趋势分布(一次);

第三步:年降水量分布的趋势(一次趋势面)

21

第四步:设置Number of Lags为24

第五步:设置Sector Type为四方向

22

第六步:交叉验证

由交叉验证结果可以看出,插值误差为0.899(毫米),均方根误差162.0961,平均标准误差为156.8678,两者比较接近。标准均方根误差为1.039048。点击Finish完成插值。 Step8:插值结果导出。插值所覆盖的范围默认只包含气象点的最小外包矩形,要把它扩展到整个中国区域。双击插值产生的图层在Layer Properties对话框中切换到“Extent”选项卡,在“Set the Extent to ”选择“the rectangular extent of 中国政区”。

在插值结果图层上右击,选择Data->Export to Raster,将结果导出成栅格数据。并使用Spatial Analyst->Extraction->Extract by Mask将中国区域提取出来,结果如图:

23

到这里,我们就完成了中国年降水量的插值了。

第三部分:地图整饬

Step 3-1:降水量分级

注意,这一步我们从克里金插值得到的结果做起,而不是从导出的栅格数据做起,因为ArcGIS将插值结果导出栅格时会有一些小小的问题(从图2-16的西藏地区的结果可以看出,当然这也可能是样本点的问题)。从插值结果可以看出,年降水量在1.68-1957.28mm的范围内,我们按照母100毫米分一级的等距分级法进行分级。双击插值结果图层打开Layer Properties对话框,在Symbology选项卡中选择Classified方法,点击“Classfify…”,选择“Manual”,Classes:20,在“Break”中手动输入从100-2000:

点击OK,选择从蓝色到红色的渐变,结果如图:

24

Step 3-2:结果导出成矢量文件

右击选择Data->Export to Vector,在“Contour Type”中选择“FILLED CONTOUR”,导出文件命名为降水量。 Step 3-3:分级设色

双击降水量图层,设置如下:

点击确定。这里有两种方法,使得只显示中国范围内的数据: 方法一:动态裁剪法。双击数据框Layers,设置图层的裁剪范围:

25

本文来源:https://www.bwwdw.com/article/0rrv.html

Top