cf-convention / vocabularies

Issues and source files for CF controlled vocabularies
3 stars 1 forks source link

Standard names: Proposed new spectral wave data additions from NOAA/NWS/NDBC #177

Closed dpetraitis-noaa closed 6 months ago

dpetraitis-noaa commented 1 year ago

Proposed by: Dawn Petraitis, NOAA/NWS/NDBC, dawn.petraitis@noaa.gov

Date: 09/13/2023

NDBC would like to proposed the following new terms for addition to the CF standard names. We have made changes to the structure of our NetCDF files that required us to add some terminology that is not currently listed in the CF dictionary. Below is the list of terms, descriptions, and units (if applicable) for each new standard name we are proposing. Please let me know if you have any questions.

Term - sea_surface_wave_spectral_mean_direction Description - The wave direction in each frequency band, calculated from the first-order components of the wave directional spectrum. Units - degrees

Term - sea_surface_wave_spectral_mean_direction_primary_sensor_primary_telemetry Description - The wave direction in each frequency band, calculated from the first-order components of the wave directional spectrum. Primary sensor refers to the data measured by the primary sensor when more than one sensor is installed on the station. Primary telemetry refers to the primary transmitter on board the station when more than one transmitter is installed. Units - degrees

Term - sea_surface_wave_spectral_mean_direction_primary_sensor_secondary_telemetry Description - The wave direction in each frequency band, calculated from the first-order components of the wave directional spectrum. Primary sensor refers to the data measured by the primary sensor when more than one sensor is installed on the station. Secondary telemetry refers to the secondary transmitter on board the station when more than one transmitter is installed. Units - degrees

Term - sea_surface_wave_spectral_principal_direction Description - The wave direction in each frequency band, calculated from the second-order components of the wave directional spectrum. Since there is an ambiguity of 180 degrees in the calculation of Alpha2 (i.e. 90 degrees and 270 degrees result in equivalent spectra), the value closer to Alpha1 is selected. Units - degrees

Term - sea_surface_wave_spectral_principal_direction_primary_sensor_primary_telemetry Description - The wave direction in each frequency band, calculated from the second-order components of the wave directional spectrum. Since there is an ambiguity of 180 degrees in the calculation of Alpha2 (i.e. 90 degrees and 270 degrees result in equivalent spectra), the value closer to Alpha1 is selected. Primary sensor refers to the data measured by the primary sensor when more than one sensor is installed on the station. Primary telemetry refers to the primary transmitter on board the station when more than one transmitter is installed. Units - degrees

Term - sea_surface_wave_spectral_principal_direction_primary_sensor_secondary_telemetry Description - The wave direction in each frequency band, calculated from the second-order components of the wave directional spectrum. Since there is an ambiguity of 180 degrees in the calculation of Alpha2 (i.e. 90 degrees and 270 degrees result in equivalent spectra), the value closer to Alpha1 is selected. Primary sensor refers to the data measured by the primary sensor when more than one sensor is installed on the station. Secondary telemetry refers to the secondary transmitter on board the station when more than one transmitter is installed. Units - degrees

github-actions[bot] commented 1 year ago

