#author("2020-07-07T00:26:15+09:00","default:nobuoki","nobuoki") * デイリーポータルZのあの地図を作りたい [#w85e9e48] #author("2020-07-27T11:07:16+09:00","default:nobuoki","nobuoki") [[地名の最後の一文字だけで地図をつくると地形が見える :: デイリーポータルZ>https://dailyportalz.jp/kiji/saigo-no-hitomoji-chizu]] っぽいものを作る手順を考えました あると好ましい知識 - QGIS [[QGISビギナーズマニュアル(3系) · GIS実習オープン教材>https://gis-oer.github.io/gitbook/book/materials/00/00.html#%E3%82%A6%E3%82%A7%E3%83%96%E3%81%A8%E5%9C%B0%E7%90%86%E6%83%85%E5%A0%B1%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0]] - [[基盤地図情報ダウンロードサービス>https://fgd.gsi.go.jp/download/menu.php]] - FGDV - [[地理院地図|地理院タイル一覧>https://maps.gsi.go.jp/development/ichiran.html]] 参考教材 - [[QGIS を用いた洪水ハザードマップ作成手順 - 酪農学園大学学術>https://rakuno.repo.nii.ac.jp/?action=repository_action_common_download&item_id=5082&item_no=1&attribute_id=21&file_no=2]] - 生活環境情報の表現-GIS入門('20) [[放送大学 授業科目案内 コース科目 情報コース>https://www.ouj.ac.jp/hp/kamoku/2020/kyouyou/C/joho/index.html]] ** 作り方 [#se827584] ざっくり手順 - 国土地理院から、住所(町、字レベル)と緯度経度を含むデータを入手 - FGDVとQGISで国土地理院のデータをgeojson形式に変換し、地名の最後の一文字と緯度経度情報に加工する - QGISで表示する + [[基盤地図情報ダウンロードサービス>https://fgd.gsi.go.jp/download/menu.php]] から(全項目じゃなくて)「市町村の町若しくは字の境界線及び代表点」をお好きな単位でダウンロードします(都道府県くらいがおすすめ) #ref(./01.PNG,40%) #br + ダウンロードしたファイル(大抵は複数になると思います)をFGDVで読み込みます ++ FGDVはここからダウンロード出来ます #ref(./02.PNG,40%) ++ FGDVで新規プロジェクトを作成して先程ダウンロードしたzipファイルを読み込みます #ref(./03.PNG,40%) #br + FGDVで読み込んだデータをシェープファイル形式でエクスポートします #ref(./04.PNG,40%) #br + QGISでシェープファイル「町字の代表点」を読み込ませ、geojson形式でエクスポートします #ref(./05.PNG,40%) #br + JQ等を利用して地名の最後の文字と緯度経度の組み合わせでCSVファイルを作成します #prism(bash){{{ # QGISで出力したgeojsonファイルを入力にする cat ibaraki.geojson |\ # geojsonファイルから必要なものだけ抽出し、csv形式で出力 # 行政コード: あとで茨城県のみ抽出するために使う # coordinates: 町・字レベルの住所の代表点の緯度経度 # 名称: 町・字レベルの住所 jq -r '.features[] | [.properties."行政コード", .geometry.coordinates[], .properties."名称"] | @csv' |\ # ダブルクォーテーションを削除 tr -d '"' |\ # 行政コードを利用して特定の都道府県を抽出 # 茨城: 08 で始まる # 埼玉: 11 で始まる grep '^08' |\ # 地名の最後の一文字を作り出す # 入力(-F)、出力(-v OFS)ともにカンマ区切りにする awk -F, -v OFS=, ' { # 町・字レベル住所を加工するために変数に格納 a=$NF; # 「最後の一文字」に相応しくない文字を消す # 例:山本町南五丁目町 -> 「本」より後ろを削除 # 例:豊田町 -> 「田」より後ろを削除 # 例:中村 -> 「中」より後ろを削除 # 例:中村南一丁目 -> 「村」より後ろを削除/いかんともしがたい sub(/(町?[東西南北]?[〇一二三四五六七八九十百]+丁目|[町村])$/, "", a) } # まれに「最後の一文字」が残らない場合があるので、それを除外 # 例:○○市 北町一丁目 の場合、町・字レベル住所=北町一丁目 となり前段の処理で全て削除される $NF{ # 緯度、経度、町・字レベル住所、最後の一文字 を出力 print $2,$3,$4,substr(a,length(a)) }' >filtered.csv # 結果をファイルにリダイレクト }}} + QGISでCSVファイルをインポートします #ref(./06.PNG,40%) #br + シンボルとラベルを設定します ++ シンボル(なし) #ref(./07.PNG,40%) ++ ラベル(単一定義) #ref(./08.PNG,40%) ** おまけ [#ob2bcad7] 地理院地図タイル(色別標高図、明治期の低湿地)と組み合わせると面白いです - 色別標高図:土地の高低と地名が何となく関連してそうな気がしませんか? #ref(./a.jpg,40%) #br - 明治期の低湿地:水に関係しそうな地名がより際立つ気がしてきませんか? #ref(./b.jpg,40%)