| Crates.io | mojxml-rs |
| lib.rs | mojxml-rs |
| version | 0.2.1 |
| created_at | 2025-09-02 09:24:21.104935+00 |
| updated_at | 2025-09-22 05:28:21.920887+00 |
| description | A CLI tool to convert MOJ-XML files to GeoParquet, FlatGeobuf, or GeoJSON |
| homepage | |
| repository | https://github.com/KotobaMedia/mojxml-rs |
| max_upload_size | |
| id | 1820887 |
| size | 136,568 |
法務省登記所備付地図データ(地図XML)を高速でGISデータ形式(現在は GeoParquet, FlatGeobuf, GeoJSON を対応しています)に変換するコマンドラインツールです。
このツールは Rust で書いていますが、 mojxml-py やデジタル庁が提供している mojxml2geojson ツールを参考に作成しています。
このツールは Rust で書かれていますが、コンパイル済みバイナリも下記のアーキテクチャで用意しています。
最新の Release から利用環境の zip アーカイブをダウンロードしていただき、解凍したらコマンドラインで実行できます。お困りの方は GitHub Issues で詳細を教えて下さい。
Rust 環境のお持ちの方は、 cargo install mojxml-rs でインストールできます。
Usage: mojxml-rs [OPTIONS] <DST_FILE> <SRC_FILES>...
Arguments:
<DST_FILE> Output file path
<SRC_FILES>... Input MOJ XML file paths (.xml or .zip)
Options:
-a, --arbitrary Include features from arbitrary coordinate systems (unmapped files) ("任意座標系")
-c, --chikugai Include features marked as outside district ("地区外") or separate map ("別図"). You probably don't need this
-v, --verbose Enable logging. Will log to mojxml.log in the current directory
-t, --temp-dir <TEMP_DIR> Optional temporary directory for unzipping files. If not specified, the default temporary directory will be used. Use this option if your /tmp directory doesn't have enough space
-h, --help Print help
-V, --version Print version
例:
mojxml-rs ./moj-2025-46.parquet ../dl-tool/zips/46*.zip
上記のコマンドは、 dl-tool でダウンロードした鹿児島県のすべてのzipファイルを、 moj-2025-46.parquet の GeoParquet にまとめて変換します。
[!TIP] Linux のディストリビューションによって
/tmpディレクトリは tmpfs (メモリ上のファイルシステム) になっている。mojxml-rsは親ZIPを解凍するときはテンポラリファイルを使うため、メモリをひっ迫する可能性があります。これを防ぐために、-tオプションでディスク上のテンポラリディレクトリを指定してください。
[unzipping] 00:04:20 #######--------------------------------- 309/2006
[XML parse] 00:04:20 ######################################## 25160/25201
[ output ] 00:04:20 ######################################## 25159/25160
unzipping は入力ZIPファイルを指します。この場合、全部2006個の内309個目は解凍完了。解凍は基本的に1スレッドで行います。(解凍が次のステップより速かったらメモリが圧迫されてしまうため)XML parse は解凍されたXMLをメモリ上に読み込まれ、必要な情報の抽出やGISデータの変換を指します。親ZIPの数がわかっても、その中のZIPの数は事前にわからないので、解凍が進むと母数値が増えます。output は GeoParquet の書き込みを指します。より詳細なログがほしい場合は --verbose で実行すると mojxml.log ファイルに個別ファイルの読み込み・書き込み状況をログ形式で出力します。
このツールのソースコードは MIT ライセンスで公開しています。