通過spss轉為dat格式
做完(1)-(4)后,表明前期的數據準備工作完成了一部分,需要進一步通過spss轉為所需要的格式
1.打開spss后,加載進去excel數據
-
設置好對應的表頭信息,如下圖所示:
image.png
需要注意的是,站點的數據類型為字符型
設置好后,另存為固定ASCII碼格式的:
image.png
在保存的時候注意spss會有個輸出的日志文件:
image.png
圖中標紅的部分需要在腳本中用到
通過第一步和第二步完成了spss的轉換,接著需要將柵格的dem數據轉化為ASCII碼文件,在arcgis中通過數據轉化就能夠實現,如下圖
image.png
設置好后,可以開始寫插值的腳本了,腳本主要用到splina.exe和lapgrd.exe.splina的腳本如下所示:
ssd2007
0 #插值的單位,0表示無單位
2 #自變量的個數,這里指經緯度
1 #協變量的個數,這里指dem,注意也可以將高程設置為自變量,不用協變量
0
0
1342316.1 6206316.3 0 1 ##前兩數是對應dem文件中經度的范圍(在arcgis中的source看),但要比dem中的范圍要大一點才行
1649788.01 5937788.2 0 1 ##前兩數是對應dem文件中緯度的范圍,但也要比dem中的范圍要大一點才行
-163.422 7371.14 1 1 ##前兩數dem文件的上下限
1000
0
3
365 #需要插值的個數,這是是對每天進行插值,故是365個
0
1
1
ssd2007.dat
1000 #站點的個數,可以設置的比實際站點數量大些
5 #標簽的寬度,我們的站點都是五位數的,所以是5
(a12,f12.4,f12.4,f12.2,365f12.1) #數據的格式,與上面spss的輸出日志保持一致
ssd2007.res
ssd2007.opt
ssd2007.sur
ssd2007.lis
ssd2007.cov
(注意這里要留一行)
lapgrd的腳本如下
ssd2007.sur
0
1
1
1
1342316.25165 6206316.25165 8000 #前兩個是dem文件中的經度范圍,1000:插值的分辨率
2
1649788.1524 5937788.1524 8000 #前兩個是dem中的緯度范圍,1000:插值的分辨率,最好和dem的分辨率一致
0
2
chinadem.txt #ascii碼的dem文件名稱
2
-9999.0
ssd2007_001.grd
ssd2007_002.grd
ssd2007_003.grd
ssd2007_004.grd
ssd2007_005.grd
ssd2007_006.grd
ssd2007_007.grd
ssd2007_008.grd
ssd2007_009.grd
....
ssd2007_365.grd
#注意這里有個空行才行
將上述代碼分別復制到記事本中,然后更改后綴為.cmd文件,假設文件名分別為ssd2007s.cmd和ssd2007l.cmd,注意#和#后面的文字需要刪除,那個只是為了說明。
新建一個運行的腳本,命名為run.cmd
splina<ssd2007s.cmd>ssd2007s.log
lapgrd<ssd2007l.cmd>ssd2007l.log
將代碼復制到run.cmd中,雙擊run.cmd就能夠運行得到結果
注意:上述文件必須都放在同一個文件夾下。
得到grd后需要在arcgis中批量轉換為tif格式。