デジタル庁の登記所備付地図データ変換コンバータmojxml2geojsonを使ってみる

# はじめに

デジタル庁が登記所備付地図データ変換コンバータ(`mojxml2geojson`)なるものを公開しました。

https://www.digital.go.jp/news/4b7250a3-3fcf-4b83-8d52-4bb131e1ba9d/

https://data-gov.note.jp/n/n367f1e368d22

これは、G空間情報センターが公開しているデータセット(地図XML形式)をgeojson形式に変換するものということです。このデータセットについては法務省から発表されています。

https://front.geospatial.jp/

https://www.moj.go.jp/MINJI/minji05_00494.html

ということで、登記所備付地図データの地図XML→geojson変換を試してみました。

# 環境

試した環境はWindows 10+WSL2 Ubuntu 20.04ですが、Ubuntuというところ以外はあまり環境に依存することはないでしょう。

# インストール

`mojxml2geojson`はgithubにて公開されています。デジタル庁やりますね！

https://github.com/JDA-DM/mojxml2geojson/

## GDALのインストール

`README.md`に要件が記載されています。

* GDAL
* python 3.*
* pip 22.*

Python3とpip3はインストールされているとして、GDALとは何でしょうか。
GDAL (Geospatial Data Abstraction Library)は「ラスターおよびベクター地理空間情報データフォーマットのための変換用ライブラリ」(wikipediaより)です。

https://gdal.org/

Ubuntuで比較的新しいバージョンを使うためには非公式PPAからインストールします。

```shell
$ sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
$ sudo apt update
$ sudo apt install gdal-bin
```

これについては以下を参照ください。

https://launchpad.net/~ubuntugis/+archive/ubuntu/ubuntugis-unstable

## 登記所備付地図データ変換コンバータのインストール

これで準備ができましたので、`mojxml2geojson`をインストールします。ここでは`README.md`に記載されている通り、githubリポジトリから直接インストールします。

```shell
$ pip install git+https://github.com/JDA-DM/mojxml2geojson.git
```

これでおわりです。簡単ですね！

# 実データでの利用

実際に、今回法務省がオープンデータとして公開した登記所備付地図データを取得してみましょう。

## AIGIDユーザ登録

法務省のデータは上に述べたG空間情報センターのデータカタログからダウンロードできますが、その前に(一社)社会基盤情報流通推進協議会(AIGID)のアカウントをつくる必要があります。G空間情報センターのサイトの右上にある「新規ユーザー登録」からユーザ登録することができます。(無料)

## データのダウンロード

AIGIDログインした状態でデータカタログにアクセスすると、利用規約を確認後、データをダウンロードすることができます。
ここでは試しに会津若松市のデータをダウンロードしてみます。(正式名称は「会津若松市（福島地方法務局若松支局）登記所備付地図データ」)

![geospatial-jp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21963/056cf249-c458-6383-68ca-3c5ca603b732.png)

ファイル名の右に「ダウンロード」ボタンがあることがわかります。これをクリックすると、`07202-3804.zip`がダウンロードされます。この中身は実際には多数のxmlをzipしたものが入っています。

```shell
$ 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
```

この中からひとつデータファイルを取り出してみます。

```shell
$ unzip 07202-3804.zip 07202-3804-1.zip
$ unzip 07202-3804-1.zip
$ ls 07202*
07202-3804-1.xml  07202-3804-1.zip
```

中身は地図データです。

```xml
<?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>
...
```

## コンバート実行

ではコンバートしてみます。(カレントディレクトリでもディレクトリ指定が必要のようです)

```shell
$ mojxml2geojson ./07202-3804-1.xml
$ ls 07202*
07202-3804-1.geojson  07202-3804-1.xml  07202-3804-1.zip
```

geojsonファイルができました。

```json
$ 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", 
...
```

以上、デジタル庁が公開した登記所備付地図データ変換コンバータを使ってみました。