Outdated version of the documentation. Find the latest one here.

7.2. Lesson: ベクタ分析

ベクトルデータは、さまざまな地物が空間内でどのように相互作用するかを明らかにするために分析できます。GISには多くの異なった分析関連機能があるので、それらすべてを見ていくことはしません。むしろ、問題を提起し、QGISが提供するツールを使用してそれを解決しようとするでしょう。

**このレッスンの目標:**質問を尋ね、分析ツールを使ってそれを解決すること。

7.2.1. basic GISプロセス

始める前に、任意のGISの問題を解決するために使用できるプロセスの簡単な概要を与えることが有用でしょう。それを行う方法は次のとおりです。

  1. 問題の状態

  2. データの入手

  3. 問題の分析

  4. 結果のプレゼン

7.2.2. basic 問題

解決する問題を決定することからプロセスを開始してみましょう。たとえば、不動産業者が以下の基準を持っている顧客のために Swellendam にある居住用の不動産を探しています:

  1. Swellendam である必要がある。

  2. 学校前の距離が、合理的にアクセスできる距離(例えば1km)である必要がある。

  3. サイズが100m四方以上である必要がある。

  4. 主要道路から50mより近い。

  5. レストランから500m以内にある。

7.2.3. basic データ

これらの疑問に答えるため、次のデータが必要になるでしょう:

  1. このエリアの住宅地属性(建物)。

  2. 街とその周辺の道路

  3. 学校とレストランの位置

  4. 建物のサイズ

このデータはすべてOSMを通して利用可能であり、このマニュアル全体で使用されているデータセットがこのレッスンのためにも使用できることがわかるはずです。しかし、完全なデータを持っていることを確認するために、QGIS内蔵のOSMのダウンロードツールを使ってOSMからデータを再ダウンロードします。

ノート

OSMのダウンロードは一貫したデータフィールドを持っていますが、範囲と詳細は多様になってしまいます。たとえば選択した領域にレストランについての情報が含まれていないとわかった場合は、別の地域を選択することが必要な場合があります。

7.2.4. basic Follow Along: プロジェクトの開始

  • 新規のQGISプロジェクトの開始

  • 選択した地域のデータをダウンロードするには、ベクトル-> OpenStreetMap メニューで見つかるOpenStreetMapデータダウンロードツールを使用します。

  • Save the data as osm_data.osm in your exercise_data folder.
  • osm 形式ベクトルデータのタイプであることに留意されたいです。通常通り、このデータをベクトルレイヤーとして追加します レイヤー - >ベクトルレイヤーを追加... 、ちょうどダウンロードした新しい osm_data.osm ファイルを参照します。ファイル形式として すべてのファイルを表示 を選択する必要があります。

  • osm_data.osm を選択し 開く をクリックします。

  • 表示されたダイアログで、other_relationsmultilinestrings レイヤー を除く すべてのレイヤを選択します:

../../../_images/select_osm_layers.png

これで、あなたのマップに分断されたレイヤとしてOSMデータをインポートできます。

先ほどOSMからダウンロードされたデータは、前のレッスンから知っているように、地理座標系、WGS84、であり、緯​​度と経度の座標を使用します。メーターで距離を計算するためには投影座標系で作業する必要があることも学びましたね。プロジェクトの座標系をデータに適した CRS に設定することから開始してください。 Swellendam の場合には WGS 84 / UTMゾーン34S です:

  • プロジェクトProperties`ダイアログを開き、:guilabel: CRS`を選択して、:guilabel: `WGS 84 / UTMゾーン34S`を見つけるためにリストをフィルタをかけます。

  • Click OK.

ここで、OSMデータセットから必要な情報を抽出する必要があります。地域のすべての住宅、学校、レストラン、道路を表すレイヤーで終わる必要があります。その情報は multipolygons レイヤーの中にあり、その 属性Table 内にある情報を使用して抽出できます。 schools レイヤーで始めましょう

  • レイヤーリスト 中の:guilabel:マルチポリゴン レイヤーを右クリックし、レイヤープロパティ を開きます。

  • 一般情報 メニューに進みます。

  • 地物subset の下で [クエリビルダ] ボタンをクリックし クエリビルダ ダイアログを開きます。

  • このダイアログの左側にある:guilabel:フィールド リストで、フィールド:kbd:amenity が表示されるまで。

  • それを1回だけクリックします。

  • リストで:guilabel:すべて ボタンをクリックします:

さて我々はQGISに:kbd:amenity が :kbd:`school`に等しいポリゴンであることのみ示す必要があります。

  • フィールド リストの amenity をダブルクリックします。

  • 以下の プロバイダ固有のフィルタ式 フィールドで何が起こるか見ます:

../../../_images/schools_query.png

"amenity" が表示されました。クエリの残りを作成するには:

  • 演算子`から) :guilabel:`= ボタンをクリックします。

  • リストで school の値をダブルクリックします。

  • OK を2回クリックします。

