日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【ArcGIS风暴】GlobeLand30全球数据处理教程(批量投影转换、无效值处理、拼接)

發布時間:2023/12/4 编程问答 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【ArcGIS风暴】GlobeLand30全球数据处理教程(批量投影转换、无效值处理、拼接) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文講述GlobeLand30全球數據批處理流程,主要步驟包括:批量分幅投影轉換、批量分幅無效值處理、批量圖幅拼接和成品展示。由于圖幅數目和數據量較大,本文是采用Python代碼批量實現的,有關Python的基本操作及處理案例,可以參考實用精品專欄:《ArcGIS遇上Python》

文章目錄

  • 一、數據簡介
  • 二、數據準備
  • 三、處理流程
    • 1. 批量投影轉換
    • 2. 批量處理無效值
    • 3. 批量圖幅拼接
    • 4. 添加分類字段并賦值
    • 5. 創建色彩映射表
    • 6. 導入色彩映射表
  • 四、成品展示


一、數據簡介

  • GlobeLand30是30米空間分辨率全球地表覆蓋數據,目前可供下載使用的有3年的數據:2000-2010-2020。

  • GlobeLand30數據采用WGS-84坐標系。南緯85°-北緯85°之間的區域,投影方式采用UTM投影, 6度分帶,坐標單位為米,坐標不加帶號。南北緯85°-90°之間的區域,投影方式采用極地方位投影,投影面切于地球南北極點。

二、數據準備

下載3年(2000-2010-2020)數據,分別解壓到對應的文件夾內。

三、處理流程

1. 批量投影轉換

GlobeLand30數據采用WGS-84坐標系。

南緯85°-北緯85°之間的區域,投影方式采用UTM投影, 6度分帶,坐標單位為米,坐標不加帶號。

南北緯85°-90°之間的區域,投影方式采用極地方位投影,投影面切于地球南北極點。

因此需要先對所有的圖幅進行投影轉換,然后進行后續拼接等操作。本文將其轉換為地理坐標系為WGS1984。

Python批處理核心代碼:

def GetRaster(path):n=0if (os.path.exists(path)):files = os.listdir(path)for file in files:m = os.path.join(path,file)if (os.path.isdir(m)):h=os.path.split(m)ws=root+"/"+h[1]arcpy.env.workspace = wsrasters = arcpy.ListRasters("*", "tif")for raster in rasters:print "Finding "+ rasterprint "Projecting "+rasterout=outPath+"/"+rasterarcpy.ProjectRaster_management(raster,out, projecttype, "NEAREST",cellsize , "", "",geogratype)n=n+1print str(n)+" rasters are processed !!!" GetRaster(root)

ArcGIS Python支持多線程處理,3年數據可以同步進行批處理。。。。

由于圖幅數目和數據量均較大,該過程將持續很長的時間,可能是幾個小時或者幾天,因此呢,如果你沒有足夠強大的機器和心臟,建議不要輕易嘗試。

2000年:


2010年:


2020年:

北半球投影結果:

局部圖幅展示:


投影轉換后的各個圖幅,坐標系為WGS 1984。

2. 批量處理無效值

第一步投影結束后,影像的黑邊依然存在,這將影像后面的拼接處理結果,經過查詢得知,黑邊對應的像元值為0,只需要將其設置為NoData即可,對應的工具是柵格計算器中的SetNull函數,我們繼續使用Python批處理。


Python自動批處理核心代碼:

for inRaster in inRasters:outRaster=outpath+inRaster##print outRasterprint "Processing "+inRaster +" ......"outSetNull = SetNull(inRaster,inRaster,WhereClause)outSetNull.save(outRaster)n=n+1 print str(n)+" rasters are processed!"

3. 批量圖幅拼接

在ArcGIS中拼接柵格圖幅有兩個工具:【鑲嵌】和【鑲嵌至新柵格】,當然了需要手動添加數據,好在我們的數據在同一個文件夾下,可以直接全選拖動,當然了,也可以寫Python代碼來完成。

方法一:使用【鑲嵌至新柵格】工具

方法二:Python代碼

arcpy.MosaicToNewRaster_management(str, outPath, outName, "", "8_BIT_UNSIGNED", "", "1", "LAST", "FIRST")

需要注意的是,原始數據集是tif格式,且每個圖幅都是有金字塔的,加載和顯示速度都比較快,但是SetNull后會丟失金字塔,加載速度很慢。

4. 添加分類字段并賦值

打開屬性表,添加一個文本型字段type,打開編輯器,輸入分類名稱并保存。


分類賦值參照表:

5. 創建色彩映射表

雙擊2000年數據圖層,打開圖層屬性,切換到【符號系統】,點擊【色彩映射表】→【導出色彩映射表】。


選擇存放路徑,并輸入名稱,色彩映射表的后綴名是.clr。

6. 導入色彩映射表

有了剛才導出的色彩映射表(GlobeLand30色彩映射表.clr文件),可以快速地對剩余兩年的數據做符號化了,方法是:雙擊2010和2020年數據圖層,打開圖層屬性,切換到【符號系統】,點擊【色彩映射表】→【導入色彩映射表】。

四、成品展示

總結

以上是生活随笔為你收集整理的【ArcGIS风暴】GlobeLand30全球数据处理教程(批量投影转换、无效值处理、拼接)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。