Conda 環境の設定

まず、新しい Conda 環境を使用して、ArcGIS API for Python ライブラリなど、ArcGIS Pro に同梱されているすべての必要なライブラリと連動する R および Python ライブラリを設定します。既存の ArcGIS Pro ライブラリをコピーし、Conda パッケージ マネージャーを使用してライブラリを追加します。

新しい Conda 環境の構成

レッスンを開始し、空間機械学習とジオエンリッチメントを使用した気候の解像度低減を行うには、ArcGIS Pro Conda パッケージ マネージャーを使用して、ArcGIS API for Python や Python API などのすべての必要なライブラリを含む Conda 環境を作成します。これは、ArcGIS Pro に同梱されていないサードパーティ ライブラリとの統合が必要な解析に不可欠な手順です。

  1. ArcGIS Pro を起動します。サイン インを求められたら、ライセンスが割り当てられた ArcGIS アカウントを使用してサイン インします。
    備考:

    ArcGIS Pro または ArcGIS アカウントがない場合、ArcGIS の無料トライアルにサイン アップできます。

  2. [新規] の下で、[マップ] をクリックします。

    マップ テンプレートは、2D マップを含むプロジェクトを作成します。

  3. [新しいプロジェクトの作成] ウィンドウで、プロジェクトの名前を「Climate_Downscaling」に設定します。選択した場所 (例: C:\ClimateAnalysis) にプロジェクトを保存して [OK] をクリックします。

    新しいプロジェクトの作成

    プロジェクトが開き、[地形図] ベースマップを含むマップが表示されます。データを追加する前に、Conda 環境を設定しておく必要があります。

  4. リボンの [プロジェクト] タブをクリックします。

    [プロジェクト] タブ

  5. [プロジェクト] ウィンドウで、左側にある [Python] をクリックします。

    [Python] タブ

  6. [Python パッケージ マネージャー][プロジェクト環境] で、[環境の管理] をクリックします。

    Python パッケージ マネージャー

  7. [環境の管理] ウィンドウで、[arcgispro-py3] 環境を選択して [クローン] ボタンをクリックします。

    現在の Python 環境のクローン作成

  8. [環境のクローン作成] ウィンドウで、[名前] に「climate_downscaling」と入力して [クローン] をクリックします。

    クローン作成した環境の名前変更

    arcgispro-py3 環境をクローン化する理由は冗長化です。設定や変更を行った際に元の環境を誤って変更した場合、いつでも元のソース設定に戻すことができます。

  9. [環境の管理] ウィンドウで、[climate_downscaling] 環境を選択してアクティブな環境にした後、[OK] をクリックします。

    クローン作成した環境を選択

    ArcGIS Pro で元の arcgispro-py3 環境を置き換える場合、気候の解像度低減パッケージを再起動する必要があります。

  10. [プロジェクト] ウィンドウで、[終了] をクリックしてから [はい] をクリックして、[Climate_Downscaling] プロジェクトに加えた変更を保存します。
  11. ArcGIS Pro を再起動します。
  12. [最近使ったプロジェクト] から [Climate_Downscaling] プロジェクトを選択します。

新しい Python ライブラリおよび R のインストール

このステップでは、ArcGIS Pro に同梱されている環境のクローンである、新しい Climate_downscaling 環境があります。これは、ArcGIS Pro の動作に必要なすべての基本ライブラリにアクセスできることを意味します。既存の環境のクローンを作成した理由 セキュリティおよび安定性の理由から、新しい Python ライブラリをインストールする場合はクローン環境を作成することをお勧めします。最悪の場合、ArcGIS Pro に同梱されているベースの Conda 環境にいつでも切り替えて作業を続けることができます。次のステップでは、気候の解像度低減に必要な新しい Python ライブラリをいくつかインストールします。

パッケージを通じて Conda 配置を使用すると、さまざまな Python ライブラリが互いに連携し、他のライブラリに悪影響を及ぼさないようにすることができます。サードパーティ ライブラリをインストールする場合には Conda マネージャーを使用することをお勧めします。マネージャーを通じて配置される Conda パッケージは、一連の Python ライブラリで構成され、今回の Learn レッスン用の Conda パッケージも作成されています。次のステップでは、これらのライブラリをインストールします。

  1. リボンの [プロジェクト] タブをクリックします。
  2. [プロジェクト] ウィンドウで [Python] をクリックします。
  3. [Python パッケージ マネージャー][プロジェクト環境] で、現在のプロジェクト環境が [climate_downscaling] に設定されていることを確認します。
  4. 次に、[パッケージの追加] をクリックします。

    [パッケージの追加] では、公開済みの Conda パッケージのオンライン Conda パッケージ リポジトリが検索されます。

    Conda パッケージの追加

  5. [パッケージの追加] ウィンドウで「space-time-learn-lesson」と入力します。
    備考:

    Conda は、パッケージとその依存関係をすばやく簡単にインストール、実行、更新できるオープン ソース パッケージおよび環境管理システムです。Conda を使用すると、ユーザーはローカル コンピューター上で環境の作成、保存、読み込み、および切り替えを簡単に行うことができます。このような独自の Conda パッケージを作成することで、設定を複製して他のユーザーに共有および配布することができます。

  6. 検索結果から [space-time-learn-lesson] を選択して [インストール] をクリックします。

    Conda パッケージの検索

  7. [パッケージのインストール] ダイアログ ボックスで、[space-time-learn-lesson] Conda パッケージがインストールするライブラリを調べます。このパッケージには、次のライブラリが含まれています。

    R_mutex

    Mutex ライブラリは Conda の R 機能を有効にします

    arcgispro

    ArcGIS Pro メタパッケージ アプリケーション

    jupyter

    Jupyter notebook

    mor-base

    Microsoft の Open R (MRO)

    r-arcgisbinding

    R-ArcGIS Bridge パッケージ

    r-fda

    R 用の機能データ解析 (FDA) ライブラリ

    r-irkernel

    Jupyter Notebook で R を実行可能にするパッケージ

    r-raster

    R ラスター ライブラリ

    r-rts

    時空間データ構造用の R ライブラリ

    r-shiny

    R プロットおよびチャート作成ライブラリ

  8. [パッケージのインストール] ダイアログ ボックスで、利用条件を確認し、[利用条件に同意します] をオンにして [インストール] をクリックします。

    [パッケージのインストール] ダイアログ ボックス

    備考:

    [space-time-learn-lesson] Conda パッケージは、これらのレッスンに必要なすべてのパッケージを 1 つのプロセスで確実にインストールできる効率的な方法です。以降のプロジェクトでは、必要に応じてライブラリを個別に追加または削除することができ、Conda パッケージを使用する必要はありません。

    このプロセスでは、ライブラリのダウンロードと構成が行われるため、数分かかることがあります。

  9. [プロジェクト] ウィンドウで、戻る矢印をクリックしてプロジェクトに戻ります。

    戻る矢印

  10. [保存] をクリックして、プロジェクトを保存します。

Python 環境のクローンを作成し、Conda パッケージを使用して、今後の解析に必要なライブラリとパッケージをインストールしました。Python パッケージ マネージャーを使用すると、ArcGIS API for Python などの ArcGIS Pro に同梱されているコア空間解析ライブラリと、多数の Python ライブラリが共存する環境を作成できます。インストールした Jupyter Notebook および R ライブラリは、Python と R-ArcGIS の統合を使用して気温プロファイル予測を自動化する後の手順に必要となります。次に、回帰モデルの精度と有効な変数を評価して気温を予測し、適切な自動化ワークフローを決定します。


回帰モデルの作成

前のレッスンでは、複数の Python および R ライブラリをインストールすることで、予測因子 (大気大循環モデル (GCM) 変数) およびターゲット変数 (観測気温) を探索するための基盤を構成しました。次に、さまざまな探索的回帰分析方法を使用し、変数と気象観測所での観測値の間の関係を確立および定義することで、予測因子とターゲット変数の間の関係を調査および予測します。

まず、ArcGIS Pro のチャート機能を使用してデータを調査し、予測因子とターゲット変数の間の関係を表現および視覚化します。この探索的データ解析に続いて、より複雑な回帰モデルを使用し、一般化線形回帰分析、地理空間加重回帰分析、およびフォレストベースの分類と回帰分析の順で GCM 変数と観測気温の複雑な関係を調査します。

気候変動予測に適した解像度の低減方法の概要については、ここをクリックしてください。

探索的回帰分析の実行

GCM 変数と観測気温の関係を調査することから始めます。散布図マトリックスを使用して GCM 変数 (予測因子) と観測気温 (ターゲット変数) の関係を調査することから、データ探索を開始します。

  1. [挿入] タブの [プロジェクト] グループで、[マップのインポート] をクリックします。

    [マップのインポート] ウィンドウが開き、現在のプロジェクトに追加するマップをユーザーのプロジェクト、コンピューター、またはポータルから検索できます。

    選択してマップをインポート

  2. [インポート] ウィンドウで、[ポータル] の下の [すべてのポータル] をクリックします。

    オンライン マップの検索

  3. 検索ボックスに「Regression Model Map」と入力して Enter キーを押します。

    ポータルは、ArcGIS Pro を最初に開いたときにサイン インに使用したライセンス済みアカウントです。ArcGIS Online アカウントにサイン インしているため、ポータルはアカウントからアクセス可能なすべての ArcGIS Online データにアクセスできます。

    回帰モデル マップを選択

  4. 検索結果から [Regression Model Map] を見つけて選択し、[OK] をクリックします。

    公開されたマップ パッケージがダウンロードされ、[Regression Model Map] がプロジェクトに追加されます。

    備考:

    データの使用許諾

  5. [コンテンツ] ウィンドウの [Regression Model Map] で、[station_data_no_missing] レイヤーを右クリックし、[属性テーブル] をクリックします。

    このデータセットには、気象観測所データのサブセットと、各場所および時間ステップでシミュレートされた GCM 変数が関連付けられています。

    属性を開いて確認

  6. テーブルを確認し、テーブル内の総レコード数 (18,011) と [LST_YRMO_Converted] フィールドに含まれる値をメモします。

    このフィールドには、GCM 変数が観測された際の観測日が含まれます。気象観測所は合計で 207 か所ありますが、このテーブルには合計 18,011 件のレコードが含まれています。これは、2006 年から 2016 年までのさまざまな日付における各気象観測所での複数の観測値がテーブルに含まれているためです。

    備考:

    GCM は、大気、海洋、および生物的プロセス、相互作用、およびフィードバックを記述する数式を使用して、地球の気候をシミュレートします。これらのモデルは、適度に正確な全球、半球、および大陸規模の気候情報を提供する主要なツールであり、温室効果ガス濃度が増加するなかで現在および今後の気候シナリオを理解するために使用されます。

  7. テーブルを確認します。今回は、各気象観測所で収集されたさまざまな変数または予測因子に注目してください。

    属性テーブルには、気温の解像度低減モデルの構築に使用できる 32 個の GCM 変数が含まれています。次のテーブルに、フィールド名の説明とそれらが表す内容を示します。

    GCM では、水蒸気と雲の大気相互作用、日射量と降雨量に対するエアロゾルの直接的および間接的な影響、積雪や海氷の変化、土壌や海洋での蓄熱、地表からの熱と水分の流れ、および大気と海洋による大規模な熱と水の移動が表されます。

    フィールド名説明

    ccb

    対流雲底の気圧 (Pa)

    cct

    対流雲頂の気圧 (Pa)

    ci

    対流が発生する時間

    clivi

    氷水量 (kg m-2)

    clt

    総雲の割合 (%)

    clwvi

    凝縮水量 (kg m-2)

    evspsbl

    蒸発量 (kg m-2 s-1)

    hfls

    地表上方潜熱フラックス (W m-2)

    hfss

    地表上方顕熱フラックス (W m-2)

    huss

    地表付近の比湿

    pr

    降雨量 (kg m-2 s-1)

    prsn

    降雪フラックス (kg m-2 s-1)

    prw

    水蒸気量 (kg m-2)

    ps

    地上気圧 (Pa)

    rlds

    地表下降長波放射 (W m-2)

    rldscs

    地表下降晴天長波放射 (W m-2)

    rlus)

    地表上昇長波放射 (W m-2)

    rlut

    TOA 外向き長波放射 (W m-2)

    rlutcs

    TOA 外向き晴天長波放射 (W m-2)

    rsds

    地表下降短波放射 (W m-2)

    rsdscs

    地表下降晴天短波放射 (W m-2)

    rsdt

    TOA インシデント短波放射 (W m-2)

    rsus

    地表上方短波放射 (W m-2)

    rsuscs

    地表晴天短波放射 (W m-2)

    sbl

    地表雪氷昇華フラックス (kg m-2 s-1)

    sfcWind

    地表付近の日間平均風速 (m s-1)

    tasmax

    地表付近の日間最高気温 (K)

    tasmin

    地表付近の日間最低気温 (K)

    tas

    地表付近の気温 (K)

    tauu

    地表下方東向き風応力 (Pa)

    tauv

    地表下方北向き風応力 (Pa)

    ts

    地表温度 (K)

    次のステップでは、散布図マトリックスを使用して 32 個の変数間の関係を調査し、多重共線性が存在するかどうかを判断します。

    最初に作成する回帰モデルは線形回帰であり、ターゲット変数 (T_MONTHLY_) に線形に関連しているものの、他の予測因子には線形に関連していない予測因子を特定する必要があります。予測因子が互いに線形に関連している場合、多重共線性と呼ばれる問題が発生します。これは、予測因子が他の予測因子の線形結合で再現できるため、冗長である可能性があることを意味します。

    探索的回帰の詳細

    線形回帰モデルの場合、多重共線性により線形に不安定なモデルが出力されます。つまり、予測因子への小規模な変更 (GCM 変数など) が、予測されるターゲット変数 (ローカル気温など) に対して過度に大きな変化をもたらす可能性があります。

    多重共線性の詳細

  8. 続行する前に [station_data_no_missing] 属性テーブルを閉じます。
  9. [コンテンツ] ウィンドウで、[station_data_no_missing] レイヤーを右クリックし、[チャートの作成] にポインターを合わせて、[散布図マトリックス] を選択します。

    散布図マトリックスの名前は、以下の図の名前とは異なる場合があります。

    散布図マトリックスの作成

    備考:

    散布図マトリックス (SPM) は、複数のデータセットのパターンや関係を比較することができるデータ調査ツールです。SPM には、2 つの主な構成要素があります。各変数の組み合わせに対応する小さな散布図のマトリックスと、それより大きいプレビュー ウィンドウです。プレビュー ウィンドウには、選択した変数のペアに対応する散布図が詳しく表示されます。

  10. [チャート プロパティ] ウィンドウの [データ] タブで、[T_MONTHLY_][ccb]、および [cct] 変数をオンにします。

    SPM 変数の選択

    変数ペアを選択した際、SPM マトリックスが動的に更新される様子を確認します。

    初期 SPM の確認

    表示されるシンボルは図と異なる場合があります。

    32 個すべての変数を含む複雑な SPM を生成するには、長い時間がかかります。現在のところは、3 つの初期変数を調査してから、32 個すべての変数を示す結果を表示します。

  11. [SPM] ウィンドウで、グラフ化された変数を調査します。T_MONTHLY_ccb の散布図が拡大され、右上隅に大きなプロットとして表示されます。クリックしてマトリックス内の他の変数の組み合わせを選択することで、拡大率を切り替えることができます。
  12. [チャート プロパティ] ウィンドウで、[R2 として表示] をオンにします。

    オンにして R2 の値を表示

    SPM が更新され、各散布図が回帰モデルの 3 つの変数間の線形関係の強さを示しています。

    選択した変数の R2 値を確認

    この時点で、SPM にはさらに 30 個の変数を追加できますが、変数を個別に追加するには長い時間がかかります。次のステップでは、現在の SPM を閉じて、33 個すべての変数があらかじめ選択されている SPM を開きます。

  13. 現在の SPM の右上隅にある [閉じる] ボタンをクリックして、散布図ウィンドウを閉じます。
  14. [チャート プロパティ] ウィンドウをマップの右側に移動させて再配置します。
  15. [コンテンツ] ウィンドウで、[Result - station_data_no_missing] レイヤーを見つけて展開します。[Result - SPM of station_data_no_missing] チャートを右クリックし、[開く] を選択します。

    32 個の変数を含む出力 SPM を開く

    33 個の変数を含む SPM が生成されると、マトリックス内で個々のチャートを定義および生成する必要があるため、表示されるまでには少し時間がかかります。

    SPM の生成中に、最終的な散布図マトリックスを画像で確認できます。

  16. [Result - SPM of station_data_no_missing] チャートで、変数マトリックスを調査します。

    [Result - SPM of station_data_no_missing] で、R2 値がオンの状態で表示されます。

    32 個の変数を含む完全な SPM

    マトリックス内の高い R2 (濃い青色) 値は、変数ペア間の高い線形関係を示しています。多重共線性を避けるには、予測因子同士に線形関係が存在せず R2 は低いものの、ターゲット変数であるローカル気温 (T_MONTHLY_) には線形関係が存在する予測因子を特定する必要があります。

  17. 自身で、高い R2 値と低い R2 値を持つ変数の組み合わせを特定します。ターゲットの組み合わせの散布図をクリックして関連性を明らかにし、マトリックスの右上にある拡大散布図を表示します。
    備考:

    目標は、ターゲット変数 (ローカル気温) の予測に有効な予測因子 (GCM) 変数をできるだけ多く特定することです。線形に独立し (低い R2 値) 、ターゲット変数 (ローカル気温) には線形関係が存在する予測因子ができるだけ多く必要です。ほとんどの場合、このような予測因子の R2 値は 0.5 よりも高くなります。

  18. [SPM] で、高い R2 値を持つ予測因子は濃い青色のボックスで表示されています。このような予測因子をいくつか確認すると、最も高い R2 値は 0.80 から 0.99 の範囲にあることがわかります。

    特に、以下の 3 つの予測因子に注目してください。

    • cct (対流雲頂の気圧)
    • huss (地表付近の比湿)
    • rlut (TOA 外向き長波放射)

    これらの予測因子は互いに強い線形関係にはありませんが、ターゲット変数 T_MONTHLY_ (ローカル観測気温) との線形関係が存在するように見えます。次のステップでは、これらの線形関係について調査します。

  19. 続行する前に、[Result - SPM of station_data_no_missing] ウィンドウを閉じてください。
  20. プロジェクトを保存します。

