tomopinのブログ

ジャンク好き。おもちゃ好き。二人の孫はもっと好き。

QGis鉄道データ事業者種別に表示

先日はQGisを用いて全国の鉄道データを表示させましたが、全て同じマークでは何がなんだか大変わかりづらいです。そこで、今回は鉄道データの属性テーブルに沿って、一番先頭の分類項目を使ってせめて種別に色分けしてみたいと思います。

最終形はこれです。

事業者種別で鉄道データ表示(廃路線を除く)
(基盤地図非表示)

 

まずは、QGisをインストールした時にデスクトップに作成される「QGIS 3.34.0」などの名前のついたフォルダ(数字はバージョンによって異なります)内にある「QGIS Desktop 3.34.0」というのが実行ファイルなので、これをダブルクリックして立ち上げます。

2回目以降の新規立ち上げ画面
過去の履歴画面がいくつか表示されます。
が、レイヤ欄に何も表示されていなければ
新規作成画面です。
このまま開始しても問題ありません。


ごちゃごちゃした画面が現れますが、ここにはまだ基盤地図もデータもない状態で立ち上がっていますので、ここでまた、基盤地図をブラウザ欄の「XYZ Tiles」から「地理院地図」をダブルクリックして日本付近を拡大します。で、また先日使用した鉄道路線ファイルと駅ファイルを読み込みます。

先日の繰り返しになりますが、メニューバーの「レイヤ」→「レイヤを追加」→「ベクタレイヤを追加...」を順に選択していくと、

ベクタレイヤの追加

下のような画面が出てきますので、「ソース型」は「ファイル」をチェック、「ソース」は「ベクタデータセット」の行の右端にある「...」をクリックするとファイル選択画面が出ます。

ベクタレイヤを追加する画面

ここで、先日ダウンロードした下記の2データを読み込みます。

・路線データ「N05-22_RailroadSection2.shp」

・駅データ「N05-22_Station2.shp」

それぞれで読み込むので同じ操作が2回必要です。

が、他のデータが混じっていなければ、「ソース型」で「ディレクトリ」をチェックして、これらのファイルが保存されているフォルダを指定して一発で読み込ませることも可能です。

で、まずは読み込み後の画面です。

鉄道データ(路線と駅)読み込み後の画面

ここまで先日の手順と全く同じです。それでは今回はこのデータを事業者種別で色分けしてみることをやってみます。

どちらでもよいのですが、とりあえず路線データの「属性テーブル」を見てみます。

「レイヤ」欄にある路線名「N05-22_RailroadSection2」を右クリックします。

鉄道路線データの属性テーブル表示手順

開いたリストの真ん中辺にある「属性テーブルを開く(A)」を左クリックします。

路線データの属性テーブル
事業者種別は1列目、「N05_001」欄で、一桁の数字が入っています。

今回着目したいのは「事業者種別」なので、1列目の「N05_001」欄を見ると、一桁の整数が入っています。

この数字は、以下のような分類となっています。

