v2026.04.0 (2026-04-27)
=======================
Parameter Changes
-----------------
* Add LAB_DEN_TMP [DEG C] as the name for the temperature of analysis of seawater in lab measured density. (P01 param DENTMP01)
* Update to cf standard name table v93 (2026-03-17)
* Add CTDCDOM [RU] for uv fluorometer data that has been calibrated/corrected to discrete samples normalized to the pure water Raman peak
* Add FDOM [RU] for discrete samples normalized to the pure water Raman peak.
* Removed the CTDCDOM [RU] to CTDCDOM [RFU] alias mapping
* Add CTDPH for in situ ph reported on an unknown scale, though it is probably NBS

API Changes
-----------
* (New) Add a method to look up parameter by their nc_name
* (Potentially Breaking) Rise a `ValueError` when attempting to coerce a parameter into an error name when an error name it not defined for it
* Add typing to WHPNames and CFStandardNames objects
* Drop python 3.11 support (SPEC 0)
* Use pattern matching to do the WHPName lookup in `__getitem__` of the `_WHPNames` object

v2025.10.0 (2025-10-31)
=======================
Parameter Changes
-----------------
* Add UMOL/L as an allowed unit for UREA, the default print precision of .4f is based on incoming .1f data in nmol units
* Add AR-39_ERROR [PCTMOD] as the error name for AR-39 [PCTMOD]
* Add CDOM-S275-295 [1/NM] describing a linear fit to log transformed attenuation coefficients in the interval 275 to 295 nanometers
* Add moles_of_ammonium_per_unit_mass_in_sea_water as the CF standard name for NH4 [UMOL/KG]
* Add mole_concentration_of_cfc11_in_sea_water as the CF standard name for CFC-11 [PMOL/L]
* Add mole_concentration_of_cfc12_in_sea_water as the CF standard name for CFC-12 [PMOL/L]
* Add moles_of_sulfur_hexafluoride_per_unit_mass_in_sea_water as the CF standard name for SF6 [FMOL/KG]
* Add mole_concentration_of_sulfur_hexafluoride_in_sea_water as the CF standard name for SF6 [FMOL/L]
* Add some particulate trace metal parameters following geotraces conventions, the default database precisions were based on incoming data:

  * Sr_TP_CONC_BOTTLE [PMOL/KG]
  * Al_TP_CONC_BOTTLE [NMOL/KG]
  * Ba_TP_CONC_BOTTLE [PMOL/KG]
  * Ca_TP_CONC_BOTTLE [PMOL/KG]

API Changes
-----------
* Emit INFO level log message when a parameter is found via an alias

v2025.04.0 (2025-04-04)
=======================
Parameter Changes
-----------------
* (Breaking) Change allowed units for CU and NI from UMOL/L to NMOL/L, only two cruises had these parameters and neither had data, this alligns with incoming data and GEOTRACES
* Fixed typoes in change log where the beta scattering angle was incorrectly written as 123 degrees, continuing a long line of typoes for this angle going back to the OEM:

  * CTDBETA660_123 -> CTDBETA660_124
  * CTDBETA650_123 -> CTDBETA650_124

* Add CDOM254 [/METER]
* Add some dissolved trace metal parameters following geotraces conventions:

  * Add Co_D_CONC_BOTTLE [PMOL/L]
  * Add Zn_D_CONC_BOTTLE [NMOL/L]
  * Add Cd_D_CONC_BOTTLE [NMOL/L]
  * Add Pb_D_CONC_BOTTLE [PMOL/L]

API Changes
-----------
* The package was migrated to use uv and a /src project structure.
* WHPName instances can now be used as a key to WHPNames

v2025.01.0 (2025-01-16)
=======================
Parameter Changes
-----------------
* Updated link to SOCCOM optics primer
* Added CTDBETA660_124 [M^-1/SR] for the volume scattering function at 660nm with a centroid angle of 124 degrees

v2024.12.0 (2024-12-06)
=======================
Parameter Changes
-----------------
* Add CS137ER as the error name for CS-137 [DM/.1MG] (the other unit variations had this error mapping already)
* Add UMOL/M^2/SEC as allowed units for SPAR

