這樣的"切割",和向量資料切割時一樣,都叫做"CLIP"
這裡我們以SRTM 90m DEM檔案為例,操作切割台灣本島的範圍
STEP 1
下載SRTM DEM 檔案
http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp
選擇目標網格 下載Geo Tiff 或 Arcinfo ASC檔皆可
網頁下載頁面
下載
--------------------------------------------------------------------------------------------------------------------------
**tif 與ASC檔的差異:
asc檔是可以由人可以讀的文字檔,簡單即能開啟
欄位:cols:行
rows:列
xllcorner: LEFT LOWER CORNER 左下角的X座標值
yllcorner: LEFT LOWER CORNER 左下角的Y座標值
cellsize:網格大小 單位KM (通常不會說是90M就會真的剛剛好90M)
由於是以影像的左下角為基準去計算剩下的網格的位置,因此X與Y的增加值皆為正
下面大量的數字,就是記錄著每一個網格的高程值,而 no data的值會表示為-9999
tif檔則是人不可讀的,需用軟體才能開啟檢視,但我可以開啟他的相關檔案 tfw檔
下圖為 ASTER 30M.tif 的 tfw檔內容
依據行序意義依序如下:
X方向的像元解析度:往X(橫軸)正方向每一方格多少公尺
平移量
旋轉量
Y方向的像元解析度:往Y(橫軸)正方向每一方格多少公尺,因為是左上角開始算在數學上Y往上才是正,因此左上已經是最上面之後的格子都是往下走,所以是負值
左上角的X座標 (這裡已設定為TWD97座標)
左上角的Y座標 (這裡已設定為TWD97座標)
為何下面沒有像ASC檔有大量的高程值?
因為數值都存在 tif 檔裡面了,tfw檔就是負責去定義它的位置與網格而已
-------------------------------------------------------------------------------------------------------------------------
STEP 2
將下載到的SRTM檔案,定義座標(WGS84)後打開
〈 注意:操作的圖層皆應為同一座標 〉
STEP 3
將四張RASTER結合
工具路徑:ArcToolbox\Data management tools\Raster\Raster dataset\Mosaic
**Target Raster:以哪一張為基準,去結合其他張,完成後這張就會變成所有的範圍
**結合完成後,需至Catlog再確認一次座標是否設定正確
STEP 4
將結合好的圖,投影成為常用的TWD97座標系統
工具路徑:ArcToolbox\Data management tools\Projection and transformations\Raster\Project raster
**於圖面邊緣可見變形,為橫麥卡托(Transfer Mercator)投影的結果
STEP 5
以縣市圖層切割DEM
工具路徑:ArcToolbox\Spatial Analyst Tools\Extration\Extract by Mask
**在切割RASTER檔案時,較建議使用這個功能
**進入Environment,將Extent設定選擇為縣市圖層
**下拉至Raser Analysis,Cell size網格大小設定為與來源相同(same as the DEM layer),並將Mask定義為縣市圖層
STEP 6
如此,即可切割出由"縣市.shp"檔案所規範切出的DEM範圍
**確認右下的座標數值,是否與TWD97座標常見之數值相同,若出現經緯度的數值,代表在上面的步驟中投影轉換可能已失敗
第二種切割法
我們由中央研究院GIS中心下載"台灣30米數值地形模型資料"
這個資料是由NASA與METI推出的全球數值地形資料,也可以從ASTER DEM下載的相關網頁載得
當你在GIS軟體中打開後會發現,長成這副鬼樣子...
上面已經操作過如何用SHP檔案切割,這次,我們換個方式。
STEP 1
我們這次利用計算網格高程數值的方式來切割
理論上海底下的部分我們無法得知,因為在這個檔案裡面高程沒有負值,但是數值是"0"的部分非常多
雖然它代表的是海平面,或是與海平面接近的陸地,但我們為了方便研究需要,必須將其去除。
工具路徑:ArcToolbox\Spatial Analyst Tools\Reclass\Reclassify
這個功能,可以讓我們去區辨,屬於"0" 與 非"0" 的部分,二分法的目的,就是希望將大片的海洋和陸地作區別
STEP 2
點選"Classify",將區間分為"2"
STEP 3
**想法:我不要海洋的部分,也就是高程值是0的我都不要,因此要將"0"的部分,設為no data
那0以上,就是陸地部分,也就是我要的,所以要保留,因此"0~4000"設為"1"
那0以上,就是陸地部分,也就是我要的,所以要保留,因此"0~4000"設為"1"
**由於這張ASTER高程值皆為整數,沒有小數點,所以設定"0~4000"的意義等同於"1~4000"
**觀察DEM的高程值,在保留陸地的高程的時候,可以將最高值再往上加到漂亮的整數,第一是好看,第二是避免計算的太接近可能出錯
因此,就會出現下圖,藍色部分為數值"1",外邊沒有的為"NO DATA"
這樣出來雖然有了邊界,但還不能為我們所用
這樣設定的目的,是因為接下來要將這張Reclassify的圖,與原本的DEM圖層相乘
STEP 4
工具路徑:ArcToolbox\Spatial Analyst Tools\Map Algerba\Raster Caculator
這是一個在進行RASTER資料分析時,很常用的功能
雙擊讓圖層進入到運算式中,使用中間數學符號" * ",表示兩者相乘
**相乘的意義:原本是海洋的部分數值為"0",相乘"no data"後為"no data";原本陸地的部分都有0以上的高程值,因此乘以"1"表示維持原本的數值
**但是,如果是潟湖或是沿海低地的部分,也是海平面,就會一起 "no data"
STEP 5
到此,即可呈現已經去除高程"0"部分的DEM
當然,有些不需要的部分,就自行再用SHP切割
討論
⇒以SHP切割台灣本島 與 以RASTER CACULATOR的優劣
以SHP切割,就必須有那個地區的檔案,檔案有時不是open data或是行政區邊緣精度不足時,切割會變得沒有效益,但切割出來的區域非常精確,不會平白損失國土
以raster caculator 以數學方式計算,因為海洋部分一定是"0",但陸地有些地方低於海平面但也還是國土,或者剛好是跟海平面等高的區域,都會一併被乘為"no data" 。但這樣的好處是在遇到沒有SHP的區域時,可以快速的二分法做出檔案
沒有留言:
張貼留言