先日はQGisを用いて全国の鉄道データを表示させましたが、全て同じマークでは何がなんだか大変わかりづらいです。そこで、今回は鉄道データの属性テーブルに沿って、一番先頭の分類項目を使ってせめて種別に色分けしてみたいと思います。
最終形はこれです。
まずは、QGisをインストールした時にデスクトップに作成される「QGIS 3.34.0」などの名前のついたフォルダ(数字はバージョンによって異なります)内にある「QGIS Desktop 3.34.0」というのが実行ファイルなので、これをダブルクリックして立ち上げます。
ごちゃごちゃした画面が現れますが、ここにはまだ基盤地図もデータもない状態で立ち上がっていますので、ここでまた、基盤地図をブラウザ欄の「XYZ Tiles」から「地理院地図」をダブルクリックして日本付近を拡大します。で、また先日使用した鉄道路線ファイルと駅ファイルを読み込みます。
先日の繰り返しになりますが、メニューバーの「レイヤ」→「レイヤを追加」→「ベクタレイヤを追加...」を順に選択していくと、
下のような画面が出てきますので、「ソース型」は「ファイル」をチェック、「ソース」は「ベクタデータセット」の行の右端にある「...」をクリックするとファイル選択画面が出ます。
ここで、先日ダウンロードした下記の2データを読み込みます。
・路線データ「N05-22_RailroadSection2.shp」
・駅データ「N05-22_Station2.shp」
それぞれで読み込むので同じ操作が2回必要です。
が、他のデータが混じっていなければ、「ソース型」で「ディレクトリ」をチェックして、これらのファイルが保存されているフォルダを指定して一発で読み込ませることも可能です。
で、まずは読み込み後の画面です。
ここまで先日の手順と全く同じです。それでは今回はこのデータを事業者種別で色分けしてみることをやってみます。
どちらでもよいのですが、とりあえず路線データの「属性テーブル」を見てみます。
「レイヤ」欄にある路線名「N05-22_RailroadSection2」を右クリックします。
開いたリストの真ん中辺にある「属性テーブルを開く(A)」を左クリックします。
今回着目したいのは「事業者種別」なので、1列目の「N05_001」欄を見ると、一桁の整数が入っています。
この数字は、以下のような分類となっています。
コード | 対応する内容 |
1 | 新幹線(旧国鉄) |
2 | JR在来線(旧国鉄含む) |
3 | 公営鉄道 |
4 | 民営鉄道 |
5 | 第三セクター |
この数字に従って色分けする手順をご紹介します。
属性テーブルは一旦閉じていただいて、レイヤ欄の「N05-22_RailroadSection2」の名前のところを右クリックします。出てきたリストの一番下、「プロパティ(P)...」をクリックします。
「プロパティ」の設定画面が出てきたら左端の欄の「シンボロジ」をクリックすると線の形状や色、太さなどが設定できる画面が出てきます。
ここで、一番上の「単一定義(single)」の行をクリックします。
6項目の選択肢が出てきますので、ここで「カテゴリによる定義(categorized)」を選択してクリックします。すると下のような画面が出てきます。
赤枠で囲った「値」の右端の下向き「▼」をクリックします。
すると、属性データのどの項目で分類するかを聞いてきているので、今は「事業者種別」で分けたいので、先程属性テーブルで確認した項目1番目の「N05_001」を選択します。すると下のような画面になるので、赤枠の「分類」をクリックします。
「分類」の文字のところをクリックすると、下のように凡例が現れます。
「シンボル」、「値」、「凡例」の3つの項目が出てきて、
「シンボル」は初期値で割り振られた線の形、色、太さが表示されています。ここをクリックすると色や太さを変えることができます。
「値」はデータの値で、上のテーブルのとおり、「1」が「新幹線」で始まり、「5」が「第三セクター」の識別子です。ここは変更不可の列です。
「値」の「5」の下に「その他」という行が出てきますが、ここは「値」にデータが記載されていないデータが集められます。全ての「値」に数字が入っている場合には、この最後の「その他」の行は削除します。
「凡例」は凡例として表示させる文字列です。このまま、「OK」をクリックすると、事業者種別毎に色分けされた路線が表示されますが、凡例の文字はただの数字となります。そこで、ここの数字を上のテーブルに沿って文字列に変更します。
変更手順を順に見ていきます。
「1」→「新幹線」
「2」→「JR在来線(旧国鉄含む)」
「3」→「公営鉄道」
「4」→「民営鉄道」
「5」→「第三セクター」
「その他」はチェックを外してもよいですが、この場合データがなくても凡例としては残ってしまうので、削除するとします。
のように変更します。
この段階で「OK」をクリックすると出来上がり。
といっても凡例以外で何が変わったのかさーっぱりわかりません。プロパティで少し線を太くしておくとわかりやすくなります。
ここでは一旦、基盤地図「地理院地図」を非表示にしてみます。レイヤの「地理院地図」の左端の▢のチェックを外します。
これで事業者種別毎に分類されていることが確認できます。
凡例で分けられている項目左の▢のチェックを外していくと、見たい事業者種別の路線のみ、見ることができます。たとえば、上から2番目の「JR在来線(旧国鉄を含む)」だけを表示させてみます。
凡例のチェックに従って、「JR在来線」の青い線のみが表示されています。
前記事で路線毎に分類した手順と同じようにして、事業者種別毎のデータファイル5種類を作成することができます。これらを別々のフォルダに保存して、個別に読み込み、前記事の手順で「路線別」で各路線ファイルに分離させることができます。調べたい路線の事業者がわかっている場合には、これらのフォルダ分けしておいたデータから探す方が効率がよくなります。
さて、前記事でもチラっと触れましたが、各路線のデータには「現在稼働している路線」と既に「廃線になった路線」も含め、過去の全ての路線が保存されているので、これらも条件式を用いてふるい分けることが可能です。
まずは現在運行している路線のみを表示させたい場合。
一番上の「カテゴリ値による定義(categorized)」のところをクリックして、今度は「ルールによる定義(rule-based)」を選択します。
「凡例」欄が少しかわり、「ルール」欄に「"N05_001"=1」などの数式が凡例に基づいて作成されています(スクショとり忘れ)。ここに廃線かそうでないかの条件式を加えてあげる必要があります。
「1」の「新幹線」から「5」の「第三セクタ」まで、全ての条件を設定する必要がありますが、ひとつ作ればあとはコピー・ペーストして数字を変えるだけなので、最初だけ踏ん張ります。まずは「1」の新幹線のルール欄「"N05_001" = 1」の文字あたりをダブルクリックしますと、下のようなエディット画面が開きます。
ここでルールが「フィルタ」欄に反映されています。次に、「フィルタ」欄右の「ε」(イプシロン)をクリックします。
すると、「条件式の設定画面」が開きます。
左の欄に条件式、真ん中の欄は関数や変数が選択できるようになっています。右は注釈などが表示されます。
で、左端の条件式の欄には既に「"N05_001" = 1」が入っています。
さて、廃路線かどうかは、属性テーブルの6列目、「N05_005e」にはその路線の終了年が入っており、現在も運行している路線には「9999」と「9」が4個、記録として不明なものは「999」と「9」が3個入っていますので、ここでは、
・「N05_001」の列には「1」かつ
・「N05_005e」の列には「9999」or「999」
となっている条件式を作っていきます。
カーソルは条件式の一番先頭でブリンクしていると思いますので、ここでは、このまま先頭から挿入していきます。「N05_001」などが入っているデータ列を「フィールド」、「データ」そのものを「値」と読んでいますので、「▶フィールドと値」をクリックすると、「属性テーブル」でいうところの列名がずらっと並んだフィールドのリストが開きます。
その中から「N05_005e」を選択してダブルクリックします。
すると、既に入力されている入力式「"N05_001" = 1」の前に割り込んで、「"N05_005e"」が入力されます。カーソルはこの2つの間にある状況です。
この状態で「▶演算子」をクリックして「=」を選択してダブルクリックします。
すると「"N05_005e"」の後に空白を補って「=」が挿入されます。手入力で「=」を入力せずにこのように挿入するのが無難です。
この「=」の後に手入力で「9999」と入力します。
「OR」も同様に「演算子」から挿入するようにして、最終的にはOR条件は「()」でくくってから最初からあった「"N05_001" = 1」と「AND」でつなぎます。「AND」も「()」の「演算子」から挿入します。
演算子で入力する記号類
・「(」と「)」
・「AND」と「OR」
・「=」を含む四則演算子
・データのフィールド名(「"N05_001" 」や「"N05_005e」など)
・その他Gis表示上必要な座標値なども演算子に準備されています。
手入力する数字類
・条件式の数字(すでに入力されている「1」も新たに作成する場合には手入力)
・「9999」と「999」
条件式の欄には「("N05_005e" = 9999 OR "N05_005e" = 999) AND "N05_001" = 1」となっています。
ここで、この条件式を選択して「CTRL」+「C」で亜空間にコピーしておきます。
コピ-してもどこにも表示されていませんが、ここで一番右下の「OK」をクリックします。
すると下の画面になるので、ここでも右下の「OK」をクリックします。
この画面での条件式をコピーしても構いません。
「OK」を押すと「プロパティ」の「シンボロジ」画面に戻ります。
「2」以降の条件式も先程コピーした条件式を貼り付けて、最後の数字を順に変えていくだけです。
ルールの2番めをダブルクリックすると、今度は2番目の条件式の設定画面が出てきます。
ここで、「"N05_001" = 2」の部分が「("N05_005e" = 9999 OR "N05_005e" = 999) AND "N05_001" = 1」となるように先程のコピーしたものをここへペースト(「CTRL]+「V」)します。その後、ここでは最後の数字を「2」に変更します。
「条件式の設定画面」まで行く必要はありません。ここで修正できます。
重要なのは最後の数字「1」を「2」に修正することです。修正しないと新幹線ばかり出てきてしまいます。
これを「5」番目の「第三セクター」まで繰り返すと以下のようになります。
で、右下の「OK」をクリックします。
横道ですが、逆に廃路線のみを表示したい場合には条件式は以下のようになります。
話を戻します。
ここで、これらの条件を一括して「スタイルを保存」しておくと、スタイルファイルを読み込み直すだけで条件式を含む表示様式を切り替えることができます。
「プロパティ」の「シンボロジ」画面の一番下にある「スタイル▼」をクリックするとスタイルファイルを保存したり読み込んだりすることができます。
QGISでは初期設定でスタイルファイルはスタイルファイル専用のフォルダを持っているようですが、探すのに一苦労するので、自分で保存場所を指定することも可能です。
上の画面で「スタイル保存」をクリックすると以下のような画面が表示されます。
「File」行の右端の「...」をクリックするとファイルブラウザが開くので、保存したフォルダを選択あるいは新たに作成しても可ですが、そこへ「路線別」、「廃路線」などと多少長くなってもいいので、すぐにわかる名前をつけて保存しておきます。
スタイルファイルの拡張子は「qml」というファイル名となります。
これをやっておくかどうかで、後の作業の効率がグーンとアップします。
駅のデータも同様に同じ手順で「全く同じ条件式」で設定できます。
が、路線で作ったスタイルファイルは読み込めません(線データのため)。ちまちまと条件式をコピー・ペーストするよりありません。
年度は異なるが同じ種類のデータではそのまま読み込む事ができます。データの列名や順番など、構造が異なると読み込めても全く表示されなくなります。
今回はとりあえずここまでにしておきますか。
というか、次があるかどうかはわかりませんが。気が向けば。