From aea33d0e8095fd29e7752663bff65effc32a30bb Mon Sep 17 00:00:00 2001 From: selipot Date: Tue, 22 Apr 2025 17:38:03 -0400 Subject: [PATCH 1/4] Refactor GDP_DATA_URL_EXPERIMENTAL to point to GDP_DATA_URL and update documentation --- clouddrift/adapters/gdp/gdp1h.py | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/clouddrift/adapters/gdp/gdp1h.py b/clouddrift/adapters/gdp/gdp1h.py index 486cf458..c8310526 100644 --- a/clouddrift/adapters/gdp/gdp1h.py +++ b/clouddrift/adapters/gdp/gdp1h.py @@ -24,9 +24,10 @@ GDP_DATA_URL = "https://www.aoml.noaa.gov/ftp/pub/phod/buoydata/hourly_product/v2.01" -GDP_DATA_URL_EXPERIMENTAL = ( - "https://www.aoml.noaa.gov/ftp/pub/phod/lumpkin/hourly/experimental" -) +GDP_DATA_URL_EXPERIMENTAL = GDP_DATA_URL +# ( +# "https://www.aoml.noaa.gov/ftp/pub/phod/lumpkin/hourly/experimental" +# ) # this defuncted URL is not available anymore GDP_TMP_PATH = os.path.join(tempfile.gettempdir(), "clouddrift", "gdp") @@ -550,8 +551,7 @@ def to_raggedarray( n_random_id : list[int], optional Randomly select n_random_id drifter NetCDF files url : str - URL from which to download the data (Default: GDP_DATA_URL). - Alternatively, it can be GDP_DATA_URL_EXPERIMENTAL. + URL from which to download the data (Default: GDP_DATA_URL) tmp_path : str, optional Path to the directory where the individual NetCDF files are stored (default varies depending on operating system; /tmp/clouddrift/gdp on Linux) @@ -567,7 +567,7 @@ def to_raggedarray( Invoke `to_raggedarray` without any arguments to download all drifter data from the 2.01 GDP feed: - >>> from clouddrift.adapters.gdp1h import to_raggedarray + >>> from clouddrift.adapters.gdp.gdp1h import to_raggedarray >>> ra = to_raggedarray() To download a random sample of 100 drifters, for example for development @@ -579,12 +579,6 @@ def to_raggedarray( >>> ra = to_raggedarray(drifter_ids=[44136, 54680, 83463]) - To download the experimental 2.01 GDP feed, use the `url` argument to - specify the experimental feed URL: - - >>> from clouddrift.adapters.gdp1h import GDP_DATA_URL_EXPERIMENTAL, to_raggedarray - >>> ra = to_raggedarray(url=GDP_DATA_URL_EXPERIMENTAL) - Finally, `to_raggedarray` returns a `RaggedArray` instance which provides a convenience method to emit a `xarray.Dataset` instance: From d66e147e26153cfaa7d39ce57da6778507985f44 Mon Sep 17 00:00:00 2001 From: selipot Date: Thu, 1 May 2025 17:00:15 -0400 Subject: [PATCH 2/4] Update GDP_VERSION to July 2024 and re-add URL from GDP_DATA_URL_EXPERIMENTAL --- clouddrift/adapters/gdp/gdp1h.py | 7 +++---- clouddrift/adapters/gdp/gdp6h.py | 8 ++------ 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/clouddrift/adapters/gdp/gdp1h.py b/clouddrift/adapters/gdp/gdp1h.py index c8310526..74893c0f 100644 --- a/clouddrift/adapters/gdp/gdp1h.py +++ b/clouddrift/adapters/gdp/gdp1h.py @@ -24,10 +24,9 @@ GDP_DATA_URL = "https://www.aoml.noaa.gov/ftp/pub/phod/buoydata/hourly_product/v2.01" -GDP_DATA_URL_EXPERIMENTAL = GDP_DATA_URL -# ( -# "https://www.aoml.noaa.gov/ftp/pub/phod/lumpkin/hourly/experimental" -# ) # this defuncted URL is not available anymore +GDP_DATA_URL_EXPERIMENTAL = ( + "https://www.aoml.noaa.gov/ftp/pub/phod/lumpkin/hourly/experimental" +) GDP_TMP_PATH = os.path.join(tempfile.gettempdir(), "clouddrift", "gdp") diff --git a/clouddrift/adapters/gdp/gdp6h.py b/clouddrift/adapters/gdp/gdp6h.py index 3f0dcc32..423e0c79 100644 --- a/clouddrift/adapters/gdp/gdp6h.py +++ b/clouddrift/adapters/gdp/gdp6h.py @@ -18,7 +18,7 @@ from clouddrift.adapters.utils import download_with_progress, standard_retry_protocol from clouddrift.raggedarray import RaggedArray -GDP_VERSION = "September 2023" +GDP_VERSION = "July 2024" GDP_DATA_URL = "https://www.aoml.noaa.gov/ftp/pub/phod/buoydata/6h" GDP_TMP_PATH = os.path.join(tempfile.gettempdir(), "clouddrift", "gdp6h") @@ -196,10 +196,6 @@ def preprocess(index: int, **kwargs) -> xr.Dataset: ) # convert attributes to variable - ds["location_type"] = ( - ("traj"), - [False if ds.attrs.get("location_type") == "Argos" else True], - ) # 0 for Argos, 1 for GPS ds["DeployingShip"] = (("traj"), gdp.cut_str(ds.attrs.get("DeployingShip", ""), 20)) ds["DeploymentStatus"] = ( ("traj"), @@ -480,7 +476,7 @@ def to_raggedarray( Invoke `to_raggedarray` without any arguments to download all drifter data from the 6-hourly GDP feed: - >>> from clouddrift.adapters.gdp6h import to_raggedarray + >>> from clouddrift.adapters.gdp.gdp6h import to_raggedarray >>> ra = to_raggedarray() To download a random sample of 100 drifters, for example for development From 39f712641fbf4b7dfee168f6548e4adb55c0062c Mon Sep 17 00:00:00 2001 From: selipot Date: Thu, 1 May 2025 17:04:48 -0400 Subject: [PATCH 3/4] Update documentation to include GDP_DATA_URL_EXPERIMENTAL as an alternative URL in to_raggedarray function --- clouddrift/adapters/gdp/gdp1h.py | 1 + 1 file changed, 1 insertion(+) diff --git a/clouddrift/adapters/gdp/gdp1h.py b/clouddrift/adapters/gdp/gdp1h.py index 74893c0f..777e0290 100644 --- a/clouddrift/adapters/gdp/gdp1h.py +++ b/clouddrift/adapters/gdp/gdp1h.py @@ -551,6 +551,7 @@ def to_raggedarray( Randomly select n_random_id drifter NetCDF files url : str URL from which to download the data (Default: GDP_DATA_URL) + Alternatively, it can be GDP_DATA_URL_EXPERIMENTAL tmp_path : str, optional Path to the directory where the individual NetCDF files are stored (default varies depending on operating system; /tmp/clouddrift/gdp on Linux) From b5ad05d9278e104da236878aec03538a84aa2513 Mon Sep 17 00:00:00 2001 From: selipot Date: Thu, 1 May 2025 17:07:10 -0400 Subject: [PATCH 4/4] Update to_raggedarray documentation to include usage of experimental GDP data URL --- clouddrift/adapters/gdp/gdp1h.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/clouddrift/adapters/gdp/gdp1h.py b/clouddrift/adapters/gdp/gdp1h.py index 777e0290..43dcf53b 100644 --- a/clouddrift/adapters/gdp/gdp1h.py +++ b/clouddrift/adapters/gdp/gdp1h.py @@ -579,6 +579,11 @@ def to_raggedarray( >>> ra = to_raggedarray(drifter_ids=[44136, 54680, 83463]) + To download the experimental 3.00 GDP data, use the `url` argument to + specify the experimental feed URL: + >>> from clouddrift.adapters.gdp.gdp1h import GDP_DATA_URL_EXPERIMENTAL, to_raggedarray + >>> ra = to_raggedarray(url=GDP_DATA_URL_EXPERIMENTAL) + Finally, `to_raggedarray` returns a `RaggedArray` instance which provides a convenience method to emit a `xarray.Dataset` instance: