Fetching Argo data#

To access Argo data, you need to use a data fetcher. You can import and instantiate the default argopy data fetcher like this:

In [1]: from argopy import DataFetcher as ArgoDataFetcher

In [2]: argo_loader = ArgoDataFetcher()

In [3]: argo_loader
Out[3]: 
<datafetcher.erddap> 'No access point initialised'
Available access points: float, profile, region
Performances: cache=False, parallel=False
User mode: standard
Dataset: phy

Then, you can request data for a specific space/time domain, for a given float or for a given vertical profile.

If you fetch a lot of data, you may want to look at the Performances section.

For a space/time domain#

Use the fetcher access point argopy.DataFetcher.region() to specify a domain and chain with the argopy.DataFetcher.to_xarray() to get the data returned as xarray.Dataset.

For instance, to retrieve data from 75W to 45W, 20N to 30N, 0db to 10db and from January to May 2011:

In [4]: ds = argo_loader.region([-75, -45, 20, 30, 0, 10, '2011-01-01', '2011-06']).to_xarray()

In [5]: ds
Out[5]: 
<xarray.Dataset>
Dimensions:                (N_POINTS: 998)
Coordinates:
  * N_POINTS               (N_POINTS) int64 0 1 2 3 4 5 ... 993 994 995 996 997
    LATITUDE               (N_POINTS) float64 24.54 24.54 25.04 ... 24.96 24.96
    LONGITUDE              (N_POINTS) float64 -45.14 -45.14 ... -50.4 -50.4
    TIME                   (N_POINTS) datetime64[ns] 2011-01-01T11:49:19 ... ...
