3.3. Lesson: 分類

ラベルは、個々の地名などの情報を伝えるのに適していますが、何にでも使えるわけではありません。例えば、それぞれの``土地利用``が何に使われているのか知りたい人がいるとします。ラベルを使うと、こうなります:

../../../_images/bad_landuse_labels.png

これでは地図の標識が読みにくくなり、地図上に多数の異なる土地利用の領域がある場合は過剰にさえなります。

このレッスンの目標: 効果的にベクターデータを分類する方法を学習します。

3.3.1. basic Follow Along: 名義データを分類する

  1. ``landuse``レイヤの:guilabel:`レイヤプロパティ`ダイアログを開きます

  2. シンボロジ タブをクリックします

  3. 単一定義 と言うドロップダウンをクリックし、それを カテゴリ値による定義 に変更します:

    ../../../_images/categorised_styles.png
  4. 新しいパネルで、:guilabel:`値`を``landuse``に、:guilabel:`カラーランプ`を:guilabel:`Random colors`に変更します

  5. :guilabel:`分類`ラベルの付いたボタンをクリックします

    ../../../_images/categorised_style_settings.png
  6. OK をクリックします

    このように表示されるはずです:

    ../../../_images/categorisation_result.png
  7. :guilabel:`レイヤ`パネルの``landuse``の横にある矢印(またはプラス記号)をクリックすると、分類の説明が表示されます:

    ../../../_images/categories_explained.png

    これで土地利用ポリゴンに色が付き、同じ土地利用をするエリアは同じ色になるように分類されました。

  8. 必要であれば、:guilabel:`レイヤ`パネルまたは:guilabel:`レイヤプロパティ`ダイアログで該当するカラーブロックをダブルクリックして、各土地利用区域のシンボルを変更することができます:

    ../../../_images/change_layer_color.png

空の分類が一つあることに注意してください:

../../../_images/empty_category.png

この空の分類は、landuse値が定義されていない、あるいは*NULL*値を持つオブジェクトに色を付けるために使用されます。この空の分類は、*NULL*値を持つ区域が地図上で表現されるようにするために有用です。空白または*NULL*値をより明確に表現するために色を変更することもできます。

すべての苦労して稼いだ変更を失わないように、今、地図を保存することを忘れないでください!

3.3.2. basic Try Yourself その他の分類

上記で得た知識を使って``buildings``レイヤを分類します。``building``フィールドに対して分類を設定し、:guilabel:`Spectral`カラーランプを使用します。

注釈

忘れずに、都市エリアを拡大して結果を確認してください。

3.3.3. moderate Follow Along: 比率分類

分類には4つのタイプがあります: 名義順序間隔比率

**名義**分類では、対象を分類するカテゴリは名前ベースであり、順序はありません。例えば、町名、地区コードなど。名義データに使用する記号は、順序や大きさを意味するものであってはなりません。

  • ポイントには、さまざまな形の記号を使うことができます。

  • ポリゴンには、異なるタイプのハッチングや異なる色(明るい色と暗い色の混在を避ける)を使用することができます。

  • ラインには、異なるダッシュパターン、異なる色(明るい色と暗い色の混在を避ける)、線に沿った異なる記号を使用することができます。

**順序**分類では、カテゴリは一定の順序で並べられます。例えば、世界の都市は、世界貿易、旅行、文化などに対する重要性に応じてランク付けされます。順序データに使用する記号は、順序を意味するものでなければなりませんが、大きさを意味するものであってはなりません。

  • ポイントには、明るい色から暗い色の記号を使うことができます。

  • ポリゴンには、段階的な色(明るい色から暗い色)を使うことができます。

  • ラインには、段階的な色(明るい色から暗い色)を使うことができます。

**間隔**分類では、数値は正、負、ゼロの値を持つ目盛りになっています。例:海抜の高さ/海抜の低さ、気温(摂氏)。区間データに使用する記号は、順序と大きさを意味するものでなければなりません。

  • ポイントには、さまざまな大きさ(小さいものから大きいものまで)の記号を使うことができます。

  • ポリゴンには、段階的な色(明るい色から暗い色)を使ったり、さまざまな大きさの図を追加することができます。

  • ラインには、太さ(細いから太い)を使うことができます。

**比率**分類では、数値は正とゼロの値だけを持つスケールになっています。例:絶対零度(0度ケルビン)以上の温度、ある地点からの距離、ある通りの1ヶ月の平均交通量など。比率データに用いる記号は、順序や大きさを意味するものでなければならない。

  • ポイントには、さまざまな大きさ(小さいものから大きいものまで)の記号を使うことができます。

  • ポリゴンには、段階的な色(明るい色から暗い色)を使ったり、さまざまな大きさの図を追加することができます。

  • ラインには、太さ(細いから太い)を使うことができます。

上記の例では、名義分類を使用して、``landuse``(土地利用)レイヤの各レコードを``landuse``属性に基づいて色付けしました。今度は、比率分類を使って、レコードを面積で分類してみます。

レイヤを再分類するので、既存の分類は保存しないと失われます。現在の分類を保存するには:

  1. レイヤーのプロパティダイアログを開きます

  2. スタイル ドロップダウン メニューの :guilabel:`スタイルを保存 ...`ボタンをクリックします。

  3. :guilabel:`現在の名前を変更...`を選び、``land usage``を入力し、:guilabel:`OK`を押します。

    カテゴリとその記号がレイヤのプロパティに保存されました。

  4. :guilabel:`スタイル`ドロップダウンメニューの:guilabel:`追加…`エントリをクリックし、``ratio``という名前の新しいスタイルを作成します。これで、新しい分類が保存されます。

  5. :guilabel:`レイヤプロパティ`ダイアログを閉じます

土地利用区域を大きさで分類したいのですが、問題があります:大きさのフィールドがないので、作らなければなりません。

  1. ``landuse``レイヤの属性テーブルを開きます。

  2. toggleEditing :sup:``トグル編集``ボタンをクリックして編集モードにします

  3. newAttribute 新規フィールド ボタンを使って、``AREA``という倍精度の新しい列を追加します。

    ../../../_images/add_area_column.png
  4. OK をクリックします

    新しいフィールドが追加されます (テーブルの右端; 見るには水平方向にスクロールする必要があるかもしれません)。しかし、現時点では、このフィールドには何も入力されておらず、たくさんの*NULL*値があります。

    この問題を解決するために、面積を計算する必要があります。

    1. calculateFieldボタンでフィールド計算機を開きます。

      このようなダイアログが表示されます:

      ../../../_images/calculate_field_dialog.png
    2. checkbox :guilabel:`既存のフィールドを更新する`をチェックします

    3. フィールドのドロップダウンメニューから、:guilabel:`AREA`を選びます

      ../../../_images/field_calculator_top.png
    4. :guilabel:`式`タブで、リスト内の:guilabel:`ジオメトリ`関数グループを展開し、:menuselection: `$area`を見つけます

    5. それをダブルクリックして、:guilabel:`式`フィールドに表示させます

      ../../../_images/geometry_area_select.png
    6. OK をクリックします

    7. 属性テーブルの``AREA``フィールドまでスクロールすると、値が入力されていることがわかります(データを更新するために列のヘッダーをクリックする必要がある場合があります)。

    注釈

    これらの面積はプロジェクトの面積単位の設定に従いますので、平方メートルまたは平方度の単位を使用できます。

  5. saveEdits を押して編集内容を保存し、toggleEditing :sup:`トグル編集`で編集モードを終了します

  6. 属性テーブルを閉じます

これでデータが揃ったので、それを使って``土地利用``レイヤをレンダリングしてみましょう。

  1. ``landuse``レイヤーの:guilabel:`レイヤプロパティ`ダイアログの:guilabel:`シンボロジ`タブを開きます

  2. 分類スタイルを:guilabel:`カテゴリ値による分類`から:guilabel:`連続値による定義`に変更します

  3. :guilabel:`値`を``AREA``に変更します。

  4. :guilabel:`カラーランプ`の下にある:guilabel:`カラーランプを新規作成…`オプションを選びます

    ../../../_images/area_gradient_select.png
  5. :guilabel:`勾配グリッド`を選択し(まだ選択されていない場合)、:guilabel:`OK`をクリックします。このように表示されます:

    ../../../_images/gradient_color_select.png

    これを使用して小さな地域は 色1、大きな地域は 色2 で表示します。

  6. 適切な色を選びます

    例では、結果は次のようになります。

    ../../../_images/gradient_color_example.png
  7. OK をクリックします

  8. :guilabel:`カラーランプ`タブの:guilabel:`カラーランプを保存...`を選択すると、カラーランプを保存することができます。カラーランプに適切な名前を選び、:guilabel:`保存`をクリックします。これで、同じカラーランプを:guilabel:`全カラーランプ`で簡単に選択できるようになります。

  9. :guilabel:`分類`をクリックします。

    これで、次のようなものができあがります:

    ../../../_images/landuse_gradient_selected.png

    そのまま他のすべてを残します。

  10. :guilabel:`OK`をクリックします:

../../../_images/gradient_result_map.png

3.3.4. moderate Try Yourself 分類の絞り込み

  • 理にかなった分類を得るまで モードクラス の値を変更します。

3.3.5. hard Follow Along: 規則に基づく分類

分類のための複数の条件を組み合わせると便利ですが、残念ながら通常の分類では1つの属性だけを考慮に入れます。このときルールによる分類が有用になります。

このレッスンでは、Swellendam 市をその他の住宅地、そしてその他の種類の土地利用(面積に基づく)から簡単に識別できるように、``landuse``レイヤを表現してみます。

  1. ``landuse``レイヤの:guilabel:`レイヤプロパティ`ダイアログを開きます

  2. :guilabel:`シンボロジ`タブに切り替えます

  3. 分類スタイルを:guilabel:`ルールによる定義`に切り替えます

    QGISはこのレイヤに現在実装されている分類を表すルールを自動的に表示します。例えば、上記の演習を終えた後、以下のように表示されるかもしれません:

    ../../../_images/rule_based_classification.png
  4. 全てのルールを選択するようクリックしドラッグします

  5. symbologyRemove 選択したルールを削除 ボタンを使って、既存のルールをすべて削除します

では、カスタムルールを追加してみましょう。

  1. symbologyAdd :sup:`ルールを追加`ボタンをクリックします

  2. :guilabel:`Edit rule`ダイアログが現れます

  3. ラベルに``Swellendam city``を入力します

  4. :guilabel:`フィルタ`テキストエリアの隣にある|expression|ボタンをクリックして:guilabel:`式文字列ビルダ`を開きます

  5. 条件``"name" = 'Swellendam'``を入力し検証します

    ../../../_images/query_builder_example.png
  6. :guilabel:`ルールの編集`ダイアログに戻り、その地域での町の重要性を示すために濃いグレーブルーの色を割り当て、境界を削除します。

    ../../../_images/rule_style_result.png
  7. :guilabel:`OK`を押します

  8. 次のルールを追加するために上記のステップを繰り返します:

    1. "landuse" = 'residential' AND "name" <> 'Swellendam'``(または ``"landuse" = "residential" AND "name" != 'Swellendam' )の条件を持つ Other residential ラベル。淡いブルーグレーの Fill color を選択します

    2. Big non residential areas ラベルは、条件 "landuse" <> 'residential' AND "AREA" >= 605000。色は中緑色を選びます。

      ../../../_images/criterion_refined_midway.png

      これらのフィルターは排他的なものであり、地図上の地域を除外します(605000(平方メートル)より小さい非居住地域は、いずれのルールにも含まれません)。

    3. 残りの地物は Small non residential areas というラベルの付いた新しいルールを使って捕えます。フィルター式の代わりに、 radioButtonOn もしくは をチェックします。このカテゴリに適切な淡い緑色を与えます。

      ../../../_images/criterion_else.png

    ルールは次のようになります:

    ../../../_images/criterion_refined_list.png
  9. このシンボル体系を適用します

地図は次のようになります。

../../../_images/rule_based_map_result.png

今、 最も顕著な住宅地|majorUrbanName|とその他の非住宅地をその大きさに応じた色の地図を持っています。

3.3.6. In Conclusion

シンボル体系により、レイヤーの属性を読みとりやすく表現できます。それは選択した任意の関連する属性を使用して、私たちだけでなく地図読者も地物の重要性を理解できます。直面している問題に応じて、それらを解決するために異なる分類技法を適用するでしょう。

3.3.7. What's Next?

これで見栄えの良い地図になりましたが、どのようにしてそれをQGISからプリントアウトできる形式に、または画像やPDFにしようとしていますか?それは、次のレッスンの話題です!