(2023-09-06: API Keyを使ってのダウンロードの記載などを少し追記しました。)
はじめに
ポイント
この記事は、WindowsのPowerShellだけで、G空間情報センターから2023年の地図XMLファイル全部(約2000ファイル)をダウンロードする方法のメモです。Linux環境は不要です。
作業の動機
昨年度から、地番の地図データ、正確には法務省の登記所備付地図データがG空間情報センターから公開されました。形式は地図XMLの形でダウンロード出来ます。毎年更新した地図データが公開されるという話を聞いていましたが、今年も令和5年8月31日に更新された地図データ(令和5年2月時点とのこと)が公開されたそうです。法務省さんとG空間情報センターなどの関係者の皆様、ありがとうございます。
法務省HPでのお知らせ: https://www.moj.go.jp/MINJI/minji05_00494.html
私も筆データを使いたいのですが、地図XMLのデータは法務局ごとにダウンロードしていく必要があるので、G空間情報センターからクリックすると手間がかかります。なんとかAPIやコマンドを使って(楽に)ダウンロード出来ないだろうかと考えて、少し試してみました。
なお、昨年公開された登記所備付地図データは変換ツールを使ってGeoJSONやShape形式にしたものもありますが、私のターゲットは地図XML形式です(任意座標系のデータも必要なため)。今回の記事でも登記所備付地図データのことを地図XMLという場合がありますのでご注意ください。
全国の登記所備付地図の電子データ について
-
根拠法令 は、不動産登記法(平成16年法律第123号)で、第14条第1項及び第4項に規定する地図及び地図に準ずる図面に係る電子データ
-
縮尺は不動産登記規則第10条2項にあるとおりで、
- 市街地域は 250分1 又は 500分1
- 村落・農耕地域は 500分1 又は 1000分1
- 山林、原野は 1000分1 又は 2500分1
-
フォーマットは地図XMLフォーマット
- どんなスキーマか、法務省が定義を公開しています。 ( https://www.moj.go.jp/content/000116464.pdf )下の図を眺めていると、何となく構造が見えてきます。(下図: 地図XML(総務省)より図1)
-
ダウンロードは G空間情報センター から可能です。
- G空間情報センターのユーザー登録、ログインが必要
- データは無料で利用できる。(図証明書・図面証明書に代替するものではない)
- 利用規約はデータダウンロード時に確認できる。
- 2022年度の公開、2023年度の公開の2つのバージョンがある
私の環境
- Windows 10
- GoogleChrome
- Windows PowerShell
方針の検討
まず、G空間情報センターでデータベースを確認し、その後にG空間情報センターのAPI(CKANのAPIベース)を試してデータを見ながら方針を探ります。
実施結果
STEP 1: G空間情報センターのHPでデータを確認
G空間情報センターのページでは法務省登記所備付地図データのダウンロード手順が詳しく紹介されています。
都道府県 → 区市町村・法務局出張所名 と選んで、利用規約を承諾した上でダウンロードします。ダウンロードにはG空間情報センターへのログインが必要ですので、アカウントがない場合は作成しておきましょう。
通常のダウンロードは以下の様なページからダウンロードします。ここではファイル名をよく理解したいと思いいくつかのページを見ています。
- 最初の5桁は市長村(区)を表すコードのようです。全国地方公共団体コードの5桁目までなのかな、というような印象があります。
- 次の4桁は法務局のコードのようです。例えば、上図の新潟市北区のデータは新潟地方法務局(1100)から出ているデータですが、もう一つ新潟地方法務局新発田支局(1102)から出ているデータがありました。
- 最後の4桁はG空間情報センターから公開された年度かなと思います。
STEP 2: G空間情報センターのAPIを確認
APIのマニュアル
G空間情報センターはCKANベースの用ですが、APIのマニュアルも公開されています。
How to useのページからAPIマニュアルがあります。
APIマニュアル: https://front.geospatial.jp/wp-content/uploads/2022/03/gic-api.pdf
APIの実験
例えば、 https://www.geospatial.jp/ckan/api/3/action/package_search?q=(tags:法務省%20AND%20title:新潟市) とすると(%20は半角スペースのことです)、以下の様な反応があります。
結果を眺めます。JSONなので、いろいろと見てみたいと思います。
PowershellでAPIからJSONデータを受け取り、検索結果をいろいろと見てみました。
$jsonData = (curl.exe 'https://www.geospatial.jp/ckan/api/3/action/package_search?q=(tags:法務省%20AND%20title:新潟市)' | ConvertFrom-JSON)
Write-Host ($jsonData.success)
Write-Host ($jsonData.result)
Write-Host ($jsonData.result.results)
なお、APIを探検するに当たり、以下の二つの記事が大変参考になりました。ありがとうございます。
STEP 3: APIで2023年度地図XMLのダウンロードURLを取得
いろいろと見てみましたが、最終的にはAPIでpackageを検索するのではなくて、リソースを検索した方がデータセットにたどり着きやすいかなと考えました。
packageだと一つの法務局に、3つのリソース(利用規約、2022年度のデータ、2023年度のデータ)が入っているので、APIでの検索で上手く2023年のリソースだけに絞れなかったためです。(私の実力では・・・)
以下の様にすることにしました。
$jsonData = (curl.exe 'https://www.geospatial.jp/ckan/api/3/action/resource_search?query=name:-2023.zip&limit=2005' | ConvertFrom-JSON)
Write-Output ($jsonData.result.results.URL) | Out-File url2023.txt
Write-Output ($jsonData.result.results.name) | Out-File name2023.txt
(ポイント)
- 2023年度の地図XMLを検索しますが、「-2023.zip」で終わるリソースは2023年のXMLデータだけらしく、この条件でぴったり検索出来ました。(ラッキー)
- limitを2005にしているのは、適当な数で読んだ後に、Write-Host ($jsonData.result.count)をすると2005になっているからです(下図)。このとき、私の環境だとlimitを指定しないと10レコードくらいしかリソースが出てきませんでしたのでレコードの数だけlimitで数を指定しました。
- APIをcurl.exe(Powershellなのでcurlでない)でアクセスしてJSONデータを受け取り、検索結果のリソースのもつデータのURLとデータの名前をOut-Fileとして書き出します。
出力したurl2023.txtは以下の様な感じです。ダウンロード用のURLがわかりました。
STEP 4: データのダウンロード
前のステップまでで2005ファイルのURLがわかったので、それぞれに対して以下のコマンドでダウンロード出来るはずです。
curl.exe -LO (ファイルのURL)
しかし、G空間情報センターからのダウンロードでは、リクエストヘッダに自分のAPI-KEYを入れておく方が良いです。
G空間情報センターからのデータダウンロード
センターのウェブサイトからダウンロードするときにはログインが必須ですが、コマンドだとログインしなくてもダウンロード出来ます。この点についてG空間情報センターに問い合わせて確認したら、おおむね以下の様なお返事でした。
- ウェブブラウザからのアクセスと、APIで操作の違いがあるのは事実。
- 法務省地図XMLのダウンロードに際し、利用規約を確認しておく必要がある。
- コマンドベースでのダウンロードには特にルールはないが、リクエストヘッダにAPI Keyを入れておいてほしい。
自分のAPI KeyはG空間情報センターにログインしてすぐの画面で確認出来ます。
確認したAPI Keyを使って以下の様にダウンロードします。-Hオプションで多分API Keyを送れていると思うのですが。。(間違えていたら教えてください。)
curl.exe -LO -H"X-CKAN-API-Key:<自分のAPI Key>" https://www.geospatial.jp/ckan/dataset/...(対象ファイルのURL)
ダウンロードしてきたURLリストの前に、curl.exe -LO -H"X-CKAN-API-Key:<自分のAPI Key>"を貼り付けてコマンドを準備します。私は最初の "https" を "curl.exe -LO -H"X-CKAN-API-Key:<自分のAPI Key>" https"に置換する方法でコマンドを準備しました。下の絵では、私のAPI Keyなので黒塗りにしています。
PowerShellにコピペするとダウンロードが始まります。最後の一行は自分でエンターキーを押さないといけない時もあるかと思います。
ダウンロードの時間
ファイルサイズ、通信環境の違いやPCの処理速度にもよると思いますが、私の環境だと55ファイルで20分くらいでした。全体(2000ファイル)をダウンロードするには単純計算だと800分(≓13時間)くらい必要そうです。
G空間情報センターへのアクセスが集中しても困りますから、Kuwanauchiプロジェクトの成果を利用するなど、分散型のデータ配布・データ利用も少し意識することが大事かもしれませんね。
https://github.com/amx-project/kuwanauchi
まとめ
この記事では法務省登記所備付地図データのダウンロードURLの調べ方をメモしました。ラッキーなことに、2023年、2022年共に『-2022.zip』か『-2023.zip』を名前に含むリソースを検索すると出てきます。
URLからは普通にcurlでダウンロード出来そうですが、API-KEYをきちんと付してダウンロードする方法がよいです。
他の方の取組みも参考にさせていただきましたが、今回、Linuxコマンドや関係ツールがなくても、Windows PowerShellの環境だけでもダウンロード出来るようしたのが工夫した点です。
なお、地図XMLのデータの利用に関しては、データの利用規約をきちんと確認して利用するようにしましょう。
参考にしたページなど
以下のページなどをみました。ありがとうございました。
- G空間情報センター: https://front.geospatial.jp/
- 法務省のアナウンス: https://www.moj.go.jp/MINJI/minji05_00494.html
- PowerShellでの変数定義: https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_variables?view=powershell-7.3
- PowerShell JSONを読み込む/出力する: https://itsakura.com/powershell-json
- G空間情報センターでCKAN APIを使ってみる(入門編): https://qiita.com/tkhrmeme/items/6992de0bc7d134f500b5
- G空間情報センターでCKAN APIをつかってみる(応用編): https://qiita.com/tkhrmeme/items/2581cdf684369b9961b4