![]() |
|
ベクター解析(続き) ベクター解析を続けて学びましょう。前回の演習では、ベクター解析のためツールを開いて、各々ツールの設定を行ってきましたが、今回は解析のためにいちいちツールを開くことなく、「自動で解析する手法」を学びましょう。 目標 「モデルビルダー」を使ってベクター解析をする。 まずは、毎回の如く演習が始めれるために仮想ドライブの設定をしましょう。LドライブにChibaというフォルダーがあるか?確認してください。なければ、「仮想ドライブの設定」のページで、千葉県のGISデータをダウンロードしてください。モデルを作る前に、面積や線の長さを自動で計算できる手法を学びます。この手法を知れば、面積や長さをすべて自動で更新できるようになりますので、作業がとても楽になります。 Geodatabaseの活用 自動で解析するには、「面積」や「長さ」が自動で計算できると大変便利です。もし自動で計算できないと、解析を止めて。属性テーブルを開いて、フィールドを追加して、ジオメトリ演算を行ってと。。。。作業が大変です。 Geodabaseを活用して自動で面積や長さを計算しましょう。Geodabaseとは、ESRI(ソフトを開発した会社)が作ったファイルで、shapefileよりも計算処理が早く便利です。 Geodatabaseの作り方 パソコンの左下の「すべてのプログラム」から ArcGIS -> ArcCatalogを開いてください(いつもはArcMapを開きますが、今回はArcCatalogを開いてください)。 Mドライブに行き、ファイル->新規作成->パーソナルジオデータベースを選択してください。 ファイル名をex8.mdbとします。 ArcMapに戻りましょう。Geodabaseは空っぽのデータフォルダです。Geodabaseの中にレイヤーを入れることで面積や長さを自動で計算してくれます。どの様にデータを入れるかは、2つ方法があります。 1)ツールを使ってGeodabaseにデータを入れる方法 と 2)データのエクスポートを使ってデータを入れる方法 データを入れる準備として、座標変換をしましょう。ChibaのフォルダーにあるChiba_boudaryというレイヤーを加えてください。座標系がGCS_JDS_2000になっておりますので、これをUTMに変換してください。 まず、Chiba_boudary.shpをデータ追加します。 座標変換する方法として、ArcToolBox->データ管理ツール->投影変換と座標変換->フィーチャ->投影変換(Project)を使って以下の様に設定を行ってください。 MドライブにChiba_boudary_UTMという名前で保存してください。 出力データ座標は、以下のように指定してください。 選択をクリック Projected Coordinate Systemsを選択。 UTMを選択。 Asiaを選択 JGD 2000 Zone 54N.prj を選択 クリック OK クリックOK Mドライブから 作成された(座標変換された)Chiba_boudary_UTMをデータ追加で追加してください。 座標変換する理由:UTMは距離単位がメートルで、面積や長さがメートル単位で測れます。GCS(緯度経度)のままでは、「度」単位のためです。面積等を測るには、事前にメートルを使う座標系に変換しましょう。JGD2000は世界標準の座標系です。それ以前は、日本独自の座標系を採用しており、世界のデータと表示が一致しないことがありましたが、2000年から世界基準の座標系が使われる様になったので、なるべくJGD2000を使う様にしましょう。 1)ツールを使ってGeodabaseのデータに変換する方法 ArcToolBoxの変換ツール->ジオデータベースへ変換->フィーチャクラス ジオデータベース(マルチプル)をクリック。 入力フィーチャで、Chiba_boundary_UTMを選択。 出力ジオデータベースの右のフォルダーマークをクリックして、Mドライブへ ex8.mdbを一回だけクリック(ダブルクリックしないこと!!!)そして追加をクリック クリックOK その後、データの追加でMドライブへ ex8.mdbをダブルクリックして Chiba_boundary_UTMをクリックして、追加をクリック 図では何も変わっていませんが、属性テーブルを開くと 一番右端にShape_Length(ポリゴンの周囲長)とShape_Area(ポリゴンの面積)という2列が加わっています。元のChiba_boundary_UTM.shpの属性テーブルと比較してください。この2列が新たに加わったことがわかります。Geodatabaseの活用とは、このように、自動で面積と長さを計算してくれるツールです。 これまでは、属性テーブルを開いて、フィールドを追加して、ジオメトリ演算をしないといけませんでした。今回のようにレイヤをGeodatabaseの中に置くだけで、Shape_Lengthは長さ(この場合は、ポリゴンの周囲長)、Shape_Areaは面積(ポリゴンの面積)を自動に計算してくれます。 2)データのエキスポートでGeodatabaseに追加する方法 ツールを使わなくてもデータをGeodatabaseに追加できます。シェープファイルを複製するために、これまでデータ -> データのエクスポートで、ファイルを作成してきましたが、同じ方法で、Geodatabaseの中にデータを追加することができます。 ツールを使わない方法もご紹介します。新たにデータフレームを追加して、MドライブからChiba_boudanry_UTM.shp(シェープファイルの方です。)を追加してください。 追加されたデータを右クリックしてデータ -> データのエクスポートをクリックしてください。 出力フィーチャクラスで、Mドライブ内にあるex8.mdbをダブルクリックしてください。 すでに先ほど作ったChiba_boundary_UTMがありますが、Chiba_boudary_UTM1という少し違う名前を付けて、クリック保存してください。 ここで、ファイルの種類は、上記の表示のように「ファイル/パーソナル ジオデータベース フィーチャクラス」のままにしておいてください。「シェープファイル」には決してしないでください。 上記のように設定できたら、クリックOK マップに追加してください。クリック「はい」 属性テーブルを開くと、Shape_Length, Shape_Areaが追加されていることがわかります。 これで面積や長さを自動で計算する手法がわかりました。これらを使って自動解析する手法「モデルビルダー」をこれから学んでいきましょう。 「あと半分です。がんばろう。モデルビルダーはボディービルダーではないよ」 モデルビルダー モデルビルダーは「解析の流れ」を見えるようにし、解析を自動化する大変便利なツールです。 モデルビルダーを作成する前に、今回は皆さんに質問をします。チーバ君から連絡があり、以下のお願いをされました。皆さんならどのように答えますか? 例えば、千葉県内の大きな道路の周辺、または河川周辺から植林したいそうです。どれだけ植林をしなければならないのか?予め知りたく、そのために現在の植生状況を把握しなければなりません。 植生状況を知るために モデルを一緒に作っていきましょう。チーバ君からのお願いを言い換えて皆さんにお聞きします。 「広域道路から100m以内と河川から100m以内の植生状況を、植生別の面積を計算してください」 注意)広域道路とは、'5.5m以上13.0m未満'の幅のことです。 この文章からどんなデータが必要か?考えてみましょう。道路、河川、植生図が必要であることがわかります。この3つのデータを入力データとしてモデルビルダーに入れましょう。 まずは、3つのデータをArcMapで表示させるために、新しいデータフレームを挿入し、3つのレイヤを追加してください。道路は、Chiba_Road.shp 河川は、Chiba_Stream.shp をLドライブのChibaフォルダーから加えて、植生図はShokusei.shpで、ここからLドライブにダウンロードして使ってください。 モデルビルダーを開いてみましょう。モデルビルダーは一番上にあるArcToolBoxのアイコンの並びにモデルビルダーを開くアイコンがあります。 上記のメニューアイコンの中の 先ほど追加したChiba_Road, Chiba_Stream, Shokusei の3つのデータをドラッグして、モデルの上に持って行くと、以下の様に表示されます。 以下のように表示されない人は、モデル画面の上にあるメニューから「表示->自動レイアウト」をクリックすると、見ている画面に収まるように追加したデータが表示されます。 道路に関しては、広域道路('5.5m以上13.0m未満'の幅)から100m以内としないといけないため、まずは広域道路を抜き出さなければなりません。広域道路を抜き出すには、Selectツールを使用します。ArcToolBoxに戻って、検索からSelectと書いて検索すると、選択(Select)というのがでてきます。それをモデルにドラッグして加えます。 検索ツールは、ArcMapの画面に戻って、一番上にあるメニュー 検索ツールで、Selectと書いて検索すると、 選択(Select)が一番上に出てきますが、クリックしないで、そのままドラッグしてモデルの上に持ってきます。 Chiba_Roadの横に置くようにして、モデルの画面右上の そうすると以下のようにボックスの色が変わります。 選択(Select)をダブルクリックすると、Selectの設定ができます。 出力フィーチャクラスを MドライブのChiba_Road_Select.shpとして、 条件式(オプション)の右のSQLマークをクリックします。
"FUKUIN" = '5.5m以上13.0m未満' を作りクリックOK その後クリックOK 下図のように、Selectした結果(広域道路)から100m以内をバッファー(Buffer)を使って抽出します。ArcToolBoxの検索で、Bufferを検索してBufferツールをモデルへドラッグで追加し、Selectの結果からつなげるようにしてください。 [重要] モデルを保存しましょう。ご存じのように、ArcMapは度々フリーズします。保存していないと作成したモデルが一瞬でなくなることはよくあります。モデル->上書き保存からモデルを保存してください。保存するモデルの名前はモデルEx8としておいてください。 バッファ(Buffer)のツール をクリックすると、詳しく設定ができます。以下のように設定してください。 出力フィーチャクラスをMドライブのChiba_Road_Buffer.shpに設定し、 バッファの距離単位を100メートルとして、 ディゾルブタイプをALLにすること!(初期設定はNONEになってますので、注意してください) 河川から100m以内をBufferツールを用い、上と同じ様にモデルに設定します。Chiba_Streamから直接Bufferをつなげて、Bufferツールをダブルクリックして以下のように設定してください。 最初のチーバ君の質問に答えるには、@広域道路から100mのバッファ、A河川から100mのバッファ、そしてB植生図の3つが重なり合えば良く、重なり合う場所を抽出します。 Intersectを用いて重なり合う場所のみ抽出します。ArcToolBoxの検索からIntersectを検索して、ドラッグしてモデルに加えていきます。 注意としては、Intersectは2つのレイヤしか入力データとして用いることができないので、2つのIntersectツールをモデルに追加し、それぞれの結果につなげていきます。そして最終的に以下の様にモデルを完成させてください。 上の図に配列が見にくければ、 [重要] モデルを実行する前に、出来たモデルを保存しましょう。ご存じのように、ArcMapは度々フリーズします。保存していないと作成したモデルが一瞬でなくなることはよくあります。モデル->上書き保存からモデルを保存してください。 モデルが完成した場合は、 もし修正する場合は、 このモデルがきちんと完了した場合は、上図の丸や四角に陰がつきます。もし何かエラーがあった場合は、陰のないところを修正してください。 この結果をArcMapで表示させるためには、一番右の結果(緑の丸、最終的にほしい結果)を右クリックすると下の様なメニューが現れ、 マップへ追加をクリックすると、ArcMapに結果の図が表示されます。この様に一度モデルを作ればすべて自動です。たくさんのデータを扱わなければならない場合、手動で行うのではなく、モデルを作成すると、図を用いて考えがまとまりやすく大変便利です。 以下が表示された結果です。 ズームしてどうなってるか?見てみましょう。 最初の質問にもどります。 「広域道路から100m以内と河川から100m以内の植生状況を、植生別の面積を計算してください」 最後に植生別に面積をまとめなければなりません。 せっかくGeodatabaseの使い方を知ったので、モデルを使ってやりましょう。植生別の面積を計算する際、座標系に注意してください。これまでの解析結果の座標系はGCS(緯度経度)で計測単位が度になってます。このままではメートルで面積が算出できません。そこでUTMに変換して、計測単位をメートルにしてから面積を計算しましょう。 座標系を変換するのは、投影変換(Project)というツールですので、ツールを検索してモデルに入れてください。一番右の最終結果のあとにつなげてください。 今日の最初に行った様に、出力座標系をUTMにして、 [重要:注意] 出力データセットで、Geodatabaseを用いましょう。出力データセットをのフォルダーマークをクリックして、Mドライブへ行き、ex8.mdbをダブルクリック。 Resultと入力して、クリック保存。そしてモデルを走らせてください。 面積はGeodatabaseで自動計算できてます。 その面積を基に、植生別の面積を計算しましょう。以前の演習に使ったサマリを使います。Resultの属性テーブルを開いて、以下のように設定してください。 NAME のフィールドに土地利用情報が入っているので、それを基準にShape_Area(面積)の合計値をテーブルに出力。 降順で並び替えすると、広域道路('5.5m以上13.0m未満'の幅)から100m以内と河川から100m以内の土地利用で一番多いのが、水田雑草群落であることがわかります。またその面積86893029 m2(UTMの単位はメートルだから、m2となります。小数点以下四捨五入)であることが上の表からわかります。 ベクター解析でとても重要なことは、解析後の長さや面積は、解析後必ず計算し直すことです。Geodatabaseを使う場合は、解析後、毎回Geodatabase内にデータを保存し直さないと、属性テーブル上の長さや面積の値が更新されません。十分注意してください。 「これはとっても重要だぞ!」 今日の実習はここまでです。では、Cドライブにあるworkplaceフォルダーを削除して、必要なら持ってきたメモリーにファイルをコピーして帰りましょう。コンピュータをシャットダウンすることも忘れずに!千葉大環境ISOにご協力を。Cドライブの他のフォルダーを削除しないように!コンピュータに必要なファイルを削除したら、利用委員の規約より厳重に罰せられます。気をつけてくださいね。 「お疲れ様、また会おうね。バイバ〜イ」 |
|