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

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

  本文介绍基于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的格式保存了。

欢迎关注公众号/CSDN/知乎/微博:疯狂学习GIS


相关文章
|
6月前
|
SQL 自然语言处理 数据库
【Azure Developer】分享两段Python代码处理表格(CSV格式)数据 : 根据每列的内容生成SQL语句
本文介绍了使用Python Pandas处理数据收集任务中格式不统一的问题。针对两种情况:服务名对应多人拥有状态(1/0表示),以及服务名与人名重复列的情况,分别采用双层for循环和字典数据结构实现数据转换,最终生成Name对应的Services列表(逗号分隔)。此方法高效解决大量数据的人工处理难题,减少错误并提升效率。文中附带代码示例及执行结果截图,便于理解和实践。
161 4
|
6月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
害虫识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了12种常见的害虫种类数据集【"蚂蚁(ants)", "蜜蜂(bees)", "甲虫(beetle)", "毛虫(catterpillar)", "蚯蚓(earthworms)", "蜚蠊(earwig)", "蚱蜢(grasshopper)", "飞蛾(moth)", "鼻涕虫(slug)", "蜗牛(snail)", "黄蜂(wasp)", "象鼻虫(weevil)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Djan
379 1
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
7月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
562 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
9月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
485 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
9月前
|
Python
Python格式
Python格式
86 5
|
10月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
利用Python和TensorFlow构建简单神经网络进行图像分类
利用Python和TensorFlow构建简单神经网络进行图像分类
252 3
|
10月前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
339 1
|
11月前
|
PyTorch 算法框架/工具 数据格式
Python实用记录(八):不同格式之间的转换
本文介绍了Python中不同数据格式之间的转换方法,包括numpy数组与列表、字符串之间的转换,以及PyTorch张量与numpy数组之间的转换。
71 0
|
10天前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
181 102

推荐镜像

更多