本文介绍基于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. TypeScript 合并以及删除数组数据

    1.添加 concat() 2.删除(替换) splice() array.splice(index,int,any) index 是 array数组起始位置的index(从0开始) int是操作从i ...

  2. python_列表和元组的转换

    1, 通过list函数将元组的数据获取到,保存到新定义的列表里面.备注:元组的数据不会更改. info_tuple = ("小明", 24, 1.75) info_list = l ...

  3. Python学习笔记之7.5 - 定义有默认参数的函数》》》直接在函数定义中给参数指定一个默认值,默认参数的值应该是不可变的对象

    问题: 你想定义一个函数或者方法,它的一个或多个参数是可选的并且有一个默认值. 解决方案: 定义一个有可选参数的函数是非常简单的,直接在函数定义中给参数指定一个默认值,并放到参数列表最后就行了.例如: ...

  4. Java-String常用API

    返回值类型 方法 用途 备注 char charAt(int index) 返回 char指定索引处的值.   int compareTo(String anotherString) 按字典顺序比较两 ...

  5. bgp多线互联

    BGP(边界网关协议)主要用于互联网AS(自治系统)之间的互联,BGP的最主要功能在于控制路由的传播和选择最好的路由. 中国网通 .中国电信.中国铁通.教育网和一些大的民营IDC运营商都具有AS号,全 ...

  6. Java中File类

    File类是java.io包中唯一代表磁盘文件本身的对象.File类的对象主要用来获取文件本身的一些信息,如文件所在目录.文件长度.读写权限等. 一. 文件的创建与删除 通常使用以下三种方法来创建一个 ...

  7. JavaSSM

    Day1221 一.IT行业分类 前端 用户界面,眼睛能看到的,视觉效果比较. html5.css和css3.javascript.jquery.技术基础 bootstrap(css框架).vue.j ...

  8. 【逆向】x64dbg设置条件断点 比较内存字符串是否相等

    前言 在OD中可以设置条件断点,通过表达式对字符串数据进行比较,比如在CreateFile打开某个特定文件的时候让调试器中断.但是在x32dbg.x64dbg中因为表达式只支持整数,不支持字符串和其它 ...

  9. js 复制链接内容

    <script type="text/javascript">//复制活动地址 function shareUrl(id) { var url = 'http://H5 ...

  10. uniapp+uView搜索列表变颜色

    首先看一下页面效果: <template> <view class="page"> <b-nav-bar title="公司多维图" ...