xarray.dataset.assignができないことについて(降雪量分布図作成の作業途中)
解決したいこと
気象庁GSMデータ(grib2形式)を用いて、降雪量の分布を図示しようとしています
pygribでなぜか降水量データ(APCP)のデータだけ読み込むことができなかったので、一度netCDF形式に変換したのち、xarrayでの処理を試みました。
降水量(APCP)と温度(TMP)から、降雪量の演算をし、xarray.dataset.assign(参考1)により、降雪量を新規変数(variable)として割り当てようと思ったのですが、xr.open.datasetでnetCDFを読み込むと、read only fileになるようで(参考2)、割り当てができません。
dataset.load()により、内部メモリに読み込んで作業しても同様です(参考3)。
何かアドバイスをいただけないでしょうか?
発生している問題・エラー
エラーにはなりませんが、変数一覧に、元データの「TMP_2maboveground」、「APCP_surface」のみ表示され、assignで割り当てたはずの「yuki」という変数が、表示されません。(そのため「yuki」を使った演算ができません)
該当するソースコード
nc=xr.open_mfdataset(["c:/Users/user/documents/ok1.nc","c:/Users/user/documents/ok2.nc","c:/Users/user/documents/ok3.nc"]).load()
nc.assign(yuki=nc['APCP_surface']*2.25/(1+np.exp((nc['TMP_2maboveground']-273.15-0.413)/0.814)))
print(nc)
<xarray.Dataset>
Dimensions: (latitude: 80, longitude: 60, time: 101)
Coordinates:
* latitude (latitude) float64 30.0 30.2 30.4 30.6 ... 45.4 45.6 45.8
* longitude (longitude) float64 130.0 130.2 130.5 ... 144.5 144.8
* time (time) datetime64[ns] 2021-01-01 ... 2021-01-06T12:00:00
Data variables:
TMP_2maboveground (time, latitude, longitude) float32 286.2 285.9 ... 269.6
APCP_surface (time, latitude, longitude) float32 nan nan ... 13.38
Attributes:
Conventions: COARDS
History: created by wgrib2
GRIB2_grid_template: 0
参考にしたHP
参考1
http://xarray.pydata.org/en/stable/generated/xarray.Dataset.assign.html
参考2
http://xarray.pydata.org/en/stable/generated/xarray.open_mfdataset.html
参考3
http://xarray.pydata.org/en/stable/io.html
0 likes