The One Argo Float
notebook demonstrates various functionalities of the ArgoData.jl
package, which are further documented below.
👉 One Argo Float 👈 (code)
Download From Argo Data Center
Downloading and accessing an Argo file (wmo=13857
from folder="aoml"
) is done like this.
using ArgoData
input_file=GDAC.download_file("aoml",13857)
"/tmp/Argo_DAC_files/aoml/13857/13857_prof.nc"
You can then simply access the file content using NCDatasets.jl.
using NCDatasets
ds=Dataset(input_file)
keys(ds)
58-element Vector{String}:
"DATA_TYPE"
"FORMAT_VERSION"
"HANDBOOK_VERSION"
"REFERENCE_DATE_TIME"
"DATE_CREATION"
"DATE_UPDATE"
"PLATFORM_NUMBER"
"PROJECT_NAME"
"PI_NAME"
"STATION_PARAMETERS"
⋮
"HISTORY_SOFTWARE_RELEASE"
"HISTORY_REFERENCE"
"HISTORY_DATE"
"HISTORY_ACTION"
"HISTORY_PARAMETER"
"HISTORY_START_PRES"
"HISTORY_STOP_PRES"
"HISTORY_PREVIOUS_VALUE"
"HISTORY_QCTEST"
A list of all folder,wmo
pairs can be obtained using files_list=GDAC.files_list()
. And a method to download files in bulk & parallel is presented in examples/Argo_distributed_download.jl.
Argo on Standard Depth Levels
A more complete version of the workflow presented below is in this notebook:
👉 from Argo to MITprof 👈 (code)
The MITprof
Format
The MITprof format is a simple to use version of Argo where profiles have been converted to potential temperature and interpolated to standard depth levels.
Turning an Argo file (input_file
) into an MITprof file (output_file
) proceeds as follows.
- gridded fields are retrieved. These climatologies enable quality control of the data and scientific applications in step 2.
- read the Argo file and process it. The observed profiles are interpolated to standard depth levels, converted to potential temperature, quality controled, and appended climatological profiles.
For more detail on the use of climatologies, representation error estimation, and model-data cost functions
, see Forget et al 2015, Forget 2011, Forget and Wunsch 2007.
gridded_fields=GriddedFields.load()
output_file=MITprof.format(gridded_fields,input_file)
ds2=Dataset(output_file)
keys(ds2)
13-element Vector{String}:
"prof_depth"
"prof_ID"
"prof_lon"
"prof_lat"
"prof_date"
"prof_YYYYMMDD"
"prof_HHMMSS"
"prof_T"
"prof_Tweight"
"prof_Testim"
"prof_S"
"prof_Sweight"
"prof_Sestim"
Associated Data Structure
The generated file can be accessed normally as a NetCDF file (e.g., Dataset(output_file)
) or using the convenient MITprofStandard
data structure.
mp=MITprofStandard(output_file)
File name is 13857_MITprof.nc
List of variables :
lon is (140,)
lat is (140,)
date is (140,)
depth is (55,)
ID is (140,)
T is (140, 55)
Te is (140, 55)
Tw is (140, 55)
S is (140, 55)
Se is (140, 55)
Sw is (140, 55)
Sample MITprof
Files
The full set of MITprof profiles processed in 2023 from the Argo data base is available in this Dataverse. This dataset can be explored and retrieved using Dataverse.jl.
using Dataverse
doi="https://doi.org/10.7910/DVN/7HLV09"
lst=Dataverse.file_list(doi)
Dataverse.file_download(lst,lst.filename[2],tempdir())
Downloading file : /tmp/MITprof_Argo_1999.nc
Another example is the original collection of MITprof files from Forget, et al 2015 is archived in this Dataverse. This contains an earlier versio of Argo along with complementary datasets.
using Dataverse
doi="https://doi.org/10.7910/DVN/EE3C40"
lst=Dataverse.file_list(doi)
Row | filename | filesize | id | url |
---|---|---|---|---|
String | Int64 | Int64 | String | |
1 | MITprof_mar2016_argo0708.nc | 815848760 | 2845790 | https://dataverse.harvard.edu/api/access/datafile/2845790 |
2 | MITprof_mar2016_argo0910.nc | 880816932 | 2845789 | https://dataverse.harvard.edu/api/access/datafile/2845789 |
3 | MITprof_mar2016_argo1112.nc | 964198352 | 2845791 | https://dataverse.harvard.edu/api/access/datafile/2845791 |
4 | MITprof_mar2016_argo1314.nc | 1097483536 | 2845793 | https://dataverse.harvard.edu/api/access/datafile/2845793 |
5 | MITprof_mar2016_argo1515.nc | 638674860 | 2845788 | https://dataverse.harvard.edu/api/access/datafile/2845788 |
6 | MITprof_mar2016_argo9506.nc | 981153408 | 2845792 | https://dataverse.harvard.edu/api/access/datafile/2845792 |
7 | MITprof_mar2016_climode.nc | 37788892 | 2845786 | https://dataverse.harvard.edu/api/access/datafile/2845786 |
8 | MITprof_mar2016_ctd.nc | 1337162264 | 2845794 | https://dataverse.harvard.edu/api/access/datafile/2845794 |
9 | MITprof_mar2016_itp.nc | 48296856 | 2845787 | https://dataverse.harvard.edu/api/access/datafile/2845787 |
10 | MITprof_mar2016_seals.nc | 372054428 | 2845785 | https://dataverse.harvard.edu/api/access/datafile/2845785 |
11 | MITprof_mar2016_xbt.nc | 395252264 | 2845783 | https://dataverse.harvard.edu/api/access/datafile/2845783 |
12 | README.pdf | 56137 | 2863426 | https://dataverse.harvard.edu/api/access/datafile/2863426 |
Argo via Python API
The python library called argopy provides more ways to access, manipulate, and visualize Argo data.
using ArgoData, CondaPkg, PythonCall
ArgoData.conda(:argopy)
argopy=ArgoData.pyimport(:argopy)
println(argopy.status())
CondaPkg Found dependencies: /home/runner/work/ArgoData.jl/ArgoData.jl/docs/CondaPkg.toml
CondaPkg Found dependencies: /home/runner/.julia/packages/PythonCall/WMWY0/CondaPkg.toml
CondaPkg Dependencies already up to date
src argovis is: ok | src erddap is: ok | src gdac is: ok
ds_fetcher=argopy.DataFetcher().float(pylist([6902746, 6902747, 6902757, 6902766]))
ds_points = ds_fetcher.to_xarray()
<xarray.Dataset> Size: 30MB Dimensions: (N_POINTS: 248145) Coordinates: LATITUDE (N_POINTS) float64 2MB 20.33 20.33 20.33 ... 23.2 23.2 23.2 LONGITUDE (N_POINTS) float64 2MB -49.45 -49.45 ... -55.21 -55.21 TIME (N_POINTS) datetime64[ns] 2MB 2017-03-28T11:55:00 ... 20... * N_POINTS (N_POINTS) int64 2MB 0 1 2 3 ... 248142 248143 248144 Data variables: (12/15) CYCLE_NUMBER (N_POINTS) int64 2MB 1 1 1 1 1 1 ... 247 247 247 247 247 DATA_MODE (N_POINTS) <U1 993kB 'D' 'D' 'D' 'D' ... 'D' 'D' 'D' 'D' DIRECTION (N_POINTS) <U1 993kB 'D' 'D' 'D' 'D' ... 'A' 'A' 'A' 'A' PLATFORM_NUMBER (N_POINTS) int64 2MB 6902766 6902766 ... 6902766 6902766 POSITION_QC (N_POINTS) int64 2MB 1 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1 PRES (N_POINTS) float32 993kB 12.2 17.0 ... 2.013e+03 2.018e+03 ... ... PSAL_ERROR (N_POINTS) float32 993kB 0.01 0.01 0.01 ... 0.01 0.01 0.01 PSAL_QC (N_POINTS) int64 2MB 1 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1 TEMP (N_POINTS) float32 993kB 24.38 24.38 24.38 ... 3.716 3.709 TEMP_ERROR (N_POINTS) float32 993kB 0.002 0.002 0.002 ... 0.002 0.002 TEMP_QC (N_POINTS) int64 2MB 1 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1 TIME_QC (N_POINTS) int64 2MB 1 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: erddap.ifremer.fr Fetched_by: runner Fetched_date: 2025/02/02 Fetched_constraints: WMO6902746;WMO6902747;WMO6902757;WMO6902766 Fetched_uri: https://erddap.ifremer.fr/erddap/tabledap/ArgoFloat... Processing_history: [PRES,TEMP,PSAL] real-time and adjusted/delayed var...