ArcGIS制作中国年降水量分布图
1
概述
今天给大家分享如何在地图上增加中国年降水年插值。
要做中国年降水量的空间分布图,首要的问题是如何获取降水量数据,我们从中国气象数据网(data.cma.cn)下载中国国际地点交换站的降水量数据。
2
数据准备及处理
中国气象数据网(data.cma.cn),在中国地面国际交换点气候资料日值数据集中下载中国气象站20-20时降水量数据,这里以2011年为例包括66430条数据,并下载源数据。
中国气象数据网
原数据中包括中国地面气候资料国际交换站数据集台站信息,其中有区站编号、站名、经纬度、海拔高度等信息。站点的经纬度信息是建立空间关系的基础。国际交换站从建站到2007年资料台站数为206个。
降水量数据
在下到的数据中,有一些值如999、9999、32700等是填充值,要先去掉。接下来,这些数据存放的是每个台站365天的降水量,所以先要统计得到每个站的年降水量数据。在Excel中打开降水量数据表,选中所有数据,点击插入?->数据透视表,插入一个新的数据透视表。
数据整理
在数据透视表中勾上“台站”、“月”和“20-20降水量(无填充值)”。并拖到如下图所示的位置,在“数值”一栏中设置“求各项”,这样就统计出了每个气象站点的年降水量值。将这个表整理,并将降水量由0.1mm处理成1mm为单位的数据。
3
导入站点数据
在下载到的站点信息中提供了每个站点的经纬度坐标,这样我们可以利用ArcMap->File->Add Data->Add XY Data将站点导入ArcMap中,注意导入时设置坐标系为WGS84。用Data->ExportData将站点导出成shp文件,命名为“气象站点.shp”。
导入站点数据
使用Data Managerment Tools->Project andTransformations->Features->Project工具将点数据投影到Albers平面上(中央经线105度,标准纬线25度、45度。生成气象站点_Project文件)。
在气象站点_Project右击->Joins and Relates->Join,使用台站号作为关联ID,将气象站点与每个站点的降水值关联起来。从关联结果可以看出,只有181个(总共206个)关联成功了,这是因为有些气象站点被废弃不用了。
关联气象站点与降水量值
接下来我们便要用这181个样本点的数据插值得到全国的年降水量分布。空间降水插值一直是个难题,影响降水的因素很多,如经度、纬度、高程、坡度、坡向、离水体的距离等,建立一个通用的降水插值模型几乎是不可能的。空间降水插值方法很多,优缺点和适用性不同。总体上,降水的空间插值方法有3类:整体插值法(趋势面法和多元回归法等) 、局部插值法(泰森多边形法、反距离加权法、克里金插值法和样条法)和混合插值法(整体插值法和局部插值法的综合) 。何红艳(2005)比较了各种降水插值的优缺点:
插值方法研究
在这里,克里金插值能达到较高的精度,而为了能考虑高程的因素,我们选择使用协同克里金插值。协同克里金插值的一个前提是,降水量与高程应该有相关性。为此,下一步我们要验证年降水量与高程是不是相关的。
在我们关联的降水量数据以后,气象站点的属性表里就有了站点的高程和站点的年降水量。把属性表导出,并用SPSS检验两者的相关性,结果表明,站点的年降水量与高程显著相关,于是,我们便可以利用站点本身附带的高程数据对降水量进行插值了。
相关性检验
4
降水量插值
在工具栏空白处右击打开Geostatistical Analyst工具条,选择Geostatistical Wizard,每一步的设置如下。
降水量插值
第一步:在“Methods”中选择“Kriging/CoKriging”,Dataset中选择“气象站点_Project”,DataField选择“降水量_毫米”,Dataset 2中选择“气象站点_Project”,DataField选择“海拔高度”。
海拔高度
第二步:由经验知我国的降水由东南往西北会递减,在这里选择“First”以剔除降水分布的趋势分布(一次)。
剔除降水分布的趋势分布
第三步:年降水量分布的趋势(一次趋势面)
年降水量分布的趋势
第四步:设置Number of Lags为24。
Number of Lags
第五步:设置SectorType为四方向
设置SectorType
第六步:交叉验证
由交叉验证结果可以看出,插值误差为0.899(毫米),均方根误差162.0961,平均标准误差为156.8678,两者比较接近。标准均方根误差为1.039048。点击Finish完成插值。
插值结果导出。插值所覆盖的范围默认只包含气象点的最小外包矩形,要把它扩展到整个中国区域。双击插值产生的图层在Layer Properties对话框中切换到“Extent”选项卡,在“Set the Extent to ”选择“the rectangular extent of 中国政区”。
交叉验证
在插值结果图层上右击,选择Data->Export to Raster,将结果导出成栅格数据。并使用Spatial Analyst->Extraction->Extract byMask将中国区域提取出来,结果如图:
效果图
到这里,我们就完成了中国年降水量的插值了。
5
地图整饬
降水量分级:注意,这一步我们从克里金插值得到的结果做起,而不是从导出的栅格数据做起,因为ArcGIS将插值结果导出栅格时会有一些小小的问题(从图2-16的西藏地区的结果可以看出,当然这也可能是样本点的问题)。从插值结果可以看出,年降水量在1.68-1957.28mm的范围内,我们按照母100毫米分一级的等距分级法进行分级。双击插值结果图层打开Layer Properties对话框,在Symbology选项卡中选择Classified方法,点击“Classfify…”,选择“Manual”,Classes:20,在“Break”中手动输入从100-2000。
降水量分级
点击OK,选择从蓝色到红色的渐变,结果如图。
结果导出成矢量文件
右击选择Data->Export to Vector,在“Contour Type”中选择“FILLEDCONTOUR”,导出文件命名为降水量。
双击降水量图层,设置如下。
分级设色
点击确定,这里有两种方法,使得只显示中国范围内的数据。
方法一:动态裁剪法。双击数据框Layers,设置图层的裁剪范围。
动态裁剪法
方法二:矢量转栅格。将降水量的矢量数据转为栅格数据,并用Spatial Analyst->Extraction->Extract by Mask将中国区域提取出来。
由于第一种方法每次刷新时都要实时计算显示的范围,速度很慢,本文使用方法二。结果如图。
矢量转栅格
用Spatial Analyst->Surface->Contour,设置间隔100,生成等降水量线。并使用Maplex引擎对其进行标注。ArcGIS10.1默认使用Maplex标注引擎,在ArcGIS10中,可以通过打开DataFrame Properties对话框在General选项卡中设置标注引擎为Maplex。
双击等降水量线在图层属性对话框中切换到Labels选项卡,设置标注的字体和颜色,点击“Placement Properties”,在“Label Position”中设置标注方式为“Contour Placement”;在“Label Density”中勾选“Repeat Label”并设置适当的间隔;效果如图。
生成等降水量线
复制一份数据框Layers,粘贴,并调整到适当大小。
添加南海诸岛
在左下角放置图例,图例的类型是“Legend Item Selector”中的第一种。
添加图例
在左上角添加比例尺和投影信息。
添加比例尺和投影信息
可以再添加对我国年降水量分布特征的说明性文字,ArcGIS中可以插入对象,将Word文档插入到MXD文档中,但是在导出图片的时候会有一些问题,所以本文把这些文字做成了图片插入。另外,还可以在EXCEL中统计年降水量最多或最小的站点的数据,做成图片插入MXD文档中。最后添加一些制作人的信息。
添加其它要素
到现在为止,所有的工作都完成了,File->Export Map把图片导出成JPG格式,设置下分辨率300dpi,最终的结果如下。
出图
6
总结
制作一幅精美的地图要考虑很多的因素,一些很小的细节都要考虑到,涉及从数据到处理到分析的各个方面。
ArcGIS为精细化制图提供了一个很好的平台,当然本文的最终结果还有很多可以改进的地方,比如有的地方样本点太少(如西藏,台湾),导致这些地方的插值结果误差较大(涉及到数据的问题),本文使用的协同克里金插值是否是正确的需要进一步考证(涉及到降水的插值方法),地图的配色是否美观等等。
当然ArcGIS也还需要一些改进,比如使用Geostatistical Wizard产生的插值中间结果导出成栅格文件时会产生一些数据异常(与导出的矢量数据结果不一致,这也是本文导出成矢量再转栅格的原因),使用数据框的动态裁剪功能速度太慢。
Maplex还是没有实现把字标注在线上并且在字的底下不显示那条线(看上去就是线被打断成两截)的功能;ArcGIS在插入对象后导出图片时对象那一块会没有显示;对段落文本的支持不够等。
声明:
本资源从网上下载,只限于科研使用,勿用于商业。本号对文章内容观点保持中立态度,如涉及内容、版权和其他问题,请与本号联系,我们将在第一时间处理。
收集资料不易,你的每个【在看】我都当成了喜欢!