2022年度、2023年度、2024年度の地図XMLリストを比較（Rを使って）

# はじめに
　2022年度から、地図XMLデータがG空間情報センターから公開されるようになりました。
　ダウンロードできる地図XMLは変換済みのものなどいろいろなフォーマットがありますが、XMLのパッケージは「市区町村コード（５桁）-法務局コード（４桁）.zip」というファイル名で各市町村-法務局ごとに圧縮パッケージで提供されています。
　市区町村の合併や、その後のデータ処理の進展等の原因によると思うのですが、複数年度で比較する際には各年度で存在しないパッケージなどがあるので整理しておくことにしました。

# 方法
## Step 1: ファイルリスト作成
各年度のZIPデータをすべてダウンロードしてファイルリストを作成しました。過去に書いた以下の記事を参考にします。

https://qiita.com/T-ubu/items/be5d0e577d7555c42c3f

2022年度は2,070ファイル、2023年度は2,005ファイル、2024年度は2,010ファイルありました。各ファイル一覧は以下に置いておきます。

* https://github.com/ubukawa/chizuxml-list/blob/main/2022.csv
* https://github.com/ubukawa/chizuxml-list/blob/main/2023.csv
* https://github.com/ubukawa/chizuxml-list/blob/main/2024.csv

## Step 2: 各年度のファイルリストを結合する
「市区町村-法務局」ごとに各年度のファイルがあるかを調べます。2022年度から2024年度で、「市区町村-法務局」のパターンは2,087種類ありました。それぞれでファイルがあるかをまとめてみました。

以下の表で、1列目が「市区町村-法務局」、2列目に「2022」が入っているものは2022年度にファイルがあるもの、3列目の2023は2023年度のファイルがあるということ、4列目の2024は2024年のファイルがあるものです。参考に可能な範囲で市区町村名のテーブルも結合しておきました。（表はこちら https://github.com/ubukawa/chizuxml-list/blob/main/list-utf8.csv ）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/d976dc1a-dae2-8bcd-23d9-32b27067d3ae.png)

上記の表の作成のためのスクリプトやソースデータはGitHubのここ（https://github.com/ubukawa/chizuxml-list ）に置いておきますが、以下のような感じで解析しました。

```R
library("dplyr") #データベースの操作をするためのパッケージ（filterなど）
#library("stringr") #文字列処理のパッケージ

# 読み込み
list2022 <- read.csv("2022.csv",header=FALSE,colClasses=rep("character",1),fileEncoding = "utf16")
list2023 <- read.csv("2023.csv",header=FALSE,colClasses=rep("character",1),fileEncoding = "utf16")
list2024 <- read.csv("2024.csv",header=FALSE,colClasses=rep("character",1),fileEncoding = "utf16")
shikuchoson <- read.csv("shikuchoson.csv",header=FALSE,colClasses=rep("character",2),fileEncoding = "utf8")

# 年度の付与
list2022[,2] <- 2022
list2023[,2] <- 2023
list2024[,2] <- 2024

# 市区町村ー法務局コードの抜き出し
list2022[,3] <- substr(list2022[,1],1,10)
list2023[,3] <- substr(list2023[,1],1,10)
list2024[,3] <- substr(list2024[,1],1,10)

# チェック
nrow(list2022) #2070
nrow(list2023) #2005
nrow(list2024) #2010

# 必要な情報だけに
list2022r <- select(list2022,3,2)
list2023r <- select(list2023,3,2)
list2024r <- select(list2024,3,2)

# テーブル結合
list1 <- full_join(list2022r,list2023r,by="V3")
list2 <- full_join(list1,list2024r,by="V3")

# 市区町村コードだけ抜き出し
list2[,5] <- substr(list2[,1],1,5)
list2[,5] <- as.character(list2[,5])

#市区町村追加
shikuchoson[,3] <-substr(shikuchoson[,1],1,5)
list3 <- left_join(list2,shikuchoson,by= c("V5"="V3"))


#書き出し
write.csv(list3,"list-utf8.csv",fileEncoding = "UTF8")
write.csv(list3,"list-sjis.csv",fileEncoding = "cp932")

#変更があったもの
henko <- filter(list3,is.na(V2.x) | is.na(V2.y) | is.na(V2.x.x))
write.csv(henko,"henko-sjis.csv",fileEncoding = "cp932")

```

