PythonベースのGribデータの可視化

6291 ワード

作者:kallan
Python言語によるGribデータの可視化は、pygrib、numpy、matplotlibの3つのライブラリに依存します.pygribはヨーロッパ中期天気予報センター(ECMWF)のGRIG API CライブラリのPythonインタフェースであり、このライブラリを通じてGribデータを読み取ることができる.numpyはPythonのオープンソースの数値計算拡張であり、このツールは大型マトリクスを格納し、処理するために使用することができる.matplotlibはpythonの有名なグラフィックライブラリで、matlabに似たコマンドAPIのセットを提供し、インタラクティブに製図するのに適しています.データの可視化の過程で、私たちはよくデータを地図に描く必要があるので、matplotlibのサブパッケージbasemapが必要で、地図の描画を担当します.
一、ライブラリのインストール
(一)matplotlibインストール
  • matplotlib依存
  • nose
  • numpy
  • pyparsing
  • python-dateutil
  • cycler
  • pkg-config
  • freetype
  • libpng

  • インストールプロセス
  • ここで私はすべてソースパッケージを通じてインストールしたので、みんなも端末の中でpip installコマンドを通じてインストールすることができます
    1、noseのインストール
    解凍後、コマンドプロンプトで実行
    1 python3 setup.py install

    2、numpyのインストール
    解凍後、コマンドプロンプトで実行
    1 python3 setup.py install

    3、pyparsingのインストール
    解凍後、コマンドプロンプトで実行
    1 python3 setup.py install

    4、python-dateutilのインストール
    解凍後、コマンドプロンプトで実行
    1 python3 setup.py install

    5、cyclerのインストール
    解凍後、コマンドプロンプトで実行
    1 python3 setup.py install

    6、pkg-configを取り付ける
    1 ./configure --with-intermal-glib
    2 make && date
    3 sudo make install && date

    7、freetypeを取り付ける
    1  ./configure
    2  make && date
    3  sudo make install && date

    8、libpngのインストール
    1  ./configure
    2  make && date
    3  sudo make install && date

    9、matplotlib-1.5.0をインストールする
    解凍後、コマンドプロンプトで実行
    1 python3 setup.py install

    (二)basemapインストール
  • basemap依存
  • geos
  • pyproj

  • インストールプロセス
  • 1、GEOSをインストールする
    1  ./configure
    2  make && date
    3  sudo make install && date

    2、pyprojのインストール
    1 python3 setup.py install

    3、basemapのインストール
    1 python3 setup.py install

    (三)pygribインストール
  • pygrib依存
  • Jasper
  • GRIB API
  • numpy
  • pyproj

  • インストールプロセス
  • numpyとpyprojは既にインストールされているため、ここではJasperとGRIB APIをインストールするだけでpygribをインストールできます.
    1、Jasperを取り付ける
    1 ./configure
    2 make && date
    3 sudo make install && date

    2.GRIB APIのインストール
    1 ./configure --with-jasper='/usr/local/'
    2 make && date
    3 sudo make install && date

    3、pygribのインストール
    pygribをインストールする前に、まず自分の実情に基づいてファイルディレクトリのsetupを変更します.cfgファイル、最も主要なのはgrib_を修正することですapi_dirとjasper_dir、この2つはインストールしたばかりのJasperとGRIB APIのパスで、この2つのアドレスが正しくインストールされていないとエラーが発生します.
    修正すれば正常にインストールできます
    1 python3 setup.py install

    二、gribデータ読み出し
    私が作ったものは気象と縁があるが、私自身は気象専門出身ではなく、これらのものはすべて私がゆっくり研究して考えたものなので、一部の面では素人かもしれないが、間違っているところは皆さんの伝言を歓迎します.
    (一)pygribモジュールのインポート
    1 >>> import pygrib

    (二)Gribファイルを開く
    1 >>> grbs = pygrib.open('/Users/Kallan/Documents/data/echhae50.082')

    (三)ファイル情報の抽出
    1 >>> grbs.seek(0)
    2 >>> for grb in grbs:
    3 grb
    4 1:Geopotential Height:gpm (instant):regular_ll:isobaricInhPa:level 500:fcst time 24 :from 201507081200

    情報解読
    1:複数のデータを含むファイルの行番号
    Geopotential Height:データの名前
    gpm(instant):データの単位
    regular_ll:通常のデータですが、実はこのフィールドもよくわかりません.
    isobaricInhPa:このフィールドはデータ属性を表し、ここではhPa単位の等圧面を表す
    レベル500:このフィールドは高さレイヤを表しています
    fcst time 24:予報時効
    from 201507081200:報告開始時間
    以上の情報を総合すると,この文書は2015年7月8日12時からの24時間後500 hPa等圧面高さ場データである
    (四)ファイルデータのエクスポート
     1 >>> grb = grbs.select(name='Geopotential Height')[0]
     2 >>> data = grb.values
     3 >>> print(data.shape,data.min(),data.max())
     4 (37, 37) 5368.6796875 5941.0390625
     5 >>> lat,lon=grb.latlons()
     6 >>> print(lat,'
    ',lon) 7 [[ 0. 0. 0. ..., 0. 0. 0. ] 8 [ 2.5 2.5 2.5 ..., 2.5 2.5 2.5] 9 [ 5. 5. 5. ..., 5. 5. 5. ] 10 ..., 11 [ 85. 85. 85. ..., 85. 85. 85. ] 12 [ 87.5 87.5 87.5 ..., 87.5 87.5 87.5] 13 [ 90. 90. 90. ..., 90. 90. 90. ]] 14 [[-90. -87.5 -85. ..., -5. -2.5 0. ] 15 [-90. -87.5 -85. ..., -5. -2.5 0. ] 16 [-90. -87.5 -85. ..., -5. -2.5 0. ] 17 ..., 18 [-90. -87.5 -85. ..., -5. -2.5 0. ] 19 [-90. -87.5 -85. ..., -5. -2.5 0. ] 20 [-90. -87.5 -85. ..., -5. -2.5 0. ]]

    三、gribデータの可視化
    (一)必要なモジュールのインポート
    1 >>> import matplotlib.pyplot as plt
    2 >>> from mpl_toolkits.basemap import Basemap
    3 >>> import numpy as np

    (二)figureを作成する
    1 >>> plt.figure()
    2 

    (3)basemapインスタンスの作成
     1 >>> m=Basemap(projection='mill',lat_ts=10,llcrnrlon=lon.min(), \
     2  urcrnrlon=lon.max(),llcrnrlat=lat.min(),urcrnrlat=lat.max(), \
     3  resolution='c')
     4 >>> m.drawcoastlines(linewidth=0.25)
     5 
     6 >>> m.drawcountries(linewidth=0.25)
     7 
     8 >>> m.fillcontinents(color='coral',lake_color='aqua')
     9 >>> m.drawmapboundary(fill_color='aqua')
    10 
    11 >>> m.drawmeridians(np.arange(0,360,30))
    12 >>> m.drawparallels(np.arange(-90,90,30))

    (四)lat,lonのデータフォーマットを投影に必要なフォーマットに変換してx,yに格納する
    1 >>> x, y = m(lon,lat)

    (五)等値線を描く
    1 >>> cs = m.contour(x,y,data,15,linewidths=1.5)

    (六)画像の名前と表示
    1 >>> plt.title('Geopotential Height Contour from Grib')
    2 
    3 >>> plt.show()

    (七)画像展示
    End.
    転載は36ビッグデータ(36 dsj.com):36ビッグデータ»PythonベースGribデータ可視化