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

  至此,大功告成。

HDF格式遥感影像批量转为TIFF格式:ArcPy实现的更多相关文章

  1. 将DOS格式的shell脚本转为UNIX格式

    shell脚本是UNIX格式,在修改其中内容时,务必保持UNIX格式.UE编辑器打开时,会询问是否转为DOS格式,请点否.如果修改完成后,不能确认是否为DOS格式,可以使用UE文件菜单下的Conver ...

  2. excel批量转换为CSV格式,xls批量导出csv格式

    工具/原料   excel 2013 地址链接:http://pan.baidu.com/s/1c1ZABlu 密码:d3rc 方法/步骤     首选我们把需要导出为CVS的Excel文件整理集中到 ...

  3. js字符串转为日期格式

    1. <script type="text/javascript"> //字符串转日期格式,strDate要转为日期格式的字符串 function getDate(st ...

  4. 在java中使用ffmpeg将amr格式的语音转为mp3格式

    ffmpeg是一个非常强大的音视频处理工具,官网是:http://ffmpeg.org/. 由于ffmpeg在windows上和linux系统上的执行文件不一样(Windows上不需要安装ffmpeg ...

  5. C# Word转为多种格式文件(Word转XPS/SVG/EMF/EPUB/TIFF)

    一款有着强大的文档转换功能的工具,无论何时何地都会是现代办公环境极为需要的.在本篇文章中,将继续介绍关于Word文档的转换功能(Word转XPS/SVG/EMF/EPUB/TIFF)希望方法中的代码能 ...

  6. Earthdata批量下载MODIS遥感影像的方法

      本文介绍在Earthdata网站中,批量下载MODIS遥感影像的方法.   首先,打开网页:https://search.earthdata.nasa.gov/search ,如果没有Earthd ...

  7. convert 批量文件的格式转换

    1.将 a.gif 转为 png 格式 convert a.gif a.png 请注意,convert 命令的基本格式为 convert 源文件 [参数] 目标文件 在上面的命令中,源文件是 a.gi ...

  8. C#RSA算法实现+如何将公钥为XML格式转为PEM格式,给object-C使用

    .net中,处于安全的考虑,RSACryptoServiceProvider类,解密时只有同时拥有公钥和私钥才可以.原因是公钥是公开的,会被多人持有.这样的数据传输是不安全的.C#RSA私钥加密,公钥 ...

  9. Convert PLY to VTK Using PCL 1.6.0 使用PCL库将PLY格式转为VTK格式

    PLY格式是比较流行的保存点云Point Cloud的格式,可以用MeshLab等软件打开,而VTK是医学图像处理中比较常用的格式,可以使用VTK库和ITK库进行更加复杂的运算处理.我们可以使用Par ...

  10. java批量转换图片格式

    废话不多直接上代码,代码其实也不多.... package com.qiao.testImage; import java.awt.image.BufferedImage; import java.i ...

随机推荐

  1. Oracle深入数据库体系结构_第三章文件

    构成数据库和实例的8种主要文件类型: 参数文件:(init file) 可以通过视图V$PARAMETER(show parameter)查看 跟踪文件 警告文件 数据文件 临时文件 控制文件 重做日 ...

  2. ES6的模块化(export导出)

    ES6 Module把一个文件当作一个模块,每个模块有自己的独立作用域,那如何把每个模块联系起来呢?核心点就是模块的导入(import)与导出(export). 模块化的好处: 防止命名冲突 代码复用 ...

  3. 在控制台中输入msqyl一直报ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost'错误

    错误: 在绿色Mysql的bin文件下打开cmd,输入mysql,一直报ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' ...

  4. springboot java redis 监听超时事件

    package ideal4j.pfa.config.redis; import cn.hutool.core.date.DateTime; import com.alibaba.fastjson.J ...

  5. ADOConnection调用连接窗口

    uses   AdoConEd; 使用函数 1.EditConnectionString(ADOConnection); 2.PromptDataSource

  6. Windows 10 ~ Docker 安装

    Windows安装Docker 不推荐在Windows系统安装Docker,会有一些奇怪的坑不容易解决,建议windows环境安装虚拟机,通过虚拟机中的Linux系统安装Docker 官方安装文档 9 ...

  7. WPF_MahApps.Metro界面主题使用

    一.创建WPF项目: 二.下载MahApps.Metro: 三.修改MainWindow.xaml 1.添加一栏: xmlns:mah="clr-namespace:MahApps.Metr ...

  8. springboot项目打成jar包,启动指定外部的yml文件

    java -jar xxx.jar --spring.config.local=application.yml

  9. VMWare安装CentOS 7系统 & 操作系统优化

    1.准备工作 (1)VMWare 14:https://download3.vmware.com/software/wkst/file/VMware-workstation-full-14.1.1-7 ...

  10. Deformable DETR (ICLR2021)

    Pre-Trained Image Processing Transformer paper:https://arxiv.org/abs/2010.04159 code:https://github. ...