气温插值"/>
利用ANUSPLIN进行气温插值
利用ANUSPLIN进行气象插值步骤详解——以气温为例
1. ANUSPLIN介绍
ANUSPLIN插值软件是澳大利亚国立大学研发的一款专门用于气象插值的一个软件,该方法采用澳大利亚国立大学(Australian National University)首字母和样条函数(splin)结合的方法命名。ANUSPLIN包的目的是提供一种使用薄板平滑样条对有噪声的多变量数据进行透明分析和插值的工具。
本教程以气象站点数据为依据,将高程数据作为协变量,进行空间连续插值。
2.数据的准备及处理
2.1 软件和数据的准备
需要准备的软件和数据有:
- ArcGIS
- SPSS
- Excel
- Notepad++
- ANUSPLIN插值软件(SPLINA.exe & LAPGRD.exe等)
- 全国的DEM数据
- 研究区矢量数据
2.2 数据处理
2.2.1 气象数据的准备和处理
处理流程:①坐标转换 ②气象站展点③选择插值区域④导出插值区域内的站点数据⑤整理数据格式
读者可以通过中国气象数据网获取相应气象数据。
获取的气象数据格式和数据说明如下:
①坐标转换 以2017年12月气温数据为例,我们要将各站点的度和分转换成十进制经纬度坐标,以便空间展示。
将下载的TXT文件用Excel打开进行处理,具体操作如下:
将多余数据删除,仅保留台站号、经度、纬度、海拔和气温数据,然后编辑公式,将十进制经纬度数据替换掉原来的度和分,操作如下:
经度和纬度按照相同的计算公式自动填充后,得到十进制的经纬度信息,将原来数据进行替换,结果如下图:
将其另存为TXT格式,以便在ArcGIS中打开,操作如下:
②在ArcGIS中进行展点 展点过程中的投影信息十分关键,注意不要弄错。
首先加载TXT数据,操作如下:
然后设置图层的地理坐标系和投影坐标系,右击图层后选择属性,在坐标系统中设置投影信息。可以只选择投影坐标系,因为选择投影坐标系之后的地理坐标系会进行自动填充,反之则不能,操作如下:
最后,进行展点。加载DEM数据和研究区矢量数据(此过程不予演示)后,右击txt图层进行展点,操作如下:
展点对投影编辑的时候一定要选择地理坐标系,因为经纬度是地理坐标系的表示方法,选择投影坐标系可能会出差,操作如下:
即可得到全国气象站展点结果
③选择插值区域选择插值的区域一般要比实际研究区大一些,以保证结果的准确性。
首先要建立一个空的面状矢量数据来选择插值范围,并设置好地理坐标系和投影坐标系,操作如下:
数据类型选择多边形:
设置地理坐标系和投影坐标系:
然后要选择插值区域,操作如下:
打开编辑器,选择要编辑的图层:
点击创建要素,选择多边形然后开始选择插值区域:
插值区域一定要大于研究区,其结果大致如下:
④导出插值区域内的站点数据 导出插值区域内的气象站点数据,计算展点的XY坐标,输出插值区域的属性信息。
首先导出气象站点数据,右击展点图层,选择导出数据,存储为矢量格式,操作如下:
选择所有要素类,坐标系统和数据框一致,选择矢量数据集之后导出文件:
然后,添加展点坐标数据属性表中的字段,利用地理几何计算各展点的投影坐标,操作如下:
右击展点图层,打开属性表:
添加字段X和Y,数据类型为双精度:
Y属性与X属性完全一致,故不再演示:
右击X和Y字段,点击地理几何,计算X和Y的投影坐标,单位为米(m):
Y坐标计算过程不再演示:
最后,利用选择工具,选择插值区域内的坐标点,并将属性数据按照TXT形式输出,操作如下:
看到插值区域内的点选中后,打开属性表,对选中数据进行输出:
输出为TXT格式的文件:
⑤整理数据格式 利用spss软件,把插值区域内的数据按照ANUSPLIN所要求的形式进行整理。
首先,打开研究区属性数据导出的TXT文件,转换成UTF-8编码后,用Excel打开,操作如下:
结果如下:
然后打开spss变量视图,按照下图创建变量,再打开数据视图将相应数据粘贴到相应位置,输出格式为.dat的文件。粘贴时注意X和Y的值不是经度和纬度:
粘贴后的结果如下:
导出.dat文件:
气象数据处理完成!
2.2.2 DEM数据的处理
处理流程:①统一投影②裁剪③导出.dat
统一投影操作如下:
输出的坐标系选择投影坐标系:
对DEM数据按照插值区域进行裁剪,操作如下:
③导出.dat 将裁剪后的DEM数据输出为.dat文件,操作如下:
DEM数据准备结束,所有数据准备完成!
3.CMD文件的编写
3.1 splina所需CMD编写及运行
3.1.1 splina所需CMD编写
把splina.exe 和 lapgrd.exe 拷到数据文件夹下,用notepad++软件创建一个TEM1.cmd文件后,即可开始编写CMD文件,下面对各个参数进行解释:
TEM1 //文件名
4 //单位:米
2 //自变量个数(本例为X,Y,最多10个)
1 //协变量,本例为高程
0 //表面协变量个数
0 //表面的样条个数
9191966.0066411 12385966.0066411 0 1 //X最小值 X最大值 有无转换:无转换 单位:米
4299168.6225541 5970168.6225541 0 1 //Y最小值 Y最大值 有无转换:无转换 单位:米
-400 9000 1 1 //高程最小值 高程最大值 转换形式为X/A转换 单位:米
1000 //分辨率为1000米
0 //独立变量转换参数:不转换
2 //样条次数(最小为2)
1 //输出面个数
0 //表面权重:不设置
1 //优化方式:对所有值进行普通平滑
1 //平滑方式:GCV;2-MSE;3-固定值;4-GML
TEM.dat //进行插值的文件名
400 //数据最大数量(要多于实际个数)
6 //地点值位数
(A6,2F14.6,F6.1,F6.2) //数据格式(由spss获得,A6代表字符型;2F14.6代表两个浮点型,宽度16位,小数6位)
TEM11.res //输出系列文件名
TEM11.opt
TEM11.sur
TEM11.lis
TEM11.cov //后面空6行
经纬度最小值计算方法,从dem.txt获得:
ncols:行数 nrows:列数 xllcorner:X最小值 yllcorner:Y最小值 cellsize: 像元大小
X最大值计算方法:X最小值+行数×像元大小;
Y最大值计算方法:Y最小值+列数×像元大小。
3.1.2 splina所需CMD运行
首先调用cmd命令,输入文件所在磁盘和一个冒号后,输入cd命令,加一个空格后输入文件夹地址,输入命令splina<TEM1>TEM1.log
后点击回车,完成命令的调用。
3.2 lapgrd所需CMD编写及运行
3.2.1 lapgrd所需CMD编写
用notepad++软件创建一个TEM1.cmd文件后,即可开始编写CMD文件,下面对各个参数进行解释:
TEM11.sur //加载文件,由splina得到
1 //输出面个数
1 //对表面所有值进行运算
TEM11.cov //加载文件,由splina得到
2 //误差类型,1-模型标准误差;2-预测标准误差
2 //标准差最大值
1 //网格采样位置:像元中心
1 //第一栅格变量指标
0.91919660E+07 0.12385966E+08 1000 //X范围
2 //第二栅格变量指标
0.42991686E+07 0.59701686E+07 1000 //Y范围
0 //掩膜文件:无
2 //独立协变量数据格式:输入输出一致
dem.txt //协变量文件:高程
2 //输出的栅格格式:ARC/INFO GRID
-9999.0 //空值数据
TEM.grd //输出栅格文件名
(100f10.3) //输出文件格式
2 //误差表面格式
-9999.0 //空值数据
TEM5.grd //标准差文件,后面空6行
X,Y范围计算,在splina生成的.sur文件中:
3,4行前两个数分别为X,Y的范围,直接粘贴到相应位置即可。
3.2.2 lapgrd所需CMD运行
调用命令为lapgrd<TEM2>TEM2.log
光标在新的一行闪烁即代表运行结束。
完美撒花!!!希望对您有所帮助
更多推荐
利用ANUSPLIN进行气温插值
发布评论