この最後のステップでは、散布図マトリックスをデータ調査ツールとして使用し、予測因子を比較しながらそのパターンと関連性について調べました。回帰の場合、分析の前に、それぞれの候補の説明変数と従属変数の間に必要とされる関係を明確に説明できることが重要で、これらの関係が一致しない場合、モデルは適切ではなく、修正する必要があります。このため、次に一般化線形回帰分析を検討します。

一般化線形回帰分析の実行

回帰モデルの構築は、反復的なプロセスであり、モデリングまたは調査対象の従属変数を説明するために効果的な独立変数を見つけます。さらに、回帰ツールを使用してどの変数が有効な予測因子であるかを特定してから、最適な回帰モデルが見つかるまで変数の削除と追加を繰り返します。

  1. リボン上の [解析] タブで [ツール] ボタンをクリックします。[ジオプロセシング] ウィンドウの検索ボックスで、「一般化線形回帰分析 (空間統計ツール)」と入力します。

    [一般化線形回帰分析 (Generalized Linear Regression)] ツールの検索

    一般化線形回帰分析 (GLR) では、最小二乗法 (OLS) 回帰、論理回帰 (バイナリ変数が対象)、およびポアソン回帰 (カウントが対象) を使用して、連続変数に対して回帰分析を実行できます。気温は連続変数なので、[連続 (ガウス分布)] オプションを使います。

  2. [一般化線形回帰分析 (Generalized Linear Regression)] ツールで、次のパラメーターを設定します。

    • [入力フィーチャ][station_data_no_missing] を選択します。
    • [従属変数][T_MONTHLY_] を選択します。
    • [モデル タイプ][連続] を選択します。
    • [出力フィーチャ] に「station_data_no_missing_Gene」と入力します。
    • [説明変数][cct][huss]、および [rlut] を選択します。

    備考:

    予測オプションを設定せずに [一般化線形回帰分析 (Generalized Linear Regression)] ツールを使用すると、探索的回帰分析が実行されます。この場合、予測因子 (cct、rlut、huss) とターゲット変数 (月間平均気温) の間の線形関係のみが調査されます。

    [一般化線形回帰分析 (Generalized Linear Regression)] ツールのパラメーター

  3. [実行] をクリックします。

    GLR ツールは新しいレイヤーと複数のチャートを作成し、[コンテンツ] ウィンドウに追加します。次に、各チャートを確認してツールの診断を評価し、線形回帰モデルで cct、huss、および rlut 変数を使用して気温をモデル化できるかどうかを判断します。

  4. [コンテンツ] ウィンドウで、[station_data_no_missing_Gene] レイヤーを見つけ、必要に応じて展開します。

    [一般化線形回帰分析 (Generalized Linear Regression)] ツールの結果

  5. [コンテンツ] ウィンドウで、[変数間の関係] チャートを右クリックして [開く] を選択します。

    [変数間の関係] ヒストグラム チャート

    [変数間の関係] チャートは、散布図マトリックスに似た相関行列です。ただし、回帰に含まれる変数 cct、huss、rlut、T_MONTHLY_ のみがプロットされます。

  6. [チャート プロパティ] ウィンドウで、[R2 として表示] をオンにします。

    チャートが更新され、各変数の組み合わせに対してヒストグラムの代わりに R2 値が表示されます。これらの R2 値は元の SPM と同じですが、このマトリックスに含まれる変数の数が少なくなるため、調査が簡単になります。

    [変数間の関係] での R2 値

  7. [チャート] ウィンドウで、マトリックスの 1 列目の 1 つ目のセルを確認し、毎月の気温測定値のヒストグラムを表示します。

    毎月の気温測定値のヒストグラム

    1 つ目のセルは毎月の気温測定値のヒストグラムで、平均気温よりも高い頻度が多く、右の裾野が長い準ガウス分布を示します。

  8. [cct vs T_MONTHLY_] セルをクリックします。このセルは上から見て 1 列目の 2 行目にあります。

    月間気温と cct の間の線形関係

    cct と T_MONTHLY_ の組み合わせを見ると、毎月の気温と cct の間の線形関係が比較的弱いことがわかります。散布図を確認すると、cct と毎月の気温に線形関係は見られず、データはベスト フィット ラインの周辺に点在していることがわかります。線形回帰の場合、cct は毎月の気温との線形関係が存在しないため、問題になる可能性があります。

  9. [huss vs T_MONTHLY_] および [rlut vs T_MONTHLY_] セルを確認します。上から見て、1 列目の 3 行目および 4 行目にあります。

    予測因子と毎月の気温の間の強い線形関係

    [huss vs T_MONTHLY_] セルと [rlut vs T_MONTHLY_] セルは、両方ともそれぞれの予測因子と毎月の気温の間に強い線形関係が見られます。一見すると、これらの変数は線形モデル内の予測因子として有効なように見えます。

  10. rlut と huss の関係を示すセルをクリックします。これは、4 行目の左から 3 つ目のセルで、rlut 変数と huss 変数の間の相関係数を表しています。

    huss と rlut の間の相関係数

    多重共線性が回帰のもう 1 つの重要な要素であることに注意してください。huss と rlut の間の相関係数は 0.36 を示しています。これは、2 つの変数とターゲット変数の間に線形関係が存在するものの、互いに対する線形関係は存在しないことを意味しています。このため、cct を予測因子から除外した後に、このモデルで再利用するのに適した変数候補になります。

  11. [変数間の関係] チャートを閉じます。

    次に、標準化残差の分布を表すチャートをオンにします。

    残差とは、予測気温と観測気温の差を表しています。正確なモデルには、大きな残差がほとんど存在せず (まったく存在しないことが望ましい)、大半の残差は小さく (ゼロに近い) なります。一般的に、標準化残差の分布図は、(平均残差を減算して) データを中央に寄せた後の標準化残差と残差分布を、元の残差分布の標準偏差を基準とした目盛で表示しています。ヒストグラムのバーは標準化残差を示し、ラインは完全な標準分布を示します。

  12. [コンテンツ] ウィンドウで、[標準化残差の分布] チャートを右クリックして [開く] を選択します。
    備考:

    [標準化残差の分布] チャート

    今回の標準化残差の分布図は正規分布に近くなっています。ヒストグラムは、線形回帰モデルが推定値からの上振れまたは下振れ量が一貫して近似している気温値を予測できたことを示しています。ヒストグラムは、この線形モデルの不一致の頻度のみを表しています。後のステップで、不一致とターゲット変数の大きさの間に関係が存在するかどうかを調査します。つまり、平均気温と高い気温については十分に予測できていますが、低い気温については十分に予測できていません。モデルは平均値を正確に予測していますが、極端な気温値を単純化することができていません。

  13. [標準化残差の分布] チャートを閉じます。
    備考:

    標準化残差とラインを表示するヒストグラムのバーが完全な標準分布を示している場合、残差には極端に低い残差と極端に高い残差がほとんど含まれず、平均残差を中心に分布していることを意味しています。残差の平均値が高い場合は精度が低いことを意味しますが、気温の推定値が頻繁に上振れまたは下振れする定誤差が回帰に存在している場合に役立ちます。Jarque-Bera 統計を使用すると、標準化残差の分布が標準的な解析で使用されるガウス分布 (正規分布) にどれだけ近似しているかを定量化できます。

  14. [コンテンツ] ウィンドウで、[標準化残差と 予測のプロット] チャートを右クリックし、[開く] を選択します。

    散布図が開き、残差が平均から離れている標準偏差の数を表すように色分けされています。

    標準化残差と 予測のプロットのチャート

    [標準化残差と 予測のプロット] チャートでは、予測気温の大きさを基準にした標準残差のパターンは存在しません。これは、予測される気温値に関係なく、モデルの精度が変動することを意味しています。

    次に、標準化残差のマップを確認して、モデルのパフォーマンスに空間的自己相関が見られるかどうか、つまり、モデル内で特定のエリアの精度が他のエリアよりも高いかどうかを調査します。

  15. [標準化残差と 予測のプロット] チャートを閉じます。
  16. [コンテンツ] ウィンドウで、必要に応じて [station_data_no_missing_Gene] レイヤーをオンにしてマップに表示します。

    標準残差マップ

  17. マップで、標準残差値の分布を確認します。
  18. リボン上の [マップ] タブの [ナビゲーション] グループで、[マップ操作] ツールをクリックします。まず、山岳地帯を拡大して、標準残差値の分布を確認します。完了したら、平原地帯の平坦なエリアを拡大します。

    山岳エリア

    このモデルは、平原地帯では標準偏差 (SD) 値が平均値に近い一方、標準残差が標準偏差の -2.5 倍まで変化する山などの標高が急激に変化するエリアでは、気温の推定値が大きく上振れおよび下振れしていることに注目してください。

    米国の平原地帯

    備考:

    標準残差のマップでは、モデルが平地に対して平均的な精度があり、標高が変化するエリアで推定に誤差があることは明らかです。また、観測気温とシミュレートされた気候変数の両方に強い空間的自己相関が含まれていることもわかりました。山のような自然境界が存在しない限り、隣接する地域の気温は近似する傾向があります。GCM 変数は、セルのシミュレート値が隣接セルの値に影響を与える有限エレメント モデルを使用してシミュレートされます。

    次に、GLR 結果と GLR 診断のサマリーを確認します。ArcGIS Pro には、プロジェクト内で実行されたすべてのツールの履歴が保持されています。これらのツールは、必要に応じて確認、更新、および再実行できます。

  19. [解析] タブの [ジオプロセシング] グループで、[履歴] をクリックし、[一般化線形回帰分析 (Generalized Linear Regression)] をクリックします。

    ツールの履歴の選択

    新しいウィンドウにツールの詳細が表示されます。

  20. [一般化線形回帰分析 (Generalized Linear Regression)] 詳細ウィンドウで、[別ウィンドウに表示] ボタンをクリックします。

    [別ウィンドウに表示] の詳細

  21. [一般化線形回帰分析 (Generalized Linear Regression)] の別ウィンドウを配置および拡大すると、メッセージを確認しやすくなります。

    詳細ウィンドウには、実行されたツールに関するメタデータが保持されています。この情報には、使用されたツール パラメーター、メッセージ、およびその他のインポートの詳細が含まれています。[一般化線形回帰分析 (Generalized Linear Regression)] ツールおよびその他のほとんどの統計ツールの場合、詳細には結果のサマリーのほか、結果およびツール出力の有効性を解釈しやすくする複数の重要な診断も含まれています。

  22. GLR 結果のサマリーを確認して、[インターセプト] の値をメモします。

    GLR 結果のサマリー

    各変数の係数は、変数に割り当てられている線形加重を表しています。ここでは、数値の大きさが重要な役割を果たします。数値が大きい変数はその大きさのために加重が小さくなることがあります。このモデルは、すべての予測因子に対して報告されたすべての係数が有意であることを示しています (つまり、確率が準ゼロ)。さらに、[Probability] および [Robust_Pr] (ロバスト確率) が各係数に対して報告されます。

  23. 下にスクロールして GLR 診断を確認し、特に Koenker (BP) 統計をメモします。前述の Jarque-Bera 統計もメモします。
    備考:

    報告された係数の統計的有意性の評価に使用する確率を特定するには、Koenker (BP) 検定統計量を調べます。Koenker (BP) 検定統計量は、予測因子の分布に関するさまざまな割合に対して、回帰モデルの堅牢性を示します。つまり、モデルの品質が予測因子の範囲によって大きく異なる場合、全体的な適合性がモデルの堅牢性の指標として適していないことを意味しています。この統計が重要な場合は、ロバスト確率を使用してください。

    GLR 診断

    Koenker 統計は有意であるため、モデルの有意性を評価するには Joint F 統計の代わりに Joint Wald 統計を評価できます。p 値 (Prob) が 0.05 よりも小さい場合、モデルが有意であることを示しています。

  24. GLR 結果のサマリーで、[インターセプト] の値を確認します。

    [インターセプト] の値は -38 です。これは、3 つの予測因子がすべてゼロの場合に、気温が -38 度であることを意味しています。

  25. GLR 診断で、予測気温と観測気温の間の関係の強さを示す補正 R2 値を確認します。

    この場合、予測気温と観測気温の値は相関係数 0.78 と線形関係にあり、指標値が 1 であることから、0.78 という値は予測値と観測値の間にほぼ完全な線形性があることを意味しています。

    次に、この問題に対して空間的自己相関が存在するかどうかを調べます。GCM 予測因子と平均気温との関係を調査するには、地理空間加重回帰モデルを使用します。

  26. [回帰モデル マップ] を閉じます。
  27. プロジェクトを保存します。

