HDF格式遥感影像批量转为TIFF格式:ArcPy实现
本文介绍基于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实现的更多相关文章
- 将DOS格式的shell脚本转为UNIX格式
shell脚本是UNIX格式,在修改其中内容时,务必保持UNIX格式.UE编辑器打开时,会询问是否转为DOS格式,请点否.如果修改完成后,不能确认是否为DOS格式,可以使用UE文件菜单下的Conver ...
- excel批量转换为CSV格式,xls批量导出csv格式
工具/原料 excel 2013 地址链接:http://pan.baidu.com/s/1c1ZABlu 密码:d3rc 方法/步骤 首选我们把需要导出为CVS的Excel文件整理集中到 ...
- js字符串转为日期格式
1. <script type="text/javascript"> //字符串转日期格式,strDate要转为日期格式的字符串 function getDate(st ...
- 在java中使用ffmpeg将amr格式的语音转为mp3格式
ffmpeg是一个非常强大的音视频处理工具,官网是:http://ffmpeg.org/. 由于ffmpeg在windows上和linux系统上的执行文件不一样(Windows上不需要安装ffmpeg ...
- C# Word转为多种格式文件(Word转XPS/SVG/EMF/EPUB/TIFF)
一款有着强大的文档转换功能的工具,无论何时何地都会是现代办公环境极为需要的.在本篇文章中,将继续介绍关于Word文档的转换功能(Word转XPS/SVG/EMF/EPUB/TIFF)希望方法中的代码能 ...
- Earthdata批量下载MODIS遥感影像的方法
本文介绍在Earthdata网站中,批量下载MODIS遥感影像的方法. 首先,打开网页:https://search.earthdata.nasa.gov/search ,如果没有Earthd ...
- convert 批量文件的格式转换
1.将 a.gif 转为 png 格式 convert a.gif a.png 请注意,convert 命令的基本格式为 convert 源文件 [参数] 目标文件 在上面的命令中,源文件是 a.gi ...
- C#RSA算法实现+如何将公钥为XML格式转为PEM格式,给object-C使用
.net中,处于安全的考虑,RSACryptoServiceProvider类,解密时只有同时拥有公钥和私钥才可以.原因是公钥是公开的,会被多人持有.这样的数据传输是不安全的.C#RSA私钥加密,公钥 ...
- Convert PLY to VTK Using PCL 1.6.0 使用PCL库将PLY格式转为VTK格式
PLY格式是比较流行的保存点云Point Cloud的格式,可以用MeshLab等软件打开,而VTK是医学图像处理中比较常用的格式,可以使用VTK库和ITK库进行更加复杂的运算处理.我们可以使用Par ...
- java批量转换图片格式
废话不多直接上代码,代码其实也不多.... package com.qiao.testImage; import java.awt.image.BufferedImage; import java.i ...
随机推荐
- QT窗口显示的风格设置
在main.cpp中添加头文件#include <QStyleFactory> 然后在QApplication a(argc, argv);后添加 a.setStyle(QStyleFac ...
- MAMP redis.conf 位置 , nginx.conf位置
/Applications/MAMP PRO.app/Contents/Resources/redis.conf /Applications/MAMP/conf/nginx/nginx.conf /A ...
- 问题:配置apache的相关配置文件报错:Invalid command 'Order' (已解决)
1. 问题描述 在虚拟文件httpd-vhosts.conf里面,directory里加入Order allow,deny,重启apache,出现Invalid command 'Order', pe ...
- 【七侠传】冲刺阶段--Day6
[七侠传]冲刺阶段--Day6 团队成员 20181221曾宇涛 20181202李祎铭 20181209沙桐 20181215薛胜瀚 20181216杨越麒 20181223何家豪 20181232 ...
- matlab读写文件
dsp,fpga这些产生的文件大部分都是二进制存储的,知道格式后可以直接读取. 读取后的"可懂"数据如何以"可懂"的形式保存在.dat,.txt,.csv之类文 ...
- mapboxGL2离线化应用
https://blog.csdn.net/GISShiXiSheng/article/details/120300679?spm=1001.2014.3001.5501
- 重写mybatis-plus的saveUpdate方法
重写mybatis-plus的saveUpdate方法 1.问题出现 同步外部数据的时候,如果需要同步逻辑删除的数据,mybatis-plus的saveOrUpdate||saveOrUpdateBa ...
- PyCharm 关闭代码风格检查
在使用PyCharm的时候,有时候,前后得空格,不然就会出现波浪线,比较烦人 关闭代码风格检查地方是:File-Settings-Editor-Inspactions-Python-PEP8 codi ...
- operations使用研究
简介 operations支持在peer或者orderer运行过程中,提供基于restful接口的运维服务.包括健康检查.日志level管理.指标metrics接口等.首先利用test-network ...
- visio使用直线绘图后不能更改
选中图形->开发工具->行为