計算の前提
ClimCanvas は指示どおりに描く道具で、図が意図したものを示しているか (どのレベル・時刻を選んだか、どの範囲をどう平均したか、欠損をどう扱ったか) の確認は利用者の責任です。この章は、その判断に必要な数値上の前提を 1 か所に集めたものです。操作の説明は各章にあり、それぞれの項目からリンクします。投稿前の確認手順は出力と再現スクリプトに、図の値に影響する既知のバグはリポジトリの KNOWN_ISSUES.md にあります。
座標値の選択
領域の切り出し
範囲平均
- 既定は算術平均で、範囲内の格子点を等しい重みで平均します。緯度だけは「cos(lat) 重み付き」を選べ、各格子点に cos(緯度) の重みを掛けます。経度方向の格子間隔の違いや、不等間隔格子のセル面積は考慮しません (次元の固定)。
- NaN は除いて平均します (xarray の
meanと同じ)。範囲内がすべて NaN なら結果も NaN です。 - 経度の範囲はデータの規約 (0〜360 / -180〜180) に正規化し、日付変更線をまたぐ範囲は両側をつないでから平均します。0° と 360° が両方あるデータは片方を落として二重に数えないようにします。
- 鉛直方向 (高度・気圧) と文字列の座標は固定値だけで、平均はありません。
欠損値
- 欠損の判定は自分では行いません。netCDF の
_FillValueかmissing_valueで xarray が NaN にした値だけを飛ばし、valid_rangeなどは無視します。属性の無い -9999 や 1e20 はそのまま値として描かれ、平均にも入ります (欠損値)。 - 塗りつぶし (contourf) は有効な格子点の中心までしか塗りません。
- 散布図・バブルチャート・散布図 (点)・トラックは x か y が NaN の点を除きます。集計系のレイヤー (ヒストグラム・ECDF・箱ひげ図・バイオリン・2 次元ヒストグラム・hexbin) は有限の値だけを対象にします (NaN と無限大を除く)。
値の変換とマスクアウト
- 値の変換は線形 (値 × scale + offset) だけで、単位の自動換算 (K → °C、Pa → hPa など) は行いません。計算は元のデータ型のまま行います (float32 のデータは float32 のまま)。値の範囲・レベル・カラーバー・マスクアウトの閾値は変換後の値で指定します (値の変換とマスクアウト)。
- 棒グラフ・散布図・バブルチャートのエラー量 (誤差の変数・定数) には値の変換を掛けません。倍率で単位を換えているときは、誤差も換えた後の単位で用意してください (例: 比湿を倍率 1000 で kg/kg から g/kg にしたなら、誤差の変数も g/kg)。v1.00.1 までは変換が掛かっていました (リポジトリの
KNOWN_ISSUES.mdの KI-1)。 - マスクアウトの「以下を描かない」「以上を描かない」は境界の値を含めて描きません (閾値より大きい値、または小さい値だけが残ります)。別の変数で条件を掛けるときは、その変数の生の値 (変換前) で指定します。
統計量の定義
- ライン (束) の統計線: 平均・中央値・最小・最大・パーセンタイルは numpy の
nanmean/nanmedian/nanmin/nanmax/nanpercentile(線形補間) で、NaN を除いて束の方向に集計します。「平均 ± k × 標準偏差」の標準偏差は標本標準偏差 (N − 1 で割る) です (ライン (束))。 - 箱ひげ図: 中央値と四分位は matplotlib の
boxplotの定義 (numpy の percentile、線形補間) です。ひげは IQR 倍率 (既定 1.5) か、パーセンタイル範囲で指定します。パーセンタイル指定のひげは境界そのものではなく、境界の内側にある最も外側の実データ点で止まります。外れ値はひげの外の点です (箱ひげ図)。 - バイオリン: matplotlib の
violinplotのガウスカーネル密度推定で、バンド幅は scott (既定) / silverman / 係数の指定です (バイオリン)。 - ヒストグラム: 「density」は面積が 1 になる密度、「cumulative」は累積です。ビンは matplotlib の
histの定義 (最後のビンだけ右端を含む) に従います (ヒストグラム)。 - ECDF: 各 x に対する「x 以下の割合」で、complementary は 1 − F です (ECDF)。
- 2 次元ヒストグラム・hexbin: ビンごとに点数 (または density) を数えます。「0 のビンを塗らない」が既定でオンです。対数スケールは色の割り当てに使うだけです (2 次元ヒストグラム、hexbin)。
- 集計系レイヤーの対象値は、固定した次元以外の全要素を 1 次元に並べたものです。「集計する次元」の範囲指定で期間や区間を絞れます。
経度の規約と周期化
- 0〜360 と -180〜180 のどちらの規約でも同じ図になります。範囲の入力はどちらの規約でもでき、min が max より大きい経度範囲は日付変更線をまたぐ範囲として扱います。
- 全周の 1 次元格子には、0° と 360° の継ぎ目を閉じる周期点を付けます (塗りつぶし・ハッチ・等値線のみ)。詳しくは経度の周期化。
2 次元座標の格子
時刻軸と暦
- 暦はファイルの
calendar属性で決まります。standard / gregorian / proleptic_gregorian / noleap は日時型に変換し、360_day / all_leap は開始年からの通し日数の数値軸にします。それ以外の暦は変換しません (時刻軸と暦)。 - 時刻の選択・前後送り・アニメーション・時間断面は数値軸でも使えますが、日付の書式と ISO 形式の入力は日時型のときだけです。
複数ファイルの次元整列
- 複数のファイルを読むとき、緯度・経度・鉛直・時刻の役割を持つ次元だけ名前を揃えます (lat と latitude など)。それ以外の次元は揃えないので、利用者が事前に名前を揃えておきます (座標役割の自動認識)。