溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python如何讀取hdf文件并轉(zhuǎn)化為tiff格式輸出

發(fā)布時間:2022-07-18 09:24:49 來源:億速云 閱讀:558 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“Python如何讀取hdf文件并轉(zhuǎn)化為tiff格式輸出”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習“Python如何讀取hdf文件并轉(zhuǎn)化為tiff格式輸出”吧!

    1.Python3讀取hdf文件

    最開始使用Python導(dǎo)入pyhdf包的時候是可以的,但是當導(dǎo)入pyhdf.SD的時候就出現(xiàn)了以下問題:

    Python如何讀取hdf文件并轉(zhuǎn)化為tiff格式輸出

    我查詢了很多的相關(guān)問題,但是都不能解決我的問題。
    網(wǎng)絡(luò)上解釋,這種原因是由于 numpypyhdf 的版本號不對應(yīng)所造成的,而我用的是Python3.9版本,確實找不到哪一個版本的numpy與之對應(yīng)。
    但是網(wǎng)上有人說是因為pyhdf只能在Python2中才能運行,于是我又下載了Python2.7,但其實pyhdf在Python2、3上都能運行:

    Python如何讀取hdf文件并轉(zhuǎn)化為tiff格式輸出

    2.使用Python2讀取hdf文件

    我在官網(wǎng)上下載了最新的Python2.7.18版本(目前已停止更新),并進行安裝。
    安裝好Python2.7之后,需要重新配置環(huán)境變量:此電腦(右擊)——屬性——高級系統(tǒng)設(shè)置——環(huán)境變量(高級)——在系統(tǒng)變量(s)的path中添加Python2.7的路徑:

    Python如何讀取hdf文件并轉(zhuǎn)化為tiff格式輸出

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

    Python如何讀取hdf文件并轉(zhuǎn)化為tiff格式輸出

    配置成功!

    3. 如何使Python2和3兼容

    因為我電腦里面原本裝有Python3.9,此時又裝入了Python2.7,某些命令難免會沖突,比如,pip下載whl時,不知道是下載到那個版本中,所以這里需要使兩個版本區(qū)別開來。

    3.1 修改Python2.7的名字

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

    Python如何讀取hdf文件并轉(zhuǎn)化為tiff格式輸出

    Python如何讀取hdf文件并轉(zhuǎn)化為tiff格式輸出

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

    Python如何讀取hdf文件并轉(zhuǎn)化為tiff格式輸出

    python版本號查看:

    Python如何讀取hdf文件并轉(zhuǎn)化為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文件并轉(zhuǎn)化為tiff格式輸出

    2. pip2

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

    Python如何讀取hdf文件并轉(zhuǎn)化為tiff格式輸出

    以上配置完成!

    3.2 使用pip2下載python2.7對應(yīng)的包

    這里簡單下載了numpy、GDAL、hypdf,其中GDAL和pyhdf只在官網(wǎng)下載的:

    Python如何讀取hdf文件并轉(zhuǎn)化為tiff格式輸出

    Python如何讀取hdf文件并轉(zhuǎn)化為tiff格式輸出

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

    **注意:**要切換到文件所在文件夾,才能完成安裝!

    Python如何讀取hdf文件并轉(zhuǎn)化為tiff格式輸出

    pyhdf.SD成功導(dǎo)入,問題解決:

    Python如何讀取hdf文件并轉(zhuǎn)化為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文件并轉(zhuǎn)化為tiff格式輸出

    Python如何讀取hdf文件并轉(zhuǎn)化為tiff格式輸出

    Python如何讀取hdf文件并轉(zhuǎn)化為tiff格式輸出

    到此,相信大家對“Python如何讀取hdf文件并轉(zhuǎn)化為tiff格式輸出”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習!

    向AI問一下細節(jié)

    免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI