第7回演習問題

6.ジオプロセシング
- 57 -
- 58 -
■ジオプロセシングとは?
空間データに対するさまざまなデータ処理のことを「ジオプロセシング」と呼びます。ジオプロセシングは、4 つの方
法(ダイアログ ボックス、コマンド、スクリプト、ModelBuilder)から実行できます。
ダイアログ ボックス:ダイアログ ボックスから処理を実行します。最も簡単な実行方法です。
Python ウィンドウ:手入力でコマンドを入力することにより処理を実行します。熟練したユーザであればダイアログ
ボックスを使用するより手早く処理を実行できます。
スクリプト:Python スクリプトを作成して処理を実行することができます。
ModelBuilder:データやツールをドラッグ&ドロップして、ビジュアルな処理フローをマウス操作で直感的に作成して
処理を実行することができ、複雑なフローでも簡単に作成することが可能です。モデルをデータベースに保存すること
ができるので、再利用や複数ユーザで共有することができます。
Python ウィンドウ
スクリプト
ダイアログ
モデル
- 59 -
マージ(データの統合)
■例
[マージ] 機能を使用し、複数のフィーチャ(ポリゴン、ライン)を 1 つのフィーチャにまとめます。同じデータ タ
イプに属する複数の入力データセットを 1 つの新しい出力データセットに結合します。このツールで結合できるのは
ポイント フィーチャクラス、ライン フィーチャクラス、ポリゴン フィーチャクラス、またはテーブルです。
■例題
マージフォルダ内の、マージ.mxd を ArcMap で開きます。
"八幡西区"、 "水巻町"、"中間市"の行政区レイヤをマージしてみましょう。
■手順
1.
[標準] ツールバーの [データの追加] ボタン
をクリックし、マージフォルダから"中間市"、"水巻町"の行政区
データを追加します。
2.
[ジオプロセシング] メニュー → [マージ] をクリックし、[マージ] ウィザードを開きます。
[入力データセット]
欄
ドロップダウンリストから"Y_Nishi"を選択します。続けて、"水巻町"
"[中間市" を追加します。[マージ]ツールでは、フィーチャは座標値を基に複数を1枚にします。また、属性は、
フィールド名称が異なれば、追加されます。
3.
[出力データセット]は、マージフォルダに
"Y_ishi"
"行政区.shp"
→
で保存します。
"水巻町"
コンテンツウィンドウの"行政区"にカーソル
を合わせ右クリック、[属性テーブルを開く]をクリ
ックします。
[属性フィールド]名が異なっていたため、行政
区名が別々の[属性]欄になっています。
- 60 -
→
"中間市"
これは、[属性テーブル]のツールで修正を行います。
4.
[マージ]ツールで作成した"行政区,shp"のフィーチャを検証してみよう。
ラベル表示とシンボルを設定します。
コンテンツウィンドウの"行政区"にカーソルを合わせ右クリック、[プロパティ] - [ラベル]をクリックします。
[条件式]で、[区名称]、[市郡名称]、[区町名称]を選択します。
次に、[シンボル]を作成します。[カテゴリ] - [個別値]- [フィールド]の値の項目
で"区名称"を設定します。シンボルは、ラインのみにしましょう。
5.
それぞれの行政区境界を、フィーチャを拡大や移動して「重なり」や「隙間」のチェックをしてみよう。
6.
正確に(座標値など)確認するためには別のツールを
使います。
- 61 -
ディゾルブ(同じ属性データを集約・集計)
■例
[ディゾルブ] 機能を使用し、複数のフィーチャ(ポリゴン、ライン)を 1 つのフィーチャにまとめます。
学校名でディゾルブ
属性データの集計を
行うことができます。
集計方法は次のようなものを利用できます。
数値型データ
文字型データ
・最大値
・先頭のレコード値
・最小値
・最後のレコード値
・平均
・合計
・標準偏差
・分散
- 62 -
■例題
ディゾルブフォルダ内の、ディゾルブ.mxd を ArcMap で開きます。
"学区" レイヤを学校名でディゾルブしてみましょう。
■手順
1.
[ジオプロセシング] メニュー → [ディゾルブ] をクリック
し、[ディゾルブ] ウィザードを開きます。
2.
[入力フィーチャ]の項目で [学区] を選択します。
3.
[出力フィーチャクラス] で、ディゾルブフォルダに
"学校区.shp"で保存します。
4.
[ディゾルブ フィールド] の項目で [学校名]のチェック ボ
ックスをオンにします。
5.
ダイアログを下にスクロールして、[統計フィールド] で
をクリックし、ドロップダウン メニューから [児童
数] を選択します。[フィールド] の値の項目煮に [児童
数] が挿入されます。(統計フィールドにエラー メッセ
ージが出た場合、次の [統計の種類] への入力操作を行
うと、メッセージはなくなります。)
6.
[統計の種類] の下の空白をクリックします。ドロップダ
ウン メニューが現れるので
をクリックし [SUM] を
選択します。
7.
同様にして [統計フィールド] に [児童数 ]、[統計の種
類] に [MEAN] を入力します。
8.
[OK] をクリックします。コンテンツ ウィンドウに新しく追加された "学校区" を右クリックし “属性テーブルを
開く” をクリックします。
9.
“学校区” の属性テーブルに [SUM_児童数](統合された学区の児童数の合計値)と [MEAN_児童数](統合された
学区の児童数の平均値)が追加されていることを確認します。
10. コンテンツ ウィンドウで "学区"レイヤを非表示にします。
- 63 -
11. "学校区" を右クリックし、[プロパティ] → [シンボ
ル] タブをクリックします。
12.
[表示] → [カテゴリ] → [個別値] → [すべての値
を追加] をクリックします。[レイヤ プロパティ]
ダイアログは閉じずにそのままにしておきます。
13. [ラベル] タブをクリックし、[このレイヤのラベル
を表示] のチェック ボックスをオンにします。
14. [条件式] ボタンをクリックして、[ラベル条件式]
ダイアログを表示します。
15. [条件式] にある [学校名] を削除し、" 合計は "&
[SUM_児童数] &vbnewline& "平均は" & [MEAN_
児童] と入力します。
16. [OK] をクリックして、[ラベル条件式] ダイアログ
と [レイヤ プロパティ] ダイアログを閉じます。
■演習問題(回答 p.115,116)
■演習1
ex_01 フォルダ内の演習1.mxd を ArcMap で開きます。東海 4 県の市区町村界が表示されます。県ごとのフィーチャ
になるようにディゾルブしましょう。
■演習2
ex_02 フォルダ内の演習 2.mxd を ArcMap で開きます。北海道が表示されます。しかし、東経 143°の線や北緯 43°の
線で切られて別々のフィーチャになっている他、各島も別フィーチャになっています。北海道全体のフィーチャを作成
しましょう。また、各フィーチャはフィーチャごとの面積の属性データを持っています。これを集計して北海道全体の
面積も求めましょう。
- 64 -
バッファ(図形から一定距離内の領域を作成)
■例
[バッファ] 機能を使い、図形(ポイント、ライン、ポリゴン)から一定距離内の領域ポリゴンを作成することができま
す。元の図形の種類により、作成されるバッファの形状が異なります。
元データ
バッファ
ポイント
ライン
ポリゴン
※ポリゴンのバッファにはポリゴンの内部に作成される内側バッファも存在します(上の図は外側バッファです)。
■バッファを作成するときに内側、外側、内側と外側、ポリゴンの内部全体を含む外側の 4 種類から選択できます。
■例題
バッフアフォルダ内の、バッファ.mxd を ArcMap で開きます。
- 65 -
都道府県庁から 50km のバッファを作成しましょう。
■手順
1.
[ジオプロセシング] メニュー → [バッファ] を
クリックし、[バッファ] ウィザードを開きます。
2.
[バッファ] ウィザードの [入力フィーチャ] の項
目で [都道府県庁] を選択します。
3.
[出力フィーチャクラス] で、バッフアフォルダ内
に
4.
"都道府県庁バッフア.shp"で保存します。
[バッファの距離] で [距離単位] にチェックがつ
いていることを確認し、[50] と入力し、ドロップ
ダウンリストから [キロメートル ] と選択します。
5.
[OK] をクリックします(バッファが作成され、
ArcMap に追加されます)
。
** [ディゾルブタイプ]とは、バッフアの範囲が重なった場合に行う処理の方法です。
Type:
NONE
重なりを優先します。
Type;
ALL 重なりをディゾルブします。
■演習問題(回答 p.117,118)
■演習1
ex_01 フォルダ内の演習1.mxd を ArcMap で開きます。この町では条例により高電圧線から 100m 以内にある家屋は
税制の優遇が受けられます。A ビルディングと B ビルディングが優遇の対象になるかどうかを確認しましょう。
■演習2
ex_02 フォルダ内の演習 2.mxd を ArcMap で開きます。A 工場の火災により有害ガスが発生し、A 工場周辺の立ち入り
規制をすることになりました。300m 圏内は立入り禁止区域、300-600m 圏は厳重注意区域にします。これらの区域を
示す地図を作成しましょう。
- 66 -
インターセクト(2 つの図形が重なり合う部分の抽出)
■例
[インターセクト] は、2 つの図形が重なる部分を切り抜き、属性を付加することができます。この機能を使い、[マー
ジ]や[新規データの作成]で作成したデータの重なり部分の審査(チェック)を行いなましょう。
■例題
インターセクトフォルダ内の、インターセクト.mxd を ArcMap で開きます。"八幡西区"、 "水巻町"、"中間市"の行政区
レイヤをマージして作成した "行政区"の重なり部分の審査(チェック)を行います。
■手順
1.
[ジオプロセシング] メニュー → [マージ] をクリックし、[マージ] ウィザードを開きます。"八幡西区", "水巻町"
"中間市"の行政区レイヤをマージして, "行政区.shp"名で出力します。
2.
ビュー画面で拡大すると、隙間や重なりが明らかにわかります。
しかしながら、微小部分は判断が困難ですので座標値で確認しま
す。[ジオプロセシング] メニュー → [インターセクト] をクリッ
クし、[インターセクト] ウィザードを開きます。
3.
[入力フィーチャ]に"行政区 2 を選択します。[インターセクト]は、
2つの図形が対象になりますが、この場合、1つを選択します。
[出力フィーチャ]名称を、"[行政区重なりチェック.shp"インターセ
クトフォルダに出力します。
4.
コンテンツウィンドウの"行政区重なりチェック"にカーソルを合
わせ右クリック、[属性テーブルを開く]で属性テーブルを表示
します。
5.
[フィーチャ選択]ツール
をクリックし、"中間市"の属性
テーブル左端をダブルクリックします。
属性テーブルが選択されるとともに、フィーチャが拡大され選
択表示(水色)されましたか?
- 67 -
6.
フィーチャが選択表示(水色)されている任意の箇所を、
[ツール] - [拡大]ボタン
隙間部分
で拡大します。
重なり部分や隙間部分が確認できましたか?
重なり部分
■演習問題(回答 p.119∼,121)
■演習1
ex_01 フォルダ内の演習1.mxd を ArcMap で開きます。ある都市では 10 年ごとに土地利用の状態を調査しています。
2 つの土地利用のデータをインターセクトして、土地利用の状態がどのように変化したのかを示す地図を作成しましょ
う。
■演習2
ex_02 フォルダ内の演習 2.mxd を ArcMap で開きます。A 町、B 町の土地利用のデータが 1990 年と 2000 年について
採られています。A 町、B 町それぞれで土地利用がどのように推移したのかを示す地図を作成しましょう。
(ヒント:インターセクトを 2 回行います。)
- 68 -
クリップ(任意の領域・形状でデータの切り抜き)
■例
[クリップ] 機能を使用し、クリップ レイヤと呼ばれる、切り抜きたい形状のポリゴンと重なる部分のみを出力します。
クリップ レイヤ
図形は切り抜きますが、属性データはそのまま変わりません。人口や面積などの属性データを持つレイヤには注意が必
要です。
ポイント・ライン・ポリゴンのすべてのレイヤをクリップすることができますが、切り抜く範囲を決めるクリップ レ
イヤにはポリゴンしか指定できません。
- 69 -
■例題
クリップフォルダ内の、クリップ.mxd を開きます。
"範囲" レイヤで "町界" レイヤをクリップしましょう。
■手順
1.
[ジオプロセシング] メニュー → [クリップ] をクリックし、[クリップ] ウィザードを開きます。
2.
[入力フィーチャ] で "町界" を選択します。
3.
[クリップ フィーチャ] で "範囲" を選択します。
4.
[出力フィーチャ]名称を、"町界クリップ.shp"でクリップフォル
ダに出力し、[OK] をクリックします。
5.
コンテンツ ウィンドウで "範囲" と "町界" を非表示にしま
す。
6.
コンテンツ ウィンドウで出力された "町界クリップ" を右ク
リックし、[プロパティ] → [ラベル] タブをクリックします。
7.
[このレイヤのラベルを表示] をチェック ボックスをオンにし
ます。
8.
[条件式] ボタンをクリックして、[ラベル条件式] ダイアログを開きます。
9.
[条件式] に、[町名] &vbnewline& [人口] & "人" と入力します。
10. [OK] をクリックし、[ラベル条件式] ダイアログと [レイヤ プロパティ] ダイアログを閉じます。
■演習問題(回答 p.122,123)
■演習1
ex_01 フォルダ内の演習1.mxd を ArcMap で開きます。解析範囲内の地区の公園に関して調査を行う予定です。交通
量のデータが必要だったため、道路データを入手しましたが、市内全域の道路データしかありませんでした。全体表示
を行うと解析範囲が小さく表示されてしまいます。道路データを解析範囲で切り抜きましょう。
■演習2
ex_02 フォルダ内の演習 2.mxd を ArcMap で開きます。世界の地図が表示されます。東経 30°から西経 30°、北緯 0°か
ら北緯 60°の範囲の解析を行う予定です。必要な範囲は "範囲" というデータとして保存されています。"範囲" を使用
して陸地のデータをクリップしましょう。"範囲" というデータは 4 つのフィーチャからできていますが、クリップの
結果は各フィーチャ同士の境界線では切られていないことを確認しましょう。
(東経 0°の線や北緯 30°の線でフィーチャが分割されていません。)
- 70 -
ユニオン(2 つの図形をまとめる)
■例
[ユニオン] 機能を使用し、2つのレイヤを1つにまとめます。[マージ]と異なるのは、両方が重なる部分では 2 つの地
図及び属性情報を全て継承します。この機能を使い、[マージ]や[新規データの作成]で作成したデータの隙間部分の審査
(チェック)を行いなましょう。
■例題
ユニオンフォルダ内の、ユニオン.mxd を開きます。"八幡西区"、 "水巻町"、"中間市"の行政区レイヤをマージして作成
した "行政区"の隙間部分の審査(チェック)を行います。
■手順
1.
[ジオプロセシング] メニュー → [マージ] をクリックし、[マージ] ウィザードを開きます。"八幡西区", "水巻町"
"中間市"の行政区レイヤをマージして, "行政区.shp"名で出力します。
2.
ビュー画面で拡大すると、隙間や重なりが明らかにわかります。しかしながら、微小部分は判断が困難ですので
座標値で確認します。そのために重ね合わせをするレイヤを作成します。
3.
[カスタマイズ] - [ツール] - [図形描画]をクリックします。[四
角形]
ツールを選択し、[行政区]レイヤを完全に含む四角
形を描画します。
これは画像ですので、GIS データに変換します。[図形描画]
ツールの[図形の調整] - [グラフィックをフィーチャに変換]を
選択し、"変換グラフィックス.shp"で保存します。
画像は、[図形描画]ツールの[エレメント選択]で削除します。
4.
[ジオプロセシング] メニュー → [ユニオン] をクリックし、[ユニオン] ウィザードを開きます。[入力フィーチャ]
に"行政区"、"変換グラフィックス"を選択します。[出力フィーチャ]名称を、"行政区隙間チェック.shp"でユニオン
フォルダに出力します。
- 71 -
5.
[コンテンツウィンドウ] で "行政区隙間チェック"にカーソルを合わ
せ、右クリック[属性テーブルを開く]をクリックします。"行政区"に
対して[ユニオン]処理をししましたので、属性:FID.行政区欄が-1 の
フィーチャが隙間になります。(常に:-1 になります。)
[行政区].shp
- 72 -
モデルツリー(複数のデータ処理・解析を一括実行)
■例
複数処理を一括で実行したい場合、解析ワークフローを効率化したい場合、どのような解析を行ったかを視覚的に説明
できるワークフロー図を残したい場合は、[ModelBuilder] を使って、このワークブック内で使用した機能も含む様々な
ツールを実行すると便利です。
■例題
実際に ModelBuilder を使ってジオプロセシング処理を実行してみましょう。
小学生の子供が二人いる家族が引越しを考えています。公園と広場からそれぞれ 300m 以内で、かつコンビニエンスス
トアから 100m以内の場所を検索してみましょう。
■手順
1.
モデルツリーフォルダ内のモデルツリー.mxd を ArcMap で開きま
す。
2.
[ジオプロセシング] メニュー → [ModelBuilder] をクリックし、
ModelBuilder を開きます
- 73 -
3.
コンテンツ ウィンドウから、"公園" と "広場" と "コンビニエンスストア" を ModelBuilder にドラッグ&ドロッ
プします。
4.
[ジオプロセシング] → [ArcToolbox]
をクリックします。[ArcToolbox] → [解析ツール] → [近接] → [バッフ
ァ] を 3 回、[解析ツール] → [オーバーレイ] → [インターセクト] を 2 回、ModelBuilder にドラッグ&ドロップ
します。
5.
[モデル] ウィザードにある [接続] ボタン
をクリックして、以下のようにツール同士をつなぎます。[パラメ
ータを選択] ウィザードが表示されたら、"入力フィーチャ" を選択して [OK] をクリックします。
- 74 -
6.
ModelBuilder に新しく追加された各ツール(以下に赤で囲まれた箇所)をダブルクリックします。[バッファ] ツ
ールをダブルクリックすると [バッファ] ウィザード、[インターセクト] ツールをダブルクリックすると [インタ
ーセクト] ウィザードが開きます。
7.
各ウィザードに以下の様に入力します。
バッファ(1):
入力フィーチャ:公園
出力フィーチャクラス:モデルツリーフォルダ
バッファの距離:300 メートル
バッファ(2):
入力フィーチャ:広場
出力フィーチャクラス:モデルツリーフォルダ
バッファの距離:300 メートル
バッファ(3):
入力フィーチャ:コンビニエンスストア
出力フィーチャクラス:モデルツリーフォルダ
バッファの距離:100 メートル
ディゾルブタイプ(オプション)
:ALL
インターセクト(1):
入力フィーチャ:公園のバッファ レイヤ
広場のバッファ レイヤ
出力フィーチャクラス:モデルツリーフォルダ
結合する属性(オプション):ALL
出力タイプ(オプション):INPUT
- 75 -
インターセクト(2)
入力フィーチャ:広場と公園のインターセクト レイヤ
コンビニエンスストアのバッファ レイヤ
出力フィーチャクラス:モデルツリーフォルダ
結合する属性(オプション):ALL
出力タイプ:INPUT
8.
最終出力結果となる出力フィーチャクラスを右クリックし、[マップへ追加] をチェックします。
9.
[実行] ボタン
をクリックして、モデルを実行します。
10. 3 つの入力データ(広場レイヤ、公園レイヤ、コンビニエンスストア レイヤ)のバッファが重なっている部分(ピ
ンク)が解析結果になります。
- 76 -