この記事の目次

Argoのプロファイルには、観測値に加えて品質管理(QC)フラグとデータモードが含まれ、多くの場合は生の値と補正済みの値も併記されています。これらの品質情報から、解析に使う値を選びます。

フロート、サイクル、プロファイルの違いがまだ分からない場合は、品質情報へ進む前に Argoフロートとは?海洋観測データの完全ガイド から始めてください。

ファイル全体の構造を先に知りたい場合は、QCと補正済み変数の概要を扱った 初心者向けArgo NetCDFフォーマット解説 を参照してください。

Argoの品質管理が重要な理由

Argoフロートは海上で何年も稼働する自律観測機器であり、センサーのドリフト、生物付着や校正の問題、通信による誤りの混入などが起こることがあります。そのためArgoの品質システムでは、こうした問題を検出して可能であれば補正し、各値の信頼性を判断するための情報も記録します。

検証済みと未検証のデータを区別せずに扱うと、特に多数のフロートを使う解析や長年にわたる解析で、結果が偏る原因になります。

ArgoのQCフラグとは何か

圧力・水温・塩分をはじめとするすべてのCore変数には、対応するQCフラグ変数(PRES_QC、TEMP_QC、PSAL_QC)があります。位置と時刻にも、それぞれ独自のQCフラグ(POSITION_QC、JULD_QC)があります。

フラグは良否の二択ではなく、「QC未実施」「良好」「おそらく良好」「不良」などの区分に分かれています。直接測定した値ではなく、推定値であることを示すフラグもあります。そのため、解析に使うデータを選ぶ際は、明らかな不良値を除外するだけでなく、どのフラグの値を受け入れるかを決めます。

OceanGraphでは、独自に決めたルールでフィルタリングしています。JULD_QCとPOSITION_QCの値が1、2、8のいずれかであるプロファイルだけを使い、圧力の各行についても、PRES_QCが同じ値のいずれかであることを条件にします。ただし、水温や塩分の値が使えない場合でも、共通の圧力軸から行ごと削除せず、欠損として残します。そこから導く量を計算するときは、必要な値がそろっている場所だけを使います。

リアルタイムデータと遅延モードデータ

Argoデータは品質管理の各段階で公開され、どの段階まで処理が進んでいるかはDATA_MODEの値で分かります。

  • リアルタイム(R):データ取得から約1日以内に利用可能になり、自動的なチェックのみが行われたデータ
  • リアルタイム補正済み(A):すでに自動的な補正が加えられたリアルタイムデータ
  • 遅延モード(D):後日、専門家による遅延モード品質管理(DMQC)でレビューされ、自動チェックでは見逃されがちなセンサーのドリフトや校正の問題も検出できるデータ

DMQCは自動チェックよりもはるかに時間がかかるため、Core Argoの遅延モードファイルは、データ取得からおおむね1〜2年後に公開されるのが一般的です(それより早いこともあります)。つまり、リアルタイムデータはすぐに使える代わりにチェックが限られ、遅延モードデータはより入念に確認される代わりに公開まで時間がかかります。

同じサイクルについて両方が存在する場合は、遅延モードデータが優先されます。OceanGraphもこの考え方に従い、CoreプロファイルではDとR、合成プロファイルではSDとSRのそれぞれで遅延モードを優先します。BGC変数は選んだ合成プロファイルから読み取り、B-fileを別途読み込むことはしません。

補正済みデータと生データ:どちらを使うべきか

Argoファイルには、生の変数(たとえばTEMP)とあわせて、対応する補正済みの変数(TEMP_ADJUSTED)と専用のQCフラグ(TEMP_ADJUSTED_QC)が含まれることがあり、補正済みの値にはセンサー校正やドリフト補正などが反映されています。

値を選ぶときは、次のルールに従います。

  1. 補正済みの変数と、それに対応するQCフラグの両方が存在し、有効なデータを含んでいる場合は、補正済みの変数を使う。
  2. 補正済みの変数が欠損している場合、またはすべて無効な場合に限り、代わりに生の変数とその専用QCフラグを使う。
  3. 生の値に補正済みのQCフラグを組み合わせたり、補正済みの値に生のQCフラグを組み合わせたりしない。それぞれのQCフラグは、それが付いている変数だけに対応する。

一つのプロファイルで補正済みのCore変数を使うには、PRES_ADJUSTED、TEMP_ADJUSTED、PSAL_ADJUSTEDの三つすべてが揃って有効である必要があります。OceanGraphでも採用しているこのルールによって、変数ごとに補正の有無が異なる値を一つのプロファイル内で混在させず、圧力・水温・塩分を一貫した組として扱えます。