Thank you for your proposal. These terms will be added to the cfeditor (http://cfeditor.ceda.ac.uk/proposals/1) shortly. Your proposal will then be reviewed and commented on by the community and Standard Names moderator.

taylor13 commented 1 year ago

I'm not sure about this at all, but would it be possible to not mention the fact that the direction depends on wavelength in the standard_name and just include a wavelength coordinate, which will indicate it depends on wavelength? Then "sea_surface_wave_direction", for example, could be used whether or not it was spectrally resolved. This would be somewhat analogous to "upwelling_shortwave_flux_in_air", which may or may not be spectrally resolved.

JonathanGregory commented 1 year ago

Dear Dawn @dpetraitis-noaa

Thanks for your proposal. I second Karl's question. You've included spectral to indicate the dependence on wavelength or frequency. In other standard names the word spectral indicates a quantity which is per unit wavelength or per unit frequency, but yours aren't - is that correct? If they were, the unit would be m Hz-1 = m s. As Karl says, the dependence on frequency or wavelength can be indicated by including a coordinate e.g. of wave_frequency. It doesn't need to be acknowledged in the standard name. There are existing standard names sea_surface_wave_from_direction and sea_surface_wave_to_direction which could be used a basis. The from and to have been included to resolve the ambiguity e.g. between easterly and eastward.

Including the word mean in the name raises the question of whether this could be described by cell_methods instead. However, in other standard names for sea surface waves we have included mean, even though it's a statistical computation from a distribution, because these quantities are so commonly used it's regarded as part of the definition. That's probably the case with your proposal too. In that case you would need sea_surface_wave_mean_from_direction or sea_surface_wave_mean_to_direction, or both.

If I understand correctly, "principal wave direction" is also a statistical computation from the directional distribution. Since this distinction mean/principal isn't self-explanatory, it would be really helpful if you could include in your descriptions a precise definition of how "mean" and "principal" are calculated, for instance following the model of the description of sea_surface_wave_mean_period_from_variance_spectral_density_first_frequency_moment and similar standard names. That quantity is described thus:

The wave directional spectrum can be written as a five dimensional function S(t,x,y,f,theta) where t is time, x and y are horizontal coordinates (such as longitude and latitude), f is frequency and theta is direction. S has the standard name sea_surface_wave_directional_variance_spectral_density. S can be integrated over direction to give S1= integral(S dtheta) and this quantity has the standard name sea_surface_wave_variance_spectral_density. Frequency moments, M(n) of S1 can then be calculated as follows: M(n) = integral(S1 f^n df), where f^n is f to the power of n. The first wave period, T(m1) is calculated as the ratio M(0)/M(1).

The final aspect of your proposal is the suffixes primary_sensor_primary|secondary_telemetry. I'm inclined to think that these distinctions aren't about geophysical quantities, but about methods of measurement. Quantities measured with different sensors, or transmitted by different telemetry, are still physically comparable, I assume, so they should have the same standard name. Therefore I'm not convinced that these qualifiers ought to be included in the standard name. Would it be acceptable to record them in a different, non-standardised, netCDF attribute, such as long_name or source?

Best wishes

Jonathan

dpetraitis-noaa commented 1 year ago

Appreciate the comments and questions. Unfortunately this has taken me longer to get back to than I had planned/expected. Since I'm not the wave expert at NDBC, I'll pass these questions along to our waves expert and hopefully come back with some answers/clarifications soon.

Jonathan, great point about using long_name or source to distinguish the different telemetry. I think that's a reasonable solution to that issue. We were trying to make it easy and clear to the end user which telemetry source the data came from by using a variation of a standard name. My only concern is because of how we have organized our NetCDF files with each variable/standard name being at the top level. I can see some confusion if we have two variables with the same standard name. We're open to options on how to handle this issue.

efisher008 commented 1 year ago

Hello @dpetraitis-noaa (and @taylor13, @JonathanGregory), thank you for your post and the discussion around the new names. I have added the (original) proposed names to the CF editor and therefore removed the label. If there are future changes to these I will update the editor accordingly. Looking forward to more discussion on this!

Best wishes, Ellie

dpetraitis-noaa commented 1 year ago

Hi everyone. We did some research in our current NetCDF files and discovered that we have several variables for which the standard name is not the same as the variable name. For example, both wind_speed_primary_sensor and wind_speed_secondary_sensor have a standard name of wind_speed. Based on that, we should be able to remove the "primary_sensor" and "primary_telemetry" parts from the proposed standard names with no issues.

Here's some more information regarding the concerns raised about our proposed wave standard names.

Regarding the use of the word spectral: We need to distinguish the spectral wave directions (ALPHA1 & ALPHA2) from the bulk parameter (MWDIR). We are currently using sea_surface_wave_from_direction_at_variance_spectral_density_maximum for MWDIR. We could conceivably use sea_surface_wave_mean_from_direction for ALPHA1, with the frequency coordinate used to indicate frequency dependence, but then we would still need a new standard name for ALPHA2, possibly "sea_surface_wave_principal_from_direction".

Regarding how "mean" and "principal" wave directions are calculated: The full directional wave spectrum is described as a Fourier series: S = a0/2 + a1cos(theta) + b1sin(theta) + a2cos(2theta) + b2sin(2theta). The Fourier coefficients a1, b1, a2, & b2 can be converted to polar coordinates as follows: R1 = (SQRT(a1a1+b1b1))/a0 R2 = (SQRT(a2a2+b2b2))/a0 ALPHA1 = 270.0-ARCTAN(b1,a1) ALPHA2 = 270.0-(0.5*ARCTAN(b2,a2)+{0 or 180, whichever minimizes the difference between ALPHA1 and ALPHA2}) ALPHA1 is the mean wave direction, which is determined from the first-order Fourier coefficients. ALPHA2 is the principal wave direction, which is determined from the second-order Fourier coefficients.

We're open to any thoughts on how to proceed based on the above information.

efisher008 commented 1 year ago

Hi @dpetraitis-noaa,

Just to make you aware, I have now removed the "primary sensor" and "primary telemetry" parts of the proposed names in the CF editor. I will wait for others with greater knowledge of spectral wave data to weigh in on the other information in your comment. Thanks again.

Best regards, Ellie

JonathanGregory commented 11 months ago

Dear Dawn @dpetraitis-noaa

I am certainly not someone "with greater knowledge of spectral wave data", in Ellie's @efisher008 phrase, but thanks to your explanation I agree that sea_surface_wave_mean_from_direction and sea_surface_wave_principal_from_direction would make sense. I think the way to proceed would be if you could restate your proposal below, as modified in view of this discussion, and including an explanation of "mean" and "principal" directions in the definitions of the relevant terms, such that someone not familiar with the area would get the idea.

Best wishes and thanks

Jonathan

efisher008 commented 10 months ago

Dear @dpetraitis-noaa,

I have summarised the changes and written a new version of the proposal below based on the discussion.

  1. For wave mean direction names: Change structure of name to sea_surface_wave_mean_from_direction.

  2. For wave principal direction names: Change structure of name to sea_surface_wave_principal_from_direction.

  3. For wave mean direction names: Add the following text. "The full directional wave spectrum is described as a Fourier series: S = a0/2 + a1cos(theta) + b1sin(theta) + a2cos(2theta) + b2sin(2theta). The Fourier coefficients a1, b1, a2, & b2 can be converted to polar coordinates as follows: R1 = (SQRT(a1a1+b1b1))/a0, R2 = (SQRT(a2a2+b2b2))/a0, ALPHA1 = 270.0-ARCTAN(b1,a1), ALPHA2 = 270.0-(0.5*ARCTAN(b2,a2)+{0 or 180, whichever minimizes the difference between ALPHA1 and ALPHA2}). ALPHA1 is the mean wave direction, which is determined from the first-order Fourier coefficients."

  4. For wave principal direction names: Add the following text. "The full directional wave spectrum is described as a Fourier series: S = a0/2 + a1cos(theta) + b1sin(theta) + a2cos(2theta) + b2sin(2theta). The Fourier coefficients a1, b1, a2, & b2 can be converted to polar coordinates as follows: R1 = (SQRT(a1a1+b1b1))/a0, R2 = (SQRT(a2a2+b2b2))/a0, ALPHA1 = 270.0-ARCTAN(b1,a1), ALPHA2 = 270.0-(0.5*ARCTAN(b2,a2)+{0 or 180, whichever minimizes the difference between ALPHA1 and ALPHA2}). ALPHA2 is the principal wave direction, which is determined from the second-order Fourier coefficients."

  5. For all names: I would suggest adding a line to distinguish the spectral wave directions from the bulk parameter MWDIR, like so: _"This spectral parameter is a separate quantity from the bulk parameter (MWDIR), which has the standard name sea_surface_wave_from_direction_at_variance_spectral_densitymaximum." The concern I have with this would be if there are future changes made to this standard name for the bulk parameter, which would not then be reflected in these descriptions. @japamment @feggleton would you be able to advise on whether it is sensible to include a standard name in definition text?

NEW PROPOSAL

Based on the removal of the 'sensor' and 'telemetry' parts of the names (as we agreed these would be best expressed with the non-standardised NetCDF attributes long_name or source), the six original names have been condensed down to two (originally described as sea_surface_wave_spectral_mean_direction and sea_surface_wave_spectral_principal_direction respectively).

Term - sea_surface_wave_mean_from_direction Link - https://cfeditor.ceda.ac.uk/proposal/5084/edit Description - The wave direction in each frequency band, calculated from the first-order components of the wave directional spectrum. The full directional wave spectrum is described as a Fourier series: S = a0/2 + a1cos(theta) + b1sin(theta) + a2cos(2theta) + b2sin(2theta). The Fourier coefficients a1, b1, a2, & b2 can be converted to polar coordinates as follows: R1 = (SQRT(a1a1+b1b1))/a0, R2 = (SQRT(a2a2+b2b2))/a0, ALPHA1 = 270.0-ARCTAN(b1,a1), ALPHA2 = 270.0-(0.5*ARCTAN(b2,a2)+{0 or 180, whichever minimizes the difference between ALPHA1 and ALPHA2}). ALPHA1 is the mean wave direction, which is determined from the first-order Fourier coefficients. Units - degrees

Term - sea_surface_wave_principal_from_direction Link - https://cfeditor.ceda.ac.uk/proposal/5086/edit Description - The wave direction in each frequency band, calculated from the second-order components of the wave directional spectrum. Since there is an ambiguity of 180 degrees in the calculation of Alpha2 (i.e. 90 degrees and 270 degrees result in equivalent spectra), the value closer to Alpha1 is selected. The full directional wave spectrum is described as a Fourier series: S = a0/2 + a1cos(theta) + b1sin(theta) + a2cos(2theta) + b2sin(2theta). The Fourier coefficients a1, b1, a2, & b2 can be converted to polar coordinates as follows: R1 = (SQRT(a1a1+b1b1))/a0, R2 = (SQRT(a2a2+b2b2))/a0, ALPHA1 = 270.0-ARCTAN(b1,a1), ALPHA2 = 270.0-(0.5*ARCTAN(b2,a2)+{0 or 180, whichever minimizes the difference between ALPHA1 and ALPHA2}). ALPHA2 is the principal wave direction, which is determined from the second-order Fourier coefficients. Units - degrees

Do you agree with the content of the proposal, and is there anything you'd like to change/add to it?

Best regards (and a happy new year!), Ellie

efisher008 commented 10 months ago

Dear @dpetraitis-noaa,

Just a quick follow-up that the bulk parameter standard name (sea_surface_wave_from_direction_at_variance_spectral_density_maximum) has a phrase associated with from_direction: _The phrase "from_direction" is used in the construction X_fromdirection and indicates the direction from which the velocity vector of X is coming. The direction is a bearing in the usual geographical sense, measured positive clockwise from due north. I think this would be useful to add to the names proposed in this issue.

Thanks again and best regards, Ellie

efisher008 commented 9 months ago

Dear Dawn @dpetraitis-noaa,

Have you had any more thoughts on the new proposal I suggested on Jan 4th? Linked below.

NEW PROPOSAL

Based on the removal of the 'sensor' and 'telemetry' parts of the names (as we agreed these would be best expressed with the non-standardised NetCDF attributes long_name or source), the six original names have been condensed down to two (originally described as sea_surface_wave_spectral_mean_direction and sea_surface_wave_spectral_principal_direction respectively).

Term - sea_surface_wave_mean_from_direction Link - https://cfeditor.ceda.ac.uk/proposal/5084/edit Description - The wave direction in each frequency band, calculated from the first-order components of the wave directional spectrum. The full directional wave spectrum is described as a Fourier series: S = a0/2 + a1cos(theta) + b1sin(theta) + a2cos(2theta) + b2sin(2theta). The Fourier coefficients a1, b1, a2, & b2 can be converted to polar coordinates as follows: R1 = (SQRT(a1a1+b1b1))/a0, R2 = (SQRT(a2a2+b2b2))/a0, ALPHA1 = 270.0-ARCTAN(b1,a1), ALPHA2 = 270.0-(0.5*ARCTAN(b2,a2)+{0 or 180, whichever minimizes the difference between ALPHA1 and ALPHA2}). ALPHA1 is the mean wave direction, which is determined from the first-order Fourier coefficients. Units - degrees

Term - sea_surface_wave_principal_from_direction Link - https://cfeditor.ceda.ac.uk/proposal/5086/edit Description - The wave direction in each frequency band, calculated from the second-order components of the wave directional spectrum. Since there is an ambiguity of 180 degrees in the calculation of Alpha2 (i.e. 90 degrees and 270 degrees result in equivalent spectra), the value closer to Alpha1 is selected. The full directional wave spectrum is described as a Fourier series: S = a0/2 + a1cos(theta) + b1sin(theta) + a2cos(2theta) + b2sin(2theta). The Fourier coefficients a1, b1, a2, & b2 can be converted to polar coordinates as follows: R1 = (SQRT(a1a1+b1b1))/a0, R2 = (SQRT(a2a2+b2b2))/a0, ALPHA1 = 270.0-ARCTAN(b1,a1), ALPHA2 = 270.0-(0.5*ARCTAN(b2,a2)+{0 or 180, whichever minimizes the difference between ALPHA1 and ALPHA2}). ALPHA2 is the principal wave direction, which is determined from the second-order Fourier coefficients. Units - degrees

Best wishes, Ellie

dpetraitis-noaa commented 9 months ago

Hi Ellie @efisher008, Apologies for not getting back to you sooner. Somehow this fell off my radar so I appreciate the reminder!

As for your suggestion, I agree that we can add that phrase for both names to the proposal. That would clear up any possible ambiguity.

Thanks, Dawn

efisher008 commented 9 months ago

Hi Dawn,

Thanks for the feedback, I've made the changes to both names sea_surface_wave_mean_from_direction and sea_surface_wave_principal_from_direction. If there are no further comments within 7 days on this issue, I will mark those as accepted and they will go into the next standard names table release. Please let me know if you see an issue!

Best wishes, Ellie

dpetraitis-noaa commented 9 months ago

Hi Ellie, Sounds great! After the 7 day period (if there are no additional comments), can you let me know when the next standard names table release will be?

Thanks, Dawn

efisher008 commented 8 months ago

Hi Dawn,

The 7 day period has now passed and the names have been accepted. The next standard names table will be v85, and at the moment based on recent timeframes (3 months between releases), this release is anticipated to happen in late March-early April 2024. Thanks again for your proposal!

Best wishes, Ellie

EDIT: The next standard names table release has been postponed to mid-May for technical implementation reasons.

efisher008 commented 6 months ago

Closing this issue as these names have been accepted in version 85 of the CF standard names table, published on 21 May 2024 (https://cfconventions.org/Data/cf-standard-names/85/build/cf-standard-name-table.html).