Reference tables and NVS vocabulary server#
The Argo netcdf format is strict and based on a collection of variables fully documented and conventioned. All reference tables can be found in the Argo user manual.
However, a machine-to-machine access to these tables is often required. This is possible thanks to the work of the Argo Vocabulary Task Team (AVTT) that is a team of people responsible for the NVS collections under the Argo Data Management Team governance.
Note
The GitHub organization hosting the AVTT is the ‘NERC Vocabulary Server (NVS)’, aka ‘nvs-vocabs’. This holds a list of NVS collection-specific GitHub repositories. Each Argo GitHub repository is called after its corresponding collection ID (e.g. R01, RR2, R03 etc.). The current list is given here.
The management of issues related to vocabularies managed by the Argo Data Management Team is done on this repository.
argopy provides the utility class ArgoNVSReferenceTables
to easily fetch and get access to all Argo reference tables. If you already know the name of the reference table you want to retrieve, you can simply get it like this:
In [1]: from argopy import ArgoNVSReferenceTables
In [2]: NVS = ArgoNVSReferenceTables()
In [3]: NVS.tbl('R01')
Out[3]:
altLabel ... id
0 BTRAJ ... http://vocab.nerc.ac.uk/collection/R01/current...
1 TRAJ ... http://vocab.nerc.ac.uk/collection/R01/current...
2 MTRAJ ... http://vocab.nerc.ac.uk/collection/R01/current...
3 META ... http://vocab.nerc.ac.uk/collection/R01/current...
4 MPROF ... http://vocab.nerc.ac.uk/collection/R01/current...
5 SPROF ... http://vocab.nerc.ac.uk/collection/R01/current...
6 BPROF ... http://vocab.nerc.ac.uk/collection/R01/current...
7 TECH ... http://vocab.nerc.ac.uk/collection/R01/current...
8 ... http://vocab.nerc.ac.uk/collection/R01/current...
9 PROF ... http://vocab.nerc.ac.uk/collection/R01/current...
[10 rows x 5 columns]
The reference table is returned as a pandas.DataFrame
. If you want the exact name of this table:
In [4]: NVS.tbl_name('R01')
Out[4]:
('DATA_TYPE',
'Terms describing the type of data contained in an Argo netCDF file. Argo netCDF variable DATA_TYPE is populated by R01 prefLabel.',
'http://vocab.nerc.ac.uk/collection/R01/current/')
If you don’t know the reference table ID, you can search for a word in tables title and/or description with the search
method:
In [5]: id_list = NVS.search('sensor')
This will return the list of reference table ids matching your search. It can then be used to retrieve table information:
In [6]: [NVS.tbl_name(id) for id in id_list]
Out[6]:
[('SENSOR',
'Terms describing sensor types mounted on Argo floats. Argo netCDF variable SENSOR is populated by R25 altLabel.',
'http://vocab.nerc.ac.uk/collection/R25/current/'),
('SENSOR_MAKER',
'Terms describing developers and manufacturers of sensors mounted on Argo floats. Argo netCDF variable SENSOR_MAKER is populated by R26 altLabel.',
'http://vocab.nerc.ac.uk/collection/R26/current/'),
('SENSOR_MODEL',
'Terms listing models of sensors mounted on Argo floats. Note: avoid using the manufacturer name and sensor firmware version in new entries when possible. Argo netCDF variable SENSOR_MODEL is populated by R27 altLabel.',
'http://vocab.nerc.ac.uk/collection/R27/current/')]
The full list of all available tables is given by the ArgoNVSReferenceTables.all_tbl_name()
property. It will return a dictionary with table IDs as key and table name, definition and NVS link as values. Use the ArgoNVSReferenceTables.all_tbl()
property to retrieve all tables.
In [7]: NVS.all_tbl_name
Out[7]:
OrderedDict([('R01',
('DATA_TYPE',
'Terms describing the type of data contained in an Argo netCDF file. Argo netCDF variable DATA_TYPE is populated by R01 prefLabel.',
'http://vocab.nerc.ac.uk/collection/R01/current/')),
('R03',
('PARAMETER',
'Terms describing individual measured phenomena, used to mark up sets of data in Argo netCDF arrays. Argo netCDF variables PARAMETER and TRAJECTORY_PARAMETERS are populated by R03 altLabel; R03 altLabel is also used to name netCDF profile files parameter variables <PARAMETER>.',
'http://vocab.nerc.ac.uk/collection/R03/current/')),
('R04',
('DATA_CENTRE_CODES',
'Codes for data centres and institutions handling or managing Argo data. Argo netCDF variable DATA_CENTRE is populated by R04 altLabel.',
'http://vocab.nerc.ac.uk/collection/R04/current/')),
('R05',
('POSITION_ACCURACY',
'Accuracy in latitude and longitude measurements received from the positioning system, grouped by location accuracy classes.',
'http://vocab.nerc.ac.uk/collection/R05/current/')),
('R06',
('DATA_STATE_INDICATOR',
'Processing stage of the data based on the concatenation of processing level and class indicators. Argo netCDF variable DATA_STATE_INDICATOR is populated by R06 altLabel.',
'http://vocab.nerc.ac.uk/collection/R06/current/')),
('R07',
('HISTORY_ACTION',
'Coded history information for each action performed on each profile by a data centre. Argo netCDF variable HISTORY_ACTION is populated by R07 altLabel.',
'http://vocab.nerc.ac.uk/collection/R07/current/')),
('R08',
('ARGO_WMO_INST_TYPE',
"Subset of instrument type codes from the World Meteorological Organization (WMO) Common Code Table C-3 (CCT C-3) 1770, named 'Instrument make and type for water temperature profile measurement with fall rate equation coefficients' and available here: https://library.wmo.int/doc_num.php?explnum_id=11283. Argo netCDF variable WMO_INST_TYPE is populated by R08 altLabel.",
'http://vocab.nerc.ac.uk/collection/R08/current/')),
('R09',
('POSITIONING_SYSTEM',
'List of float location measuring systems. Argo netCDF variable POSITIONING_SYSTEM is populated by R09 altLabel.',
'http://vocab.nerc.ac.uk/collection/R09/current/')),
('R10',
('TRANS_SYSTEM',
'List of telecommunication systems. Argo netCDF variable TRANS_SYSTEM is populated by R10 altLabel.',
'http://vocab.nerc.ac.uk/collection/R10/current/')),
('R11',
('RTQC_TESTID',
'List of real-time quality-control tests and corresponding binary identifiers, used as reference to populate the Argo netCDF HISTORY_QCTEST variable.',
'http://vocab.nerc.ac.uk/collection/R11/current/')),
('R12',
('HISTORY_STEP',
'Data processing step codes for history record. Argo netCDF variable TRANS_SYSTEM is populated by R12 altLabel.',
'http://vocab.nerc.ac.uk/collection/R12/current/')),
('R13',
('OCEAN_CODE',
'Ocean area codes assigned to each profile in the Metadata directory (index) file of the Argo Global Assembly Centre.',
'http://vocab.nerc.ac.uk/collection/R13/current/')),
('R15',
('MEASUREMENT_CODE_ID',
'Measurement code IDs used in Argo Trajectory netCDF files. Argo netCDF variable MEASUREMENT_CODE is populated by R15 altLabel.',
'http://vocab.nerc.ac.uk/collection/R15/current/')),
('R16',
('VERTICAL_SAMPLING_SCHEME',
'Profile sampling schemes and sampling methods. Argo netCDF variable VERTICAL_SAMPLING_SCHEME is populated by R16 altLabel.',
'http://vocab.nerc.ac.uk/collection/R16/current/')),
('R18',
('CONFIG_PARAMETER_NAME',
"List of float configuration settings selected by the float Principal Investigator (PI). Configuration parameters may or may not be reported by the float, and do not constitute float measurements. Configuration parameters selected for a float are stored in the float 'meta.nc' file, under CONFIG_PARAMETER_NAME. Each configuration parameter name has an associated value, stored in CONFIG_PARAMETER_VALUE. Argo netCDF variable CONFIG_PARAMETER_NAME is populated by R18 prefLabel.",
'http://vocab.nerc.ac.uk/collection/R18/current/')),
('R19',
('STATUS',
'Flag scale for values in all Argo netCDF cycle timing variables. Argo netCDF cycle timing variables JULD_<RTV>_STATUS are populated by R19 altLabel.',
'http://vocab.nerc.ac.uk/collection/R19/current/')),
('R20',
('GROUNDED',
'Codes to indicate the best estimate of whether the float touched the ground during a specific cycle. Argo netCDF variable GROUNDED in the Trajectory file is populated by R20 altLabel.',
'http://vocab.nerc.ac.uk/collection/R20/current/')),
('R21',
('REPRESENTATIVE_PARK_PRESSURE_STATUS',
'Argo status flag on the Representative Park Pressure (RPP). Argo netCDF variable REPRESENTATIVE_PARK_PRESSURE_STATUS in the Trajectory file is populated by R21 altLabel.',
'http://vocab.nerc.ac.uk/collection/R21/current/')),
('R22',
('PLATFORM_FAMILY',
'List of platform family/category of Argo floats. Argo netCDF variable PLATFORM_FAMILY is populated by R22 altLabel.',
'http://vocab.nerc.ac.uk/collection/R22/current/')),
('R23',
('PLATFORM_TYPE',
'List of Argo float types. Argo netCDF variable PLATFORM_TYPE is populated by R23 altLabel.',
'http://vocab.nerc.ac.uk/collection/R23/current/')),
('R24',
('PLATFORM_MAKER',
'List of Argo float manufacturers. Argo netCDF variable PLATFORM_MAKER is populated by R24 altLabel.',
'http://vocab.nerc.ac.uk/collection/R24/current/')),
('R25',
('SENSOR',
'Terms describing sensor types mounted on Argo floats. Argo netCDF variable SENSOR is populated by R25 altLabel.',
'http://vocab.nerc.ac.uk/collection/R25/current/')),
('R26',
('SENSOR_MAKER',
'Terms describing developers and manufacturers of sensors mounted on Argo floats. Argo netCDF variable SENSOR_MAKER is populated by R26 altLabel.',
'http://vocab.nerc.ac.uk/collection/R26/current/')),
('R27',
('SENSOR_MODEL',
'Terms listing models of sensors mounted on Argo floats. Note: avoid using the manufacturer name and sensor firmware version in new entries when possible. Argo netCDF variable SENSOR_MODEL is populated by R27 altLabel.',
'http://vocab.nerc.ac.uk/collection/R27/current/')),
('R28',
('CONTROLLER_BOARD_TYPE',
'List of Argo floats controller board types and generations. Argo netCDF variables CONTROLLER_BOARD_TYPE_PRIMARY and, when needed, CONTROLLER_BOARD_TYPE_SECONDARY, are populated by R28 altLabel.',
'http://vocab.nerc.ac.uk/collection/R28/current/')),
('R40',
('PI_NAME',
'List of Principal Investigator (PI) names in charge of Argo floats. Argo netCDF variable PI_NAME is populated by R40 altLabel.',
'http://vocab.nerc.ac.uk/collection/R40/current/')),
('RD2',
('DM_QC_FLAG',
"Quality flag scale for delayed-mode measurements. Argo netCDF variables <PARAMETER>_ADJUSTED_QC in 'D' mode are populated by RD2 altLabel.",
'http://vocab.nerc.ac.uk/collection/RD2/current/')),
('RMC',
('MEASUREMENT_CODE_CATEGORY',
"Categories of trajectory measurement codes listed in NVS collection 'R15'",
'http://vocab.nerc.ac.uk/collection/RMC/current/')),
('RP2',
('PROF_QC_FLAG',
'Quality control flag scale for whole profiles. Argo netCDF variables PROFILE_<PARAMETER>_QC are populated by RP2 altLabel.',
'http://vocab.nerc.ac.uk/collection/RP2/current/')),
('RR2',
('RT_QC_FLAG',
"Quality flag scale for real-time measurements. Argo netCDF variables <PARAMETER>_QC in 'R' mode and <PARAMETER>_ADJUSTED_QC in 'A' mode are populated by RR2 altLabel.",
'http://vocab.nerc.ac.uk/collection/RR2/current/')),
('RTV',
('CYCLE_TIMING_VARIABLE',
"Timing variables representing stages of an Argo float profiling cycle, most of which are associated with a trajectory measurement code ID listed in NVS collection 'R15'. Argo netCDF cycle timing variable names JULD_<RTV>_STATUS are constructed by RTV altLabel.",
'http://vocab.nerc.ac.uk/collection/RTV/current/'))])