API Changes
-----------
* Add support for ODV style keys in `WHPNames.add_alias`
* Add support for alt params and units to `WHPNames.add_alias`
* Attempting to set an ALT param to less than 0 will now raise a ValueError, _ALT_0 is still accepted and is equivalent to a normal parameter name.

v2024.10.1 (2024-10-29)
=======================
Parameter Changes
-----------------
* Renamed DOC_NASA [UMOL/L] as DOC [UMOL/L]
  * Added DOC_NASA [UMOL/LG] as an alias for DOC [UMOL/L]
  * Renamed the netcdf variable from dissolved_organic_carbon_nasa to dissolved_organic_carbon_l
* Add DOC_ERROR as the error name for DOC [UMOL/KG] and DOC [UMOL/L]
* Add UMOL/L as an allowed unit for TDN
* Add TDN_ERROR as the error name for TDN [UMOL/KG] and TDN [UMOL/L]
* Add POC_ERROR as the error name for POC
* Add PON_ERROR as the error name for PON
* Add CTDALTIMETER [METERS] for the value reported by the altimeter, And an expected valid range of 0 to 100, hopefully its never 0 in any of the data.

v2024.10.0 (2024-10-04)
=======================
Parameter Changes
-----------------
* Add RFU as an allowed unit for CTDCDOM
* Add CTDCDOM [RU] as an alias for CTDCDOM [RFU]

v2024.09.0 (2024-09-05)
=======================
Parameter Changes
-----------------
* Add BSI [UG/L] for biogenic silica (opal) expressed in mass per volume
* Add UMOL/KG as a unit for POC
* Add UMOL/KG as a unit for PON
* Update CF standard name table from 82 to 85 to support new CCHDO params/units above
* Add VOLTS as a unit for CTDORP for raw sensor output

v2024.04.0 (2024-04-16)
=======================
Parameter Changes
-----------------
* Add a warning to EXPOCODE about the value being allowed to vary in a single file.
* Add EWCT [M/S] and NSCT [M/S] for eastward and northward LADCP current vectors included in CTD data.

API Changes
-----------
* None

v2024.03.0 (2024-03-18)
=======================
Parameter Changes
-----------------
* Add VOLTS as a valid unit for raw CTDTURB

API Changes
-----------
* None

v2023.11.0 (2023-11-25)
=======================
Parameter Changes
-----------------
* Add UMOL/L as acceptable units for NITRAT and NITRIT

