91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何用arcpy模塊實現柵格的創建與拼接

發布時間:2023-02-24 15:50:34 來源:億速云 閱讀:130 作者:iii 欄目:開發技術

本篇內容介紹了“Python如何用arcpy模塊實現柵格的創建與拼接”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

首先,相關操作所需具體代碼如下:

import os
import arcpy

file_path="G:/Postgraduate/LAI_Glass_RTlab/A2018161_Dif/DRT/"
out_file_path="G:/Postgraduate/LAI_Glass_RTlab/A2018161_Dif/DRT/"
out_file_name="Global.tif"

file_name_list=os.listdir(file_path)

tif_file_path=file_path+file_name_list[0]
cell_size_x=arcpy.GetRasterProperties_management(tif_file_path,"CELLSIZEX")
cell_size=cell_size_x.getOutput(0)
value_type=arcpy.GetRasterProperties_management(tif_file_path,"VALUETYPE")
describe=arcpy.Describe(tif_file_path)
spatial_reference=describe.spatialReference

arcpy.CreateRasterDataset_management(out_file_path,out_file_name,cell_size,"16_BIT_SIGNED",
                                     spatial_reference,"1")

out_file=out_file_path+out_file_name
for file in file_name_list:
    file_path_name=file_path+file
    print(file_path_name)
    arcpy.Mosaic_management([file_path_name],out_file)

其中,file_path為存放有多景初始遙感影像的路徑格式為.tif柵格文件(如果不是.tif格式,例如是.hdf等文件,需首先進行文件格式的轉換);out_file_path為拼接后所得結果柵格圖層的存放路徑;out_file_name為拼接后所得結果柵格圖層的文件名稱,其可選格式有很多,如下圖所示。

Python如何用arcpy模塊實現柵格的創建與拼接

在這里,我們默認所得拼接結果圖層為一個(也就是file_path文件夾中全部的待處理遙感影像最終全拼接在一起);如果大家需要使得拼接結果圖層是多幅(也就是file_path文件夾中待處理遙感影像依據區域、時間等分為很多不同的部分,每一部分拼接在一起),可以參考Python GDAL讀取柵格數據并基于質量評估波段QA對指定數據加以篩選掩膜,利用其中的循環方式實現需求。

隨后,通過os.listdir()函數獲取file_path路徑下的柵格文件,并存儲于file_name_list列表中。

接下來需要創建一個新的柵格圖層。之所以要進行這一步驟,是因為本文后期選擇用arcpy.Mosaic_management()函數進行柵格的批量拼接,因此需要首先創建一個新的、空的柵格圖層作為拼接的基準。如果大家的需求不是批量拼接柵格數據,而是單純想利用arcpy進行新柵格的創建,那就只看這一部分的代碼即可。

在這里,我們選擇用file_path路徑下的第一個柵格數據(下稱“第一柵格”)作為新柵格圖層中各項屬性(例如像素邊長、像素數據格式等)的依據。首先,arcpy.GetRasterProperties_management()函數獲取第一柵格的像素x邊邊長;因為一般柵格數據中像素都是正方形,因此我們就通過cell_size=cell_size_x.getOutput(0)將第一柵格的像素x邊邊長作為新柵格圖層像素x邊與y邊二者的邊長。再利用arcpy.GetRasterProperties_management()函數獲取第一柵格的數據格式;最后利用中間變量describe獲取第一柵格的空間參考信息。

完成以上步驟后,將已獲取的第一柵格的各類信息通過函數arcpy.CreateRasterDataset_management()帶入新柵格中。在這里需要注意:盡可能在將要拼接時選擇新柵格"16_BIT_SIGNED"及以下的數據格式(具體數據格式類別如下圖),且將file_path路徑下待拼接的柵格數據的數據格式也全部修改為這一格式;否則可能會由于數據量大而導致拼接過程極慢。我之前就是由于選用了32 bit float格式的柵格數據進行拼接,導致全球范圍的MODIS一個植被產品數據拼接花了將近一天的時間。如果大家的柵格像素數據包含小數,可以通過乘上一個縮放系數的方式進行數據整數化。

Python如何用arcpy模塊實現柵格的創建與拼接

代碼最后的一個for循環,就是遍歷file_name_list中的各個柵格數據,并通過arcpy.Mosaic_management()函數加以拼接即可。

以上,便完成了本次批量拼接的操作。這里還有一點需要注意:由于arcpy模塊的限制,如果大家的Python版本是3.0及以上,往往不能直接運行上述代碼,最好是在ArcMap的Python運行框或其對應IDLE(如下圖所示)中運行。

Python如何用arcpy模塊實現柵格的創建與拼接

“Python如何用arcpy模塊實現柵格的創建與拼接”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镇原县| 赤峰市| 铜川市| 禹州市| 怀化市| 民勤县| 合作市| 剑阁县| 黑河市| 阿坝| 武穴市| 延庆县| 通城县| 太仆寺旗| 衡阳县| 沙雅县| 锡林浩特市| 宿州市| 延庆县| 长海县| 钟祥市| 九寨沟县| 兴城市| 扶绥县| 彭州市| 邢台市| 祁阳县| 宣汉县| 铜川市| 泗水县| 武鸣县| 安徽省| 吉安县| 亚东县| 会宁县| 留坝县| 华安县| 古交市| 江永县| 昔阳县| 湖南省|