基本操作

ClimCanvas v1.02.1 対応

アプリの起動からファイルの読み込み、図全体に効く設定までを説明します。描画モードごとの設定は描画モード、レイヤーの設定はレイヤー: 地図・断面とレイヤー: 1 次元・散布・集計にあります。

起動と終了

ClimCanvas は Python で書かれたアプリで、操作画面の表示に Streamlit という Web UI フレームワークを使っています (インストール時に依存パッケージとして一緒に入ります)。「起動する」とは、ターミナルで streamlit run app.py を実行して、そのマシンの中に ClimCanvas 専用の小さな Web サーバーを立てることです。操作画面はブラウザで開きますが、インターネット上のサイトではなく、そのマシンで動いている ClimCanvas に繋いでいるだけです。ファイルの読み込みも図の描画もアプリを動かしているマシン側で行われます。

依存ライブラリを入れた Python 環境 (インストール 1.3) を activate してから、インストール先のディレクトリで streamlit run を実行します。ブラウザが自動で開き、開かない場合はターミナルに表示される URL (通常 http://localhost:8501) を開きます。終了はターミナルで Ctrl+C です。

# 普段の解析環境 (依存ライブラリを入れた Python 環境) を activate してから起動する
$ conda activate 環境名
$ cd $IDIR/climcanvas
$ streamlit run app.py
# 他のポート番号で起動する場合
$ streamlit run app.py --server.port 8080

終了すると作業内容は消えます

読み込んだファイルや設定はアプリのプロセスの中にだけあります。ブラウザを更新したり アプリを終了したりすると初期状態に戻るので、続きを行う作業はセッションとして保存してください。

初めて起動したとき、右上に Streamlit の「Help agents write better apps」というカードが出ることがあります。ClimCanvas の機能ではなく、閉じてかまいません (FAQ)。

ClimCanvas 自身はネットワークに何も送りません。例外は 2 つで、海岸線などの Natural Earth データを初めて使う縮尺のときに cartopy が自動でダウンロードすること (描画モード) と、画面の表示に使っている Streamlit が既定で匿名の利用統計を開発元に送信することです。後者を止めるには、アプリを動かすマシンの ~/.streamlit/config.toml に次を書きます (インストール 4.3)。

[browser]
gatherUsageStats = false

運用の形態 (手元の PC で動かす、研究室のサーバーで動かして SSH 経由で使う、演習で 1 台に複数人が接続する) ごとの手順は使い方にあります。設定ファイル config.toml で開けるディレクトリの制限やセッションの保存先を変えられます。

UI の言語

サイドバーの一番上の「言語 / Language」で表示言語を選びます (日本語 / English / 简体中文 / 한국어)。言語はセッションには保存されません。次回起動時からも同じ言語にしたいときはプリセットに保存します。

ブラウザの自動翻訳は切ってください

Chrome などの自動翻訳が動くと、画面の文字が勝手に置き換わるだけでなく、ボタンが効かなくなるなど 表示が壊れることがあります。localhost を「このサイトは翻訳しない」に設定してください。 表示言語を変えたいときはアプリ内の言語設定を使います。詳しくは FAQ を参照してください。

画面の構成

画面は左のサイドバーと右のメイン領域に分かれます。設定はすべてサイドバーで行い、メイン領域には結果と出力が並びます。右上の「⋮」メニューの「About」には、使っている版と、ご意見・ご要望のフォーム・バグ報告 (GitHub Issues) へのリンクがあります (FAQ)。

ClimCanvas の画面
サンプルデータを読み込んだ直後の画面。左がサイドバー (設定)、右がメイン領域 (ファイル情報、パネル構成、図、出力)。
メイン領域 (上から) 内容
ファイル情報 読み込んだファイルの変数・座標の一覧と座標役割の自動認識の結果 (詳細)
パネル構成 図の行数・列数、パネルの追加・複製・削除、編集するパネルの選択 (複数パネル)
図を再描画 現在の設定で図を描き直すボタン。操作が図に反映されなかったとき (数値欄で Enter を押し忘れた等) に押す。ブラウザの更新は設定が全部消えるので使わない
図 描画結果
この図に適用した処理 値の変換 (倍率 a・加算 b と変数の units 属性)、範囲平均 (次元・範囲・方法・格子数・範囲内の欠損数)、マスクアウトの閾値、2 次元座標格子のベクトルの扱い、エラー量に値の変換を掛けていないこと、1 次元プロットの同じ軸に単位か値の変換が違う量が重なっていることを、該当するときだけ図の下の枠に出す。意図した単位・範囲・重みになっているかをここで確かめる。ただし間違いを防ぐ助けで、すべての間違いを見つけるものではないので、過信せず自分でも確認する (論文投稿前の確認)
画像出力 / 再現スクリプト 画像の保存 (形式・解像度・背景) と、図を再現する Python スクリプトのダウンロード (出力と再現スクリプト)
生成されるスクリプトを表示 再現スクリプトの中身の確認

設定を変えると図はそのたびに描き直されます。重いデータでは先に領域や時刻を絞ってから細かい体裁を調整すると快適です (性能の目安)。

サイドバーは上から次の順に並びます。前半は図全体に効く設定、後半は「編集するパネル」に選んだパネルの設定です。

節 内容
言語 / Language 表示言語
データ・セッション読み込み 作業の再開 (セッション復元)、読み込み済みファイル、新規作業 / ファイルの追加
保存 セッション、プリセット (保存)
図全体の書式 Figure サイズ、フォント、レイアウト調整 (余白)、共通カラーバー (全パネル) (図全体の書式)
各パネルの描画モード 編集中のパネルの描画モード (描画モード)
モード別の節 下の表
プロットサイズ プロット領域 (axes 枠) の縦横比 (Figure サイズと縦横比)
文字・記号 タイトル、パネルラベル、文字列、記号 (文字・記号)
サイドバーの上部
サイドバーの上部。言語、データ・セッション読み込み、保存の節。

モード別の節はモードによって変わります。

描画モード 節の並び
水平断面図 投影法・領域 → 時刻 → レイヤー → 地図・グリッド線
鉛直断面図 断面 → 時刻 → レイヤー → 軸・ラベル → 図枠・背景
時間断面図 時間断面の種類 → レイヤー → 軸・ラベル → 図枠・背景
1次元プロット プロット軸 → 時刻 (横軸が時刻でないとき) → レイヤー → 軸・ラベル・凡例 → 図枠・背景
1次元プロット(集計) レイヤー → 軸・ラベル・凡例 → 図枠・背景
2次元プロット プロット変数 → レイヤー → 軸・ラベル・凡例 → 図枠・背景 (ヒートマップではレイヤーなし、軸・ラベル)
2次元プロット(集計) プロット変数 → レイヤー → 軸・ラベル → 図枠・背景

「時刻」の節では、時刻以外にも固定が必要な次元 (鉛直層など) の値を選びます。データの扱いを参照してください。

ファイルの読み込み

サイドバーの「データ・セッション読み込み」→「新規作業」で netCDF ファイルを指定します。

読み込みは遅延読み込みです。開く時点ではメタデータと座標だけを読むので、数十 GB のファイルでも一瞬で開きます。

複数ファイル

最初のファイルを読み込むと「読み込み済みファイル」に一覧が出て、「ファイルの追加」で 2 つ目以降を同じ方法で追加できます。ファイルには読み込んだ順に ds0, ds1, … の ID が付き、レイヤーごとにどのファイルの変数を描くかを選べます (例: 再解析の風と別ファイルの海面水温を重ねる)。

経緯度が別ファイルにあるデータ

領域モデルの出力で、経度・緯度が FLON.nc / FLAT.nc のような別ファイルの 2 次元変数になっているものは、「読み込み済みファイル」の各ファイルの下にある「座標ファイル (任意)」で結び付けます。経度のファイルと緯度のファイル (同じファイルなら経度側だけ) を指定して「適用」を押すと、その経緯度が座標として結び付き、水平断面図が描けるようになります。「解除」で外せます。

ファイル情報

メイン領域の「ファイル情報」を開くと、ファイルごとに次が表示されます。ncdump -h で見る情報に、座標役割の判定結果を加えたものです。

項目 内容
ID とパス ds0 などの ID と読み込んだパス
データ変数 変数名、次元、形状、単位、long_name の表。座標変数は含まない
座標変数 座標名、次元、長さ、範囲、単位の表
座標変数を持たない次元 (bare dims) 座標値のない次元。0, 1, 2, … の添字で扱う
座標の自動認識 (ds0) 緯度 / 経度 / 鉛直 / 時刻の役割にどの座標を当てたか。判定できなかった役割は「(なし)」で、その役割を使う描画モードは選択肢に出ない
時刻として扱う次元 自動認識を手動で上書きする (データの扱い)

座標役割の判定規則はデータの扱いにあります。

ファイル情報
「ファイル情報」を開いたところ (サンプルデータ)。データ変数と座標変数の表、座標の自動認識、時刻として扱う次元。

Figure サイズと縦横比

「図全体の書式」→「Figure サイズ」で、図全体 (matplotlib の figure) の大きさをインチ単位で決めます。複数パネルでも図全体で 1 つの設定です。

縦横比 幅 × 高さ
6.4:4.8 (matplotlib default) 6.4 × 4.8 inch (既定)
1:1 6.4 × 6.4
√2:1 (A4) 6.4 × 4.53
16:9 6.4 × 3.6
任意の数字 幅・高さを 1〜30 inch で入力
図全体の書式
「図全体の書式」の節。「Figure サイズ」を開いたところ。

保存される画像のピクセル数は「幅 × dpi」と「高さ × dpi」です (dpi は「画像出力」の「解像度 (dpi)」で 150 / 300 / 600、既定 300)。ただし保存時に余白を切り詰めるので、実際の画像は少し小さくなります。

プロット領域 (axes) の縦横比の決まり方は描画モードで違います。

描画モード 軸の縦横比を決めるもの Figure サイズを変えると
水平断面図 投影法と領域 (地図の形は固定) 地図の形は変わらず、周囲の余白が増減する
それ以外 Figure サイズ (プロット領域が figure を埋める) 軸そのものが伸縮する

水平断面図以外では、「プロットサイズ」→「axes 枠の縦横比」でプロット領域の高さ / 幅の比を固定できます (0.5 で横長、2.0 で縦長)。図の余白はレイアウト調整で変えます。

図全体の書式

フォント

「図全体の書式」→「フォント」→「フォントを指定」を入れると、タイトル・軸・目盛り・カラーバー・注記のすべての文字に同じフォントが使われます。指定しないときは matplotlib の既定 (DejaVu Sans) です。

フォントは環境に依存します

再現スクリプトを別のマシンで実行するとき、同じフォントが無ければ matplotlib の既定に戻ります。

レイアウト調整 (余白)

「図全体の書式」→「レイアウト調整 (余白)」は matplotlib の subplots_adjust に相当します。

項目 内容 既定
パネル間の余白を指定 横方向 (wspace)・縦方向 (hspace)。パネルの幅・高さに対する比率で、負の値にするとセル同士を重ねて詰められる 0.2 / 0.2
図の外側の余白を指定 左・右・下・上を figure 座標 (0〜1) で指定 0.125 / 0.9 / 0.11 / 0.88

水平断面図は地図の縦横比が固定されるため、余白を詰めても地図同士が近づかないことがあります。その場合は Figure サイズの縦横比を地図の形に近づけます。

共通カラーバー

「図全体の書式」→「共通カラーバー (全パネル)」で、全パネルに共通のカラーバーを 1 本付けられます。最初の塗りつぶしレイヤーの色を代表に使うので、全パネルの塗りつぶしで同じカラーマップと値の範囲を使ってください。詳しくは複数パネルを参照してください。

文字・記号

サイドバー末尾の「文字・記号」は、編集中のパネルに付けるタイトルと注記です。

タイトル

「図タイトル」と「タイトル文字サイズ」を指定します。空欄なら表示しません。

パネルラベル

論文の複数パネル図で使う (a), (b) などのラベルです。「パネルラベルを表示」を入れ、「ラベル文字列」「x」「y」(プロット枠の左下を 0, 0、右上を 1, 1 とする相対座標。既定は左上の外側 0, 1.02)、「文字サイズ」(既定 12)、「太字」、「ラベル色」を指定します。パネルごとに文字列を変えます。

文字列

「文字列を追加」で任意の位置に文字を置きます。1 つごとに「文字列1」「文字列2」… の項目が増え、「この文字列を削除」で消せます。

項目 内容
テキスト 表示する文字。空のときは非表示
挿入位置の座標系 axes (プロット枠の相対位置 0〜1) か、データ座標
x, y 位置。データ座標では水平断面図なら経度・緯度 (投影に追従)、それ以外のモードでは軸の値
横揃え (ha) / 縦揃え (va) x, y に文字のどこを合わせるか
回転角 (度)、文字サイズ、文字色 体裁
枠線を付ける 文字の周りの枠。色と太さを指定

図の隅に置く固定のラベルには axes 座標、地図上の地点への注記 (台風の位置、観測点名など) にはデータ座標が向きます。

記号

「記号を追加」で ○ ■ ▲ × ◇ ☆ などの記号を任意の位置に置きます。「記号の種類」「大きさ (pt)」「記号の色」「枠線」と、文字列と同じ「挿入位置の座標系」「x」「y」を指定します。

保存

サイドバーの「保存」に 2 種類の保存があります。

種類 内容 復元
セッション ファイル名・変数・時刻・領域・レイヤー構成を含む全状態を JSON に保存する。青いタブは ClimCanvas を動かしているマシン内に名前を付けて保存 (ローカル運用では「PC へ」、リモート運用では「サーバーへ」)、橙のタブは手元の PC へダウンロード 「データ・セッション読み込み」→「作業の再開」→「セッション復元」
プリセット 表示言語・フォントなど、データに依存しない好みの設定だけを ~/.climcanvas/preset.json に保存する。次回起動時に自動で適用される。「起動時プリセットを削除」で消せる。保存される設定の一覧はプリセット 起動時に自動
保存
「保存」→「セッション」。青いタブは動かしているマシン内に名前を付けて保存、橙のタブは手元の PC へダウンロード。

セッションの JSON に入っているのは netCDF のパスだけで、データ本体は含まれません。元のファイルを移動・削除すると復元に失敗します。保存先のディレクトリと運用別の手順は使い方: ローカル運用と設定ファイルを参照してください。

性能の目安

描画の重さを決めるのはファイルの総サイズではなく、実際に描く切り出しの点数です。