From 254d6be446bb9542036abdecc3cc266b0480fe88 Mon Sep 17 00:00:00 2001 From: addelany Date: Thu, 9 Nov 2023 09:00:57 -0600 Subject: [PATCH 01/10] fix dashboard link --- .../forecasts/Aquatics/Daily Chlorophyll-a/collection.json | 2 +- .../forecasts/Aquatics/Daily Dissolved oxygen/collection.json | 4 ++-- .../Aquatics/Daily Water temperature/collection.json | 4 ++-- catalog/forecasts/Aquatics/collection.json | 2 +- .../Beetles/Weekly beetle community abundance/collection.json | 2 +- .../Beetles/Weekly beetle community richness/collection.json | 2 +- catalog/forecasts/Beetles/collection.json | 2 +- .../Daily Green chromatic coordinate/collection.json | 2 +- .../Phenology/Daily Red chromatic coordinate/collection.json | 2 +- catalog/forecasts/Phenology/collection.json | 2 +- .../Terrestrial/30min latent heat flux/collection.json | 2 +- .../Terrestrial/Daily Net ecosystem exchange/collection.json | 2 +- catalog/forecasts/Terrestrial/collection.json | 2 +- .../Weekly Amblyomma americanum population/collection.json | 2 +- catalog/forecasts/Ticks/collection.json | 2 +- catalog/forecasts/collection.json | 2 +- catalog/forecasts/models/collection.json | 2 +- .../models/model_items/GLEON_JRabaey_temp_physics.json | 2 +- catalog/forecasts/models/model_items/GLEON_lm_lag_1day.json | 2 +- catalog/forecasts/models/model_items/GLEON_physics.json | 2 +- catalog/forecasts/models/model_items/USGSHABs1.json | 2 +- catalog/forecasts/models/model_items/air2waterSat_2.json | 2 +- catalog/forecasts/models/model_items/baseline_ensemble.json | 2 +- catalog/forecasts/models/model_items/cb_prophet.json | 2 +- catalog/forecasts/models/model_items/fARIMA.json | 2 +- .../forecasts/models/model_items/fARIMA_clim_ensemble.json | 2 +- catalog/forecasts/models/model_items/fTSLM_lag.json | 2 +- catalog/forecasts/models/model_items/flareGLM.json | 2 +- catalog/forecasts/models/model_items/flareGLM_noDA.json | 2 +- catalog/forecasts/models/model_items/flareGOTM.json | 2 +- catalog/forecasts/models/model_items/flareGOTM_noDA.json | 2 +- catalog/forecasts/models/model_items/flareSimstrat.json | 2 +- catalog/forecasts/models/model_items/flareSimstrat_noDA.json | 2 +- catalog/forecasts/models/model_items/flare_ler.json | 2 +- catalog/forecasts/models/model_items/flare_ler_baselines.json | 2 +- catalog/forecasts/models/model_items/lasso.json | 2 +- catalog/forecasts/models/model_items/null.json | 2 +- .../forecasts/models/model_items/prophet_clim_ensemble.json | 2 +- catalog/forecasts/models/model_items/randfor.json | 2 +- catalog/forecasts/models/model_items/tg_auto_adam.json | 2 +- catalog/forecasts/models/model_items/tg_bag_mlp.json | 2 +- catalog/forecasts/models/model_items/tg_humidity_lm.json | 2 +- .../models/model_items/tg_humidity_lm_all_sites.json | 2 +- catalog/forecasts/models/model_items/tg_lasso.json | 2 +- catalog/forecasts/models/model_items/tg_lasso_all_sites.json | 2 +- catalog/forecasts/models/model_items/tg_precip_lm.json | 2 +- .../forecasts/models/model_items/tg_precip_lm_all_sites.json | 2 +- catalog/forecasts/models/model_items/tg_randfor.json | 2 +- .../forecasts/models/model_items/tg_randfor_all_sites.json | 2 +- catalog/forecasts/models/model_items/tg_temp_lm.json | 2 +- .../forecasts/models/model_items/tg_temp_lm_all_sites.json | 2 +- challenge_configuration.yaml | 2 +- 52 files changed, 54 insertions(+), 54 deletions(-) diff --git a/catalog/forecasts/Aquatics/Daily Chlorophyll-a/collection.json b/catalog/forecasts/Aquatics/Daily Chlorophyll-a/collection.json index c686a23547..90daa2d28b 100644 --- a/catalog/forecasts/Aquatics/Daily Chlorophyll-a/collection.json +++ b/catalog/forecasts/Aquatics/Daily Chlorophyll-a/collection.json @@ -172,7 +172,7 @@ }, { "rel": "describedby", - "href": "https://projects.ecoforecast.org/neon4cast-dashboard/", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", "title": "NEON Forecast Challenge Dashboard", "type": "text/html" } diff --git a/catalog/forecasts/Aquatics/Daily Dissolved oxygen/collection.json b/catalog/forecasts/Aquatics/Daily Dissolved oxygen/collection.json index 9063175f7d..704dccaf68 100644 --- a/catalog/forecasts/Aquatics/Daily Dissolved oxygen/collection.json +++ b/catalog/forecasts/Aquatics/Daily Dissolved oxygen/collection.json @@ -152,7 +152,7 @@ }, { "rel": "describedby", - "href": "https://projects.ecoforecast.org/neon4cast-dashboard/", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", "title": "NEON Forecast Challenge Dashboard", "type": "text/html" } @@ -168,7 +168,7 @@ "interval": [ [ "2023-03-01T00:00:00Z", - "2024-10-02T00:00:00Z" + "2024-10-03T00:00:00Z" ] ] } diff --git a/catalog/forecasts/Aquatics/Daily Water temperature/collection.json b/catalog/forecasts/Aquatics/Daily Water temperature/collection.json index efe7e2bc99..2b0e3a8b0a 100644 --- a/catalog/forecasts/Aquatics/Daily Water temperature/collection.json +++ b/catalog/forecasts/Aquatics/Daily Water temperature/collection.json @@ -222,7 +222,7 @@ }, { "rel": "describedby", - "href": "https://projects.ecoforecast.org/neon4cast-dashboard/", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", "title": "NEON Forecast Challenge Dashboard", "type": "text/html" } @@ -238,7 +238,7 @@ "interval": [ [ "2023-01-10T00:00:00Z", - "2024-10-02T00:00:00Z" + "2024-10-03T00:00:00Z" ] ] } diff --git a/catalog/forecasts/Aquatics/collection.json b/catalog/forecasts/Aquatics/collection.json index e4294ce5db..561170e33a 100644 --- a/catalog/forecasts/Aquatics/collection.json +++ b/catalog/forecasts/Aquatics/collection.json @@ -52,7 +52,7 @@ }, { "rel": "describedby", - "href": "https://projects.ecoforecast.org/neon4cast-dashboard/", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", "title": "NEON Forecast Challenge Dashboard", "type": "text/html" } diff --git a/catalog/forecasts/Beetles/Weekly beetle community abundance/collection.json b/catalog/forecasts/Beetles/Weekly beetle community abundance/collection.json index d13fce8305..c083686763 100644 --- a/catalog/forecasts/Beetles/Weekly beetle community abundance/collection.json +++ b/catalog/forecasts/Beetles/Weekly beetle community abundance/collection.json @@ -102,7 +102,7 @@ }, { "rel": "describedby", - "href": "https://projects.ecoforecast.org/neon4cast-dashboard/", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", "title": "NEON Forecast Challenge Dashboard", "type": "text/html" } diff --git a/catalog/forecasts/Beetles/Weekly beetle community richness/collection.json b/catalog/forecasts/Beetles/Weekly beetle community richness/collection.json index 55c9e0d0c4..2e68e5443e 100644 --- a/catalog/forecasts/Beetles/Weekly beetle community richness/collection.json +++ b/catalog/forecasts/Beetles/Weekly beetle community richness/collection.json @@ -102,7 +102,7 @@ }, { "rel": "describedby", - "href": "https://projects.ecoforecast.org/neon4cast-dashboard/", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", "title": "NEON Forecast Challenge Dashboard", "type": "text/html" } diff --git a/catalog/forecasts/Beetles/collection.json b/catalog/forecasts/Beetles/collection.json index c5a81892e8..8dcc7556ec 100644 --- a/catalog/forecasts/Beetles/collection.json +++ b/catalog/forecasts/Beetles/collection.json @@ -47,7 +47,7 @@ }, { "rel": "describedby", - "href": "https://projects.ecoforecast.org/neon4cast-dashboard/", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", "title": "NEON Forecast Challenge Dashboard", "type": "text/html" } diff --git a/catalog/forecasts/Phenology/Daily Green chromatic coordinate/collection.json b/catalog/forecasts/Phenology/Daily Green chromatic coordinate/collection.json index e8c1b46fb6..63f8d52c85 100644 --- a/catalog/forecasts/Phenology/Daily Green chromatic coordinate/collection.json +++ b/catalog/forecasts/Phenology/Daily Green chromatic coordinate/collection.json @@ -127,7 +127,7 @@ }, { "rel": "describedby", - "href": "https://projects.ecoforecast.org/neon4cast-dashboard/", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", "title": "NEON Forecast Challenge Dashboard", "type": "text/html" } diff --git a/catalog/forecasts/Phenology/Daily Red chromatic coordinate/collection.json b/catalog/forecasts/Phenology/Daily Red chromatic coordinate/collection.json index f664971c99..189b5b666f 100644 --- a/catalog/forecasts/Phenology/Daily Red chromatic coordinate/collection.json +++ b/catalog/forecasts/Phenology/Daily Red chromatic coordinate/collection.json @@ -142,7 +142,7 @@ }, { "rel": "describedby", - "href": "https://projects.ecoforecast.org/neon4cast-dashboard/", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", "title": "NEON Forecast Challenge Dashboard", "type": "text/html" } diff --git a/catalog/forecasts/Phenology/collection.json b/catalog/forecasts/Phenology/collection.json index 1ec20275b2..564574078d 100644 --- a/catalog/forecasts/Phenology/collection.json +++ b/catalog/forecasts/Phenology/collection.json @@ -47,7 +47,7 @@ }, { "rel": "describedby", - "href": "https://projects.ecoforecast.org/neon4cast-dashboard/", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", "title": "NEON Forecast Challenge Dashboard", "type": "text/html" } diff --git a/catalog/forecasts/Terrestrial/30min latent heat flux/collection.json b/catalog/forecasts/Terrestrial/30min latent heat flux/collection.json index 06f75fe447..daccd7d210 100644 --- a/catalog/forecasts/Terrestrial/30min latent heat flux/collection.json +++ b/catalog/forecasts/Terrestrial/30min latent heat flux/collection.json @@ -42,7 +42,7 @@ }, { "rel": "describedby", - "href": "https://projects.ecoforecast.org/neon4cast-dashboard/", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", "title": "NEON Forecast Challenge Dashboard", "type": "text/html" } diff --git a/catalog/forecasts/Terrestrial/Daily Net ecosystem exchange/collection.json b/catalog/forecasts/Terrestrial/Daily Net ecosystem exchange/collection.json index 8f873e15da..5ed96f36f1 100644 --- a/catalog/forecasts/Terrestrial/Daily Net ecosystem exchange/collection.json +++ b/catalog/forecasts/Terrestrial/Daily Net ecosystem exchange/collection.json @@ -122,7 +122,7 @@ }, { "rel": "describedby", - "href": "https://projects.ecoforecast.org/neon4cast-dashboard/", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", "title": "NEON Forecast Challenge Dashboard", "type": "text/html" } diff --git a/catalog/forecasts/Terrestrial/collection.json b/catalog/forecasts/Terrestrial/collection.json index 6811d949cb..6e5a2b6525 100644 --- a/catalog/forecasts/Terrestrial/collection.json +++ b/catalog/forecasts/Terrestrial/collection.json @@ -57,7 +57,7 @@ }, { "rel": "describedby", - "href": "https://projects.ecoforecast.org/neon4cast-dashboard/", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", "title": "NEON Forecast Challenge Dashboard", "type": "text/html" } diff --git a/catalog/forecasts/Ticks/Weekly Amblyomma americanum population/collection.json b/catalog/forecasts/Ticks/Weekly Amblyomma americanum population/collection.json index 2ff4d2e25d..3d73e76161 100644 --- a/catalog/forecasts/Ticks/Weekly Amblyomma americanum population/collection.json +++ b/catalog/forecasts/Ticks/Weekly Amblyomma americanum population/collection.json @@ -102,7 +102,7 @@ }, { "rel": "describedby", - "href": "https://projects.ecoforecast.org/neon4cast-dashboard/", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", "title": "NEON Forecast Challenge Dashboard", "type": "text/html" } diff --git a/catalog/forecasts/Ticks/collection.json b/catalog/forecasts/Ticks/collection.json index e9fc86290c..e6523de3ec 100644 --- a/catalog/forecasts/Ticks/collection.json +++ b/catalog/forecasts/Ticks/collection.json @@ -42,7 +42,7 @@ }, { "rel": "describedby", - "href": "https://projects.ecoforecast.org/neon4cast-dashboard/", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", "title": "NEON Forecast Challenge Dashboard", "type": "text/html" } diff --git a/catalog/forecasts/collection.json b/catalog/forecasts/collection.json index e1b980f121..2cc783bc91 100644 --- a/catalog/forecasts/collection.json +++ b/catalog/forecasts/collection.json @@ -73,7 +73,7 @@ }, { "rel": "describedby", - "href": "https://projects.ecoforecast.org/neon4cast-dashboard/", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", "title": "NEON Forecast Challenge Dashboard", "type": "text/html" } diff --git a/catalog/forecasts/models/collection.json b/catalog/forecasts/models/collection.json index 6554d08a42..5dde52e35d 100644 --- a/catalog/forecasts/models/collection.json +++ b/catalog/forecasts/models/collection.json @@ -282,7 +282,7 @@ }, { "rel": "describedby", - "href": "https://projects.ecoforecast.org/neon4cast-dashboard/", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", "title": "NEON Forecast Challenge Dashboard", "type": "text/html" } diff --git a/catalog/forecasts/models/model_items/GLEON_JRabaey_temp_physics.json b/catalog/forecasts/models/model_items/GLEON_JRabaey_temp_physics.json index 796d5718c7..cad8448787 100644 --- a/catalog/forecasts/models/model_items/GLEON_JRabaey_temp_physics.json +++ b/catalog/forecasts/models/model_items/GLEON_JRabaey_temp_physics.json @@ -55,7 +55,7 @@ "properties": { "description": [], "start_datetime": "2023-10-19", - "end_datetime": "2023-12-09", + "end_datetime": "2023-12-10", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/GLEON_lm_lag_1day.json b/catalog/forecasts/models/model_items/GLEON_lm_lag_1day.json index 9d8a0a202b..d7c62f9d2c 100644 --- a/catalog/forecasts/models/model_items/GLEON_lm_lag_1day.json +++ b/catalog/forecasts/models/model_items/GLEON_lm_lag_1day.json @@ -28,7 +28,7 @@ "properties": { "description": [], "start_datetime": "2023-10-19", - "end_datetime": "2023-12-10", + "end_datetime": "2023-12-11", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/GLEON_physics.json b/catalog/forecasts/models/model_items/GLEON_physics.json index 4bed224c44..cce98b2fcb 100644 --- a/catalog/forecasts/models/model_items/GLEON_physics.json +++ b/catalog/forecasts/models/model_items/GLEON_physics.json @@ -28,7 +28,7 @@ "properties": { "description": [], "start_datetime": "2023-10-19", - "end_datetime": "2023-12-10", + "end_datetime": "2023-12-11", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/USGSHABs1.json b/catalog/forecasts/models/model_items/USGSHABs1.json index b8cab633a2..4fed58096a 100644 --- a/catalog/forecasts/models/model_items/USGSHABs1.json +++ b/catalog/forecasts/models/model_items/USGSHABs1.json @@ -24,7 +24,7 @@ "properties": { "description": [], "start_datetime": "2023-10-19", - "end_datetime": "2023-12-10", + "end_datetime": "2023-12-11", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/air2waterSat_2.json b/catalog/forecasts/models/model_items/air2waterSat_2.json index 877511b2d0..b218ecbd94 100644 --- a/catalog/forecasts/models/model_items/air2waterSat_2.json +++ b/catalog/forecasts/models/model_items/air2waterSat_2.json @@ -55,7 +55,7 @@ "properties": { "description": [], "start_datetime": "2023-10-19", - "end_datetime": "2023-12-11", + "end_datetime": "2023-12-12", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/baseline_ensemble.json b/catalog/forecasts/models/model_items/baseline_ensemble.json index 5372eb08b3..e91fbc0d37 100644 --- a/catalog/forecasts/models/model_items/baseline_ensemble.json +++ b/catalog/forecasts/models/model_items/baseline_ensemble.json @@ -99,7 +99,7 @@ "properties": { "description": [], "start_datetime": "2023-10-19", - "end_datetime": "2023-12-06", + "end_datetime": "2023-12-07", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/cb_prophet.json b/catalog/forecasts/models/model_items/cb_prophet.json index 5fdef92d6a..be89fbd4e3 100644 --- a/catalog/forecasts/models/model_items/cb_prophet.json +++ b/catalog/forecasts/models/model_items/cb_prophet.json @@ -102,7 +102,7 @@ "properties": { "description": [], "start_datetime": "2023-10-20", - "end_datetime": "2023-12-10", + "end_datetime": "2023-12-11", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/fARIMA.json b/catalog/forecasts/models/model_items/fARIMA.json index 43e1cb7417..bc9bb237a6 100644 --- a/catalog/forecasts/models/model_items/fARIMA.json +++ b/catalog/forecasts/models/model_items/fARIMA.json @@ -55,7 +55,7 @@ "properties": { "description": [], "start_datetime": "2023-11-05", - "end_datetime": "2023-12-11", + "end_datetime": "2023-12-12", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/fARIMA_clim_ensemble.json b/catalog/forecasts/models/model_items/fARIMA_clim_ensemble.json index 8f5a582786..72fc688362 100644 --- a/catalog/forecasts/models/model_items/fARIMA_clim_ensemble.json +++ b/catalog/forecasts/models/model_items/fARIMA_clim_ensemble.json @@ -50,7 +50,7 @@ "properties": { "description": [], "start_datetime": "2023-10-19", - "end_datetime": "2023-12-06", + "end_datetime": "2023-12-07", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/fTSLM_lag.json b/catalog/forecasts/models/model_items/fTSLM_lag.json index 6a15ed50b4..3365acbd57 100644 --- a/catalog/forecasts/models/model_items/fTSLM_lag.json +++ b/catalog/forecasts/models/model_items/fTSLM_lag.json @@ -55,7 +55,7 @@ "properties": { "description": [], "start_datetime": "2023-11-05", - "end_datetime": "2023-12-11", + "end_datetime": "2023-12-12", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/flareGLM.json b/catalog/forecasts/models/model_items/flareGLM.json index 94a3ee7090..7b31e54254 100644 --- a/catalog/forecasts/models/model_items/flareGLM.json +++ b/catalog/forecasts/models/model_items/flareGLM.json @@ -28,7 +28,7 @@ "properties": { "description": [], "start_datetime": "2023-10-20", - "end_datetime": "2023-12-07", + "end_datetime": "2023-12-08", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/flareGLM_noDA.json b/catalog/forecasts/models/model_items/flareGLM_noDA.json index 58dbc4d324..ecaf5bf081 100644 --- a/catalog/forecasts/models/model_items/flareGLM_noDA.json +++ b/catalog/forecasts/models/model_items/flareGLM_noDA.json @@ -28,7 +28,7 @@ "properties": { "description": [], "start_datetime": "2023-10-20", - "end_datetime": "2023-12-07", + "end_datetime": "2023-12-08", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/flareGOTM.json b/catalog/forecasts/models/model_items/flareGOTM.json index 7e455d05f3..39d3d529ae 100644 --- a/catalog/forecasts/models/model_items/flareGOTM.json +++ b/catalog/forecasts/models/model_items/flareGOTM.json @@ -27,7 +27,7 @@ "properties": { "description": [], "start_datetime": "2023-10-20", - "end_datetime": "2023-12-07", + "end_datetime": "2023-12-08", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/flareGOTM_noDA.json b/catalog/forecasts/models/model_items/flareGOTM_noDA.json index 3f97e44a1e..4f0ef9057e 100644 --- a/catalog/forecasts/models/model_items/flareGOTM_noDA.json +++ b/catalog/forecasts/models/model_items/flareGOTM_noDA.json @@ -27,7 +27,7 @@ "properties": { "description": [], "start_datetime": "2023-10-20", - "end_datetime": "2023-12-07", + "end_datetime": "2023-12-08", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/flareSimstrat.json b/catalog/forecasts/models/model_items/flareSimstrat.json index 1561a32d0d..283a793d22 100644 --- a/catalog/forecasts/models/model_items/flareSimstrat.json +++ b/catalog/forecasts/models/model_items/flareSimstrat.json @@ -27,7 +27,7 @@ "properties": { "description": [], "start_datetime": "2023-10-20", - "end_datetime": "2023-12-07", + "end_datetime": "2023-12-08", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/flareSimstrat_noDA.json b/catalog/forecasts/models/model_items/flareSimstrat_noDA.json index 02199f61af..0765ae9304 100644 --- a/catalog/forecasts/models/model_items/flareSimstrat_noDA.json +++ b/catalog/forecasts/models/model_items/flareSimstrat_noDA.json @@ -26,7 +26,7 @@ "properties": { "description": [], "start_datetime": "2023-10-20", - "end_datetime": "2023-12-07", + "end_datetime": "2023-12-08", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/flare_ler.json b/catalog/forecasts/models/model_items/flare_ler.json index 13b4555bef..cad82c651a 100644 --- a/catalog/forecasts/models/model_items/flare_ler.json +++ b/catalog/forecasts/models/model_items/flare_ler.json @@ -27,7 +27,7 @@ "properties": { "description": [], "start_datetime": "2023-10-19", - "end_datetime": "2023-12-06", + "end_datetime": "2023-12-07", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/flare_ler_baselines.json b/catalog/forecasts/models/model_items/flare_ler_baselines.json index ac77dcc005..b7d6357569 100644 --- a/catalog/forecasts/models/model_items/flare_ler_baselines.json +++ b/catalog/forecasts/models/model_items/flare_ler_baselines.json @@ -27,7 +27,7 @@ "properties": { "description": [], "start_datetime": "2023-10-19", - "end_datetime": "2023-12-06", + "end_datetime": "2023-12-07", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/lasso.json b/catalog/forecasts/models/model_items/lasso.json index 051f098b04..b8be305276 100644 --- a/catalog/forecasts/models/model_items/lasso.json +++ b/catalog/forecasts/models/model_items/lasso.json @@ -68,7 +68,7 @@ "properties": { "description": [], "start_datetime": "2023-10-19", - "end_datetime": "2023-12-10", + "end_datetime": "2023-12-11", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/null.json b/catalog/forecasts/models/model_items/null.json index b949c1e722..01ae0217ba 100644 --- a/catalog/forecasts/models/model_items/null.json +++ b/catalog/forecasts/models/model_items/null.json @@ -55,7 +55,7 @@ "properties": { "description": [], "start_datetime": "2023-01-10", - "end_datetime": "2024-10-02", + "end_datetime": "2024-10-03", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/prophet_clim_ensemble.json b/catalog/forecasts/models/model_items/prophet_clim_ensemble.json index 0eb9c164e1..c022d4577b 100644 --- a/catalog/forecasts/models/model_items/prophet_clim_ensemble.json +++ b/catalog/forecasts/models/model_items/prophet_clim_ensemble.json @@ -67,7 +67,7 @@ "properties": { "description": [], "start_datetime": "2023-10-18", - "end_datetime": "2023-12-06", + "end_datetime": "2023-12-07", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/randfor.json b/catalog/forecasts/models/model_items/randfor.json index ce576ade83..8783125b1f 100644 --- a/catalog/forecasts/models/model_items/randfor.json +++ b/catalog/forecasts/models/model_items/randfor.json @@ -68,7 +68,7 @@ "properties": { "description": [], "start_datetime": "2023-10-19", - "end_datetime": "2023-12-10", + "end_datetime": "2023-12-11", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/tg_auto_adam.json b/catalog/forecasts/models/model_items/tg_auto_adam.json index 229f5d98b2..55e1fd37cf 100644 --- a/catalog/forecasts/models/model_items/tg_auto_adam.json +++ b/catalog/forecasts/models/model_items/tg_auto_adam.json @@ -102,7 +102,7 @@ "properties": { "description": [], "start_datetime": "2023-09-01", - "end_datetime": "2023-12-08", + "end_datetime": "2023-12-09", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/tg_bag_mlp.json b/catalog/forecasts/models/model_items/tg_bag_mlp.json index c5ee9130a3..d777194e11 100644 --- a/catalog/forecasts/models/model_items/tg_bag_mlp.json +++ b/catalog/forecasts/models/model_items/tg_bag_mlp.json @@ -102,7 +102,7 @@ "properties": { "description": [], "start_datetime": "2023-03-27", - "end_datetime": "2023-12-10", + "end_datetime": "2023-12-11", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/tg_humidity_lm.json b/catalog/forecasts/models/model_items/tg_humidity_lm.json index 6659bc614f..9d59c0146d 100644 --- a/catalog/forecasts/models/model_items/tg_humidity_lm.json +++ b/catalog/forecasts/models/model_items/tg_humidity_lm.json @@ -102,7 +102,7 @@ "properties": { "description": [], "start_datetime": "2023-05-03", - "end_datetime": "2023-12-11", + "end_datetime": "2023-12-12", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/tg_humidity_lm_all_sites.json b/catalog/forecasts/models/model_items/tg_humidity_lm_all_sites.json index 705c77d846..884f98f1f5 100644 --- a/catalog/forecasts/models/model_items/tg_humidity_lm_all_sites.json +++ b/catalog/forecasts/models/model_items/tg_humidity_lm_all_sites.json @@ -102,7 +102,7 @@ "properties": { "description": [], "start_datetime": "2023-04-26", - "end_datetime": "2023-12-11", + "end_datetime": "2023-12-12", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/tg_lasso.json b/catalog/forecasts/models/model_items/tg_lasso.json index f8fdfe36ed..f8d1948d5c 100644 --- a/catalog/forecasts/models/model_items/tg_lasso.json +++ b/catalog/forecasts/models/model_items/tg_lasso.json @@ -102,7 +102,7 @@ "properties": { "description": [], "start_datetime": "2023-10-19", - "end_datetime": "2023-12-11", + "end_datetime": "2023-12-12", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/tg_lasso_all_sites.json b/catalog/forecasts/models/model_items/tg_lasso_all_sites.json index 2474ada6e1..b2736e7a87 100644 --- a/catalog/forecasts/models/model_items/tg_lasso_all_sites.json +++ b/catalog/forecasts/models/model_items/tg_lasso_all_sites.json @@ -102,7 +102,7 @@ "properties": { "description": [], "start_datetime": "2023-10-19", - "end_datetime": "2023-12-10", + "end_datetime": "2023-12-11", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/tg_precip_lm.json b/catalog/forecasts/models/model_items/tg_precip_lm.json index 36f6cad40c..2eb02edf11 100644 --- a/catalog/forecasts/models/model_items/tg_precip_lm.json +++ b/catalog/forecasts/models/model_items/tg_precip_lm.json @@ -102,7 +102,7 @@ "properties": { "description": [], "start_datetime": "2023-05-11", - "end_datetime": "2023-12-11", + "end_datetime": "2023-12-12", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/tg_precip_lm_all_sites.json b/catalog/forecasts/models/model_items/tg_precip_lm_all_sites.json index 17dff4cb2e..1292e0387b 100644 --- a/catalog/forecasts/models/model_items/tg_precip_lm_all_sites.json +++ b/catalog/forecasts/models/model_items/tg_precip_lm_all_sites.json @@ -102,7 +102,7 @@ "properties": { "description": [], "start_datetime": "2023-05-16", - "end_datetime": "2023-12-11", + "end_datetime": "2023-12-12", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/tg_randfor.json b/catalog/forecasts/models/model_items/tg_randfor.json index e6c4d32e71..c525c2a1cd 100644 --- a/catalog/forecasts/models/model_items/tg_randfor.json +++ b/catalog/forecasts/models/model_items/tg_randfor.json @@ -102,7 +102,7 @@ "properties": { "description": [], "start_datetime": "2023-10-19", - "end_datetime": "2023-12-10", + "end_datetime": "2023-12-11", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/tg_randfor_all_sites.json b/catalog/forecasts/models/model_items/tg_randfor_all_sites.json index 0fd98899c8..dbfc11cedd 100644 --- a/catalog/forecasts/models/model_items/tg_randfor_all_sites.json +++ b/catalog/forecasts/models/model_items/tg_randfor_all_sites.json @@ -102,7 +102,7 @@ "properties": { "description": [], "start_datetime": "2023-10-19", - "end_datetime": "2023-12-10", + "end_datetime": "2023-12-11", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/tg_temp_lm.json b/catalog/forecasts/models/model_items/tg_temp_lm.json index d40ff57ac8..00873135d9 100644 --- a/catalog/forecasts/models/model_items/tg_temp_lm.json +++ b/catalog/forecasts/models/model_items/tg_temp_lm.json @@ -102,7 +102,7 @@ "properties": { "description": [], "start_datetime": "2023-04-19", - "end_datetime": "2023-12-11", + "end_datetime": "2023-12-12", "providers": [ { "url": "pending", diff --git a/catalog/forecasts/models/model_items/tg_temp_lm_all_sites.json b/catalog/forecasts/models/model_items/tg_temp_lm_all_sites.json index cb5171a0c5..b61357051a 100644 --- a/catalog/forecasts/models/model_items/tg_temp_lm_all_sites.json +++ b/catalog/forecasts/models/model_items/tg_temp_lm_all_sites.json @@ -102,7 +102,7 @@ "properties": { "description": [], "start_datetime": "2023-04-26", - "end_datetime": "2023-12-11", + "end_datetime": "2023-12-12", "providers": [ { "url": "pending", diff --git a/challenge_configuration.yaml b/challenge_configuration.yaml index 29a3bf2be2..9bd7a6ff9e 100644 --- a/challenge_configuration.yaml +++ b/challenge_configuration.yaml @@ -63,6 +63,6 @@ catalog_config: base_image_path: 'https://data.ecoforecast.org/neon4cast-catalog' citation_doi: "https://doi.org/10.1002/fee.2616" citation_text: "Thomas, R.Q., C. Boettiger, C.C. Carey, M.C. Dietze, L.R. Johnson, M.A. Kenney, J.S. Mclachlan, J.A. Peters, E.R. Sokol, J.F. Weltzin, A. Willson, W.M. Woelmer, and Challenge Contributors. 2023. The NEON Ecological Forecasting Challenge. Frontiers in Ecology and Environment 21: 112-113." - dashboard_url: "https://projects.ecoforecast.org/neon4cast-dashboard/" + dashboard_url: "https://projects.ecoforecast.org/neon4cast-docs/" dashboard_title: "NEON Forecast Challenge Dashboard" site_metadata_url: 'https://raw.githubusercontent.com/eco4cast/neon4cast-ci/main/neon4cast_field_site_metadata.csv' From df3ddff0daf87564b3c5917cd92e76087e401736 Mon Sep 17 00:00:00 2001 From: addelany Date: Thu, 9 Nov 2023 10:44:12 -0600 Subject: [PATCH 02/10] create scores --- catalog/forecasts/forecast_models.R | 2 - .../Daily Chlorophyll-a/collection.json | 317 +++++++++++++++ .../Daily Dissolved oxygen/collection.json | 297 ++++++++++++++ .../Daily Water temperature/collection.json | 367 ++++++++++++++++++ catalog/scores/Aquatics/collection.json | 197 ++++++++++ .../collection.json | 247 ++++++++++++ .../collection.json | 247 ++++++++++++ catalog/scores/Beetles/collection.json | 192 +++++++++ .../collection.json | 272 +++++++++++++ .../collection.json | 287 ++++++++++++++ catalog/scores/Phenology/collection.json | 192 +++++++++ .../30min latent heat flux/collection.json | 187 +++++++++ .../collection.json | 267 +++++++++++++ catalog/scores/Terrestrial/collection.json | 202 ++++++++++ .../collection.json | 247 ++++++++++++ catalog/scores/Ticks/collection.json | 187 +++++++++ catalog/scores/collection.json | 55 ++- catalog/scores/models/collection.json | 236 +++++++++-- .../GLEON_JRabaey_temp_physics.json | 227 +++++++++++ .../models/model_items/GLEON_lm_lag_1day.json | 207 ++++++++++ .../models/model_items/GLEON_physics.json | 200 ++++++++++ .../scores/models/model_items/USGSHABs1.json | 196 ++++++++++ .../models/model_items/air2waterSat_2.json | 234 +++++++++++ .../models/model_items/baseline_ensemble.json | 278 +++++++++++++ .../scores/models/model_items/cb_prophet.json | 316 +++++++++++++++ .../models/model_items/climatology.json | 163 ++++++-- catalog/scores/models/model_items/fARIMA.json | 227 +++++++++++ .../model_items/fARIMA_clim_ensemble.json | 222 +++++++++++ .../scores/models/model_items/fTSLM_lag.json | 227 +++++++++++ .../scores/models/model_items/flareGLM.json | 200 ++++++++++ .../models/model_items/flareGLM_noDA.json | 200 ++++++++++ .../scores/models/model_items/flareGOTM.json | 199 ++++++++++ .../models/model_items/flareGOTM_noDA.json | 199 ++++++++++ .../models/model_items/flareSimstrat.json | 199 ++++++++++ .../model_items/flareSimstrat_noDA.json | 198 ++++++++++ .../scores/models/model_items/flare_ler.json | 199 ++++++++++ .../model_items/flare_ler_baselines.json | 199 ++++++++++ catalog/scores/models/model_items/lasso.json | 247 ++++++++++++ catalog/scores/models/model_items/null.json | 234 +++++++++++ .../models/model_items/persistenceRW.json | 143 ++++++- .../model_items/procBlanchardMonod.json | 200 ++++++++++ .../model_items/procBlanchardSteele.json | 200 ++++++++++ .../models/model_items/procCTMIMonod.json | 200 ++++++++++ .../models/model_items/procCTMISteele.json | 200 ++++++++++ .../model_items/procEppleyNorbergMonod.json | 200 ++++++++++ .../model_items/procEppleyNorbergSteele.json | 200 ++++++++++ .../model_items/procHinshelwoodMonod.json | 200 ++++++++++ .../model_items/procHinshelwoodSteele.json | 200 ++++++++++ .../model_items/prophet_clim_ensemble.json | 239 ++++++++++++ .../scores/models/model_items/randfor.json | 240 ++++++++++++ .../scores/models/model_items/tg_arima.json | 337 ++++++++++++++++ .../models/model_items/tg_auto_adam.json | 316 +++++++++++++++ .../scores/models/model_items/tg_bag_mlp.json | 316 +++++++++++++++ catalog/scores/models/model_items/tg_ets.json | 337 ++++++++++++++++ .../models/model_items/tg_humidity_lm.json | 337 ++++++++++++++++ .../model_items/tg_humidity_lm_all_sites.json | 337 ++++++++++++++++ .../scores/models/model_items/tg_lasso.json | 323 +++++++++++++++ .../model_items/tg_lasso_all_sites.json | 323 +++++++++++++++ .../models/model_items/tg_precip_lm.json | 337 ++++++++++++++++ .../model_items/tg_precip_lm_all_sites.json | 337 ++++++++++++++++ .../scores/models/model_items/tg_randfor.json | 337 ++++++++++++++++ .../model_items/tg_randfor_all_sites.json | 309 +++++++++++++++ .../scores/models/model_items/tg_tbats.json | 337 ++++++++++++++++ .../scores/models/model_items/tg_temp_lm.json | 337 ++++++++++++++++ .../model_items/tg_temp_lm_all_sites.json | 337 ++++++++++++++++ catalog/scores/models/model_items/tslm.json | 234 +++++++++++ .../models/model_items/xgboost_parallel.json | 291 ++++++++++++++ catalog/scores/scores_models.R | 92 ++++- 68 files changed, 16242 insertions(+), 123 deletions(-) create mode 100644 catalog/scores/Aquatics/Daily Chlorophyll-a/collection.json create mode 100644 catalog/scores/Aquatics/Daily Dissolved oxygen/collection.json create mode 100644 catalog/scores/Aquatics/Daily Water temperature/collection.json create mode 100644 catalog/scores/Aquatics/collection.json create mode 100644 catalog/scores/Beetles/Weekly beetle community abundance/collection.json create mode 100644 catalog/scores/Beetles/Weekly beetle community richness/collection.json create mode 100644 catalog/scores/Beetles/collection.json create mode 100644 catalog/scores/Phenology/Daily Green chromatic coordinate/collection.json create mode 100644 catalog/scores/Phenology/Daily Red chromatic coordinate/collection.json create mode 100644 catalog/scores/Phenology/collection.json create mode 100644 catalog/scores/Terrestrial/30min latent heat flux/collection.json create mode 100644 catalog/scores/Terrestrial/Daily Net ecosystem exchange/collection.json create mode 100644 catalog/scores/Terrestrial/collection.json create mode 100644 catalog/scores/Ticks/Weekly Amblyomma americanum population/collection.json create mode 100644 catalog/scores/Ticks/collection.json create mode 100644 catalog/scores/models/model_items/GLEON_JRabaey_temp_physics.json create mode 100644 catalog/scores/models/model_items/GLEON_lm_lag_1day.json create mode 100644 catalog/scores/models/model_items/GLEON_physics.json create mode 100644 catalog/scores/models/model_items/USGSHABs1.json create mode 100644 catalog/scores/models/model_items/air2waterSat_2.json create mode 100644 catalog/scores/models/model_items/baseline_ensemble.json create mode 100644 catalog/scores/models/model_items/cb_prophet.json create mode 100644 catalog/scores/models/model_items/fARIMA.json create mode 100644 catalog/scores/models/model_items/fARIMA_clim_ensemble.json create mode 100644 catalog/scores/models/model_items/fTSLM_lag.json create mode 100644 catalog/scores/models/model_items/flareGLM.json create mode 100644 catalog/scores/models/model_items/flareGLM_noDA.json create mode 100644 catalog/scores/models/model_items/flareGOTM.json create mode 100644 catalog/scores/models/model_items/flareGOTM_noDA.json create mode 100644 catalog/scores/models/model_items/flareSimstrat.json create mode 100644 catalog/scores/models/model_items/flareSimstrat_noDA.json create mode 100644 catalog/scores/models/model_items/flare_ler.json create mode 100644 catalog/scores/models/model_items/flare_ler_baselines.json create mode 100644 catalog/scores/models/model_items/lasso.json create mode 100644 catalog/scores/models/model_items/null.json create mode 100644 catalog/scores/models/model_items/procBlanchardMonod.json create mode 100644 catalog/scores/models/model_items/procBlanchardSteele.json create mode 100644 catalog/scores/models/model_items/procCTMIMonod.json create mode 100644 catalog/scores/models/model_items/procCTMISteele.json create mode 100644 catalog/scores/models/model_items/procEppleyNorbergMonod.json create mode 100644 catalog/scores/models/model_items/procEppleyNorbergSteele.json create mode 100644 catalog/scores/models/model_items/procHinshelwoodMonod.json create mode 100644 catalog/scores/models/model_items/procHinshelwoodSteele.json create mode 100644 catalog/scores/models/model_items/prophet_clim_ensemble.json create mode 100644 catalog/scores/models/model_items/randfor.json create mode 100644 catalog/scores/models/model_items/tg_arima.json create mode 100644 catalog/scores/models/model_items/tg_auto_adam.json create mode 100644 catalog/scores/models/model_items/tg_bag_mlp.json create mode 100644 catalog/scores/models/model_items/tg_ets.json create mode 100644 catalog/scores/models/model_items/tg_humidity_lm.json create mode 100644 catalog/scores/models/model_items/tg_humidity_lm_all_sites.json create mode 100644 catalog/scores/models/model_items/tg_lasso.json create mode 100644 catalog/scores/models/model_items/tg_lasso_all_sites.json create mode 100644 catalog/scores/models/model_items/tg_precip_lm.json create mode 100644 catalog/scores/models/model_items/tg_precip_lm_all_sites.json create mode 100644 catalog/scores/models/model_items/tg_randfor.json create mode 100644 catalog/scores/models/model_items/tg_randfor_all_sites.json create mode 100644 catalog/scores/models/model_items/tg_tbats.json create mode 100644 catalog/scores/models/model_items/tg_temp_lm.json create mode 100644 catalog/scores/models/model_items/tg_temp_lm_all_sites.json create mode 100644 catalog/scores/models/model_items/tslm.json create mode 100644 catalog/scores/models/model_items/xgboost_parallel.json diff --git a/catalog/forecasts/forecast_models.R b/catalog/forecasts/forecast_models.R index 6a2f1983a5..98a58cb0b9 100644 --- a/catalog/forecasts/forecast_models.R +++ b/catalog/forecasts/forecast_models.R @@ -62,8 +62,6 @@ stac4cast::build_forecast_scores(table_schema = forecast_theme_df, description_string = build_description, about_string = catalog_config$about_string, about_title = catalog_config$about_title, - # dashboard_string = catalog_config$dashboard_url, - # dashboard_title = catalog_config$dashboard_title, theme_title = "Forecasts", destination_path = catalog_config$forecast_path, aws_download_path = catalog_config$aws_download_path, diff --git a/catalog/scores/Aquatics/Daily Chlorophyll-a/collection.json b/catalog/scores/Aquatics/Daily Chlorophyll-a/collection.json new file mode 100644 index 0000000000..a9cc8f6033 --- /dev/null +++ b/catalog/scores/Aquatics/Daily Chlorophyll-a/collection.json @@ -0,0 +1,317 @@ +{ + "id": "Daily Chlorophyll-a", + "description": "This page includes all models for the Daily Chlorophyll-a variable.", + "stac_version": "1.0.0", + "license": "CC0-1.0", + "stac_extensions": [ + "https://stac-extensions.github.io/scientific/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Collection", + "links": [ + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/climatology.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/procEppleyNorbergMonod.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_arima.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_humidity_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_humidity_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_precip_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_precip_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_randfor.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_temp_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_temp_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_ets.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/xgboost_parallel.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/USGSHABs1.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/persistenceRW.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/procCTMISteele.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/procHinshelwoodSteele.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_bag_mlp.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_tbats.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/procCTMIMonod.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/procBlanchardSteele.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/cb_prophet.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/procEppleyNorbergSteele.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_lasso.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/procBlanchardMonod.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/procHinshelwoodMonod.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_lasso_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_auto_adam.json" + }, + { + "rel": "parent", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "root", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "self", + "type": "application/json", + "href": "collection.json" + }, + { + "rel": "cite-as", + "href": "https://doi.org/10.1002/fee.2616" + }, + { + "rel": "about", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "type": "text/html", + "title": "NEON Ecological Forecasting Challenge Documentation" + }, + { + "rel": "describedby", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "title": "NEON Forecast Challenge Dashboard", + "type": "text/html" + } + ], + "title": "Daily Chlorophyll-a", + "extent": { + "spatial": { + "bbox": [ + [-149.6106, 29.676, -82.0084, 68.6307] + ] + }, + "temporal": { + "interval": [ + [ + "2023-01-01T00:00:00Z", + "2023-12-13T00:00:00Z" + ] + ] + } + }, + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ], + "assets": { + "data": { + "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=chla?endpoint_override=sdsc.osn.xsede.org", + "type": "application/x-parquet", + "title": "Database Access", + "roles": [ + "data" + ], + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=chla?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "thumbnail": { + "href": "pending", + "type": "image/JPEG", + "roles": [ + "thumbnail" + ], + "title": "pending" + } + } +} diff --git a/catalog/scores/Aquatics/Daily Dissolved oxygen/collection.json b/catalog/scores/Aquatics/Daily Dissolved oxygen/collection.json new file mode 100644 index 0000000000..8615ccf4aa --- /dev/null +++ b/catalog/scores/Aquatics/Daily Dissolved oxygen/collection.json @@ -0,0 +1,297 @@ +{ + "id": "Daily Dissolved oxygen", + "description": "This page includes all models for the Daily Dissolved oxygen variable.", + "stac_version": "1.0.0", + "license": "CC0-1.0", + "stac_extensions": [ + "https://stac-extensions.github.io/scientific/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Collection", + "links": [ + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_temp_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/air2waterSat_2.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_humidity_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_humidity_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_precip_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_precip_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_randfor_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_tbats.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_temp_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/cb_prophet.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_randfor.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/persistenceRW.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_lasso_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/climatology.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_bag_mlp.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_ets.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/null.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_lasso.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/xgboost_parallel.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/GLEON_lm_lag_1day.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_arima.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tslm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_auto_adam.json" + }, + { + "rel": "parent", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "root", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "self", + "type": "application/json", + "href": "collection.json" + }, + { + "rel": "cite-as", + "href": "https://doi.org/10.1002/fee.2616" + }, + { + "rel": "about", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "type": "text/html", + "title": "NEON Ecological Forecasting Challenge Documentation" + }, + { + "rel": "describedby", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "title": "NEON Forecast Challenge Dashboard", + "type": "text/html" + } + ], + "title": "Daily Dissolved oxygen", + "extent": { + "spatial": { + "bbox": [ + [-149.6106, 18.1135, -66.7987, 68.6698] + ] + }, + "temporal": { + "interval": [ + [ + "2023-03-01T00:00:00Z", + "2024-10-03T00:00:00Z" + ] + ] + } + }, + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ], + "assets": { + "data": { + "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=oxygen?endpoint_override=sdsc.osn.xsede.org", + "type": "application/x-parquet", + "title": "Database Access", + "roles": [ + "data" + ], + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=oxygen?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "thumbnail": { + "href": "pending", + "type": "image/JPEG", + "roles": [ + "thumbnail" + ], + "title": "pending" + } + } +} diff --git a/catalog/scores/Aquatics/Daily Water temperature/collection.json b/catalog/scores/Aquatics/Daily Water temperature/collection.json new file mode 100644 index 0000000000..5ea3aeb14f --- /dev/null +++ b/catalog/scores/Aquatics/Daily Water temperature/collection.json @@ -0,0 +1,367 @@ +{ + "id": "Daily Water temperature", + "description": "This page includes all models for the Daily Water temperature variable.", + "stac_version": "1.0.0", + "license": "CC0-1.0", + "stac_extensions": [ + "https://stac-extensions.github.io/scientific/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Collection", + "links": [ + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/fARIMA_clim_ensemble.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/fTSLM_lag.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/flareGOTM.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/flareSimstrat_noDA.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/flare_ler.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/flare_ler_baselines.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/persistenceRW.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_bag_mlp.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_humidity_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/GLEON_physics.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/baseline_ensemble.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/fARIMA.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/flareGOTM_noDA.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_arima.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/climatology.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/flareGLM.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_humidity_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_precip_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_precip_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_temp_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_temp_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/GLEON_JRabaey_temp_physics.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/air2waterSat_2.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/flareGLM_noDA.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_lasso_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_randfor_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_tbats.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_ets.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_lasso.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/flareSimstrat.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_randfor.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/GLEON_lm_lag_1day.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/cb_prophet.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/null.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tslm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/xgboost_parallel.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_auto_adam.json" + }, + { + "rel": "parent", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "root", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "self", + "type": "application/json", + "href": "collection.json" + }, + { + "rel": "cite-as", + "href": "https://doi.org/10.1002/fee.2616" + }, + { + "rel": "about", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "type": "text/html", + "title": "NEON Ecological Forecasting Challenge Documentation" + }, + { + "rel": "describedby", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "title": "NEON Forecast Challenge Dashboard", + "type": "text/html" + } + ], + "title": "Daily Water temperature", + "extent": { + "spatial": { + "bbox": [ + [-149.6106, 18.1135, -66.7987, 68.6698] + ] + }, + "temporal": { + "interval": [ + [ + "2023-01-10T00:00:00Z", + "2024-10-03T00:00:00Z" + ] + ] + } + }, + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ], + "assets": { + "data": { + "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=temperature?endpoint_override=sdsc.osn.xsede.org", + "type": "application/x-parquet", + "title": "Database Access", + "roles": [ + "data" + ], + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=temperature?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "thumbnail": { + "href": "pending", + "type": "image/JPEG", + "roles": [ + "thumbnail" + ], + "title": "pending" + } + } +} diff --git a/catalog/scores/Aquatics/collection.json b/catalog/scores/Aquatics/collection.json new file mode 100644 index 0000000000..ea29bb02c0 --- /dev/null +++ b/catalog/scores/Aquatics/collection.json @@ -0,0 +1,197 @@ +{ + "id": "Aquatics", + "description": "This page includes variables for the Aquatics group.", + "stac_version": "1.0.0", + "license": "CC0-1.0", + "stac_extensions": [ + "https://stac-extensions.github.io/scientific/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Collection", + "links": [ + { + "rel": "child", + "type": "application/json", + "href": "Daily Dissolved oxygen/collection.json" + }, + { + "rel": "child", + "type": "application/json", + "href": "Daily Water temperature/collection.json" + }, + { + "rel": "child", + "type": "application/json", + "href": "Daily Chlorophyll-a/collection.json" + }, + { + "rel": "parent", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "root", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "self", + "type": "application/json", + "href": "collection.json" + }, + { + "rel": "cite-as", + "href": "https://doi.org/10.1002/fee.2616" + }, + { + "rel": "about", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "type": "text/html", + "title": "NEON Ecological Forecasting Challenge Documentation" + }, + { + "rel": "describedby", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "title": "NEON Forecast Challenge Dashboard", + "type": "text/html" + } + ], + "title": "Aquatics", + "extent": { + "spatial": { + "bbox": [ + [-149.6106, 18.1135, -66.7987, 68.6698] + ] + }, + "temporal": { + "interval": [ + [ + "2021-05-17T00:00:00Z", + "2024-10-28T00:00:00Z" + ] + ] + } + }, + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ], + "assets": { + "data": { + "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org", + "type": "application/x-parquet", + "title": "Database Access", + "roles": [ + "data" + ], + "description": "Use `arrow` for remote access to the database. This R code will return results for the NEON Ecological Forecasting Aquatics theme.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |>\n dplyr::filter(variable %in% c(\"oxygen\", \"temperature\", \"chla\")) |>\n dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "thumbnail": { + "href": "https://projects.ecoforecast.org/neon4cast-catalog/img/neon_buoy.jpg", + "type": "image/JPEG", + "roles": [ + "thumbnail" + ], + "title": "NEON Aquatics Buoy" + } + } +} diff --git a/catalog/scores/Beetles/Weekly beetle community abundance/collection.json b/catalog/scores/Beetles/Weekly beetle community abundance/collection.json new file mode 100644 index 0000000000..a209a879f3 --- /dev/null +++ b/catalog/scores/Beetles/Weekly beetle community abundance/collection.json @@ -0,0 +1,247 @@ +{ + "id": "Weekly beetle community abundance", + "description": "This page includes all models for the Weekly beetle community abundance variable.", + "stac_version": "1.0.0", + "license": "CC0-1.0", + "stac_extensions": [ + "https://stac-extensions.github.io/scientific/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Collection", + "links": [ + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_humidity_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_precip_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_temp_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_humidity_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_precip_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_randfor.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_lasso.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_temp_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_arima.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_tbats.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_randfor_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_ets.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_lasso_all_sites.json" + }, + { + "rel": "parent", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "root", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "self", + "type": "application/json", + "href": "collection.json" + }, + { + "rel": "cite-as", + "href": "https://doi.org/10.1002/fee.2616" + }, + { + "rel": "about", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "type": "text/html", + "title": "NEON Ecological Forecasting Challenge Documentation" + }, + { + "rel": "describedby", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "title": "NEON Forecast Challenge Dashboard", + "type": "text/html" + } + ], + "title": "Weekly beetle community abundance", + "extent": { + "spatial": { + "bbox": [ + [-156.6194, 17.9696, -66.8687, 71.2824] + ] + }, + "temporal": { + "interval": [ + [ + "2021-05-17T00:00:00Z", + "2024-10-28T00:00:00Z" + ] + ] + } + }, + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ], + "assets": { + "data": { + "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1W/variable=abundance?endpoint_override=sdsc.osn.xsede.org", + "type": "application/x-parquet", + "title": "Database Access", + "roles": [ + "data" + ], + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1W/variable=abundance?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "thumbnail": { + "href": "pending", + "type": "image/JPEG", + "roles": [ + "thumbnail" + ], + "title": "pending" + } + } +} diff --git a/catalog/scores/Beetles/Weekly beetle community richness/collection.json b/catalog/scores/Beetles/Weekly beetle community richness/collection.json new file mode 100644 index 0000000000..c40c1941d7 --- /dev/null +++ b/catalog/scores/Beetles/Weekly beetle community richness/collection.json @@ -0,0 +1,247 @@ +{ + "id": "Weekly beetle community richness", + "description": "This page includes all models for the Weekly beetle community richness variable.", + "stac_version": "1.0.0", + "license": "CC0-1.0", + "stac_extensions": [ + "https://stac-extensions.github.io/scientific/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Collection", + "links": [ + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_humidity_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_humidity_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_precip_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_temp_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_randfor.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_precip_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_temp_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_ets.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_arima.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_lasso.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_lasso_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_randfor_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_tbats.json" + }, + { + "rel": "parent", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "root", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "self", + "type": "application/json", + "href": "collection.json" + }, + { + "rel": "cite-as", + "href": "https://doi.org/10.1002/fee.2616" + }, + { + "rel": "about", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "type": "text/html", + "title": "NEON Ecological Forecasting Challenge Documentation" + }, + { + "rel": "describedby", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "title": "NEON Forecast Challenge Dashboard", + "type": "text/html" + } + ], + "title": "Weekly beetle community richness", + "extent": { + "spatial": { + "bbox": [ + [-156.6194, 17.9696, -66.8687, 71.2824] + ] + }, + "temporal": { + "interval": [ + [ + "2021-05-17T00:00:00Z", + "2024-10-28T00:00:00Z" + ] + ] + } + }, + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ], + "assets": { + "data": { + "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1W/variable=richness?endpoint_override=sdsc.osn.xsede.org", + "type": "application/x-parquet", + "title": "Database Access", + "roles": [ + "data" + ], + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1W/variable=richness?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "thumbnail": { + "href": "pending", + "type": "image/JPEG", + "roles": [ + "thumbnail" + ], + "title": "pending" + } + } +} diff --git a/catalog/scores/Beetles/collection.json b/catalog/scores/Beetles/collection.json new file mode 100644 index 0000000000..96b25d59d0 --- /dev/null +++ b/catalog/scores/Beetles/collection.json @@ -0,0 +1,192 @@ +{ + "id": "Beetles", + "description": "This page includes variables for the Beetles group.", + "stac_version": "1.0.0", + "license": "CC0-1.0", + "stac_extensions": [ + "https://stac-extensions.github.io/scientific/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Collection", + "links": [ + { + "rel": "child", + "type": "application/json", + "href": "Weekly beetle community abundance/collection.json" + }, + { + "rel": "child", + "type": "application/json", + "href": "Weekly beetle community richness/collection.json" + }, + { + "rel": "parent", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "root", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "self", + "type": "application/json", + "href": "collection.json" + }, + { + "rel": "cite-as", + "href": "https://doi.org/10.1002/fee.2616" + }, + { + "rel": "about", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "type": "text/html", + "title": "NEON Ecological Forecasting Challenge Documentation" + }, + { + "rel": "describedby", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "title": "NEON Forecast Challenge Dashboard", + "type": "text/html" + } + ], + "title": "Beetles", + "extent": { + "spatial": { + "bbox": [ + [-156.6194, 17.9696, -66.8687, 71.2824] + ] + }, + "temporal": { + "interval": [ + [ + "2021-05-17T00:00:00Z", + "2024-10-28T00:00:00Z" + ] + ] + } + }, + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ], + "assets": { + "data": { + "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org", + "type": "application/x-parquet", + "title": "Database Access", + "roles": [ + "data" + ], + "description": "Use `arrow` for remote access to the database. This R code will return results for the NEON Ecological Forecasting Aquatics theme.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |>\n dplyr::filter(variable %in% c(\"abundance\", \"richness\")) |>\n dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "thumbnail": { + "href": "https://www.neonscience.org/sites/default/files/styles/max_width_1170px/public/image-content-images/Beetles_pinned.jpg", + "type": "image/JPEG", + "roles": [ + "thumbnail" + ], + "title": "Beetle Image" + } + } +} diff --git a/catalog/scores/Phenology/Daily Green chromatic coordinate/collection.json b/catalog/scores/Phenology/Daily Green chromatic coordinate/collection.json new file mode 100644 index 0000000000..d5a7881246 --- /dev/null +++ b/catalog/scores/Phenology/Daily Green chromatic coordinate/collection.json @@ -0,0 +1,272 @@ +{ + "id": "Daily Green chromatic coordinate", + "description": "This page includes all models for the Daily Green chromatic coordinate variable.", + "stac_version": "1.0.0", + "license": "CC0-1.0", + "stac_extensions": [ + "https://stac-extensions.github.io/scientific/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Collection", + "links": [ + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/persistenceRW.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_bag_mlp.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_humidity_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_humidity_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_precip_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_precip_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_randfor.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_temp_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_temp_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/cb_prophet.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_lasso_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/xgboost_parallel.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/climatology.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_arima.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_ets.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_lasso.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_tbats.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_auto_adam.json" + }, + { + "rel": "parent", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "root", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "self", + "type": "application/json", + "href": "collection.json" + }, + { + "rel": "cite-as", + "href": "https://doi.org/10.1002/fee.2616" + }, + { + "rel": "about", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "type": "text/html", + "title": "NEON Ecological Forecasting Challenge Documentation" + }, + { + "rel": "describedby", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "title": "NEON Forecast Challenge Dashboard", + "type": "text/html" + } + ], + "title": "Daily Green chromatic coordinate", + "extent": { + "spatial": { + "bbox": [ + [-156.6194, 17.9696, -66.8687, 71.2824] + ] + }, + "temporal": { + "interval": [ + [ + "2023-03-27T00:00:00Z", + "2023-12-13T00:00:00Z" + ] + ] + } + }, + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ], + "assets": { + "data": { + "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=gcc_90?endpoint_override=sdsc.osn.xsede.org", + "type": "application/x-parquet", + "title": "Database Access", + "roles": [ + "data" + ], + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=gcc_90?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "thumbnail": { + "href": "pending", + "type": "image/JPEG", + "roles": [ + "thumbnail" + ], + "title": "pending" + } + } +} diff --git a/catalog/scores/Phenology/Daily Red chromatic coordinate/collection.json b/catalog/scores/Phenology/Daily Red chromatic coordinate/collection.json new file mode 100644 index 0000000000..8000ba6cac --- /dev/null +++ b/catalog/scores/Phenology/Daily Red chromatic coordinate/collection.json @@ -0,0 +1,287 @@ +{ + "id": "Daily Red chromatic coordinate", + "description": "This page includes all models for the Daily Red chromatic coordinate variable.", + "stac_version": "1.0.0", + "license": "CC0-1.0", + "stac_extensions": [ + "https://stac-extensions.github.io/scientific/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Collection", + "links": [ + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/baseline_ensemble.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/climatology.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/persistenceRW.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_bag_mlp.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_humidity_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_humidity_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_lasso_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_precip_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_precip_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_randfor.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_temp_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_temp_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/cb_prophet.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_lasso.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/prophet_clim_ensemble.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_tbats.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_randfor_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/xgboost_parallel.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_arima.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_ets.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_auto_adam.json" + }, + { + "rel": "parent", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "root", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "self", + "type": "application/json", + "href": "collection.json" + }, + { + "rel": "cite-as", + "href": "https://doi.org/10.1002/fee.2616" + }, + { + "rel": "about", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "type": "text/html", + "title": "NEON Ecological Forecasting Challenge Documentation" + }, + { + "rel": "describedby", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "title": "NEON Forecast Challenge Dashboard", + "type": "text/html" + } + ], + "title": "Daily Red chromatic coordinate", + "extent": { + "spatial": { + "bbox": [ + [-156.6194, 17.9696, -66.8687, 71.2824] + ] + }, + "temporal": { + "interval": [ + [ + "2023-03-27T00:00:00Z", + "2023-12-13T00:00:00Z" + ] + ] + } + }, + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ], + "assets": { + "data": { + "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=rcc_90?endpoint_override=sdsc.osn.xsede.org", + "type": "application/x-parquet", + "title": "Database Access", + "roles": [ + "data" + ], + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=rcc_90?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "thumbnail": { + "href": "pending", + "type": "image/JPEG", + "roles": [ + "thumbnail" + ], + "title": "pending" + } + } +} diff --git a/catalog/scores/Phenology/collection.json b/catalog/scores/Phenology/collection.json new file mode 100644 index 0000000000..8bf4af214c --- /dev/null +++ b/catalog/scores/Phenology/collection.json @@ -0,0 +1,192 @@ +{ + "id": "Phenology", + "description": "This page includes variables for the Phenology group.", + "stac_version": "1.0.0", + "license": "CC0-1.0", + "stac_extensions": [ + "https://stac-extensions.github.io/scientific/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Collection", + "links": [ + { + "rel": "child", + "type": "application/json", + "href": "Daily Green chromatic coordinate/collection.json" + }, + { + "rel": "child", + "type": "application/json", + "href": "Daily Red chromatic coordinate/collection.json" + }, + { + "rel": "parent", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "root", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "self", + "type": "application/json", + "href": "collection.json" + }, + { + "rel": "cite-as", + "href": "https://doi.org/10.1002/fee.2616" + }, + { + "rel": "about", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "type": "text/html", + "title": "NEON Ecological Forecasting Challenge Documentation" + }, + { + "rel": "describedby", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "title": "NEON Forecast Challenge Dashboard", + "type": "text/html" + } + ], + "title": "Phenology", + "extent": { + "spatial": { + "bbox": [ + [-156.6194, 17.9696, -66.8687, 71.2824] + ] + }, + "temporal": { + "interval": [ + [ + "2021-05-17T00:00:00Z", + "2024-10-28T00:00:00Z" + ] + ] + } + }, + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ], + "assets": { + "data": { + "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org", + "type": "application/x-parquet", + "title": "Database Access", + "roles": [ + "data" + ], + "description": "Use `arrow` for remote access to the database. This R code will return results for the NEON Ecological Forecasting Aquatics theme.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |>\n dplyr::filter(variable %in% c(\"gcc_90\", \"rcc_90\")) |>\n dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "thumbnail": { + "href": "https://www.neonscience.org/sites/default/files/styles/max_1300x1300/public/image-content-images/_BFP8455.jpg", + "type": "image/JPEG", + "roles": [ + "thumbnail" + ], + "title": "Phenology Image" + } + } +} diff --git a/catalog/scores/Terrestrial/30min latent heat flux/collection.json b/catalog/scores/Terrestrial/30min latent heat flux/collection.json new file mode 100644 index 0000000000..1094ae9895 --- /dev/null +++ b/catalog/scores/Terrestrial/30min latent heat flux/collection.json @@ -0,0 +1,187 @@ +{ + "id": "30min latent heat flux", + "description": "This page includes all models for the 30min latent heat flux variable.", + "stac_version": "1.0.0", + "license": "CC0-1.0", + "stac_extensions": [ + "https://stac-extensions.github.io/scientific/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Collection", + "links": [ + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/climatology.json" + }, + { + "rel": "parent", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "root", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "self", + "type": "application/json", + "href": "collection.json" + }, + { + "rel": "cite-as", + "href": "https://doi.org/10.1002/fee.2616" + }, + { + "rel": "about", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "type": "text/html", + "title": "NEON Ecological Forecasting Challenge Documentation" + }, + { + "rel": "describedby", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "title": "NEON Forecast Challenge Dashboard", + "type": "text/html" + } + ], + "title": "30min latent heat flux", + "extent": { + "spatial": { + "bbox": [ + [-156.6194, 17.9696, -66.8687, 71.2824] + ] + }, + "temporal": { + "interval": [ + [ + "2023-11-06T00:00:00Z", + "2023-12-11T00:00:00Z" + ] + ] + } + }, + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ], + "assets": { + "data": { + "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=PT30M/variable=le?endpoint_override=sdsc.osn.xsede.org", + "type": "application/x-parquet", + "title": "Database Access", + "roles": [ + "data" + ], + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=PT30M/variable=le?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "thumbnail": { + "href": "pending", + "type": "image/JPEG", + "roles": [ + "thumbnail" + ], + "title": "pending" + } + } +} diff --git a/catalog/scores/Terrestrial/Daily Net ecosystem exchange/collection.json b/catalog/scores/Terrestrial/Daily Net ecosystem exchange/collection.json new file mode 100644 index 0000000000..97da9fd165 --- /dev/null +++ b/catalog/scores/Terrestrial/Daily Net ecosystem exchange/collection.json @@ -0,0 +1,267 @@ +{ + "id": "Daily Net ecosystem exchange", + "description": "This page includes all models for the Daily Net ecosystem exchange variable.", + "stac_version": "1.0.0", + "license": "CC0-1.0", + "stac_extensions": [ + "https://stac-extensions.github.io/scientific/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Collection", + "links": [ + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/lasso.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/randfor.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_bag_mlp.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_humidity_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_humidity_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_precip_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_precip_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_tbats.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_temp_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_temp_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/xgboost_parallel.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_ets.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/cb_prophet.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_auto_adam.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/climatology.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_arima.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_randfor.json" + }, + { + "rel": "parent", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "root", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "self", + "type": "application/json", + "href": "collection.json" + }, + { + "rel": "cite-as", + "href": "https://doi.org/10.1002/fee.2616" + }, + { + "rel": "about", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "type": "text/html", + "title": "NEON Ecological Forecasting Challenge Documentation" + }, + { + "rel": "describedby", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "title": "NEON Forecast Challenge Dashboard", + "type": "text/html" + } + ], + "title": "Daily Net ecosystem exchange", + "extent": { + "spatial": { + "bbox": [ + [-156.6194, 17.9696, -66.8687, 71.2824] + ] + }, + "temporal": { + "interval": [ + [ + "2023-04-19T00:00:00Z", + "2023-12-14T00:00:00Z" + ] + ] + } + }, + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ], + "assets": { + "data": { + "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=le?endpoint_override=sdsc.osn.xsede.org", + "type": "application/x-parquet", + "title": "Database Access", + "roles": [ + "data" + ], + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=le?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "thumbnail": { + "href": "pending", + "type": "image/JPEG", + "roles": [ + "thumbnail" + ], + "title": "pending" + } + } +} diff --git a/catalog/scores/Terrestrial/collection.json b/catalog/scores/Terrestrial/collection.json new file mode 100644 index 0000000000..ef3ea1e7fd --- /dev/null +++ b/catalog/scores/Terrestrial/collection.json @@ -0,0 +1,202 @@ +{ + "id": "Terrestrial", + "description": "This page includes variables for the Terrestrial group.", + "stac_version": "1.0.0", + "license": "CC0-1.0", + "stac_extensions": [ + "https://stac-extensions.github.io/scientific/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Collection", + "links": [ + { + "rel": "child", + "type": "application/json", + "href": "Daily Net ecosystem exchange/collection.json" + }, + { + "rel": "child", + "type": "application/json", + "href": "Daily Net ecosystem exchange/collection.json" + }, + { + "rel": "child", + "type": "application/json", + "href": "30min latent heat flux/collection.json" + }, + { + "rel": "child", + "type": "application/json", + "href": "30min latent heat flux/collection.json" + }, + { + "rel": "parent", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "root", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "self", + "type": "application/json", + "href": "collection.json" + }, + { + "rel": "cite-as", + "href": "https://doi.org/10.1002/fee.2616" + }, + { + "rel": "about", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "type": "text/html", + "title": "NEON Ecological Forecasting Challenge Documentation" + }, + { + "rel": "describedby", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "title": "NEON Forecast Challenge Dashboard", + "type": "text/html" + } + ], + "title": "Terrestrial", + "extent": { + "spatial": { + "bbox": [ + [-156.6194, 17.9696, -66.8687, 71.2824] + ] + }, + "temporal": { + "interval": [ + [ + "2021-05-17T00:00:00Z", + "2024-10-28T00:00:00Z" + ] + ] + } + }, + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ], + "assets": { + "data": { + "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org", + "type": "application/x-parquet", + "title": "Database Access", + "roles": [ + "data" + ], + "description": "Use `arrow` for remote access to the database. This R code will return results for the NEON Ecological Forecasting Aquatics theme.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |>\n dplyr::filter(variable %in% c(\"nee\", \"le\")) |>\n dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "thumbnail": { + "href": "https://projects.ecoforecast.org/neon4cast-catalog/img/BONA_Twr.jpg", + "type": "image/JPEG", + "roles": [ + "thumbnail" + ], + "title": "NEON Field Tower" + } + } +} diff --git a/catalog/scores/Ticks/Weekly Amblyomma americanum population/collection.json b/catalog/scores/Ticks/Weekly Amblyomma americanum population/collection.json new file mode 100644 index 0000000000..bb2079ec65 --- /dev/null +++ b/catalog/scores/Ticks/Weekly Amblyomma americanum population/collection.json @@ -0,0 +1,247 @@ +{ + "id": "Weekly Amblyomma americanum population", + "description": "This page includes all models for the Weekly Amblyomma americanum population variable.", + "stac_version": "1.0.0", + "license": "CC0-1.0", + "stac_extensions": [ + "https://stac-extensions.github.io/scientific/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Collection", + "links": [ + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_humidity_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_lasso.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_precip_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_temp_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_humidity_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_precip_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_temp_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_tbats.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_ets.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_randfor.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_lasso_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_arima.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "../../models/model_items/tg_randfor_all_sites.json" + }, + { + "rel": "parent", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "root", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "self", + "type": "application/json", + "href": "collection.json" + }, + { + "rel": "cite-as", + "href": "https://doi.org/10.1002/fee.2616" + }, + { + "rel": "about", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "type": "text/html", + "title": "NEON Ecological Forecasting Challenge Documentation" + }, + { + "rel": "describedby", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "title": "NEON Forecast Challenge Dashboard", + "type": "text/html" + } + ], + "title": "Weekly Amblyomma americanum population", + "extent": { + "spatial": { + "bbox": [ + [-96.5631, 29.6893, -76.56, 39.1008] + ] + }, + "temporal": { + "interval": [ + [ + "2021-06-07T00:00:00Z", + "2024-10-28T00:00:00Z" + ] + ] + } + }, + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ], + "assets": { + "data": { + "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1W/variable=amblyomma_americanum?endpoint_override=sdsc.osn.xsede.org", + "type": "application/x-parquet", + "title": "Database Access", + "roles": [ + "data" + ], + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1W/variable=amblyomma_americanum?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "thumbnail": { + "href": "pending", + "type": "image/JPEG", + "roles": [ + "thumbnail" + ], + "title": "pending" + } + } +} diff --git a/catalog/scores/Ticks/collection.json b/catalog/scores/Ticks/collection.json new file mode 100644 index 0000000000..13dc3a5241 --- /dev/null +++ b/catalog/scores/Ticks/collection.json @@ -0,0 +1,187 @@ +{ + "id": "Ticks", + "description": "This page includes variables for the Ticks group.", + "stac_version": "1.0.0", + "license": "CC0-1.0", + "stac_extensions": [ + "https://stac-extensions.github.io/scientific/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json", + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Collection", + "links": [ + { + "rel": "child", + "type": "application/json", + "href": "Weekly Amblyomma americanum population/collection.json" + }, + { + "rel": "parent", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "root", + "type": "application/json", + "href": "../collection.json" + }, + { + "rel": "self", + "type": "application/json", + "href": "collection.json" + }, + { + "rel": "cite-as", + "href": "https://doi.org/10.1002/fee.2616" + }, + { + "rel": "about", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "type": "text/html", + "title": "NEON Ecological Forecasting Challenge Documentation" + }, + { + "rel": "describedby", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "title": "NEON Forecast Challenge Dashboard", + "type": "text/html" + } + ], + "title": "Ticks", + "extent": { + "spatial": { + "bbox": [ + [-96.5631, 29.6893, -76.56, 39.1008] + ] + }, + "temporal": { + "interval": [ + [ + "2021-05-17T00:00:00Z", + "2024-10-28T00:00:00Z" + ] + ] + } + }, + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ], + "assets": { + "data": { + "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org", + "type": "application/x-parquet", + "title": "Database Access", + "roles": [ + "data" + ], + "description": "Use `arrow` for remote access to the database. This R code will return results for the NEON Ecological Forecasting Aquatics theme.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |>\n dplyr::filter(variable %in% c(\"amblyomma_americanum\")) |>\n dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "thumbnail": { + "href": "https://www.neonscience.org/sites/default/files/styles/max_2600x2600/public/image-content-images/tick-image.jpg", + "type": "image/JPEG", + "roles": [ + "thumbnail" + ], + "title": "NEON Ticks" + } + } +} diff --git a/catalog/scores/collection.json b/catalog/scores/collection.json index cab57a8c46..b3e86e5a10 100644 --- a/catalog/scores/collection.json +++ b/catalog/scores/collection.json @@ -1,6 +1,6 @@ { "id": "daily-scores", - "description": "The catalog contains forecasts for the Virginia Ecoforecast Reservoir Analysis. The scores are summaries of the forecasts (i.e., mean, median, confidence intervals), matched observations (if available), and scores (metrics of how well the model distribution compares to observations). You can access the scores at the top level of the dataset where all models, variables, and dates that forecasts were produced (reference_datetime) are available. The code to access the entire dataset is provided as an asset. Given the size of the scores catalog, it can be time-consuming to access the data at the full dataset level. For quicker access to the scores for a particular model (model_id), we also provide the code to access the data at the model_id level as an asset for each model.", + "description": "The catalog contains forecasts for the NEON Ecological Forecasting Challenge. The scores are summaries of the forecasts (i.e., mean, median, confidence intervals), matched observations (if available), and scores (metrics of how well the model distribution compares to observations). You can access the scores at the top level of the dataset where all models, variables, and dates that forecasts were produced (reference_datetime) are available. The code to access the entire dataset is provided as an asset. Given the size of the scores catalog, it can be time-consuming to access the data at the full dataset level. For quicker access to the scores for a particular model (model_id), we also provide the code to access the data at the model_id level as an asset for each model.", "stac_version": "1.0.0", "license": "CC0-1.0", "stac_extensions": [ @@ -13,14 +13,32 @@ { "rel": "child", "type": "application/json", - "href": "Biological/collection.json", - "title": "Biological" + "href": "Aquatics/collection.json", + "title": "Aquatics" }, { "rel": "child", "type": "application/json", - "href": "Physical/collection.json", - "title": "Physical" + "href": "Terrestrial/collection.json", + "title": "Terrestrial" + }, + { + "rel": "child", + "type": "application/json", + "href": "Phenology/collection.json", + "title": "Phenology" + }, + { + "rel": "child", + "type": "application/json", + "href": "Beetles/collection.json", + "title": "Beetles" + }, + { + "rel": "child", + "type": "application/json", + "href": "Ticks/collection.json", + "title": "Ticks" }, { "rel": "child", @@ -49,14 +67,14 @@ }, { "rel": "about", - "href": "www.ltreb-reservoirs.org/vera4cast", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", "type": "text/html", - "title": "VERA Forecasting Challenge Documentation" + "title": "NEON Ecological Forecasting Challenge Documentation" }, { "rel": "describedby", - "href": "https://www.ltreb-reservoirs.org/vera4cast", - "title": "VERA Forecast Challenge Dashboard", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "title": "NEON Forecast Challenge Dashboard", "type": "text/html" } ], @@ -66,7 +84,7 @@ "bbox": [ [ -156.6194, - 71.2824, + 17.9696, -66.7987, 71.2824 ] @@ -75,8 +93,8 @@ "temporal": { "interval": [ [ - "2023-09-21T00:00:00Z", - "2024-02-01T00:00:00Z" + "2021-05-17T00:00:00Z", + "2024-10-28T00:00:00Z" ] ] } @@ -107,11 +125,6 @@ "type": "timestamp[us, tz=UTC]", "description": "datetime that forecast was submitted" }, - { - "name": "depth_m", - "type": "double", - "description": "depth (meters) in water column of prediction" - }, { "name": "observation", "type": "double", @@ -190,21 +203,21 @@ ], "assets": { "data": { - "href": "s3://anonymous@bio230121-bucket01/vera4cast/forecasts/parquet/duration=P1D?endpoint_override=renc.osn.xsede.org", + "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org", "type": "application/x-parquet", "title": "Database Access", "roles": [ "data" ], - "description": "Use `arrow` for remote access to the database. This R code will return results for the VERA Forecasting Challenge.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230121-bucket01/vera4cast/forecasts/parquet/duration=P1D?endpoint_override=renc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "description": "Use `arrow` for remote access to the database. This R code will return results for the VERA Forecasting Challenge.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "thumbnail": { - "href": "https://raw.githubusercontent.com/LTREB-reservoirs/vera4cast/main/dashboard/img/banner-2.jpg", + "href": "https://raw.githubusercontent.com/eco4cast/neon4cast-ci/main/catalog/thumbnail_plots/51629805865_0ef01ffbbc_c.jpg", "type": "image/JPEG", "roles": [ "thumbnail" ], - "title": "Falling Creek Reservoir" + "title": "NEON Buoy Image" } } } diff --git a/catalog/scores/models/collection.json b/catalog/scores/models/collection.json index 30075f3aa0..ba34c39a27 100644 --- a/catalog/scores/models/collection.json +++ b/catalog/scores/models/collection.json @@ -1,6 +1,6 @@ { "id": "models", - "description": "The catalog contains forecasts for the Virginia Ecoforecast Reservoir Analysis. The scores are summaries of the forecasts (i.e., mean, median, confidence intervals), matched observations (if available), and scores (metrics of how well the model distribution compares to observations). You can access the scores at the top level of the dataset where all models, variables, and dates that forecasts were produced (reference_datetime) are available. The code to access the entire dataset is provided as an asset. Given the size of the scores catalog, it can be time-consuming to access the data at the full dataset level. For quicker access to the scores for a particular model (model_id), we also provide the code to access the data at the model_id level as an asset for each model.", + "description": "The catalog contains forecasts for the NEON Ecological Forecasting Challenge. The scores are summaries of the forecasts (i.e., mean, median, confidence intervals), matched observations (if available), and scores (metrics of how well the model distribution compares to observations). You can access the scores at the top level of the dataset where all models, variables, and dates that forecasts were produced (reference_datetime) are available. The code to access the entire dataset is provided as an asset. Given the size of the scores catalog, it can be time-consuming to access the data at the full dataset level. For quicker access to the scores for a particular model (model_id), we also provide the code to access the data at the model_id level as an asset for each model.", "stac_version": "1.0.0", "license": "CC0-1.0", "stac_extensions": [ @@ -13,32 +13,52 @@ { "rel": "item", "type": "application/json", - "href": "model_items/cfs.json" + "href": "model_items/climatology.json" }, { "rel": "item", "type": "application/json", - "href": "model_items/ecmwf_ifs04.json" + "href": "model_items/procEppleyNorbergMonod.json" }, { "rel": "item", "type": "application/json", - "href": "model_items/icon_seamless.json" + "href": "model_items/tg_arima.json" }, { "rel": "item", "type": "application/json", - "href": "model_items/fableNNETAR.json" + "href": "model_items/tg_humidity_lm.json" }, { "rel": "item", "type": "application/json", - "href": "model_items/climatology.json" + "href": "model_items/tg_humidity_lm_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/tg_precip_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/tg_precip_lm_all_sites.json" }, { "rel": "item", "type": "application/json", - "href": "model_items/fableETS.json" + "href": "model_items/tg_randfor.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/tg_temp_lm.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/tg_temp_lm_all_sites.json" }, { "rel": "item", @@ -48,42 +68,192 @@ { "rel": "item", "type": "application/json", - "href": "model_items/glm_aed_v1.json" + "href": "model_items/tg_bag_mlp.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/lasso.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/randfor.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/tg_tbats.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/xgboost_parallel.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/baseline_ensemble.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/tg_lasso_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/fARIMA_clim_ensemble.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/fTSLM_lag.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/flareGOTM.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/flareSimstrat_noDA.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/flare_ler.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/flare_ler_baselines.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/air2waterSat_2.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/tg_randfor_all_sites.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/GLEON_physics.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/fARIMA.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/flareGOTM_noDA.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/flareGLM.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/tg_lasso.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/tg_ets.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/cb_prophet.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/tg_auto_adam.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/USGSHABs1.json" }, { "rel": "item", "type": "application/json", - "href": "model_items/inflow_gefsClimAED.json" + "href": "model_items/procCTMISteele.json" }, { "rel": "item", "type": "application/json", - "href": "model_items/gfs_seamless.json" + "href": "model_items/procHinshelwoodSteele.json" }, { "rel": "item", "type": "application/json", - "href": "model_items/gem_global.json" + "href": "model_items/procCTMIMonod.json" }, { "rel": "item", "type": "application/json", - "href": "model_items/fableARIMA.json" + "href": "model_items/prophet_clim_ensemble.json" }, { "rel": "item", "type": "application/json", - "href": "model_items/climatology2.json" + "href": "model_items/GLEON_JRabaey_temp_physics.json" }, { "rel": "item", "type": "application/json", - "href": "model_items/TESTclimatology.json" + "href": "model_items/flareGLM_noDA.json" }, { "rel": "item", "type": "application/json", - "href": "model_items/persistenceFO.json" + "href": "model_items/procBlanchardSteele.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/null.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/procEppleyNorbergSteele.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/flareSimstrat.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/procBlanchardMonod.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/procHinshelwoodMonod.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/GLEON_lm_lag_1day.json" + }, + { + "rel": "item", + "type": "application/json", + "href": "model_items/tslm.json" }, { "rel": "parent", @@ -106,14 +276,14 @@ }, { "rel": "about", - "href": "www.ltreb-reservoirs.org/vera4cast", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", "type": "text/html", - "title": "VERA Forecasting Challenge Documentation" + "title": "NEON Ecological Forecasting Challenge Documentation" }, { "rel": "describedby", - "href": "www.ltreb-reservoirs.org/vera4cast", - "title": "VERA Forecasting Challenge Documentation", + "href": "https://projects.ecoforecast.org/neon4cast-docs/", + "title": "NEON Forecast Challenge Dashboard", "type": "text/html" } ], @@ -121,19 +291,14 @@ "extent": { "spatial": { "bbox": [ - [ - -156.6194, - 71.2824, - -66.7987, - 71.2824 - ] + [-156.6194, 17.9696, -66.7987, 71.2824] ] }, "temporal": { "interval": [ [ - "2023-09-21T00:00:00Z", - "2024-02-01T00:00:00Z" + "2021-05-17T00:00:00Z", + "2024-10-28T00:00:00Z" ] ] } @@ -164,11 +329,6 @@ "type": "timestamp[us, tz=UTC]", "description": "datetime that forecast was submitted" }, - { - "name": "depth_m", - "type": "double", - "description": "depth (meters) in water column of prediction" - }, { "name": "observation", "type": "double", @@ -247,13 +407,21 @@ ], "assets": { "data": { - "href": "s3://anonymous@bio230121-bucket01/vera4cast/forecasts/parquet/duration=P1D?endpoint_override=renc.osn.xsede.org", + "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org", "type": "application/x-parquet", "title": "Database Access", "roles": [ "data" ], - "description": "Use `arrow` for remote access to the database. This R code will return results for the NEON Ecological Forecasting Aquatics theme.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230121-bucket01/vera4cast/forecasts/parquet/duration=P1D?endpoint_override=renc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "thumbnail": { + "href": "pending", + "type": "image/JPEG", + "roles": [ + "thumbnail" + ], + "title": "pending" } } } diff --git a/catalog/scores/models/model_items/GLEON_JRabaey_temp_physics.json b/catalog/scores/models/model_items/GLEON_JRabaey_temp_physics.json new file mode 100644 index 0000000000..71ac2badbd --- /dev/null +++ b/catalog/scores/models/model_items/GLEON_JRabaey_temp_physics.json @@ -0,0 +1,227 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "GLEON_JRabaey_temp_physics", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-102.4471, 39.7582], + [-82.0084, 29.676], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-87.7982, 32.5415], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-89.4737, 46.2097], + [-66.9868, 18.1135], + [-84.4374, 31.1854], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-89.7048, 45.9983], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-111.7979, 40.7839], + [-82.0177, 29.6878], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-84.2793, 35.9574], + [-105.9154, 39.8914] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-19", + "end_datetime": "2023-12-10", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "temperature" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "GLEON_JRabaey_temp_physics" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "GLEON_JRabaey_temp_physics" + }, + { + "rel": "self", + "href": "GLEON_JRabaey_temp_physics.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/GLEON_JRabaey_temp_physics.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/GLEON_JRabaey_temp_physics.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=GLEON_JRabaey_temp_physics?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=GLEON_JRabaey_temp_physics?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/GLEON_lm_lag_1day.json b/catalog/scores/models/model_items/GLEON_lm_lag_1day.json new file mode 100644 index 0000000000..a3cc90c901 --- /dev/null +++ b/catalog/scores/models/model_items/GLEON_lm_lag_1day.json @@ -0,0 +1,207 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "GLEON_lm_lag_1day", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-89.4737, 46.2097], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-149.6106, 68.6307] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-19", + "end_datetime": "2023-12-11", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "oxygen", + "temperature" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "GLEON_lm_lag_1day" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "GLEON_lm_lag_1day" + }, + { + "rel": "self", + "href": "GLEON_lm_lag_1day.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/GLEON_lm_lag_1day.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/GLEON_lm_lag_1day.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=GLEON_lm_lag_1day?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=GLEON_lm_lag_1day?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=GLEON_lm_lag_1day?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=GLEON_lm_lag_1day?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/GLEON_physics.json b/catalog/scores/models/model_items/GLEON_physics.json new file mode 100644 index 0000000000..2ab6a008f5 --- /dev/null +++ b/catalog/scores/models/model_items/GLEON_physics.json @@ -0,0 +1,200 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "GLEON_physics", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-89.4737, 46.2097], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-149.6106, 68.6307] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-19", + "end_datetime": "2023-12-11", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "temperature" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "GLEON_physics" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "GLEON_physics" + }, + { + "rel": "self", + "href": "GLEON_physics.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/GLEON_physics.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/GLEON_physics.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=GLEON_physics?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=GLEON_physics?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/USGSHABs1.json b/catalog/scores/models/model_items/USGSHABs1.json new file mode 100644 index 0000000000..51ebbcce6d --- /dev/null +++ b/catalog/scores/models/model_items/USGSHABs1.json @@ -0,0 +1,196 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "USGSHABs1", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-87.7982, 32.5415], + [-84.4374, 31.1854], + [-88.1589, 31.8534] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-19", + "end_datetime": "2023-12-11", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "chla" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "USGSHABs1" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "USGSHABs1" + }, + { + "rel": "self", + "href": "USGSHABs1.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/USGSHABs1.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/USGSHABs1.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=USGSHABs1?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=USGSHABs1?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/air2waterSat_2.json b/catalog/scores/models/model_items/air2waterSat_2.json new file mode 100644 index 0000000000..1905b3d7e3 --- /dev/null +++ b/catalog/scores/models/model_items/air2waterSat_2.json @@ -0,0 +1,234 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "air2waterSat_2", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-77.9832, 39.0956], + [-89.7048, 45.9983], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-111.7979, 40.7839], + [-82.0177, 29.6878], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-84.2793, 35.9574], + [-105.9154, 39.8914], + [-82.0084, 29.676], + [-87.7982, 32.5415], + [-89.4737, 46.2097], + [-84.4374, 31.1854], + [-102.4471, 39.7582], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-66.9868, 18.1135], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-19", + "end_datetime": "2023-12-12", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "oxygen", + "temperature" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "air2waterSat_2" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "air2waterSat_2" + }, + { + "rel": "self", + "href": "air2waterSat_2.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/air2waterSat_2.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/air2waterSat_2.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=air2waterSat_2?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=air2waterSat_2?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=air2waterSat_2?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=air2waterSat_2?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/baseline_ensemble.json b/catalog/scores/models/model_items/baseline_ensemble.json new file mode 100644 index 0000000000..b109076419 --- /dev/null +++ b/catalog/scores/models/model_items/baseline_ensemble.json @@ -0,0 +1,278 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "baseline_ensemble", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-121.9519, 45.8205], + [-110.5391, 44.9535], + [-87.7982, 32.5415], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-89.4737, 46.2097], + [-66.9868, 18.1135], + [-84.4374, 31.1854], + [-66.7987, 18.1741], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-122.3303, 45.7624], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-105.5824, 40.0543], + [-119.0274, 36.9559], + [-88.1589, 31.8534], + [-84.2793, 35.9574], + [-105.9154, 39.8914], + [-102.4471, 39.7582], + [-82.0084, 29.676], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-82.0177, 29.6878], + [-111.5081, 33.751], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-111.7979, 40.7839], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088], + [-119.2622, 37.0334], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-89.5857, 45.4937], + [-149.3705, 68.6611], + [-147.5026, 65.154], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-89.7048, 45.9983] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-19", + "end_datetime": "2023-12-07", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "rcc_90", + "temperature" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "baseline_ensemble" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "baseline_ensemble" + }, + { + "rel": "self", + "href": "baseline_ensemble.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/baseline_ensemble.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/baseline_ensemble.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=baseline_ensemble?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=baseline_ensemble?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=baseline_ensemble?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=baseline_ensemble?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/cb_prophet.json b/catalog/scores/models/model_items/cb_prophet.json new file mode 100644 index 0000000000..0187f4d98c --- /dev/null +++ b/catalog/scores/models/model_items/cb_prophet.json @@ -0,0 +1,316 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "cb_prophet", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-119.7323, 37.1088], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-82.0084, 29.676], + [-110.5871, 44.9501], + [-87.7982, 32.5415], + [-147.504, 65.1532], + [-89.4737, 46.2097], + [-84.4374, 31.1854], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-82.0177, 29.6878], + [-88.1589, 31.8534], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-110.5391, 44.9535], + [-122.3303, 45.7624], + [-156.6194, 71.2824], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-147.5026, 65.154], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-99.2531, 47.1298], + [-149.6106, 68.6307], + [-102.4471, 39.7582], + [-105.5442, 40.035], + [-66.9868, 18.1135], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-111.7979, 40.7839], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-84.2793, 35.9574], + [-105.9154, 39.8914], + [-119.2575, 37.0597], + [-96.6242, 34.4442] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-20", + "end_datetime": "2023-12-11", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "gcc_90", + "oxygen", + "rcc_90", + "le", + "nee", + "chla", + "temperature" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "cb_prophet" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "cb_prophet" + }, + { + "rel": "self", + "href": "cb_prophet.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/cb_prophet.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/cb_prophet.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Green chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=cb_prophet?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=cb_prophet?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=cb_prophet?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=cb_prophet?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "4": { + "type": "application/x-parquet", + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=cb_prophet?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=cb_prophet?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "5": { + "type": "application/x-parquet", + "title": "Database Access for Daily latent heat flux", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=cb_prophet?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=cb_prophet?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "6": { + "type": "application/x-parquet", + "title": "Database Access for Daily Net ecosystem exchange", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=cb_prophet?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=cb_prophet?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "7": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=cb_prophet?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=cb_prophet?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "8": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=cb_prophet?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=cb_prophet?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/climatology.json b/catalog/scores/models/model_items/climatology.json index 701aec881b..29c18a877e 100644 --- a/catalog/scores/models/model_items/climatology.json +++ b/catalog/scores/models/model_items/climatology.json @@ -16,15 +16,91 @@ "geometry": { "type": "MultiPoint", "coordinates": [ - [37.3129, -79.8159], - [37.3032, -79.8372], - [37.3078, -79.8357] + [-82.0084, 29.676], + [-87.7982, 32.5415], + [-89.4737, 46.2097], + [-84.4374, 31.1854], + [-82.0177, 29.6878], + [-88.1589, 31.8534], + [-122.3303, 45.7624], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-147.5026, 65.154], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-110.5391, 44.9535], + [-102.4471, 39.7582], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-105.5442, 40.035], + [-66.9868, 18.1135], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-89.7048, 45.9983], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-111.7979, 40.7839], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-84.2793, 35.9574], + [-105.9154, 39.8914], + [-156.6194, 71.2824], + [-147.504, 65.1532] ] }, "properties": { - "description": "\nmodel info: Historical DOY mean and sd. Assumes normal distribution\n\nSites: bvre, fcre, tubr\n\nVariables: Chla_ugL_mean, Temp_C_mean, Flow_cms_mean, AirTemp_C_mean", - "start_datetime": "2023-09-21", - "end_datetime": "2023-12-05", + "description": "\nmodel info: Historical DOY mean and sd. Assumes normal distribution\n\n\nSites: BARC, BLWA, CRAM, FLNT, SUGG, TOMB, ABBY, BART, BLAN, BONA, CLBJ, CPER, DCFS, DEJU, DELA, DSNY, GRSM, GUAN, HARV, HEAL, JERC, JORN, KONA, KONZ, LAJA, LENO, MLBS, MOAB, NIWO, NOGP, OAES, ONAQ, ORNL, OSBS, PUUM, RMNP, SCBI, SERC, SJER, SOAP, SRER, STEI, STER, TALL, TEAK, TOOL, TREE, UKFS, UNDE, WOOD, WREF, YELL, ARIK, BIGC, BLDE, BLUE, COMO, CUPE, GUIL, HOPB, KING, LECO, LEWI, LIRO, MART, MAYF, MCDI, MCRA, POSE, PRIN, PRLA, PRPO, REDB, SYCA, TECR, WALK, WLOU, BARR, CARI\n\nVariables: chla, rcc_90, temperature, nee, nee, oxygen, gcc_90, le, le", + "start_datetime": "2023-10-20", + "end_datetime": "2023-12-14", "providers": [ { "url": "pending", @@ -46,8 +122,16 @@ "license": "CC0-1.0", "keywords": [ "Forecasting", - "vera4cast", - "Chla_ugL_mean, Temp_C_mean, Flow_cms_mean, AirTemp_C_mean" + "neon4cast", + "chla", + "rcc_90", + "temperature", + "nee", + "nee", + "oxygen", + "gcc_90", + "le", + "le" ], "table:columns": [ { @@ -75,11 +159,6 @@ "type": "timestamp[us, tz=UTC]", "description": "datetime that forecast was submitted" }, - { - "name": "depth_m", - "type": "double", - "description": "depth (meters) in water column of prediction" - }, { "name": "observation", "type": "double", @@ -188,32 +267,62 @@ "1": { "type": "application/json", "title": "Model Metadata", - "href": "https://renc.osn.xsede.org/bio230121-bucket01/vera4cast/metadata/model_id/climatology.json", - "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://renc.osn.xsede.org/bio230121-bucket01/vera4cast/metadata/model_id/climatology.json\")\n\n" + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/climatology.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/climatology.json\")\n\n" }, "2": { "type": "application/x-parquet", - "title": "Database Access for Chla_ugL_mean daily", - "href": "s3://anonymous@bio230121-bucket01/vera4cast/scores/parquet/duration=P1D/variable=Chla_ugL_mean/model_id=climatology?endpoint_override=renc.osn.xsede.org", - "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230121-bucket01/vera4cast/scores/parquet/duration=P1D/variable=Chla_ugL_mean/model_id=climatology?endpoint_override=renc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=climatology?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=climatology?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "3": { "type": "application/x-parquet", - "title": "Database Access for Temp_C_mean daily", - "href": "s3://anonymous@bio230121-bucket01/vera4cast/scores/parquet/duration=P1D/variable=Temp_C_mean/model_id=climatology?endpoint_override=renc.osn.xsede.org", - "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230121-bucket01/vera4cast/scores/parquet/duration=P1D/variable=Temp_C_mean/model_id=climatology?endpoint_override=renc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=climatology?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=climatology?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "4": { "type": "application/x-parquet", - "title": "Database Access for Flow_cms_mean daily", - "href": "s3://anonymous@bio230121-bucket01/vera4cast/scores/parquet/duration=P1D/variable=Flow_cms_mean/model_id=climatology?endpoint_override=renc.osn.xsede.org", - "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230121-bucket01/vera4cast/scores/parquet/duration=P1D/variable=Flow_cms_mean/model_id=climatology?endpoint_override=renc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=climatology?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=climatology?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "5": { "type": "application/x-parquet", - "title": "Database Access for AirTemp_C_mean daily", - "href": "s3://anonymous@bio230121-bucket01/vera4cast/scores/parquet/duration=P1D/variable=AirTemp_C_mean/model_id=climatology?endpoint_override=renc.osn.xsede.org", - "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230121-bucket01/vera4cast/scores/parquet/duration=P1D/variable=AirTemp_C_mean/model_id=climatology?endpoint_override=renc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "title": "Database Access for Daily Net ecosystem exchange", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=climatology?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=climatology?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "6": { + "type": "application/x-parquet", + "title": "Database Access for 30min Net ecosystem exchange", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=PT30M/variable=nee/model_id=climatology?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=PT30M/variable=nee/model_id=climatology?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "7": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=climatology?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=climatology?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "8": { + "type": "application/x-parquet", + "title": "Database Access for Daily Green chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=climatology?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=climatology?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "9": { + "type": "application/x-parquet", + "title": "Database Access for Daily latent heat flux", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=climatology?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=climatology?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "10": { + "type": "application/x-parquet", + "title": "Database Access for 30min latent heat flux", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=PT30M/variable=le/model_id=climatology?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=PT30M/variable=le/model_id=climatology?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" } } } diff --git a/catalog/scores/models/model_items/fARIMA.json b/catalog/scores/models/model_items/fARIMA.json new file mode 100644 index 0000000000..f8a6d58dd9 --- /dev/null +++ b/catalog/scores/models/model_items/fARIMA.json @@ -0,0 +1,227 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "fARIMA", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-77.9832, 39.0956], + [-89.7048, 45.9983], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-111.7979, 40.7839], + [-82.0177, 29.6878], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-84.2793, 35.9574], + [-105.9154, 39.8914], + [-102.4471, 39.7582], + [-82.0084, 29.676], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-87.7982, 32.5415], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-89.4737, 46.2097], + [-66.9868, 18.1135], + [-84.4374, 31.1854], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-11-05", + "end_datetime": "2023-12-12", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "temperature" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "fARIMA" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "fARIMA" + }, + { + "rel": "self", + "href": "fARIMA.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/fARIMA.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/fARIMA.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=fARIMA?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=fARIMA?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/fARIMA_clim_ensemble.json b/catalog/scores/models/model_items/fARIMA_clim_ensemble.json new file mode 100644 index 0000000000..d8b31c7a13 --- /dev/null +++ b/catalog/scores/models/model_items/fARIMA_clim_ensemble.json @@ -0,0 +1,222 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "fARIMA_clim_ensemble", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-111.7979, 40.7839], + [-82.0177, 29.6878], + [-89.4737, 46.2097], + [-66.9868, 18.1135], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-102.4471, 39.7582], + [-82.0084, 29.676], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-105.5442, 40.035], + [-89.7048, 45.9983], + [-96.443, 38.9459], + [-87.7982, 32.5415], + [-122.1655, 44.2596], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-111.5081, 33.751], + [-84.2793, 35.9574], + [-105.9154, 39.8914], + [-84.4374, 31.1854], + [-119.0274, 36.9559], + [-88.1589, 31.8534] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-19", + "end_datetime": "2023-12-07", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "temperature" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "fARIMA_clim_ensemble" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "fARIMA_clim_ensemble" + }, + { + "rel": "self", + "href": "fARIMA_clim_ensemble.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/fARIMA_clim_ensemble.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/fARIMA_clim_ensemble.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=fARIMA_clim_ensemble?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=fARIMA_clim_ensemble?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/fTSLM_lag.json b/catalog/scores/models/model_items/fTSLM_lag.json new file mode 100644 index 0000000000..ca3008bd25 --- /dev/null +++ b/catalog/scores/models/model_items/fTSLM_lag.json @@ -0,0 +1,227 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "fTSLM_lag", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-77.9832, 39.0956], + [-89.7048, 45.9983], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-111.7979, 40.7839], + [-82.0177, 29.6878], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-84.2793, 35.9574], + [-105.9154, 39.8914], + [-102.4471, 39.7582], + [-82.0084, 29.676], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-87.7982, 32.5415], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-89.4737, 46.2097], + [-66.9868, 18.1135], + [-84.4374, 31.1854], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-11-05", + "end_datetime": "2023-12-12", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "temperature" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "fTSLM_lag" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "fTSLM_lag" + }, + { + "rel": "self", + "href": "fTSLM_lag.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/fTSLM_lag.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/fTSLM_lag.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=fTSLM_lag?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=fTSLM_lag?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/flareGLM.json b/catalog/scores/models/model_items/flareGLM.json new file mode 100644 index 0000000000..0593c66e0b --- /dev/null +++ b/catalog/scores/models/model_items/flareGLM.json @@ -0,0 +1,200 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "flareGLM", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0177, 29.6878], + [-149.6106, 68.6307], + [-82.0084, 29.676], + [-89.4737, 46.2097], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-20", + "end_datetime": "2023-12-08", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "temperature" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "flareGLM" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "flareGLM" + }, + { + "rel": "self", + "href": "flareGLM.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/flareGLM.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/flareGLM.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=flareGLM?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=flareGLM?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/flareGLM_noDA.json b/catalog/scores/models/model_items/flareGLM_noDA.json new file mode 100644 index 0000000000..1465df7b55 --- /dev/null +++ b/catalog/scores/models/model_items/flareGLM_noDA.json @@ -0,0 +1,200 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "flareGLM_noDA", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-89.4737, 46.2097], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-149.6106, 68.6307] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-20", + "end_datetime": "2023-12-08", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "temperature" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "flareGLM_noDA" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "flareGLM_noDA" + }, + { + "rel": "self", + "href": "flareGLM_noDA.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/flareGLM_noDA.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/flareGLM_noDA.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=flareGLM_noDA?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=flareGLM_noDA?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/flareGOTM.json b/catalog/scores/models/model_items/flareGOTM.json new file mode 100644 index 0000000000..9885b7162d --- /dev/null +++ b/catalog/scores/models/model_items/flareGOTM.json @@ -0,0 +1,199 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "flareGOTM", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-89.4737, 46.2097], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-20", + "end_datetime": "2023-12-08", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "temperature" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "flareGOTM" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "flareGOTM" + }, + { + "rel": "self", + "href": "flareGOTM.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/flareGOTM.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/flareGOTM.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=flareGOTM?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=flareGOTM?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/flareGOTM_noDA.json b/catalog/scores/models/model_items/flareGOTM_noDA.json new file mode 100644 index 0000000000..f3f0159146 --- /dev/null +++ b/catalog/scores/models/model_items/flareGOTM_noDA.json @@ -0,0 +1,199 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "flareGOTM_noDA", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-82.0084, 29.676], + [-89.4737, 46.2097], + [-89.7048, 45.9983], + [-99.1139, 47.1591] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-20", + "end_datetime": "2023-12-08", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "temperature" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "flareGOTM_noDA" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "flareGOTM_noDA" + }, + { + "rel": "self", + "href": "flareGOTM_noDA.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/flareGOTM_noDA.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/flareGOTM_noDA.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=flareGOTM_noDA?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=flareGOTM_noDA?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/flareSimstrat.json b/catalog/scores/models/model_items/flareSimstrat.json new file mode 100644 index 0000000000..5b719726d7 --- /dev/null +++ b/catalog/scores/models/model_items/flareSimstrat.json @@ -0,0 +1,199 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "flareSimstrat", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-89.4737, 46.2097], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-20", + "end_datetime": "2023-12-08", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "temperature" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "flareSimstrat" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "flareSimstrat" + }, + { + "rel": "self", + "href": "flareSimstrat.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/flareSimstrat.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/flareSimstrat.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=flareSimstrat?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=flareSimstrat?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/flareSimstrat_noDA.json b/catalog/scores/models/model_items/flareSimstrat_noDA.json new file mode 100644 index 0000000000..70ba5ab982 --- /dev/null +++ b/catalog/scores/models/model_items/flareSimstrat_noDA.json @@ -0,0 +1,198 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "flareSimstrat_noDA", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0177, 29.6878], + [-82.0084, 29.676], + [-89.4737, 46.2097], + [-99.1139, 47.1591], + [-99.2531, 47.1298] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-20", + "end_datetime": "2023-12-08", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "temperature" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "flareSimstrat_noDA" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "flareSimstrat_noDA" + }, + { + "rel": "self", + "href": "flareSimstrat_noDA.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/flareSimstrat_noDA.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/flareSimstrat_noDA.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=flareSimstrat_noDA?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=flareSimstrat_noDA?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/flare_ler.json b/catalog/scores/models/model_items/flare_ler.json new file mode 100644 index 0000000000..a4248c1733 --- /dev/null +++ b/catalog/scores/models/model_items/flare_ler.json @@ -0,0 +1,199 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "flare_ler", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0177, 29.6878], + [-82.0084, 29.676], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-89.4737, 46.2097] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-19", + "end_datetime": "2023-12-07", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "temperature" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "flare_ler" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "flare_ler" + }, + { + "rel": "self", + "href": "flare_ler.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/flare_ler.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/flare_ler.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=flare_ler?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=flare_ler?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/flare_ler_baselines.json b/catalog/scores/models/model_items/flare_ler_baselines.json new file mode 100644 index 0000000000..abfcf8260c --- /dev/null +++ b/catalog/scores/models/model_items/flare_ler_baselines.json @@ -0,0 +1,199 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "flare_ler_baselines", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-89.4737, 46.2097], + [-82.0177, 29.6878], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-19", + "end_datetime": "2023-12-07", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "temperature" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "flare_ler_baselines" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "flare_ler_baselines" + }, + { + "rel": "self", + "href": "flare_ler_baselines.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/flare_ler_baselines.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/flare_ler_baselines.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=flare_ler_baselines?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=flare_ler_baselines?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/lasso.json b/catalog/scores/models/model_items/lasso.json new file mode 100644 index 0000000000..3ebcd603f7 --- /dev/null +++ b/catalog/scores/models/model_items/lasso.json @@ -0,0 +1,247 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "lasso", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-110.5391, 44.9535], + [-122.3303, 45.7624], + [-156.6194, 71.2824], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-147.5026, 65.154], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-19", + "end_datetime": "2023-12-11", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "le", + "nee" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "lasso" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "lasso" + }, + { + "rel": "self", + "href": "lasso.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/lasso.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/lasso.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily latent heat flux", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=lasso?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=lasso?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily Net ecosystem exchange", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=lasso?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=lasso?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/null.json b/catalog/scores/models/model_items/null.json new file mode 100644 index 0000000000..9cc4a4f448 --- /dev/null +++ b/catalog/scores/models/model_items/null.json @@ -0,0 +1,234 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "null", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-102.4471, 39.7582], + [-82.0084, 29.676], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-87.7982, 32.5415], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-89.4737, 46.2097], + [-66.9868, 18.1135], + [-84.4374, 31.1854], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-89.7048, 45.9983], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-111.7979, 40.7839], + [-82.0177, 29.6878], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-84.2793, 35.9574], + [-105.9154, 39.8914] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-01-10", + "end_datetime": "2024-10-03", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "oxygen", + "temperature" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "null" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "null" + }, + { + "rel": "self", + "href": "null.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/null.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/null.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=null?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=null?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=null?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=null?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/persistenceRW.json b/catalog/scores/models/model_items/persistenceRW.json index 127ccf4a36..aa3c5739cb 100644 --- a/catalog/scores/models/model_items/persistenceRW.json +++ b/catalog/scores/models/model_items/persistenceRW.json @@ -16,14 +16,93 @@ "geometry": { "type": "MultiPoint", "coordinates": [ - [37.3129, -79.8159], - [37.3032, -79.8372] + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-89.4737, 46.2097], + [-66.9868, 18.1135], + [-84.4374, 31.1854], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-84.2793, 35.9574], + [-105.9154, 39.8914], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-122.3303, 45.7624], + [-156.6194, 71.2824], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-147.5026, 65.154], + [-149.2133, 63.8758], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-97.57, 33.4012], + [-97.7823, 33.3785], + [-111.7979, 40.7839], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-99.2413, 47.1282], + [-96.6242, 34.4442], + [-87.7982, 32.5415], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-121.9519, 45.8205], + [-110.5391, 44.9535], + [-82.0084, 29.676], + [-102.4471, 39.7582], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-121.9338, 45.7908] ] }, "properties": { - "description": "\nmodel info: Random walk from the fable package with ensembles used to represent uncertainty\n\nSites: bvre, fcre\n\nVariables: Chla_ugL_mean, Temp_C_mean", - "start_datetime": "2023-09-21", - "end_datetime": "2023-12-05", + "description": "\nmodel info: Random walk from the fable package with ensembles used to represent uncertainty\n\nSites: OSBS, PUUM, RMNP, SCBI, SERC, SJER, TALL, TEAK, TOOL, TREE, UKFS, UNDE, SOAP, SRER, STEI, STER, CRAM, CUPE, FLNT, GUIL, HOPB, KING, SYCA, TECR, TOMB, TOOK, WALK, WLOU, JERC, JORN, KONA, KONZ, LAJA, LENO, CPER, DCFS, DEJU, DELA, DSNY, MLBS, MOAB, NIWO, NOGP, ABBY, BARR, BART, BLAN, BONA, HEAL, LIRO, PRLA, PRPO, SUGG, CLBJ, PRIN, REDB, GRSM, GUAN, HARV, OAES, ONAQ, ORNL, WOOD, BLUE, BLWA, CARI, COMO, WREF, YELL, BARC, ARIK, BIGC, BLDE, MAYF, MCDI, MCRA, OKSR, POSE, LECO, LEWI, MART\n\nVariables: gcc_90, rcc_90, temperature, nee, chla, oxygen", + "start_datetime": "2023-10-20", + "end_datetime": "2023-12-12", "providers": [ { "url": "pending", @@ -45,8 +124,13 @@ "license": "CC0-1.0", "keywords": [ "Forecasting", - "vera4cast", - "Chla_ugL_mean, Temp_C_mean" + "neon4cast", + "gcc_90", + "rcc_90", + "temperature", + "nee", + "chla", + "oxygen" ], "table:columns": [ { @@ -74,11 +158,6 @@ "type": "timestamp[us, tz=UTC]", "description": "datetime that forecast was submitted" }, - { - "name": "depth_m", - "type": "double", - "description": "depth (meters) in water column of prediction" - }, { "name": "observation", "type": "double", @@ -187,20 +266,44 @@ "1": { "type": "application/json", "title": "Model Metadata", - "href": "https://renc.osn.xsede.org/bio230121-bucket01/vera4cast/metadata/model_id/persistenceRW.json", - "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://renc.osn.xsede.org/bio230121-bucket01/vera4cast/metadata/model_id/persistenceRW.json\")\n\n" + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/persistenceRW.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/persistenceRW.json\")\n\n" }, "2": { "type": "application/x-parquet", - "title": "Database Access for Chla_ugL_mean daily", - "href": "s3://anonymous@bio230121-bucket01/vera4cast/scores/parquet/duration=P1D/variable=Chla_ugL_mean/model_id=persistenceRW?endpoint_override=renc.osn.xsede.org", - "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230121-bucket01/vera4cast/scores/parquet/duration=P1D/variable=Chla_ugL_mean/model_id=persistenceRW?endpoint_override=renc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "title": "Database Access for Daily Green chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=persistenceRW?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=persistenceRW?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "3": { "type": "application/x-parquet", - "title": "Database Access for Temp_C_mean daily", - "href": "s3://anonymous@bio230121-bucket01/vera4cast/scores/parquet/duration=P1D/variable=Temp_C_mean/model_id=persistenceRW?endpoint_override=renc.osn.xsede.org", - "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230121-bucket01/vera4cast/scores/parquet/duration=P1D/variable=Temp_C_mean/model_id=persistenceRW?endpoint_override=renc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=persistenceRW?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=persistenceRW?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "4": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=persistenceRW?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=persistenceRW?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "5": { + "type": "application/x-parquet", + "title": "Database Access for Daily Net ecosystem exchange", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=persistenceRW?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=persistenceRW?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "6": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=persistenceRW?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=persistenceRW?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "7": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=persistenceRW?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=persistenceRW?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" } } } diff --git a/catalog/scores/models/model_items/procBlanchardMonod.json b/catalog/scores/models/model_items/procBlanchardMonod.json new file mode 100644 index 0000000000..ed51f80132 --- /dev/null +++ b/catalog/scores/models/model_items/procBlanchardMonod.json @@ -0,0 +1,200 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "procBlanchardMonod", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-89.4737, 46.2097], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-149.6106, 68.6307] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-01-01", + "end_datetime": "2023-12-11", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "chla" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "procBlanchardMonod" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "procBlanchardMonod" + }, + { + "rel": "self", + "href": "procBlanchardMonod.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/procBlanchardMonod.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/procBlanchardMonod.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=procBlanchardMonod?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=procBlanchardMonod?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/procBlanchardSteele.json b/catalog/scores/models/model_items/procBlanchardSteele.json new file mode 100644 index 0000000000..9e6bc4a867 --- /dev/null +++ b/catalog/scores/models/model_items/procBlanchardSteele.json @@ -0,0 +1,200 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "procBlanchardSteele", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-89.4737, 46.2097], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-149.6106, 68.6307] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-01-01", + "end_datetime": "2023-12-11", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "chla" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "procBlanchardSteele" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "procBlanchardSteele" + }, + { + "rel": "self", + "href": "procBlanchardSteele.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/procBlanchardSteele.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/procBlanchardSteele.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=procBlanchardSteele?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=procBlanchardSteele?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/procCTMIMonod.json b/catalog/scores/models/model_items/procCTMIMonod.json new file mode 100644 index 0000000000..e0e637ba37 --- /dev/null +++ b/catalog/scores/models/model_items/procCTMIMonod.json @@ -0,0 +1,200 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "procCTMIMonod", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-89.4737, 46.2097], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-149.6106, 68.6307] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-01-01", + "end_datetime": "2023-12-11", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "chla" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "procCTMIMonod" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "procCTMIMonod" + }, + { + "rel": "self", + "href": "procCTMIMonod.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/procCTMIMonod.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/procCTMIMonod.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=procCTMIMonod?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=procCTMIMonod?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/procCTMISteele.json b/catalog/scores/models/model_items/procCTMISteele.json new file mode 100644 index 0000000000..ae509c7da0 --- /dev/null +++ b/catalog/scores/models/model_items/procCTMISteele.json @@ -0,0 +1,200 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "procCTMISteele", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-89.4737, 46.2097], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-149.6106, 68.6307] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-01-01", + "end_datetime": "2023-12-11", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "chla" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "procCTMISteele" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "procCTMISteele" + }, + { + "rel": "self", + "href": "procCTMISteele.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/procCTMISteele.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/procCTMISteele.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=procCTMISteele?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=procCTMISteele?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/procEppleyNorbergMonod.json b/catalog/scores/models/model_items/procEppleyNorbergMonod.json new file mode 100644 index 0000000000..2932a50f2f --- /dev/null +++ b/catalog/scores/models/model_items/procEppleyNorbergMonod.json @@ -0,0 +1,200 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "procEppleyNorbergMonod", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-89.4737, 46.2097], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-149.6106, 68.6307] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-01-01", + "end_datetime": "2023-12-11", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "chla" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "procEppleyNorbergMonod" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "procEppleyNorbergMonod" + }, + { + "rel": "self", + "href": "procEppleyNorbergMonod.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/procEppleyNorbergMonod.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/procEppleyNorbergMonod.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=procEppleyNorbergMonod?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=procEppleyNorbergMonod?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/procEppleyNorbergSteele.json b/catalog/scores/models/model_items/procEppleyNorbergSteele.json new file mode 100644 index 0000000000..a373e50c94 --- /dev/null +++ b/catalog/scores/models/model_items/procEppleyNorbergSteele.json @@ -0,0 +1,200 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "procEppleyNorbergSteele", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-89.4737, 46.2097], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-149.6106, 68.6307] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-01-01", + "end_datetime": "2023-12-11", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "chla" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "procEppleyNorbergSteele" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "procEppleyNorbergSteele" + }, + { + "rel": "self", + "href": "procEppleyNorbergSteele.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/procEppleyNorbergSteele.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/procEppleyNorbergSteele.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=procEppleyNorbergSteele?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=procEppleyNorbergSteele?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/procHinshelwoodMonod.json b/catalog/scores/models/model_items/procHinshelwoodMonod.json new file mode 100644 index 0000000000..0a430ef2a0 --- /dev/null +++ b/catalog/scores/models/model_items/procHinshelwoodMonod.json @@ -0,0 +1,200 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "procHinshelwoodMonod", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-89.4737, 46.2097], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-149.6106, 68.6307] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-01-01", + "end_datetime": "2023-12-11", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "chla" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "procHinshelwoodMonod" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "procHinshelwoodMonod" + }, + { + "rel": "self", + "href": "procHinshelwoodMonod.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/procHinshelwoodMonod.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/procHinshelwoodMonod.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=procHinshelwoodMonod?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=procHinshelwoodMonod?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/procHinshelwoodSteele.json b/catalog/scores/models/model_items/procHinshelwoodSteele.json new file mode 100644 index 0000000000..8a66da6419 --- /dev/null +++ b/catalog/scores/models/model_items/procHinshelwoodSteele.json @@ -0,0 +1,200 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "procHinshelwoodSteele", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-89.4737, 46.2097], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-149.6106, 68.6307] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-01-01", + "end_datetime": "2023-12-11", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "chla" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "procHinshelwoodSteele" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "procHinshelwoodSteele" + }, + { + "rel": "self", + "href": "procHinshelwoodSteele.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/procHinshelwoodSteele.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/procHinshelwoodSteele.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=procHinshelwoodSteele?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=procHinshelwoodSteele?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/prophet_clim_ensemble.json b/catalog/scores/models/model_items/prophet_clim_ensemble.json new file mode 100644 index 0000000000..bf5426bc7d --- /dev/null +++ b/catalog/scores/models/model_items/prophet_clim_ensemble.json @@ -0,0 +1,239 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "prophet_clim_ensemble", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-110.5391, 44.9535], + [-122.3303, 45.7624], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-147.5026, 65.154], + [-149.3705, 68.6611] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-18", + "end_datetime": "2023-12-07", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "rcc_90" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "prophet_clim_ensemble" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "prophet_clim_ensemble" + }, + { + "rel": "self", + "href": "prophet_clim_ensemble.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/prophet_clim_ensemble.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/prophet_clim_ensemble.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=prophet_clim_ensemble?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=prophet_clim_ensemble?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/randfor.json b/catalog/scores/models/model_items/randfor.json new file mode 100644 index 0000000000..1879e4b51e --- /dev/null +++ b/catalog/scores/models/model_items/randfor.json @@ -0,0 +1,240 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "randfor", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-122.3303, 45.7624], + [-156.6194, 71.2824], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-147.5026, 65.154], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-110.5391, 44.9535] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-19", + "end_datetime": "2023-12-11", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "le" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "randfor" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "randfor" + }, + { + "rel": "self", + "href": "randfor.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/randfor.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/randfor.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily latent heat flux", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=randfor?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=randfor?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/tg_arima.json b/catalog/scores/models/model_items/tg_arima.json new file mode 100644 index 0000000000..073f0bd9d1 --- /dev/null +++ b/catalog/scores/models/model_items/tg_arima.json @@ -0,0 +1,337 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "tg_arima", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-87.7982, 32.5415], + [-89.4737, 46.2097], + [-84.4374, 31.1854], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-102.4471, 39.7582], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-66.9868, 18.1135], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-111.7979, 40.7839], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-84.2793, 35.9574], + [-105.9154, 39.8914], + [-122.3303, 45.7624], + [-156.6194, 71.2824], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-147.5026, 65.154], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-110.5391, 44.9535] + ] + }, + "properties": { + "description": [], + "start_datetime": "2021-05-17", + "end_datetime": "2024-10-28", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "chla", + "temperature", + "abundance", + "gcc_90", + "le", + "nee", + "richness", + "amblyomma_americanum", + "oxygen", + "rcc_90" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "tg_arima" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "tg_arima" + }, + { + "rel": "self", + "href": "tg_arima.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_arima.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_arima.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_arima?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_arima?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_arima?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_arima?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "4": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community abundance", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_arima?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_arima?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "5": { + "type": "application/x-parquet", + "title": "Database Access for Daily Green chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_arima?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_arima?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "6": { + "type": "application/x-parquet", + "title": "Database Access for Daily latent heat flux", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_arima?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_arima?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "7": { + "type": "application/x-parquet", + "title": "Database Access for Daily Net ecosystem exchange", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_arima?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_arima?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "8": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community richness", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_arima?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_arima?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "9": { + "type": "application/x-parquet", + "title": "Database Access for Weekly Amblyomma americanum population", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_arima?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_arima?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "10": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_arima?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_arima?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "11": { + "type": "application/x-parquet", + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_arima?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_arima?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/tg_auto_adam.json b/catalog/scores/models/model_items/tg_auto_adam.json new file mode 100644 index 0000000000..53aff053e9 --- /dev/null +++ b/catalog/scores/models/model_items/tg_auto_adam.json @@ -0,0 +1,316 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "tg_auto_adam", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-122.3303, 45.7624], + [-156.6194, 71.2824], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-147.5026, 65.154], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-110.5391, 44.9535], + [-102.4471, 39.7582], + [-82.0084, 29.676], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-87.7982, 32.5415], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-89.4737, 46.2097], + [-66.9868, 18.1135], + [-84.4374, 31.1854], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-89.7048, 45.9983], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-111.7979, 40.7839], + [-82.0177, 29.6878], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-84.2793, 35.9574], + [-105.9154, 39.8914] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-09-01", + "end_datetime": "2023-12-09", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "nee", + "le", + "temperature", + "oxygen", + "chla", + "gcc_90", + "rcc_90" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "tg_auto_adam" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "tg_auto_adam" + }, + { + "rel": "self", + "href": "tg_auto_adam.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_auto_adam.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_auto_adam.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Net ecosystem exchange", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_auto_adam?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_auto_adam?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily latent heat flux", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_auto_adam?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_auto_adam?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "4": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_auto_adam?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_auto_adam?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "5": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_auto_adam?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_auto_adam?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "6": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_auto_adam?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_auto_adam?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "7": { + "type": "application/x-parquet", + "title": "Database Access for Daily Green chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_auto_adam?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_auto_adam?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "8": { + "type": "application/x-parquet", + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_auto_adam?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_auto_adam?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/tg_bag_mlp.json b/catalog/scores/models/model_items/tg_bag_mlp.json new file mode 100644 index 0000000000..67fb43dc57 --- /dev/null +++ b/catalog/scores/models/model_items/tg_bag_mlp.json @@ -0,0 +1,316 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "tg_bag_mlp", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-110.5391, 44.9535], + [-122.3303, 45.7624], + [-156.6194, 71.2824], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-147.5026, 65.154], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-102.4471, 39.7582], + [-82.0084, 29.676], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-87.7982, 32.5415], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-89.4737, 46.2097], + [-66.9868, 18.1135], + [-84.4374, 31.1854], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-89.7048, 45.9983], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-111.7979, 40.7839], + [-82.0177, 29.6878], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-84.2793, 35.9574], + [-105.9154, 39.8914] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-03-27", + "end_datetime": "2023-12-11", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "gcc_90", + "le", + "rcc_90", + "temperature", + "nee", + "chla", + "oxygen" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "tg_bag_mlp" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "tg_bag_mlp" + }, + { + "rel": "self", + "href": "tg_bag_mlp.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_bag_mlp.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_bag_mlp.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Green chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_bag_mlp?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_bag_mlp?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily latent heat flux", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_bag_mlp?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_bag_mlp?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "4": { + "type": "application/x-parquet", + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_bag_mlp?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_bag_mlp?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "5": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_bag_mlp?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_bag_mlp?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "6": { + "type": "application/x-parquet", + "title": "Database Access for Daily Net ecosystem exchange", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_bag_mlp?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_bag_mlp?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "7": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_bag_mlp?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_bag_mlp?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "8": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_bag_mlp?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_bag_mlp?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/tg_ets.json b/catalog/scores/models/model_items/tg_ets.json new file mode 100644 index 0000000000..94c45e8621 --- /dev/null +++ b/catalog/scores/models/model_items/tg_ets.json @@ -0,0 +1,337 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "tg_ets", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-87.7982, 32.5415], + [-89.4737, 46.2097], + [-84.4374, 31.1854], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-122.3303, 45.7624], + [-156.6194, 71.2824], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-147.5026, 65.154], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-110.5391, 44.9535], + [-102.4471, 39.7582], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-66.9868, 18.1135], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-111.7979, 40.7839], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-84.2793, 35.9574], + [-105.9154, 39.8914] + ] + }, + "properties": { + "description": [], + "start_datetime": "2021-05-17", + "end_datetime": "2024-10-28", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "chla", + "le", + "oxygen", + "temperature", + "amblyomma_americanum", + "nee", + "richness", + "gcc_90", + "rcc_90", + "abundance" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "tg_ets" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "tg_ets" + }, + { + "rel": "self", + "href": "tg_ets.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_ets.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_ets.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_ets?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_ets?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily latent heat flux", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_ets?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_ets?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "4": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_ets?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_ets?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "5": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_ets?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_ets?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "6": { + "type": "application/x-parquet", + "title": "Database Access for Weekly Amblyomma americanum population", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_ets?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_ets?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "7": { + "type": "application/x-parquet", + "title": "Database Access for Daily Net ecosystem exchange", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_ets?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_ets?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "8": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community richness", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_ets?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_ets?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "9": { + "type": "application/x-parquet", + "title": "Database Access for Daily Green chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_ets?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_ets?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "10": { + "type": "application/x-parquet", + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_ets?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_ets?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "11": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community abundance", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_ets?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_ets?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/tg_humidity_lm.json b/catalog/scores/models/model_items/tg_humidity_lm.json new file mode 100644 index 0000000000..14070ded48 --- /dev/null +++ b/catalog/scores/models/model_items/tg_humidity_lm.json @@ -0,0 +1,337 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "tg_humidity_lm", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-87.7982, 32.5415], + [-89.4737, 46.2097], + [-84.4374, 31.1854], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-122.3303, 45.7624], + [-156.6194, 71.2824], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-147.5026, 65.154], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-110.5391, 44.9535], + [-102.4471, 39.7582], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-66.9868, 18.1135], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-111.7979, 40.7839], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-84.2793, 35.9574], + [-105.9154, 39.8914] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-05-03", + "end_datetime": "2023-12-12", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "chla", + "gcc_90", + "le", + "nee", + "rcc_90", + "temperature", + "oxygen", + "richness", + "amblyomma_americanum", + "abundance" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "tg_humidity_lm" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "tg_humidity_lm" + }, + { + "rel": "self", + "href": "tg_humidity_lm.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_humidity_lm.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_humidity_lm.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_humidity_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_humidity_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily Green chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_humidity_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_humidity_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "4": { + "type": "application/x-parquet", + "title": "Database Access for Daily latent heat flux", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_humidity_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_humidity_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "5": { + "type": "application/x-parquet", + "title": "Database Access for Daily Net ecosystem exchange", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_humidity_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_humidity_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "6": { + "type": "application/x-parquet", + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_humidity_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_humidity_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "7": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_humidity_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_humidity_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "8": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_humidity_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_humidity_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "9": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community richness", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_humidity_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_humidity_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "10": { + "type": "application/x-parquet", + "title": "Database Access for Weekly Amblyomma americanum population", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_humidity_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_humidity_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "11": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community abundance", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_humidity_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_humidity_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/tg_humidity_lm_all_sites.json b/catalog/scores/models/model_items/tg_humidity_lm_all_sites.json new file mode 100644 index 0000000000..11ffc87136 --- /dev/null +++ b/catalog/scores/models/model_items/tg_humidity_lm_all_sites.json @@ -0,0 +1,337 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "tg_humidity_lm_all_sites", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-87.7982, 32.5415], + [-89.4737, 46.2097], + [-84.4374, 31.1854], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-110.5391, 44.9535], + [-122.3303, 45.7624], + [-156.6194, 71.2824], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-147.5026, 65.154], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088], + [-102.4471, 39.7582], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-66.9868, 18.1135], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-111.7979, 40.7839], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-84.2793, 35.9574], + [-105.9154, 39.8914] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-04-26", + "end_datetime": "2023-12-12", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "chla", + "gcc_90", + "le", + "nee", + "rcc_90", + "oxygen", + "temperature", + "amblyomma_americanum", + "richness", + "abundance" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "tg_humidity_lm_all_sites" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "tg_humidity_lm_all_sites" + }, + { + "rel": "self", + "href": "tg_humidity_lm_all_sites.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_humidity_lm_all_sites.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_humidity_lm_all_sites.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_humidity_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_humidity_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily Green chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_humidity_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_humidity_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "4": { + "type": "application/x-parquet", + "title": "Database Access for Daily latent heat flux", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_humidity_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_humidity_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "5": { + "type": "application/x-parquet", + "title": "Database Access for Daily Net ecosystem exchange", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_humidity_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_humidity_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "6": { + "type": "application/x-parquet", + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_humidity_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_humidity_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "7": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_humidity_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_humidity_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "8": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_humidity_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_humidity_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "9": { + "type": "application/x-parquet", + "title": "Database Access for Weekly Amblyomma americanum population", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_humidity_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_humidity_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "10": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community richness", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_humidity_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_humidity_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "11": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community abundance", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_humidity_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_humidity_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/tg_lasso.json b/catalog/scores/models/model_items/tg_lasso.json new file mode 100644 index 0000000000..7d51a4df7c --- /dev/null +++ b/catalog/scores/models/model_items/tg_lasso.json @@ -0,0 +1,323 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "tg_lasso", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-78.0418, 39.0337], + [-96.5631, 39.1008], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-87.3933, 32.9505], + [-95.1921, 39.0404], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-119.7323, 37.1088], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-110.5391, 44.9535], + [-149.6106, 68.6307], + [-84.2793, 35.9574], + [-105.9154, 39.8914], + [-122.3303, 45.7624], + [-71.2874, 44.0639], + [-147.5026, 65.154], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-119.0274, 36.9559], + [-88.1589, 31.8534], + [-82.0084, 29.676], + [-87.7982, 32.5415], + [-89.4737, 46.2097], + [-84.4374, 31.1854], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-156.6194, 71.2824], + [-102.4471, 39.7582], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-66.9868, 18.1135], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-111.7979, 40.7839], + [-111.5081, 33.751] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-19", + "end_datetime": "2023-12-12", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "amblyomma_americanum", + "rcc_90", + "temperature", + "abundance", + "oxygen", + "chla", + "richness", + "gcc_90" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "tg_lasso" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "tg_lasso" + }, + { + "rel": "self", + "href": "tg_lasso.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_lasso.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_lasso.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Weekly Amblyomma americanum population", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_lasso?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_lasso?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_lasso?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_lasso?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "4": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_lasso?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_lasso?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "5": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community abundance", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_lasso?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_lasso?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "6": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_lasso?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_lasso?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "7": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_lasso?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_lasso?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "8": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community richness", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_lasso?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_lasso?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "9": { + "type": "application/x-parquet", + "title": "Database Access for Daily Green chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_lasso?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_lasso?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/tg_lasso_all_sites.json b/catalog/scores/models/model_items/tg_lasso_all_sites.json new file mode 100644 index 0000000000..7884431912 --- /dev/null +++ b/catalog/scores/models/model_items/tg_lasso_all_sites.json @@ -0,0 +1,323 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "tg_lasso_all_sites", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-122.3303, 45.7624], + [-156.6194, 71.2824], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-147.5026, 65.154], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-110.5391, 44.9535], + [-89.4737, 46.2097], + [-66.9868, 18.1135], + [-84.4374, 31.1854], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-89.7048, 45.9983], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-111.7979, 40.7839], + [-82.0177, 29.6878], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-84.2793, 35.9574], + [-105.9154, 39.8914], + [-102.4471, 39.7582], + [-82.0084, 29.676], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-87.7982, 32.5415], + [-147.504, 65.1532], + [-105.5442, 40.035] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-19", + "end_datetime": "2023-12-11", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "rcc_90", + "gcc_90", + "oxygen", + "temperature", + "amblyomma_americanum", + "richness", + "chla", + "abundance" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "tg_lasso_all_sites" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "tg_lasso_all_sites" + }, + { + "rel": "self", + "href": "tg_lasso_all_sites.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_lasso_all_sites.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_lasso_all_sites.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_lasso_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_lasso_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily Green chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_lasso_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_lasso_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "4": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_lasso_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_lasso_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "5": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_lasso_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_lasso_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "6": { + "type": "application/x-parquet", + "title": "Database Access for Weekly Amblyomma americanum population", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_lasso_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_lasso_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "7": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community richness", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_lasso_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_lasso_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "8": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_lasso_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_lasso_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "9": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community abundance", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_lasso_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_lasso_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/tg_precip_lm.json b/catalog/scores/models/model_items/tg_precip_lm.json new file mode 100644 index 0000000000..aad193f3e1 --- /dev/null +++ b/catalog/scores/models/model_items/tg_precip_lm.json @@ -0,0 +1,337 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "tg_precip_lm", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-87.7982, 32.5415], + [-89.4737, 46.2097], + [-84.4374, 31.1854], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-122.3303, 45.7624], + [-156.6194, 71.2824], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-147.5026, 65.154], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-110.5391, 44.9535], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-84.2793, 35.9574], + [-105.9154, 39.8914], + [-102.4471, 39.7582], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-66.9868, 18.1135], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-111.7979, 40.7839] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-05-11", + "end_datetime": "2023-12-12", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "chla", + "gcc_90", + "le", + "nee", + "rcc_90", + "oxygen", + "temperature", + "abundance", + "amblyomma_americanum", + "richness" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "tg_precip_lm" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "tg_precip_lm" + }, + { + "rel": "self", + "href": "tg_precip_lm.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_precip_lm.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_precip_lm.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_precip_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_precip_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily Green chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_precip_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_precip_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "4": { + "type": "application/x-parquet", + "title": "Database Access for Daily latent heat flux", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_precip_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_precip_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "5": { + "type": "application/x-parquet", + "title": "Database Access for Daily Net ecosystem exchange", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_precip_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_precip_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "6": { + "type": "application/x-parquet", + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_precip_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_precip_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "7": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_precip_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_precip_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "8": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_precip_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_precip_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "9": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community abundance", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_precip_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_precip_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "10": { + "type": "application/x-parquet", + "title": "Database Access for Weekly Amblyomma americanum population", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_precip_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_precip_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "11": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community richness", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_precip_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_precip_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/tg_precip_lm_all_sites.json b/catalog/scores/models/model_items/tg_precip_lm_all_sites.json new file mode 100644 index 0000000000..695c9ad13d --- /dev/null +++ b/catalog/scores/models/model_items/tg_precip_lm_all_sites.json @@ -0,0 +1,337 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "tg_precip_lm_all_sites", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-87.7982, 32.5415], + [-89.4737, 46.2097], + [-84.4374, 31.1854], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-122.3303, 45.7624], + [-156.6194, 71.2824], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-147.5026, 65.154], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-110.5391, 44.9535], + [-102.4471, 39.7582], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-66.9868, 18.1135], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-111.7979, 40.7839], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-84.2793, 35.9574], + [-105.9154, 39.8914] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-05-16", + "end_datetime": "2023-12-12", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "chla", + "gcc_90", + "le", + "rcc_90", + "nee", + "oxygen", + "temperature", + "amblyomma_americanum", + "richness", + "abundance" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "tg_precip_lm_all_sites" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "tg_precip_lm_all_sites" + }, + { + "rel": "self", + "href": "tg_precip_lm_all_sites.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_precip_lm_all_sites.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_precip_lm_all_sites.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_precip_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_precip_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily Green chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_precip_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_precip_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "4": { + "type": "application/x-parquet", + "title": "Database Access for Daily latent heat flux", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_precip_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_precip_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "5": { + "type": "application/x-parquet", + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_precip_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_precip_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "6": { + "type": "application/x-parquet", + "title": "Database Access for Daily Net ecosystem exchange", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_precip_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_precip_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "7": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_precip_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_precip_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "8": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_precip_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_precip_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "9": { + "type": "application/x-parquet", + "title": "Database Access for Weekly Amblyomma americanum population", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_precip_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_precip_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "10": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community richness", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_precip_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_precip_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "11": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community abundance", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_precip_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_precip_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/tg_randfor.json b/catalog/scores/models/model_items/tg_randfor.json new file mode 100644 index 0000000000..8a000f486d --- /dev/null +++ b/catalog/scores/models/model_items/tg_randfor.json @@ -0,0 +1,337 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "tg_randfor", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-87.7982, 32.5415], + [-89.4737, 46.2097], + [-84.4374, 31.1854], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-122.3303, 45.7624], + [-156.6194, 71.2824], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-147.5026, 65.154], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-110.5391, 44.9535], + [-102.4471, 39.7582], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-66.9868, 18.1135], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-111.7979, 40.7839], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-84.2793, 35.9574], + [-105.9154, 39.8914] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-19", + "end_datetime": "2023-12-11", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "chla", + "gcc_90", + "rcc_90", + "nee", + "oxygen", + "richness", + "abundance", + "temperature", + "amblyomma_americanum", + "le" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "tg_randfor" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "tg_randfor" + }, + { + "rel": "self", + "href": "tg_randfor.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_randfor.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_randfor.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_randfor?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_randfor?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily Green chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_randfor?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_randfor?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "4": { + "type": "application/x-parquet", + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_randfor?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_randfor?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "5": { + "type": "application/x-parquet", + "title": "Database Access for Daily Net ecosystem exchange", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_randfor?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_randfor?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "6": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_randfor?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_randfor?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "7": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community richness", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_randfor?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_randfor?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "8": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community abundance", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_randfor?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_randfor?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "9": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_randfor?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_randfor?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "10": { + "type": "application/x-parquet", + "title": "Database Access for Weekly Amblyomma americanum population", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_randfor?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_randfor?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "11": { + "type": "application/x-parquet", + "title": "Database Access for Daily latent heat flux", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_randfor?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_randfor?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/tg_randfor_all_sites.json b/catalog/scores/models/model_items/tg_randfor_all_sites.json new file mode 100644 index 0000000000..61b1106b67 --- /dev/null +++ b/catalog/scores/models/model_items/tg_randfor_all_sites.json @@ -0,0 +1,309 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "tg_randfor_all_sites", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-89.4737, 46.2097], + [-66.9868, 18.1135], + [-84.4374, 31.1854], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-89.7048, 45.9983], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-111.7979, 40.7839], + [-82.0177, 29.6878], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-84.2793, 35.9574], + [-105.9154, 39.8914], + [-102.4471, 39.7582], + [-82.0084, 29.676], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-87.7982, 32.5415], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-110.5391, 44.9535], + [-122.3303, 45.7624], + [-156.6194, 71.2824], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-147.5026, 65.154], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-19", + "end_datetime": "2023-12-11", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "oxygen", + "rcc_90", + "temperature", + "abundance", + "amblyomma_americanum", + "richness" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "tg_randfor_all_sites" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "tg_randfor_all_sites" + }, + { + "rel": "self", + "href": "tg_randfor_all_sites.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_randfor_all_sites.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_randfor_all_sites.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_randfor_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_randfor_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_randfor_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_randfor_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "4": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_randfor_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_randfor_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "5": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community abundance", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_randfor_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_randfor_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "6": { + "type": "application/x-parquet", + "title": "Database Access for Weekly Amblyomma americanum population", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_randfor_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_randfor_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "7": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community richness", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_randfor_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_randfor_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/tg_tbats.json b/catalog/scores/models/model_items/tg_tbats.json new file mode 100644 index 0000000000..049c1ef58e --- /dev/null +++ b/catalog/scores/models/model_items/tg_tbats.json @@ -0,0 +1,337 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "tg_tbats", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-122.3303, 45.7624], + [-156.6194, 71.2824], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-147.5026, 65.154], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-110.5391, 44.9535], + [-102.4471, 39.7582], + [-82.0084, 29.676], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-87.7982, 32.5415], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-89.4737, 46.2097], + [-66.9868, 18.1135], + [-84.4374, 31.1854], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-89.7048, 45.9983], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-111.7979, 40.7839], + [-82.0177, 29.6878], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-84.2793, 35.9574], + [-105.9154, 39.8914] + ] + }, + "properties": { + "description": [], + "start_datetime": "2021-05-17", + "end_datetime": "2024-10-28", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "le", + "oxygen", + "nee", + "chla", + "rcc_90", + "temperature", + "amblyomma_americanum", + "abundance", + "gcc_90", + "richness" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "tg_tbats" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "tg_tbats" + }, + { + "rel": "self", + "href": "tg_tbats.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_tbats.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_tbats.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily latent heat flux", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_tbats?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_tbats?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_tbats?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_tbats?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "4": { + "type": "application/x-parquet", + "title": "Database Access for Daily Net ecosystem exchange", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_tbats?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_tbats?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "5": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_tbats?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_tbats?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "6": { + "type": "application/x-parquet", + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_tbats?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_tbats?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "7": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_tbats?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_tbats?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "8": { + "type": "application/x-parquet", + "title": "Database Access for Weekly Amblyomma americanum population", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_tbats?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_tbats?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "9": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community abundance", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_tbats?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_tbats?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "10": { + "type": "application/x-parquet", + "title": "Database Access for Daily Green chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_tbats?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_tbats?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "11": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community richness", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_tbats?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_tbats?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/tg_temp_lm.json b/catalog/scores/models/model_items/tg_temp_lm.json new file mode 100644 index 0000000000..5903e00341 --- /dev/null +++ b/catalog/scores/models/model_items/tg_temp_lm.json @@ -0,0 +1,337 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "tg_temp_lm", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-87.7982, 32.5415], + [-89.4737, 46.2097], + [-84.4374, 31.1854], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-110.5391, 44.9535], + [-122.3303, 45.7624], + [-156.6194, 71.2824], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-147.5026, 65.154], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-84.2793, 35.9574], + [-105.9154, 39.8914], + [-102.4471, 39.7582], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-66.9868, 18.1135], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-111.7979, 40.7839] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-04-19", + "end_datetime": "2023-12-12", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "chla", + "gcc_90", + "le", + "rcc_90", + "nee", + "oxygen", + "temperature", + "amblyomma_americanum", + "richness", + "abundance" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "tg_temp_lm" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "tg_temp_lm" + }, + { + "rel": "self", + "href": "tg_temp_lm.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_temp_lm.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_temp_lm.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_temp_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_temp_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily Green chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_temp_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_temp_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "4": { + "type": "application/x-parquet", + "title": "Database Access for Daily latent heat flux", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_temp_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_temp_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "5": { + "type": "application/x-parquet", + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_temp_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_temp_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "6": { + "type": "application/x-parquet", + "title": "Database Access for Daily Net ecosystem exchange", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_temp_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_temp_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "7": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_temp_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_temp_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "8": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_temp_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_temp_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "9": { + "type": "application/x-parquet", + "title": "Database Access for Weekly Amblyomma americanum population", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_temp_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_temp_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "10": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community richness", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_temp_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_temp_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "11": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community abundance", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_temp_lm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_temp_lm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/tg_temp_lm_all_sites.json b/catalog/scores/models/model_items/tg_temp_lm_all_sites.json new file mode 100644 index 0000000000..7e5902b3a7 --- /dev/null +++ b/catalog/scores/models/model_items/tg_temp_lm_all_sites.json @@ -0,0 +1,337 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "tg_temp_lm_all_sites", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-82.0084, 29.676], + [-87.7982, 32.5415], + [-89.4737, 46.2097], + [-84.4374, 31.1854], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-122.3303, 45.7624], + [-156.6194, 71.2824], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-147.5026, 65.154], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531], + [-105.546, 40.2759], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-110.5391, 44.9535], + [-102.4471, 39.7582], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-66.9868, 18.1135], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-111.7979, 40.7839], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-84.2793, 35.9574], + [-105.9154, 39.8914] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-04-26", + "end_datetime": "2023-12-12", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "chla", + "gcc_90", + "le", + "oxygen", + "rcc_90", + "nee", + "temperature", + "abundance", + "amblyomma_americanum", + "richness" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "tg_temp_lm_all_sites" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "tg_temp_lm_all_sites" + }, + { + "rel": "self", + "href": "tg_temp_lm_all_sites.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_temp_lm_all_sites.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tg_temp_lm_all_sites.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_temp_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=tg_temp_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily Green chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_temp_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=tg_temp_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "4": { + "type": "application/x-parquet", + "title": "Database Access for Daily latent heat flux", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_temp_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=tg_temp_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "5": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_temp_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tg_temp_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "6": { + "type": "application/x-parquet", + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_temp_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=tg_temp_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "7": { + "type": "application/x-parquet", + "title": "Database Access for Daily Net ecosystem exchange", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_temp_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=tg_temp_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "8": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_temp_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tg_temp_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "9": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community abundance", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_temp_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=abundance/model_id=tg_temp_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "10": { + "type": "application/x-parquet", + "title": "Database Access for Weekly Amblyomma americanum population", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_temp_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=amblyomma_americanum/model_id=tg_temp_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "11": { + "type": "application/x-parquet", + "title": "Database Access for Weekly beetle community richness", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_temp_lm_all_sites?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1W/variable=richness/model_id=tg_temp_lm_all_sites?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/tslm.json b/catalog/scores/models/model_items/tslm.json new file mode 100644 index 0000000000..41d3714dd5 --- /dev/null +++ b/catalog/scores/models/model_items/tslm.json @@ -0,0 +1,234 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "tslm", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-102.4471, 39.7582], + [-82.0084, 29.676], + [-119.2575, 37.0597], + [-110.5871, 44.9501], + [-96.6242, 34.4442], + [-87.7982, 32.5415], + [-147.504, 65.1532], + [-105.5442, 40.035], + [-89.4737, 46.2097], + [-66.9868, 18.1135], + [-84.4374, 31.1854], + [-66.7987, 18.1741], + [-72.3295, 42.4719], + [-96.6038, 39.1051], + [-83.5038, 35.6904], + [-77.9832, 39.0956], + [-89.7048, 45.9983], + [-121.9338, 45.7908], + [-87.4077, 32.9604], + [-96.443, 38.9459], + [-122.1655, 44.2596], + [-149.143, 68.6698], + [-78.1473, 38.8943], + [-97.7823, 33.3785], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-111.7979, 40.7839], + [-82.0177, 29.6878], + [-111.5081, 33.751], + [-119.0274, 36.9559], + [-88.1589, 31.8534], + [-149.6106, 68.6307], + [-84.2793, 35.9574], + [-105.9154, 39.8914] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-09-15", + "end_datetime": "2023-10-20", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "temperature", + "oxygen" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "tslm" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "tslm" + }, + { + "rel": "self", + "href": "tslm.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tslm.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/tslm.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tslm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=tslm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tslm?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=tslm?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/models/model_items/xgboost_parallel.json b/catalog/scores/models/model_items/xgboost_parallel.json new file mode 100644 index 0000000000..ebf35d658c --- /dev/null +++ b/catalog/scores/models/model_items/xgboost_parallel.json @@ -0,0 +1,291 @@ +{ + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/table/v1.2.0/schema.json" + ], + "type": "Feature", + "id": "xgboost_parallel", + "bbox": [ + [ + -156.6194, + 71.2824, + -66.7987, + 71.2824 + ] + ], + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [-110.5391, 44.9535], + [-82.0084, 29.676], + [-87.7982, 32.5415], + [-89.4737, 46.2097], + [-84.4374, 31.1854], + [-89.7048, 45.9983], + [-99.1139, 47.1591], + [-99.2531, 47.1298], + [-82.0177, 29.6878], + [-88.1589, 31.8534], + [-122.3303, 45.7624], + [-156.6194, 71.2824], + [-71.2874, 44.0639], + [-78.0418, 39.0337], + [-147.5026, 65.154], + [-97.57, 33.4012], + [-104.7456, 40.8155], + [-99.1066, 47.1617], + [-145.7514, 63.8811], + [-87.8039, 32.5417], + [-81.4362, 28.1251], + [-83.5019, 35.689], + [-66.8687, 17.9696], + [-72.1727, 42.5369], + [-149.2133, 63.8758], + [-84.4686, 31.1948], + [-78.1395, 38.8929], + [-76.56, 38.8901], + [-119.7323, 37.1088], + [-119.2622, 37.0334], + [-110.8355, 31.9107], + [-89.5864, 45.5089], + [-103.0293, 40.4619], + [-87.3933, 32.9505], + [-119.006, 37.0058], + [-149.3705, 68.6611], + [-89.5857, 45.4937], + [-95.1921, 39.0404], + [-89.5373, 46.2339], + [-99.2413, 47.1282], + [-121.9519, 45.8205], + [-105.546, 40.2759], + [-106.8425, 32.5907], + [-96.6129, 39.1104], + [-96.5631, 39.1008], + [-67.0769, 18.0213], + [-88.1612, 31.8539], + [-80.5248, 37.3783], + [-109.3883, 38.2483], + [-105.5824, 40.0543], + [-100.9154, 46.7697], + [-99.0588, 35.4106], + [-112.4524, 40.1776], + [-84.2826, 35.9641], + [-81.9934, 29.6893], + [-155.3173, 19.5531] + ] + }, + "properties": { + "description": [], + "start_datetime": "2023-10-19", + "end_datetime": "2023-11-22", + "providers": [ + { + "url": "pending", + "name": "pending", + "roles": [ + "producer", + "processor", + "licensor" + ] + }, + { + "url": "https://www.ecoforecastprojectvt.org", + "name": "Ecoforecast Challenge", + "roles": [ + "host" + ] + } + ], + "license": "CC0-1.0", + "keywords": [ + "Forecasting", + "neon4cast", + "le", + "chla", + "gcc_90", + "nee", + "rcc_90", + "oxygen", + "temperature" + ], + "table:columns": [ + { + "name": "reference_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that the forecast was initiated (horizon = 0)" + }, + { + "name": "site_id", + "type": "string", + "description": "For forecasts that are not on a spatial grid, use of a site dimension that maps to a more detailed geometry (points, polygons, etc.) is allowable. In general this would be documented in the external metadata (e.g., alook-up table that provides lon and lat); however in netCDF this could be handled by the CF Discrete Sampling Geometry data model." + }, + { + "name": "datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime of the forecasted value (ISO 8601)" + }, + { + "name": "family", + "type": "string", + "description": "For ensembles: “ensemble.” Default value if unspecified For probability distributions: Name of the statistical distribution associated with the reported statistics. The “sample” distribution is synonymous with “ensemble.” For summary statistics: “summary.”If this dimension does not vary, it is permissible to specify family as a variable attribute if the file format being used supports this (e.g.,netCDF)." + }, + { + "name": "pub_datetime", + "type": "timestamp[us, tz=UTC]", + "description": "datetime that forecast was submitted" + }, + { + "name": "observation", + "type": "double", + "description": "observed value for variable" + }, + { + "name": "crps", + "type": "double", + "description": "crps forecast score" + }, + { + "name": "logs", + "type": "double", + "description": "logs forecast score" + }, + { + "name": "mean", + "type": "double", + "description": "mean forecast prediction" + }, + { + "name": "median", + "type": "double", + "description": "median forecast prediction" + }, + { + "name": "sd", + "type": "double", + "description": "standard deviation forecasts" + }, + { + "name": "quantile97.5", + "type": "double", + "description": "upper 97.5 percentile value of forecast" + }, + { + "name": "quantile02.5", + "type": "double", + "description": "upper 2.5 percentile value of forecast" + }, + { + "name": "quantile90", + "type": "double", + "description": "upper 90 percentile value of forecast" + }, + { + "name": "quantile10", + "type": "double", + "description": "upper 10 percentile value of forecast" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "duration", + "type": "string", + "description": "temporal duration of forecast (hourly = PT1H, daily = P1D, etc.); follows ISO 8601 duration convention" + }, + { + "name": "variable", + "type": "string", + "description": "name of forecasted variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "date", + "type": "string", + "description": "ISO 8601 (ISO 2019) date of the predicted value; follows CF convention http://cfconventions.org/cf-conventions/cf-conventions.html#time-coordinate. This variable was called time before v0.5of the EFI convention. For time-integrated variables (e.g., cumulative net primary productivity), one should specify the start_datetime and end_datetime as two variables, instead of the single datetime. If this is not provided the datetime is assumed to be the MIDPOINT of the integration period." + } + ] + }, + "collection": "scores", + "links": [ + { + "rel": "collection", + "href": "../collection.json", + "type": "application/json", + "title": "xgboost_parallel" + }, + { + "rel": "root", + "href": "../../../catalog.json", + "type": "application/json", + "title": "Forecast Catalog" + }, + { + "rel": "parent", + "href": "../collection.json", + "type": "application/json", + "title": "xgboost_parallel" + }, + { + "rel": "self", + "href": "xgboost_parallel.json", + "type": "application/json", + "title": "Model Forecast" + } + ], + "assets": { + "1": { + "type": "application/json", + "title": "Model Metadata", + "href": "https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/xgboost_parallel.json", + "description": "Use `jsonlite::fromJSON()` to download the model metadata JSON file. This R code will return metadata provided during the model registration.\n \n\n### R\n\n```{r}\n# Use code below\n\nmodel_metadata <- jsonlite::fromJSON(\"https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/metadata/model_id/xgboost_parallel.json\")\n\n" + }, + "2": { + "type": "application/x-parquet", + "title": "Database Access for Daily latent heat flux", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=xgboost_parallel?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=le/model_id=xgboost_parallel?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "3": { + "type": "application/x-parquet", + "title": "Database Access for Daily Chlorophyll-a", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=xgboost_parallel?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=chla/model_id=xgboost_parallel?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "4": { + "type": "application/x-parquet", + "title": "Database Access for Daily Green chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=xgboost_parallel?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=gcc_90/model_id=xgboost_parallel?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "5": { + "type": "application/x-parquet", + "title": "Database Access for Daily Net ecosystem exchange", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=xgboost_parallel?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=nee/model_id=xgboost_parallel?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "6": { + "type": "application/x-parquet", + "title": "Database Access for Daily Red chromatic coordinate", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=xgboost_parallel?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=rcc_90/model_id=xgboost_parallel?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "7": { + "type": "application/x-parquet", + "title": "Database Access for Daily Dissolved oxygen", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=xgboost_parallel?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=oxygen/model_id=xgboost_parallel?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + }, + "8": { + "type": "application/x-parquet", + "title": "Database Access for Daily Water temperature", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=xgboost_parallel?endpoint_override=sdsc.osn.xsede.org", + "description": "Use `arrow` for remote access to the database. This R code will return results for this variable and model combination.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/duration=P1D/variable=temperature/model_id=xgboost_parallel?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + } + } +} diff --git a/catalog/scores/scores_models.R b/catalog/scores/scores_models.R index ff8c190136..e854fd537a 100644 --- a/catalog/scores/scores_models.R +++ b/catalog/scores/scores_models.R @@ -79,6 +79,10 @@ stac4cast::build_forecast_scores(table_schema = scores_theme_df, thumbnail_title = catalog_config$scores_thumbnail_title) ## create separate JSON for model landing page +## create separate JSON for model landing page +if (!dir.exists(paste0(catalog_config$scores_path,"models"))){ + dir.create(paste0(catalog_config$scores_path,"models")) +} stac4cast::build_group_variables(table_schema = scores_theme_df, #theme_id = 'models', @@ -89,24 +93,38 @@ stac4cast::build_group_variables(table_schema = scores_theme_df, description_string = build_description, about_string = catalog_config$about_string, about_title = catalog_config$about_title, + dashboard_string = catalog_config$dashboard_url, + dashboard_title = catalog_config$dashboard_title, theme_title = "Models", destination_path = paste0(catalog_config$scores_path,"models"), aws_download_path = catalog_config$aws_download_path, - group_var_items = stac4cast::generate_model_items(model_list = theme_models$model_id)) + group_var_items = stac4cast::generate_model_items(model_list = theme_models$model_id), + thumbnail_link = 'pending', + thumbnail_title = 'pending', + group_var_vector = NULL, + group_sites = NULL) ## CREATE MODELS ## READ IN MODEL METADATA -# googlesheets4::gs4_deauth() -# -# registered_model_id <- googlesheets4::read_sheet(config$model_metadata_gsheet) +variable_gsheet <- gsheet2tbl(config$target_metadata_gsheet) -registered_model_id <- gsheet2tbl(config$model_metadata_gsheet) +#registered_model_id <- gsheet2tbl(config$model_metadata_gsheet) + +# read in model metadata and filter for the relevant project +registered_model_id <- gsheet2tbl(config$model_metadata_gsheet) |> + filter(`What forecasting challenge are you registering for?` == config$project_id) scores_sites <- c() ## loop over model ids and extract components if present in metadata table for (m in theme_models$model_id){ + + # make model items directory + if (!dir.exists(paste0(catalog_config$forecast_path,"models/model_items"))){ + dir.create(paste0(catalog_config$forecast_path,"models/model_items")) + } + print(m) model_date_range <- scores_data_df |> filter(model_id == m) |> dplyr::summarise(min(date),max(date)) model_min_date <- model_date_range$`min(date)` @@ -116,12 +134,22 @@ for (m in theme_models$model_id){ model_vars <- scores_data_df |> filter(model_id == m) |> distinct(variable) model_var_duration_df <- scores_data_df |> filter(model_id == m) |> distinct(variable,duration) |> - mutate(duration_name = ifelse(duration == 'P1D', 'daily', duration)) |> - mutate(duration_name = ifelse(duration == 'PT1H', 'hourly', duration_name)) |> + mutate(duration_name = ifelse(duration == 'P1D', 'Daily', duration)) |> + mutate(duration_name = ifelse(duration == 'PT1H', 'Hourly', duration_name)) |> mutate(duration_name = ifelse(duration == 'PT30M', '30min', duration_name)) |> - mutate(duration_name = ifelse(duration == 'P1W', 'weekly', duration_name)) + mutate(duration_name = ifelse(duration == 'P1W', 'Weekly', duration_name)) + + model_var_full_name <- model_var_duration_df |> + left_join((variable_gsheet |> + select(variable = `"official" targets name`, full_name = `Variable name`) |> + distinct(variable, .keep_all = TRUE)), by = c('variable')) - model_var_duration_df$full_variable_name <- paste0(model_var_duration_df$variable, "_", model_var_duration_df$duration_name) + model_sites <- scores_data_df |> filter(model_id == m) |> distinct(site_id) + + model_vars <- scores_data_df |> filter(model_id == m) |> distinct(variable) |> left_join(model_var_full_name, by = 'variable') + model_vars$var_duration_name <- paste0(model_vars$duration_name, " ", model_vars$full_name) + + #model_var_duration_df$full_variable_name <- paste0(model_var_duration_df$variable, "_", model_var_duration_df$duration_name) scores_sites <- append(scores_sites, stac4cast::get_site_coords(site_metadata = catalog_config$site_metadata_url, sites = model_sites$site_id)) @@ -129,7 +157,6 @@ for (m in theme_models$model_id){ idx = which(registered_model_id$model_id == m) stac4cast::build_model(model_id = m, - #theme_id = m, team_name = registered_model_id$`Long name of the model (can include spaces)`[idx], model_description = registered_model_id[idx,"Describe your modeling approach in your own words."][[1]], start_date = model_min_date, @@ -141,11 +168,11 @@ for (m in theme_models$model_id){ model_documentation = registered_model_id, destination_path = paste0(catalog_config$scores_path,"models/model_items"), aws_download_path = config$scores_bucket, # CHANGE THIS BUCKET NAME - #theme_title = m, collection_name = 'scores', thumbnail_image_name = NULL, table_schema = scores_theme_df, - table_description = scores_description_create) + table_description = scores_description_create, + full_var_df = model_vars) } @@ -164,18 +191,28 @@ for (i in 1:length(config$variable_groups)){ var_values <- config$variable_groups[[i]]$variable var_name <- config$variable_groups[[i]]$variable[j] + duration_name <- config$variable_groups[[i]]$duration[j] + + # match variable with full name in gsheet + var_name_full <- variable_gsheet[which(variable_gsheet$`"official" targets name` %in% var_values),1][[1]] + ## create new vector to store duration names duration_values <- config$variable_groups[[i]]$duration - duration_values[which(duration_values == 'P1D')] <- 'daily' - duration_values[which(duration_values == 'PT1H')] <- 'hourly' + duration_values[which(duration_values == 'P1D')] <- 'Daily' + duration_values[which(duration_values == 'PT1H')] <- 'Hourly' duration_values[which(duration_values == 'PT30M')] <- '30min' - duration_values[which(duration_values == 'P1W')] <- 'weekly' + duration_values[which(duration_values == 'P1W')] <- 'Weekly' - var_name_combined_list <- paste0(var_values, '_',duration_values) + var_name_combined_list <- paste0(duration_values,' ',var_name_full) ## CREATE VARIABLE GROUP JSONS group_description <- paste0('This page includes variables for the ',names(config$variable_groups[i]),' group.') + ## find group sites + find_group_sites <- scores_data_df |> + filter(variable %in% var_values) |> + distinct(site_id) + stac4cast::build_group_variables(table_schema = scores_theme_df, #theme_id = names(config$variable_groups[i]), table_description = scores_description_create, @@ -185,17 +222,24 @@ for (i in 1:length(config$variable_groups)){ description_string = group_description, about_string = catalog_config$about_string, about_title = catalog_config$about_title, + dashboard_string = catalog_config$dashboard_url, + dashboard_title = catalog_config$dashboard_title, theme_title = names(config$variable_groups[i]), destination_path = paste0(catalog_config$scores_path,names(config$variable_groups[i])), aws_download_path = catalog_config$aws_download_path, - group_var_items = stac4cast::generate_group_variable_items(variables = var_name_combined_list)) + group_var_items = stac4cast::generate_group_variable_items(variables = var_name_combined_list), + thumbnail_link = config$variable_groups[[i]]$thumbnail_link, + thumbnail_title = config$variable_groups[[i]]$thumbnail_title, + group_var_vector = unique(var_values), + group_sites = find_group_sites$site_id) if (!dir.exists(paste0(catalog_config$scores_path,names(config$variable_groups)[i],'/',var_name_combined_list[j]))){ dir.create(paste0(catalog_config$scores_path,names(config$variable_groups)[i],'/',var_name_combined_list[j])) } var_data <- scores_data_df |> - filter(variable == var_name) + filter(variable == var_name, + duration == duration_name) var_date_range <- var_data |> dplyr::summarise(min(date),max(date)) var_min_date <- var_date_range$`min(date)` @@ -203,6 +247,10 @@ for (i in 1:length(config$variable_groups)){ var_models <- var_data |> distinct(model_id) + find_var_sites <- scores_data_df |> + filter(variable == var_name) |> + distinct(site_id) + var_description <- paste0('This page includes all models for the ',var_name_combined_list[j],' variable.') stac4cast::build_group_variables(table_schema = scores_theme_df, @@ -214,10 +262,16 @@ for (i in 1:length(config$variable_groups)){ description_string = var_description, about_string = catalog_config$about_string, about_title = catalog_config$about_title, + dashboard_string = catalog_config$dashboard_url, + dashboard_title = catalog_config$dashboard_title, theme_title = var_name_combined_list[j], destination_path = file.path(catalog_config$scores_path,names(config$variable_groups)[i],var_name_combined_list[j]), aws_download_path = var_data$path[1], - group_var_items = stac4cast::generate_variable_model_items(model_list = var_models$model_id)) + group_var_items = stac4cast::generate_variable_model_items(model_list = var_models$model_id), + thumbnail_link = 'pending', + thumbnail_title = 'pending', + group_var_vector = NULL, + group_sites = find_var_sites$site_id) } From 61e592cc7c3458e3eb80391ce5c28d67db97f90b Mon Sep 17 00:00:00 2001 From: addelany Date: Thu, 9 Nov 2023 10:46:45 -0600 Subject: [PATCH 03/10] update scores description --- catalog/scores/collection.json | 2 +- catalog/scores/scores_models.R | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/catalog/scores/collection.json b/catalog/scores/collection.json index b3e86e5a10..34f5f54626 100644 --- a/catalog/scores/collection.json +++ b/catalog/scores/collection.json @@ -1,6 +1,6 @@ { "id": "daily-scores", - "description": "The catalog contains forecasts for the NEON Ecological Forecasting Challenge. The scores are summaries of the forecasts (i.e., mean, median, confidence intervals), matched observations (if available), and scores (metrics of how well the model distribution compares to observations). You can access the scores at the top level of the dataset where all models, variables, and dates that forecasts were produced (reference_datetime) are available. The code to access the entire dataset is provided as an asset. Given the size of the scores catalog, it can be time-consuming to access the data at the full dataset level. For quicker access to the scores for a particular model (model_id), we also provide the code to access the data at the model_id level as an asset for each model.", + "description": "The catalog contains scores for the NEON Ecological Forecasting Challenge. The scores are summaries of the forecasts (i.e., mean, median, confidence intervals), matched observations (if available), and scores (metrics of how well the model distribution compares to observations). You can access the scores at the top level of the dataset where all models, variables, and dates that forecasts were produced (reference_datetime) are available. The code to access the entire dataset is provided as an asset. Given the size of the scores catalog, it can be time-consuming to access the data at the full dataset level. For quicker access to the scores for a particular model (model_id), we also provide the code to access the data at the model_id level as an asset for each model.", "stac_version": "1.0.0", "license": "CC0-1.0", "stac_extensions": [ diff --git a/catalog/scores/scores_models.R b/catalog/scores/scores_models.R index e854fd537a..9cfbffbb47 100644 --- a/catalog/scores/scores_models.R +++ b/catalog/scores/scores_models.R @@ -57,7 +57,7 @@ scores_date_range <- scores_data_df |> dplyr::summarise(min(date),max(date)) scores_min_date <- scores_date_range$`min(date)` scores_max_date <- scores_date_range$`max(date)` -build_description <- paste0("The catalog contains forecasts for the ", config$challenge_long_name,". The scores are summaries of the forecasts (i.e., mean, median, confidence intervals), matched observations (if available), and scores (metrics of how well the model distribution compares to observations). You can access the scores at the top level of the dataset where all models, variables, and dates that forecasts were produced (reference_datetime) are available. The code to access the entire dataset is provided as an asset. Given the size of the scores catalog, it can be time-consuming to access the data at the full dataset level. For quicker access to the scores for a particular model (model_id), we also provide the code to access the data at the model_id level as an asset for each model.") +build_description <- paste0("The catalog contains scores for the ", config$challenge_long_name,". The scores are summaries of the forecasts (i.e., mean, median, confidence intervals), matched observations (if available), and scores (metrics of how well the model distribution compares to observations). You can access the scores at the top level of the dataset where all models, variables, and dates that forecasts were produced (reference_datetime) are available. The code to access the entire dataset is provided as an asset. Given the size of the scores catalog, it can be time-consuming to access the data at the full dataset level. For quicker access to the scores for a particular model (model_id), we also provide the code to access the data at the model_id level as an asset for each model.") #variable_group <- c('test_daily') From 853c325c72a7439e4ba62d187c0ace6ede4a179e Mon Sep 17 00:00:00 2001 From: addelany Date: Thu, 9 Nov 2023 11:10:17 -0600 Subject: [PATCH 04/10] update scores download path --- catalog/forecasts/forecast_models.R | 6 +++--- catalog/scores/Aquatics/collection.json | 4 ++-- catalog/scores/Beetles/collection.json | 4 ++-- catalog/scores/Phenology/collection.json | 4 ++-- catalog/scores/Terrestrial/collection.json | 4 ++-- catalog/scores/Ticks/collection.json | 4 ++-- catalog/scores/collection.json | 4 ++-- catalog/scores/models/collection.json | 6 +++--- catalog/scores/scores_models.R | 6 +++--- challenge_configuration.yaml | 3 ++- 10 files changed, 23 insertions(+), 22 deletions(-) diff --git a/catalog/forecasts/forecast_models.R b/catalog/forecasts/forecast_models.R index 98a58cb0b9..939ef5afb2 100644 --- a/catalog/forecasts/forecast_models.R +++ b/catalog/forecasts/forecast_models.R @@ -64,7 +64,7 @@ stac4cast::build_forecast_scores(table_schema = forecast_theme_df, about_title = catalog_config$about_title, theme_title = "Forecasts", destination_path = catalog_config$forecast_path, - aws_download_path = catalog_config$aws_download_path, + aws_download_path = catalog_config$aws_download_path_forecasts, link_items = stac4cast::generate_group_values(group_values = names(config$variable_groups)), thumbnail_link = catalog_config$forecasts_thumbnail, thumbnail_title = catalog_config$forecasts_thumbnail_title) @@ -87,7 +87,7 @@ stac4cast::build_group_variables(table_schema = forecast_theme_df, theme_title = "Models", #model_documentation = NULL, destination_path = paste0(catalog_config$forecast_path,"models"), - aws_download_path = catalog_config$aws_download_path, + aws_download_path = catalog_config$aws_download_path_forecasts, group_var_items = stac4cast::generate_model_items(model_list = theme_models$model_id), thumbnail_link = 'pending', thumbnail_title = 'pending', @@ -217,7 +217,7 @@ for (i in 1:length(config$variable_groups)){ ## organize variable groups dashboard_title = catalog_config$dashboard_title, theme_title = names(config$variable_groups[i]), destination_path = paste0(catalog_config$forecast_path,names(config$variable_groups[i])), - aws_download_path = catalog_config$aws_download_path, + aws_download_path = catalog_config$aws_download_path_forecasts, group_var_items = stac4cast::generate_group_variable_items(variables = var_name_combined_list), thumbnail_link = config$variable_groups[[i]]$thumbnail_link, thumbnail_title = config$variable_groups[[i]]$thumbnail_title, diff --git a/catalog/scores/Aquatics/collection.json b/catalog/scores/Aquatics/collection.json index ea29bb02c0..c14bd96aac 100644 --- a/catalog/scores/Aquatics/collection.json +++ b/catalog/scores/Aquatics/collection.json @@ -177,13 +177,13 @@ ], "assets": { "data": { - "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/?endpoint_override=sdsc.osn.xsede.org", "type": "application/x-parquet", "title": "Database Access", "roles": [ "data" ], - "description": "Use `arrow` for remote access to the database. This R code will return results for the NEON Ecological Forecasting Aquatics theme.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |>\n dplyr::filter(variable %in% c(\"oxygen\", \"temperature\", \"chla\")) |>\n dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "description": "Use `arrow` for remote access to the database. This R code will return results for the NEON Ecological Forecasting Aquatics theme.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |>\n dplyr::filter(variable %in% c(\"oxygen\", \"temperature\", \"chla\")) |>\n dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "thumbnail": { "href": "https://projects.ecoforecast.org/neon4cast-catalog/img/neon_buoy.jpg", diff --git a/catalog/scores/Beetles/collection.json b/catalog/scores/Beetles/collection.json index 96b25d59d0..ba0d0b3622 100644 --- a/catalog/scores/Beetles/collection.json +++ b/catalog/scores/Beetles/collection.json @@ -172,13 +172,13 @@ ], "assets": { "data": { - "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/?endpoint_override=sdsc.osn.xsede.org", "type": "application/x-parquet", "title": "Database Access", "roles": [ "data" ], - "description": "Use `arrow` for remote access to the database. This R code will return results for the NEON Ecological Forecasting Aquatics theme.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |>\n dplyr::filter(variable %in% c(\"abundance\", \"richness\")) |>\n dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "description": "Use `arrow` for remote access to the database. This R code will return results for the NEON Ecological Forecasting Aquatics theme.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |>\n dplyr::filter(variable %in% c(\"abundance\", \"richness\")) |>\n dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "thumbnail": { "href": "https://www.neonscience.org/sites/default/files/styles/max_width_1170px/public/image-content-images/Beetles_pinned.jpg", diff --git a/catalog/scores/Phenology/collection.json b/catalog/scores/Phenology/collection.json index 8bf4af214c..b26ec59dce 100644 --- a/catalog/scores/Phenology/collection.json +++ b/catalog/scores/Phenology/collection.json @@ -172,13 +172,13 @@ ], "assets": { "data": { - "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/?endpoint_override=sdsc.osn.xsede.org", "type": "application/x-parquet", "title": "Database Access", "roles": [ "data" ], - "description": "Use `arrow` for remote access to the database. This R code will return results for the NEON Ecological Forecasting Aquatics theme.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |>\n dplyr::filter(variable %in% c(\"gcc_90\", \"rcc_90\")) |>\n dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "description": "Use `arrow` for remote access to the database. This R code will return results for the NEON Ecological Forecasting Aquatics theme.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |>\n dplyr::filter(variable %in% c(\"gcc_90\", \"rcc_90\")) |>\n dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "thumbnail": { "href": "https://www.neonscience.org/sites/default/files/styles/max_1300x1300/public/image-content-images/_BFP8455.jpg", diff --git a/catalog/scores/Terrestrial/collection.json b/catalog/scores/Terrestrial/collection.json index ef3ea1e7fd..922c984caa 100644 --- a/catalog/scores/Terrestrial/collection.json +++ b/catalog/scores/Terrestrial/collection.json @@ -182,13 +182,13 @@ ], "assets": { "data": { - "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/?endpoint_override=sdsc.osn.xsede.org", "type": "application/x-parquet", "title": "Database Access", "roles": [ "data" ], - "description": "Use `arrow` for remote access to the database. This R code will return results for the NEON Ecological Forecasting Aquatics theme.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |>\n dplyr::filter(variable %in% c(\"nee\", \"le\")) |>\n dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "description": "Use `arrow` for remote access to the database. This R code will return results for the NEON Ecological Forecasting Aquatics theme.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |>\n dplyr::filter(variable %in% c(\"nee\", \"le\")) |>\n dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "thumbnail": { "href": "https://projects.ecoforecast.org/neon4cast-catalog/img/BONA_Twr.jpg", diff --git a/catalog/scores/Ticks/collection.json b/catalog/scores/Ticks/collection.json index 13dc3a5241..9306637e6f 100644 --- a/catalog/scores/Ticks/collection.json +++ b/catalog/scores/Ticks/collection.json @@ -167,13 +167,13 @@ ], "assets": { "data": { - "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/?endpoint_override=sdsc.osn.xsede.org", "type": "application/x-parquet", "title": "Database Access", "roles": [ "data" ], - "description": "Use `arrow` for remote access to the database. This R code will return results for the NEON Ecological Forecasting Aquatics theme.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |>\n dplyr::filter(variable %in% c(\"amblyomma_americanum\")) |>\n dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "description": "Use `arrow` for remote access to the database. This R code will return results for the NEON Ecological Forecasting Aquatics theme.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |>\n dplyr::filter(variable %in% c(\"amblyomma_americanum\")) |>\n dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "thumbnail": { "href": "https://www.neonscience.org/sites/default/files/styles/max_2600x2600/public/image-content-images/tick-image.jpg", diff --git a/catalog/scores/collection.json b/catalog/scores/collection.json index 34f5f54626..9cee8b30e6 100644 --- a/catalog/scores/collection.json +++ b/catalog/scores/collection.json @@ -203,13 +203,13 @@ ], "assets": { "data": { - "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/?endpoint_override=sdsc.osn.xsede.org", "type": "application/x-parquet", "title": "Database Access", "roles": [ "data" ], - "description": "Use `arrow` for remote access to the database. This R code will return results for the VERA Forecasting Challenge.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "description": "Use `arrow` for remote access to the database. This R code will return results for the VERA Forecasting Challenge.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "thumbnail": { "href": "https://raw.githubusercontent.com/eco4cast/neon4cast-ci/main/catalog/thumbnail_plots/51629805865_0ef01ffbbc_c.jpg", diff --git a/catalog/scores/models/collection.json b/catalog/scores/models/collection.json index ba34c39a27..50f4271286 100644 --- a/catalog/scores/models/collection.json +++ b/catalog/scores/models/collection.json @@ -1,6 +1,6 @@ { "id": "models", - "description": "The catalog contains forecasts for the NEON Ecological Forecasting Challenge. The scores are summaries of the forecasts (i.e., mean, median, confidence intervals), matched observations (if available), and scores (metrics of how well the model distribution compares to observations). You can access the scores at the top level of the dataset where all models, variables, and dates that forecasts were produced (reference_datetime) are available. The code to access the entire dataset is provided as an asset. Given the size of the scores catalog, it can be time-consuming to access the data at the full dataset level. For quicker access to the scores for a particular model (model_id), we also provide the code to access the data at the model_id level as an asset for each model.", + "description": "The catalog contains scores for the NEON Ecological Forecasting Challenge. The scores are summaries of the forecasts (i.e., mean, median, confidence intervals), matched observations (if available), and scores (metrics of how well the model distribution compares to observations). You can access the scores at the top level of the dataset where all models, variables, and dates that forecasts were produced (reference_datetime) are available. The code to access the entire dataset is provided as an asset. Given the size of the scores catalog, it can be time-consuming to access the data at the full dataset level. For quicker access to the scores for a particular model (model_id), we also provide the code to access the data at the model_id level as an asset for each model.", "stac_version": "1.0.0", "license": "CC0-1.0", "stac_extensions": [ @@ -407,13 +407,13 @@ ], "assets": { "data": { - "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/?endpoint_override=sdsc.osn.xsede.org", "type": "application/x-parquet", "title": "Database Access", "roles": [ "data" ], - "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "thumbnail": { "href": "pending", diff --git a/catalog/scores/scores_models.R b/catalog/scores/scores_models.R index 9cfbffbb47..d7e13a5573 100644 --- a/catalog/scores/scores_models.R +++ b/catalog/scores/scores_models.R @@ -73,7 +73,7 @@ stac4cast::build_forecast_scores(table_schema = scores_theme_df, about_title = catalog_config$about_title, theme_title = "Scores", destination_path = catalog_config$scores_path, - aws_download_path = catalog_config$aws_download_path, + aws_download_path = catalog_config$aws_download_path_scores, link_items = stac4cast::generate_group_values(group_values = names(config$variable_groups)), thumbnail_link = catalog_config$scores_thumbnail, thumbnail_title = catalog_config$scores_thumbnail_title) @@ -97,7 +97,7 @@ stac4cast::build_group_variables(table_schema = scores_theme_df, dashboard_title = catalog_config$dashboard_title, theme_title = "Models", destination_path = paste0(catalog_config$scores_path,"models"), - aws_download_path = catalog_config$aws_download_path, + aws_download_path = catalog_config$aws_download_path_scores, group_var_items = stac4cast::generate_model_items(model_list = theme_models$model_id), thumbnail_link = 'pending', thumbnail_title = 'pending', @@ -226,7 +226,7 @@ for (i in 1:length(config$variable_groups)){ dashboard_title = catalog_config$dashboard_title, theme_title = names(config$variable_groups[i]), destination_path = paste0(catalog_config$scores_path,names(config$variable_groups[i])), - aws_download_path = catalog_config$aws_download_path, + aws_download_path = catalog_config$aws_download_path_scores, group_var_items = stac4cast::generate_group_variable_items(variables = var_name_combined_list), thumbnail_link = config$variable_groups[[i]]$thumbnail_link, thumbnail_title = config$variable_groups[[i]]$thumbnail_title, diff --git a/challenge_configuration.yaml b/challenge_configuration.yaml index 9bd7a6ff9e..09d75a51c2 100644 --- a/challenge_configuration.yaml +++ b/challenge_configuration.yaml @@ -51,7 +51,8 @@ catalog_config: forecasts_thumbnail_title: "NEON Buoy Image" forecast_path: 'catalog/forecasts/' scores_path: 'catalog/scores/' - aws_download_path: 'bio230014-bucket01/challenges/forecasts/parquet/' + aws_download_path_forecasts: 'bio230014-bucket01/challenges/forecasts/parquet/' + aws_download_path_scores: 'bio230014-bucket01/challenges/scores/parquet/' host_url: "https://www.ecoforecastprojectvt.org" host_name: "Ecoforecast Challenge" bbox: From 2a5e2a644111d13c53d45371c1bdab8db0a896f8 Mon Sep 17 00:00:00 2001 From: addelany Date: Thu, 9 Nov 2023 11:14:40 -0600 Subject: [PATCH 05/10] update variable scores path --- catalog/scores/Aquatics/Daily Chlorophyll-a/collection.json | 4 ++-- .../scores/Aquatics/Daily Dissolved oxygen/collection.json | 4 ++-- .../scores/Aquatics/Daily Water temperature/collection.json | 4 ++-- .../Beetles/Weekly beetle community abundance/collection.json | 4 ++-- .../Beetles/Weekly beetle community richness/collection.json | 4 ++-- .../Daily Green chromatic coordinate/collection.json | 4 ++-- .../Phenology/Daily Red chromatic coordinate/collection.json | 4 ++-- .../scores/Terrestrial/30min latent heat flux/collection.json | 4 ++-- .../Terrestrial/Daily Net ecosystem exchange/collection.json | 4 ++-- .../Weekly Amblyomma americanum population/collection.json | 4 ++-- catalog/scores/scores_models.R | 4 +++- 11 files changed, 23 insertions(+), 21 deletions(-) diff --git a/catalog/scores/Aquatics/Daily Chlorophyll-a/collection.json b/catalog/scores/Aquatics/Daily Chlorophyll-a/collection.json index a9cc8f6033..08137a0c36 100644 --- a/catalog/scores/Aquatics/Daily Chlorophyll-a/collection.json +++ b/catalog/scores/Aquatics/Daily Chlorophyll-a/collection.json @@ -297,13 +297,13 @@ ], "assets": { "data": { - "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=chla?endpoint_override=sdsc.osn.xsede.org", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/project_id=neon4cast/duration=P1D/variable=chla?endpoint_override=sdsc.osn.xsede.org", "type": "application/x-parquet", "title": "Database Access", "roles": [ "data" ], - "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=chla?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/project_id=neon4cast/duration=P1D/variable=chla?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "thumbnail": { "href": "pending", diff --git a/catalog/scores/Aquatics/Daily Dissolved oxygen/collection.json b/catalog/scores/Aquatics/Daily Dissolved oxygen/collection.json index 8615ccf4aa..46fb47a608 100644 --- a/catalog/scores/Aquatics/Daily Dissolved oxygen/collection.json +++ b/catalog/scores/Aquatics/Daily Dissolved oxygen/collection.json @@ -277,13 +277,13 @@ ], "assets": { "data": { - "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=oxygen?endpoint_override=sdsc.osn.xsede.org", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/project_id=neon4cast/duration=P1D/variable=oxygen?endpoint_override=sdsc.osn.xsede.org", "type": "application/x-parquet", "title": "Database Access", "roles": [ "data" ], - "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=oxygen?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/project_id=neon4cast/duration=P1D/variable=oxygen?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "thumbnail": { "href": "pending", diff --git a/catalog/scores/Aquatics/Daily Water temperature/collection.json b/catalog/scores/Aquatics/Daily Water temperature/collection.json index 5ea3aeb14f..a5604747fd 100644 --- a/catalog/scores/Aquatics/Daily Water temperature/collection.json +++ b/catalog/scores/Aquatics/Daily Water temperature/collection.json @@ -347,13 +347,13 @@ ], "assets": { "data": { - "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=temperature?endpoint_override=sdsc.osn.xsede.org", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/project_id=neon4cast/duration=P1D/variable=temperature?endpoint_override=sdsc.osn.xsede.org", "type": "application/x-parquet", "title": "Database Access", "roles": [ "data" ], - "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=temperature?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/project_id=neon4cast/duration=P1D/variable=temperature?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "thumbnail": { "href": "pending", diff --git a/catalog/scores/Beetles/Weekly beetle community abundance/collection.json b/catalog/scores/Beetles/Weekly beetle community abundance/collection.json index a209a879f3..18030a8b5d 100644 --- a/catalog/scores/Beetles/Weekly beetle community abundance/collection.json +++ b/catalog/scores/Beetles/Weekly beetle community abundance/collection.json @@ -227,13 +227,13 @@ ], "assets": { "data": { - "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1W/variable=abundance?endpoint_override=sdsc.osn.xsede.org", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/project_id=neon4cast/duration=P1W/variable=abundance?endpoint_override=sdsc.osn.xsede.org", "type": "application/x-parquet", "title": "Database Access", "roles": [ "data" ], - "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1W/variable=abundance?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/project_id=neon4cast/duration=P1W/variable=abundance?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "thumbnail": { "href": "pending", diff --git a/catalog/scores/Beetles/Weekly beetle community richness/collection.json b/catalog/scores/Beetles/Weekly beetle community richness/collection.json index c40c1941d7..4fea797494 100644 --- a/catalog/scores/Beetles/Weekly beetle community richness/collection.json +++ b/catalog/scores/Beetles/Weekly beetle community richness/collection.json @@ -227,13 +227,13 @@ ], "assets": { "data": { - "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1W/variable=richness?endpoint_override=sdsc.osn.xsede.org", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/project_id=neon4cast/duration=P1W/variable=richness?endpoint_override=sdsc.osn.xsede.org", "type": "application/x-parquet", "title": "Database Access", "roles": [ "data" ], - "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1W/variable=richness?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/project_id=neon4cast/duration=P1W/variable=richness?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "thumbnail": { "href": "pending", diff --git a/catalog/scores/Phenology/Daily Green chromatic coordinate/collection.json b/catalog/scores/Phenology/Daily Green chromatic coordinate/collection.json index d5a7881246..c970346f4c 100644 --- a/catalog/scores/Phenology/Daily Green chromatic coordinate/collection.json +++ b/catalog/scores/Phenology/Daily Green chromatic coordinate/collection.json @@ -252,13 +252,13 @@ ], "assets": { "data": { - "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=gcc_90?endpoint_override=sdsc.osn.xsede.org", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/project_id=neon4cast/duration=P1D/variable=gcc_90?endpoint_override=sdsc.osn.xsede.org", "type": "application/x-parquet", "title": "Database Access", "roles": [ "data" ], - "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=gcc_90?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/project_id=neon4cast/duration=P1D/variable=gcc_90?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "thumbnail": { "href": "pending", diff --git a/catalog/scores/Phenology/Daily Red chromatic coordinate/collection.json b/catalog/scores/Phenology/Daily Red chromatic coordinate/collection.json index 8000ba6cac..fa22182c87 100644 --- a/catalog/scores/Phenology/Daily Red chromatic coordinate/collection.json +++ b/catalog/scores/Phenology/Daily Red chromatic coordinate/collection.json @@ -267,13 +267,13 @@ ], "assets": { "data": { - "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=rcc_90?endpoint_override=sdsc.osn.xsede.org", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/project_id=neon4cast/duration=P1D/variable=rcc_90?endpoint_override=sdsc.osn.xsede.org", "type": "application/x-parquet", "title": "Database Access", "roles": [ "data" ], - "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=rcc_90?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/project_id=neon4cast/duration=P1D/variable=rcc_90?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "thumbnail": { "href": "pending", diff --git a/catalog/scores/Terrestrial/30min latent heat flux/collection.json b/catalog/scores/Terrestrial/30min latent heat flux/collection.json index 1094ae9895..b07b82a9ca 100644 --- a/catalog/scores/Terrestrial/30min latent heat flux/collection.json +++ b/catalog/scores/Terrestrial/30min latent heat flux/collection.json @@ -167,13 +167,13 @@ ], "assets": { "data": { - "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=PT30M/variable=le?endpoint_override=sdsc.osn.xsede.org", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/project_id=neon4cast/duration=PT30M/variable=le?endpoint_override=sdsc.osn.xsede.org", "type": "application/x-parquet", "title": "Database Access", "roles": [ "data" ], - "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=PT30M/variable=le?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/project_id=neon4cast/duration=PT30M/variable=le?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "thumbnail": { "href": "pending", diff --git a/catalog/scores/Terrestrial/Daily Net ecosystem exchange/collection.json b/catalog/scores/Terrestrial/Daily Net ecosystem exchange/collection.json index 97da9fd165..a6d9805149 100644 --- a/catalog/scores/Terrestrial/Daily Net ecosystem exchange/collection.json +++ b/catalog/scores/Terrestrial/Daily Net ecosystem exchange/collection.json @@ -247,13 +247,13 @@ ], "assets": { "data": { - "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=le?endpoint_override=sdsc.osn.xsede.org", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/project_id=neon4cast/duration=P1D/variable=le?endpoint_override=sdsc.osn.xsede.org", "type": "application/x-parquet", "title": "Database Access", "roles": [ "data" ], - "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1D/variable=le?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/project_id=neon4cast/duration=P1D/variable=le?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "thumbnail": { "href": "pending", diff --git a/catalog/scores/Ticks/Weekly Amblyomma americanum population/collection.json b/catalog/scores/Ticks/Weekly Amblyomma americanum population/collection.json index bb2079ec65..2efbe9a28a 100644 --- a/catalog/scores/Ticks/Weekly Amblyomma americanum population/collection.json +++ b/catalog/scores/Ticks/Weekly Amblyomma americanum population/collection.json @@ -227,13 +227,13 @@ ], "assets": { "data": { - "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1W/variable=amblyomma_americanum?endpoint_override=sdsc.osn.xsede.org", + "href": "s3://anonymous@bio230014-bucket01/challenges/scores/parquet/project_id=neon4cast/duration=P1W/variable=amblyomma_americanum?endpoint_override=sdsc.osn.xsede.org", "type": "application/x-parquet", "title": "Database Access", "roles": [ "data" ], - "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=neon4cast/duration=P1W/variable=amblyomma_americanum?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" + "description": "Use `arrow` for remote access to the database. This R code will return results for forecasts of the variable by the specific model .\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/project_id=neon4cast/duration=P1W/variable=amblyomma_americanum?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "thumbnail": { "href": "pending", diff --git a/catalog/scores/scores_models.R b/catalog/scores/scores_models.R index d7e13a5573..09209db476 100644 --- a/catalog/scores/scores_models.R +++ b/catalog/scores/scores_models.R @@ -253,6 +253,8 @@ for (i in 1:length(config$variable_groups)){ var_description <- paste0('This page includes all models for the ',var_name_combined_list[j],' variable.') + var_path <- gsub('forecasts','scores',var_data$path[1]) + stac4cast::build_group_variables(table_schema = scores_theme_df, #theme_id = var_name_combined_list[j], table_description = scores_description_create, @@ -266,7 +268,7 @@ for (i in 1:length(config$variable_groups)){ dashboard_title = catalog_config$dashboard_title, theme_title = var_name_combined_list[j], destination_path = file.path(catalog_config$scores_path,names(config$variable_groups)[i],var_name_combined_list[j]), - aws_download_path = var_data$path[1], + aws_download_path = var_path, group_var_items = stac4cast::generate_variable_model_items(model_list = var_models$model_id), thumbnail_link = 'pending', thumbnail_title = 'pending', From 4cbd41cc30f18c94f4db9e582e9b94b467bba5d8 Mon Sep 17 00:00:00 2001 From: Austin Delany Date: Thu, 9 Nov 2023 13:57:54 -0600 Subject: [PATCH 06/10] Add files via upload From e119ceece8b3c84a4a8e16ebcf60c6732b1b0800 Mon Sep 17 00:00:00 2001 From: Austin Delany Date: Thu, 9 Nov 2023 14:00:47 -0600 Subject: [PATCH 07/10] add scores thumbnail From ab161324f19944e503e27363a854908987652cb0 Mon Sep 17 00:00:00 2001 From: Austin Delany Date: Thu, 9 Nov 2023 14:01:40 -0600 Subject: [PATCH 08/10] add scores thumbnail --- .../52760199990_d1a0f154fe_c.jpg | Bin 0 -> 123909 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 catalog/thumbnail_plots/52760199990_d1a0f154fe_c.jpg diff --git a/catalog/thumbnail_plots/52760199990_d1a0f154fe_c.jpg b/catalog/thumbnail_plots/52760199990_d1a0f154fe_c.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7a6bc67f7a5a1307f6717499b402fab57fd961e1 GIT binary patch literal 123909 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%0Drku2_S8 ziQo@RcfwwaZIH5@(vFudsG(UHPLhyWUs;U~;I8XpPb1WF20Xtf#`$vFF`OOQf$_xk z(o?=;4L`%u?7D+$c3@8IEw=|@w%EKrGlqgS(lCpt!*S2ojf58rQGbjAuQnYDgN8LT3wJ(XmQ zvWixS+DXQ?aHC>Xc2d?JU92?wt2?MR<0zeCr_MQa!+gi!u;b{%9XP3MLlL)B=zz&N=ruqAR*ngYF%K0J9a*} z=;Y+II-=^Df#a%Fk#vr%k~o;KSq;b>{KCX=d*cO?`Xjfp_BD!{mI!_s;6^Lcghms6 z_a}01bLqYCT9(0D7Ky0hjyWU-B9}&{wfdf#f#ZGv?S4D$#XZ<0`!%&P)yYWRXx-{j zKoTsWzMEY4QQkEoY_PMo(d}B7F*<2TBHp^;i(h65) zlnEJ22C)hh>9xSQ8w>69+a6@{C|d@cx+|pc9Q1jFS)7@KDqsYlljIAe>ep_2Sbq4t zURt!ciAIc?<}u}yRn$z<#{gA2z#_$tT97I^srUasP{G({jZI_YLz8pak5Mlb5hmEPaKIMjlVD=>SMmmatQ2g zjk)V!m4QUFRhpoRP@>s7dxv9oCjS6%cDEbjPV@tGu}+R&K!FhHRSZCO+yis#>9#YH zD48B%E?Y%X&Kfs_w18^_9fi>C#@DzzSog*%3w93CDt!K$Y^ryLbZUfzO{^7TBOmGy zBImvRahJs#2hg+Tbn#S9X~2><5wwCiRRxsV*W4DoM4sS%ai%!%(-I+5=Q7B>1(rz~ zX{~Ulb9ExXUvfY@@4wd?(p?X>NUxLH0Mq}6VqAV@5>Alr~^H@|FouOpVa92q%hr_QNlf}kq|ZAVcE0)t`+8}L8&_+NN^ zqG-tyW&I4IqMiooQ?98=4X|Da-+^)m-|2@O_b<5(6FZ}zNU5DBk_Wo9 zx~vMX@{o5McN}7}dA|gBlQ>8)SbtTEUuok_x zK6JdFB56%Julpt0dy#m4TTfB{04GgEl^sMzMh4f~;H`;L4TY>lt&Tjo;^`}FIcU!K zuC_0M=~KLuQxBI*HlSEvU#*F`)9O#C$Eo6Bl&Q6{lKh#Pn*Ob1EAfrgc39y^xFpPmJ^;v{1sQDwg;9T$iW9hal6LEjIyLuqk z<`ejer$a~;Uh%%S3!v^m4ttUSzkh6P3dImxDjI@XdR(;D*(8@*Gl$rnOxlO;0mb}^ zZO}a$9}i{`Q{_}Y4(6`5SJfIiY0{f6uAyOYcE4{e?Tw+vP5#EPmZ+a!;w6SCS}2+| zS5`5o0EQ&`ZO8-G!y56`nscS1qH6iGWPmK)I(KUlsLkd#Ba8Z2YAsO-1D<+d;FTIU9mh@R^BC{GfEzkrk+(Vb9t3~p|-Z;eO!*maeQxqN5_9j zT5JCR@J+YbqyGTuS!@A?6!E0e1ZIi<0O_i=m&`5cbM@lDoO1sFkCs%}h`u1qKaXXf z4M$Lw4IvUh^GT&ekDBBI*z7EQd+pPT4;1;&wb`7Ok2v_+c{8b_tA!{!Dbq4g#vRf? zEn&ULHwOFfaxv>A$`>7wj?3zd*=ohDXwo$XnpHr|%)?14KS?8f_&aTUMtM9nB!-9; zUJ;_3ERIS^9jYmlrYt||zp1}=^!~Wv$LHi(DXlP-8ZQTUa*Hg>AeOa09p+;&jjTyi zz$g6%*W6(8XPe2LN221DY@e9s5Uew;G=M~ZG)JtEdEEW>8{@ka98%Z0A8IaF{J!D3TqMF7zB``DD;y=nk zUCoZfY;Eg~s7gvaaxR4)jIME+N&GgN7^$NYO4@{$0!IZ&uy6Dp_}(cuc3SAvct;`3 zGmM@oDW*v3QGqWi9ZE>K_x;8^{{Sy6RJciK=AYT|{GWP5nNQ%~17(rt0x6}Yg*8h^ z80&738j8N)@7rsSLym|=Qc>vo2uFkxK4|=8&)TEKS%l`H#CiiV$fa9G+vzvb7h%4{ z5N~cZYMQ09%<^f;S%=Ezp=7I0oN`p5xNzE~D7L(Nu@g^0udE3u}|bt~+`hbI%jV()PSnAx8x=#Y& zSmRtcpqosqU9%@!QByW&8pN={b(FLVVjQit0vOobw|$5v{@u?kVH)&Hlv=V49!Wh^ z(^R~)#t9oz!bX=y1QHF0o6HA0+gG zyzz{q7dW)hl%sDC|^f(^m? zjjf8D7D%e>iFHGRG^I-RM5>5I8tEF5j-4d&VaWs#FJd>p7@U~p@u=}3MHG4ML)J2p zN{R5tQ%YCQAQri?^8f{!!1m(z#+ZM@lX89f{2Hffm~p?vxJ8;OD#_v!MXa#tFngU~ zY)03$xjS1{HOSQCar7s?#G@)J>mVySRhKTZK!ZUS2HH;c`K&ttFw|p}ro9cMsJN@3 zilS(kMvFa%N@&>FsSGz>NF-d1yJNc)c`cP%q72Zb1j0&il1koP8jIOji(2B_4T&V| zJ7Og!iE77c^Yf;2geHgiuh#T4*RL{C?zAiI%$m4$#Of_;uTp%rfXF{a&| z)W)ij<`k3F#}?vAQ2t=O#)3}&0NZYHvxJk1~fVX>wG(30iwI(D--ZvqWm= z0#=DnQsY4iEXoay&ud?i?}}G+%4?BfSd-Jr!b)Y#Q7l#&;%y6HK@1d&dYfBROai)zmPGM~d>5Cg%G97S=S;WdhkT(D>*0rpoVQg)S>kYD^ z^z4w)Q&hxgrl$B;kcTMk!5e}}>`D7yzAg$g+8WqY#wTTw=^B=!r?Do>I^S>wj-$VA zxW_(N+wVq^s+5Rl)mP` zn~raO0KeRva4AlCF3PPIk!ClB7@$(EDw3)YD;BT;Dat& zJ_0zx!5Y%uNzk*trCrIs+uwi%w)^9*S>YJmR@j$hoVu7(!#!N8V+>VQOoygH8?hYs z+v$j0q=wxPGd%6G$||@XxV$T}`H9fHkEMw_Ume&T$9{~Owl zAlRGs9By&6(`!Y$DQPnXt2H7@s7*9b6;==i3B=SZNkz2B&PY+BeLro-dL}3*Y%z=xWUrMR%U^n~YIQcQ0 zwh|bp%<5>WK&3(o#t%inzTIU3mB_2)aT6-ufXa-$VP+&HYps+3kYjVJVz*|w`*5Dj@GHw&8^g#n6stH6XC!Lmc zkcl*nOg1G)YXWz@_&j4t>2qBdO!TadhcSc^Iz*Jn#4OTSojO6d9099q4sDMQK5TM& z+bKzOTT?^)Iu}a0zlgJbWC{=^*PGj(_BQ6%#~h{dyNaTmy#+hO*|jxIB@_);Xap8)a za$S_;_%k%%=Vo|bqG*tkl*=+$>;Wah-1gr5aqo|DKZPccqZcQl48MkTC1ILbv`+~g z3$3G!Z)5&oci!6qZ+)?bPc|x56{5I5W0`N^?JTp4$rWWNQd+6uWlkH+;I)`a!91{h zXS7U`t441kt7zVJs+`lTbq=xu1EMHU%EPt6;P%HxS#nhq6wgPW!L;=mT}Q%5vu6xx z+2#^CjDkj`0>eM-?z3naN_vp)Sb3BB-oj6jijH$u|X|CmZ1;iG+ZT~;cb0};Bo!&bMceO$t@1) zn_mQeAm+2hER79hrD0~6B6U>h@`BbJSP*V)V0ake@_bBmy?zJH`YS1XTQx0o^{u5{ zVJh(f<#k(y*!;=``StEG*YGC=8YRk&4Fz2mXH3y7t|w(#V<{+Map<-HwYUV^)C+IP zm*j+#Z(R=UQIXE7f8u({W}~Q6J?}bHl5`baA%_51n*n36-0i=miVG6oOdO2eBGgjn zH4RFsRU-atI+ZNe<48MP08RVvj5A43Y{|%6r!}cH?MRgM6%j_r%(18iMeYv$#;#5H z##6%w6)T`G{9m1>O-~gxD)dk(@-S=1Vs30Vw_{>?zShTIij=+VyL}OV;trf>^varm z(IT6Zr0hWBW4=0^Es~1)W2mdE4+oMx2_2tvt#?skdy9*Wff&*et2C3eZnCcp)I|-N zewboKj|L*&>@Qr+T@k(($PUpW=MMFJboW{cVl0VdBeZ zuCDNWwJz0^?$Xq$5X6gMr^~j(%x!)9alRa)o8r)@^4}4p)GETS;u5D@N7a=1E`r1; zJ-6-YgrQIN9nrb`FVE_!b2=q8rRk&q2xK~hi?B8~wZY?Kj!dw}l3PXKaC1l6ULpKQ zrIW%`l(NA!9Yn}NO;ZrQ%r9U?u19{rj&Um<-5$>+8b{9m0E^SSJ|v@Lgyu1|GAwzJ zM*Q`;{JmTffRz^mS4<6v-&o2$Nt|9(V%laiDw--WRvxjc!>d!vI0X>zsV)ZuUu*6! zg)COol02%|?tIhK)1`GyRJD}BmWdK{EP^!DfkCy^Rh_)I+fmzWcS0RDJ#>mFY7|b; zG&g5y7+L;n01wUjw*9PeytUFTyC!6LT~$z&$OLo(?y_p+8w-1#h0os@%NIVyY`mn) zvc{?ryz((y>5!ot1>J!hTHmq8u~Ecl)7U0Rs>Gt6o1xRZaVq?`zsq}fK5L7OjwV^7 z9g^B7$SPARMrfy6YXMZTBBHSk=CK>!O~@Vg-;8liYshsbW4VUjagVJq?t{kKuw&07_Io&53cv;9Fxntvw7ikF$RQZDj9;91)9r4*u zCYU%nQ7r1~=!}uF#}z+N?{YwpmDPTCy^iMBBhwm3$4{_HuF876=4jrYvI$k_`i3S} zHq&*u)Gx?xM|&K1LOd516>CRNUsY921gSeTF-y{xBGyPQ$6c&A)NXEXw{UTccw&=} z*je>OXTqSPsfwK{ zkLOe}tGgg1Sbr}2Y5SYwg|!)`*F)^BuB@+GsHKe{b(O+N7$7T)02_U-EImJ0wmp0j zQh?H+jdIjcnt7sm;$+Zd19ek%BwKL6k>(wU2iF%YaF){9OL{|-WYTCA6*Y3}h9Kfb z7k5&0_a1GA{BEAM#u(xFE#uKLhJu!>E`}wjm1S7LV=`(NVnHW+@&Mb5jj$|F9$v|$ zkn2$hVl?u=71WZ@iEgcNwaZ($wX6pm-yM!h5+U0nWfe6NQo6!rr!mc%YX!0)j2 z0DEH7aCFF85*oUxrjDLDkgz^)h;K4mb~dpC)N}97I(|p!aj$1qwAAr7T#!oe)IHXq zj!+#}7B?c_sHoUjbBx`~Y|$@IuwJ^Jo|+0ri>ngIU?)S8&A4SO#>b0W`V4eqRIQOE z?Ty2mPa7CWSj?|ysHW7V6zbBxg-F}E7C6>)Laxyo7iU>xXO35UJI5Z)GMnkJH$0Lq zc3nR~jD9(%%{>k(*#{)464b*_G-S?_vykjSjr8dR3mrq7U+cC7AGM8<#XJvG$n@(a zLfON70Uu$HS;0i;QqgUc3RGH|NrJO8ir@u3QrErJg|Djn01d^h zeesNB{{S?JY$$W;oXTkWN>mk6Jb^->CgXAqh0ol6_T>nz1z)oMkU=zN6{&X@(#$v) zxH?pBN#Ku5;bZ41T(nE143zY_veA&?Is~c}V#HWAuj{$@`e9|t;N2qc*u?5ZM@p*5 z77|^{0zlLW1cU5&$36;u32$tET8fF%DdE-9G3ty7NC>yM=W%dH-2VWV9hU{zouF2x zqG{cAvuP>d}G5oO%ijk&P)`eTN8<0+!; zqz{KOS+aMms;d0TsT)uL-4Q@L58RXg0Jo{PlA|7wSvt2fYGig{9hEw&t75jW79-Z< zwkctZz3ffMjx&^c3N=JBJn9rHj!mw0ZR`HnU)#HFv2vm|VO<<`i%!}K=w^@svfpAg zY<&s#$4A24ZFU#vs;J7^PNLF6kt4WQRYJs#jfKx2dtV#Dxa!5WQs-V7nv}ytWt7a! z3o? zKUJv;%DlrhddW+cXil9$dSDb@6^S=2*4(kbZLpH0S7@`zCa9^*V}!=BO2B+W%GyL) z(3tPBW+gzo8(SRN=CH$(TQi)f)5Ds}nbjs*1a8!%2b)#V-1-K!z+0a7xV`)2vrFUo zDy*2hL4U*4RP?rsqT8=Ki@@FS5k#iM&OqB9GjSTeC1=2MI1xP#T zzX7eauf{yc#tKP$C3j|bG0rm?YGa|Nia8}xy4n-0kZoAsPR$B!ay$hXAHXSFg=<;c+1MI}{15k?yQT@Ka-2|8K0 z+fB{)J7d(q<0-pTk(`x9Y=e?dTb9;|W)%~xam*b~410K_oyCmfr4GnYm~Ey!lfm}Ue=Q>^LXJQjU+av&wS@5{F4=cRqa^Y6 zXP#yW5vGJIDf0vhu^qg{fY@zr5Bg)v%i!X~uVES1${fSQ`PYZVbz8>;15-;PTAfft z>%Qv1Urwvq*17iQw;XX~NiSx6os~Wi%PBlVB-L5GQdQT?%P5V|^vDCqLaxk5xg2nB zd_N*j6nJBLF0G<(izbRp+bv3Z7*pdVG97KBRo_wE@B*m^>%XQk!3LD2C(xf|EL60S zRl%4?mrfw4otz|!pdyjx(5fs~W>vQ!_6L5xP5oTG6=}OR^5-(pK4a1h-0nVZHa9%ulO{fKru!OH_GB|0!W!Qb=BFyB zbdI6bw6~N)ZOV%hNGu5++w3vuVu%x0Ku8d+oQi z@x_udSMlsgq-nf3lX!)vy59Kq$XS10HB1qlQ|Al4!N9irq+N79@ZP7B>R^ z+;NQ8x*uhZX_!w&(^4(WG~nn~A~u&$026)9uHE+|3Ndoq6ERuzGI*AABh%C+MF>%* zRliwCunHTHc^^(O#hW^Z*3N0l^=0SbPvPxFcZsQ{G&!74O?N8v<3!Sn1x@~4TiAo! z?T&m|6s2jVhvMUIN=Wof*TvFN^*$ns21+Ls^5rh0$#7ecbfXI~0Z83Q8{^YajUKC< zuKxfAYQH+Bs$RTRRPa#Bpsz)Xq`;e!s&-xbdiq-#d|v3{$mKU}870eWvwEt6u`G)# z$bc&Z)J2MwZVA|rz46g0B@1R8k#8E+Q&G~;$vo1%H9NhGfP&^r$z#F05_Niv5X~1A zOf4>ppAO{6un8+FJkhxetK}DBH7_?^z`s0)?w3)qM0pX zNgUeTU3vGm+u|~1cw(H{tI&x@91jf6WSSRntbnSNLO>?{__+t%`(uT94>NIkA*RXj zX4!6343tp8t|BE1AnI+wW%|q@NUs!euT`ZZQ6-m2PR7R9HW=daCnW6|WXW1CsN`4&O=ORv z0BLOY3aky8MTrBjzppsuQAvHfWkovV*!@OX{83>P(YyuL%_x0EcjCvJ9>>1;%1vX^ zH19;(ypC!_R}wN9fK5=kki>uiC!Tq?sr19b)3y07QTmZ9VWXj0V1@{xk=sO)367>V z?|r~0gO2=o3&Ff_*)4-LGW5=@6sLB+f-=Q4Eln z;b|l~4ZlaklkAd+Je)=Gvw<0d%)W2WG43n=#3 zcu&MD6fxA+ zO04vfICMzC)THm`uxs!@-;Qz1IdgoXaL#SZMb$QUUdu}ybQL<~7di@%NoxXIb9=Xa zj`*15mC)3ic2`MTm{nAlNm`mPuG2hm-JFfdVo#TF!sEFhZuqK2v$Lh7PJSubA6GJ-*2yEVufl-yVjIK~o` zxp36K zVXy?-+S}tsm!hL8EP6(UqG;<`%&Hlr4B!m`g^r=m)SlamoF5#Vt#m0i`bB!jc_3Hn z)Ad#4jl@RipnRn6q~7E0?TN>k^Wz{*{{X2GW|kWFF^Z|Ap5;KHuGuceaB!n z;@I?(Ol=IK)Y0Zye6cGSDnO-{C|Cek5`XR3>RYw8-;86EBw(nuR9x3lQmi!jgmBWi znZS++XB}14IX4#u%W|gw05ba99C-7oT_^tHd}Qj%^zi(zF14u+y)^}ThQY6LHXef3 zCv0$K&$C%nV^KW&C8(Afy0?0@GVLaUG|HfhSlEyk{G)y`>7?33mU(q}mU*C_l4|CT zoo*yktp`3;xbAsAxZ}+S-zp2WM0KvIo>=Fprub?El%Q`j6QrFtxhrwL+g{|~8^)s* zyBugpvjwZKT9|3Xk1Rb1Aa^7wvADPMbGNDD_>8GI(B-23mZLDMr+B1EnCc>7Ja!BQ z#wIOealOIX;=t}L&5kg;Y!beT#fD7cvRP+|A$n?^LEMAX3&=pc+ipDty}Pn!;*v(I zOJrHArG}=V59Bh$(U+TNaoc(m-vRhrEwmIaUSZP(>m01wW7euwZz>&Yx zzhU;qu#dJ}Wo7M0h!ZVdr5civuT7d#Np}R;6YJO>H^)q3nzSajvci`!o)wMZmNaER zGzGD^7TjBV`tim&CXL6!jUI%Q~<~j`4N$q}r6;;I{j0pbxJ7u;mLhRqUNd2#%{SmI|au(l)4MDqRR) zD(|+}^zH{d;VX}Q6KGLC zozUfZOPW>bRLcs))lDav*%a3yf&lblNu+JpE?@Q6wj;f1_lP*gH@WSz#^CJ|d z6_l};V53%rvJNZ(Hw5BwMP>U+P}w#z!2Y`-z9=+;LZNfo3?Syfs!u&`IPz~ba{=Ds=J zERoz_W|DD|**+RbM6VS)q%j*RvZc|;+jq9xf(NJ5d?cMzyB3#5F1N!ORUKw)RaZq( zPVU9hcbFLAapwgJf_G7JMaP&6ZH~z0$kK{>LX={aqU$M&hA9 zcN_2hF`T85w?j~iTQfBjnU-DRAYi0XmQM{q6I4J0#M;RLtaP@m#mKO|{V}Ka5tb&K z+A)-Pba{u0a;og7IfgpAMW&W*P86?{uIq5hKHFFhZG3m($r-`QF6hJArtobnnSNYW ze6A;pR*5H&lhnBfRfo&wu(;s%-q_{xDt~1vV^!@JULwflty$^iSl$YTNNMDi{{ZP7 z4}DRm%%xJ>c5TO}pNlJl{n2U_c4hL(>L_wVmUe;?Q6qUHm1B}8U5$Xb1QEX1Bb<5; zDss`9l@aME>gsc9diNDVI!#GSA4r(PT&o#K7A1zj>@CT##blfz9uL`@p35&08LB3R zu1dx!O75nrQK8tnt(^khN%GvAf*~4jiSf%#$iJT%#))%yjuNl8PFr1gj#+sp4Q- z>tf1TNC4XWu@~)*h)P@4K*Zma?4v#>jy>{(St6*$s}ybKX4DOIOB?0WVinS`gG++9H!kff>s5g6u+z z3x)LCalRMEoOv28GP0P`c!ExxZdDuNTW>+OR7f~1(bkKJb_`wu<0OO zSuTvpoiAFTCcc`Ht~Pr!`Izmy5H}kemKeh>PmT_6(UwWlJ!8W;4JKV6sCpGjxzt`- zmDb@v16QJs_ZPLf$HZsNlRT>XIAJMdl|N^rRQTI3@Qp&{w1%#45<14PR7X&$PpOIL z`LuvbZDrrM$FJhzcyZD1Vo}8(jKuyR%qK1hzn&TY=uu*azcs*7+;I;rX)3XIJYA?ij?nO%Fe?{)-g+v(VhX)95)I;WxP z$%a`AlxJ|mrbKDfXC16T;DQePjCju<%`S5ny_N9hUktO;&n#?XZGa<57QbRej;;>p z?T08Rzpjbc%~ef2(@D~%D;G`fwlQ_UHUNMKrKa3csM2ExQ?9rr&|y^c5^k13|x*~=)lPobom zo|#2NjS9%+`fU6)w$*;e)9tn~gk1Ff7Mf+YRFs)+UjG0IA(pAFt)_B1V#I)Lw)fh= zZEkT<$0^&9(;3DoSyf-2ElnE;nq+vH43=*?f_t6-)qZ%#Z;uBF1m8UsEtpEQ^G4D| zApsS%xPkY+uQrp-b*zW%TSJ>uFSkp%?WZ@AOK|C7RGYjgz{{WUfJi^=B=MG9W zXw#O4-ih-10W1Z2^#s7{3TZ-j0dL3}t~*%bVW=$dUb%?(8J#_F2Uq?S0-RH_RoZG$nt^Mmidq1%wi$ma zHl8K}Pmxk(0dJ)4cO#4Tw>Y@TMNv+@3>m%*_~)l+}BNx`GJa`w?t)Cg0XX zQuba*#w@(0F26e=f}LbQj;C-)Cz1{O4S~O=5?oi+6~>0BXlg<<^JSvADkiw9F0KjO zfB?0}zTds@u{vL3B^1V;8VP(URB z+W!Em#Er?ljuiOo@G2c3M(q5~P-qo;eSjfOZDko(4SmV}?)ChOX@%ec{;Pr;14g zM9rYaT1E-T+4k6;JNjeX!y9)aMB63LmP?UPpMq%~cOqF@5?z(=&Y~@0?dgnjV}zc? zrP#Dm*TE#Bx;K!@uc`)+i41oHSlEGk-)~F(Iitgu6f~19=;O<$mKKIM>4hK(3<$p= z1cSL2y}-FXhaD2eq^PC0vUN>UQ^OPw)sCgkyO}u+^GBqUwvopK6Jv9aJK|Bj7aHjn zv>7a!%#~{>c9Wt!&kmN=#q3S)04CpF-1)h4I3&@cg0b2^3Zm039+s$*7S|l7%_D9Z zV^;1K<72qrw)k=KnwKVN#`-c<{tK&@#EDfhb)t_{Q|MMG(iYM*ZNEB>+XXx0)m~;N z8f=#q^ixk%`Ic<71}Gzf2^pp7fn%g;QRv%?4_ot(LJBSk$Jv^KO4yUvy(1W81U>w_ z6$L=yZZ29McuMevbLsUnMhDZl!C%Jowo{K%*C5~Y%F-Sz`{?8DN-~(ADT#M z9;2!%OOq(+F&1m>ZHPNxdwXDQ$?a%sXlAyyWvy7|R(W0gix>s`{{SdH=Y6&y0gI@u zpj#w|G@8;oh)irP-1Bj7ziqKR{YZ3M(8o85D5GT#dJqpgF)gP+0{7gG1;-Y~E<2<> zqC8nhrLQcKlM$6!qK%H@PJ!hc+z{IyExsF4dIrm?Y|5f4%STfBOe$R_RR%_5t5*Qq zU=J8liYu5#m|3nZ(MqMVc1!1Jy4pqwQCxqTLm{o z4AH0x3m^P?b_WNHVcFi9~uA4olqRXj;(JA4k3}g$fMbg@| z-_)D)!RFZG;^k&_V>I3)RDPW=R(a$jqcqYgh)t~0GJ|jc;>nX;+peSmM(awUT_-KDX1y^5f8O;QJM7&t1s!K^KQ$k24A#oeXPB8)~+$Sq|iz zST(lNM%elMvb>GM{>>u=*{?MVNj!A1%lQgAaP^JK*!-k&dw+jiRvEhGM?c;~b< zT|bMFr8CJ8rJOpr7gB6gY<^w|Ja5g8`4h=peGyd4+MM|^nloGRv8^yrRy`LAtlQsL z7O^Jcz!8iiiOx#VZPL+In)s$)6~j}PEHv>k1WaB~h_Q>?P1@y6zH972=ZtOfEN_>i zH6--Ipz)qt956#py)GHLo?tDu%%b}@2Hv(9iFlKgxk=TT-ssuTW|WIcu{4lY74j)V z#nfu@k=Twu*BmnOq~9iuqSv!0SdnMTBnVP!dWS?3P2>Vd+!FeCwv@Oe6RE9!*4;zm zN^ej0Fi9pxUk*t@n9BxHBS|Zn9kp=^mDmn=Cu3`Z*Er4PQ;*$rY@(>mc=n>ZAoH@<8Z{3Bw**r*nS;7RXt+SO(b;8X+-QAKvHYA@*_Do%h?r13ntGWG|eKYt!ZU< z0ZcHn1@&uf^K1`o@##(}Dv6w(gPFrVb6qRYO3yH6XA)Q}X~1T`r?;ucMik@q8f=kS zL77T2$SL4j)rvrZT6nc1w15F(Jj^*7N7udaSzbJQo1wiP&zJai42!~XQqj}K`H6vJ zs**5R^@$`DJnU2f$+6!bI~?uJsXac8lz1x@C7`UWlRZrxeU_Tj1$857HawC*xv)GB zTzeiK6^=H-ahK0=iV;;X5zs+;#cgF+HqX!g?WdW#juA5gy9FGo(3}EU2otEG0!1VOP$E9XH z6Ep7=$hma0GEF@SsaMc~O)GFTkWKDyYm3`#cg3kH_B%XEqES(q&IBR~cL12}V4+z+ z9>T)c9;X)FEt1*jehIHMz9wIaf~A_Kd3sUOwVq(dPRG54ha%qC^Sqh-*xWJpV<@@m zC({sQi{Y;VPnzXash#HakvuGv6$?-)QGgmsYSq+jK|meBzT4xHc3YAq&HuLwl8+w3t#~O=rXwCk^Q0CQxJ?W*E zlC*p~N>xc#(*FP`>~9x7{{U=6@wqDYC!`$tL(fo^PND|Z>JZDRTsF!S4U_^e^*h@g z5spYl>;t1OrymneCJRweg(?ezZpsK##@dwcbK8GhTB$`zEt$XEnbm<|Pt1*)C{|99 zTb3XLxVM*ZE`9rpV=ga}e#l8ONAU-&qw`m2@x7`nLlA08Oyk=D5qEqSvFMqnd^T zP-*lmGnRs(G_uGyRk*mYuu?_);#2!kDqAFf#4%3Ug)=(S^;4)-P0W`9>_vg+&Cff1 zXC?mtq^q`OvyT+efVE9f$s;dO=Y;A2pEw1(wb<|f0C%v)ke2C-m8vfyua2#1WvZCT z6icEf2)B?B7!zv?-;g)D_QXl1?IP7Q4OU|&Z4+qeQ%+_MI%;kWh}p%6BmxTVECw>k zG@T?(kh2`3t0;AwE<>pXnVLs;E;s?~-u&G5Ha5m@ELNE$Ov;K}!#5PsR3Vi#y2O(> zU1HvA>ccd&q*Xw!^FK4U#g#+7<$X{NM+BGQbc1^|({Yx`f{VUB4{$KHhLXlZ^L3MrjrZ-+o-FrsT< zZ}TYR-(jF}y}dDv<0l?*6}GC1`nl>RteNSnproctODc33R?JSFAPuf|wXww?Bc7_+ zE>%j5_lR?9qgqeHJw$~RN7b_pB}DfhbMVvu5z&i@+~@@zx_k` zx!ii=nNHtATiK=*^rxvMF)+>=?HlRTtzsQP?R(!Bmm8}@w`3`xV(1H{JZecVruWsh z=l=jZVR-irgp+GWo@Z4O(b6*+#$aWA9XExq80N)~HnBSZHY0p{FrKNKD}IRae-Wsu zlBGpNQ1r=Io%Ak?*zxmo$F?$-MBPzMqUu`dGTC!4jFzsVDUb-NSZes4JCL9-vW>-$ zpuafejmk--K)%E{s^U3iJg6E9jd7*wTGCB+AhyJft~Vye-ni?O__`dwRU+6>HC-J= zMAXP@#6hBjBcC>tZA7s7y@3M$;~sWK6^u3Nc5>3(tO&9rMQ$!27hRDFMb=l6I>)+Rpd~V%q!}zPt}mg1Z?CKQZ}$A=KTE|ZgHIBQKU~=MU6r_wBokWo&YW9y&7B}43SXlG1<70eGl(?!DK8*Bvr&gjkDWX?) zf>tRLZf<8EDf)!SZMCw>$ zGu6!O^p30S3TUCA8R?CD{4zVsC9$1YeHW zo3GM>hGeguOLRC@l!@(ifP@ER1f~hU(C7fa#!B%YbH&NpQ$)tHz zOLN$rxyG{lOYCZ&QVR)nj7}WVLZ}I{4V`bQJwjwc5Nl3Lw(AQ+}K1(EQS>#w+G(t40 zHLa*9H)3oKoM9S-djbap-*K=U;Fca;2R}qF6?n3d zt7(eU7lGHPMy4UtNeUPptPS=Z&NYTNTN9FKEUP?NX3FHKrkUXkh2>NdA}CNS;F}Tp zxw$-^0L{fyjqH}!NYrKiAdfJY<0$mNtge*^tE;7UH|L$l2XF~J@d+rU8G0I3vqqV< zBW6+4RV0b7I9eqzlb|$uKx4TBllJdxV-7J}>`GL~^m(Nws9I)=GK!rnCJsu(EJSc`3hu}(_*D)vju^QK{4P>{%!Z><(}Neod$su+mg$6|j_Kc>f=Ws?*&7WQhS z%Np1+9}-Z{7HG8964pkB8pnv;SdvsmA9dfp*SX|l31gfk%Nx=YN=liUsL7+s=xHKo zUF90W2^Q|Ha2Pqgu58!jbkd4w*d%0|giVIvF6V~- z0Q8JjWZaTVMsi!UXD7^Lrud1ewCmQz8e?vYTmxh4^KI{L*zI`KlH`ItY`1R`$u>yR z)>JflY>6Z+36UG-wyn6iI}&g2jxX(($xueBcIlGnJUJaK(N6_OPLeuz_%w<;Nlpm{ z!MlP0By;Jwv1=rs>Q>5zG@FqYZwN&a!#y=Rn#ItS42J3DP!y;e4)-Sa^#Eh9$Inx0 zPhN|ZOD_V#Bh4$bcY&gMdUH=4#Y+?cwEUxCYnuygtCO}d{;QLkjySEEMbx%6oz^t7 z1w&7Nh#grXEQClmx0`E{02kW*z!%2eJ|^Iz(RXfW+&oURvLvDbA3odUsl6StlSO1t~2sr=L?Ub z<0X3;&NEnPl-15wP+3fhu2c_m>OO}aRyesj8*P;^=1VVKlt~gKEX(G(P$RwAp7$O8 z`09eF!7#C56a5 zxCT^Wpr@D3Vz;@q!M+CV(&+ZoBZ*(KFXI0IfhM8LpcIcf=JPOGidiKqO#&1D08yMZ z)mRTCT8k1%;A55f7}U6>baDAJP))aN@QlMVrSM0KGu6*)W~!D-XQp?gN0LT%Kg|CC zD7;|{UhCK!5IdsVvr)i;sJfEoH%SPtnlw@{iPtxrogw zYvPg%5Q0F?$4$WV9X-vop4a&z}1j%Vw%v&Ze401|@{BhgH-&8@}L@SB`MXv`5-g3+_8 zl7dAVtfZcJ2K|osQdIdbW2z&rd8Lu2aXhk9UOt>-Ss|`ft$#4{4_&=(aWJcFi?aHo zJt;{XaRf={PP9_Guu=iBx`E~&F6X!->#wbctr9Dvj!L|^i5^fl(_15A?XUb5}50C8^Tf&uPvf4I_1NNeJvrmgrmW0rNQ zc8nB%GP^0$xISCiMX&z=m#R*JuVfs_qE)1*HC+Uh=?_!+iEwU&6Uhd{du%zsIXO9f zY`(NDJVvKBh7~bc;gaeJ@~|rQ8~*^Em+R?_d8MyrNv@eIG^FU!%+pL+ry8eLBw5Xd zn-DlVs1_pIa&ggjrfRC~5SvbIR@AdQ)77oQ)2Svo1S!P*%6z@+%NuoF&Qjkhu zvRE;>YmJSG*!^veNlKS5V|3P;Ijl%v4#0WAK4v3^-+_#yp5n=B zhv_l{mex;Jk-^ilnATy-ZGG2)Ynxwh>5TqQkqWo6e3>m}bk|t|(y&!g69;CoHUn*s zBHsP6lgS>M2PD0dGS3I)`6O>6QZ)12JIheOzxwg%g@ST(u8g%OWIC+rU#Uj42>@68 zw~+%Wj{g9y$lTv+_U(^xWvJ-7;!#BzJu*yqQR zYIP-|ZN7*#nVUsXOCv<`&DC~5iPO?Hy7EXS_P)a2gC2}>S7a#mJDTP{7PBK$$0aR8 z6odvSu_)3x1ZibA+?~nh*2d0Jmt%^iW3!TIAd(qkX&xq7My34e2UH}gK|7lfs1Hky z_{BK>4cn!n_Bx2FrOZH68$6SBVI=E1K>5kIzhkG+{c#R!6>&#B)7hIx%q#LbStP46 zO;2L6M5G3f<-3!!4Yvee>xjvg+8)5%eed+g45pzsNamC(T$3PYG*oRoFgisPcV=TstiebZTN{&WcjFnxT>H_q zRcNB9j+UK?r$VwzV=l5vy@jkt&<;HY8cjaOFTx_B6qN}pRZA2Mx?U%5AQ!m5)7P-Q z@z$jlw#?cl=Fw5L5K>Swjh*fkajAJBx#!$p8{%c$Qi``G z!%p|VZv5lZ%J|1!n@Zwp=<8ynB92OGh*F|ec-j2Qorv3lNj#p%j7}J-M%&mWdn5Rp zEDsX0)YQu)U^s$4nNxj(08RHEoaw$T#+{U{bd0@B)me64z*I>uPDCetDhiE25_ux# z!?rVO-I~?Wv`o-W^1QN{q^Cv^rA%gaf$RiiWo1-9!=av%q7suy{{S(fmO~+8E_9DmruGN8{kqh?MP&h*=1|xF01l+4sesGp z6IFEs$jr*8Sh3t#0b|Q>4aKQNdkWank>$SfI&HV5@FJ%zhtpC%-yAqug(M97g2qeX`Dn zEHOhG$i|7*MKVg0YD9fDE9yd?=KlcK9N8q>21`9k3hCNxG!)C;99K)FE1+E;z~ z?TuWJ$rDmXRh3CgsoOVKKq>!q*CROB%Lq!xLGLtPuRfnn3W@kjxvW_v_XKrM0zH{VZ~4f~z1jbo)^Yy+J~Mk+5# zBn;|wX$6^i1-7?st-#oOySXYN%YO{`dphxL6bqLvIj4<-N~P94CDz0f!vYu(2d}m< z$(A^!zRQYlWsiuz3+h%mW}=EC9XtXc)l%Knl#{ODZ>wNH;Ie~Zj8~M@m9Ti*BY0cG z8IEN@Vx*^zNTQ7Bj-~X3bqCDj*5qy4;C8+<&5{Y-nQ?P`P~9ar{3T78#aEY~{{VVs zj;}+myQxsSY@wS__1N0@=#L!K(>3DK**_)BB(KdQr%8m%2#sA4x_7Z}aBXI|+-+|7 z=gA+1a!5_+OtwKyM+7w)WGw?zsyA4$c4aIGK4E={VQT;sZgJo8DfG#WwqN)|K8@)p z=vH|t8aE;oG8?RFYWk5$%px@HOC>E_Q_mymf*EB}T0jUd zu)6KABW`SW80UhGrjA(rq>*kkl595{jy*;)%;{NBUt`e*c{84s zKrqV`nxP4{k?el|0QtwC91+uxOzHi{CeIPNsTzuPDhmK^%!6@nLP;IF<2d;46S;I; zpCxFc%Hb6GZDbQl{{Rj_V1`3yCib@%=GWiSz~iUL;VGt$UN5v$P-ZEaPa0LoD4a;D zl_?$7?kp7FZAbaJJnw5CN-}Vbp;Pog&4Xnby)2?}H%YY0%@0M;kQ05Z0n)eIe<|&b z%yao8WW8yO=lP8tCT~wHQArcTSsSk@Yb!*@el{TAk4twLTS=xJqc7sR`59K8Y2Q$% zCqMsz!XAS@*x-($Qr;08Hi5MV?|6)uSRsC3SCp z;2)=&_~ONj;*CDp>tKRP%5N7YU*Z1%57u~-GlrIY&SmLSL}D5tUdk*-2ajF-P1lp1 z`0#XXImQ^?S$aNf@l3T9l@ey{Bw5u_s1vOiKEG=dW}k})2s>?r%I*PPLyO1B%0GxT(cc!_r5)xbCeTu z(WjFxbKw%}E6P9NxhF-emC(SHRPj`36TwOWV-#UP3JVi<<;}}sLnqDpg&69rf|;XI z<}-d&Efk*INedZU3y)2<++(q{(3){{IQdN#Jq)u|W+s<4g zz!%{AgN_`YOq80UGDa#gzeOK}yhgRv4|+d{oFgK|88Aa3x;U3uu{$dbJ?>9yo`=Ve zbb0ok%O8jl%MC?PdiW!KQPYMXNpJyM-)0qq1u;}v&JjS;$jo^{hEi^qK z8TzA;YzS+Cr=7*mHpRPfNs7Ico*|~5oho3<^7n>XYK5s+i*rLr0T^) z3iU~9U#{Y^p_i!)uz-T%*NKQX2V_27*S8pLxhq4eM5fF|RR&=fz|ZjV0vW2EP`a=M zLa5l-5)HYv`PgRT6yrD8sWv^~ZxByDM@D3%n@uI%s(N6OjHM(OCfe+8z3q-%@M|NI zB1>hgxwR$gX|zu~^#Ovj$Ep`X*9-}{TOZUnxgNM_w7IrgRieHsg{G4@jAjj2rK5!t zrd$mzu~I&3ZEi@hzZb@`cTy%%-iogj=1EZ|X_wSjq>mXbPO$(>i`)|>yK%oDVEKK~ zlWAzS$mr#ol`5taQXRvzjzU~m17p8nY=5@+@^fU1mW)%qn%1vLW{w%qtWhEIhX9Z* zYcJI8d}$0xtsQ)o5@m%eAY&Zi<|t3@TZC4c45nwnKqx|`Vh$?A&5hw zHktgTz&3Nb^Q(Y+dS4Lm@?4q9(~YvCY1$Pu^%5ai%0}xAmf(viC3(2L*8Y~`5a}C6 zDa4_v&T5)9jdJ;7tL-b~hY6^Z(w%FW*w*2fda+;KC zN{f5w&u5ilNN0@2Jdu~(g9TM2T%am_yZho(X<8H0JodJ<%Oc0tc$)J|)RFbE4f6nZ zJAga(zc{#Lw)qO!&QYA2X$o~Dk*}pv2PzKVIsM1Iu(JJjiIjbsnp$-=^zzjaRh8+~ z@T=IQgzX_9a5uO;k2_|biQoW$UMsQf_CEO95S-Ampdr%dO1 zc2-wp{{Y14<5!zRsq;n%a8GbCtf5;(%0t=IAm!At#~U@8$YvoINw~Kc2Ugc7_O?1P zPmFpFR;=^-T)QR)RfdwDsiUxIn7Cz8xND1FozKu?)|$3&#!`DNX)9-zouFANsvYFD zK~`%-LAXKuwifrrCB)OCJ5!ZInAD^+@ehb+4HVT5#FpD)ruc51nRJBxzSsOD4X(?2Qn);2wJKIPG{{XnXj#I_SehZM!ZC^`MGRH|srdezxnj)$K zj>JV9!J2P*q_ZA-COj43hMf6UnuSyu-Gq{>Rk6>`^6)X37(-Bg`P{{TuxxHh@pQ6%lQ`yTjB z*2|*$T#!`ca?{8jT*8W`807(UJx5Yh3P3!MKlJy;E>D;89hjWXg(zmOVquzk$!Zc2 zASOpb8o@fTlQMj{GVOCtt=4$06_Zh2_*Da9ZNGa1hb^&oU1WKg zudP}cgr5u1W}2ayLjn!7snk5T)DH)d+ZoI1trUyQr6Z<-qM%-BmIaOh673kXSR3D9 z#FC=-Ho3+!j;)aY0CO!}S2yuGDhX-=)6+)?lsE%XYn3PZ?R~~Hj9Q3aq)(=;hda++ zSqsXHC98Lkl~+_cM0?l(00P`>{{UQNB;tyqMLuH4=xL>nt5xJ+RhUQx_~W_f>yBE{x^2WHw zW<_pbtxXA}cAQaE0tG@J%SAg4EDi1~dEdRe2~U^Vy^FG{Eb0jJ3RvNaX=x*AY_S0B zQ$W~`(8v{KOjqE=TQ;OCCN3kwt&;`nV|^%^M>l7Z&Q;Wjm>Dv=bi%pr()Mb(^W;srhOvQCI$n?I$VPW_BnIz*annhN~l|CA5`#Q_& z4D69f8+7_XS5X8Kr1DQTx27`5o>5<P%s@#bZ!syh*4zVfH{9U)@#Shg1++`>#Z3fW6-99x)y9#* zsWmTHy{yLM4lF%vK_>eSdBMvsFGVDxT6mAci%i9S87tD}PL8s&2}0;y18@hMW;Y&F z$2h|mlMB|1{av0Pmgb`6v4b6ZGZh1EP(=^Gr9 zmZQW`QB+sY95cllx5GmRB%s(SBopSi7Tle-wmJFm)Dfg(XJxR*mt?C^4O{@Lp(Xd$ zKT$W~h$PtYYYy1a&AC%WZYqtvK6#ah)Cxt3p|_HrV6FgCHD2S6FK{o|><0|6zEs~} zrWD!4Qq2x)X?oy1DyPkVn{lM~C>H+s+7L?MT&1Dx*yY|JrObbc$0ZQBq%RVXsz|yL zECuew+t?fJg~#J*!I`ya@^27i6!}I?1JcJ|K4A+8865*dI)S`}FL=d(^#m{*vV>g4DZbpdn+09}YSxVIK>e_Uxi zc7&%x)$-I+$z4%XR~yL4jLRS@(Uq~&Z}-M)8se1&wqzx0YWk^RhL}@I-wI zJMcCqk+B%H2NoykmvT(GzDHA5-6_RID${G3%F43^y1MrSkOKXQ*w|{Z#}twxt?bEX zULcD$j+#gUQ_m4eW-_&=b}S9-HY77Jw;&Go$7+I3%5_>Q>uY{AOkY<|O~fp}^sEn* zZE$V|=hqV53iLwDJSir6(XA?yk+zqMt)-UY_h1d}>uvtn&Uqn;CnG+ORQxy3Ajted zN!6XHYdWY|B#62aqz-o=><0WEalz&;Yw8+uN9fjlQyK6cT*6cko|wG1P}-%9SlIU# zA8VX*%3D->(2vocW&R*49sDNVSP_ck7$9BUpl@x8FY2*MA8 z)P}3-%^!xL%P8w9{4SK!fBOu+0M4ss43VFdN=RSK^AUDp*CdOAtd}j07`Qr#nwu?} zXaiBiT3eKfbduK>EVsGUalg0(?Y=r8k#zJ|>QvCyYm|H+hh&p7mP$sdi>?IG4Q4A{ z9F2f4U_y)BSdGXyxaYS^WX&zVMlz!@ug@tKD#=(;(Gc@OZW^Ob%Fi1c?m@XA?hmda zTy4Mprg-@$@@c&uf#K}Bdan-Zp7iZ3sWXIN2Cz2Yg%;a>IPHzGVo&VMV1kl{g`pD9 zFGZ!4Ng~D-K((~k@GZ^u``lxG5wg-LW~s~a>B8l&1v#pnVOaV>3&_4^E`DUa$#W}2oJ zSz1U{l*~=p0lkPH()ZvTOu16Ag_^>Y)eMH3K~qr@EOComNWNgZY(Wgl2qxM=vBsLO zv7-Ex+5Z5Ezk&gI+`Ou-ucmBVF0CvRU~JlNxcd#1T199S%xQBB!j__1bY-nZ5hP%u z2GR|Mw+(UZZ@AkT$+Z@lC7ooQT=y}Fp_k#Qp^iDDi7vtQohiS|w)gLDcgLM9oMFA} znc7+-_)3m$zGIa%q2Wdv*~n!Q17-?9vjcE$eNC~KkuGUXXw5e*mo?Ni^tBYP48>%E z<%w-TU!9NJwmIRR<3*72yscj}OH5q^C#e`f03hsC@;+iM#~tx<&goH%uIzTNDgGs# zsH~@SiYAUkn1u*Q*lM=wH@DCXc0y`#;`x*n?&@eeyl~8(X8{dQoE5E{&_q1;O%j5OnMmQIL7Nmq}nU#>!hQsk%c-#1jAcv zEK2FQ40qg%-p3t^N?%zDwq4WG!y-kPRzpoPO3bl`H?Y-nat6Zf+TPg7#y9pxGPj~B zn=hL*K_kM`f>{VXTzqCRU?La{8XI8;{BvqJVV8y$co z1Al*8cf-R8Vf|Z1&`x$urjhCL*s5wi8YtvqUKhK76cVhLum^50eXYJW$C@rpbcl*} zJ0^CN6v`t+lBxlAo+S+ATrtyat>0o#z6tp%nyWQxx+$}oI(aCoL$2=kJQ06W zbGLJjDCd-2F}3+J$>5rESx&VP0WbkXMfYp(y|JUqGbbg{X+hyUuPd3P0@E_F3T{Wx ze)z@al(fwfPqRgmWpR~~M5Km5k=^=&*SN6*(T)EAzos>WWilP|EZaMyphz`^rdMwu z2vDecMjG|x+z z>MX(Tg^JjbYg*oi`(kvL*@nFqwN>*`tbr4$1E@u?XHW>a=YxBlxgNMt#-^=~oJzX5 za~h~3N@#>}GKE%K7gZ;KE#?B?+Wq(#yh;&eCfKIBN_sYeXjWL2PgAO(>#~g`uLKan z_|d^mR*eSeGhdC#BWPIE&WxdAiM2aia6up{twMiNZ%lBzyjjqW6!v`JY%ZtR6pUN6SXvpE{R;+sau6>8=D?@B=P%U zH0xk!YcuGeo=LPtDzS!U>YpN*r5af73BIcfb{qD@s72Ey8Qk8sShHFRC#@d(SS4v|WT@I#d-V$eup1Gk#`pE)TXl8%iK53K z%g$d_CS_4gOw&zJ8aUB4X#ldW_r2|@t>{mFR@FlLwnUNQ4yH#C7LoBn{J6PFxQKWFZ?R)Gv z#7SJK4TYb@{7ECy&{DvK9%&85op-rAgKyL6a&Sf|J7|>IV?-e6tgR?X8lbsri?Z%X zkhb1y*k6OO#xtK8I_TD}Df=Cx%quc>aFR-q!64LKlneQbXtNvJR^z`o%2kpkGgQgd zl(J=#OI*3BSmlg7sI8z!dz~5u)Pew8>KE1J$2KV`ePtetcUm*+Le#$rJvB!`l2!}W z45bE(w&Yt?!9PwtPoc?8xV2_h$i5=3%;c((sil%6nq6m05n|gGxIR)y2K(Z$V#dC* z9T1_OT(2>Wr&Bw^$rRH}ZlUCGbbx+t{`-t|PaIy6NtX?qNncH>t{9?MeyI!y+iq>S zx0jp$089@IdJkk8JjF7c$|W@`6Sk@3wVi-w;@97jY<9oX64H{SG}<*(nWUzXWmb-M z5h6TR2v7h3P&*AG=W*sc=FLwe4(e ziWdZmO`^xcXeyBrRV1e>Oj6DYg|Gu{`8yI$+;#^Tc?v6Uq*Aj*T(Gp1ab_q!ERl4U zQ@;D#ZR74u{rJ8-mzr{I;_Lqazwl{IjAo0LzFuo6>HZ;+v`CcESx5tW0HAH$kAGZi z;m&G&b3K0HFW9Z2%rdH2(yE0ea|sS14p=Mf1K*8-u{QJ@5sz0SZ%?LXza_n0RZewN z15l;oK*vyvcT>5uTG!Ycn~+Er(KXJ>MeacsU@QnY!!~Su*Bjsc7VVZE70qa>D_yFy z1{JBdQcxLXEpP}WY&h-Rt@P#dF|`lymcL@7*84QsM}|B#lS4aGQzDA98JSE9h)7Zp zfH~lLi;LsRd3>CSMZSwrjCNJ{)|xsjz6|9u`gvr4dD&yK3)q_wMU9T)-H)a{UkfCq zFN#g<&P$Cnc?_9?bxlOI5Ya~7ApfPxjfX|Mv_?`z*4TEjSp1enK&avB`3EX;E{Y`tMwY}FFb zkmNPAYH$>3P&dBhZ+thJDW>S;rrp>ane;30=mn+AXAdEJt5?5vlS-3a7&fwc&Y-g1uv^BG1mv~+} z`r5Nm8i*N7O0Mb)DNsRGzZV|oe*EK+Mp9`M-59SGWK{GyvOz@kEUy>l#i#=qwv}OV zZa-I{JmadPkFLzGMnb8lpb>uzMHG@M{{YN@Ril#E&{*z9owxQISPVF|+co_~K6qt{ zm1lU>CXP_|+&deCzqOnCW2=&F5yhlgQbkV|M=flc*0N}rq-BDTj=&3>8!xWk?~Xmo zFCRn}Ux$7jugf!B&WJ)Kgpj6YB$Oj?s@C)J0V3kVzQ-KidyC^A;n@MhMm}K3mw5Ima$G-}sa1^p0hbxVcH_@{bt!hDoI|K_ymcRaHMw%~~2q zs*nJ6g*VcIz$(}%u(hp^TOZrM`Z@A>Ev^fq!@>y3l|?#Iy+n>3=c#wIfLnAIH`v_p zMX@TrOKYQvHOkEj+br4*Gh1V?V{JW;racaI(P_5yWGcK#)BLeYB&SeO zk!1tP+#tCGYA4$JZ;jHmX1g7u%&DYyTA19zOmf9igaCzYwxYZC-`stsxiDzht#u>@ ziduAnEly!rqPqoU7a))}Qpe`teQ|1DkqtW}jK!sS*;&eT+7^{nkdKwsN!si#R@?wP zV=3fGq}eplit$cp^*NjhV|J&eldG*({U;VT?k+`z$G4^ws#j*Ws%J&vDGeJqy&~bfU0l3ta0JypWc^8GHz1aEVBHbk19da zj`AB`L9pY0r_&i^$<0x-NoX~QRYM}QQfSk0AT}Yl+uU1|+iWawPe8Oo_*ABO7C9nz zdog5ID>8yFb^`YH-0yp1(8r6@Ms6y!H=5G5eH8FTG@Vyw{DdICbH8f~8*nUbzBO@< zCZ{B1rCpOU*dWTXcxD0mXi^nO6lym>+bKQ8&B^w@IOiYkC9M?G<7kbT8f?Qeqj`QJ zG$Fb~Swm^uf^K;L@oQ6(UVQoNh7Cn3Jd8_06Qo)u(;;;y|KPYDE&e8vgl=%ltOoeKn#pyFg$2W4a?kE zi-1YEwTT0M*>aO=K7{0|i0_oaK2=+)5mPRk=#Jq^1Lk&N%WgJ4o$=KN2dNrzPxOyv zzXR~jts=`#NOtOw(gCN+Zoa2$`xA~#-X{4(hdw)@9*!u+kBEB(j2Ew;{zwX(k{@UOvER9DSWG_HqSYRt+3^w{rf?T-8{ zX*6^EO7>|f-a5)8s-uNJG;08zSJ+%{xFN5x`gX>7p;M@$lCI8*ousFhIHQnAj6hV0 zgKAK3VZl4|x!cnk;#0@5B-<-;i6zam8i*dD4Ad?jKqa~r1SkWG+%<{pTibs^Nlq$7 zN*o9&EIjp{`j*`^ab&Aw}~f=%^{3PzCy;|r?xorB}^AYj}(&c1Z;Ii(%7Nk+0C}c z20zk_7wR*&CoznZx`hMV&bZh8CerNmj|Rxn)8_8%UDl~%R%3D(e<(hl*yfs6h><=N zTT0qSrb>-Q+nZbq{kF!h^`T49_C%n=N-Qi=jSsq*oRRc48+!~l+c)%M{C+x_ZFKGC zm^@%ecVIeaYxCP1V*N~OqWdnThAL303}~yDj(m-|4U`@-jaF>|Ku?ZQ zqz$cnb$H2WSo$$}>lrBgFQ}H(_G|BPt;YWVUiJ790%i)Z~jfk#=EFhy-&`g#kt5HXCkIOaAz4^)P)Cb9m7zv(l;o z>PNu;0R7GW!}i8fW@z+p4@m1tpEza>0zuMXcaKzSt52o-+njvHc|VbC^s)Yei!Ng) zj%q^^z*6iE_OLenvE40T(S!YE{ViogwQ-l8M=c#ov1cai2_T-?lWpGLc080RI4UsvVAC%15ZuyL~X?RE>PD)Y)XI6BvvbRz&EU)>@cOCb~EafkeY}P-i6`82%Q&2*l zNLnbI#=9wE;1Wlv1dMHq?c~dr%_f5IjM6qu0WQRbhQyvf=19k<<*JgRBiX6&c_~jw zigclZ777^2x&Tn)+N>xy6J!}&6OnW~yN2Z*w?5JnLrj4J3BQK)b` zW7x+hQ{S>*=`7@@iX5h-q)3MACDlOl7fZL)`r|Ba<^JW%^cFvdgH$xqo#lB7yPuhc zjtTBIAGRyXdt%4>3u@|Uf8rv&B-7WY7Sb(as{a7JhCOc={Dx(d^%;*6enn+GF@9W9 z1lJmDt$Caqj`tg5pC{`gT_WBJnTLd=B3HXWfsUiN)|}(Tl3yZbp3#!<-rg3>TlETJ zFW$xX{qgj%ZlX-PBFh9+wGl}SX$zerRB9C1hPb%($4t!E>OCheP`On-fEuNgwTC`p zH^yt(O!Gg*A<@pVq>sptRZ7>#xHI-;vE7}u2Vb$lcgVqWDHN9ucOpfz+n+?elq)pImff{{T6o zp>{u;M!y{dT1QM&fD+pa^S9jM*Xm|(v(2*?Xew(YiHveZBZ%D%iU7L+dt=duM)4&( zvQ%W~tW^gJ4%({7B6IEF1#b=$m*Ex z*N|NE^AGkI;PQW3A^xOE%OXiLT7+a)PK{G(BI5Sv1-dtiwoJ$+a$!>JRic=(-(qZ> z;<6X)lP=XYagX|DoH1U+iA{~Yag_ZWf9o&mDWTB+0F<6sQHPXlY`f#k$W&L@%Vt0d z>68E#?k(GlWfJ|1m;V6!Qafou{aYKy^&JbMnI+n<0IyNSj}{DUF~u*`i(Qej$dRk5fkh#-YPjca{{Xf%$B@tl^_)j1%&G*UK5MRVp|m zLmOMu9eF=Qf z48zVBW7x0+W2Qf;8D#9L@buCj3keIclJyO)``@m2zpgs5{{WiKe?w8#P5%H3XWyFp z)IaJ!$`AM7>y0vhnrOdT9m>=vkFs4LFHwB<{a1!EZ|lDJ)qauYZKPkBoJ#GjwHifY zZ@E23-|LJQXy^X`Nf$E#B+W{VB^gSQwx7%cZ%lcyf8#P_XY$8yhokcyfCGL7$NQXb zkNnnT`W(zzmX-$uhgsbN1GrM^2*0K;59*M;8X8COcS4+2^93 literal 0 HcmV?d00001 From 0af012b410b3542c10e07cf4aa2e50b73f737aa7 Mon Sep 17 00:00:00 2001 From: addelany Date: Thu, 9 Nov 2023 14:10:05 -0600 Subject: [PATCH 09/10] update scores thumbnail --- catalog/scores/collection.json | 2 +- challenge_configuration.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/catalog/scores/collection.json b/catalog/scores/collection.json index 9cee8b30e6..3e096faf07 100644 --- a/catalog/scores/collection.json +++ b/catalog/scores/collection.json @@ -212,7 +212,7 @@ "description": "Use `arrow` for remote access to the database. This R code will return results for the VERA Forecasting Challenge.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(s3://anonymous@bio230014-bucket01/challenges/scores/parquet/?endpoint_override=sdsc.osn.xsede.org)\ndf <- all_results |> dplyr::collect()\n\n```\n \n\nYou can use dplyr operations before calling `dplyr::collect()` to `summarise`, `select` columns, and/or `filter` rows prior to pulling the data into a local `data.frame`. Reducing the data that is pulled locally will speed up the data download speed and reduce your memory usage.\n\n\n" }, "thumbnail": { - "href": "https://raw.githubusercontent.com/eco4cast/neon4cast-ci/main/catalog/thumbnail_plots/51629805865_0ef01ffbbc_c.jpg", + "href": "https://raw.githubusercontent.com/eco4cast/neon4cast-ci/main/catalog/thumbnail_plots/52760199990_d1a0f154fe_c.jpg", "type": "image/JPEG", "roles": [ "thumbnail" diff --git a/challenge_configuration.yaml b/challenge_configuration.yaml index 09d75a51c2..81d1993d36 100644 --- a/challenge_configuration.yaml +++ b/challenge_configuration.yaml @@ -45,7 +45,7 @@ variable_groups: catalog_config: about_string: 'https://projects.ecoforecast.org/neon4cast-docs/' about_title: 'NEON Ecological Forecasting Challenge Documentation' - scores_thumbnail: "https://raw.githubusercontent.com/eco4cast/neon4cast-ci/main/catalog/thumbnail_plots/51629805865_0ef01ffbbc_c.jpg" + scores_thumbnail: "https://raw.githubusercontent.com/eco4cast/neon4cast-ci/main/catalog/thumbnail_plots/52760199990_d1a0f154fe_c.jpg" scores_thumbnail_title: "NEON Buoy Image" forecasts_thumbnail: "https://raw.githubusercontent.com/eco4cast/neon4cast-ci/main/catalog/thumbnail_plots/51629805865_0ef01ffbbc_c.jpg" forecasts_thumbnail_title: "NEON Buoy Image" From 48d07a82d7bf099c8c438302632cfa48c56be5f2 Mon Sep 17 00:00:00 2001 From: Austin Delany Date: Thu, 9 Nov 2023 15:20:43 -0600 Subject: [PATCH 10/10] Update lat lon names --- neon4cast_field_site_metadata.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/neon4cast_field_site_metadata.csv b/neon4cast_field_site_metadata.csv index 57cd4de049..506a8fe751 100644 --- a/neon4cast_field_site_metadata.csv +++ b/neon4cast_field_site_metadata.csv @@ -1,4 +1,4 @@ -field_domain_id,field_site_id,field_site_name,terrestrial,aquatics,phenology,ticks,beetles,phenocam_code,phenocam_roi,phenocam_vegetation,field_site_type,field_site_subtype,field_colocated_site,field_site_host,field_site_url,field_nonneon_research_allowed,field_access_details,field_neon_field_operations_office,field_latitude,field_longitude,field_geodetic_datum,field_utm_northing,field_utm_easting,field_utm_zone,field_site_county,field_site_state,field_site_country,field_mean_elevation_m,field_minimum_elevation_m,field_maximum_elevation_m,field_mean_annual_temperature_C,field_mean_annual_precipitation_mm,field_dominant_wind_direction,field_mean_canopy_height_m,field_dominant_nlcd_classes,field_domint_plant_species,field_usgs_huc,field_watershed_name,field_watershed_size_km2,field_lake_depth_mean_m,field_lake_depth_max_m,field_tower_height_m,field_usgs_geology_unit,field_megapit_soil_family,field_soil_subgroup,field_avg_number_of_green_days,field_avg_grean_increase_doy,field_avg_green_max_doy,field_avg_green_decrease_doy,field_avg_green_min_doy,field_phenocams,field_number_tower_levels,neon_url +field_domain_id,field_site_id,field_site_name,terrestrial,aquatics,phenology,ticks,beetles,phenocam_code,phenocam_roi,phenocam_vegetation,field_site_type,field_site_subtype,field_colocated_site,field_site_host,field_site_url,field_nonneon_research_allowed,field_access_details,field_neon_field_operations_office,latitude,longitude,field_geodetic_datum,field_utm_northing,field_utm_easting,field_utm_zone,field_site_county,field_site_state,field_site_country,field_mean_elevation_m,field_minimum_elevation_m,field_maximum_elevation_m,field_mean_annual_temperature_C,field_mean_annual_precipitation_mm,field_dominant_wind_direction,field_mean_canopy_height_m,field_dominant_nlcd_classes,field_domint_plant_species,field_usgs_huc,field_watershed_name,field_watershed_size_km2,field_lake_depth_mean_m,field_lake_depth_max_m,field_tower_height_m,field_usgs_geology_unit,field_megapit_soil_family,field_soil_subgroup,field_avg_number_of_green_days,field_avg_grean_increase_doy,field_avg_green_max_doy,field_avg_green_decrease_doy,field_avg_green_min_doy,field_phenocams,field_number_tower_levels,neon_url D16,ABBY,Abby Road NEON,1,0,1,0,1,NEON.D16.ABBY.DP1.00033,EN_1000,evergreen needleleaf,Gradient Terrestrial,,,Washington Department of Natural Resources,https://www.dnr.wa.gov/,Limited,Reseachers should coordinate with the site manager and submit a site research permit.,Domain 16 Support Facility,45.762439,-122.33032,WGS84,5067870.429,552075.5426,10N,Clark,WA,USA,365,,708,10,2451,,34m (in surrounding non-logged area),Evergreen Forest|Grassland/Herbaceous|Shrub/Scrub,Gaultheria shallon (salal)|Pseudotsuga menziesii (douglas fir)|Pteridium aquilinum (bracken fern),,,,,,19,WAEOv1b;0,,Andic Humudepts,190,110,165,205,300,[Tower top](https://phenocam.sr.unh.edu/webcam/sites/NEON.D16.ABBY.DP1.00033)|[Tower bottom](https://phenocam.sr.unh.edu/webcam/sites/NEON.D16.ABBY.DP1.00042),5,https://www.neonscience.org/field-sites/abby D10,ARIK,Arikaree River NEON,0,1,0,0,0,,,,Core Aquatic,Wadeable Stream,,The Nature Conservancy,https://www.nature.org/en-us/get-involved/how-to-help/places-we-protect/fox-ranch/,Yes,Reseachers should coordinate with the site manager.,Domain 10/13 Support Facility,39.758206,-102.44715,WGS84,4404042.549,718694.3752,13N,Yuma,CO,USA,1179,,,10.4,452,,,Emergent Herbaceous Wetlands|Grassland/Herbaceous|Woody Wetlands,,[h10250001](https://water.usgs.gov/lookup/getwatershed?10250001),Lower Sappa,2631.8,,,,COTo;0|COQe;0,,,,,,,,[Land-water interface](https://phenocam.sr.unh.edu/webcam/sites/NEON.D10.ARIK.DP1.20002),,https://www.neonscience.org/field-sites/arik D03,BARC,Lake Barco NEON,0,1,0,0,0,,,,Core Aquatic,Lake,OSBS,University of Florida Foundation,https://ordway-swisher.ufl.edu/ResearchUse.aspx,Yes,This area is a very active research community and will required a site research permit.,Domain 03 Support Facility,29.675982,-82.008414,WGS84,3283362.548,402358.9734,17N,Putnam,FL,USA,27,,,20.9,1308,,,Shrub/Scrub,,[h03080103](https://water.usgs.gov/lookup/getwatershed?03080103),Lower St. Johns,31.3,3.3,6.7,,FLPOc;0,,,,,,,,[Land-water interface](https://phenocam.sr.unh.edu/webcam/sites/NEON.D03.BARC.DP1.20002),,https://www.neonscience.org/field-sites/barc