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

作者:Amyniez 时间:2021-02-22 18:59:56 

1.Python3读取hdf文件

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

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

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

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

2.使用Python2读取hdf文件

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

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

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

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

配置成功!

3. 如何使Python2和3兼容

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

3.1 修改Python2.7的名字

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

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

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

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

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

python版本号查看:

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

配置成功!

3.2 pip更新

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

在DOS命令框输入命令:

1. pip3:

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

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

2. pip2

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

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

以上配置完成!

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

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

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

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

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

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

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

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

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

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文件并转化为tiff格式输出

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

读取并转换成功!

来源:https://blog.csdn.net/amyniez/article/details/125825307

标签:Python,读取,hdf,文件,转化,tiff,格式,输出
0
投稿

猜你喜欢

  • c#使用FreeSql生产环境时自动升级备份数据库

    2024-01-22 15:56:01
  • Python中文分词实现方法(安装pymmseg)

    2023-12-06 02:43:41
  • Django MTV和MVC的区别详解

    2023-06-08 10:15:19
  • Yolov5(v5.0)+pyqt5界面设计图文教程

    2023-01-30 03:30:16
  • Python实现的质因式分解算法示例

    2021-12-16 23:10:05
  • window.onload使用指南

    2024-04-18 10:58:51
  • Python玩转加密的技巧【推荐】

    2023-06-26 07:01:31
  • 用python登录带弱图片验证码的网站

    2023-04-28 12:22:22
  • 关于python pycharm中输出的内容不全的解决办法

    2023-09-23 16:45:26
  • 有关Server.Mappath详细接触

    2010-07-07 11:35:00
  • mysql 8.0.18 安装配置优化教程

    2024-01-19 22:43:59
  • unittest+coverage单元测试代码覆盖操作实例详解

    2021-10-09 09:32:24
  • PHP getDocNamespaces()函数讲解

    2023-06-13 22:19:06
  • PyTorch搭建多项式回归模型(三)

    2022-09-04 00:43:49
  • 根据多条件查询临时表 想得到不同结果集的方法

    2024-01-23 22:49:37
  • php微信公众号开发(4)php实现自定义关键字回复

    2024-04-28 09:45:33
  • 使用Python编写一个简单的tic-tac-toe游戏的教程

    2021-01-26 04:27:43
  • 详解auto-vue-file:一个自动创建vue组件的包

    2024-05-11 09:11:32
  • 仿淘宝星级评分效果

    2010-09-03 18:37:00
  • Python3中PyQt5简单实现文件打开及保存

    2023-10-17 21:45:52
  • asp之家 网络编程 m.aspxhome.com