From 5dc48738e6f2800fde963a7581e200bd4de18463 Mon Sep 17 00:00:00 2001 From: Jakob Stendahl Date: Thu, 28 Apr 2022 10:51:09 +0200 Subject: Add 27-day outlook --- src/components/Forecast/ForecastDrawer.svelte | 2 + .../OneHourForecast/OneHourForecast.svelte | 7 +- .../OutlookTwentySevenDay.svelte | 81 +++++++++++++++++++ .../OutlookTwentySevenDay/PredictionItem.svelte | 91 ++++++++++++++++++++++ src/routes/index.svelte | 3 - src/stores.ts | 18 ++++- 6 files changed, 196 insertions(+), 6 deletions(-) create mode 100644 src/components/Forecast/OutlookTwentySevenDay/OutlookTwentySevenDay.svelte create mode 100644 src/components/Forecast/OutlookTwentySevenDay/PredictionItem.svelte diff --git a/src/components/Forecast/ForecastDrawer.svelte b/src/components/Forecast/ForecastDrawer.svelte index b47a810..9f69f17 100644 --- a/src/components/Forecast/ForecastDrawer.svelte +++ b/src/components/Forecast/ForecastDrawer.svelte @@ -1,6 +1,7 @@ + + + +
+ {#each predictions as prediction, i} + + {/each} +
diff --git a/src/components/Forecast/OutlookTwentySevenDay/PredictionItem.svelte b/src/components/Forecast/OutlookTwentySevenDay/PredictionItem.svelte new file mode 100644 index 0000000..201c4f5 --- /dev/null +++ b/src/components/Forecast/OutlookTwentySevenDay/PredictionItem.svelte @@ -0,0 +1,91 @@ + + + + +
+
+

{time}

+

{date}

+
+
+

{kp}

+ {#if hasNOMETData} +
+

{Math.round(temp)}°C

+

{Math.round(clouds)}%

+
+ {/if} +
+
diff --git a/src/routes/index.svelte b/src/routes/index.svelte index 64bcce9..e5dbaea 100644 --- a/src/routes/index.svelte +++ b/src/routes/index.svelte @@ -1,9 +1,6 @@ diff --git a/src/stores.ts b/src/stores.ts index 2e91c25..16dc03e 100644 --- a/src/stores.ts +++ b/src/stores.ts @@ -135,10 +135,12 @@ async function getSpaceWeather() { "usnoaa_data_raw": { "solar_wind_mag_field": false, "noaa_planetary_k_index_forecast": false, - "geospace_pred_est_kp_1_hour": false + "geospace_pred_est_kp_1_hour": false, + "outlook_27_day": false } }; + let tmp; let res = await fetch("https://services.swpc.noaa.gov/products/summary/solar-wind-mag-field.json"); ret.usnoaa_data_raw.solar_wind_mag_field = await res.json(); ret.usnoaa_data_raw.solar_wind_mag_field.TimeStamp = new Date(ret.usnoaa_data_raw.solar_wind_mag_field.TimeStamp + " UTC"); @@ -146,7 +148,19 @@ async function getSpaceWeather() { ret.now.bt = ret.usnoaa_data_raw.solar_wind_mag_field["Bt"]; res = await fetch("https://services.swpc.noaa.gov/json/geospace/geospace_pred_est_kp_1_hour.json"); - ret.usnoaa_data_raw.geospace_pred_est_kp_1_hour = (await res.json()).map(x => ({...x, "model_prediction_time": new Date(x.model_prediction_time)})); + tmp = await res.json(); + tmp = tmp.map(x => ({ + ...x, "model_prediction_time": new Date(x.model_prediction_time) + })); + ret.usnoaa_data_raw.geospace_pred_est_kp_1_hour = tmp + + res = await fetch("https://services.swpc.noaa.gov/text/27-day-outlook.txt"); + tmp = await res.text(); + tmp = [...tmp.matchAll( + /^(?