From d25b80e905db95be582a18b07b28eefec9852db5 Mon Sep 17 00:00:00 2001 From: Zwart Date: Mon, 12 Feb 2024 08:52:16 -0800 Subject: [PATCH 1/4] update cat --- .../R/fablePersistenceModelFunction.R | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/baseline_models/R/fablePersistenceModelFunction.R b/baseline_models/R/fablePersistenceModelFunction.R index fbd6e69985..06ca5c521d 100644 --- a/baseline_models/R/fablePersistenceModelFunction.R +++ b/baseline_models/R/fablePersistenceModelFunction.R @@ -1,7 +1,7 @@ # Function carry out a random walk forecast RW_daily_forecast <- function(site, var, h, - bootstrap = FALSE, boot_number = 200, + bootstrap = FALSE, boot_number = 200, transformation = 'none', verbose = TRUE,...) { # Work out when the forecast should start forecast_starts <- targets %>% @@ -10,7 +10,7 @@ RW_daily_forecast <- function(site, var, h, dplyr::summarise(start_date = max(datetime) + lubridate::days(1)) %>% # Date dplyr::mutate(h = (Sys.Date() - start_date) + h) %>% # Horizon value dplyr::ungroup() - + if (verbose == T) { message( site, @@ -22,7 +22,7 @@ RW_daily_forecast <- function(site, var, h, bootstrap ) } - + # filter the targets data set to the site_var pair targets_use <- targets %>% dplyr::filter(site_id == site, @@ -33,7 +33,7 @@ RW_daily_forecast <- function(site, var, h, # Remove the NA's put at the end, so that the forecast starts from the last day with an observation, # rather than today dplyr::filter(datetime < forecast_starts$start_date) - + if (nrow(targets_use) == 0) { message('no targets available, no forecast run') empty_df <- data.frame('variable' = character(), @@ -42,9 +42,9 @@ RW_daily_forecast <- function(site, var, h, 'datetime' = lubridate::ymd(), '.rep' = character(), '.sim' = numeric()) - + return(empty_df) - + } else { if (transformation == 'log') { RW_model <- targets_use %>% @@ -62,7 +62,7 @@ RW_daily_forecast <- function(site, var, h, RW_model <- targets_use %>% fabletools::model(RW = fable::RW(sqrt(observation))) } - + if (bootstrap == T) { forecast <- RW_model %>% fabletools::generate( h = as.numeric(forecast_starts$h), @@ -74,5 +74,5 @@ RW_daily_forecast <- function(site, var, h, message('forecast finished') return(forecast) } - + } From 867c9c4dca976c4f8d6aa8bcd2a9c27f970c53c7 Mon Sep 17 00:00:00 2001 From: Zwart Date: Mon, 12 Feb 2024 08:55:52 -0800 Subject: [PATCH 2/4] rm old json --- .../Daily_Chlorophyll_a/collection.json | 272 --------------- catalog/forecasts/Aquatics/collection.json | 157 --------- .../Daily_Chlorophyll_a/collection.json | 312 ------------------ catalog/scores/Aquatics/collection.json | 197 ----------- .../Daily_Chlorophyll_a/collection.json | 297 ----------------- catalog/summaries/Aquatics/collection.json | 182 ---------- 6 files changed, 1417 deletions(-) delete mode 100644 catalog/forecasts/Aquatics/Daily_Chlorophyll_a/collection.json delete mode 100644 catalog/forecasts/Aquatics/collection.json delete mode 100644 catalog/scores/Aquatics/Daily_Chlorophyll_a/collection.json delete mode 100644 catalog/scores/Aquatics/collection.json delete mode 100644 catalog/summaries/Aquatics/Daily_Chlorophyll_a/collection.json delete mode 100644 catalog/summaries/Aquatics/collection.json diff --git a/catalog/forecasts/Aquatics/Daily_Chlorophyll_a/collection.json b/catalog/forecasts/Aquatics/Daily_Chlorophyll_a/collection.json deleted file mode 100644 index e03b113078..0000000000 --- a/catalog/forecasts/Aquatics/Daily_Chlorophyll_a/collection.json +++ /dev/null @@ -1,272 +0,0 @@ -{ - "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/USGSHABs1.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/cb_prophet.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/procBlanchardMonod.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/procBlanchardSteele.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/procCTMIMonod.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/procCTMISteele.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/procEppleyNorbergMonod.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/procEppleyNorbergSteele.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/procHinshelwoodSteele.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/tg_arima.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/tg_humidity_lm.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_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_tbats.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_humidity_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/procHinshelwoodMonod.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", - "2024-01-21T00:00:00Z" - ] - ] - } - }, - "table:columns": [ - { - "name": "reference_datetime", - "type": "timestamp[us, tz=UTC]", - "description": "datetime that the forecast was initiated (horizon = 0)" - }, - { - "name": "datetime", - "type": "timestamp[us, tz=UTC]", - "description": "datetime of the forecasted value (ISO 8601)" - }, - { - "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)" - }, - { - "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.”" - }, - { - "name": "parameter", - "type": "string", - "description": "ensemble member or distribution parameter" - }, - { - "name": "prediction", - "type": "double", - "description": "predicted value for variable" - }, - { - "name": "pub_datetime", - "type": "timestamp[us, tz=UTC]", - "description": "datetime that forecast was submitted" - }, - { - "name": "project_id", - "type": "string", - "description": "unique identifier for the forecast project" - }, - { - "name": "duration", - "type": "string", - "description": "temporal duration of forecast (hourly, daily, 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": "reference_date", - "type": "string", - "description": "date that the forecast was initiated" - } - ], - "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/forecasts/Aquatics/collection.json b/catalog/forecasts/Aquatics/collection.json deleted file mode 100644 index 3fb590969b..0000000000 --- a/catalog/forecasts/Aquatics/collection.json +++ /dev/null @@ -1,157 +0,0 @@ -{ - "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": [ - [ - "2023-01-01T00:00:00Z", - "2024-12-09T00:00:00Z" - ] - ] - } - }, - "table:columns": [ - { - "name": "reference_datetime", - "type": "timestamp[us, tz=UTC]", - "description": "datetime that the forecast was initiated (horizon = 0)" - }, - { - "name": "datetime", - "type": "timestamp[us, tz=UTC]", - "description": "datetime of the forecasted value (ISO 8601)" - }, - { - "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)" - }, - { - "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.”" - }, - { - "name": "parameter", - "type": "string", - "description": "ensemble member or distribution parameter" - }, - { - "name": "prediction", - "type": "double", - "description": "predicted value for variable" - }, - { - "name": "pub_datetime", - "type": "timestamp[us, tz=UTC]", - "description": "datetime that forecast was submitted" - }, - { - "name": "project_id", - "type": "string", - "description": "unique identifier for the forecast project" - }, - { - "name": "duration", - "type": "string", - "description": "temporal duration of forecast (hourly, daily, 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": "reference_date", - "type": "string", - "description": "date that the forecast was initiated" - } - ], - "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/Aquatics/Daily_Chlorophyll_a/collection.json b/catalog/scores/Aquatics/Daily_Chlorophyll_a/collection.json deleted file mode 100644 index 6ca03f75d9..0000000000 --- a/catalog/scores/Aquatics/Daily_Chlorophyll_a/collection.json +++ /dev/null @@ -1,312 +0,0 @@ -{ - "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/USGSHABs1.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/cb_prophet.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/procBlanchardMonod.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/procBlanchardSteele.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/procCTMIMonod.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/procCTMISteele.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/procEppleyNorbergMonod.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/procEppleyNorbergSteele.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/procHinshelwoodMonod.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/procHinshelwoodSteele.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/tg_arima.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/tg_auto_adam.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/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.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_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": "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-11-30T00: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/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/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", - "type": "image/JPEG", - "roles": [ - "thumbnail" - ], - "title": "pending" - } - } -} diff --git a/catalog/scores/Aquatics/collection.json b/catalog/scores/Aquatics/collection.json deleted file mode 100644 index 7352bcf1b6..0000000000 --- a/catalog/scores/Aquatics/collection.json +++ /dev/null @@ -1,197 +0,0 @@ -{ - "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": [ - [ - "2023-01-01T00:00:00Z", - "2023-12-15T00: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/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/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", - "type": "image/JPEG", - "roles": [ - "thumbnail" - ], - "title": "NEON Aquatics Buoy" - } - } -} diff --git a/catalog/summaries/Aquatics/Daily_Chlorophyll_a/collection.json b/catalog/summaries/Aquatics/Daily_Chlorophyll_a/collection.json deleted file mode 100644 index a6fa09fdab..0000000000 --- a/catalog/summaries/Aquatics/Daily_Chlorophyll_a/collection.json +++ /dev/null @@ -1,297 +0,0 @@ -{ - "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/USGSHABs1.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/cb_prophet.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/procBlanchardMonod.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/procBlanchardSteele.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/procCTMIMonod.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/procCTMISteele.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/procEppleyNorbergMonod.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/procEppleyNorbergSteele.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/procHinshelwoodSteele.json" - }, - { - "rel": "item", - "type": "application/json", - "href": "../../models/model_items/tg_arima.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/tg_humidity_lm.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_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_tbats.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_humidity_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/procHinshelwoodMonod.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", - "2024-01-21T00: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)" - }, - { - "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.”" - }, - { - "name": "pub_datetime", - "type": "timestamp[us, tz=UTC]", - "description": "datetime that forecast was submitted" - }, - { - "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 identifier for the forecast project" - }, - { - "name": "duration", - "type": "string", - "description": "temporal duration of forecast (hourly, daily, 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": "reference_date", - "type": "string", - "description": "date that the forecast was initiated" - } - ], - "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/summaries/Aquatics/collection.json b/catalog/summaries/Aquatics/collection.json deleted file mode 100644 index ad783369a0..0000000000 --- a/catalog/summaries/Aquatics/collection.json +++ /dev/null @@ -1,182 +0,0 @@ -{ - "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": [ - [ - "2023-01-01T00:00:00Z", - "2024-12-09T00: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)" - }, - { - "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.”" - }, - { - "name": "pub_datetime", - "type": "timestamp[us, tz=UTC]", - "description": "datetime that forecast was submitted" - }, - { - "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 identifier for the forecast project" - }, - { - "name": "duration", - "type": "string", - "description": "temporal duration of forecast (hourly, daily, 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": "reference_date", - "type": "string", - "description": "date that the forecast was initiated" - } - ], - "assets": { - "data": { - "href": "\"s3://anonymous@bio230014-bucket01/vera4cast/forecasts/summaries/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/vera4cast/forecasts/summaries/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" - } - } -} From c17a210fc7a5664736518e8836a2e6d35247bfdd Mon Sep 17 00:00:00 2001 From: Zwart Date: Mon, 12 Feb 2024 14:47:07 -0800 Subject: [PATCH 3/4] update descriptions --- .../Daily_Chlorophyll_a/collection.json | 152 --- catalog/forecasts/aquatics/collection.json | 147 --- catalog/inventory/collection.json | 332 ++--- .../Daily_Chlorophyll_a/collection.json | 192 --- catalog/scores/aquatics/collection.json | 187 --- .../Daily_Chlorophyll_a/collection.json | 177 --- catalog/summaries/aquatics/collection.json | 172 --- dashboard/R/build_dashboard_sites.R | 11 +- dashboard/index.qmd | 16 +- dashboard/sites.json | 1116 ++--------------- dashboard/targets.qmd | 12 +- 11 files changed, 316 insertions(+), 2198 deletions(-) delete mode 100644 catalog/forecasts/aquatics/Daily_Chlorophyll_a/collection.json delete mode 100644 catalog/forecasts/aquatics/collection.json delete mode 100644 catalog/scores/aquatics/Daily_Chlorophyll_a/collection.json delete mode 100644 catalog/scores/aquatics/collection.json delete mode 100644 catalog/summaries/aquatics/Daily_Chlorophyll_a/collection.json delete mode 100644 catalog/summaries/aquatics/collection.json diff --git a/catalog/forecasts/aquatics/Daily_Chlorophyll_a/collection.json b/catalog/forecasts/aquatics/Daily_Chlorophyll_a/collection.json deleted file mode 100644 index c180808ec7..0000000000 --- a/catalog/forecasts/aquatics/Daily_Chlorophyll_a/collection.json +++ /dev/null @@ -1,152 +0,0 @@ -{ - "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/persistenceRW.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/usgsrc4cast-docs/", - "type": "text/html", - "title": "EFI-USGS River Chlorophyll Forecasting Challenge Documentation" - }, - { - "rel": "describedby", - "href": "https://projects.ecoforecast.org/usgsrc4cast-docs/", - "title": "EFI-USGS River Chlorophyll Forecast Challenge Dashboard", - "type": "text/html" - } - ], - "title": "Daily_Chlorophyll_a", - "extent": { - "spatial": { - "bbox": [ - ["Inf", "Inf", "-Inf", "-Inf"] - ] - }, - "temporal": { - "interval": [ - [ - "2024-02-07T00:00:00Z", - "2024-03-14T00:00:00Z" - ] - ] - } - }, - "table:columns": [ - { - "name": "reference_datetime", - "type": "timestamp[us, tz=UTC]", - "description": "datetime that the forecast was initiated (horizon = 0)" - }, - { - "name": "datetime", - "type": "timestamp[us, tz=UTC]", - "description": "datetime of the forecasted value (ISO 8601)" - }, - { - "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)" - }, - { - "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.”" - }, - { - "name": "parameter", - "type": "string", - "description": "ensemble member or distribution parameter" - }, - { - "name": "prediction", - "type": "double", - "description": "predicted value for variable" - }, - { - "name": "pub_datetime", - "type": "timestamp[us, tz=UTC]", - "description": "datetime that forecast was submitted" - }, - { - "name": "project_id", - "type": "string", - "description": "unique identifier for the forecast project" - }, - { - "name": "duration", - "type": "string", - "description": "temporal duration of forecast (hourly, daily, 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": "reference_date", - "type": "string", - "description": "date that the forecast was initiated" - } - ], - "assets": { - "data": { - "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=usgsrc4cast/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=usgsrc4cast/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/forecasts/aquatics/collection.json b/catalog/forecasts/aquatics/collection.json deleted file mode 100644 index 57b5da1262..0000000000 --- a/catalog/forecasts/aquatics/collection.json +++ /dev/null @@ -1,147 +0,0 @@ -{ - "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_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/usgsrc4cast-docs/", - "type": "text/html", - "title": "EFI-USGS River Chlorophyll Forecasting Challenge Documentation" - }, - { - "rel": "describedby", - "href": "https://projects.ecoforecast.org/usgsrc4cast-docs/", - "title": "EFI-USGS River Chlorophyll Forecast Challenge Dashboard", - "type": "text/html" - } - ], - "title": "aquatics", - "extent": { - "spatial": { - "bbox": [ - ["Inf", "Inf", "-Inf", "-Inf"] - ] - }, - "temporal": { - "interval": [ - [ - "2024-02-07T00:00:00Z", - "2024-03-14T00:00:00Z" - ] - ] - } - }, - "table:columns": [ - { - "name": "reference_datetime", - "type": "timestamp[us, tz=UTC]", - "description": "datetime that the forecast was initiated (horizon = 0)" - }, - { - "name": "datetime", - "type": "timestamp[us, tz=UTC]", - "description": "datetime of the forecasted value (ISO 8601)" - }, - { - "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)" - }, - { - "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.”" - }, - { - "name": "parameter", - "type": "string", - "description": "ensemble member or distribution parameter" - }, - { - "name": "prediction", - "type": "double", - "description": "predicted value for variable" - }, - { - "name": "pub_datetime", - "type": "timestamp[us, tz=UTC]", - "description": "datetime that forecast was submitted" - }, - { - "name": "project_id", - "type": "string", - "description": "unique identifier for the forecast project" - }, - { - "name": "duration", - "type": "string", - "description": "temporal duration of forecast (hourly, daily, 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": "reference_date", - "type": "string", - "description": "date that the forecast was initiated" - } - ], - "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(\"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://d9-wret.s3.us-west-2.amazonaws.com/assets/palladium/production/s3fs-public/thumbnails/image/Back-b.jpg", - "type": "image/JPEG", - "roles": [ - "thumbnail" - ], - "title": "USGS Streamgage" - } - } -} diff --git a/catalog/inventory/collection.json b/catalog/inventory/collection.json index daae5522bc..e5fb725599 100644 --- a/catalog/inventory/collection.json +++ b/catalog/inventory/collection.json @@ -1,166 +1,166 @@ -{ - "id": "inventory", - "description": "The catalog contains forecasts for the EFI-USGS River Chlorophyll Forecasting Challenge. The forecasts are the raw forecasts that include all ensemble members (if a forecast represents uncertainty using an ensemble). Due to the size of the raw forecasts, we recommend accessing the scores (summaries of the forecasts) to analyze forecasts (unless you need the individual ensemble members). You can access the forecasts 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 forecast catalog, it can be time-consuming to access the data at the full dataset level. For quicker access to the forecasts 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": [ - "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": "parent", - "type": "application/json", - "href": "../catalog.json" - }, - { - "rel": "root", - "type": "application/json", - "href": "../catalog.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/usgsrc4cast-docs/", - "type": "text/html", - "title": "EFI-USGS River Chlorophyll Forecasting Challenge Documentation" - }, - { - "rel": "describedby", - "href": "https://projects.ecoforecast.org/usgsrc4cast-docs/", - "title": "EFI-USGS River Chlorophyll Forecast Challenge Dashboard", - "type": "text/html" - } - ], - "title": "Inventory", - "extent": { - "spatial": { - "bbox": [ - [ - -122.6692, - 39.6327, - -74.7781, - 45.5175 - ] - ] - }, - "temporal": { - "interval": [ - [ - "2024-02-07T00:00:00Z", - "2024-03-14T00:00:00Z" - ] - ] - } - }, - "table:columns": [ - { - "name": "duration", - "type": "string", - "description": "sample duration code for variable" - }, - { - "name": "model_id", - "type": "string", - "description": "unique model identifier" - }, - { - "name": "site_id", - "type": "string", - "description": "unique site identifier" - }, - { - "name": "reference_date", - "type": "date32[day]", - "description": "date that the forecast was initiated (horizon = 0)" - }, - { - "name": "variable", - "type": "string", - "description": "forecast variable" - }, - { - "name": "date", - "type": "date32[day]", - "description": "date of the predicted value" - }, - { - "name": "project_id", - "type": "string", - "description": "unique project identifier" - }, - { - "name": "pub_date", - "type": "date32[day]", - "description": {} - }, - { - "name": "path", - "type": null, - "description": "storage path for forecast data" - }, - { - "name": "path_full", - "type": null, - "description": {} - }, - { - "name": "path_summaries", - "type": null, - "description": {} - }, - { - "name": "endpoint", - "type": "string", - "description": "storage location for forecast data" - }, - { - "name": "latitude", - "type": "double", - "description": {} - }, - { - "name": "longitude", - "type": "double", - "description": {} - } - ], - "assets": { - "data": { - "href": "s3://anonymous@bio230014-bucket01/challenges/inventory/catalog/forecasts/project_id=usgsrc4cast?endpoint_override=sdsc.osn.xsede.org", - "type": "application/x-parquet", - "title": "Forecast Inventory Access", - "roles": [ - "data" - ], - "description": "Use `arrow` for remote access to the database. This R code will return results for the forecast challenge inventory bucket.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(\"s3://anonymous@bio230014-bucket01/challenges/inventory/catalog/forecasts/project_id=usgsrc4cast?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" - }, - "data.1": { - "href": "s3://anonymous@bio230014-bucket01/challenges/inventory/catalog/scores/project_id=usgsrc4cast?endpoint_override=sdsc.osn.xsede.org", - "type": "application/x-parquet", - "title": "Scores Inventory Access", - "roles": [ - "data" - ], - "description": "Use `arrow` for remote access to the database. This R code will return results for the forecast challenge inventory bucket.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(\"s3://anonymous@bio230014-bucket01/challenges/inventory/catalog/scores/project_id=usgsrc4cast?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://d9-wret.s3.us-west-2.amazonaws.com/assets/palladium/production/s3fs-public/thumbnails/image/Streamgaging%20Basics%20photo%20showing%20Acoustic%20Doppler%20Current%20Profiler2.jpg", - "type": "image/JPEG", - "roles": [ - "thumbnail" - ], - "title": "USGS Image" - } - } -} +{ + "id": "inventory", + "description": "The catalog contains forecasts for the EFI-USGS River Chlorophyll Forecasting Challenge. The forecasts are the raw forecasts that include all ensemble members (if a forecast represents uncertainty using an ensemble). Due to the size of the raw forecasts, we recommend accessing the scores (summaries of the forecasts) to analyze forecasts (unless you need the individual ensemble members). You can access the forecasts 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 forecast catalog, it can be time-consuming to access the data at the full dataset level. For quicker access to the forecasts 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": [ + "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": "parent", + "type": "application/json", + "href": "../catalog.json" + }, + { + "rel": "root", + "type": "application/json", + "href": "../catalog.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/usgsrc4cast-docs/", + "type": "text/html", + "title": "EFI-USGS River Chlorophyll Forecasting Challenge Documentation" + }, + { + "rel": "describedby", + "href": "https://projects.ecoforecast.org/usgsrc4cast-docs/", + "title": "EFI-USGS River Chlorophyll Forecast Challenge Dashboard", + "type": "text/html" + } + ], + "title": "Inventory", + "extent": { + "spatial": { + "bbox": [ + [ + -122.6692, + 39.6327, + -74.7781, + 45.5175 + ] + ] + }, + "temporal": { + "interval": [ + [ + "2024-02-07T00:00:00Z", + "2024-03-17T00:00:00Z" + ] + ] + } + }, + "table:columns": [ + { + "name": "duration", + "type": "string", + "description": "sample duration code for variable" + }, + { + "name": "model_id", + "type": "string", + "description": "unique model identifier" + }, + { + "name": "site_id", + "type": "string", + "description": "unique site identifier" + }, + { + "name": "reference_date", + "type": "date32[day]", + "description": "date that the forecast was initiated (horizon = 0)" + }, + { + "name": "variable", + "type": "string", + "description": "forecast variable" + }, + { + "name": "date", + "type": "date32[day]", + "description": "date of the predicted value" + }, + { + "name": "project_id", + "type": "string", + "description": "unique project identifier" + }, + { + "name": "pub_date", + "type": "date32[day]", + "description": {} + }, + { + "name": "path", + "type": null, + "description": "storage path for forecast data" + }, + { + "name": "path_full", + "type": null, + "description": {} + }, + { + "name": "path_summaries", + "type": null, + "description": {} + }, + { + "name": "endpoint", + "type": "string", + "description": "storage location for forecast data" + }, + { + "name": "latitude", + "type": "double", + "description": {} + }, + { + "name": "longitude", + "type": "double", + "description": {} + } + ], + "assets": { + "data": { + "href": "s3://anonymous@bio230014-bucket01/challenges/inventory/catalog/forecasts/project_id=usgsrc4cast?endpoint_override=sdsc.osn.xsede.org", + "type": "application/x-parquet", + "title": "Forecast Inventory Access", + "roles": [ + "data" + ], + "description": "Use `arrow` for remote access to the database. This R code will return results for the forecast challenge inventory bucket.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(\"s3://anonymous@bio230014-bucket01/challenges/inventory/catalog/forecasts/project_id=usgsrc4cast?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" + }, + "data.1": { + "href": "s3://anonymous@bio230014-bucket01/challenges/inventory/catalog/scores/project_id=usgsrc4cast?endpoint_override=sdsc.osn.xsede.org", + "type": "application/x-parquet", + "title": "Scores Inventory Access", + "roles": [ + "data" + ], + "description": "Use `arrow` for remote access to the database. This R code will return results for the forecast challenge inventory bucket.\n\n### R\n\n```{r}\n# Use code below\n\nall_results <- arrow::open_dataset(\"s3://anonymous@bio230014-bucket01/challenges/inventory/catalog/scores/project_id=usgsrc4cast?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://d9-wret.s3.us-west-2.amazonaws.com/assets/palladium/production/s3fs-public/thumbnails/image/Streamgaging%20Basics%20photo%20showing%20Acoustic%20Doppler%20Current%20Profiler2.jpg", + "type": "image/JPEG", + "roles": [ + "thumbnail" + ], + "title": "USGS Image" + } + } +} diff --git a/catalog/scores/aquatics/Daily_Chlorophyll_a/collection.json b/catalog/scores/aquatics/Daily_Chlorophyll_a/collection.json deleted file mode 100644 index 21dd28a1d7..0000000000 --- a/catalog/scores/aquatics/Daily_Chlorophyll_a/collection.json +++ /dev/null @@ -1,192 +0,0 @@ -{ - "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/persistenceRW.json" - }, - { - "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/usgsrc4cast-docs/", - "type": "text/html", - "title": "EFI-USGS River Chlorophyll Forecasting Challenge Documentation" - }, - { - "rel": "describedby", - "href": "https://projects.ecoforecast.org/usgsrc4cast-docs/", - "title": "EFI-USGS River Chlorophyll Forecast Challenge Dashboard", - "type": "text/html" - } - ], - "title": "Daily_Chlorophyll_a", - "extent": { - "spatial": { - "bbox": [ - ["Inf", "Inf", "-Inf", "-Inf"] - ] - }, - "temporal": { - "interval": [ - [ - "2024-02-07T00:00:00Z", - "2024-02-09T00: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/scores/parquet/project_id=usgsrc4cast/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/scores/parquet/project_id=usgsrc4cast/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/collection.json b/catalog/scores/aquatics/collection.json deleted file mode 100644 index 3b37c864e9..0000000000 --- a/catalog/scores/aquatics/collection.json +++ /dev/null @@ -1,187 +0,0 @@ -{ - "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_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/usgsrc4cast-docs/", - "type": "text/html", - "title": "EFI-USGS River Chlorophyll Forecasting Challenge Documentation" - }, - { - "rel": "describedby", - "href": "https://projects.ecoforecast.org/usgsrc4cast-docs/", - "title": "EFI-USGS River Chlorophyll Forecast Challenge Dashboard", - "type": "text/html" - } - ], - "title": "aquatics", - "extent": { - "spatial": { - "bbox": [ - ["Inf", "Inf", "-Inf", "-Inf"] - ] - }, - "temporal": { - "interval": [ - [ - "2024-02-07T00:00:00Z", - "2024-02-09T00: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/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/scores/parquet/?endpoint_override=sdsc.osn.xsede.org\")\ndf <- all_results |>\n dplyr::filter(variable %in% c(\"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://d9-wret.s3.us-west-2.amazonaws.com/assets/palladium/production/s3fs-public/thumbnails/image/Back-b.jpg", - "type": "image/JPEG", - "roles": [ - "thumbnail" - ], - "title": "USGS Streamgage" - } - } -} diff --git a/catalog/summaries/aquatics/Daily_Chlorophyll_a/collection.json b/catalog/summaries/aquatics/Daily_Chlorophyll_a/collection.json deleted file mode 100644 index ff12ff56e7..0000000000 --- a/catalog/summaries/aquatics/Daily_Chlorophyll_a/collection.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "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/persistenceRW.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/usgsrc4cast-docs/", - "type": "text/html", - "title": "EFI-USGS River Chlorophyll Forecasting Challenge Documentation" - }, - { - "rel": "describedby", - "href": "https://projects.ecoforecast.org/usgsrc4cast-docs/", - "title": "EFI-USGS River Chlorophyll Forecast Challenge Dashboard", - "type": "text/html" - } - ], - "title": "Daily_Chlorophyll_a", - "extent": { - "spatial": { - "bbox": [ - ["Inf", "Inf", "-Inf", "-Inf"] - ] - }, - "temporal": { - "interval": [ - [ - "2024-02-07T00:00:00Z", - "2024-03-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)" - }, - { - "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.”" - }, - { - "name": "pub_datetime", - "type": "timestamp[us, tz=UTC]", - "description": "datetime that forecast was submitted" - }, - { - "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 identifier for the forecast project" - }, - { - "name": "duration", - "type": "string", - "description": "temporal duration of forecast (hourly, daily, 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": "reference_date", - "type": "string", - "description": "date that the forecast was initiated" - } - ], - "assets": { - "data": { - "href": "s3://anonymous@bio230014-bucket01/challenges/forecasts/parquet/project_id=usgsrc4cast/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=usgsrc4cast/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/summaries/aquatics/collection.json b/catalog/summaries/aquatics/collection.json deleted file mode 100644 index c2361a337e..0000000000 --- a/catalog/summaries/aquatics/collection.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "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_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/usgsrc4cast-docs/", - "type": "text/html", - "title": "EFI-USGS River Chlorophyll Forecasting Challenge Documentation" - }, - { - "rel": "describedby", - "href": "https://projects.ecoforecast.org/usgsrc4cast-docs/", - "title": "EFI-USGS River Chlorophyll Forecast Challenge Dashboard", - "type": "text/html" - } - ], - "title": "aquatics", - "extent": { - "spatial": { - "bbox": [ - ["Inf", "Inf", "-Inf", "-Inf"] - ] - }, - "temporal": { - "interval": [ - [ - "2024-02-07T00:00:00Z", - "2024-03-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)" - }, - { - "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.”" - }, - { - "name": "pub_datetime", - "type": "timestamp[us, tz=UTC]", - "description": "datetime that forecast was submitted" - }, - { - "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 identifier for the forecast project" - }, - { - "name": "duration", - "type": "string", - "description": "temporal duration of forecast (hourly, daily, 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": "reference_date", - "type": "string", - "description": "date that the forecast was initiated" - } - ], - "assets": { - "data": { - "href": "s3://anonymous@bio230014-bucket01/vera4cast/forecasts/summaries/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/vera4cast/forecasts/summaries/parquet/?endpoint_override=sdsc.osn.xsede.org\")\ndf <- all_results |>\n dplyr::filter(variable %in% c(\"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://d9-wret.s3.us-west-2.amazonaws.com/assets/palladium/production/s3fs-public/thumbnails/image/Back-b.jpg", - "type": "image/JPEG", - "roles": [ - "thumbnail" - ], - "title": "USGS Streamgage" - } - } -} diff --git a/dashboard/R/build_dashboard_sites.R b/dashboard/R/build_dashboard_sites.R index c2c110b88a..4c003550ab 100644 --- a/dashboard/R/build_dashboard_sites.R +++ b/dashboard/R/build_dashboard_sites.R @@ -3,8 +3,7 @@ config <- yaml::read_yaml('challenge_configuration.yaml') catalog_config <- config$catalog_config project_sites <- read_csv(catalog_config$site_metadata_url, col_types = cols()) -project_sites$site_lat_lon <- lapply(1:nrow(project_sites), function(i) c(project_sites$field_longitude[i], project_sites$field_latitude[i])) -project_sites$field_site_name_short <- gsub(' NEON', '',project_sites$field_site_name) # remove the NEON on back end of name +project_sites$site_lat_lon <- lapply(1:nrow(project_sites), function(i) c(project_sites$longitude[i], project_sites$latitude[i])) iterator_list <- 1:nrow(project_sites) @@ -12,18 +11,18 @@ site_name_coords <- purrr::map(iterator_list, function(i) list( "type" = "Feature", "properties" = list( - "site_id" = project_sites$field_site_name_short[i], - "Partner" = "NEON", + "site_id" = project_sites$site_id[i], + "Partner" = "USGS", "n" = 5 ), "geometry" = list( "type" = "Point", - "coordinates" = c(project_sites$field_longitude[i], project_sites$field_latitude[i]) + "coordinates" = c(project_sites$longitude[i], project_sites$latitude[i]) ))) site_info <- list( "type" = "FeatureCollection", - "name" = "neon", + "name" = "usgs", "crs" = list( "type" = "name", "properties" = list( diff --git a/dashboard/index.qmd b/dashboard/index.qmd index ee2e7647a9..cd24bb785a 100644 --- a/dashboard/index.qmd +++ b/dashboard/index.qmd @@ -1,5 +1,5 @@ --- -title: "Forecasting Challenge" +title: "EFI-USGS River Chlorophyll Forecasting Challenge" editor: markdown: wrap: 72 @@ -9,15 +9,15 @@ We invite you to submit forecasts! The EFI-USGS River Chlorophyll Forecasting Challenge is an open platform for the ecological and data science communities to forecast data from [the U.S. Geological Survey (USGS)](https://www.usgs.gov/) before they are collected. -The Challenge is hosted by the [Ecological Forecasting Initiative Research Coordination Network](https://ecoforecast.org) and sponsored by the U.S. National Science Foundation. This challenge is co-hosted by the USGS Proxies Project, an effort supported by the Water Mission Area Water Quality Processes program to develop estimation methods for PFAS, harmful algal blooms, and metals, at multiple spatial and temporal scales. +The Challenge is hosted by the [Ecological Forecasting Initiative Research Coordination Network](https://ecoforecast.org) and sponsored by the U.S. National Science Foundation. This challenge is co-hosted by the [USGS Proxies Project](https://www.usgs.gov/mission-areas/water-resources/science/proxies-project), an effort supported by the Water Mission Area Water Quality Processes program to develop estimation methods for per- and polyfluoroalkyl substances (PFAS), harmful algal blooms (HABs), and 12 elements of concern, at multiple spatial and temporal scales. ## Why a forecasting challenge? Our vision is to use forecasts to advance theory and to support natural resource management. We can begin to realize this vision by creating and analyzing a catalog of forecasts from a range of ecological systems, spatiotemporal scales, and environmental gradients. -Our forecasting challenge is platform for the ecological and data science communities to advance skills in forecasting ecological systems and for generating forecasts that contribute to a synthetic understanding of patterns of predictability in ecology. Rewards for contributing are skill advancement, joy, and potential involved in manuscripts. We do not currently crown winner nor offer financial awards. +Our forecasting challenge is platform for the ecological and data science communities to advance skills in forecasting ecological systems and for generating forecasts that contribute to a synthetic understanding of patterns of environmental predictability. Rewards for contributing are skill advancement, joy, and potential involved in manuscripts. We do not currently crown winner nor offer financial awards. -The Challenge is [an excellent focal project in university courses](https://www.neonscience.org/impact/observatory-blog/efi-neon-forecasting-challenge-classroom). +The original [NEON forecasting challenge](https://projects.ecoforecast.org/neon4cast-ci/) has been [an excellent focal project in university courses](https://www.neonscience.org/impact/observatory-blog/efi-neon-forecasting-challenge-classroom) and this EFI-USGS challenge could be used as classroom projects as well.

@@ -68,7 +68,7 @@ last_updated <- Sys.Date() layout_column_wrap( width = "250px", value_box( - title = "Total forecasts submitted to the NEON Challenge", + title = "Total forecasts submitted to the EFI-USGS Challenge", value = n_forecasts, showcase = bs_icon("graph-up"), theme_color = "success" @@ -99,7 +99,7 @@ layout_column_wrap( ## The Challenge is a platform -Our platform is designed to empower you to contribute by providing target data, numerical weather forecasts, and tutorials. We automatically score your forecasts using the latest NEON data. All forecasts and scores are publicly available through cloud storage and discoverable through our catalog. +Our platform is designed to empower you to contribute by providing target data, numerical weather forecasts, and tutorials. We automatically score your forecasts using the latest USGS data. All forecasts and scores are publicly available through cloud storage and discoverable through our catalog. ![The NEON Ecological Forecasting Challenge platform from Thomas et al. 2023](img/workflow.png){fig-align="center"}

@@ -108,13 +108,13 @@ Figure from [Thomas et al. 2023](https://doi.org/10.1002/fee.2616) ## Contact -eco4cast.initiative@gmail.com +eco4cast.initiative@gmail.com and jzwart@usgs.gov ## Acknowledgements Thomas, R. Q., Boettiger, C., Carey, C. C., Dietze, M. C., Johnson, L. R., Kenney, M. A., et al. (2023). The NEON Ecological Forecasting Challenge. Frontiers in Ecology and the Environment, 21(3), 112–113. [https://doi.org/10.1002/fee.2616](https://doi.org/10.1002/fee.2616)

-We thank NEON for providing the freely available data and the EFI community for feedback on the design of the Challenge. This material is based upon work supported by the National +We thank the EFI community for feedback on the design of the Challenge. This material is based upon work supported by the National Science Foundation under Grant DEB-1926388.

Page last updated on `r Sys.Date()` diff --git a/dashboard/sites.json b/dashboard/sites.json index 5b83645e43..e2a694c9aa 100644 --- a/dashboard/sites.json +++ b/dashboard/sites.json @@ -1,984 +1,132 @@ -{ - "type": "FeatureCollection", - "name": "neon", - "crs": { - "type": "name", - "properties": { - "name": "urn:ogc:def:crs:OGC:1.3:CRS84" - } - }, - "features": [ - { - "type": "Feature", - "properties": { - "site_id": "Abby Road", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-122.3303, 45.7624] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Arikaree River", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-102.4471, 39.7582] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Lake Barco", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-82.0084, 29.676] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Utqiaġvik", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-156.6194, 71.2824] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Bartlett Experimental Forest", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-71.2874, 44.0639] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Upper Big Creek", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-119.2575, 37.0597] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Blandy Experimental Farm", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-78.0418, 39.0337] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Blacktail Deer Creek", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-110.5871, 44.9501] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Blue River", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-96.6242, 34.4442] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Black Warrior River", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-87.7982, 32.5415] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Caribou-Poker Creeks Research Watershed", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-147.5026, 65.154] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Caribou Creek", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-147.504, 65.1532] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Lyndon B. Johnson National Grassland", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-97.57, 33.4012] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Como Creek", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-105.5442, 40.035] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Central Plains Experimental Range", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-104.7456, 40.8155] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Crampton Lake", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-89.4737, 46.2097] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Rio Cupeyes", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-66.9868, 18.1135] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Dakota Coteau Field Site", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-99.1066, 47.1617] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Delta Junction", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-145.7514, 63.8811] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Dead Lake", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-87.8039, 32.5417] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Disney Wilderness Preserve", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-81.4362, 28.1251] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Flint River", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-84.4374, 31.1854] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Great Smoky Mountains National Park", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-83.5019, 35.689] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Guanica Forest", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-66.8687, 17.9696] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Rio Guilarte", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-66.7987, 18.1741] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Harvard Forest & Quabbin Watershed", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-72.1727, 42.5369] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Healy", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-149.2133, 63.8758] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Lower Hop Brook", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-72.3295, 42.4719] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "The Jones Center At Ichauway", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-84.4686, 31.1948] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Jornada Experimental Range", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-106.8425, 32.5907] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Kings Creek", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-96.6038, 39.1051] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Konza Prairie Agroecosystem", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-96.6129, 39.1104] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Konza Prairie Biological Station", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-96.5631, 39.1008] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Lajas Experimental Station", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-67.0769, 18.0213] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "LeConte Creek", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-83.5038, 35.6904] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Lenoir Landing", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-88.1612, 31.8539] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Lewis Run", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-77.9832, 39.0956] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Little Rock Lake", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-89.7048, 45.9983] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Martha Creek", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-121.9338, 45.7908] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Mayfield Creek", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-87.4077, 32.9604] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "McDiffett Creek", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-96.443, 38.9459] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "McRae Creek", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-122.1655, 44.2596] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Mountain Lake Biological Station", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-80.5248, 37.3783] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Moab", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-109.3883, 38.2483] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Niwot Ridge", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-105.5824, 40.0543] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Northern Great Plains Research Laboratory", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-100.9154, 46.7697] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Marvin Klemme Range Research Station", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-99.0588, 35.4106] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Oksrukuyik Creek", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-149.143, 68.6698] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Onaqui", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-112.4524, 40.1776] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Oak Ridge", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-84.2826, 35.9641] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Ordway-Swisher Biological Station", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-81.9934, 29.6893] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Posey Creek", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-78.1473, 38.8943] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Pringle Creek", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-97.7823, 33.3785] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Prairie Lake", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-99.1139, 47.1591] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Prairie Pothole", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-99.2531, 47.1298] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Pu'u Maka'ala Natural Area Reserve", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-155.3173, 19.5531] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Red Butte Creek", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-111.7979, 40.7839] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Rocky Mountains", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-105.546, 40.2759] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Smithsonian Conservation Biology Institute", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-78.1395, 38.8929] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Smithsonian Environmental Research Center", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-76.56, 38.8901] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "San Joaquin Experimental Range", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-119.7323, 37.1088] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Soaproot Saddle", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-119.2622, 37.0334] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Santa Rita Experimental Range", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-110.8355, 31.9107] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Steigerwaldt-Chequamegon", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-89.5864, 45.5089] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "North Sterling", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-103.0293, 40.4619] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Lake Suggs", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-82.0177, 29.6878] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Sycamore Creek", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-111.5081, 33.751] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Talladega National Forest", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-87.3933, 32.9505] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Lower Teakettle", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-119.006, 37.0058] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Teakettle Creek - Watershed 2", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-119.0274, 36.9559] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Lower Tombigbee River", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-88.1589, 31.8534] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Toolik Lake", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-149.6106, 68.6307] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Toolik Field Station", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-149.3705, 68.6611] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Treehaven", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-89.5857, 45.4937] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "University of Kansas Field Station", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-95.1921, 39.0404] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "University of Notre Dame Environmental Research Center", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-89.5373, 46.2339] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Walker Branch", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-84.2793, 35.9574] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "West St Louis Creek", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-105.9154, 39.8914] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Chase Lake National Wildlife Refuge", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-99.2413, 47.1282] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Wind River Experimental Forest", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-121.9519, 45.8205] - } - }, - { - "type": "Feature", - "properties": { - "site_id": "Yellowstone National Park", - "Partner": "NEON", - "n": 5 - }, - "geometry": { - "type": "Point", - "coordinates": [-110.5391, 44.9535] - } - } - ] -} +{ + "type": "FeatureCollection", + "name": "usgs", + "crs": { + "type": "name", + "properties": { + "name": "urn:ogc:def:crs:OGC:1.3:CRS84" + } + }, + "features": [ + { + "type": "Feature", + "properties": { + "site_id": "USGS-14211720", + "Partner": "USGS", + "n": 5 + }, + "geometry": { + "type": "Point", + "coordinates": [-122.6692, 45.5175] + } + }, + { + "type": "Feature", + "properties": { + "site_id": "USGS-14211010", + "Partner": "USGS", + "n": 5 + }, + "geometry": { + "type": "Point", + "coordinates": [-122.5773, 45.3793] + } + }, + { + "type": "Feature", + "properties": { + "site_id": "USGS-14181500", + "Partner": "USGS", + "n": 5 + }, + "geometry": { + "type": "Point", + "coordinates": [-122.2974, 44.7538] + } + }, + { + "type": "Feature", + "properties": { + "site_id": "USGS-05586300", + "Partner": "USGS", + "n": 5 + }, + "geometry": { + "type": "Point", + "coordinates": [-90.6077, 39.6328] + } + }, + { + "type": "Feature", + "properties": { + "site_id": "USGS-05558300", + "Partner": "USGS", + "n": 5 + }, + "geometry": { + "type": "Point", + "coordinates": [-89.3562, 41.1073] + } + }, + { + "type": "Feature", + "properties": { + "site_id": "USGS-05553700", + "Partner": "USGS", + "n": 5 + }, + "geometry": { + "type": "Point", + "coordinates": [-88.984, 41.3248] + } + }, + { + "type": "Feature", + "properties": { + "site_id": "USGS-05543010", + "Partner": "USGS", + "n": 5 + }, + "geometry": { + "type": "Point", + "coordinates": [-88.6142, 41.2999] + } + }, + { + "type": "Feature", + "properties": { + "site_id": "USGS-05549500", + "Partner": "USGS", + "n": 5 + }, + "geometry": { + "type": "Point", + "coordinates": [-88.2515, 42.31] + } + }, + { + "type": "Feature", + "properties": { + "site_id": "USGS-01427510", + "Partner": "USGS", + "n": 5 + }, + "geometry": { + "type": "Point", + "coordinates": [-75.0574, 41.7567] + } + }, + { + "type": "Feature", + "properties": { + "site_id": "USGS-01463500", + "Partner": "USGS", + "n": 5 + }, + "geometry": { + "type": "Point", + "coordinates": [-74.7781, 40.2217] + } + } + ] +} diff --git a/dashboard/targets.qmd b/dashboard/targets.qmd index 8f7303c1db..7e729c6395 100644 --- a/dashboard/targets.qmd +++ b/dashboard/targets.qmd @@ -7,7 +7,7 @@ editor: ```{r message=FALSE, echo = FALSE} library(tidyverse) -aquatics_focal_sites <- c("BARC", "CRAM") +aquatics_focal_sites <- c("USGS-05553700", "USGS-01463500") ``` ```{r message=FALSE, echo = FALSE} @@ -59,8 +59,6 @@ In the tables, ![](https://projects.ecoforecast.org/neon4cast-catalog/img/neon_buoy.jpg) -Freshwater surface water temperature, dissolved oxygen, and chlorophyll-a all influence drinking water quality, are critical for life in aquatic environments, and can represent the health of the ecosystem. - The aquatics theme challenges you to forecast daily mean water quality variables at up-to 10 river USGS sites. ```{r echo = FALSE} @@ -99,12 +97,12 @@ and the time series for the focal sites ```{r} aquatics_targets |> - # TODO: need to update focal sites - # filter(site_id %in% aquatics_focal_sites) |> + filter(site_id %in% aquatics_focal_sites) |> ggplot(aes(x = datetime, y = observation)) + geom_point() + - facet_grid(variable~site_id, scales = "free_y") + - theme_bw() + facet_wrap(~site_id, scales = "free") + + theme_bw() + + ylab("Chlorophyll-a (ug/L)") ``` From 5c176fd4dbf43cf41119b0c872b2078f62d416b4 Mon Sep 17 00:00:00 2001 From: Zwart Date: Mon, 12 Feb 2024 15:17:26 -0800 Subject: [PATCH 4/4] usgs rc 4 cast --- dashboard/catalog.qmd | 5 +++-- dashboard/instructions.qmd | 46 ++++++++++++++++++-------------------- dashboard/learn-more.qmd | 6 ++--- dashboard/performance.qmd | 11 ++++----- 4 files changed, 32 insertions(+), 36 deletions(-) diff --git a/dashboard/catalog.qmd b/dashboard/catalog.qmd index 33501912f3..f463e296d7 100644 --- a/dashboard/catalog.qmd +++ b/dashboard/catalog.qmd @@ -10,7 +10,8 @@ title: "Forecast catalog" s3 <- arrow::s3_bucket(bucket = "bio230014-bucket01/challenges/metadata/model_id/", endpoint_override = "sdsc.osn.xsede.org", anonymous = TRUE) -d1 <- arrow::open_dataset(s3, format = "json") |> dplyr::collect() +d1 <- arrow::open_dataset(s3, format = "json") |> dplyr::collect() %>% + dplyr::filter(project_id == "usgsrc4cast") model_type <- tidyr::unnest(d1[[3]], cols = names(d1[[3]]))$type @@ -34,5 +35,5 @@ A full page version can be found [here](https://radiantearth.github.io/stac-brow

```{=html} - + ``` diff --git a/dashboard/instructions.qmd b/dashboard/instructions.qmd index d486ec1984..492351f64d 100644 --- a/dashboard/instructions.qmd +++ b/dashboard/instructions.qmd @@ -11,7 +11,7 @@ editor: We provide an overview of the steps for submitting with the details below: 1) Explore the [data](targets.qmd#sec-targets) (e.g., targets) and build your forecast model. -2) Register and describe your model at . You are not required to register if your forecast submission uses the word "example" in your model_id". Any forecasts with "example" in the model_id will not be used in forecast evaluation analyses. Use neon4cast as the challenge you are registering for. +2) Register and describe your model at . You are not required to register if your forecast submission uses the word "example" in your model_id". Any forecasts with "example" in the model_id will not be used in forecast evaluation analyses. Use `usgsrc4cast` as the challenge you are registering for. 3) Generate a forecast! 4) Write the forecast output to a file that follows our standardized format (described below). 5) Submit your forecast using an R function (provided below). @@ -21,7 +21,7 @@ We provide an overview of the steps for submitting with the details below: ### All forecasting approaches are welcome -We encourage you to use any modeling approach to make a prediction about the future conditions at any of the NEON sites and variables. +We encourage you to use any modeling approach to make a prediction about the future conditions at any of the USGS sites. ### Must include uncertainty @@ -31,17 +31,17 @@ You can represent your confidence (i.e., uncertainty in the forecast) using a di ### Any model drivers/covariates/features are welcome You can use any data as model inputs (including all of the forecast target data available to date). -All sensor-based target data are available in with a 1 to 7 day delay (latency) from time of collection. +All target data are available in with a 1 day delay (latency) from time of collection. You may want to use the updated target data to re-train a model or for use in data assimilation. As a genuine forecasting challenge, you will need forecasted drivers if your model uses drivers as inputs. -If you are interested in using forecasted meteorology, we are downloading and processing NOAA Global Ensemble Forecasting System (GEFS) weather forecasts for each NEON site. +If you are interested in using forecasted meteorology, we are downloading and processing NOAA Global Ensemble Forecasting System (GEFS) weather forecasts for each USGS site. The NOAA GEFS forecasts extend 35-days ahead. More information about accessing the weather forecasts can be found [here]( https://projects.ecoforecast.org/neon4cast-docs/Shared-Forecast-Drivers.html) -### Forecasts can be for a range of horizons +### Forecasts extend out to 30 days in the future -Forecasts can be submitted for 1 day to 1 year-ahead, depending on the variable. +Forecasts can be submitted for 1 to 30 days ahead. See the [variable tables](targets.qmd#sec-targets) for the horizon that is associated with each variable. ### Forecasts can be submitted everyday @@ -50,19 +50,16 @@ Since forecasts can be submitted everyday, automation is important. We provide an [example GitHub](https://github.com/eco4cast/neon4cast-example) repository that can be used to automate your forecast with GitHub Actions. It also includes the use of a custom Docker Container [eco4cast/rocker-neon4cast:latest](https://github.com/eco4cast/neon4cast-ci/blob/main/Dockerfile) that has many of the packages and functions needed to generate and submit forecasts. -We only evaluate forecasts for any weekly variables (e.g., beetles and ticks) that were submitted on the Sunday of each week. -Therefore we recommend only submitting forecasts of the weekly variables on Sundays. +## You can forecast at any of the USGS sites -## You can forecast at any of the NEON sites - -If are you are getting started, we recommend a set of [focal sites](targets.qmd#sec-starting-sites) for each of the five "themes". -You are also welcome to submit forecasts to all or a subset of NEON sites . More information about NEON sites can be found in the [site metadata](https://radiantearth.github.io/stac-browser/#/external/raw.githubusercontent.com/eco4cast/neon4cast-ci/main/catalog/sites/collection.json) and on NEON's [website](https://www.neonscience.org/field-sites/explore-field-sites) +If are you are getting started, we recommend a set of [focal sites](targets.qmd#sec-starting-sites). +You are also welcome to submit forecasts to all or a subset of USGS sites . More information about USGS sites can be found in the [site metadata](https://radiantearth.github.io/stac-browser/#/external/raw.githubusercontent.com/eco4cast/usgsrc4cast-ci/main/catalog/sites/collection.json) and on USGS's [website](https://dashboard.waterdata.usgs.gov/app/nwd/en/) ## Forecast file format The file is a csv format with the following columns: -- `project_id`: use `neon4cast` +- `project_id`: use `usgsrc4cast` - `model_id`: the short name of the model defined as the model_id in your registration. The model_id should have no spaces. `model_id` should reflect a method to forecast one or a set of target variables and must be unique to the neon4cast challenge. @@ -81,7 +78,7 @@ The file is a csv format with the following columns: This value should match the duration of the target variable that you are forecasting. Formatted as [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) -- `site_id`: code for NEON site. +- `site_id`: code for USGS site. - `family` name of the probability distribution that is described by the parameter values in the parameter column (see list below for accepted distribution). An ensemble forecast as a family of `ensemble`. @@ -91,7 +88,7 @@ The file is a csv format with the following columns: For example, the parameters for a normal distribution are called `mu` and `sigma`. - `variable`: standardized variable name. - It must match the variable name in the target file. + It must match the variable name in the target file (e.g., `chla`). - `prediction`: forecasted value for the parameter in the parameter column @@ -132,6 +129,7 @@ Ensemble (or sample) forecasts are transformed to a probability distribution fun Here is an example of a forecast that uses a normal distribution: ```{r} +# TODO: need to update to different example df <- readr::read_csv("https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/forecasts/raw/T20231102190926_aquatics-2023-10-19-climatology.csv.gz", show_col_types = FALSE) ``` ```{r} @@ -143,6 +141,7 @@ df |> For an ensemble (or sample) forecast, the `family` column uses the word `ensemble` to designate that it is a ensemble forecast and the parameter column is the ensemble member number (`1`, `2`, `3` ...) ```{r} +# TODO: need to update to different example df <- readr::read_csv("https://sdsc.osn.xsede.org/bio230014-bucket01/challenges/forecasts/raw/T20231102190926_aquatics-2023-10-19-persistenceRW.csv.gz", show_col_types = FALSE) ``` ```{r} @@ -159,10 +158,10 @@ df |> Save your forecast as a csv file with the following naming convention: -`theme_name-year-month-day-model_id.csv`. +`project_id-year-month-day-model_id.csv`. Compressed csv files with the csv.gz extension are also accepted. -The `theme_name` options are: terrestrial_daily, terrestrial_30min, aquatics, beetles, ticks, or phenology. +The `project_id` is this forecast challenge, `usgsrc4cast`. The year, month, and day are the year, month, and day the reference_datetime (horizon = 0). For example, if a forecast starts today and tomorrow is the first forecasted day, horizon = 0 would be today, and used in the file name. @@ -178,22 +177,22 @@ The csv file can only contain one unique `model_id` and one unique `project_id`. The function is available using the following code ```{r eval = FALSE} -remotes::install_github("eco4cast/neon4cast") +source("https://raw.githubusercontent.com/eco4cast/usgsrc4cast-ci/prod/R/eco4cast-helpers/submit.R") +source("https://raw.githubusercontent.com/eco4cast/usgsrc4cast-ci/prod/R/eco4cast-helpers/forecast_output_validator.R") ``` The submit function is ```{r eval = FALSE} -library(neon4cast) -neon4cast::submit(forecast_file = "theme_name-year-month-day-model_id.csv") +submit(forecast_file = "project_id-year-month-day-model_id.csv") ``` ## Post-submission ### Processing -After submission, our servers will process uploaded files by converting them to a [parquet format](https://radiantearth.github.io/stac-browser/#/external/raw.githubusercontent.com/eco4cast/neon4cast-ci/main/catalog/forecasts/collection.json) on our public s3 storage. -A `pub_datetime` column will be added that denotes when a forecast was submitted. [Summaries](https://radiantearth.github.io/stac-browser/#/external/raw.githubusercontent.com/eco4cast/neon4cast-ci/main/catalog/summaries/collection.json) are generated of the forecasts provide descriptive statistics of the forecast. +After submission, our servers will process uploaded files by converting them to a [parquet format](https://radiantearth.github.io/stac-browser/#/external/raw.githubusercontent.com/eco4cast/usgsrc4cast-ci/main/catalog/forecasts/collection.json) on our public s3 storage. +A `pub_datetime` column will be added that denotes when a forecast was submitted. [Summaries](https://radiantearth.github.io/stac-browser/#/external/raw.githubusercontent.com/eco4cast/usgsrc4cast-ci/main/catalog/summaries/collection.json) are generated of the forecasts provide descriptive statistics of the forecast. ### Evaluation @@ -207,7 +206,6 @@ We are automatically submitting the following baseline models: - `climatology`: the normal distribution (mean and standard deviation) of that day-of-year in the historical observations - `persistenceRW`: a random walk model that assumes no change in the mean behavior. The random walk is initialized using the most resent observation. -- `mean`: the historical mean of the data is submitted for the beetles theme. Our [forecast performance](performance.qmd#performance) page includes evaluations of all submitted models. @@ -219,4 +217,4 @@ Information and code for accessing the forecasts and scores can be found on our Thanks for reading this document!\ -If you still have questions about how to submit your forecast to the NEON Ecological Forecasting Challenge, we encourage you to email Dr. Quinn Thomas (rqthomas{at}vt.edu). +If you still have questions about how to submit your forecast to the EFI-USGS River Chlorophyll Forecasting Challenge, we encourage you to email Dr. Jacob Zwart (jzwart{at}usgs.gov). diff --git a/dashboard/learn-more.qmd b/dashboard/learn-more.qmd index 274ff471ea..9997eda5b2 100644 --- a/dashboard/learn-more.qmd +++ b/dashboard/learn-more.qmd @@ -2,9 +2,9 @@ ## Tutorials -Introductory tutorial for submitting to Challenge focused on aquatics theme: [https://github.com/OlssonF/NEON-forecast-challenge-workshop](https://github.com/OlssonF/NEON-forecast-challenge-workshop). [A webinar version of tutorial](https://www.youtube.com/watch?v=-5iPNr19g-4) +Introductory tutorial for submitting to the NEON Challenge focused on aquatics theme: [https://github.com/OlssonF/NEON-forecast-challenge-workshop](https://github.com/OlssonF/NEON-forecast-challenge-workshop). [A webinar version of tutorial](https://www.youtube.com/watch?v=-5iPNr19g-4) -More advanced tutorial for submitting to Challenge focused on terrestrial theme: [https://github.com/rqthomas/FluxCourseForecast](https://github.com/mdietze/FluxCourseForecast) +More advanced tutorial for submitting to the NEON Challenge focused on terrestrial theme: [https://github.com/rqthomas/FluxCourseForecast](https://github.com/mdietze/FluxCourseForecast) Other tutorial materials about [ecological forecasting](https://ecoforecast.org/resources/educational-resources/) @@ -16,7 +16,7 @@ Lewis, A., W. Woelmer, H. Wander, D. Howard, J. Smith, R. McClure, M. Lofton, N. Lewis, A. S. L., Rollinson, C. R., Allyn, A. J., Ashander, J., Brodie, S., Brookson, C. B., et al. (2023). The power of forecasts to advance ecological theory. Methods in Ecology and Evolution, 14(3), 746–756. [https://doi.org/10.1111/2041-210X.13955](https://doi.org/10.1111/2041-210X.13955) -### Manuscripts about the Challenge +### Manuscripts about the NEON Challenge Thomas, R. Q., Boettiger, C., Carey, C. C., Dietze, M. C., Johnson, L. R., Kenney, M. A., et al. (2023). The NEON Ecological Forecasting Challenge. Frontiers in Ecology and the Environment, 21(3), 112–113. [https://doi.org/10.1002/fee.2616](https://doi.org/10.1002/fee.2616) diff --git a/dashboard/performance.qmd b/dashboard/performance.qmd index 33cdbda116..46c6f51fdc 100644 --- a/dashboard/performance.qmd +++ b/dashboard/performance.qmd @@ -15,8 +15,7 @@ source("R/plot-utils.R") #source("../R/ignore_sigpipes.R") #ignore_sigpipe() -# TODO: update these -aquatics_focal_sites <- c("BARC", "CRAM") +aquatics_focal_sites <- c("USGS-05553700", "USGS-01463500") ``` This page visualizes the forecasts and forecast performance for the focal target variables. @@ -91,7 +90,7 @@ Forecasts submitted on `r max(lubridate::as_date(df_P1D$reference_datetime))` ### Aquatics: Chlorophyll-a -Forecast summaries are available [here](https://radiantearth.github.io/stac-browser/#/external/raw.githubusercontent.com/eco4cast/usgsrc4cast-ci/main/catalog/summaries/Aquatics/Daily_Chlorophyll_a/collection.json) +Forecast summaries are available [here](https://radiantearth.github.io/stac-browser/#/external/raw.githubusercontent.com/eco4cast/usgsrc4cast-ci/main/catalog/summaries/aquatics/Daily_Chlorophyll_a/collection.json) ```{r} best_models <- best_P1D_scores |> filter(variable == "chla") |> pull(model_id) @@ -99,8 +98,7 @@ best_models <- best_P1D_scores |> filter(variable == "chla") |> pull(model_id) df_P1D |> filter(variable == c("chla"), model_id %in% best_models, - # TODO: update these - # site_id %in% aquatics_focal_sites + site_id %in% aquatics_focal_sites ) |> mutate(observation = as.numeric(NA)) |> forecast_plots() @@ -124,8 +122,7 @@ best_models <- best_P1D_scores |> filter(variable == "chla") |> pull(model_id) ex_P1D |> filter(variable == c("chla"), model_id %in% best_models, - #TODO: Update - # site_id %in% aquatics_focal_sites + site_id %in% aquatics_focal_sites ) |> forecast_plots()