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


相关文章
|
17天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
104 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
7天前
|
计算机视觉 Python
如何使用Python将TS文件转换为MP4
本文介绍了如何使用Python和FFmpeg将TS文件转换为MP4文件。首先需要安装Python和FFmpeg,然后通过`subprocess`模块调用FFmpeg命令,实现文件格式的转换。代码示例展示了具体的操作步骤,包括检查文件存在性、构建FFmpeg命令和执行转换过程。
30 7
|
1月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
利用Python和TensorFlow构建简单神经网络进行图像分类
利用Python和TensorFlow构建简单神经网络进行图像分类
60 3
|
1月前
|
开发者 Python
Python中__init__.py文件的作用
`__init__.py`文件在Python包管理中扮演着重要角色,通过标识目录为包、初始化包、控制导入行为、支持递归包结构以及定义包的命名空间,`__init__.py`文件为组织和管理Python代码提供了强大支持。理解并正确使用 `__init__.py`文件,可以帮助开发者更好地组织代码,提高代码的可维护性和可读性。
46 2
|
1月前
|
中间件 Docker Python
【Azure Function】FTP上传了Python Function文件后,无法在门户页面加载函数的问题
通过FTP上传Python Function至Azure云后,出现函数列表无法加载的问题。经排查,发现是由于`requirements.txt`中的依赖包未被正确安装。解决方法为:在本地安装依赖包到`.python_packages/lib/site-packages`目录,再将该目录内容上传至云上的`wwwroot`目录,并重启应用。最终成功加载函数列表。
|
2月前
|
Java Python
> python知识点100篇系列(19)-使用python下载文件的几种方式
【10月更文挑战第7天】本文介绍了使用Python下载文件的五种方法,包括使用requests、wget、线程池、urllib3和asyncio模块。每种方法适用于不同的场景,如单文件下载、多文件并发下载等,提供了丰富的选择。
|
计算机视觉 Python
【python图像处理】tiff文件的保存与解析
【python图像处理】tiff文件的保存与解析 tiff文件是一种常用的图像文件格式,支持将多幅图像保存到一个文件中,极大得方便了图像的保存和处理。python中支持tiff文件处理的是libtiff模块中的TIFF类(libtiff下载链接https://pypi.python.org/pypi/libtiff/)。
5111 0
|
18天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
17天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
5天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
98 80