{{tag>GIS osx}} 書きかけ オープンソースソフトウェアのGISソフトであるQGISの使い方の基礎をまとめる. QGISはWindows,Mac OSX,Linuxなどで使用可能なマルチプラットフォーム対応だが,動作は基本的にOSXでしか確認していない.エンコードさえ気をつければ大丈夫だと思う.多分. # QGIS ## CRSについての注意点 2011年10月以降の公共測量成果物は世界測地系(JGD2011)によるものとなったが,QGISでは2017/10/04現在,該当するCRSは選択できない. 代わりにJGD2000を選択することとなるが,そうすると地物のズレがあるらしい. 数値地図(国土基本情報)などを使うときには注意が必要となる. また,Googleマップや各種GPSで用いられるのはWGS84なので,データのやり取りをする際に注意. ## 最初の設定 1. QGISを起動 2. 新規プロジェクト作成 3. 「ファイル」→「プロジェクトのプロパティ」→「空間参照システム(CSR)」→「オンザフライCRS変換を有効にチェック」→「JGD2000 とのみ書かれているものを選択」 4. 「QGIS」→「Preference」→「ネットワーク」からプロキシを設定する.プロキシタイプはDefaultProxyからHttpProxyに変更しないとダメ(参考 http://gis.stackexchange.com/questions/25188/how-to-access-qgis-plugin-repositories-from-behind-a-proxy). CRS Coordinate Reference System 座標参照系 ## 「交差ツール」で秋田県行政区域と重なり合った部分だけを切り取る 1. 秋田県行政区域N03-13_05_130401.shpと標高・傾斜度5次メッシュデータ(の一部)G04-d-11_5839-jgd_GML.shpを開く.文字化けを防ぐため,開く際にはエンコーディングをShift_JISに設定する. 2. 交差ツールを起動「ベクタ」→「空間演算ツール」→「交差」 3. 交差の実行「ベクタレイヤーの入力」で切り取り対象となるG04-d-11_5839-jgd_GML.shpを選択,「レイヤを交差する」でN03-13_05_130401.shpを選択,出力ファイルをH23Altitude5839.shpとして「OK」で実行 4. 入力座標参照系エラー:一つまたはそれ以上の数の入力レイヤは空間参照システム情報がありません.期待通りの結果はできません.TOCに新しいレイヤを追加しますか?「Yes」を選択し,続いてJGD2000を指定する 以下,他の標高・傾斜度5次メッシュでも同様の処理を行う ### 交差とクリップの違い 交差は両方の属性値を持つが,クリップは切り取り対象の属性値のみを持つ ## 「結合ツール」を使って複数のshapeファイルを結合する 1. 「ベクタ」→「データマネジメントツール」→「複数のshapeファイルを一つに結合する」で結合ツールを起動 2. 「フォルダ内でレイヤで選択されている」にチェックを入れ,入力ファイルにH23Altitude5839.shp,H23Altitude5840.shp,H23Altitude5939.shp,H23Altitude5940.shp,H23Altitude6039.shp,H23Altitude6040.shpを指定(コマンドキーを押しながら複数選択)し,「出力Shapefile」にH23AltitudeAkita.shpとして「OK」で実行 ## 標高で色を塗り分け 標高の値に応じて色を塗り分けたいが,標高・傾斜度5次メッシュデータは文字列型として属性値を格納しているため,そのままでは個々の値を「分類」して塗り分けることしか出来ない.そこで,新たに実数値型のフィールドを作成し,これを元に色の塗り分けを行う. 1. QGISでH23AltitudeAkitaを開き,「レイヤプロパティ」→「フィールド」→「編集モード切替」をクリックして編集モードに入る. 2. 「フィールド計算機」をクリックしてフィールド計算機を呼び出す.「新しいフィールドを作る」にチェックを入れ,「出力フィールド名」をAltitude,「出力フィールドタイプ」を小数点付き数値(real),「出力フィールド幅」を10,「精度」(小数の桁数)を1とする.「式」に```CASE WHEN "G04d_002" != 'unknown' THEN toreal( "G04d_002" ) END```と入力(平均標高G04d_002が'unknown'と等しくない場合,G04d_002を実数値に変換する.'unknown'の場合は何もしないので,文字列のままとなり,設定したフィールドタイプ(実数)で扱えないので,NULLになる.)し,「OK」をクリック 3. 「編集モード切替」をクリックして,編集モードを終了し,保存するかどうかの確認があるので,「save」を選択 4. 「レイヤプロパティ」→「スタイル」→「段階に分けられた」に変更し,「カラム」をAltitude,「シンボル」のボーダースタイルを「線無し」,「分類数」を10,「色階調」をGreys,「モード」を自然な分類に設定し,「分類」をクリックしてスタイルを作成し,「OK」をクリック 秋田県行政区域N03-13_05_130401を緑色の背景にすると,以下のような見た目になる(画像をクリックすると拡大).田沢湖も分かるのが面白い. {{:memo:qgis_thematicmap_altitudeakita.jpg?600|}} 以下のページも参考になる. http://www.geopacific.org/opensourcegis/gcngisbook/QGIS_book/7b2c17ae0/7b2c17ae067bc030fc30bf306e8868793a # QGISレイヤスタイルファイル 設定したスタイルはエクスポート・インポートすることが出来る.ファイルは「.qml」という拡張子の付いたXMLフォーマットなので,任意のエディタでカスタマイズすることも出来る(全てをGUIでぽちぽちしながら設定するのは苦痛). せっかくだから,国土数値情報などのオリジナルスタイルをアップロードしておく. ## 国土交通省国土数値情報 平成18年土地利用細分メッシュデータ 久しぶりに使おうとしたら,xml形式のみでの提供になっていた.Webページ内のタブでシェープファイルを含むダウンロードが選択できた(http://nlftp.mlit.go.jp/ksj/gmlold/index.html 分かり難いので,もっとシンプルな構造にして欲しい). 以前作ったスタイルファイル{{:memo:h18landuse_stylesettings.qml|H18LandUse_StyleSettings.qml}}を使おうとしたところ,データを格納するカラム名が変わっていた.修正したもの{{:memo:l03-b-06_5940-jgd_meb01.qml|}}を適用すると,以下のような土地利用図が得られる. {{:memo:h18landuseakita.jpeg?600|秋田県土地利用図(H18年)}} # 使用している国土数値情報 国土数値情報とは > 国土数値情報は、全国総合開発計画、国土利用計画、国土形成計画などの国土計画の策定や推進の支援のために、国土に関する様々な情報を整備、数値化したデータです。 (引用元:http://nlftp.mlit.go.jp/ksj/index.html#kokudo) 国土数値情報はJPGIS2.1(GML)準拠のデータ(gmlと言っているが,拡張子はxmlで,このままではQGISでは扱えない)とシェープファイルなどで提供されている. 新しいデータはJPGIS2.1(GML)でのみ提供されているようだ(2014/12/18追記). シェープファイルへの[[http://nlftp.mlit.go.jp/ksj/jpgis/jpgis_tool.html|変換ツール]]はWindows限定. 例えば,L03-b-06_5940-jgd.xmlを変換すると,L03-b-06_5940-jgd_mEB01.shp,L03-b-06_5940-jgd_mEB01.shx,L03-b-06_5940-jgd_mEB01.dbfの3つが生成される. ## 国土数値情報 道路(線) | ファイル名 | ファイル容量 | 年度 | 測地系 | 地域| | N01-07L-05-01.0a_GML.zip | 0.38MB | 平成7年 | 世界測地系 | 秋田 | <> 道路 * 場所: GM_Curve * 道路種別コード: 道路種別コード * 路線名: CharacterString * 線名: CharacterString [0..1] * 通称: CharacterString [0..1] <> 道路種別コード * 高速道路 = 1 * 一般国道 = 2 * 主要地方道 = 3 * 一般都道府県道 = 4 * 特例都道 = 5 * 市町村道 = 6 * 私道 = 7 ## 国土数値情報 高速道路時系列データ | ファイル名 | ファイル容量 | 年度 | 測地系 | 地域 | | N06-13.zip | 2.23MB | 平成25年 | 世界測地系 | 全国 | ## 国土数値情報 行政区域データ | ファイル名 | ファイル容量 | 年度 | 測地系 | 地域 | | N03-140401_05_GML.zip | 1.96MB | 平成26年 | 世界測地系 | 秋田 | | N03-130401_05_GML.zip | 2.23MB | 平成25年 | 世界測地系 | 北海道 | 2014/12/18に上記の秋田県をダウンロードしたところ,新しいデータはJPGIS2.1でのみ提供されていることに気がついた. ## 国土数値情報 避難施設データ | ファイル名 | ファイル容量 | 年度 | 測地系 | 地域 | | P20-12_05_GML.zip | 0.34MB | 平成24年 | 世界測地系 | 秋田 | ## 国土数値情報 標高・傾斜度5次メッシュデータ | ファイル名 | ファイル容量 | 年度 | 測地系 | 地域 | ||||||| | G04-d-11_5839-jgd_GML.zip | 0.79MB | 平成23年 | 世界測地系 | 5839 | | G04-d-11_5840-jgd_GML.zip | 5.00MB | 平成23年 | 世界測地系 | 5840 | | G04-d-11_5939-jgd_GML.zip | 0.23MB | 平成23年 | 世界測地系 | 5939 | | G04-d-11_5940-jgd_GML.zip | 4.77MB | 平成23年 | 世界測地系 | 5940 | | G04-d-11_6039-jgd_GML.zip | 0.24MB | 平成23年 | 世界測地系 | 6039 | | G04-d-11_6040-jgd_GML.zip | 4.91MB | 平成23年 | 世界測地系 | 6040 | ## 国土数値情報 河川データ | ファイル名 | ファイル容量 | 年度 | 測地系 | 地域 | | W05-07_05_GML.zip | 9.61MB | 平成19年 | 世界測地系 | 秋田 | ## 国土数値情報 港湾データ | ファイル名 | ファイル容量(MB) | 年度 | 版数 | データ項目 | 地域 | 測地系 | | C02-02P-jgd.zip | 1.65MB | 平成2年 | 4.0 | 港湾 | 全国 |世界測地系 | ## 国土数値情報 鉄道時系列データ | ファイル名 | ファイル容量 | 年度 | 測地系 | 地域 | | N05-13.zip | 10.50MB | 平成25年 | 世界測地系 | 全国| ## 国土数値情報 バス停留所データ | ファイル名 | ファイル容量 | 年度 | 測地系 | 地域| | P11-10_05_GML.zip | 0.27MB | 平成22年 | 世界測地系 | 秋田| http://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-P11.html |識別子|データ項目|タグ名|対応番号|属性名| |P11|バス停留所|BusStop|P11-001|バス停名| |P11|バス停留所|BusStop|P11-002|バス路線情報-バス区分| |P11|バス停留所|BusStop|P11-003-1~19|バス路線情報-事業者名| |P11|バス停留所|BusStop|P11-004-1~19|バス路線情報-バス系統| レイヤパネルからレイヤを右クリックし,「名前を付けて保存」で「コンマ区切りファイル」形式を選べば,CSVでエクスポートできる. ヘッダーと一行目だけを以下に抜き出す. ``` X,Y,P11_001,P11_002,P11_003_1,P11_003_2,P11_003_3,P11_003_4,P11_003_5,P11_003_6,P11_003_7,P11_003_8,P11_003_9,P11_003_10,P11_003_11,P11_003_12,P11_003_13,P11_003_14,P11_003_15,P11_003_16,P11_003_17,P11_003_18,P11_003_19,P11_004_1,P11_004_2,P11_004_3,P11_004_4,P11_004_5,P11_004_6,P11_004_7,P11_004_8,P11_004_9,P11_004_10,P11_004_11,P11_004_12,P11_004_13,P11_004_14,P11_004_15,P11_004_16,P11_004_17,P11_004_18,P11_004_19 140.06536198,39.62948181,長浜,"3,1","秋田市,羽後交通(株)",,,,,,,,,,,,,,,,,,,"下浜線,(急行)本荘・秋田線",,,,,,,,,,,,,,,,,, ``` 左から順に,''経度'',''緯度'',''バス停名'',''バス路線情報バス区分'',''バス路線情報事業者名''...となる. 同一バス停に複数路線が乗り入れている場合,バス路線情報(バス区分・事業者名・バス系統)が二重引用符『"』でくくられ,その中でカンマ区切りで列挙される. ## 国土数値情報 バスルート | ファイル名 | ファイル容量 | 年度 | 測地系 | 地域| | N07-11_05_GML.zip | 3.19MB | 平成23年 | 世界測地系 | 秋田| http://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N07.html ``` N07_001,N07_002,N07_003,N07_004,N07_005,N07_006,N07_007 1,(資)十和田タクシー,花輪、四ノ岱線,7.0,0.0,0.0, ``` バス停留所データとバスルートを使って秋田高専周辺の路線図を作成した. {{:memo:qgis_bus.jpeg?600|路線図}} ### GTFS(General Transit Feed Specification) バス停とルートを[[gtfs|GTFS]](General Transit Feed Specification)で使いたい. [[https://developers.google.com/transit/gtfs/reference?hl=ja#stops_fields|stops.txt]]と [[https://developers.google.com/transit/gtfs/reference?hl=ja#shapes_fields|shapes.txt]]を作れば良いのは分かった. 誰か作っていないかと思って検索したら,データの信頼性があまりないのではないかという[[http://togetter.com/li/237320|意見が見つかった]]が,見ないことにして進もう. 座標系をJGD2000からWGS84に変換する必要があるようで,そのためのツールが http://trac.osgeo.org/csmap/ にあるらしい(http://lists.osgeo.org/pipermail/osgeojapan-discuss/2010-August/000541.html で知った). # 基盤地図情報 > 「基盤地図情報」とは、電子地図における位置の基準となる情報のことです。基盤地図情報と位置が同じ地理空間情報を、国や地方公共団体、民間事業者等の様々な関係者が整備することにより、それぞれの地理空間情報を正しくつなぎ合わせたり、重ね合わせたりすることができるようになります。この結果、地理空間情報をより一層効率的に、高度に利用することが可能となります。 出典:http://www.gsi.go.jp/kiban/towa.html ダウンロードは http://fgd.gsi.go.jp/download/ から(利用者登録が必要). 1. 基盤地図情報(数値標高モデル),5mメッシュ(標高),5940-50,基本測量:FG-JPS-5940-50-DEM5B.zip:5156 2. 基盤地図情報(数値標高モデル),5mメッシュ(標高),5940-40,基本測量:FG-JPS-5940-40-DEM5B.zip:3063 3. 基盤地図情報(数値標高モデル),5mメッシュ(標高),5940-30,基本測量:FG-JPS-5940-30-DEM5B.zip:2481 ## shapeファイルへのコンバート shapeファイルへの変換には閲覧コンバートソフトが必要(Windowsのみ対応) http://fgd.gsi.go.jp/download/faq_download.html#q3 macなので,nxwineで動くか検証する→ダメだった.起動はするが,変換の途中で落ちる http://mattintosh.hatenablog.com/entry/nxwine Linuxでのshp形式へのコンバート方法が http://www.mk-mode.com/octopress/2014/07/13/gsi-install-gdal-ogr-lib-for-fgd/ に載っている. Macで試したところ,sudoは不要で,先にmakeしてからmake installでインストールは出来たが,変換は出来ない(2015/02/11). ### 基盤地図情報DEMインポータ [基盤地図情報DEMインポータ](http://space.geocities.jp/bischofia_vb/qgis-plugins/fgddemImporter/)を使えばOSに関係なく,基盤地図情報(数値標高メッシュ)を読み込むことが出来る. # iPhoneの各種アプリで記録したGPSログの利用 iPhoneにはGPSが登載されており,これを利用したアプリも数多くある. お遊びとしていくつかのアプリのログを読み込み,可視化してみる. ## Nike+ https://mattstuehler.com/lab/NikePlus/ でNikep+にアップロードした過去のランがgpx形式(http://ja.wikipedia.org/wiki/GPX 参照)でダウンロード可能.ただし,サードパーティーによるサービスなので,利用は自己責任で. 2010年の秋(もう3年前!)に北秋田市の森吉山にリバートレッキングに行った時{{:memo:p1000793.jpg|}}のデータを読み込んでみる. 「ベクタレイヤの追加」で全てのファイル形式を選んで,gpx形式のファイルを開く.読み込むベクタレイヤを「waypoints, routes, tracks, route_points, track_points」から指定するように言われるが,track_pointsとtracks以外は中身が入っていなかった. 秋田県全域のなかだと,こんな感じ(国土数値情報 行政区域データ利用,国土数値情報 標高・傾斜度5次メッシュデータ利用). {{:memo:screenshot_2013-08-17_10.22.24.png?600|}} ルートにパンしてみると, {{:memo:screenshot_2013-08-17_10.54.24.png?600|}} リバートレッキングが出来るくらいの緩い沢なので,高低差は表現されていない. 国土数値情報 河川データも使ってみると,かなりリバートレッキングっぽい. {{:memo:screenshot_2013-08-17_12.08.30.png?600|}} ## Trip Journal 場所と写真を関連付けながら記録が出来る,見た目も素敵ないいアプリだと思うが,3年前に使って以来おっくうで使っていない.iPhoneで位置情報を付けて撮影した写真があれば,リアルタイムでなく後から振り返って旅日記を作成することも可能だが,面倒なのでやっていない.出来なかったので,開発者に要望を出しておいた. このアプリはアプリから直接エクスポートが可能で,gpx以外にもkmz形式(http://ja.wikipedia.org/wiki/KML 参照)でもエクスポートできる.kmzの場合は写真も一緒に出力してくれるので,Google earthで見ると,旅の思い出が鮮やかに甦る(けど,一回しか作ってない). 3年前のGWに青森を旅行したときにTrip Journalというアプリで記録したログをkmzで出力し,「ベクタレイヤの追加」で全てのファイル形式を選んで,kmzを選択して読み込ませた.読み込むベクタレイヤを「Waypoints, Itinerary」から指定するように言われるので,全てを選択した. Waypointsの「レイヤプロパティ」→「ラベル」でNameを選択して表示すると,こんな感じ. {{:memo:screenshot_2013-08-17_11.22.11.png?600|}} 恐らくCRS(座標参照系)の設定が適切でないため,ものすごいずれてる.バックグランドが秋田県だけなので錯覚していた. Google earthで開くと,余計な情報も入っているのでごちゃごちゃして見づらいものの,位置は適切なようだ. {{:memo:screenshot_2013-08-17_11.38.47.jpg?600|}}