地理空間加重回帰の調査

GWR (Geographically Weighted Regression: 地理空間加重回帰) は、空間回帰手法の 1 つであり、地理およびその他の分野で広く使用されるようになってきています。GWR は、データセット内のあらゆるフィーチャに回帰方程式をあてはめることで、理解または予測しようとしている変数またはプロセスのローカル モデルを作成します。この結果、特定の説明変数の値が空間的にクラスタリングしている場合は、局所的な多重共線性が問題となっている可能性が高いといえます。

備考:

一般化線形回帰を実行した際、さまざまな場所および時刻で記録された観測所の測定値とシミュレートされた気候が存在する時空間データを調査しました。ただし、地理空間加重回帰では、距離が近い場所のデータのほうが、距離が離れた場所のデータよりも重み付けされるため、解析から時間コンポーネントを削除し、空間的な関係の調査に使用する特定の期間を選択する必要があります。

さらに、同じ場所かつ異なる時刻で反復している測定値は、一致する 2 つの観測所として扱われるため、データ表現に偏りが生まれる原因になります。

データは 207 か所の気象観測所でさまざまな時刻に取得された 18,011 個の観測値から構成されています。地理空間加重回帰を実行する際は、このような反復する測定値を削除し、解析を特定の期間に制限する必要があります。

  1. [挿入] タブの [プロジェクト] グループで、[マップのインポート] をクリックします。

    選択してマップをインポート

  2. [インポート] ウィンドウで、[ポータル] の下の [すべてのポータル] をクリックします。

    オンライン マップの検索

  3. 検索ボックスに「Geographically Weighted Regression Map」と入力して Enter キーを押します。
  4. 検索結果から [Geographically Weighted Regression Map] を見つけて選択し、[OK] をクリックします。

    [Geographically Weighted Regression Map] がプロジェクトに追加されます。

  5. [コンテンツ] ウィンドウの [Geographically Weighted Regression Map] で、[station_data_no_missing] レイヤーを右クリックし、[属性テーブル] をクリックします。

    このデータセットには、気象観測所データのサブセットと、各場所および時間ステップでシミュレートされた GCM 変数が関連付けられています。

    属性を開いて確認

  6. リボン上の [解析] タブで [ツール] ボタンをクリックします。
  7. [マップ] タブの [選択] グループで、[属性条件で選択] をクリックします。
  8. [属性検索 (Select Layer By Attribute)] ツールで、次のパラメーターを設定します。

    • [入力行][station_data_no_missing] に設定します。
    • [選択タイプ][新規選択] に設定します。
    • [項目の追加] をクリックします。
    • [項目の追加] ダイアログ ボックスで、式「LST_YRMO_Converted is equal to 2012-03-01」を作成します。
      備考:

      データ選択を使用せずに、データを入力します。選択される日付は 2012 年 3 月 1 日です。

    • 句が正しいことを確認します。

    日付による選択

  9. [実行] をクリックします。

    [station_data_no_missing] 属性テーブルで、207 件のレコードが選択されていることを確認します。

  10. [ジオプロセシング] ウィンドウの [戻る] ボタンをクリックし、「地理空間加重回帰分析」と入力します。

    GWR は線形回帰を実行しますが、(ローカル回帰のため) データのサブセットを操作するため、GLR よりも多重共線性の影響を大きく受ける可能性があります。GLR 解析と cct 予測因子に関する調査結果を考慮し、予測因子のセットから cct を削除して、rlut、huss、および月間平均気温の間の関係を形成します。最寄りの 30 か所の気温観測所を使用し、huss、rluts、および月間平均気温の間でローカル回帰を実行します。

  11. [地理空間加重回帰分析 (Geographically Weighted Regression)] ツールで、次のパラメーターを設定します。

    • [入力フィーチャ][station_data_no_missing] を選択します。
    • [従属変数][T_MONTHLY_] を選択します。
    • [モデル タイプ][連続 (ガウス分布)] を選択します。
    • [説明変数][huss] および [rlut] をオンにします。
    • [出力フィーチャ][station_data_no_missing_GWR] が選択されていることを確認します。
    • [近傍タイプ][近傍数] を選択します。
    • [近傍選択方法][ユーザー定義] を選択します。
    • [近傍数] に「30」と入力します。
    • [その他のオプション] で以下を実行します。
      • [ローカル加重方式][BISQUARE] に設定されていることを確認します。
      • [係数ラスター ワークスペース][Climate_Downscaling.gdb] を参照して選択します。

    [地理空間加重回帰分析 (Geographically Weighted Regression)] ツール

    備考:

    係数ラスター ワークスペースを設定する理由は、GWR ツールが特定の位置で回帰モデル内の予測因子に適用された加重値を表す係数サーフェス ラスターを出力するためです。これは自己相関にアクセスする際に役立ちます。

  12. [実行] をクリックします。

    このツールは、使用されている座標系に関する最初の警告、および 2 つの入力ポイントが一致する旨の 2 番目の警告を実行および報告します。現在のところ、これらの警告は無視してもかまいません。次に、GWR ツールの結果を評価します。

  13. GWR ツールの実行が完了したら、ツールの左下にある [詳細の表示] をクリックします。
  14. 必要に応じて、詳細ウィンドウをサイズ変更および配置し、[解析の詳細] セクションと [モデル診断] セクションを確認します。

    GWR ツールの詳細

  15. [モデル診断] セクションで R2 値を確認します。

    この GWR ローカル モデルの R2 値は 0.854 で、GLR の R2 値 (0.787) よりも明らかに高くなっています。これは、解決しようとしている問題に空間コンポーネントが存在することを意味しています。また、シグマ 2 値を検討することで、モデルが全体的に十分に正確ではないと結論付けることができます。GWR を適用すると、予測因子とターゲット変数の両方に強い空間的自己相関が存在することがわかります。ただし、多重共線性による制限や、予測因子とターゲット変数の間に線形関係が存在する前提のため、一部の GCM 変数を使用することができず、一度に 2 ~ 3 個しか使用できません。

    詳細については、「地理空間加重回帰分析の詳細」をご参照ください。

  16. シグマ 2 値を確認します。

    シグマ 2 は、残差の標準偏差を示します。今回のモデルのシグマ値は 7.2405 です。つまり、+- √7 = 2.7 C には、この回帰モデル内のすべての残差のうちの約 68 パーセントが含まれますが、+- 5.4 C には、すべての残差のうちの約 95 パーセントが含まれます。これは、全体的に見て、このモデルが十分に正確ではないことを示しています。

    備考:

    この解析から、予測因子とターゲット変数の両方に強い空間的自己相関が存在することがわかります。ただし、多重共線性による制限や、予測因子とターゲット変数の間に線形関係が存在する前提のため、32 個の GCM 変数を同時に使用することはできず、一度に 2 ~ 3 個しか効果的に使用できません。

  17. 選択した [station_data_no_missing] フィーチャを解除します。
  18. プロジェクトを保存します。

    この結果は、線形回帰モデルにメリットがないことを意味しているわけではありません。評価した指標を使用して適切に形成した線形モデルは、特に観測値のないデータ範囲に対して強力な予測因子になります。次に、GLR や GWR とはまったく異なるランダム フォレスト回帰という別の回帰モデルを使用します。ランダム フォレストは、k 個の予測因子間で k 次元の範囲を見つけることを目的とした決定木のアンサンブルを作成し、一連の予測因子 (今回は 32 個) とターゲット変数の間に複雑な関係を確立します。

ランダム フォレスト回帰の使用

ランダム フォレスト回帰は、予測因子とターゲット変数の間の複雑な関係を解決するのに十分なデータが存在する場合に、非常に便利かつ強力な内挿手法です。また、回帰モデル内のすべての予測因子の重要性をランク付けでき、有効でない多重共線性のある予測因子が存在する場合でも予測回帰モデルを形成できます。この手法はランダム フォレスト回帰と呼ばれ、ArcGIS Pro では [フォレストベースの分類と回帰分析 (Forest-based Classification and Regression)] という名前のジオプロセシング ツールでこの手法を実装しています。

