地名の最後の一文字だけで地図をつくると地形が見える :: デイリーポータルZ っぽいものを作る手順を考えました
あると好ましい知識
参考教材
ざっくり手順
# 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 # 結果をファイルにリダイレクト
地理院地図タイル(色別標高図、明治期の低湿地)と組み合わせると面白いです