これは、唯一のお住まいの地域の学校を表示するためにOSMの multipolygons レイヤーをフィルタリングします。今いずれかを行うことができます

  • フィルターされたOSMレイヤーの名前を schools と変更し、 osm_data.osm から multipolygons レイヤーを再インポートする、または

  • フィルタされたレイヤーを複製し、コピーの名前を変更し、 クエリビルダ をクリアし、 クエリビルダ で新しいクエリを作成します。

7.2.5. moderate Try Yourself OSMからの必要なレイヤの抽出

上記の技術を使用して、以下のレイヤーを作成するために、OSMからの残りのデータを抽出する クエリビルダ ツールを使用します。

  • roads (OSMの lines レイヤ由来)

  • restaurants (OSMの multipolygons レイヤ由来)

  • houses (OSMの multipolygons レイヤ由来)

前のレッスンで作成した roads.shp を再利用するのが望ましいです。

結果の確認

  • exercise_data 下に analysis.qgs として地図を保存します(この地図は、将来のモジュールで使用されます)。

  • お使いのオペレーティングシステムのファイルマネージャで、 exercise_data 下に新しいフォルダを作成してそれを residential_development と名付けます。ここが分析関数の結果になるデータセットを保存する場所です。

7.2.6. basic Try Yourself 主要道路の検索

OSMのデータセット内の道路の一部は、未分類tracksPATHfootway とリストされています。道路データセットからこれらを除外したいです。

  • roads レイヤー:kbd:`のためのクエリBuilder`開き:guilabel:`Clear`クリックし、次のクエリを構築します:

    "highway"  != 'NULL' AND "highway" != 'unclassified' AND "highway" != 'track' AND "highway" != 'path' AND "highway" != 'footway'

上記の方法、値をダブルクリックしてボタンをクリックする、を使用するか、上記のコマンドをコピーして貼り付けできます。

直ちにマップから多くの道路を減らすべきです:

../../../_images/correct_roads_filter.png

7.2.7. basic Try Yourself レイヤCRSの変換

レイヤー内で距離を測定しようとしているので、レイヤのCRSを変更する必要があります。これを行うために、私たちは順番に各レイヤーを選択する必要があり、地図にその新しいレイヤーをインポートし、新しい投影で新しいシェープファイルにレイヤーを保存します。

ノート

:guilabel:この例では、使用している WGS 84 / UTMゾーン34S CRSをしていますが、お住まいの地域のためのより適切なUTM CRSを使用できます。

  • Right click the roads layer in the Layers panel.
  • Save as... をクリックします。

  • 名前をつけてベクトルを保存 ダイアログで、以下の設定を選択し、 Ok をクリックしてください( 保存したファイルを地図に追加 を選択したことを確かめて):

../../../_images/save_roads_34S.png

新しいシェープファイルが作成され、地図に結果のレイヤとして追加されます。

ノート

If you don’t have activated Enable ‘on the fly’ CRS transformation or the Automatically enable ‘on the fly’ reprojection if layers have different CRS settings (see previous lesson), you might not be able to see the new layers you just added to the map. In this case, you can focus the map on any of the layers by right click on any layer and click Zoom to layer extent, or just enable any of the mentioned ‘on the fly’ options.

  • 古い roads レイヤを削除します。

「_34S」元の名前に追加され、古い層のそれぞれを削除して新しいシェープファイルやレイヤーを作成し、レイヤごとにこのプロセスを繰り返します。

それぞれのレイヤーに対してプロセスが完了したら、いずれかのレイヤーの上で右クリックして、 レイヤー範囲にズーム をクリックして関心領域に地図を集中してください。

今、UTM投影にOSMのデータを変換したので、計算を開始できます。

7.2.8. basic Follow Along: 問題の分析:学校と道路からの距離

QGISはいかなるベクタからの距離を計算することができます。

  • 作業中に地図を簡単にするために、 roads_34Shouses_34S レイヤーだけ表示されていることを確認してください。

  • Click on the Vector ‣ Geoprocessing Tools ‣ Buffer(s) tool:

新しいダイアログを表示します。

  • このように設定します:

../../../_images/vector_buffer_setup.png

私達の入力データセットは、その基本的な計測単位としてメートルを使用する投影座標系であるため、 :guilabel:`バッファdistance`はメートル単位です。投影されたデータを使用する必要があるのはこのためです。

  • exercise_data/residential_development/ 下に結果のレイヤーを roads_buffer_50m.shp として保存します。

  • OK をクリックし、バッファを作成します。

  • それは「TOCに新しいレイヤーを追加する」必要がある場合、それはあなたを要求すると、クリックしてください:guilabel: `Yes`を。(:guilabel: `レイヤーlist`「TOC」は、それが意味していることで、「目次」の略)。

  • Close the Buffer(s) dialog.

今すぐあなたのマップは次のようになります:

../../../_images/roads_buffer_result.png

新しいレイヤーが Layers リストの最上にある場合は、おそらく地図の多くを不明瞭にしますが、これは道の50メートルの範囲内にある、地域内のすべての領域を提供しています。

ただし、すべての個々の道路に対応し、当社のバッファ内の別個の領域があることに気づくでしょう。この問題を取り除くために、層を除去し、ここに示した設定を使用してバッファを再作成します。

