富山県のホタルイカの身投げは、産卵行動や環境要因と密接に関連する現象であり、 その量の分析と予測は、生態学的理解の深化や気候変動の指標、さらに地域観光や漁 業資源管理における重要な意義を持っている。
1 過去のホタルイカ身投げデータと、その日の天気、気温、月齢、風などのデータを収集
2 身投げが起きやすい条件の分析、学習
3 ホタルイカの身投げ量の予測モデルの作成
4 身投げ量の予報を提供するWebサイトの作成
1. ホタルイカ掲示板というサイト(https://rara.jp/hotaruika-toyama/)の口コミからスクレイピングで口コミ内容を取得
2. その口コミ内容から、ホタルイカの身投げ量を5段階に分類し、0〜4の整数で数値化
3. その値の日毎の平均をその日の身投げ量とし、身投げ量、日付をjsonファイルに保存
2015年〜2025年まで10年分、それぞれ2〜5月の4ヶ月分の約1300日分のデータを収集した。過去の身投げ量以外の以下に記載したデータを収集するときは、この日付の日のデータを収集する。
気象庁の公式サイト(https://www.data.jma.go.jp/risk/obsdl/#)に、過去の天気、風、気温、降水量などのデータがあり、指定した場所、期間を指定すると、過去の天気などを CSV 形式でダウンロードできる.それをjsonデータに変換する。
API経由で潮位、潮の種類などが取得でき、その取得したデータをjsonファイルに保存する。(https://tide736.net/#google_vignette)
月齢は、西暦と日付から計算できる.日付ごとの月齢をjsonファイルにまとめる。
これらのjsonファイルを日付をキーにして一つのjsonファイルにまとめる。
目的変数(予測したい値):身投げ量(avg_amount)
説明変数(目的変数に影響を与える値):下記特徴量
データ分割:1220 日分のデータのうち85%を学習用、残りの15%をテスト用として使用
年、月、日、曜日、年の第何週
月齢は 0~29.53 日で周期的に変化するため、sin と cos で周期性を表現。
月齢 sin は「上弦の月」で最大(1)、「下弦の月」で最小(-1)。
月齢 cos は「新月」で最大(1)、満月で最小(-1)。
時間帯別(10-13 時、14-17 時、18-21 時、22-0 時、1-4 時)の平均気温も算出。
時間帯別の降水量合計も算出。降水の有無をバイナリ変数で表現。
潮型(若潮、長潮、小潮、中潮、大潮)を数値変換。
夜間(21 時~5 時)の満潮・干潮高(平均 / 最大 / 最小)。
気象・潮汐変数の 1 日前、2 日前の値。
目的変数(avg_amount)の 1 日前、2 日前、3 日間平均。
・平均二乗誤差 (MSE): 0.0179
・平均絶対誤差 (MAE): 0.0990
・決定係数 (R²): 0.4191
Webサイトのリポジトリ:https://github.com/yuchi1128/hotaruika-bakuwaki-forecast
・ホタルイカの身投げ量を 1 週間後まで予測して表示
・その日の天気や月齢、潮の満ち引きなどの情報を表示
・ホタルイカ掬いでの注意点を掲載
・口コミ機能(good・bad、返信)
・フロントエンド:TypeScript(Next.js)
・バックエンド:Go
・データベース:PostgreSQL
・インフラ:Docker
・ホスティング:GCP(Cloud Run)