API Changes
-----------
* Support for duplicate parameters added ([#25](https://github.com/cchdo/params/issues/25))
* There are some major changes in this version related to how the duplicate parameter work was implemented, all of these changes should be in addition to the existing behavior
  * Parameters are now "aware" if they represent "error" or "flag" columns
  * flag and error column param objects compare equal to their parent params, but have special booleans set so you can do different things with them
  * The `nc_name` attribute should is really now the "base name" and the `full_nc_name` attribute should be used in most instances

v2023.09.0 (2023-09-01)
=======================
Parameter Changes
-----------------
* Add Nd_D_CONC [PMOL/KG] for concentration of dissolved neodymium.
* Add Nd_143_144_D_RATIO_BOTTLE for the ratio of 143Nd to 144Nd in sea water.
* Change the name of Nd_143_D_EPSILON_BOTTLE [10000] to Nd_143_144_D_EPSILON_BOTTLE [10000] to better conform to GEOTRACES naming conventions, an alias from the old name was added.
* Update CF Standard Name table to version 82

API Changes
-----------
* Switch to CalVer versioning scheme

v0.1.21 (2023-06-21)
====================

Parameter Changes
-----------------
* Add 370nm as a wavelength for CDOM
* Update CF Standard Name table to version 81
* Updated the CTDBTA700 [M^-1/SR] warning to indicate this is for a parameter with a centroid angle of 142 degrees.
* Add CTDORP [MILLIVOLTS] that describes a sensor measuring the tendency for chemicals in the water to gain to lose electrons, useful for hydrothermal plume tracking.
* Added/Restored CTDBETA650_124 [M^-1/SR] for the volume scattering function at 650nm with a centroid angle of 124 degrees
* Add D15N_TDN [/MILLE] that describes the enrichment of stable 15-nitrogen isotope in total dissolved nitrogen
* Add 14C-DIC [/MILLE] as an alias for DELC14 [/MILLE]
* Add D15N_ALPHA_N2O [/MILLE] to describe N2O where the center nitrogen has been substituted with 15-N
* Clarify that D15N_N2O [/MILLE] is a substitution in either nitrogen position
* Add NMOL/L as a unit for N2O
* Add CARBONATE [UMOL/KG] for dissolved concentration of the carbonate ion
* Add HFC-134A [PMOL/KG] for dissolved concentration of 1,1,1,2-Tetrafluoroethane
* Add HFC-125 [PMOL/KG] for dissolved concentration of pentafluoroethane
* Add NMOL/L as a volume unit for IODATE
* Add E7/KG as an acceptable unit for I-129 when reported in amount of substance per unit mass, E7 meaning 10^7 atoms following existing unit conventions in this database

API Changes
-----------
* Internal refactor removing the LazyMapping class in favor of collections.UserDict, there should be no user facing changes.

v0.1.20 (2022-08-07)
====================

Parameter Changes
-----------------
* Filled in all remaining missing parameter descriptions, while all params now have more descriptive text, this can always be improved

API Changes
-----------
* Added an `in_erddap` property to WHPNames to indicate if this name should appear in the CCHDO/NOAA ERDDAP data collection

  * Filled in boolean with values agreed to at a meeting on 2022-08-30 with @purkeysg, @sdiggs, @DocOtak, and @lmerchant


v0.1.19 (2022-08-19)
====================

Parameter Changes
-----------------
* Add RA-228E as the error name for RA-228
* Add CS-137 [MBQ/KG] for 137Cs activity in a mass sea water
* Add CS-134 [MBQ/KG] for 134Cs activity in a mass sea water
* Add CS-134 [MBQ/M^3] for 134Cs activity in a volume sea water
* Add LINE for a line transect ID that is NOT a GO-SHIP/WOCE section (e.g. CalCOFI line number)
* Add PH_NBS for pH reported on the NBS standard scale
* Add NH4UNC as the error name for NH4
* Add PHYTOP [1/ML] for phytoplankton cell count
* Add CYANB [1/ML] for cyanobacteria cell count
* Add DELD [/MILLE] for enrichment of deuterium of the seawater itself
* Add BEAMAP [/METER] for the volume absorption coefficient in a discrete sample
* Add LDEO_SAMPNO for ids used at LEDO
* add FDOM [RFU] for fluorescent dissolved organic matter in discrete samples
* Add CDOM300 [/METER] for the attenuation coefficient at 300nm
* Add RIANOMALY [ND] for the refractive index anomaly from pure water at the sodium D line
* Add DELN15 [/MILLE] for enrichment of 15N/14N as compared to the atmosphere
  * Added DELN15 [O/OO] as an alias for this
* Add BNLID for Brookhaven National Laboratory Identification bottle number
* Add NMOL/L as a unit for BARIUM
  * Add nM/L as an alias for this
* Add some rare earth element params using GEOTRACES naming conventions:
 * Ce_D_CONC_BOTTLE [PMOL/L]
 * Dy_D_CONC_BOTTLE [PMOL/L]
 * Er_D_CONC_BOTTLE [PMOL/L]
 * Eu_D_CONC_BOTTLE [PMOL/L]
 * Gd_D_CONC_BOTTLE [PMOL/L]
 * Ho_D_CONC_BOTTLE [PMOL/L]
 * La_D_CONC_BOTTLE [PMOL/L]
 * Lu_D_CONC_BOTTLE [PMOL/L]
 * Pr_D_CONC_BOTTLE [PMOL/L]
 * Sm_D_CONC_BOTTLE [PMOL/L]
 * Tb_D_CONC_BOTTLE [PMOL/L]
 * Tm_D_CONC_BOTTLE [PMOL/L]
 * Yb_D_CONC_BOTTLE [PMOL/L]

* add UMOL/L as a valid unit for PON
* add PON [UMOL/L] for particulate organic nitrogen
* Add DOP [UMOL/KG] for dissolved organic phosphate
* Add TDP [UMOL/L] for total dissolved phosphate
* add POP [UMOL/L] for particulate organic phosphate
* add DATP [PMOL/L] for dissolved ATP
* add PATP [PMOL/L] for dissolved ATP
* add CELLCOUNT [/L] for a count of all the (living) cells of a sample
* Add DOC_NASA [UMOL/L] for DOC measured by the ancillary NASA group
* Add ANTH [MG/M^3] for antheraxanthin measured with HPLC
* Add CHL_C2 [MG/M^3] for chlorophyll c2 measured with HPLC
* Add SPAR [VOLTS] for raw surface reference PAR
* Add UPTAKE placeholder for incubation samples
* Add ABUNDANCE placeholder for counts of plankton cells
* Add QUOTA placeholder for cell-quota model uptake measurements
* Add D15N_NO2 [/MILLE] for isotopic enrichments of 15N in NO2
* Add D15N_NH4 [/MILLE] for isotopic enrichments of 15N in NH4
* Add D15N_N2O [/MILLE] for isotopic enrichments of 15N in N2O
* Add D15N_PON [/MILLE] for isotopic enrichments of 15N in PON
* Add D18O_NO2 [/MILLE] for isotopic enrichments of 18O in NO2
* Add D18O_N2O [/MILLE] for isotopic enrichments of 18O in N2O
* Add [PMOL/L] as allowed units for CFC-11, CFC-12, and CFC113
* Add [FMOL/L] as allowed units for SF6
* Add D15N_NO3+NO2 [/MILLE] as an alias for D15N_NO2+NO3 [/MILLE]
* Add D18O_NO3+NO2 [/MILLE] as an alias for D18O_NO2+NO3 [/MILLE]
* Add DSI30 [/MILLE] as an alias for DELSI30 [/MILLE]
* Add DNSSAL2 for a replicate of density salinity measurement
* Add SALNTY_DNSSAL [PSS-78] for practical salinity measured on the same sample as in DNSSAL


API Changes
-----------
* None

v0.1.18 (2022-07-08)
====================

Parameter Changes
-----------------
* Add CH4 [NMOL/L] as an alternate unit for methane
* Add HCFC-22 [PMOL/KG] for Chlorodifluoromethane concentration
* Add HCFC-142b [PMOL/KG] for 1-Chloro-1,1-difluoroethane concentration
* Add HCFC-141b [PMOL/KG] for 1,1-Dichloro-1-fluoroethane concentration
* Add CCL4 [PMOL/L] for Carbon tetrachloride concentration
* Add CTDBBP700 [/METER] for the volume scattering coefficient due to particles at 700nm
* Add CTDBETA700 [VOLTS] for the raw sensor voltages of a backscatter sensor with a wavelength of 700nm
* Add CTDBETA700 [M^-1/SR] for the volume scattering function at 700nm
* Add CTDOPTOXY [UMOL/KG] for the independently reported optode oxygen
* Add CTDOPTOXY [VOLTS] for the raw optode oxygen voltages
* Add DELSI30 [/MILLE] for silicon isotopic enrichment
* Add many CDOM wavelength parameters
* Add CTDDEPTH [METERS] for the actual calculated depth to the package (not the sea floor)
* Add ODF_CTDPRS [DBAR] for a reported pressure that was calibrated using the ODF acquisition software (not the calibration software).
* Added BTLNBR_U and SAMPNO_U as names for people who really want their NBRs to be actual numbers
* Add XENON [NMOL/KG] and [NMOL/L] for dissolved xenon gas
* Add KRYPTON [NMOL/KG] and [NMOL/L] for dissolved krypton gas
* Add SIP as a placeholder for samples taken for stable isotope probing
* Move rank of DELO17 to be right after DELO18
* Add O2/AR name for oxygen to argon ratio

  * Add O2-AR as an Alias
  * The ncname of o2_ar was taken from the old libcchdo params database

* Add ARGONERR as the uncertainty name for ARGON
* Add UMOL/L as an allowed unit for the following:

  * TOC
  * NO2+NO3
  * PHSPHT
  * SILCAT

* Add PH with no explicit scale information, include a warning about the risks of this
* Add XCO2 [PPM] for CO2 mole fraction in air, with a warning about the lack of information on wet/dry pH2O corrections
* Add CF standard name to CTDTURB [NTU]
* Add new params for P02

  * DNA for a placeholder parameter indicating samples for genetic analysis were taken
  * FCM for a placeholder parameter indicating samples for flow cytometry were taken
  * IMAGES for a placeholder parameter indicating samples for microscopic imaging were taken
  * VIRAL_ABUNDANCE for a placeholder parameter indicating samples for viral abundance were taken
  * POP [UG/L] for particulate organic phosphorus
  * PCOD [UG/L] for particulate chemical oxygen demand
  * Additionally, the units of [UG/L] for POC and PON were added

* Added some aliases:

  * FLUOR [VOLTS] for CTDFLUOR [VOLTS]
  * SIG0 [KG/CUM] for SIG0 [KG/M^3]
  * PHTEMP [DEC C] for PH_TMP [DEG C]
  * PHTEMP [DEG C] for PH_TMP [DEG C]
  * FLUORO [VOLTS] for CTDFLUOR [VOLTS]
  * CHLORA [MG/M**3] for CHLORA [UG/L]
  * PPHYTN [MG/M**3] for PPHYTN [UG/L]
  * PPHYTN [MG/M^] for PPHYTN [UG/L] 
  * PCO2_TMP [DEG C] for PCO2TMP [DEG C]
  * DELHE3 [%] for DELHE3 [PERCNT]
  * BEDFORT [NUM] for BIONBR
  * XMISS [%TRANCE] for CTDXMISS [%TRANS]
  * XMISSCP [1/M] for CTDBEAMCP [/METER]
  * PCO2 [PPM] for XCO2 [PPM]
  * CTDTRBDTY [NTU] for CTDTURB [NTU]
  * CTDTRBDTY [FTU] for CTDTURB [FTU]
  * CTDBEAMCP [1/M] for CTDBEAMCP [/METER]
  * CTDFLUOR [MG/CUM] for CTDFLUOR [MG/M^3]
  * CTDPAR [UPHOTMS] for PAR [UMOL/M^2/SEC]
  * CTDSAL [PSS_78] for CTDSAL [PSS-78]
  * CTDSAL [PSS-68] for CTDSAL [PSS-78]
  * CTDTHETA [DEG C] for THETA [DEG C]
  * CTDCDOMFRAW [0-5VDC] for CTDCDOM [VOLTS]
  * CTDCDOMFRAW [VDC] for CTDCDOM [VOLTS] 
  * CTDCDOMFRAW [V] for CTDCDOM [VOLTS] 
  * SALNTY [ISS78] for SALNTY [PSS-78]
  * CTDSAL [ISS78] for CTDSAL [PSS-78]
  * BTMDEPTH [METERS] for DEPTH [PSS-78]
  * ODF_CTDPRS [DBARS] for ODF_CTDPRS [DBAR]
  * PCO2TMP [DEC C] for PCO2TMP [DEG C]
  * THETA [DEG_C] for THETA [DEG C]


API Changes
-----------
* (BREAKING) The error name look ups in ``WHPNames.error_names`` must now use the units as either a tuple (error_name, units) or an ODV style PARAM [UNIT] string.
* Add a ``WHPName.nc_group`` property to be used when CF wants some columns collapsed into another dimension (e.g. our CDOM params)
* Add the following optical properties to ``WHPName``:

  * ``WHPName.radiation_wavelength`` - The wavelength in nm of some measured light (path, scattering, etc...), not induced or emitted.
  * ``WHPName.scattering_angle`` - The angle in degrees of the scattered light
  * ``WHPName.excitation_wavelengh`` - The wavelength in nm of the light used to excite some response.
  * ``WHPName.emission_wavelengh`` - The wavelength in nm of the light measured in response to some excitation.

* WHPNames may now be looked up using an ODV style "NAME [UNIT]" strings, omitting the entire "[UNIT]" part with unitless parameters.
* Add ``WHPName.nc_name_flag`` and ``WHPName.nc_name_error`` properties which will contain the netCDF variable names for the flag and uncertainty variables, respectively.
* Improve type definition of ``WHPName.flag_w`` to include allowed literal values

v0.1.17 (2022-03-22)
====================

Parameter Changes
-----------------
* The CF Standard Name table was updated to v79

  * Added the new standard names to CCHDO params if appropriate
  * Of particular note is that TCARBN [UMOL/KG] has the standard name: moles_of_dissolved_inorganic_carbon_per_unit_mass_in_sea_water

* Add name CTDNITRATE [UMOL/KG] for an in situ nitrate sensor.
* Add name CTDTURB [FTU] and CTDTURB [NTU] as turbidity names
* Add the following aliases:

  * _INSTRUMENT_NO for INSTRUMENT_ID.
  * PAR [UE/m^2/sec] for PAR [UMOL/M^2/SEC]
  * CTDPAR [UE/SQM/S] for PAR [UMOL/M^2/SEC]
  * CTDOXY [ml/l] for CTDOXY [ML/L]
  * CTDDOXY [UMOL/LG] for CTDOXY [UMOL/KG]
  * CHLORA [MG/M3] for CHLORA [UG/L]
  * PAR [0-5VDC] for PAR [VOLTS]

* Add generic EVENT_NUMBER name used by some cruises.
* Add the old WOCE CTD header name SAMPLING_RATE [HZ].
* Add UMOL/L as a valid unit for CTDOXY.
* Add VOLTS as a valid unit for PAR.
* Changed the following param units from 0-5VDC to just VOLTS.

  * CTDXMISS
  * CTDFLUOR

API Changes
-----------
* Add the ability to add custom aliases to ``WHPNames`` using ``WHPNames.add_alias``
* The ``WHPName.field_width`` property is now no longer optional.

v0.1.16 (2021-11-19)
====================

Parameter Changes
-----------------
* Add the following aliases for CHLORA [UG/L]

  * CHLORA [MG/CUM]
  * CHLORA [MG/M^3]

* Add descriptions to DELC13 and DELC12 names
* Add description to 14C-DOC

  * Add 14C-DOCERR as the uncertainty name

* Add 13C-DOC [/MILLE] as a parameter

  * Add 13C-DOCERR as the uncertainty name

* Add D18O_NO3 as a parameter

  * Add D18O_NO3_ERROR as the uncertainty name

* Changed the units of D15N_NO3 from unitless to /MILLE
* Add D18O_NO2+NO3_ERROR as the uncertainty parameter for D18O_NO2+NO3
* Add D15N_NO2+NO3_ERROR as the uncertainty parameter for D15N_NO2+NO3

API Changes
-----------
* Removed sqlalchemy as an install/runtime dependency, it is still required for dev tasks.
  This has two rather nice effects: only the python standard library is needed for install and import/loading parameters gets a ~10x speed up.

v0.1.15 (2021-09-29)
====================

Parameter Changes
-----------------
* Added D15N_N2 [/MILLE] which describes the isotopic enrichment of dissolved N2 gas.
* Added N2/ARGON and N2/ARGON_UNSTRIPPED which represent the ratio of dissolved N2 gas to ARGON gas, both are unitless ratios.

  * The _UNSTRIPPED name refers to a measurement that has not been stripped of dissolved O2.

* AZOTE has been renamed to N2 [UMOL/KG]

  * AZOTE [UMOL/KG] has been added as an alias
  * Added N2_ERROR as the uncertainty name for N2

API Changes
-----------
* None

v0.1.14 (2021-08-26)
====================

Parameter Changes
-----------------
* None

API Changes
-----------
* The types of the ``WHPNames.groups`` properties was changed from ``tuple`` to ``frozenset`` to speed up ``in`` operations.
* Added a ``WHPName.dtype`` field containing the data type of the parameter as a string.
  The ``data_type`` field has been changed to a computed class property.
  The API of ``data_type`` has not changed, but your static type checkers might be much happier.

v0.1.13 (2021-08-12)
====================

This release focused mostly on code maintainability. 
Lots of tests written for the public API interface and a whole bunch of improvements to the type hints. 
The scaffold for docs has been set up, though content is still being written.

Parameter Changes
-----------------
* The CF Standard Name table was updated to v77
* Added PLUTO [BQ/M^3] which is the activity of from all isotopes of plutonium in the sample
* BQ/M^3 was added as a possible unit for CS-137
* Added some aliases (alias -> canonical):

  * XMISSCP [/METER] -> CTDBEAMCP [/METER]
  * PAR [UE/SQM/S] -> PAR [UMOL/M^2/SEC]
  * TRANSM [VDC] -> CTDXMISS [0-5VDC]
  * FLUORM [VDC] -> CTDFLUOR [0-5VDC]
  * FLUOR [MG/CUM] -> CTDFLUOR [MG/M^3]

API Changes
-----------
* The minimum sqlalchemy version is now 1.4
* An optional ``numeric_precision_override`` keyword arg was added to the ``WHPName.strfex`` method to allow the overriding of builtin print format database.
* Lots of Type Hint (PEP 484) improvements. Most of the instance methods should know what they will return.

v0.1.12 (2021-06-03)
====================

Parameter Changes
-----------------
* The cf standard name mass_concentration_of_chlorophyll_in_sea_water was added to CTDFLUOR [MG/M^3]
* The cf standard name mass_concentration_of_chlorophyll_a_in_sea_water was added to TOT_CHL_A [MG/M^3]
* The field width of BTL_DATE was changed to 8 to match DATE
* The field width of BTL_TIME was changed to 4 to match TIME
* The print precision of CTDXMISS [0-5VDC] was increased to 4.

API Changes
-----------
* A ``WHPName.strfex()`` method was added which formats values passed into it according to the values of ``WHPName.data_type``, ``WHPName.field_width``, and ``WHPName.numeric_precision``. 
  It will convert NaNs, and anything resulting in an empty string to ``-999``. 
  The method name was inspired by the datetime method ``strftime``.

v0.1.11 (2021-05-27)
====================

Parameter Changes
-----------------
* Added HPLC as a placeholder param in exchange files
* Added D15N_NO2+NO3 [/MILLE] and D18O_NO2+NO3[/MILLE] which describe the isotopic enrichment of the elements in NO2+NO3
* Added MICROGELS [1E6 GELS/L] which is the abundance of self assembling organic particles called microgels.
* Added CF113ER as the uncertainty name for CFC113 [PMOL/KG].

API Changes
-----------
* the output of ``WHPNames.legacy_json`` is now guaranteed to be ordered in "preferred" GO-SHIP order rather than database order. 
  The order may change between releasees as the preferred parameter order of GO-SHIP evolves and as new parameters are added.

v0.1.10 (2021-03-15)
====================

Parameter Changes
-----------------
* Added CTDCT [ITS-90] for calculated conservative temperature from CTD sensors
* Added CTDSA [G/KG] for calculated absolute salinity from CTD sensors

Note that these two calculated parameters may appear in data products, but the reported and stored data must continue to be PSS-78 for Salinity and in situ ITS-90 for temperature (see the TEOS-10 user manual).

API Changes
-----------
None

v0.1.9 (2021-01-27)
===================

Parameter Changes
-----------------
None

API Changes
-----------
* WHPNames now has a property ``groups`` with a named tuple containing collections of parameters with the scopes of ``cruise``, ``profile``, and ``sample``. 
  As of release, there were no "cruise" level parameter names in the database. 
  "profile" scoped parameters can/should be in exchange CTD headers. 
  "sample" scoped params must have their values appear in the data block of an exchange file.

v0.1.8 (2021-01-06)
===================

Parameter Changes
-----------------
* (BREAKING) the netcdf variable name for REVTMP [DEG C] has been changed from ``rev_temerature_c`` to ``rev_temperature_c``

API Changes
-----------
* The dict returned by ``WHPName.get_nc_attrs()`` will now include a ``"C_format"`` key if the parameter has both a ``field_width`` and ``numeric_precision``