(オープンナガサキより)
はじめに
先日、長崎県全域の点群データが自由に使えるらしいからみんなで使っちゃおうぜ!?という記事を書きました!
長崎県全域の点群データが無料で使えるようになった!?という情報を最速でキャッチし、すぐにダウンロードしてCesiumJSで可視化してみましたーという記事だったのですが、ダウンロード出来る点群データは上記画像のような区画に分かれており、区画単位でダウンロード出来るようになっていました。
これは「国土基本図の図郭」と呼ばれるグリッドで、平面直角座標系の原点(0, 0)を基準にm単位で分割されたグリッドになります。
これとは別に、日本全体を経緯度で分割した標準地域メッシュも存在していてこちらもかなり利用されていますが、市区町村が公開する比較的狭い地域のデータや、範囲の限られた測量・調査などは国土基本図の図郭が利用されることも多いです。
で、圧倒的に「標準地域メッシュ」の方が利用されており、弊社の@kanahiro が作成したjapan-mesh-toolなどを含め、情報が多いのですが国土基本図の図郭に関しては「国土基本図 図郭」などでググってもさほど情報が出てきません。
(※こちらのサイトで詳しく解説されてはいます。)
また、このグリッドを利用してGISデータ分析を行おうとしても、ポリゴンデータは転がっておらず、作り方もよく分かりません…
ということで、今回はそんな「国土基本図の図郭」をPythonで作成するツールをPythonで作成し、PyPIで公開したので紹介します!
こんなツール
プログラムを実行すると、こんなメッシュが取得できます!!!
使い方
リポジトリはこちらです。
japan-basic-section
使い方はとても簡単です。
まずはインストールします。
pip install japan-basic-section
その後、こんなPythonプログラムを作成してみてください。
import os
from japan_basic_section.grid import Grid
from japan_basic_section.origin_coords import get_coord_info
system_number = 1
info = get_coord_info(system_number)
g = Grid(system_number, 50000)
grid_50000 = g.make_grid()
crs = info[1]["JGD2011"]
grid_50000 = grid_50000.set_crs(crs)
os.makedirs("../data/output", exist_ok=True)
grid_50000.to_file("data/output/grid_50000.fgb", driver="FlatGeobuf")
プログラムの実行方法はお使いの環境によって様々かと思いますが、今回は以下のように上記のプログラムを実行してみました。
poetry run python ./src/basic_section/__main__.py
するとdata/output/grid_50000.fgb
というファイルが作成されたかと思います!
これをQGISなんかで開くと上記のポリゴンが得られます。
図郭のレベル(縮尺)は50000, 5000, 2500, 1000, 500を選択できるようになっており、数値が少ないほど、細かいメッシュが得られます。
ちなみに、ファイル出力ツールではなくGeoPandasのGeoDataFrameが出力される、Pythonパッケージですので、jupyter notebookなどでもシームレスに利用可能です!
簡単な使い方は以下のnotebookにも書いていますので、参考にしてみてください。
https://github.com/nokonoko1203/japan-basic-section/blob/main/notebooks/sample.ipynb
まとめ
ということで、今回は「国土基本図の図郭」を作成するツールの紹介でした!
以下だけ覚えて帰っていただけると嬉しいです!
- 日本のメッシュは「標準地域メッシュ」と「国土基本図の図郭」がある
- 市区町村などでは結構「国土基本図の図郭」が利用されるが、情報が少ない
- Pythonで「国土基本図の図郭」を作成したければjapan-basic-sectionを利用
- Pythonで「標準地域メッシュ」を作成したければjapan-mesh-tool