詳細については、「フォレストベースの分類と回帰分析 (Forest-based Classification and Regression)」をご参照ください。

  1. [挿入] タブの [プロジェクト] グループで、[マップのインポート] をクリックします。

    選択してマップをインポート

  2. [インポート] ウィンドウで、[ポータル] の下の [すべてのポータル] をクリックします。

    オンライン マップの検索

  3. 検索ボックスに「Random Forest Regression Map」と入力して Enter キーを押します。
  4. 検索結果から [Random Forest Regression Map] を見つけて選択し、[OK] をクリックします。

    [Random Forest Regression Map] がプロジェクトに追加されます。

  5. 必要な場合は、マップを開きます。
  6. リボン上の [解析] タブで [ツール] ボタンをクリックします。[ジオプロセシング] ウィンドウで、「Forest Based Regression and Classification (Spatial Statistics Tools)」と入力します。

    最初に [トレーニング] モードでツールを実行します。[トレーニング] モードは、別のデータセットに対する予測を行うのではなく、ソース データ内の予測因子とターゲット変数の間の関係を調査します。このツールでは、32 個すべての GCM 予測因子を使用します。

  7. [フォレストベースの分類と回帰分析 (Forest-based Classification and Regression)] ツールで、次のパラメーターを設定します。

    • [予測タイプ][トレーニングのみ] を選択します。
    • [入力トレーニング フィーチャ][station_data_no_missing] を選択します。
    • [予測対象変数][T_MONTHLY_] を選択します。

    [フォレストベースの分類と回帰分析 (Forest-based Classification and Regression)] ツール

  8. [説明トレーニング変数] で、[変数] 矢印ボタンをクリックした後、リストの左下にある [すべてのチェックボックスの切り替え] ボタンをクリックし、[追加] をクリックします。[T_MONTHLY_][LST_YRMO]、および [WBANNO] は、予測 GCM 変数ではないのでオフにします。

    説明変数の選択

    [追加出力] で、変数の重要度を記録する出力テーブル名を定義します。[フォレストベースの分類と回帰分析 (Forest-based Classification and Regression)] では、フォレスト回帰に影響を与えた回数を基準に変数がランク付けされ、フォレストの定義時に頻繁に使用された変数とほとんど影響を与えていない変数がどちらも重要な変数として識別されます。

  9. [追加出力] を展開します。[出力変数重要度テーブル] に「train_variable_importance」と入力します。

    出力変数重要度テーブルの設定

  10. [整合チェック オプション] を展開します。

    • [検証のために除外するトレーニング データ (%)] に「10」と入力します。
    • [整合チェックの実行回数] に「100」と入力します。
    • [出力整合チェック テーブル] に「r2_table」と入力します。

    整合チェック オプションの設定

  11. [実行]をクリックします。

    このプロセスが完了するまで少し時間がかかることがあります。

    備考:

    ツリー数は、その数を増やすことでモデルの堅牢性を向上できるモデル パラメーターです。ランダム フォレストでは、さまざまな予測因子 (ツリー) 間のコンセンサスがフォレストの最終結果を定義するコンセンサス スキームに基づいて動作します。したがって、ツリー数が多いほど、モデルはデータ内のランダム サンプリングに対して堅牢性が向上し、複雑な関係を調査できるようになります。リーフ サイズは、超過すると各ツリーでデータを分割できなくなる最小のエントリ数を示します。リーフ サイズが大きい場合、使用するツリー数を増やすことをお勧めします。ツリー階層は、データが決定木で分割される回数を示します。分割数が多いほど、複雑な様式がデータでモデル化されます。

  12. ツールの実行後に左下にある [詳細の表示] をクリックし、モデルの特性と出力を確認します。モデルの特性と出力は、ツールが使用しているサンプルによって多少異なる場合があります。
  13. [モデルの特性] セクションを確認するには、[詳細] ウィンドウをサイズ変更および配置します。

    モデルの特性

    モデルの特性では、ランダム フォレストが分割を実行した回数は平均 31 回 (ツリー階層の平均値) で、ツリー階層範囲は最小で 26、最大で 41 であったことがわかります。この結果、すべての決定木には、データ内の複雑な関係の詳細な定義が含まれていることがわかります。バイアスを減らすため、ランダム フォレストは各ツリーで利用できる予測因子のサブセットも使用します。ここで、すべての決定木は、19 個の予測因子の候補のうち、11 個のランダム サブセットにアクセスしました。最終的に、相互検証のためにデータのうちの 10 パーセントが除外されました。これは、ランダム フォレストがデータの 10 パーセントを無視し、残りの 90 パーセントの予測値で構築されたモデルを使用しても、正確な指標を返すことができたことを意味します。

  14. [モデルの Out of Bag エラー] セクションを確認します。

    [モデルの Out of Bag エラー]

    ランダム フォレストで使用されている木の数が異なると、モデルの Out of Bag エラーが報告されます。[平均二乗誤差 (MSE)] と [変動の割合] の値はいずれも、データセットで観測された値に基づいて予測対象変数を正確に特定するためのモデルの性能に基づきます。このツールで報告された MSE と変動の割合が使用されたツリー数と大幅に異なる場合、ツリー数を増やす必要があることを示す強力な指標となります。

  15. [上位変数の重要度] セクションを確認します。

    モデルのパフォーマンスにおけるその他の主要な因子は、割り当てられた説明変数です。[上位変数の重要度] リストでは、上位 20 件の変数の重要度スコアがランク付けされています。ランダム フォレストは、データを分割し、ターゲット変数を基準にして比較的同質なゾーンを作成することで動作します。変数の重要度は、このような分割で変数が使用された回数の割合を報告します。重要度は、回帰モデルで GCM 変数が使用された回数の指標を示します。

    上位変数の重要度

    備考:

    テスト データセットは常にランダムに選択されるため、個々の割合は図とは多少異なることがあり、トレーニング処理を通じて実行するたびに変わります。

  16. [トレーニング データ: 回帰診断] セクションと [整合チェック データ: 回帰診断] セクションを確認します。

    連続変数を予測する場合、各テスト フィーチャで観測された値がトレーニングされたモデルに基づくフィーチャの予測値と比較され、関連する R 二乗、p 値、および標準誤差値が報告されます。これらの診断は、テスト データセットがランダムに選択されるため、トレーニング処理を通じて実行するたびに変わります。

    トレーニング データ: 回帰診断

    整合チェック データ: 回帰診断

    中央値 R2 (0.922) はシード (約 215,355) で達成されました。

  17. [説明変数範囲診断] セクションを確認します。

    説明範囲診断は、トレーニング、検証、予測に使用された値が最適なモデルの生成に十分で、他のモデル診断を信頼できるかどうかを評価するために役立ちます。ランダム フォレスト モデルのトレーニングに使用されるデータは、生成される分類および予測の品質に大きな影響を及ぼします。トレーニング データが、モデリング対象のデータを代表するのが理想的です。[説明変数範囲診断] テーブルには、予測に使用されたデータのサブセットの最小値と最大値が示されます。

    説明変数範囲診断

    モデルで使用されている各変数の重要度を示すオプションのバー チャートが生成されます。チャートの Y 軸にはモデルで使用される変数が、X 軸にはジニ係数に基づく重要度が示されます。

  18. [コンテンツ] ウィンドウで、[変数の重要性の分布] チャートを右クリックして [開く] を選択します。

    チャートには多数の予測因子が表示されているため、ウィンドウを最大化して変数の重要度チャートを視覚化することもできます。確認が完了したら、必ずウィンドウを最小化するか閉じてください。

    変数の重要性の分布

    チャートには各変数の重要度の範囲が表示され、付属する [train variable importance] テーブルには実行ごとの変数の重要度の値がリストされ、最適な反復がマークされます。

    フォレストベース手法の強みは、弱い予測因子 (ツリー) の共通性をとらえることと、それを組み合わせて強い予測因子 (フォレスト) を作成することにあります。ツリーごとに常にある関係がとらえられる場合、モデルが複雑でない場合でも検出できる強い関係がデータに存在していることを示しています。フォレストのパラメーター調整により、結果として強力なモデルを得られる多数の弱い予測因子を作成することができます。各ツリーではより少ない情報量で弱い予測因子を作成できます。これを行うには、ツリーあたりのフィーチャの小さいサブセット、ツリーあたりの少ない数の変数、および少ないツリー階層を組み合わせて使用します。ツリー数は、それらの弱い予測因子の作成数を制御します。予測因子 (ツリー) が弱いほど、強力なモデルを作成するためにより多くのツリーが必要になります。

  19. [コンテンツ] ウィンドウで、[Train_variable_importance] テーブルを右クリックして [開く] を選択します。
  20. [Train_variable_importance] テーブルで、右端までスクロールして [最適な反復] フィールドを右クリックし、[昇順で並べ替え] を選択します。

    [Train_variable_importance] テーブル

  21. ツールが最適な反復を自動的に検出してマークし、これが [Distribution of Variable Importance] チャートに表示されます。

    チャートでは、気象観測所での観測気温の予測に関して、tasmax (地表付近の日間最高気温またはシミュレートされた最高気温) が最も大きな影響力を持っていることを示している予測因子です。また、最も重要な上位 5 つの変数に全体的な重要度の約 90 パーセントが含まれていることに注目してください。これは、これらの変数がフォレストベースの分類と回帰分析で発生する分割の約 90 パーセントで使用されることを意味しています。変数の説明を確認すると、これらの変数の大部分が地表温度と気温に関連していることがわかります。

    tasmax

    地表付近の日間最高気温 (K)

    rlutcs

    TOA 外向き晴天長波放射 (W m-2)

    rlus

    地表上昇長波放射 (W m-2)

    ts

    地表温度 (K)

    tas

    地表付近の気温 (K)

  22. [変数の重要性のサマリー] チャートを閉じます。
  23. プロジェクトを保存します。

    次のステップでは、一見重要でない変数を削除した場合の影響を評価します。

重要でない変数の削除

重要でない変数を削除する前に、[フォレストベースの分類と回帰分析 (Forest-based Classification and Regression)] ツールで実行された 100 回の実行に対する相関関数の二乗 (R2) の分布を評価します。

  1. [Random Forest Regression Map][コンテンツ] ウィンドウで、[r2_table] テーブルを右クリックして [開く] を選択します。
  2. このテーブルを確認し、100 件のレコードのうち、値が 1 に近いレコードの数をメモします。

    このテーブル内の値は、回帰モデルの 2 つの側面である精度と正確度を表しています。精度モデルの場合は、類似した相関係数の二乗値が予測され、正確度モデルの場合は、異なる実行間で高い相関係数の二乗値が予測されます。1 に近い相関係数の二乗値を中心とした高精度なモデルの場合、データをランダムにサンプリングしても悪いモデルにはならないことを意味します。

    次に、R2 テーブルの統計情報を示します。

    • 平均 = 0.9214
    • 最小 = 0.9105
    • 最大 = 0.9308

    テーブル内の R2 の値は 0.91 ~ 0.93 の範囲にあり、これはモデルが正確かつ高精度であることを意味します。

    R2 テーブル

    備考:

    異なる実行間で高い相関係数の二乗値がほとんど観測されないランダム フォレスト モデルは、フォレストベースの回帰がデータに対して過剰適合している可能性があるため、異なるデータセットを予測できるほど十分に単純化できていないことを示しています。ただし、これらの指標のいずれも、正解が不明なデータセットでのランダム フォレストのパフォーマンスを保証するものではありません。

  3. [コンテンツ] ウィンドウで、[Validation R2] チャートを右クリックして [開く] を選択します。

    R2 検証チャート

    相関係数の二乗値の分布は、大半のモデルが高い予測機能を持っていることを示しています。モデルは正確かつ高精度です。相関係数の二乗のプロットは、ランダム化されたトレーニング データでのランダム フォレストの安定性を示しています。相関係数の二乗値の平均値が高く、分散が小さい場合は、優れたモデルであることを示しています。

  4. すべてのテーブルとチャートを閉じます。

    次に、最初の 11 個の最も影響を与えている変数のみを使用して、[フォレストベースの分類と回帰分析 (Forest-based Classification and Regression)] を再実行します。

  5. [フォレストベースの分類と回帰分析 (Forest-based Classification and Regression)] ツールで、次のパラメーターを設定します。

    • [予測タイプ][トレーニングのみ] を選択します。
    • [入力トレーニング フィーチャ][station_data_no_missing] を選択します。
    • [予測対象変数][T_MONTHLY_] を選択します。
    • [説明トレーニング変数][prsn][ps][rldscs][rlus][rlutcs][rsdscs][rsdt][tas][tasmax][tasmin]、および [ts] をオンにします。

    説明変数の選択

  6. [追加出力] で以下を実行します。

    • [出力変数重要度テーブル] に「variable_importance_reduced」と入力します。
    • [整合チェック オプション] で以下を実行します。
      • [検証のために除外するトレーニング データ (%)] に「10」と入力します。
      • [整合チェックの実行回数] に「100」と入力します。
      • [出力整合チェック テーブル] に「R2_Reduced」と入力します。

    整合チェック オプションの設定

  7. [実行] をクリックします。
  8. ツールの実行後、左下にある [詳細の表示] をクリックします。
  9. [モデルの特性] セクションを確認するには、[詳細] ウィンドウをサイズ変更および配置します。
  10. [モデルの Out of Bag エラー] セクションを確認します。

    [モデルの Out of Bag エラー]

    平均二乗誤差 (MSE) と変動の割合の値は、データセットで観測された値に基づいて予測対象変数を正確に予測するためのモデルの性能に基づいていることを思い出してください。MSE と変動の割合が使用されたツリー数と大幅に異なる場合、ツリー数を増やす必要があることを示す指標となります。現在のモデルでは、これらの値は大きく異なりません。

  11. [上位変数の重要度] セクションを確認します。

    上位変数の重要度

    このリストには 11 個の変数がすべて表示され、上位 5 つの変数は全体の 84 パーセントを占めます。rlus や ts など、一部の変数は、その重要度のレベルが近いためにランクが入れ替わっています。

  12. [コンテンツ] ウィンドウで、[variable_importance_reduced] テーブルの下にある [Distribution of Variable Importance] チャートを右クリックして [開く] を選択します。

    [Distribution of Variable Importance reduced] チャート

    チャートを確認すると、11 個の予測因子のサブセットを使用した場合に、変数の重要性が安定していることがわかります。

  13. [Distribution of Variable Importance reduced] チャートを閉じます。
  14. [コンテンツ] ウィンドウで、[R2_Reduced] テーブルの下にある [Validation R2] チャートを右クリックして [開く] を選択します。

    [Validation R2] チャート

    R2 の平均値は前のモデルと同じですが、予測因子の数が少ないため、観測値の範囲も狭くなっています。

  15. [Validation R2] チャートを閉じます。

    次のレッスンでは、Jupyter Notebook を使用し、[フォレストベースの分類と回帰分析 (Forest-based Classification and Regression)] ツールを自動化して何度も実行します。プロジェクト データへのアクセスを簡単にするため、すべてのプロジェクト データを 1 つの場所に統合する必要があります。

  16. [ジオプロセシング] ウィンドウで、「マップ コンテンツの統合」と入力します。
  17. [マップ コンテンツの統合 (Consolidate Map)] ツールで、次のパラメーターを設定します。

    • [入力マップ][Random Forest Regression Map] を選択します。
    • [出力フォルダー] で、たとえば [C:\ClimateAnalysis] や最初のレッスンで選択したプロジェクトの場所を参照して選択します。
    • [範囲] で、ドロップダウン メニューをクリックして [US_polygon] レイヤーを選択します。
    • [データをファイル ジオデータベースへ変換] をオンにします。

    すべてのマップ データを統合

  18. [実行] をクリックします。

    [Random Forest Regression Map] でアクセスされるすべてのソース データは、[downscaledclimate.gdb] という名前の新しいジオデータベースに統合されます。

  19. [カタログ] ウィンドウで、必要に応じて出力先 (例: C:\ClimateAnalysis) にフォルダー接続を追加します。
  20. フォルダー接続を確認および展開し、p20 フォルダーに注目します。

    このフォルダーには統合データが含まれており、Jupyter Notebook で参照されます。

  21. [downscaledclimate.gdb] ジオデータベースを展開し、[US_polygon] および [station_data_no_missing] フィーチャクラスが含まれていることを確認します。
  22. Jupyter Notebook を利用する前に、今後の解析に必要な GCM 変数データを含む NetCDF ファイルのコレクションをダウンロードする必要があります。

    NetCDF ファイルは Learn ArcGIS 組織の zip フォルダーに保持されており、ダウンロードしてコンピューターのローカルに解凍する必要があります。圧縮ファイルは 1.83 GB で、出力される NETCDF フォルダーは 2.60 GB であるため、十分な空き容量があることを確認してください。

  23. [Downscale Climate Data - NetCDF Data Files] ページで、[ダウンロード] ボタンをクリックします。

    NetCDF ファイルのダウンロード

  24. netcdfs フォルダーとそのコンテンツを解凍して p20 フォルダーにコピーします。

    解析フォルダーに NetCDF ファイルを追加

    すべてのデータをダウンロードおよび統合したら、気温の時刻スナップショット推定を自動化できます。最後のステップとして、結果と出力を保存するジオデータベースを作成します。

  25. [p20] フォルダーを右クリックし、[新規作成] をクリックして [新しいファイル ジオデータベース] を選択します。

    新しいデータベースの追加

  26. ジオデータベースの名前を「Default」に変更します。

    ジオデータベース名の変更

  27. プロジェクトを保存します。

ランダム フォレストは柔軟性に優れ、月間平均気温に対する予測精度も高いため、調査したすべての予測因子の中で最適な選択肢です。

通常、GCM の空間解像度は非常に粗いものの、予測ツールとしては貴重です。ただし、解像度が粗いために気候変動および変化の微小な不均一性を説明することができません。GCM が提供できる情報と、社会、企業、および利害関係者が意思決定に必要としている情報の間のギャップを埋めるために、さまざまな手法が開発されています。次に、Python 統合を使用して、このレッスンで開発したフォレストベースの分類と回帰分析モデルを自動化し、さまざまな期間での月間平均気温値を予測します。


気温予測の自動化

前のレッスンでは、さまざまな回帰分析方法を比較し、月間平均ローカル気温を予測するために GCM 変数に関してトレーニングされたランダム フォレスト モデルを構築して、すべての気象観測所に使用できるようにしました。基本的に、ソース データセットには、別々の気象観測所で異なる時間に記録された情報が格納されています。実際、ランダム フォレストには、(モデルには明記されていないものの) 空間と時間における GCM 変数と平均気温間のさまざまなパターンが学習されています。

高精度モデルのトレーニングは終了しているため、次に離散時間スナップショットで気候の解像度の低減を行います。ここでは、月間平均気温の 5 年間の予測を行います。つまり、60 の期間における気温を予測します。詳細な調査を行うには、効率的に予測を実行し、結果を集計する必要があります。

フォレストベースの分類と回帰分析 (Forest-based Classification and Regression) モデルには、さまざまな場所と時間における GCM 変数および観測気温間の関係が学習されているため、今回はこのモデルを気温スナップショットの予測に使用します。たとえば、米国における積雪量と平均気温との間の関係は、夏 (積雪量が 0) と冬では異なります。これから、あらゆる月に対して気温を正確に予測できる低解像度モデルを生成します。

Jupyter Notebook のインストールと設定

このセクションでは、前のセクションでトレーニングおよび改善したモデルを使用して、月単位の増分で気温を予測する Python ワークフローを作成します。Jupyter Notebook を使用すると、ローカルで実行したり、リモートで Web ブラウザーを介してアクセスしたりできるネイティブの IDE と、コードの操作や作業内容の共有および文書化に使用できる新しい環境が提供されます。最初のセクションでインストールした新しいライブラリを活用するために、ユーザーが作成した Conda 環境用に Python パッケージ マネージャーがセットアップした Jupyter Notebook を起動します。

  1. Windows ファイル エクスプローラーで、%LOCALAPPDATA%\Esri\conda\envs\climate_downscaling を参照して選択します。

    システム変数 %LOCALAPPDATA% は、パス C:\Users\YourUserFolderName\AppData\Local\ の代わりに使用されます。

    クローン化された Python 環境の参照

    最初のレッスンでは、元の Python パッケージをクローン化し、そのクローンに「climate_downscaling」という名前を付けました。さらに、[space-time-learn-lesson] Conda パッケージのインストール時に、新しいライブラリを基本 Python パッケージに追加しました。次の手順で、これらの追加ライブラリおよびツールにアクセスします。

  2. ファイル エクスプローラーで、[Scripts] フォルダーを参照して選択し、パス (例: C:\Users\YOURUSERNAME\AppData\Local\ESRI\conda\envs\climate_downscaling\Scripts) をコピーします。

    YOURUSERNAME は、自身のユーザー名の代用としてよく使用されます。

    スクリプトの場所のコピーおよび特定

  3. 次に、プロジェクト フォルダー (例: C:\ClimateAnalysis) を参照して選択し、「notebooks」という名前の新しいサブフォルダーを作成します。

    notebook フォルダーの作成

  4. Windows の [検索] で「cmd」と入力し、検索結果から [コマンド プロンプト] をクリックしてコマンド ライン インターフェイスを起動します。

    コマンド プロンプトの起動

  5. コマンド プロンプトで、ディレクトリを notebooks フォルダーに変更します。たとえば、「cd C:\ClimateAnalysis\notebooks」と入力します。

    ディレクトリをプロジェクトの場所に変更

    次に、Jupyter Notebook を起動します。

  6. コマンド プロンプトで、以前にコピーしたパスを貼り付け、パスの末尾に「jupyter-notebook」と入力します。コマンドは次のようになります。「C:\Users\YOURUSERNAME\AppData\Local\ESRI\conda\envs\climate_downscaling\Scripts\jupyter-notebook
  7. Enter キーを押すと、このコマンドが実行され、ノートブックが起動します。

    Jupyter Notebook は Web ブラウザーで実行され、デフォルト ブラウザーのタブ内で起動します。Web ブラウザーにアドレス「http://localhost:8888」でアプリケーションが開きます。localhost は Web サイトではありませんが、コンテンツがローカル コンピューター (ユーザー自身のコンピューター) から提供されていることを示しています。Jupyter Notebook およびダッシュボードは Web アプリであり、Jupyter はローカルの Python サーバーを起動して、これらのアプリを Web ブラウザーに提供するため、プラットフォームに依存せず、Web 上で簡単に共有できます。

    Jupyter Notebook インターフェイスの確認

    ノートブックの [Files] タブですべてのファイルが保持され、[Running] タブですべてのプロセスが追跡されます。3 つ目の [Clusters] タブは IPython の並列コンピューティング フレームワークによって提供され、IPython カーネルの拡張バージョンである個別のエンジンを制御できます。

  8. ノートブックの [Files] タブで、右上隅にある [New] ドロップダウン ボタンをクリックし、[Python 3] を選択して新しい Python Notebook を追加します。最初の Jupyter Notebook が新しいタブで開きます。

    Python ベースのノートブックの作成

    複数のノートブックを同時に開くことができるため、各ノートブックは独自のタブを使用します。ダッシュボードに戻ると、新しいファイル Untitled.ipynb が表示され、新しいノートブックが実行されていることを示す緑色のテキストが表示されます。

  9. ノートブックで、[Untitled] をクリックします。
  10. [Rename Notebook] ウィンドウで、「ClimateAnalysis」と入力します。

    ノートブック名の変更

  11. 新しいノートブック名を適用するには、[Rename] をクリックします。

    これで新しいノートブックの名前が設定されました。少し馴染みのある程度のインターフェイスに見えますが、実際は高度なワード プロセッサーです。メニューを操作しながら感触をつかみ、コマンド パレットのコマンド (キーボード アイコンが付いた小さなボタン) のリストを下にスクロールしてみてください。

    備考:

    参考に、完全な ClimateAnalysis ノートブックをダウンロードすることができます。ダウンロード後、ノートブックを notebooks フォルダー (例: C:\ClimateAnalysis\notebooks) に解凍します。

  12. [Cell] メニューをクリックします。

    セルはノートブック本体を形成し、ノートブックに表示されるテキストまたはノートブックのカーネルによって実行されるコードのコンテナーとして機能します。新しいノートブックの最初のセルは常にコード セルです。

    [Cell] メニューの確認

    [Markdown] を使用して、コード セルを書式設定されたテキストを含むセルに切り替えます。

  13. ノートブック インターフェイスで [Code] を見つけます。ドロップダウン矢印をクリックし、[Markdown] を選択してセル タイプを切り替えます。

    コードからマークダウンへの変更

  14. セルにタイトル「## Monthly Automated Downscaling」を挿入し、Enter キーを押します。
  15. セルの 2 行目に次の説明を挿入します。「In this notebook you will perform monthly downscaling using the ArcGIS Forest based classification and regression model. The model will be trained using spatio temporal data for a simulated global circulation model with variables to predict average monthly temperature. (このノートブックでは、ArcGIS フォレスト ベースの分類および回帰分析モデルを使用して、月単位の解像度の低減を実行します。このモデルは月間平均気温を予測する変数を含む、シミュレートされた大気大循環モデルの時空間データを使用してトレーニングされます。)」 Enter キーを押します。

    説明およびタイトルの挿入

  16. ノートブック インターフェイスで [Run] をクリックするか、Shift+Enter キーを押します。

    セルを実行してマークダウン テキストの書式を設定

    セルを実行した後、テキストは未加工のテキストから、[Markdown] を使用してノートブックに埋め込まれるテキストに変換されました。さらに、2 つ目のセルが生成されました。セルの前に [In [ ]] ラベルがあります。ラベルの [In] 部分は Input (入力) の略です。セルを実行すると、ラベルは [In [1]] に増え、カーネルがコードを実行した回数を示します。

  17. [File] をクリックし、[Save and Checkpoint] ボタンを選択して変更内容を保存します。
    備考:

    定期的に保存することをお勧めします。Ctrl+S キーを押すと、[Save and Checkpoint] コマンドを呼び出してノートブックが保存されます。新しいノートブックを作成するたびに、チェックポイント ファイルがノートブック ファイルとともに作成されます。デフォルトで、Jupyter はプライマリ ノートブック ファイルを変更することなく、120 秒ごとにこのチェックポイントファイルにノートブックを自動保存します。[Save and Checkpoint] を使用すると、ノートブック ファイルとチェックポイント ファイルの両方が同期されます。このため、チェックポイントを使用すると、予期しない問題が発生した場合に未保存の作業を回復できます。

  18. ノートブックで、[In []] というラベルの付いた新しい空白のセルを選択します。ノートブック インターフェイスで、[Code] が選択されていることを確認します。
  19. 空白のセルをクリックして、次のコードを貼り付けます。

    空間機械学習ライブラリとユーティリティ関数のインポート

    import arcpy
    import numpy as np
    import os
    from dateutil.relativedelta import relativedelta
    import datetime
    arcpy.env.overwriteOutput = True

    これにより、演習を通して使用する空間機械学習ライブラリ (arcpy) とユーティリティ関数がインポートされます。

  20. ノートブック インターフェイスで [Run] をクリックします。

    セルが実行され、新しい空白のセルが追加されます。セル ラベルが [In [1]] に更新されたことに注目してください。

  21. 新しい空白セルをクリックして、セル タイプが [Markdown] に設定されていることを確認します。
  22. セルに次の説明を入力します。「Define input and output gdbs for the analysis (解析で使用する入出力 gdb を定義)」
  23. [Run] をクリックします。

    説明テキストの追加

    [Markdown] セルにはラベルが割り当てられません。

  24. 空白のセルに、次の Python コードをコピーして貼り付け、Python ワークフローの入出力の場所を定義します。このコード ブロックは、ArcGIS API for Python のフォレスト ベースの回帰分析関数で必要となり、入力変数が連続変数かカテゴリ変数かを定義します。
    備考:

    コード内のデータ パスは次のように設定されています。

    • C:\ClimateAnalysis\p20\downscaleclimate.gdb
    • C:\ClimateAnalysis\p20\default.gdb
    • C:\ClimateAnalysis\p20\netcdfs

    ソース データが異なる場所にある場合は、コードを実行する前にデータ パスを変更してください。

    入出力データパスおよび変数の設定

    arcpy.env.overwriteOutput = True in_gdb = r"C:\ClimateAnalysis\p20\downscaleclimate.gdb"
    out_gdb = r"C:\ClimateAnalysis\p20\Default.gdb"
    netcdf_dir = r'C:\ClimateAnalysis\p20\netcdfs'
    ## Define atmospheric variables available for analysis variables = ["ccb", "cct", "ci", "clivi", "clt", "clwvi", "evspsbl", "hfls", "hfss", "huss", "pr", "prc", "prsn", "prw", "ps", "rlds", "rldscs", "rlus", "rlut", "rlutcs", "rsds", "rsdscs", "rsdt", "rsus", "rsuscs", "sbl", "sfcWind", "tas", "tasmax", "tasmin", "tauu", "tauv", "ts"] in_fc = "station_data_no_Missing"
    dist_feature = "Large_Water_Body"
    predict_var = "T_MONTHLY_"
    ## Create a dictionary to define if a predictor is categorical or not
    is_categorical = {"ccb":"false", "cct":"false", "ci":"false", "clivi":"false", "clt":"false", "clwvi":"false", "evspsbl":"false", "hfls":"false", "hfss":"false", "huss":"false", "pr":"false", "prc":"false", "prsn":"false", "prw":"false", "ps":"false", "rlds":"false", "rldscs":"false", "rlus":"false", "rlut":"false", "rlutcs":"false", "rsds":"false", "rsdscs":"false", "rsdt":"false", "rsus":"false", "rsuscs":"false", "sbl":"false", "sfcWind":"false", "tas":"false", "tasmax":"false", "tasmin":"false", "tauu":"false", "tauv":"false", "ts":"false"}
    備考:
    Python で空白は重要な意味を持つため、このコードをコピーして貼り付ける際は、すべてのインデントが保持されていることを確認してください。保持されていない場合、コードは正しく実行されません。
  25. コードを挿入してデータ パスを確認したら、コード ブロックを実行します。現在のセルを実行した後、新しいセルが自動的に追加されます。

    次に、ランダム フォレストの入力文字列を処理するユーティリティ関数を定義し、フォレストベースの回帰分析ツールで処理する文字列に入力変数を追加します。

  26. 次の空白セルに、以下の Python コードをコピーして貼り付けます。このコードは、フォレストベースの回帰分析ツールへの入力を作成するユーティリティ関数です。

    ランダム フォレスト回帰分析の設定

    ## Utility function for defining input string for Random Forest Regression def prepare_rf_input(vars, category_dict):
        input_string = []    [input_string.append(var + ' ' + category_dict[var]) for var in vars]    return ';'.join(input_string)
  27. 新しい空白セルを追加し、セル タイプが [Markdown] に設定されていることを確認します。
  28. セルに次のテキストを入力します。「You will perform predictions over contiguous U.S. For this reason you will define an environment mask that covers lower 48. In addition,the forest-based clustering tool can create raster output for predicted temperature. You can also define an environment setting for the default output raster cell size. (米国本土の予測を行います。このため、下位 48 州をカバーする環境マスクを定義します。さらに、フォレストベースのクラスタリング ツールにより、予測された気温のラスター出力を作成できます。デフォルトの出力ラスター セル サイズの環境設定も定義できます。)」

    マークダウン テキストの追加

  29. コードを挿入したら、コード ブロックを実行します。

    次に、フォレストベースの回帰分析で操作する環境変数を定義します。

  30. 次の空白セルに、以下の Python コードをコピーして貼り付けます。

    ランダム フォレスト回帰分析の環境変数の定義

    #####################################################################
    ######## Perform Temperature Downscaling at Every Time Slice ########
    #####################################################################
    ## Define Environment Variables for Random Forest Tool
    arcpy.env.workspace = in_gdb
    arcpy.env.mask = os.path.join(in_gdb, 'US_polygon')
    arcpy.env.cellSize = 0.5
    ## Define and select the station data to be subsetted at every time-step
    start_time = datetime.datetime(2006,2,1)
    selected_stations = 'station_select'
    arcpy.management.MakeFeatureLayer(in_fc, selected_stations)
  31. コードを挿入したら、コード ブロックを実行します。
  32. 新しい [Markdown] セルに次のテキストを入力します。「As a next step you will need to subset the station data to fit a model at every time step to make a prediction. Your code will read simulated netCDF files for every simulated global climate variable and extract the slice corresponding to the year of interest. (次のステップとして、観測データをサブセット化し、各時間ステップでモデルを調整する必要があります。コードはシミュレートされた各全球気候変数に対してシミュレートされた netCDF ファイルを読み取り、対象の年に対応するスライスを抽出します。)」

    次に、指定したディレクトリで NetCDF ファイルを見つけるためのコードを追加します。

  33. 新しいコード セルに、次の Python コードをコピーして貼り付け、読み取る NetCDF ファイルを定義します。

    NetCDF ファイル リストの定義

    ## Define NetCDF files to loop through netcdfs = [file for file in os.listdir(netcdf_dir) if file.endswith('.nc')]
    ## List to store variable importance variable_importance = []
  34. コードを挿入したら、コード ブロックを実行します。

    [ClimateAnalysis] ノートブックに追加する次のコード ブロックでは、以下が実行されます。

    • 特定の月の気象観測所を選択します。
    • 同じ月の NetCDF ファイルを読み取り、ラスターとしてメモリに保持します。
    • フォレストベースの回帰分析モデルを実行します。
    • 米国本土の予測ラスターを作成します。
    • 出力ラスターをジオデータベースに保存します。

  35. 新しいコード セルに、以下の Python コードをコピーして貼り付けます。

    フォレストベースの回帰分析モデルの実行

    for time_slice in range(60):
        raster_input_list = []
        print('Time Slice = {0}'.format(time_slice))
        ## Select Weather Stations that have date at time 
        current_time = start_time + relativedelta(months =+ time_slice)
        arcpy.management.SelectLayerByAttribute(selected_stations, 'NEW_SELECTION', "LST_YRMO_Converted = date '{0}'".format(current_time.strftime("%m/%d/%Y")))
        for netcdf in netcdfs:
            
            var_name = netcdf.split('_')[0]
            if var_name in ['prsn', 'sbl']:
                continue
            else:
                #### Create temporary prediction rasters from NetCDFs
                arcpy.md.MakeNetCDFRasterLayer(os.path.join(netcdf_dir, netcdf), var_name, "lon", "lat", var_name + "_raster", None, "time " + str(time_slice + 1), "BY_INDEX", "CENTER")
                raster_input_list.append(var_name + "_raster")
        ## String input for input rasters
        raster_input_string = ' #;'.join(raster_input_list)
        raster_input_string += ' #'
        ##String input for matched rasters
        raster_match_string =  [raster_string + ' ' + raster_string for raster_string in raster_input_list]
        raster_match_string = ';'.join(raster_match_string)
        ## Perform forest-based regression on selected weather stations and GCM rasters
        arcpy.stats.Forest("PREDICT_RASTER", selected_stations, predict_var, None, None, None, raster_input_string, None, None,  os.path.join(out_gdb, "temp_pred_" + str(time_slice)), None, None, raster_match_string, None, "var_importance", "TRUE", 100, None, None, 100, None, 10, None, None, None, 1)
        variable_importance.append(arcpy.da.TableToNumPyArray("var_importance", ('*')))

    最後のセルに追加されたコードは、さまざまなタイム スライスでフォレストベースの回帰分析モデルを 60 回実行します。選択した場合、独自のデータを解析するテンプレートとして、コードとノートブックが提供されます。続行するためにコードを実行する必要はありません。ノートブックを実行する場合は、[Save and Checkpoint] ボタンをクリックして変更内容を保存し、コード ブロックを実行します。

    備考:

    コードの実行にはしばらく時間がかかります。このコードの実行をスキップして、提供されている結果のラスター​​を使用することもできます。このコードを実行すると、Jupyter Notebook は default.gdb にさまざまなタイム スライスで 60 個の低解像度の気温のスナップショットを作成します。次のレッスンでは、これらのラスターをモザイク データセットで使用し、後から R ツールを使用して詳細な解析を行います。

  36. ステップが完了するのを待たずにレッスンを終わらせたい場合は、ラスター結果をダウンロードすることをお勧めします。

    圧縮されたラスター結果をダウンロードします。

  37. ダウンロードが完了したら、[rasters.zip] フォルダーのコンテンツを解凍し、[RasterResults.gdb][p20] フォルダーにコピーします。
  38. ArcGIS Pro[カタログ] ウィンドウにある [フォルダー] 接続で、右クリックして更新した後、[RasterResults.gdb] または [Default.gdb] (コードを実行した場合) を検索します。
  39. [RasterResults.gdb] (または Jupyter Notebook コードを実行した場合は [Default.gdb]) を見つけて展開し、ジオデータベースに 60 個のラスターが追加されていることを確認します。

    ラスター名は [temp_pred] で始まり、[0] から [59] まで繰り返されます。これらのラスターは月間平均気温の 5 年間の予測を表していることに注意してください。このために、60 個のタイム スライスが存在します。

