These codes for calculating Indian Ocean basinwide temperature change accompany the paper:
Wenegrat, J.O., E. Bonanno, U. Rack, and G. Gebbie, 2022: A century of observed temperature change in the Indian Ocean. Geophys. Res. Lett., in press, 2022.
This code base is using the Julia Language and DrWatson to make a reproducible scientific project named
HistoricalIndianOcean
It is authored by G Jake Gebbie.
To (locally) reproduce this project, do the following:
julia> using Pkg
julia> Pkg.add("DrWatson") # install globally, for using `quickactivate`
julia> Pkg.activate("path/to/this/project")
julia> Pkg.instantiate()
This will install all necessary packages for you to be able to run the scripts and everything should work out of the box, including correctly finding local paths.
The script at scripts/TemperatureDifference_Allparams.jl
solves for the Indian Ocean average temperature change from the time of two different historical time periods up to the most recent climatology from the World Ocean Atlas. The scripts runs 24 sets of parameters (and creates 24 solutions) for temperature change and its standard error as a function of depth.
The script at scripts/TemperatureDifference_Bestparams.jl
solves for the Indian Ocean average temperature change using the best algorithmic parameters: \
Tbar_LxyS=2000000
m \
LxyT=450000
m \
LzAVG=500
m \
LzS=1000
m \
LzT=450
m \
sratio=0.04
\
tratio=2.0
\
σS=1.0
degrees C \
σobs=0.14
degrees C .
3 cases are solved:
Basinwide-temperature change is solved using code in src/HistoricalIndianOcean.jl
that represents an inverse method that accounts for three distinct sources of contamination in temperature observations. The list of available functions is stated in the export
statement at the top of this source code.
All error bars are 1 sigma. Unicode symbols are used in some places; please submit a GitHub Issue if they cause problems.
Output of the code is not included with this GitHub repository. Figures are created in a plots
directory. The all
directory is output from the sensitivity study using all parameters. The best
directory contains just the plots from the best parameter choises. CSV output for vertical profile quantities is created in data/*/*csv
. The complete state of the analysis is saved in Julia output at data/*/*jld2
. Output in NetCDF or Excel formats could also be created with a little extra work.
Install the latest stable version of Julia (currently 1.7+). Figures are made with PlotlyJS.jl. Once the package has been instantiated following #1 above, the code can be run at the command line by changing to the repository base directory and running:
julia scripts/TemperatureDifferenceBestparams.jl
.
For an interactive session, it is possible to run the lines of TemperatureDifferenceBestparams.jl
line by line. The statement include("intro.jl")
will automatically activate the project environment and download and install the proper Julia packages.
Documentation is found in a LaTeX-generated document in papers
directory.
How to set up a LaTeX file for compilation/bibliography:
C-c e
to open ebib, should open main.bib, If it doesn't, then toggle LaTeX mode with M-x LaTeX-mode
(not just latex-mode, not sure why there are two modes with different capitalization)
M c
or similaro
open the dependent database in ebibz
to minimize ebibebib-local-bibfiles
or C-h v
to manually customize
M-:
then (setq ebib-local-bibfiles '("HistoricalIndianOcean.bib"))
C-c b
will insert new citation from main.bib, add it to the local bib file
Biblio.el to look up references from internet \
M-x biblio-lookup
or M-x crossref-lookup
First open ebib in the main database before doing a crossref lookup
how to import new citations
B
in main.bib, give doi.
or M-x biblio-lookup
, choose CrossRef, use e
to import to ebibo
C-c b
to cite new key\
Otherwise the dependent bib will be overwritten with full main.bib. how to compile LaTeX and view PDF
C-c C-a
;; i.e., do all