Skip to content

Commit

Permalink
updated readme and omgph
Browse files Browse the repository at this point in the history
  • Loading branch information
jesstierney committed Sep 26, 2022
1 parent 358de15 commit 635490f
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 10 deletions.
12 changes: 5 additions & 7 deletions omegaph/omgph.m
Original file line number Diff line number Diff line change
Expand Up @@ -108,17 +108,16 @@
tloc=coords(i,:);
%first check for GoM locations
if ind_g(i)
d1=findnearest(depth(i),gom.depth);
omega(i)=gom.omega(d1(1));
[~,d1]=min(abs(depth(i)-gom.depth));
omega(i)=gom.omega(d1);
%notice we are grabbing surface ph
ph(i)=gom.ph(1);
dists_om(i)=0;
dists_ph(i)=0;
%next check for Carib location
elseif ind_c(i)
d1=findnearest(depth(i),wdepth);
d1=d1(1);
lat1=findnearest(tloc(2),lat_carib);
[~,d1]=min(abs(depth(i)-wdepth));
lat1=min(abs(tloc(2)-lat_carib));
ph(i)=ph_carib(lat1(1));
omega(i)=omega_carib(lat1(1),d1);
%loop in case you grab a NaN for omega
Expand All @@ -138,8 +137,7 @@
if isnan(depth(i))
omega(i)=NaN;
else
dnew=findnearest(depth(i),wdepth);
dnew=dnew(1);
[~,dnew]=min(abs(depth(i)-wdepth));
[dmin,imin]=min(EarthChordDistances_2(locs_obs_omega{dnew},tloc));
%if omega is greater than cutoff, search nearby depths
while dmin > max_dist
Expand Down
10 changes: 7 additions & 3 deletions readme.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
# BAYMAG

The BAYMAG package is a set of Bayesian hierarchical models for Mg/Ca in planktic foraminifera. The functions here can be used to both predict Mg/Ca from T, S, pH, Omega, and cleaning method, and predict T given constraints on the other four predictor variables. For a full discussion of this model, please see Tierney et al., 2019, Paleoceanography & Paleoclimatology (in prep).
The BAYMAG package is a set of Bayesian hierarchical models for Mg/Ca in planktic foraminifera. The functions here can be used to both predict Mg/Ca from T, S, pH, Omega, and cleaning method, and predict T given constraints on the other four predictor variables. For a full discussion of this model, please read the source publication:

Jessica E. Tierney, Steven B. Malevich, William Gray, Lael Vetter, and Kaustubh Thirumalai (2019), Bayesian calibration of the Mg/Ca paleothermometer in planktic foraminifera. Paleoceanography & Paleoclimatology 34, 2005--2030, https://doi.org/10.1029/2019PA003744.

A quick guide to basic use:

To model Mg/Ca from T, S, pH, Omega, and cleaning values:
Use baymag_forward.m. This function calculates Mg/Ca values using posterior draws from the calibration model (stored in the params.mat files). It has the option to add a normal prior if you would like to place some restrictions on posterior Mg/Ca, and to account for changing Mg/Ca of seawater (for longer geological timescales). baymag_forward has no dependent functions but does need the params.mat files.
Use baymag_forward.m or baymag_forward_ln.m (which calculates ln(Mg/Ca)). These functions calculate Mg/Ca values using posterior draws from the calibration model (stored in the params.mat files). It has the option to add a normal prior if you would like to place some restrictions on posterior Mg/Ca, and an option to account for changing Mg/Ca of seawater (for longer geological timescales). baymag_forward and baymag_forward_ln have no dependent functions but do need the params.mat files.

To model SST from Mg/Ca, S, pH, Omega, and cleaning values:
Use baymag_predict.m. This function calculates SST given Mg/Ca and inputs of S, pH, Omega, and cleaning through Bayesian inference. It has an option to correct for Mg/Ca of seawater changes. The Bayesian models are written in Stan (mgpred.stan and mgpred_sw.stan). You will need to install both Stan and MatlabStan in order to use this function. Download the latest version of the command line version of Stan here: https://github.com/stan-dev/cmdstan/releases. BAYMAG has been tested up to v2.19.1. MatlabStan is here: https://github.com/brian-lau/MatlabStan/releases. BAYMAG has been tested with v2.15.1.0. Alternatively, you can run the Stan models from Python or R, but in that case you will need to write your own wrapper like baymag_predict.
Use baymag_predict.m. This function calculates SST given Mg/Ca and inputs of S, pH, Omega, and cleaning through Bayesian inference. It has an option to correct for Mg/Ca of seawater changes. The Bayesian models are written in Stan (mgpred.stan and mgpred_sw.stan). You will need to install both Stan and MatlabStan in order to use this function. Download the latest version of the command line version of Stan here: https://github.com/stan-dev/cmdstan/releases. BAYMAG has been tested up to v2.30.1. MatlabStan is here: https://github.com/brian-lau/MatlabStan/releases. BAYMAG has been tested with the last released version, v2.15.1.0. NOTE: if you try and run MatlabStan and get the error "Having a problem getting stan version", open up StanModel.m and comment out Line 196: ver = self.stan_version(). Add a new line below: ver = '2.30.1'; (or replace with the current version of cmdstan).

Alternatively, you can run the Stan models from Python or R, but in that case you will need to write your own wrapper like baymag_predict.

To model SST from Mg/Ca, S, pH, Omega, and cleaning values and include errors in S, pH, and Omega:
Use baymag_predict_err.m. This version allows the user to input priors for T, S, pH, and Omega and therefore include uncertainties in S, pH, and Omega. It iteratively solves for posteriors for all four variables, thus be advised that it is quite a bit slower than baymag_predict.m. It also has an option for a seawater correction.
Expand Down

0 comments on commit 635490f

Please sign in to comment.