{"location":{"name":"Kyiv / Dnipro","latitude":50.4547,"longitude":30.5238,"timezone":"Europe/Kyiv"},"source":{"provider":"Open-Meteo","requested_model":"best_match","api_model_used":"best_match","model_label":"Best match","missing_probability":false},"updated_at":"2026-09-09T00:15","generated_at":"2026-09-08T21:16:34","params":{"hourly_hours":48,"extra_days":3,"step":3,"first_time":"2026-09-09T01:00","last_time":"2026-09-14T00:00","total_points":72},"overall":{"recommendation":"RED","max_sail_risk_score":86,"max_gust_m_s":13.69,"max_gust_factor":4.51,"max_precipitation_probability_pct":49.0,"max_precipitation_mm":0.3,"storm_points_count":0,"storm_points":[]},"day_summaries":[{"date":"2026-09-09","label":"Wed 09","points":23,"max_sail_risk_score":27,"max_gust_m_s":8.19,"max_gust_factor":4.51,"max_precipitation_probability_pct":0.0,"max_precipitation_mm":0.0,"storm_signals":[],"recommendation":"YELLOW"},{"date":"2026-09-10","label":"Thu 10","points":24,"max_sail_risk_score":86,"max_gust_m_s":13.69,"max_gust_factor":4.14,"max_precipitation_probability_pct":45.0,"max_precipitation_mm":0.1,"storm_signals":[],"recommendation":"RED"},{"date":"2026-09-11","label":"Fri 11","points":8,"max_sail_risk_score":48,"max_gust_m_s":10.39,"max_gust_factor":3.08,"max_precipitation_probability_pct":43.0,"max_precipitation_mm":0.3,"storm_signals":[],"recommendation":"YELLOW"},{"date":"2026-09-12","label":"Sat 12","points":8,"max_sail_risk_score":41,"max_gust_m_s":4.69,"max_gust_factor":4.09,"max_precipitation_probability_pct":49.0,"max_precipitation_mm":0.1,"storm_signals":[],"recommendation":"YELLOW"},{"date":"2026-09-13","label":"Sun 13","points":8,"max_sail_risk_score":33,"max_gust_m_s":3.81,"max_gust_factor":3.7,"max_precipitation_probability_pct":33.0,"max_precipitation_mm":0.0,"storm_signals":[],"recommendation":"YELLOW"},{"date":"2026-09-14","label":"Mon 14","points":1,"max_sail_risk_score":18,"max_gust_m_s":1.11,"max_gust_factor":1.25,"max_precipitation_probability_pct":12.0,"max_precipitation_mm":0.0,"storm_signals":[],"recommendation":"GREEN"}],"hourly":[{"time":"2026-09-09T01:00","date":"2026-09-09","day_label":"Wed 09","hour":"01:00","mode":"hourly","mode_cls":"hourly","source_index":25,"weather":{"wmo_code":2,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":15.7,"dew_point_c":9.4,"relative_humidity_pct":66,"cloud_cover_pct":80,"visibility_m":39260.0,"pressure_msl_hpa":1016.7,"wind":{"speed_kmh":4.7,"speed_m_s":1.31,"gust_kmh":11.5,"gust_m_s":3.19,"gust_factor":2.45,"direction_deg":157,"flow_arrow":"↖"},"sail_risk":{"score":10,"level":"GREEN","css_class":"risk-green","reasons":"gusty"},"day_start":true},{"time":"2026-09-09T02:00","date":"2026-09-09","day_label":"Wed 09","hour":"02:00","mode":"hourly","mode_cls":"hourly","source_index":26,"weather":{"wmo_code":1,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":15.3,"dew_point_c":9.4,"relative_humidity_pct":68,"cloud_cover_pct":41,"visibility_m":38740.0,"pressure_msl_hpa":1016.4,"wind":{"speed_kmh":4.6,"speed_m_s":1.28,"gust_kmh":11.5,"gust_m_s":3.19,"gust_factor":2.5,"direction_deg":162,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-09T03:00","date":"2026-09-09","day_label":"Wed 09","hour":"03:00","mode":"hourly","mode_cls":"hourly","source_index":27,"weather":{"wmo_code":1,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":15.0,"dew_point_c":9.4,"relative_humidity_pct":69,"cloud_cover_pct":29,"visibility_m":38320.0,"pressure_msl_hpa":1016.7,"wind":{"speed_kmh":4.2,"speed_m_s":1.17,"gust_kmh":11.5,"gust_m_s":3.19,"gust_factor":2.74,"direction_deg":160,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-09T04:00","date":"2026-09-09","day_label":"Wed 09","hour":"04:00","mode":"hourly","mode_cls":"hourly","source_index":28,"weather":{"wmo_code":1,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":14.9,"dew_point_c":9.1,"relative_humidity_pct":68,"cloud_cover_pct":24,"visibility_m":38780.0,"pressure_msl_hpa":1016.8,"wind":{"speed_kmh":4.5,"speed_m_s":1.25,"gust_kmh":11.2,"gust_m_s":3.11,"gust_factor":2.49,"direction_deg":166,"flow_arrow":"↑"},"sail_risk":{"score":10,"level":"GREEN","css_class":"risk-green","reasons":"gusty"},"day_start":false},{"time":"2026-09-09T05:00","date":"2026-09-09","day_label":"Wed 09","hour":"05:00","mode":"hourly","mode_cls":"hourly","source_index":29,"weather":{"wmo_code":3,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":14.7,"dew_point_c":8.2,"relative_humidity_pct":65,"cloud_cover_pct":100,"visibility_m":39400.0,"pressure_msl_hpa":1016.8,"wind":{"speed_kmh":5.1,"speed_m_s":1.42,"gust_kmh":13.3,"gust_m_s":3.69,"gust_factor":2.61,"direction_deg":172,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-09T06:00","date":"2026-09-09","day_label":"Wed 09","hour":"06:00","mode":"hourly","mode_cls":"hourly","source_index":30,"weather":{"wmo_code":1,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":14.5,"dew_point_c":7.5,"relative_humidity_pct":63,"cloud_cover_pct":27,"visibility_m":37540.0,"pressure_msl_hpa":1016.3,"wind":{"speed_kmh":5.8,"speed_m_s":1.61,"gust_kmh":15.1,"gust_m_s":4.19,"gust_factor":2.6,"direction_deg":173,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-09T07:00","date":"2026-09-09","day_label":"Wed 09","hour":"07:00","mode":"hourly","mode_cls":"hourly","source_index":31,"weather":{"wmo_code":1,"icon":"🌤️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":14.4,"dew_point_c":7.4,"relative_humidity_pct":63,"cloud_cover_pct":16,"visibility_m":31460.0,"pressure_msl_hpa":1016.1,"wind":{"speed_kmh":5.9,"speed_m_s":1.64,"gust_kmh":16.2,"gust_m_s":4.5,"gust_factor":2.75,"direction_deg":169,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-09T08:00","date":"2026-09-09","day_label":"Wed 09","hour":"08:00","mode":"hourly","mode_cls":"hourly","source_index":32,"weather":{"wmo_code":1,"icon":"🌤️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":15.3,"dew_point_c":7.8,"relative_humidity_pct":61,"cloud_cover_pct":7,"visibility_m":29160.0,"pressure_msl_hpa":1016.0,"wind":{"speed_kmh":6.5,"speed_m_s":1.81,"gust_kmh":19.1,"gust_m_s":5.31,"gust_factor":2.94,"direction_deg":174,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-09T09:00","date":"2026-09-09","day_label":"Wed 09","hour":"09:00","mode":"hourly","mode_cls":"hourly","source_index":33,"weather":{"wmo_code":1,"icon":"🌤️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":17.1,"dew_point_c":8.7,"relative_humidity_pct":58,"cloud_cover_pct":29,"visibility_m":33620.0,"pressure_msl_hpa":1016.2,"wind":{"speed_kmh":7.2,"speed_m_s":2.0,"gust_kmh":20.2,"gust_m_s":5.61,"gust_factor":2.81,"direction_deg":177,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-09T10:00","date":"2026-09-09","day_label":"Wed 09","hour":"10:00","mode":"hourly","mode_cls":"hourly","source_index":34,"weather":{"wmo_code":0,"icon":"☀️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":19.7,"dew_point_c":9.5,"relative_humidity_pct":52,"cloud_cover_pct":0,"visibility_m":40900.0,"pressure_msl_hpa":1016.0,"wind":{"speed_kmh":6.8,"speed_m_s":1.89,"gust_kmh":21.2,"gust_m_s":5.89,"gust_factor":3.12,"direction_deg":177,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-09T11:00","date":"2026-09-09","day_label":"Wed 09","hour":"11:00","mode":"hourly","mode_cls":"hourly","source_index":35,"weather":{"wmo_code":2,"icon":"🌤️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":22.3,"dew_point_c":10.1,"relative_humidity_pct":46,"cloud_cover_pct":63,"visibility_m":41560.0,"pressure_msl_hpa":1015.8,"wind":{"speed_kmh":6.9,"speed_m_s":1.92,"gust_kmh":21.6,"gust_m_s":6.0,"gust_factor":3.13,"direction_deg":174,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-09T12:00","date":"2026-09-09","day_label":"Wed 09","hour":"12:00","mode":"hourly","mode_cls":"hourly","source_index":36,"weather":{"wmo_code":3,"icon":"☁️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":24.3,"dew_point_c":10.2,"relative_humidity_pct":41,"cloud_cover_pct":100,"visibility_m":42340.0,"pressure_msl_hpa":1015.4,"wind":{"speed_kmh":8.3,"speed_m_s":2.31,"gust_kmh":24.5,"gust_m_s":6.81,"gust_factor":2.95,"direction_deg":180,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-09T13:00","date":"2026-09-09","day_label":"Wed 09","hour":"13:00","mode":"hourly","mode_cls":"hourly","source_index":37,"weather":{"wmo_code":3,"icon":"☁️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":25.7,"dew_point_c":9.5,"relative_humidity_pct":36,"cloud_cover_pct":100,"visibility_m":43720.0,"pressure_msl_hpa":1015.0,"wind":{"speed_kmh":9.8,"speed_m_s":2.72,"gust_kmh":28.4,"gust_m_s":7.89,"gust_factor":2.9,"direction_deg":188,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-09T14:00","date":"2026-09-09","day_label":"Wed 09","hour":"14:00","mode":"hourly","mode_cls":"hourly","source_index":38,"weather":{"wmo_code":3,"icon":"☁️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":26.5,"dew_point_c":8.9,"relative_humidity_pct":33,"cloud_cover_pct":100,"visibility_m":44760.0,"pressure_msl_hpa":1014.4,"wind":{"speed_kmh":10.0,"speed_m_s":2.78,"gust_kmh":28.8,"gust_m_s":8.0,"gust_factor":2.88,"direction_deg":193,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-09T15:00","date":"2026-09-09","day_label":"Wed 09","hour":"15:00","mode":"hourly","mode_cls":"hourly","source_index":39,"weather":{"wmo_code":3,"icon":"☁️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":27.2,"dew_point_c":8.6,"relative_humidity_pct":31,"cloud_cover_pct":90,"visibility_m":45960.0,"pressure_msl_hpa":1013.8,"wind":{"speed_kmh":10.1,"speed_m_s":2.81,"gust_kmh":29.5,"gust_m_s":8.19,"gust_factor":2.92,"direction_deg":197,"flow_arrow":"↑"},"sail_risk":{"score":27,"level":"GREEN","css_class":"risk-green","reasons":"very gusty; falling pressure"},"day_start":false},{"time":"2026-09-09T16:00","date":"2026-09-09","day_label":"Wed 09","hour":"16:00","mode":"hourly","mode_cls":"hourly","source_index":40,"weather":{"wmo_code":0,"icon":"☀️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":27.5,"dew_point_c":8.9,"relative_humidity_pct":31,"cloud_cover_pct":3,"visibility_m":45980.0,"pressure_msl_hpa":1013.5,"wind":{"speed_kmh":9.8,"speed_m_s":2.72,"gust_kmh":29.5,"gust_m_s":8.19,"gust_factor":3.01,"direction_deg":197,"flow_arrow":"↑"},"sail_risk":{"score":27,"level":"GREEN","css_class":"risk-green","reasons":"very gusty; falling pressure"},"day_start":false},{"time":"2026-09-09T17:00","date":"2026-09-09","day_label":"Wed 09","hour":"17:00","mode":"hourly","mode_cls":"hourly","source_index":41,"weather":{"wmo_code":0,"icon":"☀️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":27.5,"dew_point_c":8.3,"relative_humidity_pct":30,"cloud_cover_pct":3,"visibility_m":46620.0,"pressure_msl_hpa":1013.1,"wind":{"speed_kmh":9.0,"speed_m_s":2.5,"gust_kmh":27.7,"gust_m_s":7.69,"gust_factor":3.08,"direction_deg":196,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-09T18:00","date":"2026-09-09","day_label":"Wed 09","hour":"18:00","mode":"hourly","mode_cls":"hourly","source_index":42,"weather":{"wmo_code":0,"icon":"☀️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":26.9,"dew_point_c":8.4,"relative_humidity_pct":31,"cloud_cover_pct":2,"visibility_m":46440.0,"pressure_msl_hpa":1012.9,"wind":{"speed_kmh":7.9,"speed_m_s":2.19,"gust_kmh":25.6,"gust_m_s":7.11,"gust_factor":3.24,"direction_deg":196,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-09T19:00","date":"2026-09-09","day_label":"Wed 09","hour":"19:00","mode":"hourly","mode_cls":"hourly","source_index":43,"weather":{"wmo_code":1,"icon":"🌤️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":25.4,"dew_point_c":9.3,"relative_humidity_pct":36,"cloud_cover_pct":14,"visibility_m":44760.0,"pressure_msl_hpa":1012.8,"wind":{"speed_kmh":4.7,"speed_m_s":1.31,"gust_kmh":21.2,"gust_m_s":5.89,"gust_factor":4.51,"direction_deg":184,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-09T20:00","date":"2026-09-09","day_label":"Wed 09","hour":"20:00","mode":"hourly","mode_cls":"hourly","source_index":44,"weather":{"wmo_code":1,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":23.5,"dew_point_c":10.2,"relative_humidity_pct":43,"cloud_cover_pct":25,"visibility_m":42860.0,"pressure_msl_hpa":1013.1,"wind":{"speed_kmh":4.0,"speed_m_s":1.11,"gust_kmh":12.2,"gust_m_s":3.39,"gust_factor":3.05,"direction_deg":180,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-09T21:00","date":"2026-09-09","day_label":"Wed 09","hour":"21:00","mode":"hourly","mode_cls":"hourly","source_index":45,"weather":{"wmo_code":2,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":22.4,"dew_point_c":10.5,"relative_humidity_pct":47,"cloud_cover_pct":74,"visibility_m":42200.0,"pressure_msl_hpa":1013.3,"wind":{"speed_kmh":4.0,"speed_m_s":1.11,"gust_kmh":9.0,"gust_m_s":2.5,"gust_factor":2.25,"direction_deg":180,"flow_arrow":"↑"},"sail_risk":{"score":10,"level":"GREEN","css_class":"risk-green","reasons":"gusty"},"day_start":false},{"time":"2026-09-09T22:00","date":"2026-09-09","day_label":"Wed 09","hour":"22:00","mode":"hourly","mode_cls":"hourly","source_index":46,"weather":{"wmo_code":3,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":21.6,"dew_point_c":10.7,"relative_humidity_pct":50,"cloud_cover_pct":100,"visibility_m":41720.0,"pressure_msl_hpa":1013.2,"wind":{"speed_kmh":4.3,"speed_m_s":1.19,"gust_kmh":10.8,"gust_m_s":3.0,"gust_factor":2.51,"direction_deg":175,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-09T23:00","date":"2026-09-09","day_label":"Wed 09","hour":"23:00","mode":"hourly","mode_cls":"hourly","source_index":47,"weather":{"wmo_code":3,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":21.1,"dew_point_c":10.2,"relative_humidity_pct":50,"cloud_cover_pct":100,"visibility_m":41640.0,"pressure_msl_hpa":1013.3,"wind":{"speed_kmh":5.1,"speed_m_s":1.42,"gust_kmh":13.0,"gust_m_s":3.61,"gust_factor":2.55,"direction_deg":184,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-10T00:00","date":"2026-09-10","day_label":"Thu 10","hour":"00:00","mode":"hourly","mode_cls":"hourly","source_index":48,"weather":{"wmo_code":3,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":20.5,"dew_point_c":9.7,"relative_humidity_pct":50,"cloud_cover_pct":100,"visibility_m":41640.0,"pressure_msl_hpa":1013.5,"wind":{"speed_kmh":6.0,"speed_m_s":1.67,"gust_kmh":16.2,"gust_m_s":4.5,"gust_factor":2.7,"direction_deg":197,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":true},{"time":"2026-09-10T01:00","date":"2026-09-10","day_label":"Thu 10","hour":"01:00","mode":"hourly","mode_cls":"hourly","source_index":49,"weather":{"wmo_code":2,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":19.4,"dew_point_c":10.4,"relative_humidity_pct":56,"cloud_cover_pct":82,"visibility_m":40920.0,"pressure_msl_hpa":1013.7,"wind":{"speed_kmh":6.9,"speed_m_s":1.92,"gust_kmh":19.1,"gust_m_s":5.31,"gust_factor":2.77,"direction_deg":208,"flow_arrow":"↗"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-10T02:00","date":"2026-09-10","day_label":"Thu 10","hour":"02:00","mode":"hourly","mode_cls":"hourly","source_index":50,"weather":{"wmo_code":3,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":19.0,"dew_point_c":10.5,"relative_humidity_pct":58,"cloud_cover_pct":85,"visibility_m":40460.0,"pressure_msl_hpa":1013.7,"wind":{"speed_kmh":7.0,"speed_m_s":1.94,"gust_kmh":19.4,"gust_m_s":5.39,"gust_factor":2.77,"direction_deg":215,"flow_arrow":"↗"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-10T03:00","date":"2026-09-10","day_label":"Thu 10","hour":"03:00","mode":"hourly","mode_cls":"hourly","source_index":51,"weather":{"wmo_code":3,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":18.5,"dew_point_c":10.3,"relative_humidity_pct":59,"cloud_cover_pct":90,"visibility_m":39020.0,"pressure_msl_hpa":1013.7,"wind":{"speed_kmh":7.3,"speed_m_s":2.03,"gust_kmh":19.8,"gust_m_s":5.5,"gust_factor":2.71,"direction_deg":213,"flow_arrow":"↗"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-10T04:00","date":"2026-09-10","day_label":"Thu 10","hour":"04:00","mode":"hourly","mode_cls":"hourly","source_index":52,"weather":{"wmo_code":1,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":17.9,"dew_point_c":9.8,"relative_humidity_pct":59,"cloud_cover_pct":22,"visibility_m":36300.0,"pressure_msl_hpa":1013.8,"wind":{"speed_kmh":7.6,"speed_m_s":2.11,"gust_kmh":22.3,"gust_m_s":6.19,"gust_factor":2.93,"direction_deg":205,"flow_arrow":"↗"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-10T05:00","date":"2026-09-10","day_label":"Thu 10","hour":"05:00","mode":"hourly","mode_cls":"hourly","source_index":53,"weather":{"wmo_code":1,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":17.4,"dew_point_c":9.5,"relative_humidity_pct":60,"cloud_cover_pct":32,"visibility_m":32460.0,"pressure_msl_hpa":1013.7,"wind":{"speed_kmh":7.6,"speed_m_s":2.11,"gust_kmh":22.0,"gust_m_s":6.11,"gust_factor":2.89,"direction_deg":205,"flow_arrow":"↗"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-10T06:00","date":"2026-09-10","day_label":"Thu 10","hour":"06:00","mode":"hourly","mode_cls":"hourly","source_index":54,"weather":{"wmo_code":0,"icon":"🌙","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":16.8,"dew_point_c":9.7,"relative_humidity_pct":63,"cloud_cover_pct":0,"visibility_m":30340.0,"pressure_msl_hpa":1013.8,"wind":{"speed_kmh":7.8,"speed_m_s":2.17,"gust_kmh":22.0,"gust_m_s":6.11,"gust_factor":2.82,"direction_deg":202,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-10T07:00","date":"2026-09-10","day_label":"Thu 10","hour":"07:00","mode":"hourly","mode_cls":"hourly","source_index":55,"weather":{"wmo_code":0,"icon":"☀️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":16.2,"dew_point_c":9.8,"relative_humidity_pct":66,"cloud_cover_pct":0,"visibility_m":27140.0,"pressure_msl_hpa":1013.8,"wind":{"speed_kmh":8.2,"speed_m_s":2.28,"gust_kmh":23.0,"gust_m_s":6.39,"gust_factor":2.8,"direction_deg":195,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-10T08:00","date":"2026-09-10","day_label":"Thu 10","hour":"08:00","mode":"hourly","mode_cls":"hourly","source_index":56,"weather":{"wmo_code":0,"icon":"☀️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":16.6,"dew_point_c":10.9,"relative_humidity_pct":69,"cloud_cover_pct":0,"visibility_m":25920.0,"pressure_msl_hpa":1013.9,"wind":{"speed_kmh":9.0,"speed_m_s":2.5,"gust_kmh":24.1,"gust_m_s":6.69,"gust_factor":2.68,"direction_deg":185,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-10T09:00","date":"2026-09-10","day_label":"Thu 10","hour":"09:00","mode":"hourly","mode_cls":"hourly","source_index":57,"weather":{"wmo_code":0,"icon":"☀️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":18.4,"dew_point_c":11.9,"relative_humidity_pct":66,"cloud_cover_pct":0,"visibility_m":34920.0,"pressure_msl_hpa":1013.9,"wind":{"speed_kmh":10.6,"speed_m_s":2.94,"gust_kmh":29.9,"gust_m_s":8.31,"gust_factor":2.82,"direction_deg":190,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-10T10:00","date":"2026-09-10","day_label":"Thu 10","hour":"10:00","mode":"hourly","mode_cls":"hourly","source_index":58,"weather":{"wmo_code":0,"icon":"☀️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":20.4,"dew_point_c":12.4,"relative_humidity_pct":60,"cloud_cover_pct":0,"visibility_m":39240.0,"pressure_msl_hpa":1013.9,"wind":{"speed_kmh":11.3,"speed_m_s":3.14,"gust_kmh":33.1,"gust_m_s":9.19,"gust_factor":2.93,"direction_deg":189,"flow_arrow":"↑"},"sail_risk":{"score":30,"level":"GREEN","css_class":"risk-green","reasons":"gusts >= 9 m/s; very gusty"},"day_start":false},{"time":"2026-09-10T11:00","date":"2026-09-10","day_label":"Thu 10","hour":"11:00","mode":"hourly","mode_cls":"hourly","source_index":59,"weather":{"wmo_code":0,"icon":"☀️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":22.5,"dew_point_c":12.7,"relative_humidity_pct":54,"cloud_cover_pct":0,"visibility_m":40360.0,"pressure_msl_hpa":1013.5,"wind":{"speed_kmh":12.6,"speed_m_s":3.5,"gust_kmh":36.0,"gust_m_s":10.0,"gust_factor":2.86,"direction_deg":183,"flow_arrow":"↑"},"sail_risk":{"score":40,"level":"YELLOW","css_class":"risk-yellow","reasons":"gusts >= 10 m/s; very gusty"},"day_start":false},{"time":"2026-09-10T12:00","date":"2026-09-10","day_label":"Thu 10","hour":"12:00","mode":"hourly","mode_cls":"hourly","source_index":60,"weather":{"wmo_code":0,"icon":"☀️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":24.5,"dew_point_c":12.4,"relative_humidity_pct":47,"cloud_cover_pct":0,"visibility_m":41300.0,"pressure_msl_hpa":1013.0,"wind":{"speed_kmh":14.5,"speed_m_s":4.03,"gust_kmh":39.6,"gust_m_s":11.0,"gust_factor":2.73,"direction_deg":187,"flow_arrow":"↑"},"sail_risk":{"score":40,"level":"YELLOW","css_class":"risk-yellow","reasons":"gusts >= 10 m/s; very gusty"},"day_start":false},{"time":"2026-09-10T13:00","date":"2026-09-10","day_label":"Thu 10","hour":"13:00","mode":"hourly","mode_cls":"hourly","source_index":61,"weather":{"wmo_code":0,"icon":"☀️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":26.1,"dew_point_c":11.4,"relative_humidity_pct":40,"cloud_cover_pct":0,"visibility_m":42400.0,"pressure_msl_hpa":1012.4,"wind":{"speed_kmh":15.3,"speed_m_s":4.25,"gust_kmh":41.8,"gust_m_s":11.61,"gust_factor":2.73,"direction_deg":189,"flow_arrow":"↑"},"sail_risk":{"score":52,"level":"YELLOW","css_class":"risk-yellow","reasons":"gusts >= 10 m/s; very gusty; falling pressure"},"day_start":false},{"time":"2026-09-10T14:00","date":"2026-09-10","day_label":"Thu 10","hour":"14:00","mode":"hourly","mode_cls":"hourly","source_index":62,"weather":{"wmo_code":0,"icon":"☀️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":27.2,"dew_point_c":11.3,"relative_humidity_pct":37,"cloud_cover_pct":0,"visibility_m":43340.0,"pressure_msl_hpa":1012.3,"wind":{"speed_kmh":15.0,"speed_m_s":4.17,"gust_kmh":42.1,"gust_m_s":11.69,"gust_factor":2.81,"direction_deg":201,"flow_arrow":"↑"},"sail_risk":{"score":40,"level":"YELLOW","css_class":"risk-yellow","reasons":"gusts >= 10 m/s; very gusty"},"day_start":false},{"time":"2026-09-10T15:00","date":"2026-09-10","day_label":"Thu 10","hour":"15:00","mode":"hourly","mode_cls":"hourly","source_index":63,"weather":{"wmo_code":0,"icon":"☀️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":28.0,"dew_point_c":11.1,"relative_humidity_pct":35,"cloud_cover_pct":0,"visibility_m":44100.0,"pressure_msl_hpa":1011.8,"wind":{"speed_kmh":14.7,"speed_m_s":4.08,"gust_kmh":41.8,"gust_m_s":11.61,"gust_factor":2.84,"direction_deg":202,"flow_arrow":"↑"},"sail_risk":{"score":40,"level":"YELLOW","css_class":"risk-yellow","reasons":"gusts >= 10 m/s; very gusty"},"day_start":false},{"time":"2026-09-10T16:00","date":"2026-09-10","day_label":"Thu 10","hour":"16:00","mode":"hourly","mode_cls":"hourly","source_index":64,"weather":{"wmo_code":0,"icon":"☀️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":28.3,"dew_point_c":12.2,"relative_humidity_pct":37,"cloud_cover_pct":0,"visibility_m":43620.0,"pressure_msl_hpa":1011.7,"wind":{"speed_kmh":14.3,"speed_m_s":3.97,"gust_kmh":40.3,"gust_m_s":11.19,"gust_factor":2.82,"direction_deg":214,"flow_arrow":"↗"},"sail_risk":{"score":40,"level":"YELLOW","css_class":"risk-yellow","reasons":"gusts >= 10 m/s; very gusty"},"day_start":false},{"time":"2026-09-10T17:00","date":"2026-09-10","day_label":"Thu 10","hour":"17:00","mode":"hourly","mode_cls":"hourly","source_index":65,"weather":{"wmo_code":0,"icon":"☀️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":28.2,"dew_point_c":12.5,"relative_humidity_pct":38,"cloud_cover_pct":0,"visibility_m":43460.0,"pressure_msl_hpa":1011.6,"wind":{"speed_kmh":13.1,"speed_m_s":3.64,"gust_kmh":38.5,"gust_m_s":10.69,"gust_factor":2.94,"direction_deg":217,"flow_arrow":"↗"},"sail_risk":{"score":40,"level":"YELLOW","css_class":"risk-yellow","reasons":"gusts >= 10 m/s; very gusty"},"day_start":false},{"time":"2026-09-10T18:00","date":"2026-09-10","day_label":"Thu 10","hour":"18:00","mode":"hourly","mode_cls":"hourly","source_index":66,"weather":{"wmo_code":0,"icon":"☀️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":27.7,"dew_point_c":12.5,"relative_humidity_pct":39,"cloud_cover_pct":1,"visibility_m":43360.0,"pressure_msl_hpa":1011.7,"wind":{"speed_kmh":11.2,"speed_m_s":3.11,"gust_kmh":35.6,"gust_m_s":9.89,"gust_factor":3.18,"direction_deg":222,"flow_arrow":"↗"},"sail_risk":{"score":30,"level":"GREEN","css_class":"risk-green","reasons":"gusts >= 9 m/s; very gusty"},"day_start":false},{"time":"2026-09-10T19:00","date":"2026-09-10","day_label":"Thu 10","hour":"19:00","mode":"hourly","mode_cls":"hourly","source_index":67,"weather":{"wmo_code":1,"icon":"🌤️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":3,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":26.5,"dew_point_c":12.9,"relative_humidity_pct":43,"cloud_cover_pct":23,"visibility_m":42680.0,"pressure_msl_hpa":1011.6,"wind":{"speed_kmh":7.3,"speed_m_s":2.03,"gust_kmh":30.2,"gust_m_s":8.39,"gust_factor":4.14,"direction_deg":213,"flow_arrow":"↗"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-10T20:00","date":"2026-09-10","day_label":"Thu 10","hour":"20:00","mode":"hourly","mode_cls":"hourly","source_index":68,"weather":{"wmo_code":3,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":15,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":24.8,"dew_point_c":13.0,"relative_humidity_pct":48,"cloud_cover_pct":82,"visibility_m":41840.0,"pressure_msl_hpa":1011.7,"wind":{"speed_kmh":5.8,"speed_m_s":1.61,"gust_kmh":18.4,"gust_m_s":5.11,"gust_factor":3.17,"direction_deg":202,"flow_arrow":"↑"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-10T21:00","date":"2026-09-10","day_label":"Thu 10","hour":"21:00","mode":"hourly","mode_cls":"hourly","source_index":69,"weather":{"wmo_code":2,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":40,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":23.5,"dew_point_c":13.1,"relative_humidity_pct":52,"cloud_cover_pct":68,"visibility_m":41320.0,"pressure_msl_hpa":1012.2,"wind":{"speed_kmh":7.6,"speed_m_s":2.11,"gust_kmh":20.5,"gust_m_s":5.69,"gust_factor":2.7,"direction_deg":262,"flow_arrow":"→"},"sail_risk":{"score":23,"level":"GREEN","css_class":"risk-green","reasons":"very gusty; some rain risk"},"day_start":false},{"time":"2026-09-10T22:00","date":"2026-09-10","day_label":"Thu 10","hour":"22:00","mode":"hourly","mode_cls":"hourly","source_index":70,"weather":{"wmo_code":3,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":45,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":19.3,"dew_point_c":14.1,"relative_humidity_pct":72,"cloud_cover_pct":100,"visibility_m":35380.0,"pressure_msl_hpa":1014.2,"wind":{"speed_kmh":16.8,"speed_m_s":4.67,"gust_kmh":49.3,"gust_m_s":13.69,"gust_factor":2.93,"direction_deg":312,"flow_arrow":"↘"},"sail_risk":{"score":86,"level":"RED","css_class":"risk-red","reasons":"gusts >= 13 m/s; very gusty; some rain risk; wind shift"},"day_start":false},{"time":"2026-09-10T23:00","date":"2026-09-10","day_label":"Thu 10","hour":"23:00","mode":"hourly","mode_cls":"hourly","source_index":71,"weather":{"wmo_code":61,"icon":"🌧️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":45,"precipitation_mm":0.1,"rain_mm":0.1,"showers_mm":0.0,"temperature_c":16.7,"dew_point_c":13.4,"relative_humidity_pct":81,"cloud_cover_pct":99,"visibility_m":28800.0,"pressure_msl_hpa":1015.1,"wind":{"speed_kmh":14.3,"speed_m_s":3.97,"gust_kmh":44.3,"gust_m_s":12.31,"gust_factor":3.1,"direction_deg":317,"flow_arrow":"↘"},"sail_risk":{"score":66,"level":"YELLOW","css_class":"risk-yellow","reasons":"gusts >= 10 m/s; very gusty; some rain risk; wind shift"},"day_start":false},{"time":"2026-09-11T00:00","date":"2026-09-11","day_label":"Fri 11","hour":"00:00","mode":"hourly","mode_cls":"hourly","source_index":72,"weather":{"wmo_code":61,"icon":"🌧️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":43,"precipitation_mm":0.3,"rain_mm":0.3,"showers_mm":0.0,"temperature_c":15.2,"dew_point_c":12.5,"relative_humidity_pct":84,"cloud_cover_pct":98,"visibility_m":25300.0,"pressure_msl_hpa":1016.1,"wind":{"speed_kmh":13.8,"speed_m_s":3.83,"gust_kmh":37.4,"gust_m_s":10.39,"gust_factor":2.71,"direction_deg":313,"flow_arrow":"↘"},"sail_risk":{"score":48,"level":"YELLOW","css_class":"risk-yellow","reasons":"gusts >= 10 m/s; very gusty; some rain risk"},"day_start":true},{"time":"2026-09-11T03:00","date":"2026-09-11","day_label":"Fri 11","hour":"03:00","mode":"3h","mode_cls":"coarse","source_index":75,"weather":{"wmo_code":3,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":18,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":13.8,"dew_point_c":11.6,"relative_humidity_pct":87,"cloud_cover_pct":100,"visibility_m":23240.0,"pressure_msl_hpa":1017.9,"wind":{"speed_kmh":8.8,"speed_m_s":2.44,"gust_kmh":26.6,"gust_m_s":7.39,"gust_factor":3.02,"direction_deg":289,"flow_arrow":"→"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-11T06:00","date":"2026-09-11","day_label":"Fri 11","hour":"06:00","mode":"3h","mode_cls":"coarse","source_index":78,"weather":{"wmo_code":3,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":8,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":12.9,"dew_point_c":11.6,"relative_humidity_pct":92,"cloud_cover_pct":100,"visibility_m":17380.0,"pressure_msl_hpa":1018.7,"wind":{"speed_kmh":8.1,"speed_m_s":2.25,"gust_kmh":23.0,"gust_m_s":6.39,"gust_factor":2.84,"direction_deg":283,"flow_arrow":"→"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-11T09:00","date":"2026-09-11","day_label":"Fri 11","hour":"09:00","mode":"3h","mode_cls":"coarse","source_index":81,"weather":{"wmo_code":2,"icon":"🌤️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":3,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":14.0,"dew_point_c":11.2,"relative_humidity_pct":83,"cloud_cover_pct":57,"visibility_m":23980.0,"pressure_msl_hpa":1020.3,"wind":{"speed_kmh":9.0,"speed_m_s":2.5,"gust_kmh":26.6,"gust_m_s":7.39,"gust_factor":2.96,"direction_deg":307,"flow_arrow":"↘"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-11T12:00","date":"2026-09-11","day_label":"Fri 11","hour":"12:00","mode":"3h","mode_cls":"coarse","source_index":84,"weather":{"wmo_code":3,"icon":"☁️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":18.6,"dew_point_c":8.3,"relative_humidity_pct":51,"cloud_cover_pct":100,"visibility_m":40700.0,"pressure_msl_hpa":1020.7,"wind":{"speed_kmh":10.0,"speed_m_s":2.78,"gust_kmh":29.2,"gust_m_s":8.11,"gust_factor":2.92,"direction_deg":308,"flow_arrow":"↘"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-11T15:00","date":"2026-09-11","day_label":"Fri 11","hour":"15:00","mode":"3h","mode_cls":"coarse","source_index":87,"weather":{"wmo_code":3,"icon":"☁️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":20.3,"dew_point_c":6.6,"relative_humidity_pct":41,"cloud_cover_pct":100,"visibility_m":42340.0,"pressure_msl_hpa":1020.2,"wind":{"speed_kmh":10.3,"speed_m_s":2.86,"gust_kmh":31.7,"gust_m_s":8.81,"gust_factor":3.08,"direction_deg":299,"flow_arrow":"↘"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-11T18:00","date":"2026-09-11","day_label":"Fri 11","hour":"18:00","mode":"3h","mode_cls":"coarse","source_index":90,"weather":{"wmo_code":3,"icon":"☁️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":18.8,"dew_point_c":6.3,"relative_humidity_pct":44,"cloud_cover_pct":97,"visibility_m":42140.0,"pressure_msl_hpa":1020.4,"wind":{"speed_kmh":9.7,"speed_m_s":2.69,"gust_kmh":27.7,"gust_m_s":7.69,"gust_factor":2.86,"direction_deg":301,"flow_arrow":"↘"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-11T21:00","date":"2026-09-11","day_label":"Fri 11","hour":"21:00","mode":"3h","mode_cls":"coarse","source_index":93,"weather":{"wmo_code":3,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":16.0,"dew_point_c":7.4,"relative_humidity_pct":57,"cloud_cover_pct":100,"visibility_m":40640.0,"pressure_msl_hpa":1021.2,"wind":{"speed_kmh":4.9,"speed_m_s":1.36,"gust_kmh":14.4,"gust_m_s":4.0,"gust_factor":2.94,"direction_deg":306,"flow_arrow":"↘"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-12T00:00","date":"2026-09-12","day_label":"Sat 12","hour":"00:00","mode":"3h","mode_cls":"coarse","source_index":96,"weather":{"wmo_code":3,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":14.3,"dew_point_c":7.3,"relative_humidity_pct":63,"cloud_cover_pct":85,"visibility_m":39740.0,"pressure_msl_hpa":1022.1,"wind":{"speed_kmh":4.5,"speed_m_s":1.25,"gust_kmh":11.5,"gust_m_s":3.19,"gust_factor":2.56,"direction_deg":284,"flow_arrow":"→"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":true},{"time":"2026-09-12T03:00","date":"2026-09-12","day_label":"Sat 12","hour":"03:00","mode":"3h","mode_cls":"coarse","source_index":99,"weather":{"wmo_code":3,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":0,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":12.5,"dew_point_c":7.8,"relative_humidity_pct":73,"cloud_cover_pct":100,"visibility_m":36740.0,"pressure_msl_hpa":1022.3,"wind":{"speed_kmh":3.0,"speed_m_s":0.83,"gust_kmh":8.6,"gust_m_s":2.39,"gust_factor":2.87,"direction_deg":284,"flow_arrow":"→"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-12T06:00","date":"2026-09-12","day_label":"Sat 12","hour":"06:00","mode":"3h","mode_cls":"coarse","source_index":102,"weather":{"wmo_code":3,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":7,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":11.6,"dew_point_c":7.7,"relative_humidity_pct":77,"cloud_cover_pct":100,"visibility_m":34060.0,"pressure_msl_hpa":1022.3,"wind":{"speed_kmh":2.9,"speed_m_s":0.81,"gust_kmh":7.6,"gust_m_s":2.11,"gust_factor":2.62,"direction_deg":277,"flow_arrow":"→"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-12T09:00","date":"2026-09-12","day_label":"Sat 12","hour":"09:00","mode":"3h","mode_cls":"coarse","source_index":105,"weather":{"wmo_code":3,"icon":"☁️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":18,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":13.6,"dew_point_c":7.8,"relative_humidity_pct":68,"cloud_cover_pct":99,"visibility_m":37400.0,"pressure_msl_hpa":1022.9,"wind":{"speed_kmh":1.1,"speed_m_s":0.31,"gust_kmh":5.0,"gust_m_s":1.39,"gust_factor":null,"direction_deg":252,"flow_arrow":"→"},"sail_risk":{"score":0,"level":"GREEN","css_class":"risk-green","reasons":"low risk"},"day_start":false},{"time":"2026-09-12T12:00","date":"2026-09-12","day_label":"Sat 12","hour":"12:00","mode":"3h","mode_cls":"coarse","source_index":108,"weather":{"wmo_code":3,"icon":"☁️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":34,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":17.7,"dew_point_c":7.4,"relative_humidity_pct":51,"cloud_cover_pct":100,"visibility_m":40940.0,"pressure_msl_hpa":1023.1,"wind":{"speed_kmh":2.2,"speed_m_s":0.61,"gust_kmh":9.0,"gust_m_s":2.5,"gust_factor":4.09,"direction_deg":189,"flow_arrow":"↑"},"sail_risk":{"score":33,"level":"GREEN","css_class":"risk-green","reasons":"very gusty; some rain risk; direction change"},"day_start":false},{"time":"2026-09-12T15:00","date":"2026-09-12","day_label":"Sat 12","hour":"15:00","mode":"3h","mode_cls":"coarse","source_index":111,"weather":{"wmo_code":3,"icon":"☁️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":48,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":18.3,"dew_point_c":7.1,"relative_humidity_pct":48,"cloud_cover_pct":100,"visibility_m":41520.0,"pressure_msl_hpa":1022.0,"wind":{"speed_kmh":1.1,"speed_m_s":0.31,"gust_kmh":6.1,"gust_m_s":1.69,"gust_factor":null,"direction_deg":162,"flow_arrow":"↑"},"sail_risk":{"score":8,"level":"GREEN","css_class":"risk-green","reasons":"some rain risk"},"day_start":false},{"time":"2026-09-12T18:00","date":"2026-09-12","day_label":"Sat 12","hour":"18:00","mode":"3h","mode_cls":"coarse","source_index":114,"weather":{"wmo_code":61,"icon":"🌧️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":49,"precipitation_mm":0.1,"rain_mm":0.1,"showers_mm":0.0,"temperature_c":16.1,"dew_point_c":9.7,"relative_humidity_pct":66,"cloud_cover_pct":100,"visibility_m":38740.0,"pressure_msl_hpa":1021.9,"wind":{"speed_kmh":6.4,"speed_m_s":1.78,"gust_kmh":16.9,"gust_m_s":4.69,"gust_factor":2.64,"direction_deg":254,"flow_arrow":"→"},"sail_risk":{"score":41,"level":"YELLOW","css_class":"risk-yellow","reasons":"very gusty; some rain risk; wind shift"},"day_start":false},{"time":"2026-09-12T21:00","date":"2026-09-12","day_label":"Sat 12","hour":"21:00","mode":"3h","mode_cls":"coarse","source_index":117,"weather":{"wmo_code":3,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":43,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":13.6,"dew_point_c":11.1,"relative_humidity_pct":85,"cloud_cover_pct":100,"visibility_m":25780.0,"pressure_msl_hpa":1022.7,"wind":{"speed_kmh":6.0,"speed_m_s":1.67,"gust_kmh":16.2,"gust_m_s":4.5,"gust_factor":2.7,"direction_deg":253,"flow_arrow":"→"},"sail_risk":{"score":23,"level":"GREEN","css_class":"risk-green","reasons":"very gusty; some rain risk"},"day_start":false},{"time":"2026-09-13T00:00","date":"2026-09-13","day_label":"Sun 13","hour":"00:00","mode":"3h","mode_cls":"coarse","source_index":120,"weather":{"wmo_code":1,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":33,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":11.5,"dew_point_c":9.1,"relative_humidity_pct":85,"cloud_cover_pct":7,"visibility_m":28520.0,"pressure_msl_hpa":1023.1,"wind":{"speed_kmh":3.6,"speed_m_s":1.0,"gust_kmh":11.2,"gust_m_s":3.11,"gust_factor":3.11,"direction_deg":270,"flow_arrow":"→"},"sail_risk":{"score":23,"level":"GREEN","css_class":"risk-green","reasons":"very gusty; some rain risk"},"day_start":true},{"time":"2026-09-13T03:00","date":"2026-09-13","day_label":"Sun 13","hour":"03:00","mode":"3h","mode_cls":"coarse","source_index":123,"weather":{"wmo_code":0,"icon":"🌙","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":23,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":9.9,"dew_point_c":8.1,"relative_humidity_pct":89,"cloud_cover_pct":0,"visibility_m":24080.0,"pressure_msl_hpa":1023.5,"wind":{"speed_kmh":3.3,"speed_m_s":0.92,"gust_kmh":9.7,"gust_m_s":2.69,"gust_factor":2.94,"direction_deg":276,"flow_arrow":"→"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-13T06:00","date":"2026-09-13","day_label":"Sun 13","hour":"06:00","mode":"3h","mode_cls":"coarse","source_index":126,"weather":{"wmo_code":0,"icon":"🌙","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":21,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":9.1,"dew_point_c":7.8,"relative_humidity_pct":92,"cloud_cover_pct":3,"visibility_m":19880.0,"pressure_msl_hpa":1023.5,"wind":{"speed_kmh":3.0,"speed_m_s":0.83,"gust_kmh":7.9,"gust_m_s":2.19,"gust_factor":2.63,"direction_deg":284,"flow_arrow":"→"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-13T09:00","date":"2026-09-13","day_label":"Sun 13","hour":"09:00","mode":"3h","mode_cls":"coarse","source_index":129,"weather":{"wmo_code":0,"icon":"☀️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":20,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":13.1,"dew_point_c":9.2,"relative_humidity_pct":77,"cloud_cover_pct":0,"visibility_m":32100.0,"pressure_msl_hpa":1024.2,"wind":{"speed_kmh":1.1,"speed_m_s":0.31,"gust_kmh":6.1,"gust_m_s":1.69,"gust_factor":null,"direction_deg":288,"flow_arrow":"→"},"sail_risk":{"score":0,"level":"GREEN","css_class":"risk-green","reasons":"low risk"},"day_start":false},{"time":"2026-09-13T12:00","date":"2026-09-13","day_label":"Sun 13","hour":"12:00","mode":"3h","mode_cls":"coarse","source_index":132,"weather":{"wmo_code":0,"icon":"☀️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":17,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":19.8,"dew_point_c":7.2,"relative_humidity_pct":44,"cloud_cover_pct":0,"visibility_m":41840.0,"pressure_msl_hpa":1024.1,"wind":{"speed_kmh":3.7,"speed_m_s":1.03,"gust_kmh":13.7,"gust_m_s":3.81,"gust_factor":3.7,"direction_deg":101,"flow_arrow":"←"},"sail_risk":{"score":33,"level":"GREEN","css_class":"risk-green","reasons":"very gusty; wind shift"},"day_start":false},{"time":"2026-09-13T15:00","date":"2026-09-13","day_label":"Sun 13","hour":"15:00","mode":"3h","mode_cls":"coarse","source_index":135,"weather":{"wmo_code":1,"icon":"🌤️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":13,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":21.5,"dew_point_c":6.2,"relative_humidity_pct":37,"cloud_cover_pct":21,"visibility_m":39170.0,"pressure_msl_hpa":1022.9,"wind":{"speed_kmh":0.9,"speed_m_s":0.25,"gust_kmh":6.3,"gust_m_s":1.75,"gust_factor":null,"direction_deg":259,"flow_arrow":"→"},"sail_risk":{"score":18,"level":"GREEN","css_class":"risk-green","reasons":"wind shift"},"day_start":false},{"time":"2026-09-13T18:00","date":"2026-09-13","day_label":"Sun 13","hour":"18:00","mode":"3h","mode_cls":"coarse","source_index":138,"weather":{"wmo_code":1,"icon":"🌤️","is_day":1,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":9,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":20.9,"dew_point_c":7.2,"relative_humidity_pct":41,"cloud_cover_pct":40,"visibility_m":8420.0,"pressure_msl_hpa":1022.0,"wind":{"speed_kmh":2.8,"speed_m_s":0.78,"gust_kmh":7.2,"gust_m_s":2.0,"gust_factor":2.57,"direction_deg":310,"flow_arrow":"↘"},"sail_risk":{"score":15,"level":"GREEN","css_class":"risk-green","reasons":"very gusty"},"day_start":false},{"time":"2026-09-13T21:00","date":"2026-09-13","day_label":"Sun 13","hour":"21:00","mode":"3h","mode_cls":"coarse","source_index":141,"weather":{"wmo_code":1,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":10,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":15.8,"dew_point_c":9.0,"relative_humidity_pct":64,"cloud_cover_pct":33,"visibility_m":11900.0,"pressure_msl_hpa":1022.7,"wind":{"speed_kmh":1.8,"speed_m_s":0.5,"gust_kmh":4.0,"gust_m_s":1.11,"gust_factor":2.22,"direction_deg":37,"flow_arrow":"↙"},"sail_risk":{"score":20,"level":"GREEN","css_class":"risk-green","reasons":"gusty; direction change"},"day_start":false},{"time":"2026-09-14T00:00","date":"2026-09-14","day_label":"Mon 14","hour":"00:00","mode":"3h","mode_cls":"coarse","source_index":144,"weather":{"wmo_code":3,"icon":"☁️","is_day":0,"storm_signal":"NONE","storm_symbol":"-"},"precipitation_probability_pct":12,"precipitation_mm":0.0,"rain_mm":0.0,"showers_mm":0.0,"temperature_c":13.8,"dew_point_c":8.0,"relative_humidity_pct":68,"cloud_cover_pct":87,"visibility_m":8880.0,"pressure_msl_hpa":1022.9,"wind":{"speed_kmh":3.2,"speed_m_s":0.89,"gust_kmh":4.0,"gust_m_s":1.11,"gust_factor":1.25,"direction_deg":207,"flow_arrow":"↗"},"sail_risk":{"score":18,"level":"GREEN","css_class":"risk-green","reasons":"wind shift"},"day_start":true}]}