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 ...
随机推荐
- TypeScript 合并以及删除数组数据
1.添加 concat() 2.删除(替换) splice() array.splice(index,int,any) index 是 array数组起始位置的index(从0开始) int是操作从i ...
- python_列表和元组的转换
1, 通过list函数将元组的数据获取到,保存到新定义的列表里面.备注:元组的数据不会更改. info_tuple = ("小明", 24, 1.75) info_list = l ...
- Python学习笔记之7.5 - 定义有默认参数的函数》》》直接在函数定义中给参数指定一个默认值,默认参数的值应该是不可变的对象
问题: 你想定义一个函数或者方法,它的一个或多个参数是可选的并且有一个默认值. 解决方案: 定义一个有可选参数的函数是非常简单的,直接在函数定义中给参数指定一个默认值,并放到参数列表最后就行了.例如: ...
- Java-String常用API
返回值类型 方法 用途 备注 char charAt(int index) 返回 char指定索引处的值. int compareTo(String anotherString) 按字典顺序比较两 ...
- bgp多线互联
BGP(边界网关协议)主要用于互联网AS(自治系统)之间的互联,BGP的最主要功能在于控制路由的传播和选择最好的路由. 中国网通 .中国电信.中国铁通.教育网和一些大的民营IDC运营商都具有AS号,全 ...
- Java中File类
File类是java.io包中唯一代表磁盘文件本身的对象.File类的对象主要用来获取文件本身的一些信息,如文件所在目录.文件长度.读写权限等. 一. 文件的创建与删除 通常使用以下三种方法来创建一个 ...
- JavaSSM
Day1221 一.IT行业分类 前端 用户界面,眼睛能看到的,视觉效果比较. html5.css和css3.javascript.jquery.技术基础 bootstrap(css框架).vue.j ...
- 【逆向】x64dbg设置条件断点 比较内存字符串是否相等
前言 在OD中可以设置条件断点,通过表达式对字符串数据进行比较,比如在CreateFile打开某个特定文件的时候让调试器中断.但是在x32dbg.x64dbg中因为表达式只支持整数,不支持字符串和其它 ...
- js 复制链接内容
<script type="text/javascript">//复制活动地址 function shareUrl(id) { var url = 'http://H5 ...
- uniapp+uView搜索列表变颜色
首先看一下页面效果: <template> <view class="page"> <b-nav-bar title="公司多维图" ...