## Step 3: 考察
2022年度、2023年度、2024年度のいずれかでファイルが存在しない「市区町村-法務局」も抜き出してみました。2,087件の「市区町村-法務局」組み合わせのうち、91件で年度によるファイルの有無の違いがあることがわかりました。

３年の間でファイル有無に違いのある91件は以下の通りでした。最近の市区町村コードと突合できるものは突合させておきました。

| 市区町村-法務局 | 2022年度 | 2023年度 | 2024年度 | 市区町村名 |
|---|---|---|---|---|
| 01515-4501 | 〇 | - | - |  |
| 01558-4603 | 〇 | - | - |  |
| 03305-4000 | 〇 | - | - |  |
| 03487-4004 | 〇 | - | - |  |
| 04213-3704 | - | - | 〇 |  栗原市 |
| 04214-3702 | - | 〇 | 〇 |  東松島市 |
| 04442-3702 | 〇 | - | - |  |
| 04548-3704 | 〇 | - | - |  |
| 04603-3705 | 〇 | - | - |  |
| 06441-3904 | 〇 | - | - |  |
| 07321-3808 | 〇 | - | - |  |
| 07441-3804 | 〇 | - | - |  |
| 09201-0608 | - | - | 〇 |  宇都宮市 |
| 09206-0600 | - | - | 〇 |  日光市 |
| 09207-0608 | 〇 | - | - |  |
| 09341-0601 | 〇 | - | - |  |
| 09384-0602 | - | 〇 | - |  塩谷町 |
| 09422-0605 | 〇 | - | - |  |
| 10342-0707 | 〇 | - | - |  |
| 10363-0704 | 〇 | - | - |  |
| 11204-0300 | 〇 | - | - |  |
| 11213-0300 | 〇 | - | - |  |
| 11401-0303 | 〇 | - | - |  |
| 15202-1101 | - | - | 〇 |  長岡市 |
| 15213-1104 | - | - | 〇 |  燕市 |
| 15584-1103 | 〇 | - | - |  |
| 16301-2300 | 〇 | - | - |  |
| 16381-2302 | 〇 | - | - |  |
| 16384-2302 | 〇 | - | - |  |
| 20581-1000 | 〇 | - | - |  |
| 20589-1000 | 〇 | - | - |  |
| 21481-2001 | 〇 | - | - |  |
| 21483-2001 | 〇 | - | - |  |
| 21523-2030 | 〇 | - | - |  |
| 22138-0804 | - | - | 〇 |  浜松市中央区 |
| 22139-0804 | - | - | 〇 |  浜松市浜名区 |
| 22201-0800 | 〇 | - | - |  |
| 22381-0802 | 〇 | - | - |  |
| 22503-0804 | 〇 | - | - |  |
| 23603-1840 | 〇 | - | - |  |
| 25361-1601 | 〇 | 〇 | - |  |
| 25421-1602 | - | 〇 | 〇 |  |
| 25502-1603 | 〇 | - | - |  |
| 28624-1437 | 〇 | - | - |  |
| 29205-1510 | - | - | 〇 |  橿原市 |
| 29205-1512 | 〇 | 〇 | - |  橿原市 |
| 29361-1510 | - | - | 〇 |  川西町 |
| 29361-1512 | 〇 | 〇 | - |  川西町 |
| 29362-1510 | - | - | 〇 |  三宅町 |
| 29362-1512 | 〇 | 〇 | - |  三宅町 |
| 29363-1510 | - | - | 〇 |  田原本町 |
| 29363-1512 | 〇 | 〇 | - |  田原本町 |
| 29382-1510 | 〇 | - | - |  |
| 29401-1510 | - | - | 〇 |  高取町 |
| 29401-1512 | 〇 | 〇 | - |  高取町 |
| 29402-1510 | - | - | 〇 |  明日香村 |
| 29402-1512 | 〇 | 〇 | - |  明日香村 |
| 31381-2702 | 〇 | - | - |  |
| 32383-2802 | 〇 | - | - |  |
| 32385-2802 | 〇 | - | - |  |
| 34402-2420 | 〇 | - | - |  |
| 35421-2505 | 〇 | - | - |  |
| 35504-2500 | 〇 | - | - |  |
| 36422-4800 | 〇 | - | - |  |
| 37381-4700 | 〇 | - | - |  |
| 38209-5022 | 〇 | - | - |  |
| 38302-5022 | 〇 | - | - |  |
| 38385-5001 | 〇 | - | - |  |
| 38404-5000 | 〇 | - | - |  |
| 40483-2904 | 〇 | - | - |  |
| 41324-3011 | 〇 | - | - |  |
| 41443-3001 | 〇 | - | - |  |
| 42342-3117 | 〇 | - | - |  |
| 42421-3105 | 〇 | - | - |  |
| 43322-3315 | 〇 | - | - |  |
| 43361-3302 | 〇 | - | - |  |
| 43365-3302 | 〇 | - | - |  |
| 43385-3304 | 〇 | - | - |  |
| 43422-3305 | 〇 | - | - |  |
| 43430-3305 | 〇 | - | - |  |
| 43463-3306 | 〇 | - | - |  |
| 44321-3201 | 〇 | - | - |  |
| 44501-3205 | 〇 | - | - |  |
| 46207-3405 | 〇 | - | - |  |
| 46211-3422 | 〇 | - | - |  |
| 46302-3400 | 〇 | - | - |  |
| 46344-3402 | 〇 | - | - |  |
| 46383-3403 | 〇 | - | - |  |
| 46467-3442 | 〇 | - | - |  |
| 46485-3404 | 〇 | - | - |  |
| 47202-3601 | 〇 | - | - |  |






