searvey icon indicating copy to clipboard operation
searvey copied to clipboard

NDBC Station detailed metadata

Open SorooshMani-NOAA opened this issue 1 year ago • 5 comments

It seems that it's possible to get more info about NDBC stations. Based on the user feedback, we might want to consider doing so. See: https://github.com/CDJellen/ndbc-api/blob/a4786307869d753e07c3413f1e1c0cf47f418ea2/ndbc_api/api/handlers/http/stations.py#L105

SorooshMani-NOAA avatar Sep 12 '24 21:09 SorooshMani-NOAA

I agree this would be useful

tomsail avatar Sep 13 '24 07:09 tomsail

This is the type of metadata that is returned:

> api.station(st_all.iloc[1].Station)
{'Watch circle radius': '3811 yards',
 'Water depth': '3784 m',
 'Sea temp depth': '1.5 m below water line',
 'Barometer elevation': '2.7 m above mean sea level',
 'Anemometer height': '4.1 m above site elevation',
 'Air temp height': '3.7 m above site elevation',
 'Site elevation': 'sea level',
 'Location': '31.759 N 74.936 W (31°45\'33" N 74°56\'10" W)',
 'Statation Type': 'Owned and maintained by National Data Buoy Center, 3-meter foam buoy, SCOOP payload',
 'Name': 'Station 41002 (LLNR 830) - SOUTH HATTERAS - 225 NM South of Cape Hatteras'}

How much of this is useful? Note that we currently get the following based on the original station dataframe:

> st_all.columns
Index(['Station', 'Hull No./Config and Location', 'Location Lat/Long',
       'Wind Speed', 'Wind Direction', 'Sea Level Pressure', 'Wave Height',
       'Dominant Period', 'Air Temp', 'Water Temp', 'Dew Point', 'Remark'],
      dtype='object')

SorooshMani-NOAA avatar Sep 13 '24 15:09 SorooshMani-NOAA

IMO Water depth would be the most important variable not present in the original DataFrame

tomsail avatar Sep 13 '24 15:09 tomsail

Other than that it'd be helpful to have information about which "mode"s are supported by each station. It seems that *available function for each station can give us this info. I'm trying to find a good way to include this as well

SorooshMani-NOAA avatar Sep 13 '24 18:09 SorooshMani-NOAA

Historical measurement availability is year dependent, it'll be hard to encode it cleanly in a all-station table along with the rest of metadata. The following is the return value of upstream ndbc_api package:

