Python ArcPy實(shí)現(xiàn)柵格圖像文件由HDF格式批量轉(zhuǎn)換為TIFF格式
本文介紹基于Python中Arcpy模塊,實(shí)現(xiàn)大量HDF格式的柵格圖像文件批量轉(zhuǎn)換為TIFF格式的方法。
首先,來(lái)看看我們想要實(shí)現(xiàn)的需求。
在一個(gè)名為HDF
的文件夾下,有五個(gè)子文件夾;每一個(gè)子文件夾中,都存儲(chǔ)了大量的.hdf
格式的柵格遙感影像數(shù)據(jù)。
我們?nèi)芜x一個(gè)子文件夾,來(lái)看看其中所含的文件。
我們要做的,就是將HDF
文件夾下的全部子文件夾中的全部.hdf
格式圖像文件,一次性轉(zhuǎn)換為.tif
格式的圖像文件,并存儲(chǔ)在另一個(gè)名為TIFF
的文件夾中。
知道了具體需求,就可以開(kāi)始操作了。首先,這里用到的代碼如下。
# -*- coding: utf-8 -*- """ Created on Fri Apr 15 11:13:27 2022 @author: fkxxgis """ import os import arcpy hdf_file_path="E:/LST/Data/MODIS/HDF/" tif_file_path="E:/LST/Data/MODIS/TIFF/" hdf_file_name_list=os.listdir(hdf_file_path) for hdf_file in hdf_file_name_list: if os.path.isdir(hdf_file_path+hdf_file): file_name_temp=hdf_file hdf_file_name_list_new=os.listdir(hdf_file_path+hdf_file) for hdf_file in hdf_file_name_list_new: tif_file_name=hdf_file[8:23]+".tif" data=arcpy.ExtractSubDataset_management(hdf_file_path+file_name_temp+'/'+hdf_file,tif_file_path+tif_file_name,"0;4") else: tif_file_name=hdf_file[8:23]+".tif" data=arcpy.ExtractSubDataset_management(hdf_file_path+hdf_file,tif_file_path+tif_file_name,"0;4")
其中,hdf_file_path
是.hdf
格式文件的存儲(chǔ)路徑,tif_file_path
是.tif
格式文件的存儲(chǔ)路徑,換句話說(shuō)也就是我們的結(jié)果保存路徑。
首先,通過(guò)os.listdir()
函數(shù)獲取HDF
文件夾下全部文件;由于我們的.hdf
格式文件并不是直接保存在HDF
這個(gè)大文件夾下的,而是HDF
下屬的多個(gè)子文件夾下,所以進(jìn)一步通過(guò)os.path.isdir()
函數(shù)進(jìn)入這些子文件夾,并遍歷其中的.hdf
格式文件,保存在hdf_file_name_list_new
中;隨后,依據(jù)每一個(gè).hdf
格式文件的名稱,依次配置之后我們生成的.tif
格式文件的名稱。
接下來(lái),我們就可以通過(guò)arcpy.ExtractSubDataset_management()
函數(shù)來(lái)實(shí)現(xiàn)圖像格式的轉(zhuǎn)換了。其中,這一函數(shù)的第一個(gè)參數(shù)是原有.hdf
文件的路徑及名稱,第二個(gè)參數(shù)是我們希望生成的.tif
文件的路徑及名稱,第三個(gè)參數(shù)是我們希望在格式轉(zhuǎn)換時(shí),保存的具體波段。
需要著重說(shuō)明一下這里保存波段的選取。在本文中,我需要轉(zhuǎn)換格式的是MODIS的地表溫度產(chǎn)品MOD11A2,其第一個(gè)波段(編號(hào)為0
)是地表白天的溫度,第五個(gè)波段(編號(hào)為4
)是地表夜晚的溫度,如下圖所示。
假如在后續(xù)處理中,我只需要白天、夜晚這兩個(gè)波段,也就是編號(hào)為0
和4
的這兩個(gè)波段,那么我就只需要在arcpy.ExtractSubDataset_management()
函數(shù)的第三個(gè)參數(shù)中輸入"0;4"
就好了;其他情況以此類推。
以上便是本次操作的全部代碼。我們這里選擇在 IDLE (Python GUI) 中運(yùn)行代碼。
得到結(jié)果文件如下圖;可以看到,所有圖像都已經(jīng)以.tif
的格式保存了。
到此這篇關(guān)于Python ArcPy實(shí)現(xiàn)柵格圖像文件由HDF格式批量轉(zhuǎn)換為TIFF格式的文章就介紹到這了,更多相關(guān)Python ArcPy實(shí)現(xiàn)HDF轉(zhuǎn)TIFF內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python 網(wǎng)絡(luò)編程說(shuō)明
socket 是網(wǎng)絡(luò)連接端點(diǎn)。2009-08-08python通過(guò)shutil實(shí)現(xiàn)快速文件復(fù)制的方法
這篇文章主要介紹了python通過(guò)shutil實(shí)現(xiàn)快速文件復(fù)制的方法,涉及Python中shutil模塊的使用技巧,需要的朋友可以參考下2015-03-03python bmp轉(zhuǎn)換為jpg 并刪除原圖的方法
今天小編就為大家分享一篇python bmp轉(zhuǎn)換為jpg 并刪除原圖的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10使用Python解決常見(jiàn)格式圖像讀取nii,dicom,mhd
這篇文章主要介紹了使用Python解決常見(jiàn)格式圖像讀取nii,dicom,mhd,下文具體操作過(guò)程需要的小伙伴可以參考一下2022-04-04python控制windows剪貼板,向剪貼板中寫入圖片的實(shí)例
今天小編就為大家分享一篇python控制windows剪貼板,向剪貼板中寫入圖片的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05Python利用subplots_adjust方法解決圖表與畫布的間距問(wèn)題
這篇文章主要介紹了如何在使用python?的?matplotlib庫(kù)繪圖時(shí),?使用subplots_adjust()方法來(lái)調(diào)整圖表與畫布之間的間距,以及圖表與圖表之間的間距,感興趣的可以了解一下2022-04-04python 通過(guò)pip freeze、dowload打離線包及自動(dòng)安裝的過(guò)程詳解(適用于保密的離線環(huán)境
這篇文章主要介紹了python 通過(guò)pip freeze、dowload打離線包及自動(dòng)安裝【適用于保密的離線環(huán)境】,本文通圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12