If you would like to add new names to the official CSDMS Standard Names
Registry, please do so by either submitting it as an issue to the
GitHub issue tracker or as a pull request that adds your new names to names.txt
.
The CSDMS wiki provides a full description of the basic rules. Below are the basics.
- Names are of the form:
<object>__<quantity>
. - Names shall contain only lowercase letters and numbers along with the
Standard Names separator characters (
_
,-
,~
,__
). - The Standard Names separators:
_
: delimite separate words of a name.-
: join multi-word objects, quantities, adjectives, etc.~
: join an adjective to a noun (the noun comes first following by or more adjectives).__
: separate an object from a quantity._of_
: apply a math operation to the subsequent quantity.
- Qualifiers that make an object or quantity more specific are added to the left of the base object or quantity (with increasing specitivity).
For those so inclined, here is the current regular expression for a CSDMS Standard Names,
^[a-z]([a-zA-Z0-9~-]|_(?!_))*(__)[a-z0-9]([a-z0-9~-]|_(?!_))*[a-z0-9]$
With the standard_names package, this is the re
attribute of the
StandardName
class (StandardName.re
).
- Registry: The official registry of CSDMS Standard Names.
- standard_names Python package: Tools for working with standard names (including a validator).
- Peckham, 2014: Extended abstract from IEMSS 2014.
- Standard Names on CSDMS.edu: Detailed description of CSDMS Standard Names
- The CF-Standard Names: CF Standard Names for ocean and atmosphere modeling.
There are many examples of CSDMS Standard Names on several pages of the
CSDMS wiki. These names can be scraped with
the snscrape
command provided by the
standard_names package.
$ snscrape --no-headers \
https://csdms.colorado.edu/wiki/CSN_Quantity_Templates \
http://csdms.colorado.edu/wiki/CSN_Object_Templates \
http://csdms.colorado.edu/wiki/CSN_Operation_Templates \
http://csdms.colorado.edu/wiki/CSN_Examples > scraped_names.txt
The following command will merge two lists (one name per line, no leading or trailing whitespace) into one sorted list of unique names.
$ cat list1.txt list2.txt | sort | uniq