解像度の低減は、気候予測の時空間的特徴に基づいて実行できます。空間解像度の低減は、低解像度の GCM 出力から高解像度の空間気候情報を算出するために使用される方法を示します。時間解像度の低減は、大きな縮尺の時間的 GCM 出力から小さな縮尺の時間的情報を算出する方法を示します (例: 月または季節単位の降雨量から日単位の降雨系列を算出)。このレッスンでは、Jupyter Notebook を使用して解像度低減ワークフローを自動化し、米国本土における低解像度の月間平均気温プロファイルの離散時間推定を作成しました。60 個のラスターを視覚化および処理することは困難です。次に、モザイク データセットを使用してラスターを処理および表示します。


時系列モザイクの作成

前のレッスンでは、5 年間にわたる月間平均気温の予測を表す一連の 60 個のラスターを生成しました。次に、時系列モザイクを使用してラスターを 1 つのデータ構造に結合し、各ラスターにタイム スタンプを追加します。時系列ラスターを使用すると、時刻タグが付いたラスターを簡単に視覚化して管理できます。

時系列モザイクの作成

モザイク データセットは、ラスター データの管理、表示、提供、および共有に使用されます。モザイク データセットを新規作成すると、いくつかのデフォルト プロパティを使用した空のコンテナーとしてジオデータベース内に作成され、ここにラスター データを追加できます。このレッスンでは、空のモザイク データセットを作成してから、ラスターのタイムスタンプを管理できるフィールドを定義し、それらを統一したデータ構造に格納します。

  1. [カタログ] ウィンドウの [フォルダー] の下にある [Default.gdb] を右クリックし、[新規作成][モザイク データセット] の順に選択します。

    ジオデータベースに空のモザイク データセットを作成

    [モザイク データセットの作成 (Create Mosaic Dataset)] ツールが開きます。モザイクの出力場所は、選択したジオデータベースに自動的に設定されます。

    備考:

    モザイク データセットのソース ラスターは、モザイク データセットと同じ場所にある必要はなく、フォルダー内のラスター ファイルとして管理されることがよくあります。今回の例では、ソース ラスターは、LZ77 圧縮が適用されたシングル バンドの 32 ビット浮動小数点ラスターとして、ファイル ジオデータベースに出力および格納されています。

  2. [モザイク データセットの作成 (Create Mosaic Dataset)] ツールで、次のパラメーターを設定します。

    • [出力場所] で、[default.gdb] が設定されていることを確認します。
    • [モザイク データセット名] に「temperature_time_series」と入力します。
    • [座標系][GCS_WGS_1984] を選択します。
    備考:

    [座標系] は [WGS_1984_Web_Mercator_Auxiliary_Sphere] と表示されることもあります。

    [モザイク データセットの作成 (Create Mosaic Dataset)] ツール

  3. [実行] をクリックします。

    空のモザイク データセットが生成され、[temperature_time_series] という名前の新しいグループ レイヤーが [コンテンツ] ウィンドウに追加されます。

  4. [カタログ] ウィンドウで、[temperature_time_series] モザイク データセットを右クリックし、[ラスターの追加] を選択します。

    [モザイク データセットにラスターを追加 (Add Rasters To Mosaic Dataset)] ツールが開きます。

    ラスターの追加

  5. [モザイク データセットにラスターを追加 (Add Rasters To Mosaic Dataset)] ジオプロセシング ツールで、次のパラメーターを設定および確認します。

    • [モザイク データセット][temperature_time_series] に設定されていることを確認します。
    • [ラスター タイプ][Raster Dataset] に設定されていることを確認します。
    • [処理テンプレート][Default] に設定されていることを確認します。
    • [入力データ][データセット] を選択します。

    入力データ タイプの選択

  6. [入力データ] で、[参照] ボタンをクリックします。[RasterResults.gdb] または [Default.gdb] を検索し、60 個の temp_pred ラスターをすべて選択して [OK] をクリックします。

    追加するラスターの参照および選択

    [モザイク データセットにラスターを追加 (Add Rasters To Mosaic Dataset)] ツールが更新され、ターゲット モザイク データセットに含まれるラスター データセットのリストが表示されます。

    モザイク データセットに追加されたラスターを確認

  7. [モザイク データセットにラスターを追加 (Add Rasters To Mosaic Dataset)] ツールで、[ラスター プロセシング] を展開します。[統計情報の計算] をオンにします。

    オンにして統計情報を計算

  8. [モザイクの後処理] を展開します。以下がオンになっていることを確認します。

    • セル サイズ範囲の更新
    • 境界線の更新
    • モザイク データセット統計情報の推定

    追加の処理アクションをオンにする

  9. [実行] をクリックします。

    このツールが実行され、[temp_pred] ラスターが [temperature_time_series] モザイク データセットに追加されます。

  10. マップを確認すると、モザイク データセットを構成する 60 個のラスターのうち 1 つだけが表示されているように見えます。現在、すべてのラスターは一致しており、同じ範囲で異なるタイム スライスを表しています。

    マップ内のモザイク データセットの確認

    次に、モザイク データセットにフィールドを追加し、すべてのラスターの時間コンポーネントを登録する必要があります。モザイク データセットに 3 つの新しいフィールドを定義して、変数の名前、入力のディメンション、および時間フィールドの値を記述します。時系列で、ディメンションは時間を表します。今回の場合は、別の時間フィールドを追加および入力し、ディメンション値のテキストに変換します。

  11. リボン上の [解析] タブで [ツール] ボタンをクリックします。[ジオプロセシング] ウィンドウに「Add Field」と入力します。
  12. [フィールドの追加 (Add Field)] ツールで、次のパラメーターを指定してフィールドを作成します。

    • [入力テーブル][temperature_time_series] に設定します。
    • [フィールド名] に「Variable」と入力します。
    • [フィールド タイプ][Text] を選択します。
    • [フィールドの長さ] に「20」と入力します。

    変数フィールドの追加

  13. [実行] をクリックします。
  14. 次のパラメーターを使用して、2 つ目のフィールドを追加します。

    • [入力テーブル][temperature_time_series] に設定します。
    • [フィールド名] に「Dimensions」と入力します。
    • [フィールド タイプ][Text] を選択します。
    • [フィールドの長さ] に「20」と入力します。

    ディメンション フィールドの追加

  15. 次のパラメーターを使用して、3 つ目のフィールドを追加します。

    • [入力テーブル][temperature_time_series] に設定します。
    • [フィールド名] に「StdTime」と入力します。
    • [フィールド タイプ][Date] を選択します。

    標準時間フィールドの追加

    次に、時系列を有効にする属性をフィールドに入力します。まず、[Variable] フィールドは、ラスター名 (temp_pred) を表す文字列に設定されます。

  16. [ジオプロセシング] ウィンドウに「Calculate Field」と入力します。
  17. [フィールド演算 (Calculate Field)] ツールで、以下のパラメーターを設定します。

    • [入力テーブル][temperature_time_series] に設定します。
    • [フィールド名][Variable] を選択します。
    • [式][Name] を選択して [0:9] を追加します。

    備考:

    式が「Variable = ! Name ! [ 0 : 9 ]」として定義されていることを確認します。この式では、[Name] フィールドの最初の 9 文字を保持し、9 文字を超えるすべての文字を削除して文字列「temp_pred」のみを保持します。

    可変フィールド値の計算

  18. [実行] をクリックして、[temperature_time_series] テーブルで [Variable] フィールドが更新されていることを確認します。

    次に、個々のタイムスタンプをそれぞれのラスターに関連付けます。前のセクションで使用した開始日時を覚えておいてください。ここでは、同じ開始日時を使用し、この時間をインクリメントすることですべてのラスターのタイム スタンプを定義します。

  19. [フィールド演算 (Calculate Field)] ツールで、以下のパラメーターを設定します。

    • [入力テーブル][temperature_time_series] に設定します。
    • [フィールド名][StdTime] を選択します。
    • [式] に「calcTime」と入力して [( !Name! )] を追加します。
    • [コードブロック] で、次の条件式をコピーして貼り付けします。

      時間の計算

      import datetime
      from dateutil.relativedelta import *
      start_time = datetime.datetime(2006,2,1)
      def calcTime(var):
          increment = int(var.split('_')[-1])
          current_time = start_time + relativedelta(months =+ increment)
          return current_time.strftime("%m/%d/%Y")

    標準時間の計算

  20. [実行] をクリックして、[temperature_time_series] テーブルで [StdTime] フィールドが入力されていることを確認します。
  21. 次のパラメーターを使用して、[フィールド演算 (Calculate Field)] ツールを 3 回目に実行します。

    • [入力テーブル][temperature_time_series] に設定します。
    • [フィールド名][Dimensions] を選択します。
    • [式][StdTime] を選択します。

    式が「Dimensions = ! StdTime ! 」として定義されていることを確認します。これにより、モザイク データセットの 3 つ目のディメンションは時間になります。

    ディメンション フィールド値の計算

  22. [実行] をクリックして、[temperature_time_series] テーブルで [Dimensions] フィールドが入力されていることを確認します。

    時系列モザイクの作成が正常に完了すると、タイムスタンプ付きラスターを視覚化できるようになります。

  23. [マップ] タブの [レイヤー] グループで、[ベースマップ] ドロップダウン矢印をクリックします。ベースマップのリストから、[ラベル付き起伏図] を選択します。

    ベースマップをラベル付き起伏図に変更

  24. [コンテンツ] ウィンドウで [temperature_time_series] レイヤーを右クリックして [プロパティ] を選択します。
  25. [レイヤー プロパティ] ウィンドウの [時間] を選択します。
  26. [時間] プロパティ ウィンドウで、次のプロパティを設定します。

    • [レイヤーの時間][各フィーチャに 1 つの時間フィールドがあります] を選択します。
    • [時間フィールド] で、[StdTime] が選択されていることを確認します。
    • [時間範囲] で、開始日時が [2/1/2006]、終了日時が [1/1/2011] に設定されていることを確認します。

    時間プロパティの設定

  27. [OK] をクリックして、時間プロパティの更新を適用します。

    マップ ビューが更新され、タイム スライダーが表示されます。タイム スライダーを使用すると、時間を追ってモザイク データセットの個々のタイム スライスまたはすべてのスライスを表示できます。

    タイム スライダー付きマップ ビュー

    現在表示しているタイム スライスは、前のレッスンで実行した時間解像度の低減による結果です。このデータは、大きな縮尺の時間的 GCM 出力から小さな縮尺の時間的情報を算出した結果を表しています。表示されている濃い色から薄い色に変化するグラデーションは、米国本土の月間平均気温プロファイルの推定値を表しており、暗い地域は低い推定気温、明るい地域は高い推定気温を表しています。

  28. タイム スライダー上の [再生] ボタンをクリックすると、タイム スライスの表示が自動的に進行します。

    タイム スライダー上の [再生] ボタン

    新しいタイム スライスがフェード インし、古いタイム スライスがフェード アウトしながら、マップが繰り返し更新されます。数分かけてタイム スライスとタイム スライダーを確認してください。

    タイム スライスの確認

  29. 必要に応じて、[時間] リボンの [再生][ステップ]、および [全体表示] 機能を確認します。

    [ステップ]、[再生]、および [全体表示] 機能

  30. [保存] をクリックして、プロジェクトを保存します。

