海のマスク
    Top > Python > 描画 > 地図 (Basemap)
    maskoceans
    lonsin, latsin グリッドの緯度経度(2次元配列)
    datain マスクする2次元配列
    inlands 内陸の水面(湖など)もマスクする
    resolution 海岸線の解像度('c', 'l', 'i', 'h', 'f')
    grid マスクの解像度(10, 5, 2.5, 1.25; 単位は分)
    西経は-180~0の範囲で表さなければ認識してくれないことに注意. 以下では0~360°のデータをマスクする.
    エラー
    TypeErrorが発生した.  エラーメッセージを読みながらひとつひとつ実行していくと,どうもnumpy.reshapeで配列の形状を指定する変数がintegerではなくfloatになっているらしい.  /usr/local/src/pyenv/versions/3.6.1/lib/python3.6/site-packages/mpl_toolkits/basemap/__init__.pyの5132行目にnlons, nlatsが出てくる.  いずれもその少し前で定義されており,nlonsはnlons = 4320, nlatsはnlats = nlons/2となっている.ここでnlatsがfloatになってしまうためnumpy.reshapeでTypeErrorを起こす,というわけ.  仕方ないので管理者権限で以下のように書き換えたところ,問題なく通るようになった. (old) nlats = nlons/2 (new) nlats = int(nlons/2)
    References
    matplotlib basemap toolkit — Basemap Matplotlib Toolkit 1.2.1 documentation + https://matplotlib.org/basemap/api/basemap_api.html http://seesaawiki.jp/met-python/d/Basemap + Basemap - memoring plot - Plotting oceans in maps using basemap and python - Stack Overflow + https://stackoverflow.com/questions/31996071/plotting-oceans-in-maps-using-basemap-and-python