Python ArcPy實(shí)現(xiàn)柵格圖像文件由HDF格式批量轉(zhuǎn)換為TIFF格式
本文介紹基于Python中Arcpy模塊,實(shí)現(xiàn)大量HDF格式的柵格圖像文件批量轉(zhuǎn)換為TIFF格式的方法。
首先,來看看我們想要實(shí)現(xiàn)的需求。
在一個(gè)名為HDF的文件夾下,有五個(gè)子文件夾;每一個(gè)子文件夾中,都存儲了大量的.hdf格式的柵格遙感影像數(shù)據(jù)。

我們?nèi)芜x一個(gè)子文件夾,來看看其中所含的文件。

我們要做的,就是將HDF文件夾下的全部子文件夾中的全部.hdf格式圖像文件,一次性轉(zhuǎn)換為.tif格式的圖像文件,并存儲在另一個(gè)名為TIFF的文件夾中。
知道了具體需求,就可以開始操作了。首先,這里用到的代碼如下。
# -*- 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格式文件的存儲路徑,tif_file_path是.tif格式文件的存儲路徑,換句話說也就是我們的結(jié)果保存路徑。
首先,通過os.listdir()函數(shù)獲取HDF文件夾下全部文件;由于我們的.hdf格式文件并不是直接保存在HDF這個(gè)大文件夾下的,而是HDF下屬的多個(gè)子文件夾下,所以進(jìn)一步通過os.path.isdir()函數(shù)進(jìn)入這些子文件夾,并遍歷其中的.hdf格式文件,保存在hdf_file_name_list_new中;隨后,依據(jù)每一個(gè).hdf格式文件的名稱,依次配置之后我們生成的.tif格式文件的名稱。
接下來,我們就可以通過arcpy.ExtractSubDataset_management()函數(shù)來實(shí)現(xiàn)圖像格式的轉(zhuǎn)換了。其中,這一函數(shù)的第一個(gè)參數(shù)是原有.hdf文件的路徑及名稱,第二個(gè)參數(shù)是我們希望生成的.tif文件的路徑及名稱,第三個(gè)參數(shù)是我們希望在格式轉(zhuǎn)換時(shí),保存的具體波段。
需要著重說明一下這里保存波段的選取。在本文中,我需要轉(zhuǎn)換格式的是MODIS的地表溫度產(chǎn)品MOD11A2,其第一個(gè)波段(編號為0)是地表白天的溫度,第五個(gè)波段(編號為4)是地表夜晚的溫度,如下圖所示。

假如在后續(xù)處理中,我只需要白天、夜晚這兩個(gè)波段,也就是編號為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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn) 版本號對比功能的實(shí)例代碼
這篇文章主要介紹了 Python實(shí)現(xiàn) 版本號對比功能的實(shí)例代碼,文末給大家補(bǔ)充介紹了python 比較兩個(gè)版本號大小 ,需要的朋友可以參考下2019-04-04
python中編寫config文件并及時(shí)更新的方法
在pytorch或者其他深度學(xué)習(xí)框架中,有許多超參數(shù)需要調(diào)整,包括learning_rate,training_data_path等,因此編寫一個(gè)config文件統(tǒng)一存放這些參數(shù),方便調(diào)用/查看/修改還是很有必要,這篇文章主要介紹了python中一種編寫config文件并及時(shí)更新的方法,需要的朋友可以參考下2023-02-02
Django傳遞數(shù)據(jù)給前端的3種方式小結(jié)
Django從后臺往前臺傳遞數(shù)據(jù)時(shí)有多種方法可以實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于Django傳遞數(shù)據(jù)給前端的3種方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
Pycharm代碼無法復(fù)制,無法選中刪除,無法編輯的解決方法
今天小編就為大家分享一篇Pycharm代碼無法復(fù)制,無法選中刪除,無法編輯的解決方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
使用Python讀取Excel數(shù)據(jù)在PPT中創(chuàng)建圖表
使用Python從Excel讀取數(shù)據(jù)并在PowerPoint幻燈片中創(chuàng)建圖表不僅能夠極大地簡化圖表創(chuàng)建過程,通過Python這一橋梁,我們可以輕松實(shí)現(xiàn)數(shù)據(jù)自動化處理和圖表生成,本文將演示如何使用Python讀取Excel數(shù)據(jù)在PPT中創(chuàng)建圖表,需要的朋友可以參考下2024-08-08
Python實(shí)現(xiàn)在Excel中應(yīng)用各種類型數(shù)據(jù)驗(yàn)證的詳細(xì)指南
Excel 中的數(shù)據(jù)驗(yàn)證是確保數(shù)據(jù)錄入干凈、準(zhǔn)確且一致的關(guān)鍵功能,下面小編就帶大家詳細(xì)介紹一下如何使用 Python 在 Excel 中應(yīng)用各種類型的數(shù)據(jù)驗(yàn)證吧2026-03-03
python 實(shí)現(xiàn)將小圖片放到另一個(gè)較大的白色或黑色背景圖片中
今天小編就為大家分享一篇python 實(shí)現(xiàn)將小圖片放到另一個(gè)較大的白色或黑色背景圖片中,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
Pyqt+matplotlib 實(shí)現(xiàn)實(shí)時(shí)畫圖案例
這篇文章主要介紹了Pyqt+matplotlib 實(shí)現(xiàn)實(shí)時(shí)畫圖案例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03