次に、時系列モザイクを視覚化して共有するアニメーションを作成するか、R-ArcGIS Bridge の設定を続行して、機能データ解析を実行し、すべての場所の時間シグナルを単純な解析関数に分解します。

気温タイムスナップショット推定のアニメーションの作成

次に、モザイク データセットに含まれる気温タイムスナップショット推定に関するアニメーションを作成します。その後、アニメーションのビデオをエクスポートして、作業の結果を同僚や一般ユーザーと共有できるようにします。これは、米国全体の気温タイムスナップショット推定のモデリング結果を示すことのできる優れた方法です。

備考:

アニメーションのビデオを見る この内容を確認するか、アニメーションを作成し、その結果を独自のビデオにエクスポートする場合は、次の手順または「R-ArcGIS Bridge の設定」に進んでください。

  1. [コンテンツ] ウィンドウで [Station_data_no_missing] を右クリックして [レイヤーにズーム] を選択します。
  2. [コンテンツ] ウィンドウで、[temperature_time_series] レイヤーをクリックして選択します。
  3. マップ表示で、[temperature_time_series] レイヤーのタイム スライダーの開始日時が [2/1/2006] に設定されていることを確認します。

    タイム スライダーを開始日時に設定

    マップには時系列の最初のラスターのみが表示され、スライダーを動かすとマップが更新され、移動したタイム スライスに適したラスターが表示されます。さまざまなモデル結果を視覚化して共有するには、各タイム スライスのアニメーションを作成する方法が便利です。

  4. リボンの [表示] タブの [アニメーション] グループで、[追加] をクリックします。

    アニメーションの追加

    [アニメーション タイムライン] ウィンドウが表示され、アクティブなリボン タブが [アニメーション] タブに変わります。

    備考:

    デフォルトでは、ビデオのエクスポートは YouTube 向けに構成されており、解像度 1,280 x 720 の MP4 ビデオ ファイル形式が使用されます。エクスポート形式の縦横比に基づいて、マップ表示がクリップされ (表示クリップ)、ビデオにキャプチャされるビューのセクションを示します。この結果、マップの範囲を調整して、クリップされたビュー内に表示することができます。

  5. [アニメーション] タブの [作成] グループにある [追加時間] で、時間を「00:03.000」に更新します。これにより、生成される各フレームの期間が 3 秒に設定されます。この値は必要に応じて、後で調整できます。
  6. [アニメーション] タブの [作成] グループで、[インポート] をクリックして [タイム スライダーのステップ] を選択します。

    タイム スライダーのステップのインポート

    備考:

    [アニメーション タイムライン] ウィンドウが表示されない場合は、[アニメーション] タブの [再生] グループで、[タイムライン] ボタンをクリックします。

    モザイク データセットはさまざまなタイム スライスで構成されているため、32 フレームのシーケンスが生成され、[アニメーション] ウィンドウに並べて表示されます。アニメーションの開始キーフレームと終了キーフレームに対応するために、新しいフレームが自動的に追加されています。

    タイム スライスから生成されたアニメーション キーフレーム

    備考:

    アニメーションのステップ間隔、ステップ数、または再生方向を変更すると、生成されるフレームの総数に影響を与えます。

  7. 必要に応じて、[アニメーション タイムライン] ウィンドウを [マップ] シーンの下にドッキングします。

    アニメーションのフレームは当初、空の状態で、空白が表示されることがありますが、タイム スライスごとにフレームが生成されるにつれて、さまざまな時間における気温タイムスナップショット推定のプレビューでフレームが徐々に埋められ、更新されます。すべてのフレームが読み込まれるまでに数分かかることがあります。

    [アニメーション タイムライン] ウィンドウ

  8. [アニメーション タイムライン] ウィンドウで、すべてのフレームが生成されたことを確認してから、フレーム 32 が表示されるまで右にスクロールします。再生時間の合計は約 76 秒です。

    最後のフレームまでスクロール

  9. リボンの [アニメーション] タブの [再生] グループにあるアニメーションの [現在] フィールドと [期間] フィールドにご注目ください。

    アニメーションの期間は 1 分 33 秒 (01:33.000) に設定されています。(期間の値は異なる場合があります)。この時間は長すぎるため、アニメーションの期間を 30 秒に短縮します。

  10. [期間] で、「00:30.000」と入力し、Enter キーを押します。

    アニメーション フレーム間の時間が調整され、アニメーション全体の合計時間が 30 秒になります。アニメーション タイムラインを確認すると、最後のフレーム (32) が 28 秒をちょうど過ぎたところで終了していることがわかります。

    アニメーションの期間を 30 秒に変更

    次に、アニメーション タイムラインをムービーにエクスポートします。

  11. リボン上の [アニメーション] タブにある [エクスポート] グループで、[ムービー] をクリックします。

    アニメーションをムービーにエクスポート

    [ムービーのエクスポート] ウィンドウが表示され、エクスポートされるビデオに関連するオプションをここで指定できます。

  12. [ムービーのエクスポート] ウィンドウで、必要に応じて [ムービー エクスポートの事前設定] を展開し、定義済みのエクスポートの事前設定を表示します。次の事前設定を変更します。
    • 事前設定の中から [HD720] をクリックします。
    • [ファイル名] で、プロジェクトを抽出したディレクトリ (例: C:\ClimateAnalysis) にファイル パスを変更し、ビデオ ファイル名に「TemperatureTimeSnapshotEstimation.mp4」と入力します。
    • [ファイル エクスポート設定] を展開し、[メディア形式][MPEG4 ムービー (*.mp4)] であることを確認します。
    • [1 秒あたりのフレーム数] で、「15」と入力します。

    ビデオ設定の構成

    エクスポート時間の節約のため、ビデオでは、比較的低速のフレーム レートである 15 フレーム/秒が使用されます。より高い解像度のビデオを作成する場合は、1 秒あたりのフレーム数を増やすことができます。

  13. [エクスポート] をクリックします。

    ビデオ ファイルがエクスポートされるまでに数分かかることがあります。お使いのコンピューターのプロセッサとグラフィックス カードがアニメーションのエクスポート速度に直接影響を及ぼします。加えて、アニメーションの長さと解像度のサイズも、ムービーの各フレームの生成にかかる時間に影響します。

  14. ビデオのエクスポートが完了したら、[ムービーのエクスポート] ウィンドウの左下にある [ビデオの再生] をクリックします。

    お使いのコンピューターのデフォルトのビデオ ビューアーが開き、米国全土の気温タイムスナップショット推定のムービーが表示されます。

    アニメーション

    これで、このビデオを他のユーザーが共有してアクセスできるようになりました。このビデオを ArcGIS Online にアップロードしたり、YouTube で共有したり、同僚に見せたりできます。

    備考:

    ArcGIS Pro からエクスポートしたムービーを Windows Media Player または別の一般的なビデオ プレーヤーで再生できない場合は、必要なコーデック ファイルが欠落していることが考えられます。コーデックは、ビデオ ファイルのサイズを小さく保つために使用される圧縮形式です。正しいコーデックがインストールされている場合は、Windows Media Player で、サポート対象のムービー形式を再生できます。

    続行する前に、アニメーション タイムラインを閉じて、時間フィールドを無効にします。タイム スライダーでフィーチャを選択することもできるため、現在タイム スライスが選択されていないことを確認する必要があります。

  15. [temperature_time_series] レイヤー プロパティの [レイヤーの時間] で、[時間がありません] に戻します。これにより、すべての時系列が利用できるようになります。
  16. プロジェクトを保存します。

このセクションでは、時系列モザイクを作成および調査し、解像度を低減した気温プロファイルのアニメーションを作成しました。次のステップでは、R-ArcGIS Bridge を使用して作成した時系列を解析します。

R-ArcGIS Bridge の設定および使用

前のセクションで、解像度を低減した気温プロファイルを含む時系列モザイクを作成しました。1 つ目のレッスンで設定した Conda 環境は R に同梱されています。最初のステップでは、R-ArcGIS Bridge を使用して、Conda 環境にある R バージョンを ArcGIS Pro に接続します。

接続を確立したら、次の手順を実行します。

  1. リボンの [プロジェクト] タブをクリックします。

    [プロジェクト] タブ

  2. [プロジェクト] ウィンドウで、左側にある [オプション] をクリックし、[ジオプロセシング] を選択します。

  3. [ジオプロセシング] オプションから、[R-ArcGIS サポート] を見つけます。

    ジオプロセシング オプション

    システムは、ホーム ディレクトリ内に R-ArcGIS 統合パッケージと arcgisbinding が存在することを自動的にチェックします。有効な R ホーム ディレクトリが検出されると、そのディレクトリへのパスが [R-3.5.2] C:\program Files\R\R-3.5.2 と表示されます。また、パッケージ バージョンも R ホーム ディレクトリ情報の下に表示されます。

    備考:

    • arcgisbinding が見つかった場合は、アップデートの有無を確認し、最新バージョンをダウンロードして、ファイルから更新できます。
    • arcgisbinding が見つからなかった場合は、警告が表示され、パッケージをダウンロードしてインストールするオプションが示されます。

  4. [arcgisbinding] をインストールする必要がある場合、警告の横にあるドロップダウン矢印をクリックし、[インターネットからのパッケージのインストール] を選択します。

    ArcGIS R 統合のインストール

    最新バージョンをインストールするかどうかを確認するメッセージが表示されます。

  5. プロンプトに対して [はい] をクリックします。

    arcgisbinding の更新

  6. インストールの概要ウィンドウを確認してから、[閉じる] をクリックします。

    インストール メッセージの出力

    1 つ目のレッスンでは、Conda ディレクトリに R がインストールされた Conda パッケージをインストールしました。R-ArcGIS Bridge はこのインストールを特定し、R と ArcGIS Pro の間の接続を作成します。これにより、R-ArcGIS Bridge を使用してモザイク データセット内の時系列データを解析できるようになります。

    解析を行うには、機能データ解析 (FDA) の実行に必要なステップを含む R Jupyter Notebook をダウンロードして実行します。

    Notebook R コードは FDA を実装し、すべての場所の時間シグナルを単純な解析関数に分解します。各関数に関連付けられた加重は、その時間シグナルにおけるシグネチャの顕著性を表しています。このため、複雑なシグナルを単純な構成要素に分解し、単純化されたドメインで解析を実行できます。

    複雑なシグナルを構成要素に分解

  7. TimeSeriesDecomposition 圧縮フォルダーをダウンロードします。
  8. コンピューター上でダウンロードしたファイルを見つけ、notebooks フォルダー (例: C:\ClimateAnalysis\notebooks) に解凍します。
    備考:

    コード内のデータ パスは次のように設定されています。

    • C:\ClimateAnalysis\p20\default.gdb
    • C:\ClimateAnalysis\p20\downscaleclimate.gdb

    ソース データが別の場所にある場合は、コードを実行する前にデータ パスを変更してください。

  9. [TimeSeriesDecomposition] ノートブックを開きます。
    備考:

    コードが実行する解析手順は次のとおりです。

    • 解析パッケージ (rgdal、fda、rts、および shiny) をインストールします。
    • ArcGIS Pro への接続を初期化し、ライセンスとバージョンを確認します。
    • GDB ラスターの場所を定義します。
    • 時系列モザイクを読み取り、ラスター リストを生成します。
    • ラスター範囲を定義します。
    • 予測時間を設定します。
    • 気温予測を保存するための多次元ラスター スタックを作成します。
    • R 時空間データ構造を視覚化します。
    • 気温予測の時間スナップショットをプロットします。
    • 最高気温をプロットします。
    • フーリエ基底関数を定義します。
    • モザイク データセットに基づいて空のターゲット ラスターを作成します。
    • FDA スコアおよび係数をマルチバンド ラスターに書き込みます。
    • 米国の郡ポリゴンごとに予測された気温時系列を抽出します。
    • 各郡の平均時系列値を計算します。
    • 郡レベルの時系列を分解します。
    • 各郡で FDA を実行します。
    • 基底関数の係数を郡ポリゴンに追加します。

  10. ノートブックのコードを確認し、必要に応じてデータ パスを更新します。コードは機能データ解析を実行し、予測した温度プロファイルのさまざまなシグネチャを評価します。基本的に、機能データ解析では、複雑な時系列を単純な複合解析時系列に分解します。
  11. 準備ができたら、ノートブックのコードを実行します。
  12. ノートブックで、出力を確認します。

    コードの出力は次のとおりです。

    • 2006-02-01 ~ 2011-01-01 までの毎月のラスター時系列
    • クラス: RasterStackTS
    • ラスターのディメンション: 200、100、20000、60 (nrow、ncol、ncell、nlayers)
    • ラスター解像度: 0.55、0.125 (x、y)
    • ラスター範囲: -125、-70、25、50 (xmin、xmax、ymin、ymax)
    • 座標参照系: +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
    • 最小値: -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 ...
    • 最大値: 22 22 22 22 22 22 22 22 22 22 ...

    1 年目の予測因子の気温プロファイル

    周期的な低解像度の気温変動

    このプロットは、すべてのラスター セルに対して予測された気温の経時的な変化を反映しています。プロット内の各ラインは、5 年間にわたるラスター セルの予測気温に対応しています。気温の特性は周期的であることから、解像度を低減した各ラスター セルの気温のプロットには、観測気温の山と谷の変動が反映されています。

    フーリエ基底関数で使用される正弦および余弦基底関数

    前のプロットでは、気温の周期的な特性を観測しました。この結果、フーリエ基底関数を使用し、モデル化された気温プロファイルを正弦波シグナルと余弦波シグナルの組み合わせとして分解します。

    このステップでは、時系列ラスターを構成要素のスコアに分解しました。各スコアの大きさは、その位置における複雑な時系列シグナルとその基底関数との類似性を説明しています。たとえば、2 つの山と 1 つの谷を含む正弦波基底関数において、ある場所で高い加重が付与されている場合、その場所での主要な気温振動が 2 つの高温の季節と 1 つの低温の季節から構成されていることを意味します。

解像度を低減した気温プロファイルに基づく地域の定義

前の手順では、R-ArcGIS Bridge を使用してジオデータベースのモザイク データセットにアクセスすることにより、ニッチ R ライブラリを使用して時系列モザイクを分解しました。このステップでは、FDA ライブラリによって定義されたスコアを評価します。前のステップでフーリエ基底関数を使用しました。これは、ある郡の気温時間シグナルを、その郡の解像度を低減した気温変動のさまざまな特性を示す異なる基底関数の加重に分解したことを意味します。

次に、説明した R ワークフローで定義した基底関数を使用して、個々の地域または時系列プロファイルのクラスターを特定する必要があります。この操作が正常に終了すると、解析によって、それぞれの時系列特性を持つ地域が特定され、クラスターに分類されます。たとえば、四季がある場所と四季がない場所では、異なるグループに属することが予想されます。このような地域を発見するには、クラスター分析を使用します。

  1. 必要に応じて、アプリケーションを ArcGIS Pro に切り替えます。ノートブックを閉じないでください。
  2. [カタログ] ウィンドウの [フォルダー] 接続で、[Default.gdb] を見つけて [us_county_fda] をマップに追加します。
  3. [コンテンツ] ウィンドウで、[us_county_fda] を右クリックして [属性テーブル] を選択します。テーブル内で、テーブルを右にスクロールして、[const][sin1]、および [cos1] フィールドを確認します。

    レイヤー テーブルの確認

    次に、定数値をマッピングします。

  4. [コンテンツ] ウィンドウで、[us_county_fda] を右クリックして [シンボル] を選択します。
  5. [シンボル] ウィンドウの [プライマリ シンボル] で、[等級色] を選択します。
  6. [フィールド][const] を選択します。
  7. [配色][黄から赤] を選択します。

    レイヤーのシンボルの設定

    マップが更新され、各郡の定数が表示されます。これは、その郡の気温時系列の平均値を示しています。マップを確認すると、予測時系列分解で期待した平均気温プロファイルが得られていることがわかります。

    郡ごとの定数値のマップ

    マップで南から北への明確な気温のグラデーションが表示されていることに注目します。

    南から北への気温のグラデーション

    また、沿岸エリアは明らかに低い平均気温を示しています。

    沿岸エリアへの影響

    備考:

    [TimeSeriesDecomposition] R ノートブックの新しいセルで、次のコードを追加して実行し、指定した場所での平均気温のプロットを生成します。

    1 つ目の基底関数のプロット

    ## Explore Some of the Basis Functions
    t <- seq(from = 0, to = 1, by = 0.01)
    bvals = eval.basis(t, basis_funcs)
    ## The First Basis Function
    plot(t, bvals[, 1], type = "l", lwd = 4)

    結果を確認します。

    指定した場所での平均気温のプロット

  8. [シンボル] ウィンドウで、フィールドを [sin1] に変更します。

    [sin1] フィールドを表示するように設定

    マップが更新され、各郡の sin1 値が表示されます。2 つの明らかに異なる季節があるエリアなど、1 年の大半の期間で周期性を示す場所に対して、マップは高い係数値を示します。

    高い周期性を示す郡

  9. マップ上で、[カリフォルニア] にズームします。

    カリフォルニアの解像度を低減した気温パターンに注目し、夏と冬の明確な気温の違いによって強いパターンが示されていることを確認します。

    カリフォルニアの季節変動

    米国南東部の一部の地域を確認します。これらの地域では、大西洋と中西部に近い郡でシグネチャが放射状に減衰していることがわかります。

    備考:

    [TimeSeriesDecomposition] R ノートブックの新しいセルで、次のコードを追加して実行し、指定した場所での平均気温のプロットを生成します。

    2 つ目の基底関数のプロット

    ## The Second Basis Function
    plot(t, bvals[, 2], type = "l", lwd = 4)

    結果を確認します。

    気温の上昇を示すシグナルを含む基底関数のプロット

    この基底関数には、1 月の直後に気温が上昇していることを示すシグナルが含まれています。このシグナルは年半ばに減少し始め、その後元に戻っています。北米ではこのようなプロファイルは想定されていないため、この基底関数の加重は小さくなる可能性があります。

  10. [シンボル] ウィンドウで、フィールドを [cos1] に変更します。

    マップが更新され、年間を通して気温が大幅に下がる地域が表示されます。

    1 年の間に気温が大幅に下がるエリア

    米国北部では、この大きな気温低下パターンが極めて顕著に表れています。

    備考:

    [TimeSeriesDecomposition] R ノートブックの新しいセルで、次のコードを追加して実行し、指定した場所での平均気温のプロットを生成します。

    cos1 基底関数のプロット

    ## The cos1 Basis Function plot(t, bvals[, 3], type = "l", lwd = 4)

    結果を確認します。

    年半ばに気温低下を伴う cos1 のプロット

    この基底関数は、年半ばに気温が急激に低下し、その後気温が上昇する様子を示しています。

  11. [シンボル] ウィンドウで、フィールドを [cos5] に変更します。

    マップが更新され、年間を通じて気温が高頻度で変動している場所が表示されます。ここで特に興味深いのは、解像度を低減した気温プロファイルに水域からの距離が与える影響です。五大湖に近い場所や海沿いの場所では気温の変動が大きく、水域から離れた場所にある内陸部では気温の変動が小さくなっています。

    水域からの距離の影響

    備考:

    [TimeSeriesDecomposition] R ノートブックの新しいセルで、次のコードを追加して実行し、指定した場所での平均気温のプロットを生成します。

    cos5 基底関数のプロット

    ## The cos5 Basis Function
    plot(t, bvals[, 11], type = "l", lwd = 4)

    結果を確認します。

    毎月の気温変化を示す cos5 のプロット

    この基底関数は毎月の気温変動を示しています。気温に対する明確な変動は、水域の近くで予想されます。

    いくつかの機能基底関数を調査した後は、気温プロファイルの空間的に隣接している地域を作成する必要があります。年間を通して同様の気温変動が予測される郡および近隣の郡は、同じ地域にグループ化されると予想されます。これを実現するには、定数基底関数を除くすべての基底関数に対して [空間的に制限された多変量クラスター分析 (Spatially Constrained Multivariate Clustering)] ツールを使用します。定数基底関数には、ある場所の平均気温についての情報のみが含まれ、気温変動についての情報は含まれていません。

  12. リボン上の [解析] タブで [ツール] ボタンをクリックします。[ジオプロセシング] ウィンドウで、「Spatialally Constrained Multivariate Clustering」と入力します。

    最初のスコアを除くすべてのスコアに対してこのツールを実行し、気温時系列のプロファイル全体の相違度を求めます。

  13. [空間的に制限された多変量クラスター分析 (Spatially Constrained Multivariate Clustering)] ツールで、次のパラメーターを設定します。

    • [入力フィーチャ][us_county_fda] に設定します。

    • [出力フィーチャ] に「us_county_fda_SpatiallyConst1」と入力します。

    • [分析フィールド][sin1][cos1][sin2][cos2][sin3][cos3][sin4][cos4][sin5][cos5][sin6][cos6][sin7][cos7] を選択します。

    空間的に制限された多変量クラスター分析 (Spatially Constrained Multivariate Clustering) ツール

  14. [実行] をクリックします。
  15. ツールの詳細を確認し、各入力変数に対して生成された統計情報に注目します。

    [空間的に制限された多変量クラスター分析 (Spatially Constrained Multivariate Clustering)] ツールの出力統計情報

    [空間的に制限された多変量クラスター分析 (Spatially Constrained Multivariate Clustering)] ツールは、新しいレイヤーと複数のチャートを [コンテンツ] ウィンドウに追加します。ツールの詳細で説明されている統計情報は、米国内のすべての郡での変数の平均、最小、および最大の加重などを表します。

  16. [コンテンツ] ウィンドウで、[us_county_fda_SpatiallyConst1] レイヤーを確認して展開します。

    クラスター化された米国の郡

    [空間的に制限された多変量クラスター分析 (Spatially Constrained Multivariate Clustering)] ツールにより、データに割り当てる必要があるクラスター数の有効な指標になる最大の疑似 F 統計に基づいて、米国の郡が 24 のクラスターにグループ化されています。また、このツールは、空間的に制限された多変量クラスター分析の箱ひげ図と、各クラスター ヒストグラムの多数のフィーチャを作成します。箱ひげ図は、各地域に関連付けられている気温シグネチャを表します。

    備考:

    F 統計値が最大となるソリューションでは、同じクラスターに属するフィーチャ同士の相似性、違うクラスターに属するフィーチャ同士の相違性が両方とも最大になります。クラスター数を決めるのに頼れる基準が他にない場合、ツールは疑似 F 統計値が最大になる値を使用します。

  17. [コンテンツ] ウィンドウで、[空間的に制限された多変量クラスター分析の箱ひげ図] を右クリックして [開く] を選択します。

    [空間的に制限された多変量クラスター分析 (Spatially Constrained Multivariate Clustering)] の箱ひげ図

    西海岸の一部に関連付けられた緑色の地域は、sin4 までの周期性に対する加重が低く、気温プロファイルに対する変化が小さいことを示す加重が高いことを示しています。

  18. チャートで、西海岸に関連付けられている中程度の緑色のプロットを特定および選択します。

    確認のために西海岸のクラスターを選択

  19. チャート ウィンドウの [フィルター] で、[選択] をクリックして、選択したクラスターのみを表示します。

    選択セットによるプロットのフィルタリング

  20. 西海岸のフィルタリングされた箱ひげ図を確認します。

    西海岸の一部に関連付けられた箱ひげ図は、sin4 までの周期性に対する加重が低く、気温プロファイルに対する変化が小さいことを示す加重が高いことを示しています。

    西海岸クラスターの気温の周期性

  21. 自身で、箱ひげ図内のレコードを選択解除し、五大湖に囲まれた薄いピンク色の地域を確認します。

    五大湖地域クラスターの気温の周期性

    この地域は、1 か月以内の気温の急激な変化で特定される cos5、cos6、および cos7 基底関数に似た強いシグナルを示しています。また、急激な気温低下を示す cos1 シグナルが大きいという特徴もあります。これらの要因は、気温に対する湖の影響が著しい五大湖地域によく見られます。

このレッスンでは、ArcGIS Pro の一連の回帰分析を使用して、離散時間の統計的な気候の解像度低減を検討し、シミュレートされた気候と観測された天気の間の関係を形成しました。空間および非空間データ探索を行い、[一般化線形回帰分析 (Generalized Linear Regression)]、[地理空間加重回帰分析 (Geographically Weighted Regression)]、および [フォレストベースの分類と回帰分析 (Forest-based Classification and Regression)] ツールを試しました。正確な回帰モデルを見つけた後、Jupyter Notebook を使用して Python による自動化を活用し、5 年間、計 60 個の毎月のタイム スライスで気温予測を定義しました。ArcGIS Pro の時系列モザイクを使用して、すべての予測気温ラスターを 1 つのデータ構造にまとめました。R-ArcGIS Bridge のモザイク統合を使用して、機能データ解析を実行し、米国全土の予測気温プロファイルにおける主要な時間シグネチャを探索しました。最後に、機能データ スコアを R から ArcGIS にシームレスに移行して、予測された時系列シグネチャを視覚的に調査し、機能スコアに対して空間的に制限された多変量クラスター分析を使用して、米国の気温プロファイル地域を確立しました。

その他のレッスンについては、「Learn ArcGIS Lesson ギャラリー」をご参照ください。