この地図は何をしているか
日本列島の地形・地質・火山・温泉を、公開データをそのまま重ねて表示します。 値を推定して埋めることはしません。取れなかった項目は空欄のまま出します。
データ出典と利用条件
| 提供元 | 使っているもの | 利用条件 |
|---|---|---|
| 国土地理院 | 地図タイル・陰影起伏・色別標高・標高タイル | 国土地理院コンテンツ利用規約 |
| 産業技術総合研究所 地質調査総合センター | 20万分の1日本シームレス地質図V2(タイル・凡例 API) | 政府標準利用規約(第2.0版) |
| 気象庁 | 活火山の一覧と位置 | 気象庁ホームページの利用について |
| 国土交通省 国土数値情報 | 観光資源データ(P12, 2014年版)から抽出した温泉点 | 国土数値情報 利用約款 |
| 国土交通省 国土数値情報(河川) | 河川データ(W05)。地図表示は1級河川の直轄区間、距離は全区間 | 国土数値情報 利用約款(非商用限定) |
| 国土交通省 国土数値情報(湖沼) | 湖沼データ(W09, 2005年版) | 国土数値情報 利用約款 |
| 環境省 | 温泉利用状況(都道府県別の源泉数・温度別源泉数・湧出量) | 環境省ホームページ利用規約 |
| 環境省 生物多様性センター | 第5回自然環境保全基礎調査 植生調査(3次メッシュ・植生自然度) | 公共データ利用規約(第1.0版) PDL1.0 |
| Wikidata | 座標のある日本の温泉(第二の点レイヤー)と、入浴施設(第三の点レイヤー・温泉とは限らない) | CC0 1.0 |
| 日本語版 Wikipedia | 都道府県別「○○の温泉」カテゴリの記事(第四の点レイヤー)と、座標が無くて地図に出せない温泉の一覧 | CC BY-SA 4.0 |
加工の方法
活火山(111)
気象庁の火山一覧 JSON は 120 件ありますが、気象庁が公表している活火山の数は 111 です。中身を数えると、
120 = 111(活火山) + 3(座標を持たない一覧表示用の項目) + 6(親火山の火口の細分)
で公表値と合います。細分の 6 件は「草津白根山(湯釜付近)」のように親火山の名前で始まるもので、 名簿自身から判定できます。この分解が崩れたらデータ生成は止まります。
温泉(1,320 点)
国土数値情報の観光資源データ(P12, 2014年版)の全国 17,258 点から、種別名称が「温泉」のもの、または観光資源分類コードが 3(温泉・健康)のものを抜き出しました。分類 3 は「温泉・健康」であって温泉そのものの分類ではないため、 名称に「温泉」「湯」を含むかどうかを属性として持たせ、絞り込みは利用者に委ねています (1,320 点中 977 点が該当)。
各点には、国土地理院の標高タイルから求めた標高・傾斜・斜面方位・局所起伏と、 シームレス地質図V2の凡例 API から引いた地質、 気象庁の活火山との距離を付けています。
河川と湖沼
河川は国土数値情報の河川データ(W05)を全国 47 県分ぶん読み、全 286,437 区間・15,459,553 頂点から各温泉までの距離を測っています。 ただし地図に描いているのは 1 級河川の直轄区間(11,507 区間)だけです。 1 級河川すべて(72,141 区間・332 万頂点)は、頂点を間引いても配れる大きさにならないためです。 つまり「地図に線が無いところにも、距離を測った川はあります」。
河川データ(W05)の利用条件は非商用限定で、 国土数値情報の他のデータ(商用可)とは異なります。この地図は非営利の教育・研究用途です。 湖沼データ(W09, 2005年版)は 556 面すべてを載せています。
どちらも表示用に Douglas-Peucker 法で頂点を間引いています(許容 0.0005 度 ≒ 45 m)。距離の計算には間引く前のデータを使っています。
温泉の点を 2 つの層に分けている
地図の温泉には出所の違う 2 つの層があります。
| 層 | 出所 | 性格 | 統計に使うか |
|---|---|---|---|
| 温泉(国土数値情報) | 観光資源データ P12・利用約款 | 行政が集めた資料の統合 | 使う |
| 温泉(Wikidata) | Wikidata・CC0 | 記事が書かれた温泉が載っている。悉皆調査ではない | 使わない |
Wikidata の層を足したのは、地図の被覆を広げるためです。 ただし統計には使いません。対照群は同じ観光資源データの中から選ぶことで 「人が登録した場所」という偏りを打ち消しており、出所の違う点を混ぜるとその揃えが崩れるからです。 重なる点も消していません(出所が違うので両方残しています)。
入浴施設の層(第三の層)
利用者から「ほったらかし温泉が地図に無い」と指摘があり、調べたところ二つの出典それぞれで別の理由で入っていませんでした。 観光資源データ(2014 年版)には全国 17,258 点のどこにもなく、 Wikidata には項目(Q11277778・座標あり・山梨市)があるもののinstance of が「日帰り入浴施設」で、上位クラスを 33 件たどっても 「温泉(Q177380)」に当たりません。つまり分類の食い違いによる取りこぼしです。
同じ理由で外れる項目は、日本国内・座標つきの「入浴施設」で 108 件、 うち 78 件が名前に「温泉」を含むか「湯」で終わります。 これを第三の層として足しました。内訳は銭湯 39・日帰り入浴施設 24・ スーパー銭湯 9・公衆浴場 9 などです。
この層は温泉の層ではありません。銭湯や公衆浴場も同じ分類に入るので、 温泉であることの証明にはなりません。だから温泉の 2 層とは混ぜず、色も切替も分けています。統計(温泉と地理環境)にも使いません——対照群は観光資源データの中から 選んでおり、出所の違う点を混ぜるとその揃えが壊れるためです。 既存の層と場所が重なる点(観光資源データと 14 件・Wikidata の温泉と 14 件)も消していません。
Wikipedia の温泉記事(第四の層)と、地図に出せない温泉
「山中湖温泉・大田区の黒湯温泉が地図に無い。Wikipedia から辿れないか」という指摘を受けて 実測しました。47 都道府県の「○○の温泉」カテゴリ直下の記事は 1,862 件、 そのうち座標があるのは 1,344 件(記事の座標 1,152 / Wikidata 192)です。 これを第四の層にしました。既存 3 層から 300 m 以上離れた新しい場所は 174 件で、うち 165 件は記事にしか座標がありません——Wikidata だけを見ていては取れない場所です。
この層も温泉の一覧ではありません。都道府県の温泉カテゴリには温泉のある施設 (遊園地・公園・国民宿舎・パーキングエリアなど)も入ります。座標の精度もまちまちで、 温泉街の中心を指すものと建物を指すものが混ざります。利用条件は CC BY-SA 4.0 で、 他の層(CC0・政府の利用約款)とは違うため出典を別に立てています。統計には使いません。
そして、辿っても載せられないものがあります。記事に座標が無いものが 518 件、Wikidata で「温泉」に分類され国が日本なのに座標が無い項目が 432 件あります。指摘の 2 件はどちらもこちらでした (大田区の黒湯温泉 Q671405 は分類が「温泉」で条件に合うのに座標が無く、 山中湖温泉 Q108702377 は項目が在るのに座標が無く、記事とのサイトリンクもありません)。 緯度経度を作れば地図には出せますが、それは架空のデータを作ることなので名前の一覧として出しています。
まわり 5・10・25・50 km にあるもの
温泉の詳細には、その点から半径 5・10・25・50 km の範囲にある活火山・温泉(国土数値情報/Wikidata)・湖沼の数と、植生自然度の内訳を出しています(設計書 §56「周辺環境分析」)。 距離は球面の大円距離で、湖沼は中心ではなく面の縁までで測ります (中心で測ると大きな湖が遠く出るため)。自分自身は数えません。
河川と標高の起伏は数えていません。河川は全国 286,437 区間あり、 全点について半径内の本数を数える計算は一度 CPU 51 分で終わらなかった経路に戻ります。 起伏は半径 50 km を標高タイルで覆うと 1 点あたり 1 億画素を超えます。 最寄りの河川までの距離は詳細の表にあります。
数は温泉の点ファイルに入れず、点を開いたときに初めて読む別ファイルにしています。 候補を格子で絞ってから数えているので、その答えが総当たりと完全に一致することを 実データで確かめています(メッシュは全 368,727 件と照合)。
温泉を比べる
温泉の詳細の「この温泉を別の温泉と比べる」を押し、地図で別の温泉をクリックすると、 2 つを並べた表が出ます(設計書 §57)。標高・火山距離・河川距離・湖沼距離・傾斜・地質・植生自然度・ まわり 10 km の数を並べ、差(B−A)は両方に数があるときだけ出します。
泉温・湧出量・pH・泉質は、比べる画面でも値を作っていません。地点ごとの公開データが無いためで、両方の列に「公開データに無い」と出します。 代わりに所在都道府県の集計(源泉の数・42℃以上の割合)を、この温泉の値ではない参考として 表の外に出しています。所在都道府県を属性に持たない点(Wikipedia の層など)では出しません。
地域を比べる
設計書 §58 の「八ヶ岳・富士山・箱根・草津・別府などを比較する」は、地域の境界を定めていません。 境界を推測で描かず、基準点から半径 10 km / 25 km の円を地域として並べて比べます。基準点は設計書の語に合う Wikidata の項目で、 気象庁の活火山 111 を基準点に足すこともできます。
気象庁の活火山には「八ヶ岳」が無く、山脈の項目を基準点にしたので、最寄りの活火山(横岳)までは 13.7 km あります。 点の数は出所ごとに数えて足しません。温泉の要約は国土数値情報の点だけで取り、その点が 5 つ未満の地域 (別府は半径 25 km で 3 点)には「参考程度」と注記しています。
AI(ベースラインの比較)
設計書 Phase 4〜5 の AI は、別のページにまとめました。地点ごとの泉温・湧出量・泉質の公開データが無いため、 当てる問いを「観光資源データに登録された地点が温泉の分類か」に置き換えています。 温泉の存在を当てるモデルではありません。合否はモデルを学習させる前に書いて積み、 Logistic Regression・Random Forest・XGBoost を都道府県ごとに分けた検証で比べました。 全国の「AI 温泉ポテンシャル」地図は、その場所で温泉が得られるかのように読まれるため塗っていません。
温泉の詳細には「AI の見立て」として、その温泉の都道府県を学習に使っていないモデルの出力(0〜1・確率ではない)と、 出力を押し上げた・押し下げた特徴量(SHAP の寄与)を出しています。学習に使ったモデルで説明すると、点を覚えた値になるためです。
設計書 Phase 6 の CNN(地点を中心にした標高タイルの 64 × 64 画素を見せる)も、合否を先に書いてから試しました。 画像と表を合わせた CNN は Random Forest を上回らなかったので、事前に決めたとおりアプリには載せず、 結果の数字だけを AI のページに出しています。
重なった点の選び方
出所の違う層の点が同じ位置に重なっていると、クリックしたときに上に描かれた点しか選べませんでした。 いまはクリックした位置の近くに点が 2 つ以上あれば一覧を出して選んでもらいます(どの層も優先しません。近い順に並び、層の色と名前を添えています)。温泉を比べるときに相手を選ぶ場合も同じです。 一覧から選んだ点の詳細からは、一覧に戻れます。
植生
環境省 生物多様性センターの第5回自然環境保全基礎調査 植生調査の 3 次メッシュデータ(約 1 km 四方・全国 368,727 メッシュ)を使っています。 各メッシュに代表する群落コードが 1 つ付いており、群落表(898 行)を引くと植生自然度 1〜10(1 = 市街地、10 = 自然草原)が定まります。 使われている群落コード 579 種はすべて群落表にあり、自然度の欠測はありません。
調査は 1992〜1996 年のものです。いまの土地被覆とは違いうるうえ、 1 km 四方を 1 つの区分で代表しているので、温泉のすぐ足元の植生とは限りません。 地図には面として描いていません(368,727 面は配れる大きさにならないため)。 温泉をクリックしたときの詳細と、統計の軸として使っています。
地形断面
地図に線を引くと、その区間の標高断面を描きます。標高は等高線と同じ 国土地理院の標高タイル(dem_png)をその場で読んだもので、 線に沿って大円上を等間隔に刻み、その点が入る画素の値をそのまま使います (周りの画素と混ぜません。混ぜると元データに無い標高が図に出ます)。 標高の無い画素とタイルの取れない区間は線を切ってあります。
断面図は縦を引き伸ばして描いています。何倍に伸ばしたかを図の下に必ず出します —— 倍率を言わずに出すと、実際よりずっと険しい地形に見えるためです。 「上り・下りの合計」は刻みの細かさで変わる量なので、 そのことも併記しています(粗く刻むと小さく、1 画素より細かく刻んでも頭打ちになります)。 点の数には上限(800)があるので、長い線では 1 画素より粗く刻みます。その場合は画面にそう出ます。
この標高が確からしいかは、別の出所と突き合わせて測りました。国土地理院の標高 API(1m/5m のレーザ測量に基づく別経路)とデモ地域の 26 点で比べると、 差は中央値 3.05 m・最大 10.32 mです。 山頂では、Wikidata(CC0)の座標と公表標高に対し、周囲 ±25 画素の最大値が 富士山 -3.2 m・北岳 -2.02 m の差でした。 元データの刻みが違うので差は出ますが、桁の違う食い違いはありません。
この断面は地形を見るためのものです。掘削の可否や温泉の有無を示すものではありません。
被覆の穴
この温泉点は観光地点等名簿の提出状況に依存するため、分布に偏りがあります。 福島県・東京都・富山県・福井県・愛知県・大阪府・広島県・香川県・熊本県・宮崎県の10 都府県には 1 点もありません。 「点が無い=温泉が無い」ではありません。
点が源泉の位置とは限らない
温泉点のうち 23 件は観光資源台帳から採ったもので、21 件(91%)は住所が市町村どまりです。 これらは温泉郷を 1 点で代表しており、点の位置が源泉と離れることがあります (例: 登別温泉の点は市街地、別府温泉郷の点は別府駅前にあります)。 残る 1,287 件は個別施設で、全件に住所があり 53% は番地まで入っています。
なお、住所と行政区域コードの整合は全 1,320 点で確かめました。食い違いは 1 点だけで、 ほかの 3 点は「金ヶ崎町 / 金ケ崎町」の表記差でした。
見つからなかったデータ
温泉の泉質・泉温・湧出量を地点ごとに載せた全国の公開データを探しましたが、 次のとおり見つかりませんでした(2026-09-07 時点の調査)。
| 探した先 | 結果 |
|---|---|
| 国土数値情報(全 157 データセット) | 温泉のデータセットは無い |
| 環境省 温泉に関するデータ | 都道府県別の集計 PDF のみ(源泉総数・温度別源泉数・湧出量)。地点別は無い。 この集計は読み取って温泉の統計に載せた |
OpenStreetMap natural=hot_spring | 全国 238 点。temperature タグは 0 件 |
OpenStreetMap amenity=public_bath ほか | 全国 5,803 件で被覆は広い。ただし源泉ではなく入浴施設であり、 ODbL の継承条件が政府標準利用規約のデータと混ざるため採らなかった |
この地図でしていないこと
- まだ知られていない温泉を「予測」すること
- 推定した値を実データとして表示すること
- 噴火警戒レベルなど、刻々変わる情報を出すこと
作り方
地図は MapLibre GL JS、外側は Next.js の静的書き出しです。サーバ側の処理はひとつもありません。 等高線は事前に作ったデータではなく、表示範囲の標高タイルをその場で読んで marching squares で引いています。標高タイルの読み方は Python と TypeScript の二つで実装し、 実タイル 8 枚・524,288 画素すべてで一致することを検査しています。