当前位置: 代码网 > it编程>前端脚本>Python > Python ArcPy实现栅格图像文件由HDF格式批量转换为TIFF格式

Python ArcPy实现栅格图像文件由HDF格式批量转换为TIFF格式

2024年12月10日 Python 我要评论
本文介绍基于python中arcpy模块,实现大量hdf格式的栅格图像文件批量转换为tiff格式的方法。首先,来看看我们想要实现的需求。在一个名为hdf的文件夹下,有五个子文件夹;每一个子文件夹中,都

本文介绍基于pythonarcpy模块,实现大量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)是地表夜晚的温度,如下图所示。

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

以上便是本次操作的全部代码。我们这里选择在 idle (python gui) 中运行代码。

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

到此这篇关于python arcpy实现栅格图像文件由hdf格式批量转换为tiff格式的文章就介绍到这了,更多相关python arcpy实现hdf转tiff内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com