我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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文件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录