diff --git a/README.md b/README.md index 1803a07..7b24953 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ A comprehensive real-time water level monitoring system for the Ping River Basin in Northern Thailand, covering Royal Irrigation Department (RID) stations from Chiang Dao to Nakhon Sawan with advanced data collection, storage, and visualization capabilities. +**Live dashboard: [water.buildfor.life](https://water.buildfor.life/)** — water levels, discharge, rainfall and 6/12/24 h flood forecasts for Chiang Mai, in English and Thai. Background: [Teaching a Model to See the Ping River Rise 13 Hours Early](https://buildfor.life/blog/ping-river-monitor/). + [![CI/CD](https://git.b4l.co.th/B4L/Northern-Thailand-Ping-River-Monitor/actions/workflows/ci.yml/badge.svg)](https://git.b4l.co.th/B4L/Northern-Thailand-Ping-River-Monitor/actions) [![Security](https://git.b4l.co.th/B4L/Northern-Thailand-Ping-River-Monitor/actions/workflows/security.yml/badge.svg)](https://git.b4l.co.th/B4L/Northern-Thailand-Ping-River-Monitor/actions) [![Documentation](https://git.b4l.co.th/B4L/Northern-Thailand-Ping-River-Monitor/actions/workflows/docs.yml/badge.svg)](https://git.b4l.co.th/B4L/Northern-Thailand-Ping-River-Monitor/actions) [![Python](https://img.shields.io/badge/Python-3.9+-blue.svg)](https://python.org) [![FastAPI](https://img.shields.io/badge/FastAPI-0.104+-green.svg)](https://fastapi.tiangolo.com) [![Docker](https://img.shields.io/badge/Docker-Ready-blue.svg)](https://docker.com) [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![Version](https://img.shields.io/badge/Version-v3.1.3-blue.svg)](https://git.b4l.co.th/B4L/Northern-Thailand-Ping-River-Monitor/releases) ## 🌟 Features diff --git a/docs/FLOOD_FORECASTING.md b/docs/FLOOD_FORECASTING.md index 04b642e..6de304d 100644 --- a/docs/FLOOD_FORECASTING.md +++ b/docs/FLOOD_FORECASTING.md @@ -68,7 +68,7 @@ environment variable, then `Config.get_database_config()` when `DB_TYPE` is 1. **PostgreSQL** (`_fetch_from_db`) — the primary path. NULL discharge stays NULL, which matters because the models must learn from the real missingness pattern. -2. **HTTP API** (`_fetch_from_api`, default `http://100.81.167.42:8000`) — a +2. **HTTP API** (`_fetch_from_api`, default `https://water.buildfor.life`) — a fallback for running off-server. **Caveat:** the public history endpoint backfills missing discharge with a synthetic rating-curve estimate, so this path is not equivalent to the DB path. It is flagged as diff --git a/src/ml/data.py b/src/ml/data.py index 5d43a16..d146580 100644 --- a/src/ml/data.py +++ b/src/ml/data.py @@ -23,7 +23,9 @@ from .features import UPSTREAM_LEADS logger = logging.getLogger(__name__) -DEFAULT_API_URL = "http://100.81.167.42:8000" +# Public dashboard. Override with --api-url for a local instance; the +# Tailscale address of the server is deliberately not the default here. +DEFAULT_API_URL = "https://water.buildfor.life" # Anchored to the repo root so training/prediction work from any CWD; a relative # path here silently produced 0 rows when the CLI ran outside the repo root. CACHE_DIR = Path(__file__).resolve().parents[2] / "models" / "cache"