ビデオ
このチュートリアルは、ビデオでも利用できます。
新しい数値フィールドの計算
カナダ、マニトバ州ニーパワ町の課税標準額を含むレイヤーがあります。 これを使用して、エーカーあたりの課税価格を表示します。 このレイヤーには、この計算を行うために必要なデータが含まれていますが、このデータは数値ではなく、テキストとして保存されています。
最初に、課税価格の形式を変更します。
- Neepawa プロジェクト パッケージをダウンロードします。
Neepawa.ppkx という名前のファイルが、コンピューターにダウンロードされます。 .ppkx ファイルは ArcGIS Pro プロジェクト パッケージです。これには、ArcGIS Pro で開くことができるマップ、データ、その他のファイルが含まれます。
- コンピューター上で、ダウンロードしたファイルを選択します。 [Neepawa.ppkx] をダブルクリックして、ArcGIS Pro で開きます。 サイン インを求められたら、ArcGIS アカウントを使用して、サイン インします。
注意:
ArcGIS Pro へのアクセス権限または組織アカウントがない場合は、ソフトウェア アクセスのオプションをご参照ください。
ニーパワの不動産区画を示すマップが表示されます。
注意:
このマップ内のデータは、マニトバ州政府からの Manitoba Property Assessment Information レイヤーのサブセットです。
- [コンテンツ] ウィンドウで、[NeepawaPropertyAssessment] レイヤーを右クリックして、[属性テーブル] を選択します。
- 属性テーブルを確認します。
[Total Value] フィールドには、課税価格が含まれています。 しかし、各セルに $ の文字が含まれていることから、これは数値形式ではなく、テキスト形式になっているようです。
- 属性テーブルで、[Total Value] フィールド ヘッダーに、ポインターを合わせます。
ポップアップが開き、フィールドのタイプとして [テキスト (20)] と表示されます。 20 という数値は、使用可能な文字数を示しています。
ヒント:
フィールドの書式設定によって、そのタイプを判断することもできます。 テキスト フィールドには、値が左揃えで表示されます。 数値フィールドには、値が右揃えで表示されます。
このフィールド内のデータをテキスト形式ではなく、数値形式で保存する必要がありますが、フィールドのタイプを変更することはできません。 代わりに、新しいフィールドを作成し、[Total Value] フィールドから、数値を取り込みます。
- 属性テーブルのツールバーで、[計算] をクリックします。
[フィールド演算] ウィンドウが開きます。 このツールでは、既存または新規のフィールドの値が計算されます。
- [フィールド名 (既存または新規)] に「Assessed Value」と入力し、Tab キーを押します。
名前を付けたフィールドはまだ存在しないため、フィールド タイプも選択する必要があります。 フィールド タイプによって、そのフィールドに格納できるデータの種類が決まります。
- [フィールド タイプ] パラメーターにポインターを合わせ、情報ボタンにポインターを合わせます。
フィールド タイプのオプションについて説明するウィンドウが表示されます。 [Short]、[Long]、[Big integer]、[Float]、[Double] の 5 種類の数値フィールドのタイプがあります。
最適なものを選択するため、次の 2 つの点について考えてみます。
- 小数値を格納する必要がありますか? いいえ。 [Total Value] フィールドの数値には小数桁がないため、整数データ タイプのいずれか ([Short]、[Long]、または [Big integer]) を使用できます。
- データの範囲はどのくらいですか? 最も高額な区画の課税価格は 3,400 万ドルです。 これは、[Short] タイプのフィールドに格納するには大きすぎる数値である一方で、[Big integer] タイプのフィールドを必要とするほどの大きさではないため、[Long] を選択します。
フィールド タイプを選択する際には、ニーズを十分に満たす最小サイズのタイプを選択するようにしてください。
注意:
数値データ タイプの詳細については、ArcGIS フィールド データ タイプをご参照ください。
- [フィールド タイプ] で [Long (32 ビット整数)] を選択します。
この場合、[式の種類] ではどれを選択してもかまいません。
- [フィールド] リストをスクロールし、[Total Value] をダブルクリックします。
[Assessed Value] ボックスに、!Total_Value! というテキストが表示されます。
注意:
[式の種類] を [Arcade] に変更した場合、[Assessed Value] ボックスには代わりに、$feature.Total_Value と表示されます。 どちらのオプションも機能します。
コンピューターが米国英語以外のロケールを使用している場合、通貨または桁区切り記号が異なるために、式が失敗する可能性があります。 この問題を回避するには、[式の種類] を [Arcade] に設定して、次の式を貼り付けます。
var numberOnly=Replace($feature.Total_Value, '$', '') // Remove dollar signs. Replace(numberOnly, ',', '') // Remove commas.
新しい [Assessed Value] フィールドが計算されて、[Total Value] フィールドの値が格納されますが、その形式はテキストではなく、[Long] フィールド タイプになります。
- [OK] をクリックします。
メッセージ ウィンドウが開きます。 新しいフィールドの名前が、[Assessed Value] から [Assessed_Value] に変更されたという警告が表示されます。 フィールド名が変更されたのは、フィールド名にスペースが含まれていてはならないためです。 このフィールドのエイリアスにはスペースが含まれていますが、これは、属性テーブルに表示されるエイリアスです。
- メッセージ ウィンドウを閉じます。
- 属性テーブルの新しい [Assessed Value] フィールドで、意図した値が含まれていることを確認します。
[Assessed Value] フィールドの値は、[Total Value] フィールドの値と同じですが、$ 記号とカンマは含まれていません。
Arcade 式を使用した新しいフィールドの計算
次に、面積の値の形式を変更します。 数値フィールドをもう 1 つ作成し、[Frontage/Area] フィールドから値を取り込みます。 今度は、データを正しくコピーするための Arcade 式を記述する必要があります。
- 属性テーブルで、面積の値が含まれているフィールドを確認します。
[Frontage/Area] フィールドに必要な情報が含まれています。 しかし、単語と数値が混在しているため、そのフィールドは、テキスト タイプのはずです。 数値だけを保存するには、数値フィールドにします。
- 属性テーブルのツールバーで、[計算] をクリックします。
- [フィールド演算] ウィンドウの [フィールド名 (既存または新規)] に、「Area Acres」と入力して、Tab キーを押します。
次に、フィールド タイプを選択する必要があります。
- 小数値を格納する必要がありますか? はい。 [Frontage/Area] フィールドの値には小数第 2 位まで含まれるため、小数値に対応するフィールド タイプ ([Float] または [Double]) のいずれかを選択する必要があります。
- データの範囲はどのくらいですか? 最大の区画は 185 エーカーなので、比較的小さい [Float] データ タイプで大きさは十分です。
- [フィールド タイプ] で、[Float (32 ビット浮動小数点)] を選択します。
- [式の種類] で、Arcade を選択します。
このフィールドの計算は、[式の種類] のどのオプションを使用しても実行できます。 このチュートリアルでは、Arcade を使用します。
- [Area Acres =] ボックスから、既存のテキストをすべて削除します。
[Frontage/Area] フィールドから数値情報をコピーし、テキスト情報はそのまま残します。 これを行うには複数の方法がありますが、このチュートリアルでは、[Split] 関数を使用します。
- [ヘルパー タイプ] ボタンをクリックします。 表示されたメニューで、[テキスト] をクリックします。
[ヘルパー] リストには、テキスト データに関連する関数だけが表示されます。
- [ヘルパー] リストで、[Split()] をダブルクリックします。
- [Area Acres =] ボックスの括弧内にカーソルを置きます。 [フィールド] リストで、[Frontage/Area] をダブルクリックします。
式が、Split($feature.Frontage_or_Area) となります。
[Split] 関数は、指定された文字でテキスト値を分割し、テキスト値の配列を返します。 [Frontage/Area] フィールド内のすべての値に、数値、スペース、単語がこの順序で含まれています (例: [0.15 ACRES])。 これらの値をスペースで分割して、数値と単語に分けることができます。
- [Area Acres =] ボックスの閉じ括弧の前にカーソルを置き、「,' '」と入力します。
2 つの引用符の間にスペースを含めることで、式のこの部分で分割することを示します。
- 式の末尾に「[0]」と入力します。
式のこの部分は、配列内のどのアイテムを返すかを示します。 たとえば、分割後にテキストを返す場合、代わりに [1] と記述します。
最終的な式は、Split($feature.Frontage_or_Area,' ')[0] になります。 この式により、[Frontage/Area] フィールド内にスペースがある場合には必ず分割され、 1 つ目の分割の前のテキストが返されます。
注意:
Split 関数にはこの他にも、オプションのパラメーターがあります。 これらについては、ArcGIS Arcade の関数リファレンス ページをご参照ください。
同じ式を [Python 3] で記述するには、!Frontage_or_Area!.split( )[0] と入力します。
コンピューターが小数記号にカンマを使用するロケールを使用している場合、代わりに次の式を使用します。
var frontageArea=Replace($feature.Frontage_or_Area, '.', ',') Split(frontageArea,' ')[0]
- [OK] をクリックします。
メッセージ ウィンドウが開き、先ほどと同じ警告が表示されます。
- メッセージ ウィンドウを閉じます。
- 属性テーブルの新しい [Area Acres] フィールドで、意図した値が含まれていることを確認します。
[Area Acres] の値が、[Frontage/Area] フィールドの数値と一致しているはずです。
ジオメトリ演算
[Frontage/Area] フィールドには、2 種類の値が格納されていることに気付いたかもしれません。 ACRES の行には面積が格納され、FEET の行には間口、つまり道路に面した区画の長さが格納されています。
つまり、[Area Acres] フィールドの値の多くは間違っていて、面積を表しておらず、エーカーで計測されていません。 フィートは距離を表し、エーカーは面積を表すため、フィートの値をエーカーに変換することはできません。 ただし、これらの欠落している値については、フィーチャの形状から、面積を計算することができます。
最初に、間口の計測値がある、すべての区画を選択します。
- 属性テーブルのツールバーで、[属性条件で選択] をクリックします。
- [属性条件で選択] ウィンドウで、メニューを使用して [Where 句 Frontage/Area が FEET テキストを含む] という句を作成します。
ヒント:
3 つ目のメニューでは、「FEET」と入力します。
- [OK] をクリックします。
- 属性テーブルで、FEET の値がすべて選択され、ACRES の値は、選択されていないことを確認します。
次に、[Area Acres] フィールドで計算を実行します。 選択がアクティブになっているため、選択されている行にのみ、計算が適用されます。
- [Area Acres] フィールド ヘッダーを右クリックして、[ジオメトリ演算] を選択します。
[ジオメトリ演算] ウィンドウが開きます。 このツールでは、フィーチャの長さや面積、周長などのジオメトリ属性を、その形状から計測することができます。
- [プロパティ] で、[Area (geodesic)] を選択します。
測地線の計測値では、地球の曲率を考慮に入れます。
- [面積単位] で、[国際エーカー] を選択します。
[座標系] フィールドは、空白のままにします。 計測には測地線が使用されるため、どの座標系を選択してもかまいません。
- [OK] をクリックします。
属性テーブルで、[Area Acres] フィールド内の選択されている値が更新されたことを確認します。
選択した行の新たな面積値が計算されました。 この値は、別の属性から計算されたのではなく、マップから計測されました。 選択されている行にはどれも小数第 6 位まで表示されていますが、選択されていない行には第 2 位までしか表示されていません。
- 属性テーブルのツールバーの [選択解除] ボタンをクリックして、選択を解除します。
- 属性テーブルを閉じます。
新しいフィールドを使用したマップのシンボル表示
最後に、作成した新しいフィールドを使用して、マップをシンボル表示します。
- [コンテンツ] ウィンドウで、[NeepawaPropertyAssessment] を右クリックして [シンボル] を選択します。
[シンボル] ウィンドウが表示されます。
- [プライマリ シンボル] で、[等級色] を選択します。
[等級色] では、数値分類がシンボル表示されるため、数値フィールドでのみ機能します。
- [フィールド] で、[Assessed Value] を選択します。 [正規化] で、[Area Acres] を選択します。
これらのフィールドを選択すると、その面積で割った価格によって、各区画がシンボル表示されます。
- [配色] で [黄から赤] を選択します。
マップ上の赤色の区画は、エーカーあたりの価格が最も高い区画です。
- [クイック アクセス ツールバー] で [プロジェクトの保存] ボタンをクリックします。
- [シンボル] ウィンドウを閉じ、ArcGIS Pro を閉じます。
ArcGIS Pro では、フィールド タイプを変換することはできませんが、新しいタイプの新しいフィールドを作成して、既存のフィールドから計算することができます。 このチュートリアルでは、フィールド タイプを識別して選択する方法、フィールドとジオメトリを計算する方法、フィールドの値の一部を分離する Arcade 式を作成する方法について学習しました。 2 つのテキスト フィールドに置き換わる 2 つの数値フィールドを作成しました。
他のチュートリアルについては、チュートリアル ギャラリーをご覧ください。