Python读取hdf文件并转化为tiff格式输出

 更新时间:2022年07月17日 15:43:09   作者:Amyniez  
这篇文章主要介绍了Python读取hdf文件并转化为tiff格式输出,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

1.Python3读取hdf文件

最开始使用Python导入pyhdf包的时候是可以的,但是当导入pyhdf.SD的时候就出现了以下问题:

我查询了很多的相关问题,但是都不能解决我的问题。
网络上解释,这种原因是由于 numpypyhdf 的版本号不对应所造成的,而我用的是Python3.9版本,确实找不到哪一个版本的numpy与之对应。
但是网上有人说是因为pyhdf只能在Python2中才能运行,于是我又下载了Python2.7,但其实pyhdf在Python2、3上都能运行:

2.使用Python2读取hdf文件

我在官网上下载了最新的Python2.7.18版本(目前已停止更新),并进行安装。
安装好Python2.7之后,需要重新配置环境变量:此电脑(右击)——属性——高级系统设置——环境变量(高级)——在系统变量(s)的path中添加Python2.7的路径:

配置好之后,可以在CMD命令窗口中输入python查看,是否成功。

配置成功!

3. 如何使Python2和3兼容

因为我电脑里面原本装有Python3.9,此时又装入了Python2.7,某些命令难免会冲突,比如,pip下载whl时,不知道是下载到那个版本中,所以这里需要使两个版本区别开来。

3.1 修改Python2.7的名字

修改 python.exe 名字为 python2.exepython3.exe

之后再在CMD窗口中运行Python:

python版本号查看:

配置成功!

3.2 pip更新

Python 安装包需要用到包管理工具pip,但是当同时安装python2和python3的时候,pip只是其中一个版本,以下将提供一个修改方式,即重新安装两个版本的pip,使得两个python版本的pip能够共存。

在DOS命令框输入命令:

1. pip3:

python3 -m pip install --upgrade pip --force-reinstall

2. pip2

python2 -m pip install --upgrade pip --force-reinstall

以上配置完成!

3.2 使用pip2下载python2.7对应的包

这里简单下载了numpy、GDAL、hypdf,其中GDAL和pyhdf只在官网下载的:

pip install GDAL-2.2.4-cp27-cp27m-win_amd64.whl

**注意:**要切换到文件所在文件夹,才能完成安装!

pyhdf.SD成功导入,问题解决:

4. 使用python2.7.18读取hdf文件并输出为TIFF格式

# -*- coding : utf-8 -*-
# C:/python2.7
from osgeo import gdal, ogr, osr
import warnings
warnings.simplefilter ("ignore")
from osgeo import gdal
from pyhdf.SD import SD, SDC, SDim
'''File path'''
filepath = r'E:\08frost\2008\NIEER_CGF-MODIS_SCE_20080101_DAILY_500m_V02.hdf'
'''Data'''
filename = filepath.split('\\')[-1].split('.')[0]
hdf = SD(filepath)
snow = hdf.select('Day_Snow_Cover_Area').get()
'''Spatial Reference'''
sr = osr.SpatialReference()
sr.ImportFromEPSG(4326)
s=sr.ExportToWkt()
driver=gdal.GetDriverByName("GTiff")
dataset=driver.Create(filename+'.tif',14000,8000,1,gdal.GDT_Int16, ["TILED=YES", "COMPRESS=LZW"])
im_geotrans=(72,0.005,0.0,56,0.0,-0.005)
dataset.SetGeoTransform(im_geotrans)
dataset.SetProjection(s)
dataset.GetRasterBand(1).WriteArray(snow)

文件展示:

读取并转换成功!

到此这篇关于Python读取hdf文件并转化为tiff格式输出的文章就介绍到这了,更多相关Python读取hdf文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Python进行稳定可靠的文件操作详解

    使用Python进行稳定可靠的文件操作详解

    在本文中,主要分享一些如何在Python代码中改善I/O可靠性的见解,大家参考使用吧
    2013-12-12
  • 深入理解Python对Json的解析

    深入理解Python对Json的解析

    Json是一种常用的数据交换结构,由于轻量、易于阅读和编写等特点,在网络方面应用很广。下面这篇文章主要介绍了Python对Json解析的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-02-02
  • Python报错:NameError: name ‘xxx‘ is not defined的解决办法

    Python报错:NameError: name ‘xxx‘ is not defined的解决办法

    这篇文章主要给大家介绍了关于Python报错:NameError: name ‘xxx‘ is not defined的解决办法,文中通过代码介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-06-06
  • python如何将aac转为mp3,保持原有目录结构

    python如何将aac转为mp3,保持原有目录结构

    使用Python脚本实现AAC格式转MP3格式的方法介绍,需要用户输入AAC文件所在目录路径和MP3输出目录路径,通过调用FFmpeg工具实现格式转换,该脚本简单易懂,适合需要批量处理音频文件的用户,使用前需确保已安装FFmpeg环境
    2024-11-11
  • python在文本开头插入一行的实例

    python在文本开头插入一行的实例

    下面小编就为大家分享一篇python在文本开头插入一行的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Django框架中处理URLconf中特定的URL的方法

    Django框架中处理URLconf中特定的URL的方法

    这篇文章主要介绍了Django框架中处理URLconf中特定的URL的方法,Django是丰富多彩的Python框架中最具人气的一个,需要的朋友可以参考下
    2015-07-07
  • Python实现简易信息分类存储软件

    Python实现简易信息分类存储软件

    这篇文章主要介绍的是通过Python制作一个简易的文件分类存储文件,可以实现信息的增删改查以及内容的导出和回复,文中的示例代码对我们的学习有一定的价值,感兴趣的同学可以了解一下
    2021-12-12
  • Python初学者需要注意的事项小结(python2与python3)

    Python初学者需要注意的事项小结(python2与python3)

    这篇文章主要介绍了Python初学者需要注意的事项小结,包括了python2与python3的一些区别,需要的朋友可以参考下
    2018-09-09
  • Python中使用Counter进行字典创建以及key数量统计的方法

    Python中使用Counter进行字典创建以及key数量统计的方法

    今天小编就为大家分享一篇Python中使用Counter进行字典创建以及key数量统计的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python 内置高阶函数详细

    Python 内置高阶函数详细

    这篇文章主要介绍了Python 内置高阶函数,文中要介绍的内置高阶函数有map()、reduce() 函数、reduce() 函数、sorted() 函数,需要的朋友可以参考一下文章的详细内容
    2021-11-11

最新评论