A weather monitoring web application for ice climbing conditions at Franklin Falls, Washington. Inspired by toorainy.com, but optimized for ice climbing conditions.
- Real-time Weather Data: Fetches current weather forecasts from the National Weather Service API
- Historical Tracking: Stores and displays weather data from the past 7 days
- Color-Coded Conditions: Easy-to-read table with color coding optimized for ice climbing:
- Temperature: Cold temps (below freezing) highlighted as good conditions
- Precipitation: Snow is good (builds ice), rain is bad (melts ice)
- Wind: Calm conditions preferred for climbing safety
- Automatic Updates: Background worker fetches fresh data every hour
- Single Entry Point: One command starts both the web server and data collector
- Python 3.7+
- pip
- Clone the repository:
git clone <repository-url>
cd Toowarm.con- Install dependencies:
pip install -r requirements.txtRun the main application (starts both web server and background collector):
python3 app.pyThe application will:
- Initialize the SQLite database
- Start collecting weather data immediately
- Continue fetching updates every hour
- Serve the web interface on
http://localhost:5000
Visit http://localhost:5000 in your web browser to see the weather conditions.
Individual components can also be run separately:
python3 franklin_falls_weather.py# Run once and exit
python3 weather_collector.py --once
# Run continuously with custom interval (in seconds)
python3 weather_collector.py --interval=1800 # 30 minutes
# Run continuously with default 1-hour interval
python3 weather_collector.py# View latest forecast
python3 view_weather_history.py latest
# View fetch history (last 10 by default)
python3 view_weather_history.py history
# View fetch history (custom limit)
python3 view_weather_history.py history 20
# View temperature trends (last 24 hours)
python3 view_weather_history.py trends
# View database statistics
python3 view_weather_history.py stats- app.py: Main entry point that runs both the Flask web server and weather collector
- models.py: SQLAlchemy database models for storing weather data
- franklin_falls_weather.py: Original simple weather fetcher (displays to console)
- weather_collector.py: Standalone background collector service
- view_weather_history.py: Command-line tool for viewing historical data
- templates/index.html: Web interface template
The application uses SQLite by default (franklin_falls_weather.db) but is designed to easily migrate to PostgreSQL in the future.
weather_forecasts table:
id: Primary keyfetched_at: Timestamp when data was collected (indexed)period_name: Forecast period (e.g., "Tonight", "Wednesday")temperature: Temperature valuetemperature_unit: F or Cwind_speed: Wind speed stringwind_direction: Wind directionshort_forecast: Brief forecast descriptiondetailed_forecast: Detailed forecast textgrid_id,grid_x,grid_y: NWS grid identifiers
The web interface uses color coding optimized for ice climbing conditions:
Temperature:
- Dark Green: ≤20°F (Excellent - cold enough for solid ice)
- Green: 21-32°F (Good - freezing temps)
- Yellow: 33-40°F (Marginal - ice may be soft)
- Red: >40°F (Poor - ice melting)
Conditions:
- Dark Green: Snow only (Excellent - builds ice)
- Light Green: Clear/Sunny (Good - stable conditions)
- Yellow: Mixed rain/snow (Marginal)
- Red: Rain (Poor - melts ice)
- Gray: Cloudy/Neutral
Wind:
- Dark Green: ≤5 mph (Excellent - calm)
- Light Green: 6-10 mph (Good - light breeze)
- Yellow: 11-15 mph (Marginal)
- Red: >15 mph (Poor - dangerous conditions)
Weather data is sourced from the National Weather Service API:
- Location: Franklin Falls, WA (47.4254, -121.4320)
- Grid: SEW/151,54
- Update frequency: Hourly
- Forecast range: 7 days
- Migration to PostgreSQL for production
- Add more ice climbing locations
- Implement data visualization (charts/graphs)
- Email/SMS alerts for optimal conditions
- Historical trend analysis
- Mobile-responsive improvements
- Dark mode toggle
This project is open source and available for personal use.
- Inspired by toorainy.com
- Weather data provided by the National Weather Service
- Franklin Falls is a popular ice climbing destination near Snoqualmie Pass, WA