Skip to main content

A python package to simulate seawater cadmium isotopes

Project description

CdBURY

Introduction

Cadmium is a trace nutrient in seawater. Of particular interest are its two stable isotopes, 114Cd and 110Cd. Cadmium enters the ocean primarily through riverine input and is removed via burial in association with five key compounds:

  • organic carbon
  • sulphide
  • oxyhydroxide
  • clay
  • carbonate

Some of these fluxes remove cadmium without bias toward either isotope, while others exhibit a preference. For instance, organic carbon burial preferentially remove 114Cd over 110Cd (leaving the ocean with a greater fraction of 110Cd). The ratio of the two isotopes of cadmium in seawater can be changed if either the input flux or output fluxes are: large and isotopically distinct from seawater.

Of the burial fluxes, carbonate, oxyhydroxide, and clay are relatively minor, collectively accounting for less than 5% of total cadmium burial. The flux of cadmium associated with sulphide is the dominant output, comprising approximately 80% of cadmium burial. Whether one isotope is favoured during sulphide burial depends on the burial environment: in euxinic conditions (oxygen depleted but sulphide rich), there is no isotopic bias, whereas in other environments, a preference may exist. The flux of cadmium associated with organic carbon accounts for about 20% of cadmium burial, and preferentially removes 114Cd with an isotopic offset from seawater of up to -0.8‰.

About CdBURY

CdBURY is a single-box model designed to simulate the fluxes of cadmium in the ocean as described above. It supports forward simulations, allowing users to perturb parameters at specific times, as well as inverse simulations. In the inverse mode, the model is provided with a record of δ114Cd changes in seawater over time and adjusts the prescribed fluxes to match the observed data. Currently, the model supports inversion for organic carbon burial fluxes.

Example Usage

Here is an example which starts with a steady state system for seawater cadmium, estimates how this changes over one million years, with a perturbation which turns cadmium burial in organic carbon off 500,000 years into the run.

from CdBURY.classes import Time,CadmiumMassIsotope,CadmiumFluxes,Perturbation,FluxType
from CdBURY import CdBURY

initial_seawater = CadmiumMassIsotope(1.0*8.36e11,-0.1)

isotope_offsets = CadmiumFluxes(-0.1,
                                0.0,
                                -0.55,
                                0.0,
                                -0.80,
                                0.0)

flux_proportions = CadmiumFluxes(1.0,
                            0.01,
                            0.03,
                            0.01,
                            0.11125,
                            0.84875)
flux_proportions.sulphide = flux_proportions.input-(flux_proportions.oxyhydroxide+flux_proportions.carbonate+flux_proportions.clay+flux_proportions.organic)
input_flux = 30000000.0
initial_fluxes = CadmiumFluxes(input_flux*flux_proportions.input,
                                input_flux*flux_proportions.oxyhydroxide,
                                input_flux*flux_proportions.carbonate,
                                input_flux*flux_proportions.clay,
                                input_flux*flux_proportions.organic,
                                input_flux*flux_proportions.sulphide)

input_balanced = CdBURY.Model.calculate_balanced_input(initial_seawater,
                                                                initial_fluxes,
                                                                isotope_offsets)

adjusted_isotope_offsets = CadmiumFluxes(input_balanced.isotope_delta,
                                            isotope_offsets.oxyhydroxide,
                                            isotope_offsets.carbonate,
                                            isotope_offsets.clay,
                                            isotope_offsets.organic,
                                            isotope_offsets.sulphide)


time_configuration = Time(1.0,0.001,0.0,units="Myr")
model = CdBURY.Model(time_configuration,
                    initial_seawater,
                    initial_fluxes,
                    adjusted_isotope_offsets,
                    dynamic_mass=True)


model.change_flux(Perturbation(0.50,
                               FluxType.organic,
                               CadmiumMassIsotope(0.0,-0.8)))

model.solve()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cdbury-0.1.1.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cdbury-0.1.1-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file cdbury-0.1.1.tar.gz.

File metadata

  • Download URL: cdbury-0.1.1.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.0

File hashes

Hashes for cdbury-0.1.1.tar.gz
Algorithm Hash digest
SHA256 799687f9ade6a5aac438b1f84ca0a4a4a49c39783995477fbe23a6792e062935
MD5 ee787b3d48228b8945f654044e568e77
BLAKE2b-256 253fb670764c71bef920db4004e046aff1c4661b41b1dfe581f0d961792ec8cc

See more details on using hashes here.

File details

Details for the file cdbury-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: cdbury-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.0

File hashes

Hashes for cdbury-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 89cb6206c2e62055ea4a994209836875b99e558d0e5cbfd2001279c1e5cb3445
MD5 f502bff720194b6332a74daf677c258d
BLAKE2b-256 8d4b25b5dd79e92d402a41837d841538da718ecbd0948a9ed29da80ade835b1e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page