この記事の目次
ArgoのNetCDFファイル(.nc)には、測定値の配列とともに、次元、メタデータ、品質管理フラグが格納されています。フロート・時刻・位置を特定し、測定値と品質情報を対応させて読むと、プロファイルの構造を理解しやすくなります。
ファイル形式より先にプロファイルの見方を知りたい場合は、初心者向けArgoフロートデータの読み方 から始めてください。
NetCDFとは
NetCDFはNetwork Common Data Formの略で、複数の変数、メタデータ、時刻・深さ・緯度・経度などの次元を持つ科学データに広く使われるファイル形式です。
ArgoがNetCDFを使う理由
Argoデータは水温値が一列に並んだだけのものではなく、一つのプロファイルには次の情報が含まれます。
- フロートの識別情報
- サイクル情報
- 位置
- 時刻
- 圧力レベル
- 水温と塩分
- 品質フラグ
- 場合によっては酸素などの追加変数
NetCDFを使えば、これらの要素を機械で処理しやすい一貫した形式にまとめられます。
1. プロファイルを特定する情報
測定配列を見る前に、次の情報から、どのプロファイルを扱っているのかを特定します。
- どのフロートが取得したか
- 何番目のサイクルか
- いつ取得されたか
- どこで取得されたか
よく使われる項目には、次のようなものがあります。
- フロート識別情報の
PLATFORM_NUMBER - 取得順を示す
CYCLE_NUMBER - 時刻情報の
JULD LATITUDELONGITUDE
2. 測定配列:水柱から得られた値
どのプロファイルか分かったら測定配列へ進みます。多くのCore Argoのプロファイルデータでは、次の変数が特に重要です。
PRES:圧力TEMP:現場水温PSAL:実用塩分
次のような補正済みの値を含むファイルもあります。
PRES_ADJUSTEDTEMP_ADJUSTEDPSAL_ADJUSTED
PRES、TEMP、PSALは、それぞれ圧力、現場水温、実用塩分を格納するCoreの生の変数です。ポテンシャル水温と絶対塩分は派生量であり、標準的なCore Argoのプロファイルデータでこれらの変数を置き換えるものではありません。
BGC Argoデータでは、溶存酸素などのセンサー変数も現れます。ただし、最初に全体を理解するには、圧力、水温、塩分で十分なことが多いでしょう。
3. 品質情報:すべての値を同じように信頼できるか
Argo NetCDFファイルが複雑に見える理由の一つは、測定値だけでなく、次のような品質情報も格納されていることです。
PRES_QCTEMP_QCPSAL_QCPOSITION_QC
データモードに従って生の値か補正済みの値を選び、科学的に解釈する前に、対応するQCフラグと誤差の情報を確認します。
疑わしい値や欠損値が一部にあっても、プロファイル全体が使えないとは限りません。
4. 次元:配列の形が違う理由
Argo NetCDFファイルの配列構造を理解するには、値を整理する次のような次元に注目します。
- プロファイル数
- 鉛直レベル数
- パラメーター数
そのため、一次元に見える変数もあれば、複数の次元にまたがって格納される変数もあります。
表計算ソフトで扱うような単純な表とは異なり、データは次のような階層構造になっています。
- 一つのプロファイルデータファイルが複数のプロファイルまたはサンプリング系列を持つことがある
- 一つのプロファイルが多数の深度または圧力レベルを持つ
- 各レベルに複数の測定変数がある
バージョン3のプロファイルデータファイルでは、一般に N_PROF、N_LEVELS、N_PARAM などの次元で表されます。一つのサイクルに異なる鉛直サンプリング系列が含まれると N_PROF が2以上になるため、サイクル番号と単一のレベル配列は必ずしも一対一ではありません。
最初に確認する変数
Argo NetCDFファイルを開いたら、次の順で情報を確認すると全体を把握しやすくなります。
- フロート識別情報
- サイクル番号
- 時刻
- 緯度と経度
DATA_MODE(BGCパラメーターではPARAMETER_DATA_MODE)- 適切な生または補正済みの項目から取得した圧力、水温、塩分
- 対応する品質管理項目と誤差項目
生の変数と補正済み変数
初心者が戸惑いやすいのが、生の測定値を格納する変数と補正済み変数が並んでいることです。例えば、水温にはTEMPとTEMP_ADJUSTED、塩分にはPSALとPSAL_ADJUSTEDがあります。
補正済みの値にはArgoの校正や補正が反映されていますが、その処理はリアルタイム(A)でも遅延モード品質管理(D)でも行われるため、単に「後から直した値」という意味ではありません。
補正済み配列があるというだけで判断せず、データモードを確認して使う値を選びます。
- Coreプロファイルでは
DATA_MODEを読みます。RならPARAMとPARAM_QC、AまたはDならPARAM_ADJUSTEDとPARAM_ADJUSTED_QC、必要に応じてPARAM_ADJUSTED_ERRORを使います。 - BGCプロファイルでは、パラメーターごとに処理段階が異なるため、
DATA_MODEだけでは不十分であり、各パラメーター・プロファイルのPARAMETER_DATA_MODEを読みます。AまたはDならそのパラメーターの補正済み項目を使いますが、Rでは生の値しかありません。なおArgoは、生のBGC値は一般に非専門家がそのまま科学利用するのに十分な精度ではないと注意しています。
生の値と補正済み側のQCフラグを組み合わせたり、明確な科学的理由なく生と補正済みのパラメーターを混在させたりしてはいけません。
なお、NetCDFのプロファイルを自分のWebアプリで表示する場合は、どこまでを事前処理で済ませ、どこからブラウザで扱うかを決める必要があります。NetCDFからブラウザ可視化まで:海洋データWebアプリの設計で、その分担を説明しています。
ファイルより先にプロファイルを理解する
OceanGraphを使うと、ファイルの構造からではなく、プロファイルが示す水柱の構造からArgoデータを読み始められます。
ファイルの解析処理から始めなくても、次のことができます。
- 海域、時刻、WMO IDで実際のプロファイルを検索する
- 日付、場所、WMO ID、サイクル番号を直接確認する
- 鉛直プロファイルをすぐに開く
- コードで処理する対象を決める前に、複数のプロファイルを比較する
次のページも参考になります。
- Search and Bookmark(英語)
- Analysis Lab: Vertical Profiles(JSONアップロード、英語)
- Pythonを使わずにArgoフロートデータを可視化する手順

注目するフロート、サイクル、パターンを先につかんでおくと、NetCDFファイルに戻ったときにも、どのデータを確認すればよいか分かりやすくなります。