コード 対応する内容
1 新幹線(旧国鉄
2 JR在来線(旧国鉄含む)
3 公営鉄道
4 民営鉄道
5 第三セクター

この数字に従って色分けする手順をご紹介します。

属性テーブルは一旦閉じていただいて、レイヤ欄の「N05-22_RailroadSection2」の名前のところを右クリックします。出てきたリストの一番下、「プロパティ(P)...」をクリックします。

路線レイヤの「プロパティ」選択

「プロパティ」の設定画面が出てきたら左端の欄の「シンボロジ」をクリックすると線の形状や色、太さなどが設定できる画面が出てきます。

「プロパティ」ー「シンボロジ」設定画面

ここで、一番上の「単一定義(single)」の行をクリックします。

シンボロジの設定

6項目の選択肢が出てきますので、ここで「カテゴリによる定義(categorized)」を選択してクリックします。すると下のような画面が出てきます。

カテゴリ値による定義(categorized)

赤枠で囲った「値」の右端の下向き「▼」をクリックします。

すると、属性データのどの項目で分類するかを聞いてきているので、今は「事業者種別」で分けたいので、先程属性テーブルで確認した項目1番目の「N05_001」を選択します。すると下のような画面になるので、赤枠の「分類」をクリックします。

属性による分類(凡例作成)

「分類」の文字のところをクリックすると、下のように凡例が現れます。

N05_001の分類

「シンボル」、「値」、「凡例」の3つの項目が出てきて、

「シンボル」は初期値で割り振られた線の形、色、太さが表示されています。ここをクリックすると色や太さを変えることができます。

「値」はデータの値で、上のテーブルのとおり、「1」が「新幹線」で始まり、「5」が「第三セクター」の識別子です。ここは変更不可の列です。

「値」の「5」の下に「その他」という行が出てきますが、ここは「値」にデータが記載されていないデータが集められます。全ての「値」に数字が入っている場合には、この最後の「その他」の行は削除します。

「凡例」は凡例として表示させる文字列です。このまま、「OK」をクリックすると、事業者種別毎に色分けされた路線が表示されますが、凡例の文字はただの数字となります。そこで、ここの数字を上のテーブルに沿って文字列に変更します。

変更手順を順に見ていきます。

 

「1」→「新幹線」

「1」→「新幹線」

「2」→「JR在来線(旧国鉄含む)」

「2」→「JR在来線(旧国鉄含む)」

「3」→「公営鉄道」

「3」→「公営鉄道」

「4」→「民営鉄道」

「4」→「民営鉄道」

「5」→「第三セクター

「5」→「第三セクター

「その他」はチェックを外してもよいですが、この場合データがなくても凡例としては残ってしまうので、削除するとします。

チェックを外すか下の「ー」で行削除

のように変更します。

この段階で「OK」をクリックすると出来上がり。

路線を事業者種別で分類・凡例化

といっても凡例以外で何が変わったのかさーっぱりわかりません。プロパティで少し線を太くしておくとわかりやすくなります。

ここでは一旦、基盤地図「地理院地図」を非表示にしてみます。レイヤの「地理院地図」の左端の▢のチェックを外します。

路線別事業者種別分類(基盤地図非表示)

これで事業者種別毎に分類されていることが確認できます。

凡例で分けられている項目左の▢のチェックを外していくと、見たい事業者種別の路線のみ、見ることができます。たとえば、上から2番目の「JR在来線(旧国鉄を含む)」だけを表示させてみます。

JR在来線のみ表示

凡例のチェックに従って、「JR在来線」の青い線のみが表示されています。

前記事で路線毎に分類した手順と同じようにして、事業者種別毎のデータファイル5種類を作成することができます。これらを別々のフォルダに保存して、個別に読み込み、前記事の手順で「路線別」で各路線ファイルに分離させることができます。調べたい路線の事業者がわかっている場合には、これらのフォルダ分けしておいたデータから探す方が効率がよくなります。

さて、前記事でもチラっと触れましたが、各路線のデータには「現在稼働している路線」と既に「廃線になった路線」も含め、過去の全ての路線が保存されているので、これらも条件式を用いてふるい分けることが可能です。

まずは現在運行している路線のみを表示させたい場合。

一番上の「カテゴリ値による定義(categorized)」のところをクリックして、今度は「ルールによる定義(rule-based)」を選択します。

「カテゴリ値による定義(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_005e」をダブルクリック

すると、既に入力されている入力式「"N05_001" = 1」の前に割り込んで、「"N05_005e"」が入力されます。カーソルはこの2つの間にある状況です。

 

条件を設定する項目「"N05_005e" 」が挿入されます。

この状態で「▶演算子」をクリックして「=」を選択してダブルクリックします。

すると「"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」で亜空間にコピーしておきます。

条件式を選択してコピー(「CTRL」+「C」)
最後の数字の手前までの方がよいかもしれません。

コピ-してもどこにも表示されていませんが、ここで一番右下の「OK」をクリックします。

すると下の画面になるので、ここでも右下の「OK」をクリックします。

ルールが変更されました→「OK」

この画面での条件式をコピーしても構いません。

「OK」を押すと「プロパティ」の「シンボロジ」画面に戻ります。

一番面の「新幹線」の条件が設定されました。

「2」以降の条件式も先程コピーした条件式を貼り付けて、最後の数字を順に変えていくだけです。

「2」の「JR在来線・・・」のルールを変更します。

ルールの2番めをダブルクリックすると、今度は2番目の条件式の設定画面が出てきます。

ここで、「"N05_001" = 2」の部分が「("N05_005e" = 9999  OR  "N05_005e" = 999)  AND "N05_001" = 1」となるように先程のコピーしたものをここへペースト(「CTRL]+「V」)します。その後、ここでは最後の数字を「2」に変更します。

「条件式の設定画面」まで行く必要はありません。ここで修正できます。

重要なのは最後の数字「1」を「2」に修正することです。修正しないと新幹線ばかり出てきてしまいます。

ペースト後に数字を修正

条件式最後の数字の修正「1」→「2」

これを「5」番目の「第三セクター」まで繰り返すと以下のようになります。

ルールの修正完了

で、右下の「OK」をクリックします。

 

横道ですが、逆に廃路線のみを表示したい場合には条件式は以下のようになります。

廃路線のみを表示させたい場合の条件式

話を戻します。

ここで、これらの条件を一括して「スタイルを保存」しておくと、スタイルファイルを読み込み直すだけで条件式を含む表示様式を切り替えることができます。

 

「プロパティ」の「シンボロジ」画面の一番下にある「スタイル▼」をクリックするとスタイルファイルを保存したり読み込んだりすることができます。

スタイル保存

QGISでは初期設定でスタイルファイルはスタイルファイル専用のフォルダを持っているようですが、探すのに一苦労するので、自分で保存場所を指定することも可能です。

上の画面で「スタイル保存」をクリックすると以下のような画面が表示されます。

スタイル保存先の指定

「File」行の右端の「...」をクリックするとファイルブラウザが開くので、保存したフォルダを選択あるいは新たに作成しても可ですが、そこへ「路線別」、「廃路線」などと多少長くなってもいいので、すぐにわかる名前をつけて保存しておきます。

スタイルファイルの保存

スタイルファイルの拡張子は「qml」というファイル名となります。

これをやっておくかどうかで、後の作業の効率がグーンとアップします。

駅のデータも同様に同じ手順で「全く同じ条件式」で設定できます。

駅データの場合も条件式は全く同じ
ですが、路線データのスタイルファイルは読めません。
別途作成します。

が、路線で作ったスタイルファイルは読み込めません(線データのため)。ちまちまと条件式をコピー・ペーストするよりありません。

年度は異なるが同じ種類のデータではそのまま読み込む事ができます。データの列名や順番など、構造が異なると読み込めても全く表示されなくなります。

 

今回はとりあえずここまでにしておきますか。

というか、次があるかどうかはわかりませんが。気が向けば。