国立研究開発法人防災科学技術研究所 水・土砂防災研究部門
国立研究開発法人防災科学技術研究所 水・土砂防災研究部門
トップ 一覧 検索 ヘルプ RSS ログイン

Python-NetCDFでの欠損値の扱い-set_auto_mask

Python では、NetCDFを読み込んだ場合、
ある変数で、missing_valueに定義された値と同じ値が読み込まれた場合、
配列の中の値が、-- とされて、マスクされてしまう。

例えば、自分ではmissing_value = -999 としていて、
データを読み込み、if data[i] < -990 として、undef処理をしようとしても
このif には入らない。 そのため、undefを避けてプログラムを書いたつもりでも
意図しない動きをして、最終的にNanfが格納されたりする。

このように、自動的にmissing_valueをマスクしてくれることが
有り難くないことがあり、これをコントールしたい。
そこで、netcdfをopenした直後に、

nc = netCDF4.Dataset(infile,"r")
nc.set_auto_mask(False)

のように、set_auto_mask でFalseにすると、値に-999が入ってくれて、
if 文も意図どおりに動いてくれる