17
5

More than 1 year has passed since last update.

お題は不問!Qiita Engineer Festa 2023で記事投稿!

意外と「国土基本図図郭」のポリゴンを生成するライブラリがなかったのでPythonで作ってみた!

Last updated at Posted at 2023-07-19

image.png
オープンナガサキより)

はじめに

先日、長崎県全域の点群データが自由に使えるらしいからみんなで使っちゃおうぜ!?という記事を書きました!

長崎県全域の点群データが無料で使えるようになった!?という情報を最速でキャッチし、すぐにダウンロードしてCesiumJSで可視化してみましたーという記事だったのですが、ダウンロード出来る点群データは上記画像のような区画に分かれており、区画単位でダウンロード出来るようになっていました。

これは「国土基本図の図郭」と呼ばれるグリッドで、平面直角座標系の原点(0, 0)を基準にm単位で分割されたグリッドになります。

これとは別に、日本全体を経緯度で分割した標準地域メッシュも存在していてこちらもかなり利用されていますが、市区町村が公開する比較的狭い地域のデータや、範囲の限られた測量・調査などは国土基本図の図郭が利用されることも多いです。

で、圧倒的に「標準地域メッシュ」の方が利用されており、弊社の@kanahiro が作成したjapan-mesh-toolなどを含め、情報が多いのですが国土基本図の図郭に関しては「国土基本図 図郭」などでググってもさほど情報が出てきません。
(※こちらのサイトで詳しく解説されてはいます。)

また、このグリッドを利用してGISデータ分析を行おうとしても、ポリゴンデータは転がっておらず、作り方もよく分かりません…

ということで、今回はそんな「国土基本図の図郭」をPythonで作成するツールをPythonで作成し、PyPIで公開したので紹介します!

こんなツール

image.png

プログラムを実行すると、こんなメッシュが取得できます!!!

使い方

リポジトリはこちらです。
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を選択できるようになっており、数値が少ないほど、細かいメッシュが得られます。

image.png
(※レベル2500の図)

ちなみに、ファイル出力ツールではなく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
17
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
5