Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

日本国内向け逆ジオコーディング用インメモリデータ構造構築ツール

このプロジェクトは、国内逆ジオコーディングのために、インメモリデータ構造を構築するためのスクリプトです。

概要

このスクリプトは、指定されたGeoJSONファイルを基に、インメモリで使用するためのデータ構造を構築します。生成されるファイルはjsonとpickleです。

データ構造はtrieを縮約したものになっています。

行政区域文字列は、行政区域の住所を示す文字列で、都道府県と市区町村からなります。

例1: 東京都渋谷区, 例2: 北海道松前郡福島町

GeoJSONファイルは行政区域として(都道府県, 郡, 市町村, 区)を持っており、 trie上では (都道府県, 郡+市町村+区)が'/'で区切られた文字列で保存されています。

GeoJSONファイル

GeoJSONファイルは、2024年現在、国土数値情報 > 行政区域データ全国のところからダウンロードしたファイルを解凍し、N03_20240101.geojson として得られます。

必要要件

  • Python 3.12以上
  • click モジュール

インストール

以下のコマンドを実行して必要なモジュールをインストールしてください。

pipenv install

使用方法

以下のコマンドを実行してフォルダ構造を構築します。

pipenv run python build_trie.py <geojsonpath> --outjsonpath <outjsonpath> --outpicklepath <outpicklepath> | tee <logpath>
  • : 行政区域を表すGeoJSONファイルのパス。
  • : json形式で表現したtrieの保存先ファイルパス。
  • : pickle形式で表現したtrieの保存先ファイルパス。
  • : ログの保存先ファイルパス。

その他のオプションは以下のとおりです。

  • --unit u: 出力するgeocellをまとめる粒度の単位。同一市町村のgeocellをまとめるとき、1,2,4に対してそれぞれ2進数, 4進数, 16進数で同一市町村なら1桁削ることを行う。
  • --resolution r: 16進の場合のgeocellの解像度。デフォルト値は9.
  • --multiprocess: 並列処理を行うかどうか。

出力されるログについて

2フェーズあります。

geojsonファイルから逆ジオコーディングマスタの構造を構築

(行政区域文字列) center (中心点がいずれかの市区町村に属するgeocellの個数) edges (行政区域の境界線が属しているgeocellの個数)

メモリ上にtrieを構築

(行政区域文字列)

が2度

About

日本国内向け逆ジオコーディング用インメモリデータ構造構築ツール

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages