Python中ArcPy实现栅格图像文件由HDF格式批量转换为TIFF格式
本文介绍基于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 arcpyhdf_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_filehdf_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
的格式保存了。
欢迎关注公众号/CSDN/知乎/微博:疯狂学习GIS
Python中ArcPy实现栅格图像文件由HDF格式批量转换为TIFF格式相关推荐
- python + ffmpeg 将某站的缓存视频文件批量转换为MP4格式
这是一篇很无聊的文章,之所以写它是因为这周还没写博客,但是好像没啥可写的,刚好今天突发奇想,想要把某站的APP缓存视频文件转化为mp4 格式,方便在电脑上看,方法很简答,很快就做完了,所以,又一篇水文 ...
- Python中ArcPy实现对大量长时间序列栅格遥感影像批量逐像元求取像素平均值
本文介绍基于Python中ArcPy模块,对大量长时间序列栅格遥感影像文件的每一个像元进行多时序平均值的求取. 在遥感应用中,我们经常需要对某一景遥感影像中的全部像元的像素值进行平均值求取-- ...
- Python中ArcPy栅格裁剪栅格:批量对齐栅格图像范围并统一行数与列数
本文介绍基于Python中ArcPy模块,实现基于栅格图像批量裁剪栅格图像,同时对齐各个栅格图像的空间范围,统一其各自行数与列数的方法. 首先明确一下我们的需求.现有某一地区的多张栅格遥感影像 ...
- Python中ArcPy读取Excel表格数据创建矢量要素图层并生成属性表字段与内容
1 任务需求 首先,我们来明确一下本文所需实现的需求. 现有一个记录北京市部分PM2.5浓度监测站点信息的Excel表格数据,格式为.xls:文件内包含站点编号.X与Y坐标.站点名称等四列数据 ...
- arcpy将img栅格批量转换为tif格式:
arcpy将img栅格批量转换为tif格式: img栅格批量转换为tif:完整实例下载 import os #加载os库 import arcpy #加载arcpy库file_dir=r"C ...
- 利用Python和GDAL把MODIS的HDF格式表观反射率产品MOD09A1转换为TIFF格式并重投影到与LANDSAT8-OLI一致
解释 1.MOD09A1是表观反射率产品,是HDF格式并且投影和常用的Landsat数据不一致.为了统一反演时使用,想要将该产品转换为TIFF格式并重投影.特别是要批量的进行转换和重投影. 2.采用P ...
- python matplotlib模块画出的图像转换为.tiff格式
利用python matplotlib模块(python3.7.1)画出的图表暂不支持直接导出.tiff格式的图片,但是可以导出eps, pdf, pgf, png, ps, raw, rgba, s ...
- 【ASE+python】实现将poscar格式文件批量转换为xsd格式文件
将poscar格式文件批量转换为xsd格式文件 ASE介绍 ASE安装 ASE的ase.io.read()与ase.io.write() ase.io.read() ase.io.write() 单份 ...
- 如何用python将nc格式文件转换为tif格式
可以使用gdal库来将nc格式文件转换为tif格式,具体步骤如下: 安装gdal库:pip install gdal 使用gdal库中的gdal_translate函数:gdal_translate ...
最新文章
- oracle查询用户连接记录,记录ORACLE用户登录信息
- Matchme php script_apache php-fpm Primary script unknown\n - TechBlog
- (转)json-lib 的maven dependency
- leetcode 64. Minimum Path Sum
- php接收dup,TCP与DUP简单对比
- 简单的反射 把datatable 转换成list对象
- Navicat for SQLite 10.1.3 注册码
- 用C#实现DES加密解密解决URL参数明文的问题
- JavaScript学习(七十一)—call、apply、bind学习总结
- python实现登陆注册跳转_Python模拟登录和登录跳转的参考示例
- vue 免费个人博客模板
- 微信与多闪之争背后,好友关系链到底是如何窃取的?
- 第五次课堂总结——付胤
- 【历史上的今天】8 月 10 日:“龙芯”点亮操作系统;谷歌宣布拆分;计算机先驱诞生日
- luogu P4390 [BOI2007]Mokia 摩基亚
- 【HTML学习】表格相关(01)- 增强版
- 【鸡头?凤尾?】选择大公司还是小公司是个问题
- empty: false 关于这个问题的解决
- Sqoop Flume 数据采集引擎
- 数据库操作 -- C#, MYSQL,动软
热门文章
- 使用css 中自定义属性(变量)
- Netfilter数据包流向图
- Python错题集(贰)
- 我的世界html如何安装mod,网易我的世界怎么装mod(mod安装详细教程)
- crown ether-PEG-Vitamin D 冠醚-聚乙二醇-维生素D 冠醚-PEG-VD
- Web3中文|未来的工作模式:VR头显、元宇宙和供应商协作
- 通达信接口python的安装方法
- 【数据库基础】EER图(Enhanced Entity-Relationship Modelling)
- c语言scanf函数用法完全攻略,C语言scanf函数用法完全攻略
- 英语阅读速度飞升只需加粗几个字母,网友试后直呼快得停不下来,华为NLP专家:这很合理...