calcCO2corr <- function(df, pool, ...) {
if (nrow(df) == 1 & ncol(df) == 5 & all(c('WTW_Temp_degC_1', 'Field_BP', 'Field_BP_altitude', 'vaisala_std_curve_id') %in% colnames(df))) {
rawCO2 <- df %>% pull(1)
temp <- df %>% pull('WTW_Temp_degC_1')
fieldPressure <- df %>% pull('Field_BP')
altPressure <- df %>% pull('Field_BP_altitude')
stdCurveId <- df %>% pull('vaisala_std_curve_id')
if (!is.na(stdCurveId) & stdCurveId > 0) {
stdCurve <- getRows(pool, 'standard_curves', id == stdCurveId)
rawCO2 <- rawCO2 * stdCurve$a + stdCurve$b
}
if (!is.na(temp)) {
if (!is.na(fieldPressure) & fieldPressure <= 1050 & fieldPressure >= 700) {
return(
rawCO2 * fieldPressure * 298 / ( 1013 * (273 + temp) )
)
} else if (!is.na(altPressure)) {
return(
rawCO2 * altPressure * 298 / ( 1013 * (273 + temp) )
)
}
}
}
as.numeric(NA)
}