../../../_images/dissolve_buffer_setup.png
  • バッファのディゾルブ結果 ボックスを今チェックしていることに注目ください。

  • 前と同じ名前の下に出力を保存します(古いものを上書きする許可を求めてきたときは はい をクリック)。

  • OK をクリックし バッファ ダイアログを再度閉じます。

レイヤリスト にいったんレイヤを追加すると、このように見えます:

../../../_images/dissolve_buffer_results.png

今不要な下位区分はありません。

7.2.9. basic Try Yourself 学校からの距離

  • 上記と同じアプローチを使用し、学校のためのバッファを作成します。

それは半径 1 km 、そしていつものようにディレクトリの下に schools_buffer_1km.shp として保存する必要があります。

結果の確認

7.2.10. basic Follow Along: 重複エリア

今、道路が50メートル離れている領域を得ており、学校は1キロ以内にあります(直線距離で、道路でなく)。しかし明らかに、これらの基準の両方が満たされる領域を希望しているだけです。そのためには、 Intersect ツールを使用する必要があります。 ベクトル - >ジオプロセシングツール - > Intersect の下でそれを見つける。このようにそれを設定します。

../../../_images/school_roads_intersect.png

二つの入力層は、二つのバッファです。保存場所は、いつものようにあります。ファイル名は次のとおりです。 road_school_buffers_intersect.shp 。それは次のようにセットアップしたら、クリックしてください OK とにレイヤを追加します プロンプトが表示されたら、レイヤーlist

両方の距離基準が一度に満たされている場所の下の画像では、青色の領域が私たちを見ます!

../../../_images/intersect_result.png

2つのバッファレイヤーを除去しそれらが重なる場所を示すものだけを維持しても良いです、それが最初の場所で本当に知りたいと思ったものですので:

../../../_images/final_intersect_result.png

7.2.11. basic Follow Along: 建物の選択

これで建物がオーバーラップしなければならない領域が得られました。次は、その地域の建物を選択します。

  • ベクトル - >研究のツール - > locationで選択 メニュー項目をクリックします。ダイアログが表示されます。

  • このように設定します:

../../../_images/location_select_dialog.png
  • OK をクリックし、 閉じる をクリックします。

  • おそらくあまり変更されているように見えないと思われることでしょう。その場合は、レイヤーリストの一番下に school_roads_intersect レイヤーを移動し、次いでズームインします。

../../../_images/select_zoom_result.png

基準に一致して選択される建物は黄色でハイライトされる一方、緑色の建物は選択されないものです。今、選択された建物を新しいレイヤーとして保存できます。

  • レイヤーリスト 中の houses_34S レイヤー上で右クリックします。

  • 選択を別名保存... を選択します。

  • ダイアログにてこのように設定します:

../../../_images/save_selection_as.png
  • ファイル名は well_located_houses.shp です。

  • Click OK.

今、選択を別のレイヤーとしてしているし、houses_34S レイヤーを削除できます。

7.2.12. moderate |TY|さらに、当社の建物をフィルター

今、私たちの学校の1キロ内や道路の50メートル内のすべての建物を表示するレイヤーを持っています。今その選択を、レストランの500メートル内にある建物を表示するだけに削減する必要があります。

上記のプロセスを使用して houses_restaurants_500m という名前の新しいレイヤーを作成し、さらにこれで well_located_houses レイヤーをフィルタして、レストランの500メートル内にあるものだけ表示します。

結果の確認

7.2.13. basic Follow Along: 正しいサイズの建物の選択

正しいサイズ(以上100平方メートル)である建物を参照するには、まず自分のサイズを計算する必要があります。

  • houses_restaurants_500m レイヤーの属性テーブルを開きます。

  • 編集モードにし、フィールド演算を開きます。

  • このように設定します:

../../../_images/buildings_area_calculator.png
  • リストでAREA を見つけることができない場合、このモジュールの前のレッスンで行ったように新しいフィールドを作成してみてください。

  • Click OK.
  • 属性テーブルの右側にスクロールします。今、AREA フィールドには houses_restaurants_500m レイヤーのすべての建物についてメートルでの面積があります。

  • 編集を終了し、プロンプトが表示されたら、編集内容を保存するには、再度編集モードボタンをクリックします。

  • このレッスンでは、以前のようにクエリを構築します。

../../../_images/buildings_area_query.png
  • OK をクリックします。地図には今、私達の開始条件に一致し、100メートル四方のサイズ以上である建物だけが表示されるはずです。

7.2.14. basic Try Yourself

  • そうするために上記学んだ手法を用いて、新しいレイヤーとしてソリューションを保存します。ファイルは名前 solution.shp で、通常のディレクトリに保存する必要があります。

7.2.15. In Conclusion

QGISベクトル解析ツールと一緒にGISの問題解決のアプローチを使用して、迅速かつ容易に複数の条件での問題を解決することができました。

7.2.16. What’s Next?

次のレッスンでは、ある地点から別の地点への道に沿って最短距離を計算する方法を見ていきます。