#author("2018-02-05T04:03:52+09:00","default:Miyashita","Miyashita") #author("2018-07-25T23:34:39+09:00","default:Miyashita","Miyashita") *Python演習問題:NetCDFデータの読み込み & 動画作成 [#id6a3d09] ***インポート・エイリアス設定 [#w10747f5] import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation import datetime import netCDF4 #codeprettify(lang-python){{ import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation import datetime import netCDF4 }} ***問題 [#icd512da] +NetCDFファイル,wspd.mon.mean.ncを読み込みなさい. ncdata = netCDF4.Dataset(filename, 'r', format='NETCDF4') #codeprettify(lang-python){{ ncdata = netCDF4.Dataset(filename, 'r', format='NETCDF4') }} +ncファイルから変数lon, lat, time, wspdを取得しなさい. var_name = ncdata.variables['var_name'][:] #codeprettify(lang-python){{ var_name = ncdata.variables['var_name'][:] }} +変数timeをpythonのdatetime型に変換しなさい.~ (補足1)変数timeの値は1800年1月1日0時0分0秒からの経過時間(単位:hour)である.~ (補足2)1800年1月1日から1900年1月1日までの日数は36524日である.~ datetime.datetime datetime.timedelta #codeprettify(lang-python){{ datetime.datetime datetime.timedelta }} +変数wspdの最初の時刻wspd[0,:,:]のコンター図を描きなさい. fig = plt.figure() ax = fig.add_subplot(111) ax.pcolor(X, Y, C) #codeprettify(lang-python){{ fig = plt.figure() ax = fig.add_subplot(111) ax.pcolor(X, Y, C) }} +複数のステップを繰り返し描き,動画を作成しなさい. ani = animation.FuncAnimation(fig, function, fargs=(XX,XX,...), frames=n) # 方法① ani = animation.ArtistAnimation(fig, XX) # 方法② ani.save(filename) #codeprettify(lang-python){{ ani = animation.FuncAnimation(fig, function, fargs=(XX,XX,...), frames=n) # 方法① ani = animation.ArtistAnimation(fig, XX) # 方法② ani.save(filename) }} ***データ [#f2f57e99] -NCEP再解析データの月平均高度10m風速データ(京大生存圏データベース)~ #ref(http://database.rish.kyoto-u.ac.jp/arch/ncep/data/ncep.reanalysis.derived/surface/wspd.mon.mean.nc) ***解答例(参考) [#xa28f506] 1〜24ステップの2年間分の動画を作成してみた.~ #ref(https://main-t-miyashita.ssl-lolipop.jp/hydrocoast/image/python/wspd.gif)