BGCパラメータごとの系列選択

溶存酸素、クロロフィル、pHなどの生物地球化学(BGC)変数では、パラメータごとに補正済みの値を優先し、利用できなければ生データを使うため、同じプロファイルでも採用する系列が変数ごとに異なることがあります。OceanGraphは、採用した系列のうちQC 4(不良)、QC 9(欠損)、または系列ごとに事前に定められた許容範囲から外れた値をnullにしますが、いったんマスクした値を生データに戻して補うことも、BGCのQC合格率によってプロファイル全体を判定することもありません。

ただし、QC 4・9以外で許容範囲に残った値も、QCコードが示す状態を確認し、解析の目的に照らして利用してください。またArgoは、専門家でない利用者に対して、生のBGC値を科学的な用途にそのまま使わないよう案内しているため、データモードがAまたはDであれば、補正済みの値をより信頼できる選択として扱いましょう。

実例:一つのプロファイルでデータを選ぶ

一つのCore Argoプロファイルでデータを選ぶ手順は、次のとおりです。

  1. DATA_MODEを確認する。Dであれば、そのサイクルはすでに遅延モードのレビューを受けている。
  2. PRES_ADJUSTED、TEMP_ADJUSTED、PSAL_ADJUSTEDがすべて存在し有効かを確認する。すべて揃っていれば、PRES_ADJUSTED_QC、TEMP_ADJUSTED_QC、PSAL_ADJUSTED_QCとあわせてそれらを使う。
  3. 補正済みのCore変数のいずれかが欠けている場合は、代わりに生のPRES、TEMP、PSALをそれぞれのQCフラグとあわせて使う。
  4. 圧力・水温・塩分をそれぞれ個別に調べ、プロファイル全体のQCフラグのうち、1、2、8のいずれかが占める割合が80%以上かを確認する。三つのうち一つでもこの条件を満たさない場合、個々の層を選ぶ前にプロファイル全体が除外される。
  5. 欠損しておらず、QC条件も満たす圧力行を残す。TEOS-10で変換する前に、水温は-2.5〜40.0 °C、実用塩分は2〜41の範囲から外れる値をマスクする。この判定のあとに80%のプロファイル判定をやり直すことはない。残った水温・塩分の組からポテンシャル水温を、変換可能な塩分の行から絶対塩分を求める。求められない派生値はnullとし、別の数値範囲は適用しない。
  6. BGCパラメータごとに補正済みまたは生の系列を選び、QC 4、QC 9、または系列ごとに定めた許容範囲から外れた値をマスクする。いったんマスクした値を生データに戻して補うことはなく、残った値はQCコードが示す状態を確認したうえで利用する。

OceanGraphがこれらのルールをどう自動で適用しているか

OceanGraphのデータパイプラインは、プロファイルが検索結果に表示される前に、このフィルタリングロジックを自動的に適用しています。

採用した系列のQCと数値範囲は、各データ値(セル)ごとに判定します。Profile JSONでは欠損値を補間せず、水温・塩分・BGCの全パラメータで数値として扱える値が一つも残らないプロファイルは保存しません。圧力の0〜2000 dbarは別の座標条件として扱い、派生したポテンシャル水温と絶対塩分へ別の数値範囲は適用しません。

POSITION_QCの条件を満たしていても、周囲から外れた位置が見られるOceanGraphの軌跡表示

上の画像には、POSITION_QCに合格していても周囲の軌跡から外れている位置があります。このような位置は、解析に使う前に元データを確認します。

欠損値と低い値・ゼロの区別

QC判定で欠損になった値や、採用した系列の許容範囲から外れてnullになった値は、実際の値が低い場合やゼロの場合とは異なります。これらを同じものとして扱うと、そのあとの統計計算が気づかないうちに歪んでしまいます。

QCの判断結果を自分のツールや画面へ渡す場合は、値とともに、単位、欠損の区別、適用したQCルールの情報も渡す必要があります。海洋データの意味を保つWebアプリ設計:単位・欠損値・QC・来歴で、その受け渡し方法を説明しています。

OceanGraphでフィルタリング済みのプロファイルを確認する

ある海域のArgoデータが実際どのようなものかをまず理解したいのであれば、すでにこのフィルタリングを経たプロファイルから始めるのが効果的です。

  • 海域、日付、WMO IDで検索する
  • 検索結果のプロファイルには、遅延モードと補正済みの値を優先するルールが適用されていることを踏まえて読む
  • 一つの値だけから結論を出す前に、個々のプロファイルの軌跡と位置を確認する
  • 詳しいQCが必要なフロートや期間を絞り込んでから、自分の解析用にQCの処理を組む

参考ページ: