1.パッケージpyhdfをインストールします。
(1)このリンクを見つけ、pyhdfパッケージをダウンロード:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame(独自のシステムやPythonのバージョンに応じて、対応するpyhdfパッケージを選択します)
(2)ドスのハンドオーバコマンドでフォルダをパッケージ化するために、インストールパッケージ名をインストールして実行PIP。
2.読み取りHDF4ファイル
#インポート・パッケージ
pyhdf.SDインポートから*
OSGEOインポートOSRから
NPとしてnumpyのインポート
(1)#は、ファイルを読みます
ファイル= "3B43.20100501.7.HDF"
HDF = SD(ファイル)
#情報HDFファイル属性取得
)(= hdf.attributes ATTR
#行と列と他の情報取得HDFファイルの層、及び各層が該当する、データセットは、辞書であります
データセット= hdf.datasets()
#は、特定の層を読む(私はここにあるレイヤは、雨層である)、レイヤ名は、データセットで見ることができます。そして、データ収集層
rainfall_array = hdf.select( "降水量")。(取得)
回転転置の#レイヤー(ここでは転置私がしなければならないあなたは、独自の層を見ることで、この手順を実行する必要があり、私のニーズに起因する層を、回転しています)
#行列に周りのフリッピング
データ= np.fliplr(rainfall_array)
行列の転置の#
データ= np.transpose(データ)
#レイヤー・バイ・時間データからデータを読み込み、我々は月次データに変換する場合があります
日付=日付* 24 * 31
#は2バイト整数のデータに変換します
D = data.astype(np.uint16)
(2)TIFファイル転送
#空の投影オブジェクトのインスタンスを作成します
REF = osr.SpatialReference()
#DEFINE射影(投影パラメータが導入されました)
#WGS84座標系を設定します。
ref.ImportFromEPSG(4326)
#Viewの参照システム情報
S = ref.ExportToWkt()
#GDALのは、話すと(私は上記の読みレイヤ情報から主にここでパラメータを作成します)あまりをしないここで説明し、同様のTIFファイルに書き込みます
ドライバ= gdal.GetDriverByName( "GTiff")
データセット= driver.Create( "prec_self.tif"、1440年、400、1、gdal.GDT_UInt16)
上記層に主から読み出さここ#アフィン変換パラメータ。レイヤーは、独自の自己取得し表示することができます
im_geotrans =( - 180,0.25,0.0,50,0.0、-0.25)
dataset.SetGeoTransform(im_geotrans)
dataset.SetProjection(S)
dataset.GetRasterBand(1).WriteArray(D)
デルのデータセット