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.

  1. gridded fields are retrieved. These climatologies enable quality control of the data and scientific applications in step 2.
  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.
Note

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)
12×4 DataFrame
Rowfilenamefilesizeidurl
StringInt64Int64String
1MITprof_mar2016_argo0708.nc8158487602845790https://dataverse.harvard.edu/api/access/datafile/2845790
2MITprof_mar2016_argo0910.nc8808169322845789https://dataverse.harvard.edu/api/access/datafile/2845789
3MITprof_mar2016_argo1112.nc9641983522845791https://dataverse.harvard.edu/api/access/datafile/2845791
4MITprof_mar2016_argo1314.nc10974835362845793https://dataverse.harvard.edu/api/access/datafile/2845793
5MITprof_mar2016_argo1515.nc6386748602845788https://dataverse.harvard.edu/api/access/datafile/2845788
6MITprof_mar2016_argo9506.nc9811534082845792https://dataverse.harvard.edu/api/access/datafile/2845792
7MITprof_mar2016_climode.nc377888922845786https://dataverse.harvard.edu/api/access/datafile/2845786
8MITprof_mar2016_ctd.nc13371622642845794https://dataverse.harvard.edu/api/access/datafile/2845794
9MITprof_mar2016_itp.nc482968562845787https://dataverse.harvard.edu/api/access/datafile/2845787
10MITprof_mar2016_seals.nc3720544282845785https://dataverse.harvard.edu/api/access/datafile/2845785
11MITprof_mar2016_xbt.nc3952522642845783https://dataverse.harvard.edu/api/access/datafile/2845783
12README.pdf561372863426https://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. The notebook below demonstrates how you can :

  1. install argopy into Julia via Conda.jl
  2. use argopy from Julia via PyCall.jl

👉 Notebook 👈 (code)