DOI: 10.5281/zenodo.8144244
title: Global OCpetro Oxidation: data, code and environments

description: A repository of data files, code and python/R environments for the manuscript "Rock organic carbon oxidation CO<sub>2</sub> release offsets silicate weathering sink" by Jesse R. Zondervan, Robert G. Hilton, Mathieu Dellinger, Fiona J. Clubb, Tobias Roylands, Mateja Ogrič. This repository contains an Excel file and several zip files. <em>Zip files containing code, data and python environment to run a simulation of the Global OCpetro Oxidation model:</em> <strong>River rhenium (Re) and OC<sub>petro</sub> oxidation data: </strong>Supplementary Tables.xlsx <strong>Code only:</strong> Global_OCpetro_Oxidation-v1.1.0.zip (uploaded Github repository) <strong>Geospatial data files only:</strong> input_global_(data files only).zip <strong>Python environment only:</strong> ocpetro_oxidation_env.zip <strong>Code, data and environment:</strong> ocpetro_oxidation_code_data_env.zip <em>Outputs of the model presented in the manuscript:</em> Geospatial raster files of Fig 1: Re sample locations shapefile (panel A): Re_sample_locations.zip Re sample catchment shapefile (panel A): Re_sample_catchments.zip Median OC<sub>petro</sub> stocks model (panel B): Output_OCpetro_stock_median.zip Median denudation model (panel C): Output_denudation_median.zip Best-fit OC<sub>petro</sub> oxidation extrapolation (panel D): Output_OC_petro_oxidation.zip <em>Denudation and OCpetro stock subroutines (for transparency only, not needed to run OCpetro oxidation simulation):</em> <strong>Code, data and R environment (python environment from ocpetro_oxidation_env.zip, see above):</strong> Submodels_code_data_Renv.zip The easiest way to run the code is by downloading the zip file containing code, data and environment, and then unpacking using packages provided by the OS, or by running the 'anaconda-project unarchive' command. Instructions for this can be found by searching for anaconda-project online, or directly via https://anaconda-project.readthedocs.io/en/latest/user-guide/tasks/create-project-archive.html?highlight=unarchive#extracting-the-archive-file [last accessed 26/01/2023] The code was developed in a python environment detailed in anaconda-project.yml, with every recursive dependency down to the individual build in anaconda-project-locked.yml. The code file is "Glob_newmethod_parr_globalresidual.py" in this repository. This code should be reproducible indefinitely, without depending on online package repositories. Both the commands and the environment have been captured into a fully locked anaconda project with all conda packages unpacked and included using anaconda-project --pack-envs. Note that only packages for running the code on Linux can be unpacked in this way; building on other platforms (Windows, Mac) will still require access to repositories. Notes: This code was run on an HPC environment with a job submitter called SLURM. As such, the code will run according to a slurm job array with numbers from 1-100 (10,000 monte carlo simulations). The command to run the Monte Carlo simulation as 10,000 seperate jobs is done like this: "sbatch --array=1-10000:1 job_script_file_name.sh". Note that the version of code uploaded here is set to run 100 simulations ("sbatch --array=1-100:1 job_script_file_name.sh"). When running 10,000 simulations, please change line 46 to "quantile = float(os.getenv('SLURM_ARRAY_TASK_ID'))/10000." Whilst it is possible to run this code on a single machine such as a personal computer, the user is warned that it takes 24 core hours per simulation to run. For example, a typical 4-core laptop would need 6 hours to run one simulation. Now calculate how many 10,000 would take... To run one simulation, line 46 ("quantile = float(os.getenv('SLURM_ARRAY_TASK_ID'))/100.") can be replaced with ("quantile = float(number between 0 and 1)"). Outputs will be saved for each simulation, which can rack up a lot of space, unless you specifically put in lines to delete these from the disk, or, in the case of the example job script for HPC usage, exclude the files when moving data from the node that ran the job. Example: sbatch --array=1-100:1 run_Glob_OCpetro_model.sh #note that this runs 100 simulations. An example of a job script file has been appended. Please note that the details of this job script depend on your machine or HPC system. Please consult your HPC support or platform's (Linux, Mac, Windows) command prompt instructions.