v0.1.20 (unreleased)
====================

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

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


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 volumne absorption coefficient in a discrete sample
* Add LDEO_SAMPNO for ids used at LEDO
* add FDOM [RFU] for fluroescent 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 particualte 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 anciallary 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 placehodler for counts of planton 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 bacscatter sensor with a wavelength of 700nm
* Add CTDBETA700 [M^-1/SR] for the volume scattering function at 700nm
* Add CTDOPTOXY [UMOL/KG] for the indipendently 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 calcualted depth to the package (not the sea floor)
* Add ODF_CTDPRS [DBAR] for a reported pressure that was calibrated using the ODF acqusition 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 collaposed into another dimmension (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, respectivly.
* 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``