From f9d34252e1ab61f7521f94a2cc52f2daecaa898f Mon Sep 17 00:00:00 2001 From: Veronica Tamsitt Date: Thu, 28 Aug 2025 11:45:31 -0700 Subject: [PATCH 1/9] added BGC products to Copernicus.jl --- src/DataWrangling/Copernicus/Copernicus.jl | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/DataWrangling/Copernicus/Copernicus.jl b/src/DataWrangling/Copernicus/Copernicus.jl index c33d35893..fec558d96 100644 --- a/src/DataWrangling/Copernicus/Copernicus.jl +++ b/src/DataWrangling/Copernicus/Copernicus.jl @@ -1,6 +1,6 @@ module Copernicus -export GLORYSStatic, GLORYSDaily, GLORYSMonthly +export GLORYSStatic, GLORYSDaily, GLORYSMonthly, GLORYSBGCDaily, GLORYSBGCMonthly using NCDatasets using Printf @@ -40,18 +40,26 @@ default_download_directory(::CopernicusDataset) = download_Copernicus_cache struct GLORYSStatic <: CopernicusDataset end struct GLORYSDaily <: CopernicusDataset end struct GLORYSMonthly <: CopernicusDataset end +struct GLORYSBGCDaily <: CopernicusDataset end +struct GLORYSBGCMonthly <: CopernicusDataset end dataset_name(::GLORYSStatic) = "GLORYSStatic" dataset_name(::GLORYSDaily) = "GLORYSDaily" dataset_name(::GLORYSMonthly) = "GLORYSMonthly" +dataset_name(::GLORYSBGCDaily) = "GLORYSBGCDaily" +dataset_name(::GLORYSBGCMonthly) = "GLORYSBGCMonthly" all_dates(::GLORYSStatic, var) = [nothing] all_dates(::GLORYSDaily, var) = range(DateTime("1993-01-01"), stop=DateTime("2021-06-30"), step=Day(1)) all_dates(::GLORYSMonthly, var) = range(DateTime("1993-01-01"), stop=DateTime("2024-12-01"), step=Month(1)) +all_dates(::GLORYSBGCdaily, var) = range(DateTime("1993-01-01"), stop=DateTime("2022-12-30"), step=Day(1)) +all_dates(::GLORYSBGCMonthly, var) = range(DateTime("1993-01-01"), stop=DateTime("2022-11-30"), step=Month(1)) copernicusmarine_dataset_id(::GLORYSStatic) = "cmems_mod_glo_phy_my_0.083deg_static" copernicusmarine_dataset_id(::GLORYSDaily) = "cmems_mod_glo_phy_my_0.083deg_P1D-m" copernicusmarine_dataset_id(::GLORYSMonthly) = "cmems_mod_glo_phy_my_0.083deg_P1M-m" +copernicusmarine_dataset_id(::GLORYSBGCDaily) = "cmems_mod_glo_bgc_my_0.25deg_P1D-m" +copernicusmarine_dataset_id(::GLORYSBGCMonthly) = "cmems_mod_glo_bgc_my_0.25deg_P1M-m" # :static => "cmems_mod_glo_phy_my_0.083deg_static", struct CMEMSHourlyAnalysis <: CopernicusDataset end @@ -76,6 +84,15 @@ copernicus_dataset_variable_names = Dict( :sea_ice_u_velocity => "usi", :sea_ice_v_velocity => "vsi", :free_surface => "zos", + :total_chlorophyll => "chl", + :nitrate => "no3", + :phosphate => "po4", + :total_phytoplankton => "phyc", + :dissolved_silicate => "si", + :dissolved_oxygen => "o2", + :dissolved_iron => "fe", + :ph => "ph", + :surface_co2` => "spCO2" ) start_date_str(date) = string(date) From 7983fca37862f7985a042700e133d684db1fcff6 Mon Sep 17 00:00:00 2001 From: Veronica Tamsitt Date: Thu, 28 Aug 2025 12:21:24 -0700 Subject: [PATCH 2/9] fixed typo --- src/DataWrangling/Copernicus/Copernicus.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DataWrangling/Copernicus/Copernicus.jl b/src/DataWrangling/Copernicus/Copernicus.jl index fec558d96..e58a19b27 100644 --- a/src/DataWrangling/Copernicus/Copernicus.jl +++ b/src/DataWrangling/Copernicus/Copernicus.jl @@ -92,7 +92,7 @@ copernicus_dataset_variable_names = Dict( :dissolved_oxygen => "o2", :dissolved_iron => "fe", :ph => "ph", - :surface_co2` => "spCO2" + :surface_co2 => "spCO2", ) start_date_str(date) = string(date) From dd4c45cb02381808e91489a94addb8bd3d8c4878 Mon Sep 17 00:00:00 2001 From: Veronica Tamsitt Date: Fri, 29 Aug 2025 11:09:43 -0700 Subject: [PATCH 3/9] split sizes and variable names --- src/DataWrangling/Copernicus/Copernicus.jl | 38 ++++++++++++++++++---- 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/src/DataWrangling/Copernicus/Copernicus.jl b/src/DataWrangling/Copernicus/Copernicus.jl index e58a19b27..8935ec563 100644 --- a/src/DataWrangling/Copernicus/Copernicus.jl +++ b/src/DataWrangling/Copernicus/Copernicus.jl @@ -52,7 +52,7 @@ dataset_name(::GLORYSBGCMonthly) = "GLORYSBGCMonthly" all_dates(::GLORYSStatic, var) = [nothing] all_dates(::GLORYSDaily, var) = range(DateTime("1993-01-01"), stop=DateTime("2021-06-30"), step=Day(1)) all_dates(::GLORYSMonthly, var) = range(DateTime("1993-01-01"), stop=DateTime("2024-12-01"), step=Month(1)) -all_dates(::GLORYSBGCdaily, var) = range(DateTime("1993-01-01"), stop=DateTime("2022-12-30"), step=Day(1)) +all_dates(::GLORYSBGCDaily, var) = range(DateTime("1993-01-01"), stop=DateTime("2022-12-30"), step=Day(1)) all_dates(::GLORYSBGCMonthly, var) = range(DateTime("1993-01-01"), stop=DateTime("2022-11-30"), step=Month(1)) copernicusmarine_dataset_id(::GLORYSStatic) = "cmems_mod_glo_phy_my_0.083deg_static" @@ -68,12 +68,20 @@ copernicusmarine_dataset_id(::CMEMSHourlyAnalysis) = "cmems_mod_glo_phy_anfc_0.0 CopernicusMetadata{D} = Metadata{<:CopernicusDataset, D} CopernicusMetadatum = Metadatum{<:CopernicusDataset} -Base.size(::CopernicusMetadatum) = (4320, 2040, 50, 1) +Base.size(::GLORYSStatic) = (4320, 2040, 50, 1) +Base.size(::GLORYSDaily) = (4320, 2040, 50, 1) +Base.size(::GLORYSMonthly) = (4320, 2040, 50, 1) +Base.size(::GLORYSBGCDaily) = (1440, 680, 75, 1) +Base.size(::GLORYSBGCMonthly) = (1440, 680, 75, 1) reversed_vertical_axis(::CopernicusDataset) = true -available_variables(::CopernicusDataset) = copernicus_dataset_variable_names +available_variables(::GLORYSStatic) = copernicus_physics_dataset_variable_names +available_variables(::GLORYSDaily) = copernicus_physics_dataset_variable_names +available_variables(::GLORYSMonthly) = copernicus_physics_dataset_variable_names +available_variables(::GLORYSBGCDaily) = copernicus_bgc_daily_dataset_variable_names +available_variables(::GLORYSBGCMonthly) = copernicus_bgc_monthly_dataset_variable_names -copernicus_dataset_variable_names = Dict( +copernicus_physics_dataset_variable_names = Dict( :temperature => "thetao", :depth => "deptho", :salinity => "so", @@ -84,15 +92,28 @@ copernicus_dataset_variable_names = Dict( :sea_ice_u_velocity => "usi", :sea_ice_v_velocity => "vsi", :free_surface => "zos", +) + +copernicus_bgc_daily_dataset_variable_names = Dict( :total_chlorophyll => "chl", + :primary_production => "nppv", :nitrate => "no3", :phosphate => "po4", - :total_phytoplankton => "phyc", :dissolved_silicate => "si", :dissolved_oxygen => "o2", :dissolved_iron => "fe", :ph => "ph", :surface_co2 => "spCO2", + :total_phytoplankton => "phyc", +) + +copernicus_bgc_daily_dataset_variable_names = Dict( + :total_chlorophyll => "chl", + :primary_production => "nppv", + :nitrate => "no3", + :phosphate => "po4", + :dissolved_silicate => "si", + :dissolved_oxygen => "o2", ) start_date_str(date) = string(date) @@ -100,7 +121,12 @@ end_date_str(date) = string(date) start_date_str(dates::AbstractVector) = first(dates) |> string end_date_str(dates::AbstractVector) = last(dates) |> string -dataset_variable_name(metadata::CopernicusMetadata) = copernicus_dataset_variable_names[metadata.name] +#dataset_variable_name(metadata::CopernicusMetadata) = copernicus_dataset_variable_names[metadata.name] +dataset_variable_name(::GLORYSStatic) = copernicus_physics_dataset_variable_names[data.name] +dataset_variable_name(::GLORYSDaily) = copernicus_physics_dataset_variable_names[data.name] +dataset_variable_name(::GLORYSMonthly) = copernicus_physics_dataset_variable_names[data.name] +dataset_variable_name(::GLORYSBGCDaily) = copernicus_bgc_daily_dataset_variable_names[data.name] +dataset_variable_name(::GLORYSBGCDMonthly) = copernicus_bgc_monthly_dataset_variable_names[data.name] bbox_strs(::Nothing) = "_nothing", "_nothing" From 6b351515a8781f358035467ec8a499c60c66fea5 Mon Sep 17 00:00:00 2001 From: Veronica Tamsitt Date: Fri, 29 Aug 2025 11:43:17 -0700 Subject: [PATCH 4/9] update available_variables --- src/DataWrangling/Copernicus/Copernicus.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DataWrangling/Copernicus/Copernicus.jl b/src/DataWrangling/Copernicus/Copernicus.jl index 8935ec563..b2bd7680d 100644 --- a/src/DataWrangling/Copernicus/Copernicus.jl +++ b/src/DataWrangling/Copernicus/Copernicus.jl @@ -126,7 +126,7 @@ dataset_variable_name(::GLORYSStatic) = copernicus_physics_dataset_variable_name dataset_variable_name(::GLORYSDaily) = copernicus_physics_dataset_variable_names[data.name] dataset_variable_name(::GLORYSMonthly) = copernicus_physics_dataset_variable_names[data.name] dataset_variable_name(::GLORYSBGCDaily) = copernicus_bgc_daily_dataset_variable_names[data.name] -dataset_variable_name(::GLORYSBGCDMonthly) = copernicus_bgc_monthly_dataset_variable_names[data.name] +dataset_variable_name(::GLORYSBGCMonthly) = copernicus_bgc_monthly_dataset_variable_names[data.name] bbox_strs(::Nothing) = "_nothing", "_nothing" From ecb54a4484e8923477c862fa4a33eea193c28f52 Mon Sep 17 00:00:00 2001 From: "Navid C. Constantinou" Date: Fri, 5 Sep 2025 09:58:56 +1000 Subject: [PATCH 5/9] simplify + add test for download CopernicusBGC --- src/DataWrangling/Copernicus/Copernicus.jl | 14 ++++---------- test/test_copernicus_downloading.jl | 14 +++++++++++++- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/DataWrangling/Copernicus/Copernicus.jl b/src/DataWrangling/Copernicus/Copernicus.jl index b2bd7680d..df31f245b 100644 --- a/src/DataWrangling/Copernicus/Copernicus.jl +++ b/src/DataWrangling/Copernicus/Copernicus.jl @@ -101,27 +101,21 @@ copernicus_bgc_daily_dataset_variable_names = Dict( :phosphate => "po4", :dissolved_silicate => "si", :dissolved_oxygen => "o2", +) + +copernicus_bgc_daily_dataset_variable_names_extended = Dict( + copernicus_bgc_daily_dataset_variable_names..., # unpack entries :dissolved_iron => "fe", :ph => "ph", :surface_co2 => "spCO2", :total_phytoplankton => "phyc", ) -copernicus_bgc_daily_dataset_variable_names = Dict( - :total_chlorophyll => "chl", - :primary_production => "nppv", - :nitrate => "no3", - :phosphate => "po4", - :dissolved_silicate => "si", - :dissolved_oxygen => "o2", -) - start_date_str(date) = string(date) end_date_str(date) = string(date) start_date_str(dates::AbstractVector) = first(dates) |> string end_date_str(dates::AbstractVector) = last(dates) |> string -#dataset_variable_name(metadata::CopernicusMetadata) = copernicus_dataset_variable_names[metadata.name] dataset_variable_name(::GLORYSStatic) = copernicus_physics_dataset_variable_names[data.name] dataset_variable_name(::GLORYSDaily) = copernicus_physics_dataset_variable_names[data.name] dataset_variable_name(::GLORYSMonthly) = copernicus_physics_dataset_variable_names[data.name] diff --git a/test/test_copernicus_downloading.jl b/test/test_copernicus_downloading.jl index 94bc9248c..a46eaf7a5 100644 --- a/test/test_copernicus_downloading.jl +++ b/test/test_copernicus_downloading.jl @@ -4,8 +4,10 @@ using PythonCall using CondaPkg @testset "Downloading Copernicus data" begin - variables = (:temperature, :salinity, :u_velocity, :v_velocity) bounding_box = ClimaOcean.DataWrangling.BoundingBox(longitude=(200, 202), latitude=(35, 37)) + + # Physics datasets + variables = (:temperature, :salinity, :u_velocity, :v_velocity) dataset = ClimaOcean.DataWrangling.Copernicus.GLORYSDaily() for variable in variables metadatum = Metadatum(variable; dataset, bounding_box) @@ -13,4 +15,14 @@ using CondaPkg isfile(filepath) && rm(filepath; force=true) ClimaOcean.DataWrangling.download_dataset(metadatum) end + + # Biogeochemistry datasets + variables = (:nitrate, :phosphate, :dissolved_silicate) + dataset = ClimaOcean.DataWrangling.Copernicus.GLORYSBGCDaily() + for variable in variables + metadatum = Metadatum(variable; dataset, bounding_box) + filepath = ClimaOcean.DataWrangling.metadata_path(metadatum) + isfile(filepath) && rm(filepath; force=true) + ClimaOcean.DataWrangling.download_dataset(metadatum) + end end From 9fc87c17ce76bbff3516b130b871247b3a122d4b Mon Sep 17 00:00:00 2001 From: Veronica Tamsitt Date: Mon, 8 Sep 2025 13:07:30 -0700 Subject: [PATCH 6/9] master variable names dict --- src/DataWrangling/Copernicus/Copernicus.jl | 50 +++++++++++++++------- 1 file changed, 34 insertions(+), 16 deletions(-) diff --git a/src/DataWrangling/Copernicus/Copernicus.jl b/src/DataWrangling/Copernicus/Copernicus.jl index df31f245b..a7084174e 100644 --- a/src/DataWrangling/Copernicus/Copernicus.jl +++ b/src/DataWrangling/Copernicus/Copernicus.jl @@ -75,13 +75,7 @@ Base.size(::GLORYSBGCDaily) = (1440, 680, 75, 1) Base.size(::GLORYSBGCMonthly) = (1440, 680, 75, 1) reversed_vertical_axis(::CopernicusDataset) = true -available_variables(::GLORYSStatic) = copernicus_physics_dataset_variable_names -available_variables(::GLORYSDaily) = copernicus_physics_dataset_variable_names -available_variables(::GLORYSMonthly) = copernicus_physics_dataset_variable_names -available_variables(::GLORYSBGCDaily) = copernicus_bgc_daily_dataset_variable_names -available_variables(::GLORYSBGCMonthly) = copernicus_bgc_monthly_dataset_variable_names - -copernicus_physics_dataset_variable_names = Dict( +available_variables(::GLORYSStatic) = Dict( :temperature => "thetao", :depth => "deptho", :salinity => "so", @@ -93,8 +87,9 @@ copernicus_physics_dataset_variable_names = Dict( :sea_ice_v_velocity => "vsi", :free_surface => "zos", ) - -copernicus_bgc_daily_dataset_variable_names = Dict( +available_variables(::GLORYSDaily) = available_variables(GLORYSStatic) +available_variables(::GLORYSMonthly) = available_variables(GLORYSStatic) +available_variables(::GLORYSBGCDaily) = Dict( :total_chlorophyll => "chl", :primary_production => "nppv", :nitrate => "no3", @@ -102,9 +97,36 @@ copernicus_bgc_daily_dataset_variable_names = Dict( :dissolved_silicate => "si", :dissolved_oxygen => "o2", ) +available_variables(::GLORYSBGCMonthly) = Dict( + :total_chlorophyll => "chl", + :primary_production => "nppv", + :nitrate => "no3", + :phosphate => "po4", + :dissolved_silicate => "si", + :dissolved_oxygen => "o2", + :dissolved_iron => "fe", + :ph => "ph", + :surface_co2 => "spCO2", + :total_phytoplankton => "phyc", +) -copernicus_bgc_daily_dataset_variable_names_extended = Dict( - copernicus_bgc_daily_dataset_variable_names..., # unpack entries +copernicus_dataset_variable_names = Dict( + :temperature => "thetao", + :depth => "deptho", + :salinity => "so", + :sea_ice_concentration => "siconc", + :sea_ice_thickness => "sithick", + :u_velocity=> "uo", + :v_velocity=> "vo", + :sea_ice_u_velocity => "usi", + :sea_ice_v_velocity => "vsi", + :free_surface => "zos", + :total_chlorophyll => "chl", + :primary_production => "nppv", + :nitrate => "no3", + :phosphate => "po4", + :dissolved_silicate => "si", + :dissolved_oxygen => "o2", :dissolved_iron => "fe", :ph => "ph", :surface_co2 => "spCO2", @@ -116,11 +138,7 @@ end_date_str(date) = string(date) start_date_str(dates::AbstractVector) = first(dates) |> string end_date_str(dates::AbstractVector) = last(dates) |> string -dataset_variable_name(::GLORYSStatic) = copernicus_physics_dataset_variable_names[data.name] -dataset_variable_name(::GLORYSDaily) = copernicus_physics_dataset_variable_names[data.name] -dataset_variable_name(::GLORYSMonthly) = copernicus_physics_dataset_variable_names[data.name] -dataset_variable_name(::GLORYSBGCDaily) = copernicus_bgc_daily_dataset_variable_names[data.name] -dataset_variable_name(::GLORYSBGCMonthly) = copernicus_bgc_monthly_dataset_variable_names[data.name] +dataset_variable_name(metadata::CopernicusMetadata) = copernicus_dataset_variable_names[metadata.name] bbox_strs(::Nothing) = "_nothing", "_nothing" From c9a505a8200c7197480f7d0a1ef67667fe8f31fb Mon Sep 17 00:00:00 2001 From: Veronica Tamsitt Date: Mon, 8 Sep 2025 13:11:21 -0700 Subject: [PATCH 7/9] write out variable names --- src/DataWrangling/Copernicus/Copernicus.jl | 26 ++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/DataWrangling/Copernicus/Copernicus.jl b/src/DataWrangling/Copernicus/Copernicus.jl index a7084174e..1dbfb539d 100644 --- a/src/DataWrangling/Copernicus/Copernicus.jl +++ b/src/DataWrangling/Copernicus/Copernicus.jl @@ -87,8 +87,30 @@ available_variables(::GLORYSStatic) = Dict( :sea_ice_v_velocity => "vsi", :free_surface => "zos", ) -available_variables(::GLORYSDaily) = available_variables(GLORYSStatic) -available_variables(::GLORYSMonthly) = available_variables(GLORYSStatic) +available_variables(::GLORYSDaily) = Dict( + :temperature => "thetao", + :depth => "deptho", + :salinity => "so", + :sea_ice_concentration => "siconc", + :sea_ice_thickness => "sithick", + :u_velocity=> "uo", + :v_velocity=> "vo", + :sea_ice_u_velocity => "usi", + :sea_ice_v_velocity => "vsi", + :free_surface => "zos", +) +available_variables(::GLORYSMonthly) = Dict( + :temperature => "thetao", + :depth => "deptho", + :salinity => "so", + :sea_ice_concentration => "siconc", + :sea_ice_thickness => "sithick", + :u_velocity=> "uo", + :v_velocity=> "vo", + :sea_ice_u_velocity => "usi", + :sea_ice_v_velocity => "vsi", + :free_surface => "zos", +) available_variables(::GLORYSBGCDaily) = Dict( :total_chlorophyll => "chl", :primary_production => "nppv", From 1ccacf4d2a73713c6cab244faf7abfc9d112b648 Mon Sep 17 00:00:00 2001 From: Gregory Wagner Date: Wed, 10 Sep 2025 22:24:01 -1000 Subject: [PATCH 8/9] new abstract types and cleanup --- src/DataWrangling/Copernicus/Copernicus.jl | 99 ++++++++-------------- 1 file changed, 37 insertions(+), 62 deletions(-) diff --git a/src/DataWrangling/Copernicus/Copernicus.jl b/src/DataWrangling/Copernicus/Copernicus.jl index 1dbfb539d..cb9cbe810 100644 --- a/src/DataWrangling/Copernicus/Copernicus.jl +++ b/src/DataWrangling/Copernicus/Copernicus.jl @@ -33,15 +33,17 @@ end # Datasets abstract type CopernicusDataset end +abstract type GLORYSDataset <: CopernicusDataset default_download_directory(::CopernicusDataset) = download_Copernicus_cache +struct GLORYSDaily <: GLORYSDataset end +struct GLORYSMonthly <: GLORYSDataset end +struct GLORYSBGCDaily <: GLORYSDataset end +struct GLORYSBGCMonthly <: GLORYSDataset end + # This contains "static" variables -- eg the grid -struct GLORYSStatic <: CopernicusDataset end -struct GLORYSDaily <: CopernicusDataset end -struct GLORYSMonthly <: CopernicusDataset end -struct GLORYSBGCDaily <: CopernicusDataset end -struct GLORYSBGCMonthly <: CopernicusDataset end +struct GLORYSStatic <: GLORYSDataset end dataset_name(::GLORYSStatic) = "GLORYSStatic" dataset_name(::GLORYSDaily) = "GLORYSDaily" @@ -50,9 +52,9 @@ dataset_name(::GLORYSBGCDaily) = "GLORYSBGCDaily" dataset_name(::GLORYSBGCMonthly) = "GLORYSBGCMonthly" all_dates(::GLORYSStatic, var) = [nothing] -all_dates(::GLORYSDaily, var) = range(DateTime("1993-01-01"), stop=DateTime("2021-06-30"), step=Day(1)) -all_dates(::GLORYSMonthly, var) = range(DateTime("1993-01-01"), stop=DateTime("2024-12-01"), step=Month(1)) -all_dates(::GLORYSBGCDaily, var) = range(DateTime("1993-01-01"), stop=DateTime("2022-12-30"), step=Day(1)) +all_dates(::GLORYSDaily, var) = range(DateTime("1993-01-01"), stop=DateTime("2021-06-30"), step=Day(1)) +all_dates(::GLORYSMonthly, var) = range(DateTime("1993-01-01"), stop=DateTime("2024-12-01"), step=Month(1)) +all_dates(::GLORYSBGCDaily, var) = range(DateTime("1993-01-01"), stop=DateTime("2022-12-30"), step=Day(1)) all_dates(::GLORYSBGCMonthly, var) = range(DateTime("1993-01-01"), stop=DateTime("2022-11-30"), step=Month(1)) copernicusmarine_dataset_id(::GLORYSStatic) = "cmems_mod_glo_phy_my_0.083deg_static" @@ -60,7 +62,6 @@ copernicusmarine_dataset_id(::GLORYSDaily) = "cmems_mod_glo_phy_my_0.083deg_P1D- copernicusmarine_dataset_id(::GLORYSMonthly) = "cmems_mod_glo_phy_my_0.083deg_P1M-m" copernicusmarine_dataset_id(::GLORYSBGCDaily) = "cmems_mod_glo_bgc_my_0.25deg_P1D-m" copernicusmarine_dataset_id(::GLORYSBGCMonthly) = "cmems_mod_glo_bgc_my_0.25deg_P1M-m" -# :static => "cmems_mod_glo_phy_my_0.083deg_static", struct CMEMSHourlyAnalysis <: CopernicusDataset end copernicusmarine_dataset_id(::CMEMSHourlyAnalysis) = "cmems_mod_glo_phy_anfc_0.083deg_PT1H-m" @@ -73,63 +74,37 @@ Base.size(::GLORYSDaily) = (4320, 2040, 50, 1) Base.size(::GLORYSMonthly) = (4320, 2040, 50, 1) Base.size(::GLORYSBGCDaily) = (1440, 680, 75, 1) Base.size(::GLORYSBGCMonthly) = (1440, 680, 75, 1) + reversed_vertical_axis(::CopernicusDataset) = true -available_variables(::GLORYSStatic) = Dict( - :temperature => "thetao", - :depth => "deptho", - :salinity => "so", - :sea_ice_concentration => "siconc", - :sea_ice_thickness => "sithick", - :u_velocity=> "uo", - :v_velocity=> "vo", - :sea_ice_u_velocity => "usi", - :sea_ice_v_velocity => "vsi", - :free_surface => "zos", -) -available_variables(::GLORYSDaily) = Dict( - :temperature => "thetao", - :depth => "deptho", - :salinity => "so", - :sea_ice_concentration => "siconc", - :sea_ice_thickness => "sithick", - :u_velocity=> "uo", - :v_velocity=> "vo", - :sea_ice_u_velocity => "usi", - :sea_ice_v_velocity => "vsi", - :free_surface => "zos", -) -available_variables(::GLORYSMonthly) = Dict( - :temperature => "thetao", - :depth => "deptho", - :salinity => "so", - :sea_ice_concentration => "siconc", - :sea_ice_thickness => "sithick", - :u_velocity=> "uo", - :v_velocity=> "vo", - :sea_ice_u_velocity => "usi", - :sea_ice_v_velocity => "vsi", - :free_surface => "zos", +available_variables(::GLORYSDataset) = ( + :temperature, + :depth, + :salinity, + :sea_ice_concentration, + :sea_ice_thickness, + :u_velocity, + :v_velocity, + :sea_ice_u_velocity, + :sea_ice_v_velocity, + :free_surface, ) -available_variables(::GLORYSBGCDaily) = Dict( - :total_chlorophyll => "chl", - :primary_production => "nppv", - :nitrate => "no3", - :phosphate => "po4", - :dissolved_silicate => "si", - :dissolved_oxygen => "o2", + +available_variables(::GLORYSBGCDaily) = ( + :total_chlorophyll, + :primary_production, + :nitrate, + :phosphate, + :dissolved_silicate, + :dissolved_oxygen, ) -available_variables(::GLORYSBGCMonthly) = Dict( - :total_chlorophyll => "chl", - :primary_production => "nppv", - :nitrate => "no3", - :phosphate => "po4", - :dissolved_silicate => "si", - :dissolved_oxygen => "o2", - :dissolved_iron => "fe", - :ph => "ph", - :surface_co2 => "spCO2", - :total_phytoplankton => "phyc", + +available_variables(::GLORYSBGCMonthly) = tuple( + available_variables(GLORYSBGCDaily())..., + :dissolved_iron, + :ph, + :surface_co2, + :total_phytoplankton, ) copernicus_dataset_variable_names = Dict( From 44c69f36b6afe5e1cd38ce5ec393269237549b69 Mon Sep 17 00:00:00 2001 From: Gregory Wagner Date: Wed, 10 Sep 2025 22:30:11 -1000 Subject: [PATCH 9/9] bugfix --- src/DataWrangling/Copernicus/Copernicus.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DataWrangling/Copernicus/Copernicus.jl b/src/DataWrangling/Copernicus/Copernicus.jl index cb9cbe810..bf88e482c 100644 --- a/src/DataWrangling/Copernicus/Copernicus.jl +++ b/src/DataWrangling/Copernicus/Copernicus.jl @@ -33,7 +33,7 @@ end # Datasets abstract type CopernicusDataset end -abstract type GLORYSDataset <: CopernicusDataset +abstract type GLORYSDataset <: CopernicusDataset end default_download_directory(::CopernicusDataset) = download_Copernicus_cache