
e-Stat 国勢調査の町丁字等別境界データに含まれる87件の隙間ポリゴンを特定する
e-Stat の令和2年国勢調査 町丁字等別境界データは、全国約22万区画のポリゴンを収録した空間データの定番です。しかしこのデータには、定義書では想定されていない87件のレコードが含まれています。定義書は HCODE=8101 を「町丁字等」と定義していますが、KEY_CODE が都道府県コード(2桁)のみとなるケースについての記載はなく、補足説明にも言及がありません。
町丁字コードが不完全なため統計データとの結合ができず、空間結合やジオコーディングで意図しない集計ズレを引き起こす可能性があります。この記事では、SQLでこれらのレコードを特定し、その空間的な特徴を可視化します。
境界データの構造
町丁字等別境界データの各レコードには、ポリゴン(境界形状)とともに以下のフィールドが設定されています。
| フィールド | 内容 | 例 |
|---|---|---|
| KEY_CODE | 町丁字コード(PREF + KEYCODE2) | 13101001000 |
| KEYCODE2 | マッチング番号 | 101001000 |
| HCODE | 分類コード | 8101=町丁字等、8154=水面調査区 |
| PREF_NAME / CITY_NAME / S_NAME | 名称 | 東京都 / 千代田区 / 永田町 |
| JINKO / SETAI | 人口・世帯数 | 3056 / 2049 |
| AREA | 面積(㎡) | 523849.2 |
KEY_CODE は都道府県コード(2桁)と KEYCODE2 を連結した値で、統計データとのリンクキーになります。通常は9桁(大字・町)または11桁(字・丁目)です。
隙間ポリゴンの特定
HCODE=8101(町丁字等)のレコードのうち、KEY_CODE が都道府県コード(2桁)しかないものを抽出します。これらは KEYCODE2 が NULL のため、統計データと結合できません。
全87件が該当します。すべてのレコードで S_NAME(町丁字名称)が NULL、JINKO(人口)と SETAI(世帯数)が0です。S_AREA・KIHON1・KIHON2 もゼロ埋め(000000・0000・00)で、町丁字への帰属情報が一切ありません。
これらのレコードに共通する特徴をまとめます。
- KEY_CODE が都道府県コード(2桁)のみ。KEYCODE2 が NULL
- HCODE = 8101(町丁字等)。水面調査区(8154)ではない
- 人口0、世帯数0、名称なし。ただしジオメトリ(形状)は存在する
- S_AREA・KIHON1・KIHON2 がすべてゼロ埋め
市区町村別の分布
87件がどの市区町村に集中しているかを確認します。
那智勝浦町(12件)、塩竈市(8件)、長崎市(5件)が上位で、沿岸部・離島の市区町村に多い傾向があります。一方で、群馬県伊勢崎市・埼玉県新座市・栃木県小山市・川崎市多摩区といった内陸部の市区町村にも存在します。
グラフに示す通り38の市区町村にわたって分布しており、特定の地域だけの問題ではありません。
地図で確認する: 塩竈市の例
空間的に「隙間」であることを確認するため、8件が集中する宮城県塩竈市を地図で表示します。地図描画にはカラム名が正規化された stg_census_boundary テーブルを使います。赤色が隙間ポリゴン、青色が通常の町丁字ポリゴンです。
赤色の隙間ポリゴンが、青色の通常ポリゴンの間を埋めるように配置されていることがわかります。通常ポリゴンとの重複はほぼありません(境界線の接触を除く)。
これらの隙間ポリゴンは、町丁字等の調査区に含まれなかった残余領域と考えられます。沿岸部では海岸線と町丁字境界の間、内陸部では道路や河川沿いの空間に対応するケースが見られます。
面積の分布
87件の面積は一様ではありません。元データの AREA フィールド(図郭から算出された面積)で分布を確認します。
大半は1万㎡以下ですが、高知県須崎市のように1,000万㎡(約10km²)に達するものもあり、小さな町丁字よりも広い面積を持つケースがあります。面積の大きいものは、市区町村の沿岸部や離島全体を覆うような残余領域です。
用途に応じたフィルタリング
隙間ポリゴンを含めるべきかどうかは、分析の目的によって異なります。
町丁字等の統計データと結合する場合は、KEYCODE2 が NULL のレコードを除外する必要があります。
一方、市区町村の空間カバレッジを正確に把握したい場合や、ポリゴン間に隙間がないことを前提とした面積計算を行う場合は、隙間ポリゴンを含めたほうが適切です。
隙間ポリゴンが影響する処理
隙間ポリゴンの存在を意識しないと、以下の処理で想定外の結果が生じることがあります。
- 空間結合(Spatial Join): ポイントデータが隙間ポリゴンにヒットし、町丁字名・人口が NULL になる
- 統計データとのリンク: KEY_CODE で結合すると、都道府県単位のレコードが意図せずマッチする
- 逆ジオコーディング: 座標から町丁字を特定する際に、隙間ポリゴンが返されて「該当なし」に見える
GIS実務への活用
この記事で確認したポイントは、以下の業務で役立ちます。
- 空間結合の設計: 隙間ポリゴンの存在を前提に、結合結果の NULL チェックや除外条件を検討する
- 境界データの品質検証: 新しい年次のデータを取得した際に、同様のレコードがないかチェックする
- 空間データのETLパイプライン: 目的に応じたフィルタリングをパイプラインに組み込む