※ 上記に成形するまえのテーブルはこちら　https://github.com/ubukawa/chizuxml-list/blob/main/henko-sjis.csv

発見したことは以下の通りです
* 多くは2022年度のみにファイルが存在しそれ以後にファイルがなくなったパターン。これらは市区町村コードを確認してみると、過去の市町村合併等により現存しない市町村が多い。登記の地図データもしばらくは残っているが、随時整理されて対象市区町村のデータがなくなったパターンと考えられる。
* 既存の市区町村コードに突合する箇所（例：塩谷町の法務局0602）については、対象市区町村は存在するが対応する法務局から提供されているデータがなくなった、あるいは出現したパターン（栗原市など）と考えられる。
    * このうち、奈良の法務局1512(奈良地方法務局橿原出張所)から法務局1510（奈良地方法務局中和支局）に変更するところが複数あり、法務局の担当変更などがファイル名に影響したことが推測される。
* 浜松市中央区（2024年1月に区割り変更により出現）のように、対象期間中に新規に市区町村ができたために新たにファイルができたところもある。


# まとめ
地図XMLファイル名の変遷を調べました。約2,000のファイルのうち、87件程度が消えたり出たりしています。市町村統合や、法務局変更の影響を受けていると考えられるので、関係データの新旧比較をするときには注意が必要だと思います。

# その他
本件記事についてはなるべく正確になるように努めていますが、誤りがある可能性があります。（本件は個人のためのメモであり、この情報を参考にして生じた直接的又は間接的な損害・損失等について、一切の責任を負いかねます。）

# 参考
https://front.geospatial.jp/

https://github.com/ubukawa/chizuxml-list

# 謝辞
地図ＸＭＬの提供をしている法務省とＧ空間情報センターに感謝します。