Data variables: (12/13)
    CONFIG_MISSION_NUMBER  (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 2 2 2 2 1 1
    CYCLE_NUMBER           (N_POINTS) int32 23 23 10 10 10 10 ... 2 10 10 38 38
    DATA_MODE              (N_POINTS) <U1 'D' 'D' 'D' 'D' ... 'D' 'D' 'D' 'D'
    DIRECTION              (N_POINTS) <U1 'A' 'A' 'A' 'A' ... 'A' 'A' 'A' 'A'
    PLATFORM_NUMBER        (N_POINTS) int32 1901463 1901463 ... 1901463 1901463
    POSITION_QC            (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
    ...                     ...
    PRES_QC                (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
    PSAL                   (N_POINTS) float64 37.45 37.45 37.28 ... 37.08 37.05
    PSAL_QC                (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
    TEMP                   (N_POINTS) float64 24.08 24.08 24.03 ... 25.1 24.79
    TEMP_QC                (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
    TIME_QC                (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
Attributes:
    DATA_ID:              ARGO
    DOI:                  http://doi.org/10.17882/42182
    Fetched_from:         https://www.ifremer.fr/erddap
    Fetched_by:           docs
    Fetched_date:         2022/11/17
    Fetched_constraints:  [x=-75.00/-45.00; y=20.00/30.00; z=0.0/10.0; t=2011...
    Fetched_uri:          ['https://www.ifremer.fr/erddap/tabledap/ArgoFloats...
    history:              Variables filtered according to DATA_MODE; Variable...

Note that:

  • the constraints on time is not mandatory: if not specified, the fetcher will return all data available in this region.

  • the last time bound is exclusive: that’s why here we specify June to retrieve data collected in May.

For one or more floats#

If you know the Argo float unique identifier number called a WMO number you can use the fetcher access point argopy.DataFetcher.float() to specify the float WMO platform number and chain with the argopy.DataFetcher.to_xarray() to get the data returned as xarray.Dataset.

For instance, to retrieve data for float WMO 6902746:

In [6]: ds = argo_loader.float(6902746).to_xarray()

In [7]: ds
Out[7]: 
<xarray.Dataset>
Dimensions:                (N_POINTS: 12518)
Coordinates:
  * N_POINTS               (N_POINTS) int64 0 1 2 3 ... 12514 12515 12516 12517
    LATITUDE               (N_POINTS) float64 20.08 20.08 20.08 ... 16.67 16.67
    LONGITUDE              (N_POINTS) float64 -60.17 -60.17 ... -77.13 -77.13
    TIME                   (N_POINTS) datetime64[ns] 2017-07-06T14:49:00 ... ...
Data variables: (12/13)
    CONFIG_MISSION_NUMBER  (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 3 3 3 3 3 3 3 3
    CYCLE_NUMBER           (N_POINTS) int32 1 1 1 1 1 1 ... 117 117 117 117 117
    DATA_MODE              (N_POINTS) <U1 'D' 'D' 'D' 'D' ... 'D' 'D' 'D' 'D'
    DIRECTION              (N_POINTS) <U1 'D' 'D' 'D' 'D' ... 'A' 'A' 'A' 'A'
    PLATFORM_NUMBER        (N_POINTS) int32 6902746 6902746 ... 6902746 6902746
    POSITION_QC            (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
    ...                     ...
    PRES_QC                (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
    PSAL                   (N_POINTS) float64 36.06 36.06 36.06 ... 34.97 34.97
    PSAL_QC                (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
    TEMP                   (N_POINTS) float64 28.04 28.03 28.02 ... 4.254 4.238
    TEMP_QC                (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
    TIME_QC                (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
Attributes:
    DATA_ID:              ARGO
    DOI:                  http://doi.org/10.17882/42182
    Fetched_from:         https://www.ifremer.fr/erddap
    Fetched_by:           docs
    Fetched_date:         2022/11/17
    Fetched_constraints:  phy;WMO6902746
    Fetched_uri:          ['https://www.ifremer.fr/erddap/tabledap/ArgoFloats...
    history:              Variables filtered according to DATA_MODE; Variable...

To fetch data for a collection of floats, input them in a list:

In [8]: ds = argo_loader.float([6902746, 6902755]).to_xarray()

In [9]: ds
Out[9]: 
<xarray.Dataset>
Dimensions:                (N_POINTS: 29739)
Coordinates:
  * N_POINTS               (N_POINTS) int64 0 1 2 3 ... 29735 29736 29737 29738
    LATITUDE               (N_POINTS) float64 20.08 20.08 20.08 ... 41.35 41.35
    LONGITUDE              (N_POINTS) float64 -60.17 -60.17 ... -30.47 -30.47
    TIME                   (N_POINTS) datetime64[ns] 2017-07-06T14:49:00 ... ...
Data variables: (12/13)
    CONFIG_MISSION_NUMBER  (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 2 2 2 2 2 2 2 2
    CYCLE_NUMBER           (N_POINTS) int32 1 1 1 1 1 1 ... 160 160 160 160 160
    DATA_MODE              (N_POINTS) <U1 'D' 'D' 'D' 'D' ... 'A' 'A' 'A' 'A'
    DIRECTION              (N_POINTS) <U1 'D' 'D' 'D' 'D' ... 'A' 'A' 'A' 'A'
    PLATFORM_NUMBER        (N_POINTS) int32 6902746 6902746 ... 6902755 6902755
    POSITION_QC            (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
    ...                     ...
    PRES_QC                (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
    PSAL                   (N_POINTS) float32 36.06 36.06 36.06 ... 34.97 34.96
    PSAL_QC                (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
    TEMP                   (N_POINTS) float32 28.04 28.03 28.02 ... 3.96 3.917
    TEMP_QC                (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
    TIME_QC                (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
Attributes:
    DATA_ID:              ARGO
    DOI:                  http://doi.org/10.17882/42182
    Fetched_from:         https://www.ifremer.fr/erddap
    Fetched_by:           docs
    Fetched_date:         2022/11/17
    Fetched_constraints:  phy;WMO6902746;WMO6902755
    Fetched_uri:          ['https://www.ifremer.fr/erddap/tabledap/ArgoFloats...
    history:              Variables filtered according to DATA_MODE; Variable...

For one or more profiles#

Use the fetcher access point argopy.DataFetcher.profile() to specify the float WMO platform number and the profile cycle number to retrieve profiles for, then chain with the argopy.DataFetcher.to_xarray() to get the data returned as xarray.Dataset.

For instance, to retrieve data for the 12th profile of float WMO 6902755:

In [10]: ds = argo_loader.profile(6902755, 12).to_xarray()

In [11]: ds
Out[11]: 
<xarray.Dataset>
Dimensions:                (N_POINTS: 107)
Coordinates:
  * N_POINTS               (N_POINTS) int64 0 1 2 3 4 5 ... 102 103 104 105 106
    LATITUDE               (N_POINTS) float64 63.68 63.68 63.68 ... 63.68 63.68
    LONGITUDE              (N_POINTS) float64 -28.81 -28.81 ... -28.81 -28.81
    TIME                   (N_POINTS) datetime64[ns] 2018-10-19T23:52:00 ... ...
Data variables: (12/13)
    CONFIG_MISSION_NUMBER  (N_POINTS) int32 2 2 2 2 2 2 2 2 ... 2 2 2 2 2 2 2 2
    CYCLE_NUMBER           (N_POINTS) int32 12 12 12 12 12 12 ... 12 12 12 12 12
    DATA_MODE              (N_POINTS) <U1 'D' 'D' 'D' 'D' ... 'D' 'D' 'D' 'D'
    DIRECTION              (N_POINTS) <U1 'A' 'A' 'A' 'A' ... 'A' 'A' 'A' 'A'
    PLATFORM_NUMBER        (N_POINTS) int32 6902755 6902755 ... 6902755 6902755
    POSITION_QC            (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
    ...                     ...
    PRES_QC                (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
    PSAL                   (N_POINTS) float64 34.87 34.87 34.87 ... 34.94 34.94
    PSAL_QC                (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
    TEMP                   (N_POINTS) float64 7.598 7.599 7.602 ... 3.549 3.536
    TEMP_QC                (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
    TIME_QC                (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
Attributes:
    DATA_ID:              ARGO
    DOI:                  http://doi.org/10.17882/42182
    Fetched_from:         https://www.ifremer.fr/erddap
    Fetched_by:           docs
    Fetched_date:         2022/11/17
    Fetched_constraints:  phy;WMO6902755
    Fetched_uri:          ['https://www.ifremer.fr/erddap/tabledap/ArgoFloats...
    history:              Variables filtered according to DATA_MODE; Variable...

To fetch data for more than one profile, input them in a list:

In [12]: ds = argo_loader.profile(6902755, [3, 12]).to_xarray()

In [13]: ds
Out[13]: 
<xarray.Dataset>
Dimensions:                (N_POINTS: 215)
Coordinates:
  * N_POINTS               (N_POINTS) int64 0 1 2 3 4 5 ... 210 211 212 213 214
    LATITUDE               (N_POINTS) float64 59.72 59.72 59.72 ... 63.68 63.68
    LONGITUDE              (N_POINTS) float64 -31.24 -31.24 ... -28.81 -28.81
    TIME                   (N_POINTS) datetime64[ns] 2018-07-22T00:03:00 ... ...
Data variables: (12/13)
    CONFIG_MISSION_NUMBER  (N_POINTS) int32 2 2 2 2 2 2 2 2 ... 2 2 2 2 2 2 2 2
    CYCLE_NUMBER           (N_POINTS) int32 3 3 3 3 3 3 3 ... 12 12 12 12 12 12
    DATA_MODE              (N_POINTS) <U1 'D' 'D' 'D' 'D' ... 'D' 'D' 'D' 'D'
    DIRECTION              (N_POINTS) <U1 'A' 'A' 'A' 'A' ... 'A' 'A' 'A' 'A'
    PLATFORM_NUMBER        (N_POINTS) int32 6902755 6902755 ... 6902755 6902755
    POSITION_QC            (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
    ...                     ...
    PRES_QC                (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
    PSAL                   (N_POINTS) float64 34.76 34.76 34.76 ... 34.94 34.94
    PSAL_QC                (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
    TEMP                   (N_POINTS) float64 8.742 8.743 8.744 ... 3.549 3.536
    TEMP_QC                (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
    TIME_QC                (N_POINTS) int32 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
Attributes:
    DATA_ID:              ARGO
    DOI:                  http://doi.org/10.17882/42182
    Fetched_from:         https://www.ifremer.fr/erddap
    Fetched_by:           docs
    Fetched_date:         2022/11/17
    Fetched_constraints:  phy;WMO6902755
    Fetched_uri:          ['https://www.ifremer.fr/erddap/tabledap/ArgoFloats...
    history:              Variables filtered according to DATA_MODE; Variable...