データ パイプラインの構築
関係者から要求されている最終的なデータセットを作成するには、位置情報を有効にし、不要な属性を削除し、新しいフィールドの演算を行うことで、データ パイプラインのデータを変換する必要があります。
ここでは、設備プロジェクトに関する情報を含む初期テーブルの追加、データセットへのフィルターの適用、座標を使用したジオメトリの作成、データの投影変換、フィールド演算を行います。
データ パイプラインの作成
まず、ArcGIS Online にサイン インして、空のデータ パイプラインを作成します。
- 「ArcGIS の組織アカウント」にサイン インします。
注意:
組織アカウントがない場合は、ソフトウェア アクセスのオプションをご参照ください。
- リボンで、アプリ ランチャー ボタンをクリックします。 [Data Pipelines] を選択します。
ブラウザー タブが開き、所有している既存のデータ パイプラインを示すギャラリーが表示されます。
- [データ パイプラインの作成] をクリックします。
Data Pipelines エディターが表示されます。 この編集環境では、データ入力の追加、データ変換ツールへのアクセス、処理済みデータのフィーチャ レイヤーへの書き込みを行うことができます。
Data Pipelines エディターでの作業中は、[接続の詳細] ダイアログに表示されるとおり、計算リソースに接続します。
注意:
ArcGIS Data Pipelines を使用すると、クレジットを消費します。 エディター ページのステータスが [接続] になっている間は、クレジットが使用されます。 クレジット消費と ArcGIS Data Pipelines の詳細については、「Data Pipelines でクレジットは請求されますか?」と「計算リソース」をご参照ください。
CSV テーブルを入力として追加
Data Pipelines エディターを開いたので、次に最初の入力データセットを追加します。 追加するデータセットは DPR の設備プロジェクトのテーブルです。 このテーブルは高い頻度で更新されるため、エクスポートされたテーブルではすぐに情報が古くなります。 そのため、ソースから直接「.csv」テーブルにアクセスします。
- Capital Project Tracker データセットの New York City OpenData (NYC OpenData) ページを開きます。
ブラウザー タブが開き、[Capital Project Tracker] データセットの概要が表示されます。 この概要には、データセットの更新頻度、最終更新日、「.csv」テーブルの各列の説明などの重要な情報が記載されています。
- [Export] ボタンをクリックします。
[Export dataset] ウィンドウが表示されます。
- [Export dataset] ウィンドウで、[API endpoint] をクリックします。
注意:
このデータセットは経時的に変化するため、このデータセットやこのチュートリアルで使用される他のデータセットに表示される行数は、画像とやや異なる場合があります。
この API エンドポイントを使用すると、URL 経由でデータセットにアクセスできます。
警告が表示されます。 これによると、デフォルトでアクセス可能な行数は、このデータセットの 2,542 行のうち 1,000 行のみです。 後でこの上限を 3,000 行に増やします。
Data Pipelines では JSON データ形式を使用できますが、このデータ形式を「.csv」に変更します。
- [Data format] で [CSV] を選択します。
次に、このデータセット用の URL をコピーします。
- [Copy to clipboard] をクリックします。
次に、この「.csv」テーブルをデータ パイプラインに [パブリック URL] 入力として追加します。
- [エディター] ツールバーで [入力] をクリックします。 [入力] ウィンドウの [ファイル] で、[パブリック URL] を選択します。
注意:
[エディター] ツールバーのボタン名を表示するには、ツールバーの下部の [展開] ボタンをクリックします。
[URL の追加] ウィンドウが開きます。
- [URL] テキスト ボックスをクリックし、Ctrl + V キーを押して、NYC OpenData Web サイトからコピーした URL を貼り付けます。
[データ形式] パラメーターが自動で選択されます。
この URL でソースのデータセットから取得できる行数の上限は 1,000 行です。 この制限を解除するために、既存の URL に、上限を 3,000 行に増やす URL パラメーターを追加します。 上限を 3,000 行に増やすのは、テーブルに 2,542 行あるためです。 3,000 行の上限は、現在のデータセットのサイズに対応し、今後の行数の増加にも対応できる十分な大きさです。
- 貼り付けた URL の末尾を 1 回クリックします。 「?$limit=3000」と入力します。
1 つ目の入力値はこれで完了です。
- [追加] をクリックします。
[パブリック URL] エレメントがキャンバスに追加されます。
このエレメントの名前は、アクセスした「.csv」の名前から派生しています。 次に、この名前を変更します。
- [エレメント] アクション バーで、[名前の変更] ボタンをクリックします。
- テキスト ボックスのテキストを削除し、「Capital Project Tracker」と入力して Enter キーを押します。 名前が表示されるようにエレメントのサイズを拡大します。
エレメントがキャンバスで選択されているため、[パブリック URL] ウィンドウが開きます。 ここではキャンバス上で選択されたエレメントの構成や再構成を実行できます。
次に、追加したデータセットをプレビューします。
- [パブリック URL] ウィンドウで、[プレビュー] をクリックします。
[プレビュー ウィンドウ] が表示されます。 現時点ではテーブルのプレビューが表示されます。 ここではデータをプレビューして、データ パイプラインの実行時にデータがどうなるかを確認します。
注意:
エレメントのアクション バーにある [プレビュー] ボタンをクリックして、データをプレビューすることもできます。
テーブルの上部に、レコード数が 2,554 であると表示されています。 この数が OpenData Web サイトの行数と一致しない場合があります。 一致しない場合は、レコードの一部に、レコードを複数行に分割する文字が含まれています。 [パブリック URL] パネルで、そのような状態を確認できます。
- [パブリック URL] ウィンドウで、[複数行データを含む] をオンにします。
- [プレビュー] をクリックします。
プレビューが更新されます。 レコード数が 2,542 になりました。
- テーブルをスクロールして、NYC OpenData から取得したデータを観察します。
- [マップのプレビュー] ボタンをクリックします。
これは単なるテーブルであり、ジオメトリが定義されていないため、マップのプレビューは使用できません。 後のセクションでマップのプレビューを表示できるようにします。
- [スキーマ] ボタンをクリックします。
データセット内のすべてのフィールドとそのフィールド タイプが表示されます。 チュートリアルではこれ以降、複数のフィールドを使用してデータを変換します。使用するフィールドには、[currentphase]、[designstart]、[latitude]、[longitude] などがあります。
- [メッセージ] ボタンをクリックします。
データセットのプレビューで警告やエラーが発生した場合は、ここに表示されます。
- プレビュー ウィンドウを閉じます。
属性によるデータのフィルター
「.csv」テーブルをデータ パイプラインに追加したところで、次にツール エレメントを使用して、現在のフェーズが [construction] であり、かつ緯度と経度の値が誤っている設備プロジェクトのみを表示するように、データセットにフィルターを適用します。
- [エディター] ツールバーで、[ツール] をクリックします。
[ツール] ウィンドウが表示されます。 カテゴリ別に表示されているツールを使用して、データ パイプライン内のデータセットを操作できます。 [属性によるフィルター] ツールを追加して、現在のフェーズが [construction] ではない行を削除します。 また、緯度または経度の値が [0] である行も除外します。
- [ツール] パネルで、[クリーン] の下の [属性によるフィルター] をクリックします。
エレメントがキャンバスに追加されます。 このエレメントを、データを含む既存のエレメントに接続する必要があります。 その後、このエレメントを構成する必要があります。
- [属性によるフィルター] エレメントを [パブリック URL] エレメントの右側に移動します。
- [属性によるフィルター] ウィンドウの [入力データセット] で、[データセット] をクリックします。 [データセットの選択] ウィンドウで、[Capital Project Tracker] を選択します。
2 つのエレメントが接続されます。 このデータ パイプラインの実行時に、データが「.csv」ファイルから [属性によるフィルター] ツールへと流入します。
注意:
1 つのエレメントの出力ポートからもう 1 つのエレメントの入力ポートにポインターをドラッグして、データ パイプライン内のエレメントを接続することもできます。
次に、緯度または経度の値が [0] であるレコードを除外し、現在のフェーズの値が [construction] となっている行のみを表示するよう、フィルターを構成します。
- [属性によるフィルター] ウィンドウで、[新しいクエリの構築] をクリックします。
[検索条件設定] ウィンドウが表示されます。
- [式] が選択されていることを確認して、[次へ] をクリックします。
- 最初の式として、フィールドを [latitude] に設定し、演算子を [等しくない] に設定します。 値には「0」と入力します。
- [式] ボタンをクリックします。
- 2 つ目の式は [longitude 等しくない 0] となるようにします。
- さらに式を追加し、[currentphase 等しい construction] という条件で行を検索するようにします。
注意:
値は直接入力ではなく、ドロップダウン リストを使用して選択できます。
- [追加] をクリックします。
次に、結果をプレビューします。
- [属性によるフィルター] ウィンドウで、[プレビュー] をクリックします。
プレビュー ウィンドウが表示されます。 このテーブルのタイトルの下に、レコード数が表示されます。 フィルター設定前は、2,500 レコードを超えていました。 フィルターの適用によって 200 未満になりました。
- テーブルをスクロールして、[latitude]、[longitude]、[currentphase] の各フィールドの値を確認します。
これらの値はクエリの条件を満たしています。
- プレビュー ウィンドウを閉じます。
ツール エレメントをキャンバスに追加したときに、[属性によるフィルター] というデフォルト名が付けられました。 この名前をよりわかりやすく変更します。
- [エレメント] アクション バーで、[名前の変更] をクリックし、「Filter for Construction Phase」と入力します。 名前が表示されるようにエレメントのサイズを調整します。
他のエレメントを追加する前に、データ パイプラインを保存します。
- [エディター] ツールバーの [保存して開く] をクリックして [名前を付けて保存] を選択します。
[データ パイプラインの保存] ウィンドウが表示されます。
- [タイトル] に「Capital Projects Data Pipeline」と入力します。
- [保存] をクリックします。
データ パイプラインが保存されます。
ポイント ジオメトリの作成
次に、フィルター適用後のデータセット内の緯度と経度の列を使用して、このデータセットからマップ上で表示可能なジオメトリを生成します。
- [エディター] ツールバーで、[ツール] をクリックします。 [ツール] ウィンドウの [構築] で、[ジオメトリの作成] をクリックします。
[ジオメトリの作成] エレメントがキャンバスに追加されます。
- [ジオメトリの作成] エレメントを [属性によるフィルター] エレメントの右側に移動します。
- [属性によるフィルター] エレメントの出力ポートをクリックし、[ジオメトリの作成] エレメントの入力ポートにドラッグします。
2 つのエレメントが接続されます。 次に、[ジオメトリの作成] エレメントを構成します。 このテーブルには緯度と経度の値が含まれているため、ポイント ジオメトリを作成できます。
- [ジオメトリの作成] ウィンドウの [ジオメトリ タイプ] で、[ポイント] を選択します。 [ジオメトリ形式] で、[XYZ] を選択します。
追加パラメーターが表示されます。 これらのパラメーターは、X 値、Y 値、Z 値が格納されているテーブル内のフィールドを判定するために使用されます。 このデータセットには Z 値がないため、このパラメーターは使用されません。
- [X フィールド] で、[longitude] を選択します。 [Y フィールド] で、[latitude] を選択します。
- [プレビュー] をクリックします。
- プレビュー ウィンドウで、[マップのプレビュー] ボタンをクリックします。
設備プロジェクトの位置がマップに表示されます。 フィーチャをクリックすると、属性がポップアップ ウィンドウに表示されます。
- プレビュー ウィンドウを閉じます。
ポイント データの投影変換
前項の緯度と経度の値によるポイントの作成には、WGS 1984 地理座標系が使用されています。 これはニューヨーク市にとっては最良の座標系ではありません。 ここでは、より適切な座標系へのデータの投影変換を行います。
注意:
座標系についてよくわからない場合は、Coordinate Systems: What's the Difference をご参照ください。
- [エディター] ツールバーで、[ツール] をクリックします。 [ツール] ウィンドウの [形式] で、[ジオメトリの投影変換] をクリックします。
[ジオメトリの投影変換] エレメントがキャンバスに追加されます。
- [ジオメトリの投影変換] エレメントを [ジオメトリの作成] エレメントの右側に移動します。
- [ジオメトリの作成] エレメントの出力ポートをクリックし、[ジオメトリの投影変換] エレメントの入力ポートにドラッグします。
2 つのエレメントが接続されます。 次に、[ジオメトリの投影変換] エレメントを構成します。
- [ジオメトリの投影変換] ウィンドウの [空間参照] で、[座標系の参照] をクリックします。
投影座標系として、[NAD 1983 (2011) StatePlane New York Long Isl FIPS 3104 (Meters)] を使用します。 ID 番号は [6538] です。
- [座標系の参照] ウィンドウで、検索ボックスに「6538」と入力します。 [NAD 1983 (2011) StatePlane New York Long Isl FIPS 3104 (Meters)] を選択します。
- [完了] をクリックします。
新しいフィールドの演算
初期入力データセットを準備する最後のステップとして、新しいフィールドの演算を行います。 このデータセットには [designstart] フィールドがあります。 これは各プロジェクトが最初に開始された日付を記録します。 ここでは、各プロジェクトの開始後の経過時間を年数と日数で算出するための追加フィールドの演算を行います。
- [エディター] ツールバーで、[ツール] をクリックします。 [ツール] ウィンドウの [構築] で、[フィールド演算] をクリックします。
[フィールド演算] エレメントがキャンバスに追加されます。
- [フィールド演算] エレメントを [ジオメトリの投影変換] エレメントの右側に移動します。
- [ジオメトリの投影変換] エレメントの出力ポートをクリックし、[フィールド演算] エレメントの入力ポートにドラッグします。
2 つのエレメントが接続されます。 次に、[フィールド演算] エレメントを構成します。 まず、新しいフィールドに名前を付けます。
- [フィールド演算] ウィンドウで、[新しいフィールド名] に「Elapsed_Time」と入力します。
注意:
フィールド名にスペースなどの特殊文字を使用することはできません。
次に、適切なフィールドのタイプを選択します。 このフィールドにはテキストと数字が含まれるため、[文字列] フィールドにする必要があります。
- [新しいフィールド タイプ] で、[String] を選択します。
次に、フィールド演算のための式を記述します。 このツールでは、フィールド演算に ArcGIS Arcade の式を使用します。
注意:
ArcGIS Arcade の詳細については、Learn ArcGIS Arcade in Four Easy Steps をご参照ください。
- [Arcade 式] で、[Arcade 式の作成] をクリックします。
[Arcade 式] ウィンドウが表示されます。 ここでフィールド値の演算のための Arcade 式を記述できます。 設備プロジェクトの設計が開始されてから現在までの年数と日数を返すコードをコピーして貼り付けます。
- [Arcade 式] ウィンドウで、サンプル コードを削除します。
- 次のコードをコピーして [Arcade 式] ウィンドウに貼り付けます。
//Convert time between 2 fields to count years and days //Determine the total number of days var TotalDays = DateDiff(now(), $record.designstart, "days") //Determine the number of days var RemainderDays = Floor(TotalDays % 365) //Determine the number of years var RemainderYears = Floor(DateDiff(now(), $record.designstart, "years")) //Format the final text to account for year(s) and day(s) if(RemainderYears == 1 && RemainderDays == 1){ return RemainderYears + " year and " + RemainderDays + " day" } else if (RemainderYears == 1 && RemainderDays != 1){ return RemainderYears + " year and " + RemainderDays + " days" } else if (RemainderYears != 1 && RemainderDays == 1){ return RemainderYears + " years and " + RemainderDays + " day" } else{ return RemainderYears + " years and " + RemainderDays + " days" }
この演算の必要な形式は [X years and Y days] です。 そのため、この式では最初に、設備プロジェクトの設計開始後の経過日数を算出します。 この日数は 1 年を超える可能性があるため、このコードでは日数を 365 で除算し、剰余値を返します。 これにより、必要な形式における [Y] の値が返されます。 次に、この式でプロジェクト開始後の経過年数を算出します。 これが、必要な形式における [X] の値となります。 この式の最後の部分 (12 行目以降) では、[years] と [days] のテキストを、設計開始後の日数または年数に基づいて、単数形または複数形になるように整えています。
- [保存] をクリックします。
[Elapsed_Time] フィールドがテーブルに追加され、計算されます。
- [フィールド演算] ウィンドウで、[プレビュー] をクリックします。
- プレビュー ウィンドウで、[Elapsed_Time] フィールドまでスクロールします。
プロジェクトごとに、プロジェクト開始後の経過年数と日数が、わかりやすい形式で記録されています。
- プレビュー ウィンドウを閉じます。
このエレメント名を変更して、計算対象のフィールドを明確にします。
- [フィールド演算] エレメントの名前を「Calculate Elapsed Time」に変更します。
- 名前全体が表示されるようにエレメントのサイズを拡大します。
最後に、このデータ パイプラインを保存します。
- [エディター] ツールバーの [保存して開く] をクリックして [保存] を選択します。
ここまでの段階で、「.csv」テーブルを追加して、設備プロジェクト データの変換を開始しました。 また、データにフィルターを適用し、座標を使用してポイント ジオメトリを作成しました。さらに、これを適切な座標系に投影変換し、プロジェクトの設計開始後の経過時間を生成するためのフィールド演算を行いました。
空間結合の実行
この時点で、設備プロジェクト データが追加され、一部の形式設定が終わっている状態ですが、他のデータセット由来の帰属がまだ必要です。 設備プロジェクトごとに、どの近隣集計エリアとコミュニティ地区が該当するのかを決定する必要があります。 近隣集計エリアとコミュニティ地区のどちらもポリゴン データセットとして公開されています。 これらの 2 つのデータセットをデータ パイプラインに追加し、空間結合を使用して、設備プロジェクトごとに近隣名と地区名を付与します。
入力としての GeoJSON の追加
まず、近隣集計エリアのデータセットをデータ パイプラインに追加します。 データセットは NYC OpenData Web サイトに GeoJSON 形式で公開されています。
- 2020 Neighborhood Tabulation Areas (NTAs) - Tabular データセットを取得するために NYC OpenData ページを開きます。
ブラウザのタブが開き、[2020 Neighborhood Tabulation Areas (NTAs) - Tabular] データセットの概要が表示されます。 [Capital Project Tracker] データセットと同じく、このページにはデータセットの概要とその更新頻度が示されています。
- [Export] ボタンをクリックします。
[Export dataset] ウィンドウが表示されます。 このデータセットの行数は 1,000 行未満なので、[Capital Project Tracker] データセットの時のように URL を変更する必要はありません。
- [Export dataset] ウィンドウで、[API endpoint] をクリックします。
注意:
このデータセットは経時的に変化するため、表示される行数は上の画像と異なる場合があります。
デフォルトでリストされる形式は JSON ですが、このデータセットをデータ パイプラインに追加し、ポリゴン ジオメトリを作成するには、GeoJSON 形式の方が理にかなっています。
- [Data format] で [GeoJSON] を選択します。
次に、このデータセットの URL をコピーします。
- [Copy to clipboard] をクリックします。
この GeoJSON をデータ パイプラインに [パブリック URL] 入力として追加します。
- Data Pipelines エディターの [エディター] ツールバーにある [入力] をクリックします。 [入力] ウィンドウの [ファイル] で、[パブリック URL] を選択します。
[URL の追加] ウィンドウが開きます。
- [URL] に、NYC OpenData Web サイトからコピーした URL を貼り付けます。
[データ形式] パラメーターが自動で選択されます。
- [追加] をクリックします。
[パブリック URL] エレメントがキャンバスに追加されます。
この名前も直感的ではありません。 エレメント名を変更します。
- [パブリック URL] エレメントの名前を「Neighborhood Tabulation Areas」に変更します。
- 名前がすべて表示されるように、[パブリック URL] エレメントのサイズを変更します。
- このエレメントを [ジオメトリの投影変換] エレメントの下に移動します。
次に、追加したデータセットをプレビューします。
- [パブリック URL] ウィンドウで、[プレビュー] をクリックします。
プレビュー ウィンドウで、このデータセットに含まれるフィールドを確認します。 [ntaname] フィールドは設備プロジェクトのポイント レイヤーにこれから追加する属性で、これに空間結合を使用します。
- [マップのプレビュー] ボタンをクリックします。
近隣地区をポリゴンで描画したマップが表示されます。
- プレビュー ウィンドウを閉じます。
ポリゴン データの投影変換
設備プロジェクトのポイントと同様、近隣地区の GeoJSON は WSG 1984 地理座標系を使用します。 そのため、[ジオメトリの投影変換] ツールをもう 1 つ追加して、設備プロジェクトの場所として使用した州の平面ゾーンと同じゾーンに近隣地区を投影します。 時間を節約するために、既存の [ジオメトリの投影変換] エレメントをコピーします。
- キャンバスで、[ジオメトリの投影変換] エレメントを選択します。
- Ctrl + C キーを押して、エレメントをコピーします。
- Ctrl + V キーを押して、エレメントをキャンバス上に貼り付けます。
- [ジオメトリの投影変換] エレメントを [Neighborhood Tabulation Areas] の [パブリック URL] の右に移動します。
- [パブリック URL] エレメントの出力ポートをクリックし、[ジオメトリの投影変換] エレメントの入力ポートにドラッグします。
2 つのエレメントが接続されます。 このエレメントはコピーしたものであるため、座標系がすでに選択されています。 これで、近隣地区のデータセットは適切な座標系を使うようになりました。
設備プロジェクトと近隣地区との空間結合
両方のデータセットが同じ座標系を使用するようになったので、次にデータ パイプラインに空間結合を追加します。 この空間結合によって、各設備プロジェクトのポイントがどの近隣地区に該当するかを決定し、その近隣地区の属性を設備プロジェクト ポイントに追加します。
- [エディター] ツールバーで、[ツール] をクリックします。 [ツール] ウィンドウの [統合] の下にある [結合] をクリックします。
[結合] エレメントがキャンバスに追加されます。
- [結合] エレメントを [フィールド演算] エレメントと [ジオメトリの投影変換] エレメントの右に移動させます。
次に、[フィールド演算] エレメントと [ジオメトリの投影変換] エレメントとを [結合] エレメントにつなげます。 [結合] エレメントには入力ポートが 2 つあります。 上側の入力ポートはターゲット データセット用です。 ターゲット データセットとは、新たに属性が追加されるデータセットです。 下側の入力ポートは結合データセット用です。 結合データセットは、その属性をターゲット データセットと共有します。 今回は、設備プロジェクトが近隣地区データセットから属性を受け取るようにします。 つまり、[フィールド演算] エレメントがターゲット データセットになるため、それを上側の入力ポートにつなげます。
- [フィールド演算] エレメントの出力ポートをクリックし、[結合] エレメントの上側の入力ポートにドラッグします。 [ジオメトリの投影変換] エレメントの出力ポートをクリックし、[結合] エレメントの下側の入力ポートにドラッグします。
2 つの入力エレメントが [結合] エレメントに接続されています。 [結合] パネルの [ターゲット データセット] と [結合セータセット] は、つないだエレメントを基に入力されています。
次に、[結合] エレメントで空間リレーションシップの使用を設定します。
- [結合] ウィンドウで、[空間リレーションシップ] の下にある [空間リレーションシップの使用] をオンにします。
パラメーターが新たに表示されます。 [ターゲット ジオメトリ] と [結合ジオメトリ] のパラメーターは自動で入力されます。 しかし、[空間リレーションシップ] を選択する必要があります。 これがターゲット データセットと結合データセットをどのように結合するかを決めます。 設備プロジェクトのポイントは近隣地区ポリゴン内にあるため、[交差] リレーションシップを使います。
- [空間リレーションシップ] で [交差] を選択します。
- [プレビュー] をクリックします。
プレビュー ウィンドウが表示されます。 データセットは設備プロジェクトのポイントを表示したままです。 テーブルのプレビューに最初に表示されているフィールドは、設備プロジェクトのポイントに由来します。
- テーブルのプレビューで、テーブルの端に向かってスクロールすると、[ntaname] フィールドがあります。
このテーブルの最後の方に表示されているフィールドは、近隣地区に由来するフィールドです。 これで、各設備プロジェクトに該当する近隣地区を把握できます。
結合を繰り返すと、フィールド数が扱いにくい量になります。フィールドの多くが関係者から要求されていない場合は特にやっかいです。 不要な属性フィールドは後で削除します。
- プレビュー ウィンドウを閉じます。
次のセクションで、2 つ目の空間結合を追加します。 混乱しないように、最初の [結合] エレメントの名前を変更します。
- [結合] エレメントの名前を「Neighborhood Join」に変更します。
入力としてのフィーチャ レイヤーの追加
一部の関係者から、各設備プロジェクトが該当するコミュニティ地区についての情報も最終出力に含めるよう求められました。 この要求にこたえるために、別の [結合] エレメントを使いますが、まずはポリゴン データセットにコミュニティ地区を含める必要があります。 このデータセットは ArcGIS Online にあるので、[パブリック URL] 入力エレメントを使わずに、[フィーチャ レイヤー] 入力エレメントを追加します。
- [エディター] ツールバーで [入力] をクリックします。 [入力] ウィンドウの [ArcGIS] で、[フィーチャ レイヤー] を選択します。
[フィーチャ レイヤーの選択] ウィンドウが表示されます。 ArcGIS Living Atlas や ArcGIS Online に所有しているコンテンツなど、さまざまなロケーションからデータセットを追加できます。
- [マイ コンテンツ] をクリックして [ArcGIS Online] を選択します。
次に、コミュニティ地区を含んでいる New York City の公開データセットを検索します。
- 検索ボックスに「New York City Community District」と入力します。
- 下にスクロールすると、[Data Owner] が所有している [Community District] レイヤーがあります。
フィーチャ レイヤーには複数のサブレイヤーがある場合があるため、[CommunityDistrict] サブレイヤーを選択して、データ パイプラインに追加します。
- [Community District] で、[レイヤーの選択] をクリックします。 [CommunityDistrict] を選択します。
- [追加] をクリックします。
[フィーチャ レイヤー] エレメントがキャンバスに追加されます。
- [フィーチャ レイヤー] エレメントを近隣地区のデータセットの [ジオメトリの投影変換] エレメントの下に移動します。
次に、追加したデータセットをプレビューします。
- [フィーチャ レイヤー] ウィンドウで、[プレビュー] をクリックします。
- プレビュー テーブルをスクロールします。 [COMMDIST] フィールドを探します。
[COMMDIST] フィールドは、空間結合を使って設備プロジェクトのポイント レイヤーに追加する属性です。
- [マップのプレビュー] ボタンをクリックします。
コミュニティ地区をポリゴンで描画したマップが表示されます。
- プレビュー ウィンドウを閉じます。
フィーチャ レイヤーの投影変換
追加したフィーチャは Web メルカトル (球体補正) 投影座標系を使用しています。 データの正確度を確保するために、このフィーチャ レイヤーを投影変換し、再投影変換された設備プロジェクト ポイントと同じ座標系を使用するようにします。
- キャンバスで、[ジオメトリの投影変換] エレメントの 1 つを選択します。
- Ctrl + C キーを押して、エレメントをコピーします。
- Ctrl + V キーを押して、エレメントをキャンバス上に貼り付けます。
- [ジオメトリの投影変換] エレメントを [フィーチャ レイヤー] エレメントの右側に移動させます。
- [フィーチャ レイヤー] エレメントの出力ポートをクリックし、[ジオメトリの投影変換] エレメントの入力ポートにドラッグします。
2 つのエレメントが接続されます。 これで、コミュニティ地区データセットは適切な座標系を使うようになります。
設備プロジェクトとコミュニティ地区の空間結合
コミュニティ地区のデータセットの投影変換ができたので、次に 2 つ目の空間結合を行い、設備プロジェクトごとに該当するコミュニティ地区を決定します。
- [エディター] ツールバーで、[ツール] をクリックします。 [ツール] ウィンドウの [統合] の下にある [結合] をクリックします。
[結合] エレメントがキャンバスに追加されます。
- [結合] エレメントを、1 つ目の [結合] エレメントと [ジオメトリの投影変換] エレメントの右に移動させます。
次に、1 つ目の [結合] エレメントと [ジオメトリの投影変換] エレメントとを、2 つ目の [結合] エレメントにつなげます。 最初の [結合] エレメントはターゲット データセットのパラメーターになり、[ジオメトリの投影変換] エレメントは結合データセットのパラメーターになります。
- 1 つ目の [結合] エレメントの出力ポートをクリックし、2 つ目の [結合] エレメントの上側の入力ポートにドラッグします。 [ジオメトリの投影変換] エレメントの出力ポートをクリックし、2 つ目の [結合] エレメントの下側の入力ポートにドラッグします。
次に、2 つ目の [結合] エレメントで空間リレーションシップの使用を設定します。
- [結合] ウィンドウで、[空間リレーションシップ] の下にある [空間リレーションシップの使用] をオンにします。
- [空間リレーションシップ] で [交差] を選択します。
- [プレビュー] をクリックします。
プレビュー ウィンドウが表示されます。
- テーブル プレビューで、テーブルの最後までスクロールします。
表示されている最初のフィールドは、設備プロジェクトのデータセットに由来します。 次に表示されているのは、近隣地区データセット由来のフィールドです。 最後に、テーブルの最後で、コミュニティ地区データセットに由来するフィールドが表示されています。 各設備プロジェクトには、該当するコミュニティ地区に関する情報が含まれています。
- プレビュー ウィンドウを閉じます。
キャンバスには別の [結合] エレメントがあるため、この 2 つ目の [結合] エレメントの名前を変更して分かりやすくします。
- 2 つ目の [結合] エレメントの名前を「Community District Join」に変更します。 エレメントの名前がすべて表示されるように、エレメントのサイズを変更します。
- データ パイプラインを保存します。
本モジュールでは、設備プロジェクト データセットに追加する必要がある属性が入った、公開されている 2 つのポリゴン レイヤーを追加しました。 データセットの 1 つは NYC OpenData サイトの GeoJSON で、もう 1 つは ArcGIS Online のフィーチャ レイヤーです。 そして、両方のデータセットの投影変換を行い、それらを設備プロジェクト データセットに空間的に結合しました。
データのクリーニング
データを追加して空間的に結合すると、様々な部門の関係者から要求されたすべての属性を取得できます。 しかし、不要なフィールドが多くなり、属性テーブルを操作しにくくなります。 さらに、要求されたフィールドのいくつかには、解釈しにくい名前が付けられています。
次に、結果を出力データセットに書き込む前に、属性をクリーンアップします。
フィールドの選択
最初に、関係者が関心を持っているフィールドのみを選択します。 これには、計算済みの [Time_Elapsed] フィールド、[ntaname] フィールド、[COMMDIST] フィールドといった設備プロジェクトの複数のフィールドが含まれます。
- [エディター] ツールバーで、[ツール] をクリックします。 [ツール] ウィンドウで、[クリーン] の下の [フィールドの選択] をクリックします。
[フィールドの選択] エレメントがキャンバスに追加されます。
- [フィールドの選択] エレメントを、2 つ目の [結合] エレメントの右側に移動します。
次に、[結合] エレメントと [フィールドの選択] エレメントをつなげます。
- [結合] エレメントの出力ポートをクリックし、[フィールドの選択] エレメントの入力ポートにドラッグします。
次に、出力データセットに含めたいフィールドを選択します。
- [フィールドの選択] ウィンドウで、[フィールド] の下の [フィールド] をクリックします。
[フィールドの選択] ウィンドウが表示されます。 関係者が関心を持っているフィールドを選択します。 [GEOMETRY] フィールドも選択します。 このフィールドは、出力データセットをポイントとして表示できるようにするために必要となります。 そうしないと、出力は非空間フィーチャ レイヤーまたはホスト テーブルになります。
- [フィールドの選択] ウィンドウで、次のフィールドを選択します。
- fmsid
- currentphase
- GEOMETRY
- Elapsed_Time
- ntaname
- COMMDIST
- [完了] をクリックします。
- [フィールドの選択] ウィンドウで、[プレビュー] をクリックします。
プレビュー ウィンドウが表示されます。
出力データセットには、大量のフィールドではなく、関係者が要求したこれら 6 つのフィールドのみが含まれています。
- [マップのプレビュー] ボタンをクリックします。
選択したフィールドに [GEOMETRY] フィールドが含まれているため、設備プロジェクトのポイントがあるマップが表示されます。
- プレビュー ウィンドウを閉じます。
フィールドの更新
関係者が関心を持つフィールドができたので、フィールドの名前を変更して読みやすくします。
- [エディター] ツールバーで、[ツール] をクリックします。 [ツール] ウィンドウで、[クリーン] の下の [フィールドの更新] をクリックします。
[フィールドの更新] エレメントがキャンバスに追加されます。
- [フィールドの更新] エレメントを、[フィールドの選択] エレメントの右側に移動します。
次に、[フィールドの選択] エレメントと [フィールドの更新] エレメントをつなげます。
- [フィールドの選択] エレメントの出力ポートをクリックし、[フィールドの更新] エレメントの入力ポートにドラッグします。
次に、更新したいフィールドを選択して構成します。 フィールドを更新する際、フィールドの名前とフィールド タイプを更新できます。 3 つのフィールドの名前を更新します。
最初に更新するフィールドは、[fmsid] です。 このフィールドは、[Capital Project Tracker] データセットのものであり、プロジェクトの識別番号を持っています。
- [フィールドの更新] ウィンドウの [更新] で、[更新するフィールド] として [fmsid] を選択します。
次に、このフィールドの新しい名前を入力します。
- [新しいフィールド名] に「Project_ID」と入力します。
注意:
[フィールド演算] ツールと同様に、フィールド名にスペースなどの特殊文字を使用することはできません。
最初のフィールドが更新されました。 さらに 2 つのフィールド、[ntaname] フィールドと [COMMDIST] フィールドを更新します。
注意:
フィールド タイプを、たとえば文字列から整数などに変更したい場合は、[新しいフィールド タイプ] パラメーターを使用して変更できます。
- [追加] をクリックします。
- [更新するフィールド] で [ntaname] を選択します。 [新しいフィールド名] に「Neighborhood」と入力します。
- [追加] をクリックします。
- [更新するフィールド] で [COMMDIST] を選択します。 [新しいフィールド名] に「Community」と入力します。
- [プレビュー] をクリックします。
テーブルのプレビューで、列ヘッダーが更新されました。 関係者にとって、テーブルのフィールド ヘッダーが直感的に分かりやすいものになりました。
- プレビュー ウィンドウを閉じます。
出力フィーチャ レイヤーの作成
ここまでは、データ パイプラインがデータを取り込み、変換しています。 最後のステップとして、フィーチャ レイヤーにこのデータを読み込みます。
- [エディター] ツールバーで、[出力] をクリックします。 [出力] ウィンドウの [ArcGIS] で、[フィーチャ レイヤー] をクリックします。
[フィーチャ レイヤー] エレメントがキャンバスに追加されます。
- [フィーチャ レイヤー] エレメントを、[フィールドの更新] エレメントの右側に移動します。
次に、[フィールドの更新] エレメントと [フィーチャ レイヤー] エレメントをつなげます。
- [フィールドの更新] エレメントの出力ポートをクリックし、[フィーチャ レイヤー] エレメントの入力ポートにドラッグします。
次に、作成されるフィーチャ レイヤーの出力設定を構成します。 ArcGIS Data Pipelines では、既存のフィーチャ レイヤーを出力で置き換えたり、既存のフィーチャ レイヤーにフィーチャを追加および更新したりすることもできます。
- [フィーチャ レイヤー] ウィンドウの [出力設定] で、[出力方法] が [作成] に設定されていることを確認します。
次に、フィーチャ レイヤーに名前を付けます。
- [出力名] に「DPR Capital Projects」と入力します。
- [プレビュー] をクリックします。
プレビュー ウィンドウに表示されるのは、データ パイプラインの実行時にフィーチャ レイヤーに書き込まれる内容です。
- プレビュー ウィンドウを閉じます。
- 名前がすべて表示されるように、[フィーチャ レイヤー] エレメントのサイズを変更します。
データ パイプラインが完成しました。
データ パイプラインのエレメントが整理されていない場合は、[ダイアグラムの自動レイアウト] ボタンを使うと、エレメントの位置が変更され、入力、ツール、出力の流れが見やすくなります。
- [キャンバス] アクション バーで、[ダイアグラムの自動レイアウト] をクリックします。
キャンバス上のエレメントの位置が変更されます。
- データ パイプラインを保存します。
このモジュールでは、前回の空間結合から作成されたデータをクリーンアップしました。 不要なフィールドを削除し、直感的でないフィールド名を変更しました。 最後に、出力データセットを ArcGIS Online 組織のフィーチャ レイヤーに書き込むようデータ パイプラインを設定しました。
結果の確認
次に、作成したデータ パイプラインを実行し、結果を確認します。 その後、ArcGIS Online の情報を最新に保つために、データ パイプラインがスケジュールに沿って自動的に実行されるよう設定します。
データ パイプラインの実行
データ パイプラインが完成したので、実行してフィーチャ レイヤーを作成します。
- [キャンバス] アクション バーで、[実行] をクリックします。
[最新の実行の詳細] ウィンドウが表示され、[実行の詳細] タブが開きます。 このウィンドウは、データ パイプラインの実行時の情報を提供します。 ここには処理中に発生した警告またはエラーも表示されます。
データ パイプラインが完了したら、結果を確認します。 処理には約 1 分かかります。
- [最新の実行の詳細] ウィンドウで、[出力結果] タブをクリックします。
このタブにはデータ パイプラインによって作成されたすべての出力が一覧表示されます。 [DPR Capital Projects] フィーチャ レイヤーが表示されています。
次に、フィーチャ レイヤーのアイテムの詳細を確認し、フィーチャ レイヤーを組織と共有します。
- [DPR Capital Projects] レイヤーの [オプション] をクリックし、[詳細の表示] を選択します。
ブラウザー タブで [DPR Capital Projects] アイテム詳細ページが開きます。
このページは、データ パイプラインによって作成されたフィーチャ レイヤーについての情報を提供します。 次に、結果を組織と共有します。
- [共有] ボタンをクリックします。
[共有] ウィンドウが表示されます。
- [共有] ウィンドウの [共有レベルの設定] で [組織] を選択します。
- [保存] をクリックします。
これで他のユーザーがアクセスできるよう [DPR Capital Projects] レイヤーが組織と共有されました。 データ パイプラインを実行すると、このフィーチャ レイヤーをマップまたはアプリに追加しているすべてのユーザーに対してフィーチャ レイヤーが更新されます。
注意:
データ パイプラインを作成すると、ArcGIS Online アカウントにアイテムとして保存されます。 ユーザーがデータ パイプラインの出力フィーチャ レイヤーにアクセスするために、このアイテムを組織と共有する必要はありません。
次に、マップ上に結果を表示します。
- [Map Viewer で開く] をクリックします。
マップが開いて [DPR Capital Projects] フィーチャ レイヤーが追加されます。
- いずれかのポイントをクリックします。
データ パイプラインで指定した属性をリストするポップアップが表示されます。
このデータセットには、関係者の Web マップとアプリ用に、シンボル表示、分析、構成をさらに加えられます。
データ パイプラインの更新
データ パイプラインが正常に実行され、[DPR Capital Projects] を表すフィーチャ レイヤーができました。 ただし、ソース データは定期的に更新されるため、関係者は Web マップとアプリに最新の情報を反映する必要があります。 今後、データ パイプラインを実行するたびに [DPR Capital Projects] フィーチャ レイヤーを置換するように、[フィーチャ レイヤー] 出力エレメントを更新します。
注意:
1 回だけしか組織の Data Pipelines を実行する必要がない場合は、[フィーチャ レイヤー] エレメントの更新は必要ありません。
- データ パイプライン エディターで、[最新の実行の詳細] ウィンドウを閉じます。
- キャンバスで、出力フィーチャ レイヤーを表す [フィーチャ レイヤー] エレメントをクリックします。
- [フィーチャ レイヤー] ウィンドウの [出力設定] で、[出力方法] を [置換] に変更します。
[フィーチャ レイヤー] パラメーターが表示されます。 このパラメーターは、今後、データ パイプラインが実行されたときに組織のどのフィーチャ レイヤーを置換するかをデータ パイプラインに指示します。
- [フィーチャ レイヤー] で、[レイヤーの選択] をクリックします。
[フィーチャ レイヤーの選択] ウィンドウが表示されます。 置換するフィーチャ レイヤーを選択します。
注意:
置換するフィーチャ レイヤーの選択には注意が必要です。 フィーチャ レイヤーを誤って選択すると、データが失われて元に戻せなくなる可能性があります。
- [DPR Capital Projects] フィーチャ レイヤーを探します。 [レイヤーの選択] をクリックして [DPR Capital Projects] を選択します。
- [確認] をクリックします。
これで、今後、データ パイプラインを再び実行すると、既存のフィーチャ レイヤーが上書きされ、エラーを回避できるようになります。
- データ パイプラインを保存します。
データ パイプラインのスケジュール設定
入力データセットは変更される可能性があるため、今後、データ パイプラインが自動的に実行されるようスケジュール設定します。
- [ArcGIS Data Pipelines] をクリックします。
- [スケジュールの管理] をクリックします。
ここで、タスクを作成します。 タスクによって、データ パイプラインを実行する頻度を制御できます。
- [タスクの作成] をクリックします。
[タスクの作成] ウィンドウが表示されます。 ここでは、作成したデータ パイプラインを選択します。
- [Capital Projects Data Pipeline] を選択します。
- [次へ] をクリックします。
データ パイプラインを自動的に実行するようスケジュール設定し、ターゲット フィーチャ レイヤーに最新の情報が行き渡るようにします。 データ パイプラインの実行をスケジュール設定すると、エディターでの作業と同様にクレジットを消費します。 このチュートリアルでは、クレジットを節約するためにこのデータ パイプラインは 1 回だけ実行します。 ただし、運用環境では入力データセットの更新頻度に基づいて、毎月、毎日、またはより頻繁に実行するように設定する場合があります。
まず、このタスクにタイトルを付けます。
- [タイトル] に「DPR Capital Projects Update」と入力します。
このデータ パイプラインを 15 分ごとに実行するようにします。
- [繰り返しタイプ] で、[分] を選択します。 [繰り返し間隔] は、デフォルト値の [15 分] のままにします。
次に、データ パイプラインが 1 回だけ実行されるようにします。
- [終了] で、[実行回数] を選択します。 [実行回数] に「1」と入力します。
注意:
タスクのスケジュール設定の詳細については、「データ パイプライン タスクのスケジュール設定」をご参照ください。
- [保存] をクリックします。
タスクが表示され、次にいつ実行されるかが示されています。
注意:
タスクを編集、一時停止、削除したい場合は、テーブルの端にある [オプション] ボタンをクリックします。 また、リンクをクリックしてデータ パイプラインを表示または編集することもできます。
タスクを実行した後、タスクの実行履歴を確認できます。
- [DPR Capital Projects Update] タスクをクリックします。
[タスクの実行] ウィンドウにタスクと、完了した実行のステータスが表示されます。 緑のチェックマークは、正常に実行されたことを示します。 赤の六角形は、実行が失敗したことを示します。
[出力結果] の下に、データ パイプラインの結果の概要が表示されます。
このチュートリアルでは、さまざまな動的なソースからのデータを統合するデータ パイプラインを構築し、追加属性を追加し、無関係な属性を削除し、フィールドの名前を変更し、結果をフィーチャ レイヤーに書き込みました。 また、データ パイプラインがスケジュールに沿って自動的に実行されるよう設定しました。 データ パイプラインを構成することで、ソース データが更新されるたびに手作業でデータを操作し、フィーチャ レイヤーを更新する面倒なプロセスを省略できます。
他のチュートリアルについては、チュートリアル ギャラリーをご覧ください。