0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Pythonモジュール『pywdcgg』の使い方

Last updated at Posted at 2021-10-03

はじめに

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()

とすることで、下記のように実装できます。

スクリーンショット 2021-10-20 21.45.23.png

その他のパラメーターについては、以下の通り

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メソッド追記
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?