はじめに
デジタル庁が登記所備付地図データ変換コンバータ(mojxml2geojson
)なるものを公開しました。
これは、G空間情報センターが公開しているデータセット(地図XML形式)をgeojson形式に変換するものということです。このデータセットについては法務省から発表されています。
ということで、登記所備付地図データの地図XML→geojson変換を試してみました。
環境
試した環境はWindows 10+WSL2 Ubuntu 20.04ですが、Ubuntuというところ以外はあまり環境に依存することはないでしょう。
インストール
mojxml2geojson
はgithubにて公開されています。デジタル庁やりますね!
GDALのインストール
README.md
に要件が記載されています。
- GDAL
- python 3.*
- pip 22.*
Python3とpip3はインストールされているとして、GDALとは何でしょうか。
GDAL (Geospatial Data Abstraction Library)は「ラスターおよびベクター地理空間情報データフォーマットのための変換用ライブラリ」(wikipediaより)です。
Ubuntuで比較的新しいバージョンを使うためには非公式PPAからインストールします。
$ sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
$ sudo apt update
$ sudo apt install gdal-bin
これについては以下を参照ください。
登記所備付地図データ変換コンバータのインストール
これで準備ができましたので、mojxml2geojson
をインストールします。ここではREADME.md
に記載されている通り、githubリポジトリから直接インストールします。
$ pip install git+https://github.com/JDA-DM/mojxml2geojson.git
これでおわりです。簡単ですね!
実データでの利用
実際に、今回法務省がオープンデータとして公開した登記所備付地図データを取得してみましょう。
AIGIDユーザ登録
法務省のデータは上に述べたG空間情報センターのデータカタログからダウンロードできますが、その前に(一社)社会基盤情報流通推進協議会(AIGID)のアカウントをつくる必要があります。G空間情報センターのサイトの右上にある「新規ユーザー登録」からユーザ登録することができます。(無料)
データのダウンロード
AIGIDログインした状態でデータカタログにアクセスすると、利用規約を確認後、データをダウンロードすることができます。
ここでは試しに会津若松市のデータをダウンロードしてみます。(正式名称は「会津若松市(福島地方法務局若松支局)登記所備付地図データ」)
ファイル名の右に「ダウンロード」ボタンがあることがわかります。これをクリックすると、07202-3804.zip
がダウンロードされます。この中身は実際には多数のxmlをzipしたものが入っています。
$ unzip -l 07202-3804.zip
Archive: /.../07202-3804.zip
Length Date Time Name
--------- ---------- ----- ----
49809 2022-02-10 11:09 07202-3804-1.zip
3922 2022-02-10 11:09 07202-3804-10.zip
14672 2022-02-10 11:09 07202-3804-100.zip
389488 2022-02-10 11:09 07202-3804-101.zip
651951 2022-02-10 11:09 07202-3804-102.zip
...
...
121210 2022-02-10 11:09 07202-3804-96.zip
208329 2022-02-10 11:09 07202-3804-97.zip
201164 2022-02-10 11:09 07202-3804-98.zip
89802 2022-02-10 11:09 07202-3804-99.zip
19949997 2022-02-10 11:09 07202-3804-search-list.csv
--------- -------
123261461 584 files
この中からひとつデータファイルを取り出してみます。
$ unzip 07202-3804.zip 07202-3804-1.zip
$ unzip 07202-3804-1.zip
$ ls 07202*
07202-3804-1.xml 07202-3804-1.zip
中身は地図データです。
<?xml version="1.0" encoding="UTF-8"?>
<地図 xmlns="http://www.moj.go.jp/MINJI/tizuxml" xmlns:zmn="http://www.moj.go.jp/MINJI/tizuzumen" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.moj.go.jp/MINJI/tizuxml tizuxml.xsd">
<version>ver1.0</version>
<地図名>会津若松市一箕町大字亀賀土地改良</地図名>
<市区町村コード>07202</市区町村コード>
<市区町村名>会津若松市</市区町村名>
<座標系>任意座標系</座標系>
<空間属性>
<zmn:GM_Point id="P000000001">
<zmn:GM_Point.position>
...
コンバート実行
ではコンバートしてみます。(カレントディレクトリでもディレクトリ指定が必要のようです)
$ mojxml2geojson ./07202-3804-1.xml
$ ls 07202*
07202-3804-1.geojson 07202-3804-1.xml 07202-3804-1.zip
geojsonファイルができました。
$ cat 07202-3804-1.geojson
{"type": "FeatureCollection", "features": [{"type": "Feature", "geometry": {"type": "MultiPolygon", "coordinates": [[[[2205.992, -316.906], [2166.512, -319.15], [2164.521, -317.22], [2156.66, -316.534], [2156.152, -301.554], [2184.374, -299.968], [2232.29, -296.961], [2232.125, -315.22], [2231.861, -315.237], [2205.992, -316.906]]]]}, "properties": {"筆ID": "H000000001", "version": "ver1.0", "座標系": "任意座標系", "測地系判別": null, "地図名": "会津若松市一箕町大字亀賀土地改良", "地図番号": "603-改11", "縮尺分母": "500", "市区町村コード": "07202", "市区町村名": "会津若松市", "大字コード": "603",
...
以上、デジタル庁が公開した登記所備付地図データ変換コンバータを使ってみました。