こちらは、ArcGIS アドベントカレンダー 2024 の 18 日目の記事です。他の記事もぜひご覧ください。
はじめに
ArcGIS Arcade は、JavaScript ライクなArcGIS 独自の式言語で、さまざまな ArcGIS 製品で使用できます。JavaScript のような構文で制御文を書くことや、独自の関数を使ってデータ操作やジオメトリ演算が可能です。ArcGIS Arcade は「プロファイル」という単位で管理されており、プロファイルごとにできることの自由度が異なります。今回は、各プロファイルの自由度の違いについてお伝えします。
プロファイルとは
プロファイルは、Arcade 式が評価および解釈される環境とルールを定義したものです。プロファイルには以下の内容が定義されています。
- 式の実行を制御する環境 (実行コンテキスト)
- 式に入力データとして使用できるプロファイル変数
- 利用可能な関数バンドル
- 式の戻り値のデータ型
この定義を満たした条件でのみ各 ArcGIS Arcade は利用できます。
プロファイルに関する詳細に関しては ArcGIS Arcade のプロファイル ページをご参照ください。また、プロファイルの一覧に関してはこちらをご参照ください。
今回はこの中から入力データとなるプロファイル変数についてみていきたいと思います。
プロファイル変数とプロファイルの自由度
プロファイル変数とは、Arcade 式への入力値を表します。使用する際は $ 文字で始まる文字列で変数を呼び出すことができ、それぞれのプロファイル変数には変数の型が設定されています。例えば Aggregate Field プロファイルであれば $feature というプロファイル変数が Feature 型で定義されています。
プロファイル変数に定義される型には次のものがあります。
これらの型は大きく 2 つに分類することができ、ジオメトリ情報と属性情報の両方を含む型といずれかのみの型があります。ジオメトリ情報と属性情報の両方を含む型は、Feature、FeatureSet、FeatureSetCollection の 3 種類です。ジオメトリ情報もしくは属性情報のいずれかのみの型は以下のとおりです。
- Geometry (ジオメトリ)
- Text (属性)
- Number (属性)
- Boolean (属性)
- Date (属性)
- Dictionary (属性)
- KnowledgeGraph (属性)
扱われるデータの粒度はプロファイル変数で定義される型によって大きく異なります。具体的に、ジオメトリ情報と属性情報の両方を含む型はいずれかのみの型よりも大きくなります。さらに、ジオメトリ情報と属性情報の両方を含む型の中でも、粒度は次の順で大きくなります。
Feature → FeatureSet → FeatureSetCollection
このデータの粒度は大きくなるほど式内で使用できるデータ数が多くなり、演算などの幅が広がります。これによって、より自由度の高い式の表現が可能になります。下記の図でそれぞれの型でできる範囲を示しています。
各プロファイルで設定されているプロファイル変数が複数設定されている場合も多いですが、その中で一番粒度の大きい型を基準としたときの自由度をまとめた一覧表は以下の通りです。
例えば、ArcGIS Online でシンボルを設定する場合には、Visualization プロファイルを基に設定を行います。この場合、プロファイル変数の中で一番粒度が大きいのは Feature 型になります。そのため、プロファイル変数で取得できないフィーチャとの比較や他のレイヤーのデータを参照して条件を設定することは、プロファイルの制約上できません。したがって、ArcGIS Arcade を使用する際には、対象のプロファイルがどのようなプロファイル変数を取得できるかを確認する必要があります。
まとめ
今回は ArcGIS Arcade のプロファイル変数に着目して各プロファイルの式にてどのような自由度で処理が行えるかの指標をお伝えしました。ArcGIS Arcade ではプロファイル変数の他にも、プロファイルごとに使用できる製品や関数でできることが異なっているため、使用前にプロファイルを確認し、総合的に判断してご活用ください。
関連リンク
ArcGIS Arcade
ArcGIS ブログ
ArcGIS Blog