NEONScience / NEON-dissolved-gas

Repository for a code package that calculates dissolved gas concentrations from air and equilibrated water data, from NEON's Dissolved gases in surface water (DP1.20097.001) data product.
GNU Affero General Public License v3.0
4 stars 8 forks source link

Calculate dissolved gas concentration in equilibrium with atmosphere #1

Open jbeaulie opened 7 years ago

jbeaulie commented 7 years ago

Investigators are frequently interested in the concentration of a dissolved gas when the water body is in equilibrium with the atmosphere. This information, combined with a measurement of the true dissolved gas concentration, allows for the calculation of excess gas, which is defined as the difference between the measured and equilibrium concentration. This parameter can be used for several purposes, including the calculation of emission rates if the air-water gas exchange rate is known.

Consider adding functions to calculate the equilibrium dissolved gas concentration at a given barometric pressure, water temperature, and atmospheric composition. Atmospheric composition data can be provided by the user (i.e., measured CO2 in air). If user provided data are not available, the function should default to the latest global average concentration. Barometric pressure should be corrected for water vapor pressure, which is assumed to be 100% humidity at the air-water interface and can be calculated as a function of barometric pressure and temperature.

It is important that this calculation be performed for the temperature of the water body, whereas the headspace equilibration temperature should be performed for the temperature of the headspace equilibrium. These two temperatures often differ and are frequently measured in the field.

jbeaulie commented 7 years ago

@kcawley

I added this enhancement to the function. The modified function predicts the saturation concentration (i.e. concentration when at equilibrium with atmosphere) using the temperature of the water body. I updated the headspace equilibration calculation to use the temperature of the headspace equilibration, which can be a few degrees different than that of the water body.

I'm testing the revised function now and hope to submit a new pull request by the end of the week.