# 釣果の公開場所に使う地理データ

KAI が公開用の広い場所名（湾・湖・海・水系）を判定するために、下記の公開データを加工して作成しています。利用者の住所や釣った座標は含みません。

## 出典・利用条件

| 配布ファイル | 出典 | 加工内容・利用条件 |
| --- | --- | --- |
| [bays.json](bays.json) | [© OpenStreetMap contributors](https://www.openstreetmap.org/copyright)、[Marine Regions の IHO 海域図 v3](https://www.marineregions.org/)、[国土地理院の地名検索](https://msearch.gsi.go.jp/) | 湾 31・湖 18。OSM に形のある湾・湖はその外周・内周を連結し簡略化。形の無い湾（三河湾・大阪湾・若狭湾・仙台湾・有明海・土佐湾・相模灘）は、公式の湾口の定義の岬と岬を結ぶ線で IHO の海を切り分けて作成。原データ・本加工データとも [ODbL 1.0](https://opendatacommons.org/licenses/odbl/1-0/) で提供。生成日 2026-10-25。 |
| [oceans.json](oceans.json) | [Marine Regions の IHO 海域図 v3](https://www.marineregions.org/)（[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)） | 日本域を切り出し、太平洋（北太平洋・フィリピン海）・日本海・東シナ海・オホーツク海・瀬戸内海の 5 つにまとめた。幅約 800m 未満の水路（利根川下流などの川筋）は除いた。あわせて、湾・湖を除き湾の岸沿いの細い切れ端（幅約 2km 未満）も外した「外海の芯」（`kind: open`）を収める。生成日 2026-10-25。 |
| [basins.json](basins.json) | [BasinATLAS v1.0](https://www.hydrosheds.org/hydroatlas), [国土交通省の一級水系一覧](https://www.mlit.go.jp/river/basic_info/jigyo_keikaku/gaiyou/seibi/index.html), [Wikidata](https://www.wikidata.org/wiki/Wikidata:Licensing) | BasinATLASのレベル8流域を水系単位に結合し、広い45流域の名称を照合・境界を簡略化。BasinATLASと本加工データは[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)、Wikidata構造化データはCC0。生成日 2026-10-24。 |

BasinATLAS の著者・論文: Linke, S. et al. (2019), *Global hydro-environmental sub-basin and river reach characteristics at high spatial resolution*. Scientific Data 6, 283. [doi:10.1038/s41597-019-0300-6](https://doi.org/10.1038/s41597-019-0300-6)。名称の照合・形状の結合・切り分け・簡略化はKAIによる加工であり、出典元による製品の推奨・判定結果の保証を意味しません。

## 判定の範囲

- 投稿時の判定は同梱データだけで行う。住所に都道府県が無く「県 + 海」の表示に県が要るときだけ、住所づくりと同じ逆ジオコーディングで県を引く。
- 順番は (1) 湾・湖 (2) 湾・湖に入らない海は「県 + 海の名前」（「静岡県 太平洋」） (3) 海から離れた川は大水系 (4) それ以外は県まで。湾の名前には県を付けない（東京湾は 3 都県にまたがる）。県が分からない海の地点（海外の住所など）は海の名前だけにせず、県・国への丸めに委ねる。
- 湾・湖・海は形の内部と、岸から 1,500m 以内。IHO の海岸線は港・埋立地で数百 m〜1.2km ずれるため、岸壁・堤防の釣果を県名に落とさない幅にした。複数の湾が近いときは最も近い湾。内陸から最寄りの海を選ぶ処理はしない。
- 湾と外海の両方に面した岬（伊良湖岬・御前崎・石廊崎など）は、湾と「外海の芯」のうち近い方の名前にする。外海の芯は湾の岸沿いの粗い海岸線の切れ端を外してあるので、湾の埋立地の岸壁は湾のまま。境目の釣り場 88 地点の確認表は `scripts/fishing-public-areas/edge-cases.json`（単体テストで毎回確認）。
- 湾は面積 100km² 以上、湖は 25km² 以上だけ。小さな入り江の名前は場所が絞れるため使わない（例: 舞鶴湾・敦賀湾は「若狭湾」）。浦賀水道は法令上の広義の東京湾に含まれるため「東京湾」、七尾北湾・南湾・西湾は「七尾湾」にまとめた。
- 形の無い湾は、公式の湾口の線（岬は OSM・国土地理院の位置）の両端を陸へ約 6km 延ばして海を切り、代表点（Marine Regions の地名の位置）を含む側を湾とする。公表面積の ±25%（公表値の無い仙台湾・土佐湾は妥当範囲）に入らなければ生成を止める。生成時の面積: 三河湾 507km²（公表 604）、大阪湾 1,405km²（1,450）、若狭湾 2,641km²（2,657）、仙台湾 1,802km²、有明海 1,622km²（約 1,700）、土佐湾 4,770km²、相模灘 2,044km²。相模灘は石廊崎〜伊豆大島〜剱崎の線で切り、相模湾（真鶴岬〜城ヶ島以北、OSM）を差し引いて、湘南沿いに残る細い切れ端を外した。三河湾は一般的な範囲（知多半島と渥美半島に囲まれた水域）とし、羽豆岬〜伊良湖岬で閉じて OSM の狭義の伊勢湾を差し引いた。
- 遠州灘・熊野灘・鹿島灘・玄界灘のように外海へ開いた灘は範囲の端が定まらないため名前を付けず、「県 + 海の名前」にする（相模灘は石廊崎・伊豆大島・剱崎で囲まれた範囲が定義されているので名前を付ける）。瀬戸内海の中の灘（播磨灘など）も現状は「県 瀬戸内海」。
- 水系は流域面積1,000km²以上、国交省の水系名と一致、Wikidataの河川位置が流域内、Wikidataの流域面積とBasinATLASの面積の比が0.75超1.25未満、一意に照合できたものだけ。小流域を集合したBasinATLASの`COAST=1`は採用しない。流域境界500m以内・未収録・独立した小河川は県までにする。
- 原形状を OSM 由来は 0.0003 度（約 30m）、組み立てた湾は 0.0005 度、海は 0.001 度で簡略化し、小数 6 桁に丸めた。表示用代表点は形状内の固定点であり、投稿位置と無関係。「県 + 海の名前」と同名の別水系（荒川水系）は代表点を出さない。

## 再生成

生成処理は `scripts/build-fishing-public-areas.py`、採用するデータ ID と湾口の定義・照合値は `scripts/fishing-public-areas.json`。Python の `pyshp` と `shapely` が必要。

### 湾・湖・海（bays.json / oceans.json）

1. IHO 海域図を Marine Regions の WFS から取得する: `https://geo.vliz.be/geoserver/MarineRegions/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=MarineRegions:iho&outputFormat=application/json&bbox=122,24,149,46&propertyName=name,mrgid,the_geom`
2. [Overpass API](https://overpass-api.de/) で湾・海峡と湖を形状つきで取得する。

```
[out:json][timeout:280][bbox:24,122,46,149];(relation["natural"~"^(bay|strait)$"];);out geom;
[out:json][timeout:270][bbox:24,122,46,149];(relation["natural"="water"]["water"~"^(lake|lagoon)$"]["name"];relation["natural"="water"]["name"~"湖$|浦$|沼$"];);out geom;
```

```sh
python3 scripts/build-fishing-public-areas.py \
  --iho /path/to/iho-jp.json \
  --osm-bays /path/to/osm-bays-geom.json \
  --osm-lakes /path/to/osm-lakes.json
```

### 水系（basins.json）

1. [BasinATLAS公式配布](https://figshare.com/ndownloader/files/20087237)のZIPから `BasinATLAS_v10_lev08.shp/.shx/.dbf/.prj` を取り出す（サイズが大きいためZIPのHTTP Range取得も可）。**HydroBASINSとは別製品**であり、本処理はCC BYのBasinATLASを入力とする。
2. 国交省HTMLを取得し、[Wikidata Query Service](https://query.wikidata.org/)で下記を実行しJSONで保存する。

```sparql
SELECT ?river ?riverLabel ?coord ?area WHERE {
  ?river wdt:P17 wd:Q17; wdt:P625 ?coord; wdt:P2053 ?area.
  FILTER(?area > 500)
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ja". }
}
```

```sh
python3 scripts/build-fishing-public-areas.py \
  --basins /path/to/BasinATLAS_v10_lev08.shp \
  --rivers /path/to/wikidata-rivers.json \
  --river-list /path/to/river-system-list.html
```

一級水系名の一覧は公式HTMLから自動抽出する。全国地名の手書き辞書、最寄り河川名の推測は採用しない。湾口の定義は公式資料の記述を `scripts/fishing-public-areas.json` に出典つきで書き、面積照合を通らなければ生成を止める。

## 入力ファイルの照合値（SHA-256）

| 入力 | 取得 | SHA-256 |
| --- | --- | --- |
| IHO 海域図（日本域） | 2026-10-25 | `4a457417d53302f1480e8feb417ddab2e6032c68afc98fbd5077461a6d8707ab` |
| OSM 湾・海峡 | 2026-10-25T02:34Z | `638342c8907aa8f29b8fdce88b4c5a0cbf04f4e09650c064174c5fb95cbbf6f2` |
| OSM 湖 | 2026-10-25T02:39Z | `d78a39cff90c51ea790a73ef1446a1f45a29446286983774cdbe738eb8dab7f3` |
| BasinATLAS_v10_lev08.shp | 2026-10-24 | `bcb58c63b2aee54b3fd772acabb929648f879f000235e122a72376fb9eb5046b` |
| 国交省HTML | 2026-10-24 | `1be89db46584881179b619cfbfb1057aa74212a352266228fb72c7a8be98d95b` |
| Wikidata JSON | 2026-10-24 | `3be384486734c0d1ab560949b478253205e987d4bd4ad0c570ad83bc1117fc62` |
