町丁ポリゴンから町域ポリゴンを作ろう！

# 概要

日本の町丁データを[e-stat](https://www.e-stat.go.jp/)でダウンロード出来る。それはいいけど町丁データが細かすぎる場合がある。

例えば、渋谷１丁目、２丁目、３丁目の代わりに「渋谷」だけでいい場合があります。この場合があるからNightleyで町丁データから町域データを作りました。

画像１はグレーで町丁、青で町域が表示されます。

*画像１：町丁（グレー）と町域（青）*
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/282576/0da6a907-d423-d796-1945-ae2f608f3c3a.png)

町域データなら三宅１丁目、2丁目じゃなくて、全体の三宅で地理情報データを解析出来ます。

****注意！町域 ≠ 郵便番号エリア ****

# 町丁から町域に変化させる手順

残念ですけど町域の数字なんか全然ありません。そのため、手順がなかなか難しいです。町丁の名前を使う方法しかありません。都道府県によって町丁の名前システムがぜんぜん違うから変化スクリプトにルールと例外がいっぱいあります。

基本的に６つの表記があります。

1. 「丁目」
2. 「区」
3. 「号」
4. 「字」
5. 最後の数字
6. 「（例）」

表記ごとにルールを作りまして、QGISのField CalculatorにSQLを実行しました。

### 表記１：「丁目」
![Screen Shot 2020-10-26 at 12.31.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/282576/7b8e48fa-7584-8b1a-885e-e96dbadede1c.png)

上記は４つのルールの説明です。「丁目」の前と後の文字によって違うルールを作りました。

### 表記２：「区」
![Screen Shot 2020-10-26 at 12.53.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/282576/f9be2a1e-4c7d-da8e-d039-2c258bb9e565.png)

上記は４つのルールの説明です。「区」の前と後の文字によって違うルールを作りました。

### 表記３：「号」
![Screen Shot 2020-10-26 at 12.55.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/282576/b09e3bc1-60ca-6869-14a9-c0247dc80521.png)

上記は２つのルールの説明です。「号」の前の文字によって違うルールを作りました。

### 表記４：「字」
![Screen Shot 2020-10-26 at 12.57.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/282576/6a0e591f-45c8-9c8c-9e4b-568e58c53605.png)

上記は３つのルールの説明です。「字」の前と後の文字によって違うルールを作りました。

### 表記５：最後の数字
![Screen Shot 2020-10-26 at 12.59.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/282576/d29d4c1f-e83d-14e9-a845-add5199721b9.png)

上記は１つのルールの説明です。最後の文字は数字なら、消します。

### 表記６：「（例）」
![Screen Shot 2020-10-26 at 13.01.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/282576/b1709a3b-9204-accb-57d5-81f2a3af71a9.png)

上記は1つのルールの説明です。括弧の中に文字があれば、消します。

# 訂正
上記のルールを実行してからいろいろな問題が残りました。

市区町村によって、町丁の名前は数字が二つ以上あるかもしれません。

例えば：

```
惣高瀬町１, ２, ３
下方上畝１, ２, ３
```

その場合に数字とコンマを全て消します。

結果：

```
惣高瀬町
下方上畝
```

その後、町丁の名前の最後の残っている文字は下記リストが似合ったら、その文字消します。

```
・
,
、
（
第
```

# 例外
残念ながら上記の手順をするでも例外があります。一つずつに変更しなければなりません。

下記はルール実行の後例外の名前と変更された名前です。

-----------------------↓例外↓---------------------------------------↓変更↓--------------------------
![Screen Shot 2020-10-28 at 15.40.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/282576/a0275779-8c4f-b2b0-db60-698721d04303.png)

# 結果

青い線は町域と表示して、細くてグレー線は町丁と表示します。
![Screen Shot 2020-10-28 at 16.07.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/282576/8f4027e9-58fe-a8f2-e165-aca91394f882.png)

全ての結果は理想じゃありません。例えば町域が分離の場合があります。
![Screen Shot 2020-10-28 at 16.10.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/282576/e3bd72b6-37e6-cf85-9de7-2d1bfe74b941.png)

札幌でかなり細くて長い町丁があります。この種類の名前は`条`で終わります。`条`に関係ルールを実行しようとしたけど悪い結果がありました。`条`は町丁の名前のなかに最後だけじゃなくて色々な位置にあるから消したらナンセンスの名前が作られました。
![Screen Shot 2020-10-28 at 16.21.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/282576/06982a28-4f9c-bc37-c19b-08b642002bb8.png)

これは理想じゃないけど原因は町域の形だから仕方がありません。

# 結論
この手順は完璧じゃありません。気がつかない例外まだあるかもしれません。さらにQGISのSQLは複雑でした。でも町域ポリゴンが必要な場合、この手順は最高だと思います。