>  pprint( api.available_historical(st_all.Station.iloc[2]))
{'Continuous winds data': {'1998': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004c1998.txt.gz&dir=data/historical/cwind/',
                           '1999': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004c1999.txt.gz&dir=data/historical/cwind/',
                           '2000': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004c2000.txt.gz&dir=data/historical/cwind/',
                           '2001': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004c2001.txt.gz&dir=data/historical/cwind/',
                           '2002': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004c2002.txt.gz&dir=data/historical/cwind/',
                           '2003': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004c2003.txt.gz&dir=data/historical/cwind/',
                           '2004': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004c2004.txt.gz&dir=data/historical/cwind/',
                           '2005': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004c2005.txt.gz&dir=data/historical/cwind/',
                           '2006': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004c2006.txt.gz&dir=data/historical/cwind/',
                           '2007': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004c2007.txt.gz&dir=data/historical/cwind/',
                           '2008': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004c2008.txt.gz&dir=data/historical/cwind/',
                           '2009': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004c2009.txt.gz&dir=data/historical/cwind/',
                           '2010': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004c2010.txt.gz&dir=data/historical/cwind/',
                           '2011': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004c2011.txt.gz&dir=data/historical/cwind/',
                           '2012': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004c2012.txt.gz&dir=data/historical/cwind/',
                           '2014': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004c2014.txt.gz&dir=data/historical/cwind/',
                           '2015': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004c2015.txt.gz&dir=data/historical/cwind/',
                           '2016': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004c2016.txt.gz&dir=data/historical/cwind/',
                           '2017': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004c2017.txt.gz&dir=data/historical/cwind/'},
'Solar radiation data': {'2005': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004r2005.txt.gz&dir=data/historical/srad/',
                         '2006': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004r2006.txt.gz&dir=data/historical/srad/',
                         '2007': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004r2007.txt.gz&dir=data/historical/srad/',
                         '2008': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004r2008.txt.gz&dir=data/historical/srad/'},
  .
  .
  .
'Supplemental Measurements data': {'Apr 2024': 'https://www.ndbc.noaa.gov/download_data.php?filename=4100442024.txt.gz&dir=data/supl/Apr/',
                                   'Feb 2024': 'https://www.ndbc.noaa.gov/download_data.php?filename=4100422024.txt.gz&dir=data/supl/Feb/',
                                   'Jan 2024': 'https://www.ndbc.noaa.gov/download_data.php?filename=4100412024.txt.gz&dir=data/supl/Jan/',
                                   'Mar 2024': 'https://www.ndbc.noaa.gov/download_data.php?filename=4100432024.txt.gz&dir=data/supl/Mar/',
                                   'May 2024': 'https://www.ndbc.noaa.gov/download_data.php?filename=4100452024.txt.gz&dir=data/supl/May/'},
'Supplemental measurements data': {'2017': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004s2017.txt.gz&dir=data/historical/supl/',
                                   '2018': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004s2018.txt.gz&dir=data/historical/supl/',
                                   '2019': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004s2019.txt.gz&dir=data/historical/supl/',
                                   '2020': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004s2020.txt.gz&dir=data/historical/supl/',
                                   '2021': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004s2021.txt.gz&dir=data/historical/supl/',
                                   '2022': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004s2022.txt.gz&dir=data/historical/supl/',
                                   '2023': 'https://www.ndbc.noaa.gov/download_data.php?filename=41004s2023.txt.gz&dir=data/historical/supl/'}}

Maybe it still makes sense to note what "realtime data" is available in the station metadata table returned in searvey:

> api.available_realtime(st_all.Station.iloc[2])
{'Real time hourly standard meteorological': {'data directory': 'https://www.ndbc.noaa.gov/data/hourly2/',
  'description': 'https://www.ndbc.noaa.gov/faq/measdes.shtml#cwind'},
 'Real time standard meteorological data': {'Real time standard meteorological data': 'https://www.ndbc.noaa.gov/data/realtime2/41004.txt',
  'description': 'https://www.ndbc.noaa.gov/faq/measdes.shtml#stdmet'},
 'Real time spectral wave data': {'Real time spectral wave data': 'https://www.ndbc.noaa.gov/data/realtime2/41004.spec',
  'description': 'https://www.ndbc.noaa.gov/waveobs.shtml'},
 'Real time raw spectral wave data': {'Real time raw spectral wave data': 'https://www.ndbc.noaa.gov/data/realtime2/41004.data_spec',
  'description': 'https://www.ndbc.noaa.gov/data_spec.shtml'},
 'Real time raw spectral wave (alpha1) data': {'Real time raw spectral wave (alpha1) data': 'https://www.ndbc.noaa.gov/data/realtime2/41004.swdir',
  'description': 'https://www.ndbc.noaa.gov/data_spec.shtml'},
 'Real time raw spectral wave (alpha2) data': {'Real time raw spectral wave (alpha2) data': 'https://www.ndbc.noaa.gov/data/realtime2/41004.swdir2',
  'description': 'https://www.ndbc.noaa.gov/data_spec.shtml'},
 'Real time raw spectral wave (r1) data': {'Real time raw spectral wave (r1) data': 'https://www.ndbc.noaa.gov/data/realtime2/41004.swr1',
  'description': 'https://www.ndbc.noaa.gov/data_spec.shtml'},
 'Real time raw spectral wave (r2) data': {'Real time raw spectral wave (r2) data': 'https://www.ndbc.noaa.gov/data/realtime2/41004.swr2',
  'description': 'https://www.ndbc.noaa.gov/data_spec.shtml'},
 'Real time supplemental measurements data': {'Real time supplemental measurements data': 'https://www.ndbc.noaa.gov/data/realtime2/41004.supl',
  'description': 'https://www.ndbc.noaa.gov/faq/measdes.shtml#supl'},
 'Real time derived measurements data': {'Real time derived measurements data': 'https://www.ndbc.noaa.gov/data/derived2/41004.dmv',
  'description': 'https://www.ndbc.noaa.gov/faq/measdes.shtml#deriv'}}

SorooshMani-NOAA avatar Sep 13 '24 19:09 SorooshMani-NOAA