gpt4 book ai didi

HDF格式遥感影像批量转为TIFF格式:ArcPy实现

转载 作者:我是一只小鸟 更新时间:2023-03-13 14:31:39 24 4
gpt4 key购买 nike

  本文介绍基于 Python 中 ArcPy 模块,实现大量 HDF格式 栅格图像文件 批量转换 为 TIFF格式 的方法.

  首先,来看看我们想要实现的需求.

  在一个名为 HDF 的文件夹下,有五个子文件夹;每一个子文件夹中,都存储了大量的 .hdf 格式的栅格遥感影像数据.

  我们在其中任选一个子文件夹,来看看其中所含的文件.

  我们要做的,就是将 HDF 文件夹下的 全部子文件夹中 的 全部 .hdf 格式图像文件,一次性转换为 .tif 格式的图像文件,并存储在另一个名为 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 格式文件的存储路径,换句话说也就是我们的结果保存路径.

  首先,通过 os.listdir() 函数获取 HDF 文件夹下全部文件;由于我们的 .hdf 格式文件并不是直接保存在 HDF 这个大文件夹下的,而是 HDF 下属的多个 子文件夹 下,所以进一步通过 os.path.isdir() 函数进入这些子文件夹,并遍历其中的 .hdf 格式文件,保存在 hdf_file_name_list_new 中;随后,依据每一个 .hdf 格式文件的名称,依次配置之后我们生成的 .tif 格式文件的名称.

  接下来,我们就可以通过 arcpy.ExtractSubDataset_management() 函数来实现图像格式的转换了。其中,这一函数的第一个参数是原有 .hdf 文件的路径及名称,第二个参数是我们希望生成的 .tif 文件的路径及名称,第三个参数是我们希望在格式转换时,保存的具体波段.

  需要着重说明一下这里 保存波段 的选取。在本文中,我需要转换格式的是 MODIS 的地表温度产品 MOD11A2 ,其第一个波段(编号为 0 )是地表白天的温度,第五个波段(编号为 4 )是地表夜晚的温度,如下图所示.

  假如在后续处理中,我只需要白天、夜晚这两个波段,也就是编号为 0 和 4 的这两个波段,那么我就只需要在 arcpy.ExtractSubDataset_management() 函数的第三个参数中输入 "0;4" 就好了;其他情况以此类推.

  以上便是本次操作的全部代码。我们这里选择在 IDLE (Python GUI) 中运行代码.

  得到结果文件如下图;可以看到,所有图像都已经以 .tif 的格式保存了.

  至此,大功告成.

最后此篇关于HDF格式遥感影像批量转为TIFF格式:ArcPy实现的文章就讲到这里了,如果你想了解更多关于HDF格式遥感影像批量转为TIFF格式:ArcPy实现的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com