町丁目別の人口を落とした地図を作ろうとして、最初につまずくのはたいてい同じ場所です。数字のCSVは取れたのに、その町丁目の形がどこにも無い。数字と形は別のファイルとして配られているからです。
この2つを配っているのが、e-Stat(政府統計の総合窓口)の統計GISです。現在の正式な名称は「統計地理情報システム」で、入口が3つに分かれています。どれを開くかで手に入るものが違うので、名前だけ聞いて開くと目的の画面にたどり着けません。
この記事では、統計GISの3つの入口を整理したうえで、境界データを実際にダウンロードして中身を開き、何が入っているか、統計データとどう結合するかを確認します。商圏データの集め方から出店判断までの全体像は商圏分析のやり方 完全ガイドにまとめています。
統計GISの入口はjSTAT MAP・統計データダウンロード・境界データダウンロードの3つです。数字と形は別ファイルで、つなぐ鍵はKEY_CODE。ただし境界データの属性表には人口と世帯数、そして代表点の経度・緯度が最初から入っているため、小地域の人口を円で合算するだけなら境界データ1本で足りる場面があります。
- 「統計GIS」の現在の名称は統計地理情報システム。入口は jSTAT MAP/統計データダウンロード/境界データダウンロード の3つ
- 統計データ側には「境界データと結合できるコード(KEY_CODE)」が追加されている、とe-Statが明記している
- 境界データの実体はShapefile 4点セット(.shp / .shx / .dbf / .prj)。文字コードを示す .cpg は入っていない
- 属性表(.dbf)は29列。JINKO(人口)・SETAI(世帯数)と、X_CODE(経度)・Y_CODE(緯度)の代表点が入っている
- 座標系は2択。緯度経度(JGD2000・度)か平面直角座標系(メートル)。距離や面積を自分で計算するなら後者
- KEY_CODEは桁数が一定ではない(実測で11桁と9桁が混在)。数値ではなく文字列として扱う
統計GISは3つの入口に分かれている
e-Statの統計地理情報システムのページは、提供しているものを次のように書いています。
「・各種統計データを地図上に表示し、視覚的に統計を把握できる地理情報システムとして「地図で見る統計(jSTAT MAP)」」「・「地図で見る統計(jSTAT MAP)」に登録されている小地域又は地域メッシュ統計などの統計データ及び境界データ を提供しています。」
ここから入口が3つに分岐します。
| 入口 | e-Statの説明(原文) | 向いている用途 |
|---|---|---|
| 地図で見る統計(jSTAT MAP) | 「誰でも使える地理情報システムです。統計地図を作成する他に、利用者のニーズに沿った地域分析が可能となるようなさまざまな機能を提供しています。」 | 画面上で見て、そのまま資料に貼る |
| 統計データダウンロード | 「地図で見る統計(jSTAT MAP)に登録されている統計データをダウンロードすることができます。境界データと結合できるコード(KEY_CODE)を追加しています。」 | 自分で集計・加工する |
| 境界データダウンロード | 「地図で見る統計(jSTAT MAP)に登録されている境界データをダウンロードすることができます。」 | 地図上に自分で描く/距離計算する |
3つとも、収録されているデータの範囲は同じ(jSTAT MAPに登録されているもの)です。違うのは持ち出せる形だけです。jSTAT MAPの使い方で完結する作業なら、ダウンロードは不要です。
もう1点、ログインまわりに注意書きがあります。ページには「大文字アルファベットで始まる旧アカウントユーザにつきましては、2024年7月以降jSTAT MAPにログインできません。新アカウントを作成し、ユーザデータ移行を行なってください。」と掲示されています。数年前に作ったアカウントでログインできない場合は、これに当たっている可能性があります。
なお、ログインせずに使える試行的な機能もあります。「簡単に地図で見る」は「jSTAT MAPにログインせず、統計グラフ地図表示機能のみ」で、国勢調査と経済センサスについて項目を選ぶだけで統計グラフ地図が作れるとされています。ただしe-Stat自身が「※以下の機能は試行的提供のため、アクセス数の状況により予告なく停止する可能性があります。」と注記しているので、業務の手順書に組み込むのは避けたほうが安全です。
数字と形をつなぐ鍵がKEY_CODE
統計データダウンロードの説明にある「境界データと結合できるコード(KEY_CODE)を追加しています」という一文が、この仕組みの要です。
統計データ側のCSVにも、境界データ側の属性表にも、同じKEY_CODEが入っています。表計算ソフトのVLOOKUPでもデータベースのJOINでも、このコードを鍵にすれば数字と形が結び付きます。市区町村名や町丁目名で結合しようとしないことが最初の分かれ目です。同じ町名が別の市区町村に存在しますし、表記ゆれもあります。
実際に令和2年国勢調査の小地域境界データ(東京都千代田区)を取得して属性表を開くと、KEY_CODEは次の構造になっていました。
| 列 | 値(先頭レコード) | 意味 |
|---|---|---|
| KEY_CODE | 13101001001 | 結合用のコード。下の3列を連結したもの |
| PREF | 13 | 都道府県コード(東京都) |
| CITY | 101 | 市区町村コード(千代田区) |
| S_AREA | 001001 | 小地域のコード |
| PREF_NAME / CITY_NAME / S_NAME | 東京都/千代田区/丸の内一丁目 | 名称 |
PREFとCITYを合わせた5桁が、いわゆる全国地方公共団体コード(の上5桁)に対応します。町丁目の人口を市区町村単位で集計し直したいときは、KEY_CODEの左5桁で切ればまとめられます。
境界データを開くと何が入っているか
境界データをダウンロードするとZIPで届きます。令和2年国勢調査・小地域・千代田区・世界測地系緯度経度・Shapefile形式で取得したところ、ZIPは40,604バイトで、中身は次の4ファイルでした。
| ファイル | 役割 |
|---|---|
| r2ka13101.shp | 図形(ポリゴン)の本体 |
| r2ka13101.shx | 図形へのインデックス |
| r2ka13101.dbf | 属性表。名称・コード・人口などがここに入る |
| r2ka13101.prj | 座標系の定義 |
ファイル名の r2 は令和2年、13101 は千代田区の市区町村コードです。この4点は1セットで動くので、1つでも欠けるとGISソフトで開けません。ZIPから取り出すときに .shp だけコピーしても地図には出ません。
ここで1つ、実務で効いてくる欠落があります。文字コードを示す .cpg ファイルが入っていません。属性表の日本語(都道府県名・町丁目名)が何の文字コードで書かれているかは、ファイル側からは分かりません。実測ではcp932(Shift_JIS系)で正しく読めました。メッシュ人口のCSVと同じ作法です。
千代田区の小地域境界データは116レコード(町丁字等が116区画)、属性は29列でした。JINKO列を全件合計すると66,680人、SETAI列の合計は37,011世帯です(2026年9月5日にダウンロードした令和2年国勢調査 小地域 境界データを編集部が集計)。
人口と世帯数は境界データにも入っている
属性表29列のうち、商圏分析で直接使えるのは次の列です。
| 列名 | 先頭レコードの値 | 内容 |
|---|---|---|
| S_NAME | 丸の内一丁目 | 小地域の名称 |
| JINKO | 10 | 人口 |
| SETAI | 10 | 世帯数 |
| AREA | 379196.000 | 面積 |
| PERIMETER | 3248.984 | 周長 |
| X_CODE | 139.765963 | 代表点の経度 |
| Y_CODE | 35.682153 | 代表点の緯度 |
| KCODE1 | 0010-01 | 小地域の内部コード |
ここが、この記事でいちばん実務に効く点です。境界データの属性表には、人口と世帯数が最初から入っています。小地域の人口を知りたいだけなら、統計データダウンロードと結合する工程が要らない場面があります。
さらにX_CODE・Y_CODEに代表点の経度と緯度が入っています。これが入っていると、GISソフトを使わずに商圏の集計ができます。店舗の座標から各小地域の代表点までの距離を計算し、半径の内側にある小地域の人口を足すだけです。メッシュ人口の記事で「中心点法」と呼んでいる方法を、小地域でそのまま実行できます。
ただし注意点が1つあります。X_CODEが経度、Y_CODEが緯度です。日本の緯度経度は「北緯35度・東経139度」の順で読み上げるので、緯度が先だと思ってXに緯度を入れると、計算上の位置がアフリカ沖に飛びます。列名のXとYはあくまで地図上の横軸・縦軸で、読み上げの順番とは逆になります。住所を緯度経度に変換するときも同じ取り違えが起きます。
面積を自分で計算する必要も基本的にはありません。AREA列に面積が入っています(丸の内一丁目で379,196)。ポリゴンから面積を計算するには次の節の座標系の話が絡むので、既に入っている値を使うほうが確実です。
座標系は2択。目的で選び分ける
境界データのダウンロード時には座標系を選びます。同じ千代田区のデータを両方取得して .prj の中身を確認したところ、次のように分かれていました。
| 選択 | .prj の定義(実測) | 単位 | 向いている用途 |
|---|---|---|---|
| 世界測地系 緯度経度 | GEOGCS["GCS_JGD_2000", DATUM["D_JGD_2000", SPHEROID["GRS_1980", ...]]] / UNIT["Degree", ...] | 度 | Webの地図に重ねる。他の緯度経度データと合わせる |
| 平面直角座標系 | PROJCS["JGD_2000_Japan_Zone_9", ... PROJECTION["Transverse_Mercator"], PARAMETER["Central_Meridian", 139.8333333333333], PARAMETER["Scale_Factor", 0.9999] ...] / UNIT["Meter", 1.0] | メートル | 距離・面積を自分で計算する |
どちらも測地系はJGD2000(日本測地系2000)で、違うのは投影の有無です。緯度経度のほうは単位が「度」なので、座標の引き算をしてもメートルにはなりません。1度の長さは緯度によって変わりますし、東西方向と南北方向でも違います。距離を測るつもりで度のまま計算すると、南北に伸びた歪んだ商圏ができます。
平面直角座標系のほうは単位がメートルなので、座標の差がそのまま距離になります。ただし日本を19の系に分けたうちの1つを選ぶ形で、実測したファイルは第9系(Japan Zone 9・中央経線139度50分)でした。都県をまたぐと系が変わるため、広域を1枚で扱うときは緯度経度を選んで、距離計算は別途行うほうが素直です。
結合でつまずく3つの点
実際にKEY_CODEで結合するときに引っかかりやすいのは次の3点です。
1つめ、KEY_CODEの桁数は一定ではありません。実測した千代田区のデータでは、丁目のある町(丸の内一丁目)が 13101001001 の11桁、丁目のない町(五番町)が 131010580 の9桁でした。属性の定義上は11文字の文字列型ですが、実際に入っている値の長さは揃っていません。数値として読み込むと先頭の0が消えたり、桁数の違いを吸収できずに結合が外れたりします。読み込みの段階で文字列型を指定してください。
2つめ、数字と形の年次を合わせます。境界データにも統計データにも調査年次があります。町丁目は合併や区画整理で変わるので、令和2年の境界データに平成27年の統計データを当てると、対応しないコードが残ります。ファイル名の r2 のような接頭辞で年次を確認してから結合してください。
3つめ、文字コードは指定して読みます。前述のとおり .cpg が同梱されないので、自動判別に任せると日本語が化けます。名称列を目視で確認する習慣を付けておくと、化けたまま資料に載せる事故を防げます。
なお、統計GISで手に入るのは国勢調査や経済センサスの小地域・メッシュのデータです。国土数値情報や自治体のオープンデータとは配布元も利用条件も別なので、資料に出典を書くときは混ぜないでください。政府統計は出典を明記すれば商用の資料にも使えますが、その明記の中身は「どの調査の何年のデータか」です。商圏人口の算出まで進めるなら、この年次の記載が信頼性のほとんどを決めます。
よくある質問
Q. 統計GISと jSTAT MAP は同じものですか。
A. 同じではありません。統計GIS(統計地理情報システム)が全体の名称で、その中に「地図で見る統計(jSTAT MAP)」「統計データダウンロード」「境界データダウンロード」の3つが含まれています。e-Statの説明では、jSTAT MAPは「各種統計データを地図上に表示し、視覚的に統計を把握できる地理情報システム」で、ダウンロードの2つは「地図で見る統計(jSTAT MAP)に登録されている小地域又は地域メッシュ統計などの統計データ及び境界データ」を提供するもの、と書き分けられています。
Q. 境界データをダウンロードすると何が入っていますか。
A. Shapefile形式で取得した場合、.shp(図形)・.shx(インデックス)・.dbf(属性表)・.prj(座標系定義)の4ファイルが1セットで入っています。編集部が2026年9月5日に令和2年国勢調査・小地域・東京都千代田区を取得したところ、ZIPは40,604バイト、ファイル名は r2ka13101 で統一されていました。文字コードを示す .cpg は同梱されていないため、属性表はcp932として読む必要があります。
Q. 境界データだけで人口は分かりますか。
A. 小地域の総人口と世帯数であれば分かります。実測した属性表にはJINKO(人口)とSETAI(世帯数)の列が含まれており、千代田区116レコードのJINKO合計は66,680人、SETAI合計は37,011世帯でした。ただし年齢別・男女別といった内訳は含まれていません。内訳が必要な場合は統計データダウンロード側を取得して、KEY_CODEで結合します。
Q. GISソフトが無くても使えますか。
A. 使える場面があります。属性表にX_CODE(経度)とY_CODE(緯度)の代表点座標が入っているため、店舗の座標との距離を計算して半径内の小地域を選び、人口を合算する方法なら表計算ソフトでも実行できます。ポリゴンを正確に切る面積按分を行う場合はGISが必要ですが、500m〜1km程度の商圏を扱うなら代表点による集計で足りることが多いです。
Q. 座標系はどちらを選べばよいですか。
A. Webの地図や他の緯度経度データと重ねるなら世界測地系の緯度経度、距離や面積を自分で計算するなら平面直角座標系です。実測した .prj では、前者がGEOGCS(JGD2000・単位は度)、後者がPROJCS(JGD_2000_Japan_Zone_9・Transverse Mercator・単位はメートル)でした。緯度経度のまま座標を引き算しても距離にはなりません。ただし平面直角座標系は日本を19の系に分けているため、都県をまたぐ広域では系の違いに注意が必要です。
Q. 結合がうまくいかないときは何を疑えばよいですか。
A. まずKEY_CODEの型です。実測では11桁と9桁が混在しており、数値型で読み込むと先頭の0が失われて一致しなくなります。文字列型を指定してください。次に年次です。境界データと統計データの調査年がずれていると、町丁目の再編分だけ対応が取れません。最後に文字コードで、cp932で読まないと名称が化けます。