From 0e97074d0e36187e1c8f9cdc75c1f1eecbee25bb Mon Sep 17 00:00:00 2001 From: Alexis Renchon Date: Mon, 5 Aug 2024 14:42:01 -0700 Subject: [PATCH] update canopy diagnostics metadata --- src/diagnostics/define_diagnostics.jl | 100 +++++++++++++------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/src/diagnostics/define_diagnostics.jl b/src/diagnostics/define_diagnostics.jl index 218d7e374a..3ed936f258 100644 --- a/src/diagnostics/define_diagnostics.jl +++ b/src/diagnostics/define_diagnostics.jl @@ -199,7 +199,7 @@ function define_diagnostics!(land_model) short_name = "infil", long_name = "Infiltration", standard_name = "infiltration", - units = "m s^-1", # double check + units = "m s^-1", comments = "The flux of liquid water into the soil.", compute! = (out, Y, p, t) -> compute_infiltration!(out, Y, p, t, land_model), @@ -210,7 +210,7 @@ function define_diagnostics!(land_model) short_name = "scd", long_name = "Soil CO2 Diffusivity", standard_name = "soil_co2_diffusivity", - units = "", # need to add + units = "m^2 s^-1", comments = "The diffusivity of CO2 in the porous phase of the soil. Depends on soil texture, moisture, and temperature.", compute! = (out, Y, p, t) -> compute_soilco2_diffusivity!(out, Y, p, t, land_model), @@ -221,7 +221,7 @@ function define_diagnostics!(land_model) short_name = "scms", long_name = "Soil CO2 Microbial Source", standard_name = "soil_co2_microbial_source", - units = "", # check + units = "kg CO2 m^-2 s^-1", comments = "The production of CO2 by microbes in the soil. Vary by layers of soil depth.", compute! = (out, Y, p, t) -> compute_soilco2_source_microbe!(out, Y, p, t, land_model), @@ -243,8 +243,8 @@ function define_diagnostics!(land_model) short_name = "mt", long_name = "Medlyn Term", standard_name = "medlyn_term", - units = "", # check - comments = "", + units = "", + comments = "This term is involved in the Medlyn stomatal conductance model and is equal to 1+g1/sqrt(VPD) and is unitless.", compute! = (out, Y, p, t) -> compute_medlyn_term!(out, Y, p, t, land_model), ) @@ -254,7 +254,7 @@ function define_diagnostics!(land_model) short_name = "trans", long_name = "Canopy Transpiration", standard_name = "canopy_transpiration", - units = "", # check + units = "m s^-1", comments = "The water evaporated from the canopy due to leaf transpiration.", compute! = (out, Y, p, t) -> compute_canopy_transpiration!(out, Y, p, t, land_model), @@ -265,7 +265,7 @@ function define_diagnostics!(land_model) short_name = "rain", long_name = "Rainfall", standard_name = "rainfall", - units = "m", + units = "m s^-1", # do we express rainfall as a flux? Check then delete this comment comments = "Precipitation of liquid water.", compute! = (out, Y, p, t) -> compute_rainfall!(out, Y, p, t, land_model), @@ -276,8 +276,8 @@ function define_diagnostics!(land_model) short_name = "an", long_name = "Leaf Net Photosynthesis", standard_name = "leaf_net_photosynthesis", - units = "", # check - comments = "Net photosynthesis of a leaf.", + units = "mol CO2 m^-2 s^-1", # soil CO2 microbial source was in kg co2. we should make a choice and be constant throughout + comments = "Net photosynthesis (carbon assimilation) of a leaf, computed for example by the Farquhar model.", compute! = (out, Y, p, t) -> compute_photosynthesis_net_leaf!(out, Y, p, t, land_model), ) @@ -287,8 +287,8 @@ function define_diagnostics!(land_model) short_name = "gpp", long_name = "Gross Primary Productivity", standard_name = "gross_primary_productivity", - units = "", - comments = "Net photosynthesis of the canopy.", + units = "mol CO2 m^-2 s^-1", + comments = "Net photosynthesis (carbon assimilation) of the canopy. This is equivalent to leaf net assimilation scaled to the canopy level.", compute! = (out, Y, p, t) -> compute_photosynthesis_net_canopy!(out, Y, p, t, land_model), ) @@ -298,7 +298,7 @@ function define_diagnostics!(land_model) short_name = "rd", long_name = "Leaf Respiration", standard_name = "leaf_dark_respiration", - units = "", + units = "mol CO2 m^-2 s^-1", comments = "Leaf respiration, called dark respiration because usually measured in the abscence of radiation.", compute! = (out, Y, p, t) -> compute_respiration_leaf!(out, Y, p, t, land_model), @@ -309,7 +309,7 @@ function define_diagnostics!(land_model) short_name = "vcmax25", long_name = "Vcmax25", standard_name = "vcmax25", - units = "", + units = "mol CO2 m^-2 s^-1", comments = "The parameter vcmax at 25 degree celsius. Important for the Farquhar model of leaf photosynthesis.", compute! = (out, Y, p, t) -> compute_vcmax25!(out, Y, p, t, land_model), ) @@ -319,7 +319,7 @@ function define_diagnostics!(land_model) short_name = "par", long_name = "Photosynthetically Active Radiation", standard_name = "photosynthetically_active_radiation", - units = "", + units = "W m^-2", comments = "The subset of total radiation that activates photosynthesis reaching the canopy.", compute! = (out, Y, p, t) -> compute_photosynthetically_active_radiation!( @@ -336,7 +336,7 @@ function define_diagnostics!(land_model) short_name = "apar", long_name = "Absorbed Photosynthetically Active Radiation", standard_name = "absorbed_photosynthetically_active_radiation", - units = "", + units = "W m^-2", comments = "The amount of photosynthetically active radiation absorbed by the leaf. The rest if reflected or transmitted.", compute! = (out, Y, p, t) -> compute_photosynthetically_active_radiation_absorbed!( @@ -353,7 +353,7 @@ function define_diagnostics!(land_model) short_name = "rpar", long_name = "Reflected Photosynthetically Active Radiation", standard_name = "reflected_photosynthetically_active_radiation", - units = "", + units = "W m^-2", comments = "The amount of photosynthetically active radiation reflected by leaves.", compute! = (out, Y, p, t) -> compute_photosynthetically_active_radiation_reflected!( @@ -370,7 +370,7 @@ function define_diagnostics!(land_model) short_name = "tpar", long_name = "Transmitted Photosynthetically Active Radiation", standard_name = "transmitted_photosynthetically_active_radiation", - units = "", + units = "W m^-2", comments = "The amount of photosynthetically active radiation transmitted by leaves.", compute! = (out, Y, p, t) -> compute_photosynthetically_active_radiation_transmitted!( @@ -399,7 +399,7 @@ function define_diagnostics!(land_model) long_name = "Absorbed Near Infrared Radiation", standard_name = "absorbed_near_infrared_radiation", units = "W m^-2", - comments = "The amount of near infrared radiation reaching the canopy.", + comments = "The amount of near infrared radiation absorbed by the canopy.", compute! = (out, Y, p, t) -> compute_near_infrared_radiation_absorbed!(out, Y, p, t, land_model), ) @@ -410,7 +410,7 @@ function define_diagnostics!(land_model) long_name = "Reflected Near Infrared Radiation", standard_name = "reflected_near_infrared_radiation", units = "W m^-2", - comments = "The amount of near infrared radiation reaching the canopy.", + comments = "The amount of near infrared radiation reflected by the canopy.", compute! = (out, Y, p, t) -> compute_near_infrared_radiation_reflected!( out, @@ -427,7 +427,7 @@ function define_diagnostics!(land_model) long_name = "Transmitted Near Infrared Radiation", standard_name = "transmitted_near_infrared_radiation", units = "W m^-2", - comments = "The amount of near infrared radiation reaching the canopy.", + comments = "The amount of near infrared radiation transmitted by the canopy.", compute! = (out, Y, p, t) -> compute_near_infrared_radiation_transmitted!( out, @@ -444,7 +444,7 @@ function define_diagnostics!(land_model) long_name = "Net Shortwave Radiation", standard_name = "net_shortwave_radiation", units = "W m^-2", - comments = "The net (in minus out) radiation at the surface.", + comments = "The net (in minus out) shortwave radiation at the surface.", compute! = (out, Y, p, t) -> compute_radiation_shortwave_net!(out, Y, p, t, land_model), ) @@ -455,7 +455,7 @@ function define_diagnostics!(land_model) long_name = "Net Longwave Radiation", standard_name = "net_longwave_radiation", units = "W m^-2", - comments = "The net (in minus out) radiation at the surface.", + comments = "The net (in minus out) longwave radiation at the surface.", compute! = (out, Y, p, t) -> compute_radiation_longwave_net!(out, Y, p, t, land_model), ) @@ -465,8 +465,8 @@ function define_diagnostics!(land_model) short_name = "ra", long_name = "Autotrophic Respiration", standard_name = "autotrophic_respiration", - units = "mol m^-2 s^-1", - comments = "Canopy autotrophic respiration, the sum of leaves, stems and roots respiration.", + units = "mol CO2 m^-2 s^-1", # note throughout: make sure what we express as kg or mol, CO2 or C + comments = "The canopy autotrophic respiration, the sum of leaves, stems and roots respiration.", compute! = (out, Y, p, t) -> compute_autotrophic_respiration!(out, Y, p, t, land_model), ) @@ -476,7 +476,7 @@ function define_diagnostics!(land_model) short_name = "soilco2", long_name = "Soil CO2 concentration", standard_name = "soil_co2", - units = "", + units = "kg CO2 m^-3", # As documented in Biogeochemistry.jl. Note, in other places, we use mol CO2. comments = "Concentration of CO2 in the air of soil pores.", compute! = (out, Y, p, t) -> compute_soilco2!(out, Y, p, t, land_model), ) @@ -487,7 +487,7 @@ function define_diagnostics!(land_model) long_name = "Soil Net Radiation", standard_name = "soil_net_radiation", units = "W m^-2", - comments = "Net radiation at the soil surface.", + comments = "Net radiation at the soil surface.", # Do we have distinct soil net radiation, canopy net radiation, surface net radiation? compute! = (out, Y, p, t) -> compute_soil_net_radiation!(out, Y, p, t, land_model), ) @@ -498,7 +498,7 @@ function define_diagnostics!(land_model) long_name = "Soil Latent Heat Flux", standard_name = "soil_Latent_Heat_Flux", units = "W m^-2", - comments = "Soil evaporation.", + comments = "Soil latent heat flux, the amount of liquid water evaporated by the soil, expressed in energy units (W m^-2).", compute! = (out, Y, p, t) -> compute_soil_latent_heat_flux!(out, Y, p, t, land_model), ) @@ -509,7 +509,7 @@ function define_diagnostics!(land_model) long_name = "Soil Sensible Heat Flux", standard_name = "soil_sensible_Heat_Flux", units = "W m^-2", - comments = "Soil sensible heat flux.", + comments = "Soil sensible heat flux, the amount of energy exchanged between the soil and atmosphere to change the temperature of the soil.", # is this good? compute! = (out, Y, p, t) -> compute_soil_sensible_heat_flux!(out, Y, p, t, land_model), ) @@ -519,8 +519,8 @@ function define_diagnostics!(land_model) short_name = "soilrae", long_name = "Soil Aerodynamic Resistance", standard_name = "soil_aerodynamic_resistance", - units = "", - comments = "Soil aerodynamic resistance.", + units = "s m^-1", # ??? not sure + comments = "The soil aerodynamic resistance. Aerodynamic resistance is a measure of how much the air near the Earth's surface resists the movement of water vapor and heat from the surface into the air.", # is this good? compute! = (out, Y, p, t) -> compute_soil_aerodynamic_resistance!(out, Y, p, t, land_model), ) @@ -530,8 +530,8 @@ function define_diagnostics!(land_model) short_name = "hr", long_name = "Heterotrophic Respiration", standard_name = "heterotrophic_respiration", - units = "mol m^-2 s^-1", - comments = "CO2 efflux at the soil surface due to microbial decomposition of soil organic matter.", + units = "mol m^-2 s^-1", # not sure if kg or mol + comments = "The CO2 efflux at the soil surface due to microbial decomposition of soil organic matter. This is not necessarily equal to CO2 production by microbes, as co2 diffusion through the soil pores takes time.", compute! = (out, Y, p, t) -> compute_heterotrophic_respiration!(out, Y, p, t, land_model), ) @@ -541,7 +541,7 @@ function define_diagnostics!(land_model) short_name = "shc", long_name = "Soil Hydraulic Conductivity", standard_name = "soil_hydraulic_conductivity", - units = "", + units = "m s^-1", comments = "Soil hydraulic conductivity.", compute! = (out, Y, p, t) -> compute_soil_hydraulic_conductivity!(out, Y, p, t, land_model), @@ -552,7 +552,7 @@ function define_diagnostics!(land_model) short_name = "stc", long_name = "Soil Thermal Conductivity", standard_name = "soil_thermal_conductivity", - units = "", + units = "W m^-1 K^-1", comments = "Soil thermal conductivity.", compute! = (out, Y, p, t) -> compute_soil_thermal_conductivity!(out, Y, p, t, land_model), @@ -563,7 +563,7 @@ function define_diagnostics!(land_model) short_name = "swp", long_name = "Soil Water Potential", standard_name = "soil_water_potential", - units = "", + units = "Pa", comments = "Soil water potential.", compute! = (out, Y, p, t) -> compute_soil_water_potential!(out, Y, p, t, land_model), @@ -586,7 +586,7 @@ function define_diagnostics!(land_model) long_name = "Moisture Stress Factor", standard_name = "moisture_stress_factor", units = "", - comments = "Sensitivity of plants conductance to soil water content.", + comments = "Sensitivity of plants conductance to soil water content. Unitless", compute! = (out, Y, p, t) -> compute_moisture_stress_factor!(out, Y, p, t, land_model), ) @@ -596,7 +596,7 @@ function define_diagnostics!(land_model) short_name = "cwp", long_name = "Canopy Water Potential", standard_name = "canopy_water_potential", - units = "", + units = "Pa", comments = "The water potential of the canopy.", compute! = (out, Y, p, t) -> compute_canopy_water_potential!(out, Y, p, t, land_model), @@ -607,7 +607,7 @@ function define_diagnostics!(land_model) short_name = "fa", long_name = "Cross Section", standard_name = "cross_section", - units = "", + units = "m^2 m^-2", comments = "The area of stem relative to ground area.", #?? compute! = (out, Y, p, t) -> compute_cross_section!(out, Y, p, t, land_model), @@ -618,7 +618,7 @@ function define_diagnostics!(land_model) short_name = "far", long_name = "Root Cross Section", standard_name = "Cross Section", - units = "", + units = "m^2 m^-2", comments = "The area of roots relative to ground area.", #?? compute! = (out, Y, p, t) -> compute_cross_section_roots!(out, Y, p, t, land_model), @@ -629,8 +629,8 @@ function define_diagnostics!(land_model) short_name = "ai", long_name = "Area Index", standard_name = "area_index", - units = "", - comments = "The area index of leaves.", + units = "m^2 m^-2", + comments = "The area index of leaves, expressed in surface area of leaves per surface area of ground.", compute! = (out, Y, p, t) -> compute_area_index!(out, Y, p, t, land_model), ) @@ -640,8 +640,8 @@ function define_diagnostics!(land_model) short_name = "clhf", long_name = "Canopy Latent Heat Flux", standard_name = "canopy_latent_heat_flux", - units = "", - comments = "Canopy evaporation.", #?? of steam, leaves, roots? + units = "W m^-2", + comments = "The energy used for canopy transpiration.", #?? of steam, leaves, roots? compute! = (out, Y, p, t) -> compute_canopy_latent_heat_flux!(out, Y, p, t, land_model), ) @@ -651,8 +651,8 @@ function define_diagnostics!(land_model) short_name = "cshf", long_name = "Canopy Sensible Heat Flux", standard_name = "canopy_sensible_heat_flux", - units = "", - comments = "Canopy sensible heat flux.", #?? of steam, leaves, roots? + units = "W m^-2", + comments = "The energy used for canopy temperature change.", #?? of steam, leaves, roots? compute! = (out, Y, p, t) -> compute_canopy_sensible_heat_flux!(out, Y, p, t, land_model), ) @@ -662,8 +662,8 @@ function define_diagnostics!(land_model) short_name = "crae", long_name = "Canopy Aerodynamic Resistance", standard_name = "canopy_aerodynamic_resistance", - units = "", - comments = "Canopy aerodynamic_resistance.", #?? of steam, leaves, roots? + units = "s m^-1", # ??? not sure + comments = "The canopy aerodynamic resistance. Aerodynamic resistance (r_a) is a measure of how much the air near the Earth's surface resists the movement of water vapor and heat from the surface into the air.", #?? of steam, leaves, roots? compute! = (out, Y, p, t) -> compute_canopy_aerodynamic_resistance!(out, Y, p, t, land_model), ) @@ -685,7 +685,7 @@ function define_diagnostics!(land_model) long_name = "Soil Ice", standard_name = "soil_ice", units = "m^3 m^-3", - comments = "soil ice.", + comments = "The volume of soil ice per volume of soil.", compute! = (out, Y, p, t) -> compute_soil_ice!(out, Y, p, t, land_model), ) @@ -695,8 +695,8 @@ function define_diagnostics!(land_model) short_name = "sif", long_name = "Solar Induced Fluorescence", standard_name = "solar_induced_fluorescence", - units = "", - comments = "", + units = "W m^-2", + comments = "The fluorescence of leaves induced by solar radiation. This quantity is correlated with photosynthesis activity.", compute! = (out, Y, p, t) -> compute_solar_induced_fluorescence!(out, Y, p, t, land_model), )