はじめに
pywdcggは、温室効果ガス世界資料センター(World Data Center for Greenhouse Gas)から提供されているデータをpythonで読み込み・解析するためにモジュールを作成し、GitHubで公開しました。
pywdcgg レポジトリ
本記事は、pywdcggのマニュアルとしてまとめていきます。
0.インポート
現時点では、PyPIに登録していないため、githubからレポジトリをダウンロードしてsys
を用いてPATHを通すことを推奨いたします。
import sys
sys.path.append("pywdcgg/pywdcgg/")
import pywdcgg as pw
1.read_file クラス
ファイルの読み込みに関わるクラスです。
初めに、WDCGGからダウンロードした.txtを読み込ませてください。
ここでは、昭和基地におけるメタンの月別データを例として使用します。
import pywdcgg as pw
rdat = pw.read_file("ch4/SYO/monthly/ch4_syo_surface-flask_2_3001-9999_monthly.txt")
1.1 header_info メソッド
ファイルの基本的な情報を取得します。
現状では、
- site_name(観測地点名)
- latitude(緯度)
- longitude(経度)
- elevation(標高)
- parameter(対象物質)
- start_date(観測データ開始日)
- end_date(観測データ終了日)
- unit(単位)
を対象としています。
rdat = pw.read_file("../data/ch4/SYO/monthly/ch4_syo_surface-flask_2_3001-9999_monthly.txt")
print(rdat.about_info())
# {'site_name': ' Syowa', 'latitude': '-69.0053', 'longitude': '39.5811', 'elevation': '29.1', 'parameter': 'ch4', 'start_date': '1986-04-01T00:00:00Z', 'end_date': '2020-12-01T00:00:00Z', 'unit': 'ppb'}
1.2 get_value メソッド
ファイルからデータを読み込みます。
基本的な使い方
import pywdcgg as pw
rdat = pw.read_file("ch4/SYO/monthly/ch4_syo_surface-flask_2_3001-9999_monthly.txt")
dat = rdat.get_value()
print(dat)
"""
date site_gaw_id year month day hour ... flask_no ORG_QCflag QCflag instrument measurement_method scale
0 1986/04 SYO 1986 4 1 0 ... -999.999 -999.999 1 -9 -9 3
1 1986/05 SYO 1986 5 1 0 ... -999.999 -999.999 1 -9 -9 3
2 1986/06 SYO 1986 6 1 0 ... -999.999 -999.999 1 -9 -9 3
3 1986/07 SYO 1986 7 1 0 ... -999.999 -999.999 1 -9 -9 3
4 1986/08 SYO 1986 8 1 0 ... -999.999 -999.999 1 -9 -9 3
.. ... ... ... ... ... ... ... ... ... ... ... ... ...
399 2020/08 SYO 2020 8 1 0 ... -999.999 -999.999 1 -9 -9 3
400 2020/09 SYO 2020 9 1 0 ... -999.999 -999.999 1 -9 -9 3
401 2020/10 SYO 2020 10 1 0 ... -999.999 -999.999 1 -9 -9 3
402 2020/11 SYO 2020 11 1 0 ... -999.999 -999.999 1 -9 -9 3
403 2020/12 SYO 2020 12 1 0 ... -999.999 -999.999 1 -9 -9 3
"""
とすることで、DataFrame
を出力します。
YYYY/MM形式のdateカラムを作成し、DataFrameを生成する
import pywdcgg as pw
rdat = pw.read_file("ch4/SYO/monthly/ch4_syo_surface-flask_2_3001-9999_monthly.txt")
dat = rdat.get_value(make_date=True) #defaultでは、False
print(dat)
"""
date site_gaw_id year month day hour ... flask_no ORG_QCflag QCflag instrument measurement_method scale
0 1986/04 SYO 1986 4 1 0 ... -999.999 -999.999 1 -9 -9 3
1 1986/05 SYO 1986 5 1 0 ... -999.999 -999.999 1 -9 -9 3
2 1986/06 SYO 1986 6 1 0 ... -999.999 -999.999 1 -9 -9 3
3 1986/07 SYO 1986 7 1 0 ... -999.999 -999.999 1 -9 -9 3
4 1986/08 SYO 1986 8 1 0 ... -999.999 -999.999 1 -9 -9 3
.. ... ... ... ... ... ... ... ... ... ... ... ... ...
399 2020/08 SYO 2020 8 1 0 ... -999.999 -999.999 1 -9 -9 3
400 2020/09 SYO 2020 9 1 0 ... -999.999 -999.999 1 -9 -9 3
401 2020/10 SYO 2020 10 1 0 ... -999.999 -999.999 1 -9 -9 3
402 2020/11 SYO 2020 11 1 0 ... -999.999 -999.999 1 -9 -9 3
403 2020/12 SYO 2020 12 1 0 ... -999.999 -999.999 1 -9 -9 3
"""
データの期間を限定してDataFrameを生成する
import pywdcgg as pw
rdat = pw.read_file("ch4/SYO/monthly/ch4_syo_surface-flask_2_3001-9999_monthly.txt")
dat = rdat.get_value(syr=2000,fyr=2018) #syr: start year, fyr : final year
print(dat)
"""
site_gaw_id year month day hour minute ... flask_no ORG_QCflag QCflag instrument measurement_method scale
0 SYO 2000 1 1 0 0 ... -999.999 -999.999 1 -9 -9 3
1 SYO 2000 2 1 0 0 ... -999.999 -999.999 1 -9 -9 3
2 SYO 2000 3 1 0 0 ... -999.999 -999.999 1 -9 -9 3
3 SYO 2000 4 1 0 0 ... -999.999 -999.999 1 -9 -9 3
4 SYO 2000 5 1 0 0 ... -999.999 -999.999 1 -9 -9 3
.. ... ... ... ... ... ... ... ... ... ... ... ... ...
223 SYO 2018 8 1 0 0 ... -999.999 -999.999 1 -9 -9 3
224 SYO 2018 9 1 0 0 ... -999.999 -999.999 1 -9 -9 3
225 SYO 2018 10 1 0 0 ... -999.999 -999.999 1 -9 -9 3
226 SYO 2018 11 1 0 0 ... -999.999 -999.999 1 -9 -9 3
227 SYO 2018 12 1 0 0 ... -999.999 -999.999 1 -9 -9 3
"""
2. 描画
2.1 world_mapメソッド
世界地図に描画するメソッドです。
基本的な使い方は、
import sys
sys.path.append("../../pywdcgg/")
import pywdcgg as pw
import matplotlib.pyplot as plt
lon = 136.6
lat = 36.6
fig,ax = pw.world_map(lon,lat)
plt.show()
です。もし、世界地図内にcolorbar
を使用したい場合は、
import sys
sys.path.append("../../pywdcgg/")
import pywdcgg as pw
import matplotlib.pyplot as plt
lon = 136.6
lat = 36.6
data = 10
fig,ax = pw.world_map(lon,lat,data=data)
plt.show()
とすることで、下記のように実装できます。
その他のパラメーターについては、以下の通り
world_map(long,
lat,
data=None,
resolution="10m",
dlon=60,
dlat=30,
min_long=-180,
min_lat=-90,
max_long=180,
max_lat=90,
msize=30,
cmap="jet",
vmin=None,
vmax=None,
)
Parameter | 説明 |
---|---|
data | colorbarに入力したいデータ (default : None) |
resolution | 解像度(詳細はこちら) (default : 10m) |
dlon | 図中の経度間隔(default : 60) |
dlat | 図中の緯度間隔(default : 30) |
min_long | 図中の最小経度(default : -180) |
min_lat | 図中の最小緯度(default : -90) |
max_long | 図中の最大経度(default : 180) |
max_lat | 図中の最大緯度(default : 90) |
msize | マーカーサイズ)(default : 30) |
cmap | カラーマップ(詳細はこちらから)(default : jet) |
vmin | カラーバーの最小値(default : None) |
vmax | カラーバーの最大値(default : None) |
更新日
- 2021.10.03 初版作成
- 2021.10.20 world_mapメソッド追記