Registries
A cruise config names three things by slug or code — institutions, a platform, and
contributor roles. The valid values ship inside the installed package, so rather than
open a YAML file in site-packages to find one, list them:
ctdcast list # the three registries
ctdcast list institutions # what ships + your user directory
ctdcast list institutions config.yaml # ... plus what this config adds
ctdcast list platforms --search meteor # filter by slug or name
ctdcast list roles --vocabulary W08 # one role vocabulary
The full command reference is in CLI reference. What each registry is, and how to add to it without editing package data, follows.
Institutions
Research organisations, referenced by cruise_info.institutions (see
Cruise metadata (cruise_info)). They resolve from four sources, later winning slug by slug — the
Source column in ctdcast list institutions tells you which supplied each entry:
packaged — the shipped
ctdcast/config/institutions.yaml;user —
~/.config/ctdcast/institutions.yaml(or$CTDCAST_CONFIG_DIR), for organisations you use across cruises;a config file named by
cruise_info.institutions_file, kept beside the cruise config;inline — an entry in
cruise_info.institutionswritten with its ownnameandid, which needs no registry at all.
Tiers 3 and 4 are only visible when you pass the config, so ctdcast list institutions
with no config prints a footer saying so.
Platforms
Vessels, referenced by cruise_info.platform (or the older ship_slug). The platform
drives the EXPOCODE via its ICES code, so a wrong slug is refused rather than guessed.
Two sources:
packaged — the shipped
ctdcast/config/platforms.yaml;inline —
cruise_info.platformwritten as a mapping, for a vessel not in the shared registry:cruise_info: platform: name: "RRS Discovery" ices_code: "74E3" # drives the EXPOCODE platform: "..." # optional L06 category
This works end to end — no need to edit
platforms.yaml.
ctdcast list platforms also prints two sets of traps that platforms.yaml
records and the resolver refuses: ambiguous_slugs (a name shared by several hulls —
meteor alone is refused; use meteor3) and forbidden_codes (ICES codes that must
not be used, each with the reason). They are shown so you can see why a slug is refused,
not only that it was.
Roles
Contributor role codes, referenced by cruise_info.role_vocabulary (people) and
cruise_info.institution_role_vocabulary (institutions). There are four vocabularies on
two axes:
Person roles —
C89(BODC dataset roles, the default) andG04;Institution roles —
C59(the default) andW08.
ctdcast list roles groups them by axis and marks each axis’s default, so a person role
is never mistaken for one usable where an institution role is required. --vocabulary
shows a single one.