Skip to content

Cosmogenic Nuclides API

This page is generated from the built Python runtime manifest. Do not edit signatures here.

CRNBurialResult

Result of :func:crn_burial_pair: pre-burial erosion rate (g/cm^2/yr), burial age (years) and ratio diagnostics; status is "Converged", "NoSolution", "NotUnique" or "NotConverged".

Returned by crn_burial_pair(); not constructible directly.

Attributes

apparent_erosion_rate_g_cm2_yr : float burial_age_yr : float burial_required : bool measured_ratio : float nuclide_fast : str nuclide_slow : str preburial_erosion_rate_g_cm2_yr : float status : str steady_state_ratio : float

Authors

B. Gailleton

Members

apparent_erosion_rate_g_cm2_yr

(self) -> float

burial_age_yr

(self) -> float

burial_required

(self) -> bool

measured_ratio

(self) -> float

nuclide_fast

(self) -> str

nuclide_slow

(self) -> str

preburial_erosion_rate_g_cm2_yr

(self) -> float

status

(self) -> str

steady_state_ratio

(self) -> float


CRNColumn

One-dimensional cosmogenic-nuclide column model.

Set an erosion history, ordered from present backwards in time, then use transient to model depth profiles. Point steady-state and step-change calculations require no history. Erosion rates for these point calculations are effective rates in g/cm²/yr.

The history (set_erosion_history or read_erosion_history) has rows time (years before present at which the rate changes, increasing), rate (erosion rate in m/yr; 0 means an instantaneous removal event) and removal (metres removed, used only when rate is 0); the last row must be time = -9999 with the positive long-term background rate.

Construct it as

CRNColumn(rock_density_kg_m3: float = 2650.0)

Parameters

rock_density_kg_m3 : float, default=2650.0 Rock density (kg/m^3, positive) converting depths in m to effective depths in g/cm^2 (depth_m * density * 0.1).

Attributes

depth_change_m : float Total depth (m) removed over the history: added to sampling depths to get their starting depths. erosion_rate_m_yr : list[float] History erosion rates (m/yr). removal_m : list[float] History removal depths (m). rock_density_kg_m3 : float Rock density (kg/m^3). time_yr_bp : list[float] History times (years before present).

Methods

read_erosion_history(path: str) -> None Read the erosion history from a CSV file with header time,rate,removal. set_erosion_history(time_yr_bp: Sequence[float], erosion_rate_m_yr: Sequence[float], removal_metres: Sequence[float]) -> None Set the history. Last row must be time=-9999 with a positive background rate. steady_state(effective_depth_g_cm2: float = 0.0, effective_erosion_rate_g_cm2_yr: float = 0.01, production_scaling: float = 1.0, total_shielding: float = 1.0, muon_scheme: str = 'BraucherBorchers') -> CRNColumnSample Return steady-state concentrations at one effective depth. step_change(effective_depth_g_cm2: float = 0.0, effective_erosion_rate_old_g_cm2_yr: float = 0.01, effective_erosion_rate_new_g_cm2_yr: float = 0.01, time_since_step_yr: float = 0.0, production_scaling: float = 1.0, total_shielding: float = 1.0, muon_scheme: str = 'BraucherBorchers') -> CRNColumnSample Return concentrations after a step change in erosion rate. transient(sampling_depths_metres: Sequence[float], production_scaling: float = 1.0, total_shielding: float = 1.0, muon_scheme: str = 'BraucherBorchers', initial_10be: float = -1.0, initial_26al: float = -1.0, initial_14c: float = -1.0) -> list[CRNColumnSample] Run the erosion history and return concentrations at the given depths.

Authors

B. Gailleton S. M. Mudd

Deprecated compatibility names: - removal_m -> removal_metres; earliest removal: following minor. - sampling_depths_m -> sampling_depths_metres; earliest removal: following minor.

def __init__(self, rock_density_kg_m3: float = 2650.0) -> None

Members

__init__

init(self, rock_density_kg_m3: float = 2650.0) -> None

def __init__(self, rock_density_kg_m3: float = 2650.0) -> None

depth_change_m

Total depth (m) removed over the history: added to sampling depths to get their starting depths.

erosion_rate_m_yr

History erosion rates (m/yr).

read_erosion_history

read_erosion_history(self, path: str) -> None

Read the erosion history from a CSV file with header time,rate,removal.

Parameters

path : str CSV file; columns as in set_erosion_history (years BP, m/yr, m).

Returns

None

def read_erosion_history(self, path: str) -> None

removal_m

History removal depths (m).

rock_density_kg_m3

Rock density (kg/m^3).

set_erosion_history

set_erosion_history(self, time_yr_bp: collections.abc.Sequence[float], erosion_rate_m_yr: collections.abc.Sequence[float], removal_metres: collections.abc.Sequence[float]) -> None

Set the history. Last row must be time=-9999 with a positive background rate.

Parameters

time_yr_bp : list of float Times (years before present) of each rate change, increasing; the last is -9999. erosion_rate_m_yr : list of float Erosion rate (m/yr) from each time; 0 marks an instantaneous removal. removal_metres : list of float Depth removed (m) at rows with rate 0, else 0.

Returns

None

def set_erosion_history(self, time_yr_bp: collections.abc.Sequence[float], erosion_rate_m_yr: collections.abc.Sequence[float], removal_metres: collections.abc.Sequence[float]) -> None

steady_state

steady_state(self, effective_depth_g_cm2: float = 0.0, effective_erosion_rate_g_cm2_yr: float = 0.01, production_scaling: float = 1.0, total_shielding: float = 1.0, muon_scheme: str = 'BraucherBorchers') -> lsdtt3.CRNColumnSample

Return steady-state concentrations at one effective depth.

Parameters

effective_depth_g_cm2 : float, default=0.0 Sample depth as effective depth (g/cm^2); 0 is the surface. effective_erosion_rate_g_cm2_yr : float, default=0.01 Steady erosion rate (g/cm^2/yr). production_scaling : float, default=1.0 Production-scaling factor (1 at sea level, high latitude). total_shielding : float, default=1.0 Combined shielding factor (0-1; 1 = unshielded). muon_scheme : str, default="BraucherBorchers" Muon production parameterisation ("Braucher", "BraucherBorchers", "Granger", "Schaller" or "newCRONUS").

Returns

CRNColumnSample Be-10, Al-26 and C-14 concentrations (atoms/g).

def steady_state(self, effective_depth_g_cm2: float = 0.0, effective_erosion_rate_g_cm2_yr: float = 0.01, production_scaling: float = 1.0, total_shielding: float = 1.0, muon_scheme: str = 'BraucherBorchers') -> lsdtt3.CRNColumnSample

step_change

step_change(self, effective_depth_g_cm2: float = 0.0, effective_erosion_rate_old_g_cm2_yr: float = 0.01, effective_erosion_rate_new_g_cm2_yr: float = 0.01, time_since_step_yr: float = 0.0, production_scaling: float = 1.0, total_shielding: float = 1.0, muon_scheme: str = 'BraucherBorchers') -> lsdtt3.CRNColumnSample

Return concentrations after a step change in erosion rate.

Parameters

effective_depth_g_cm2 : float, default=0.0 Sample depth as effective depth (g/cm^2). effective_erosion_rate_old_g_cm2_yr, effective_erosion_rate_new_g_cm2_yr : float, default=0.01 Erosion rate before and after the change (g/cm^2/yr). time_since_step_yr : float, default=0.0 Years since the change. production_scaling : float, default=1.0 Production-scaling factor (1 at sea level, high latitude). total_shielding : float, default=1.0 Combined shielding factor (0-1; 1 = unshielded). muon_scheme : str, default="BraucherBorchers" Muon production parameterisation ("Braucher", "BraucherBorchers", "Granger", "Schaller" or "newCRONUS").

Returns

CRNColumnSample

def step_change(self, effective_depth_g_cm2: float = 0.0, effective_erosion_rate_old_g_cm2_yr: float = 0.01, effective_erosion_rate_new_g_cm2_yr: float = 0.01, time_since_step_yr: float = 0.0, production_scaling: float = 1.0, total_shielding: float = 1.0, muon_scheme: str = 'BraucherBorchers') -> lsdtt3.CRNColumnSample

time_yr_bp

History times (years before present).

transient

transient(self, sampling_depths_metres: collections.abc.Sequence[float], production_scaling: float = 1.0, total_shielding: float = 1.0, muon_scheme: str = 'BraucherBorchers', initial_10be: float = -1.0, initial_26al: float = -1.0, initial_14c: float = -1.0) -> list[lsdtt3.CRNColumnSample]

Run the erosion history and return concentrations at the given depths.

Parameters

sampling_depths_metres : list of float Depths (m) below the present surface. production_scaling : float, default=1.0 Production-scaling factor (1 at sea level, high latitude). total_shielding : float, default=1.0 Combined shielding factor (0-1; 1 = unshielded). muon_scheme : str, default="BraucherBorchers" Muon production parameterisation ("Braucher", "BraucherBorchers", "Granger", "Schaller" or "newCRONUS"). initial_10be, initial_26al, initial_14c : float, default=-1.0 Uniform initial concentrations (atoms/g); negative starts at steady state with the background erosion rate.

Returns

list of CRNColumnSample One sample per depth.

def transient(self, sampling_depths_metres: collections.abc.Sequence[float], production_scaling: float = 1.0, total_shielding: float = 1.0, muon_scheme: str = 'BraucherBorchers', initial_10be: float = -1.0, initial_26al: float = -1.0, initial_14c: float = -1.0) -> list[lsdtt3.CRNColumnSample]

CRNColumnSample

A modeled cosmogenic-nuclide sample within a column.

Concentrations are atoms/g and effective depth is g/cm².

Returned by CRNColumn.steady_state(), CRNColumn.step_change(), CRNColumn.transient(); not constructible directly.

Attributes

concentration_al26 : float concentration_be10 : float concentration_c14 : float depth_m : float effective_depth_g_cm2 : float

Authors

B. Gailleton

Members

concentration_al26

(self) -> float

concentration_be10

(self) -> float

concentration_c14

(self) -> float

depth_m

(self) -> float

effective_depth_g_cm2

(self) -> float


CRNStepPairResult

Result of :func:crn_step_change_pair: new erosion rate (g/cm^2/yr), time since the change (years) and the predicted concentrations (atoms/g); status is "Converged", "NoSolution", "NotUnique" or "NotConverged".

Returned by crn_step_change_pair(); not constructible directly.

Attributes

erosion_rate_g_cm2_yr : float fast_concentration_predicted : float n_brackets : int slow_concentration_predicted : float status : str time_since_change_yr : float

Authors

B. Gailleton

Members

erosion_rate_g_cm2_yr

(self) -> float

fast_concentration_predicted

(self) -> float

n_brackets

(self) -> int

slow_concentration_predicted

(self) -> float

status

(self) -> str

time_since_change_yr

(self) -> float


crn_accumulated_concentration

Route an upstream weight-averaged CRN concentration to every D8 pixel.

Each pixel gets the mean concentration of its upslope area weighted by weight (normally the erosion rate, so the result is the sediment-flux-weighted concentration a river sample would carry).

Parameters

concentration : Raster Concentration (atoms/g) on the flow grid. weight : Raster Weights on the same grid, for example erosion rate (g/cm^2/yr). flow : FlowInfo Flow topology on the same grid.

Returns

Raster Weighted upslope-mean concentration (atoms/g).

Authors

B. Gailleton

def crn_accumulated_concentration(concentration: lsdtt3.Raster, weight: lsdtt3.Raster, flow: lsdtt3.FlowInfo) -> lsdtt3.Raster

crn_apparent_erosion_rate

Invert a surface concentration for its apparent steady-state erosion rate.

Parameters

nuclide : {"Be10", "Al26", "C14"} Measured nuclide. concentration_atoms_g : float Measured concentration (atoms/g). total_scaling : float, default=1.0 Production scaling x shielding factor (dimensionless). muon_scheme : str, default="BraucherBorchers" Muon production parameterisation ("Braucher", "BraucherBorchers", "Granger", "Schaller" or "newCRONUS").

Returns

dict "erosion_rate_g_cm2_yr" (float) and "status" ("Converged", "NoSolution", "NotUnique" or "NotConverged").

Authors

B. Gailleton

def crn_apparent_erosion_rate(nuclide: str, concentration_atoms_g: float, total_scaling: float = 1.0, muon_scheme: str = 'BraucherBorchers') -> dict

crn_burial_pair

Invert a two-nuclide burial pair. nuclide_fast must decay faster.

Parameters

nuclide_fast, nuclide_slow : str Shorter- and longer-lived nuclides, for example "Al26" and "Be10". concentration_fast_atoms_g, concentration_slow_atoms_g : float Measured concentrations (atoms/g). total_scaling : float, default=1.0 Production scaling x shielding factor (dimensionless). muon_scheme : str, default="BraucherBorchers" Muon production parameterisation ("Braucher", "BraucherBorchers", "Granger", "Schaller" or "newCRONUS").

Returns

CRNBurialResult Pre-burial erosion rate, burial age and ratio diagnostics.

Authors

B. Gailleton

def crn_burial_pair(nuclide_fast: str, nuclide_slow: str, concentration_fast_atoms_g: float, concentration_slow_atoms_g: float, total_scaling: float = 1.0, muon_scheme: str = 'BraucherBorchers') -> lsdtt3.CRNBurialResult

crn_invert_basin_erosion

Invert basin-mean erosion rates from a point GeoDataFrame.

Points are projected to the flow-grid CRS, snapped to the nearest D8 channel meeting channel_threshold_pixels, then inverted with the native CAIRN solver over each snapped outlet's exact upslope pixel set. Failed rows remain in the returned GeoDataFrame and are identified by crn_status.

Parameters

flow : FlowInfo Flow topology of the (conditioned) DEM. samples : geopandas.GeoDataFrame Point geometries of the river samples (any declared CRS; reprojected to the flow grid's CRS) with a concentration column. production_scaling : Raster Production-scaling factor on the flow grid (crn_production_scaling). concentration_column : str, default="concentration" Column of measured concentrations in atoms/g (positive). nuclide : {"Be10", "Al26", "C14"}, default="Be10" Cosmogenic nuclide. muon_scheme : str, default="BraucherBorchers" Muon production parameterisation: "Braucher", "BraucherBorchers", "Granger", "Schaller" or "newCRONUS". channel_threshold_pixels : int, default=1000 Samples snap to the nearest pixel with at least this many contributing pixels (positive). snap_radius_pixels : int, default=25 Largest snapping search radius (pixels, non-negative). topographic_shielding : Raster or None, default=None Topographic shielding factor (dimensionless, 0-1; 1 = unshielded) on the same grid; None means 1 everywhere. snow_shielding : Raster or None, default=None Snow shielding as an effective depth (g/cm^2); None means 0 (no snow). self_shielding : Raster or None, default=None Self (sample-thickness) shielding as an effective depth (g/cm^2); None means 0 (surface sample). rock_density_kg_m3 : float, default=2650.0 Rock density (kg/m^3) used to convert to mm/kyr.

Returns

geopandas.GeoDataFrame Copy of samples with columns crn_status ("ok", "invalid_geometry", "invalid_concentration", "outside_flow_grid" or "channel_not_found"), input_x, input_y, input_row, input_col, snapped_row, snapped_col, snapped_x, snapped_y, outlet_flat, channel_contributing_pixels, snap_radius_pixels, basin_pixels, basin_area_m2, erosion_rate_g_cm2_yr, erosion_rate_mm_kyr, predicted_concentration_atoms_g.

Authors

B. Gailleton

def crn_invert_basin_erosion(flow: lsdtt3.FlowInfo, samples: object, production_scaling: lsdtt3.Raster, concentration_column: str = 'concentration', nuclide: str = 'Be10', muon_scheme: str = 'BraucherBorchers', channel_threshold_pixels: int = 1000, snap_radius_pixels: int = 25, topographic_shielding: lsdtt3.Raster | None = None, snow_shielding: lsdtt3.Raster | None = None, self_shielding: lsdtt3.Raster | None = None, rock_density_kg_m3: float = 2650.0) -> object

crn_isotope_ratio

Return an isotope-ratio raster with nodata-accounting counts.

Parameters

numerator, denominator : Raster Concentrations (atoms/g) on the same grid, for example Al26 and Be10.

Returns

dict "raster": ratio Raster (nodata where either input is nodata, the denominator is 0, or the result is not finite); "n_valid", "n_zero_denominator", "n_one_input_masked", "n_non_finite": pixel counts.

Authors

B. Gailleton

def crn_isotope_ratio(numerator: lsdtt3.Raster, denominator: lsdtt3.Raster) -> object

crn_outlet_concentration

Return erosion-weighted upstream CRN concentration at one outlet pixel.

Parameters

concentration : Raster Concentration (atoms/g) on the flow grid. erosion_rate : Raster Erosion rate (g/cm^2/yr) used as the weight. flow : FlowInfo Flow topology on the same grid. row, col : int Outlet pixel.

Returns

float Basin-averaged concentration (atoms/g).

Authors

B. Gailleton

def crn_outlet_concentration(concentration: lsdtt3.Raster, erosion_rate: lsdtt3.Raster, flow: lsdtt3.FlowInfo, row: int, col: int) -> float

crn_pair_diagnostics

Apply native two-nuclide burial or step-change diagnostics to GeoDataFrame rows.

mode='burial' reports pre-burial erosion, burial age and ratio diagnostics. mode='step_change' reports the new erosion rate, time since change, and forward-predicted pair concentrations. Invalid rows remain in place and carry crn_pair_status='invalid_concentration'.

Parameters

samples : geopandas.GeoDataFrame Rows with two concentration columns (atoms/g). mode : {"burial", "step_change"}, default="burial" Diagnostic to compute. nuclide_fast, nuclide_slow : str, default="Al26", "Be10" Shorter- and longer-lived nuclides of the pair. concentration_fast_column, concentration_slow_column : str Columns holding the two concentrations (atoms/g). total_scaling : float, default=1.0 Combined production scaling x shielding factor (dimensionless, positive). muon_scheme : str, default="BraucherBorchers" Muon production parameterisation: "Braucher", "BraucherBorchers", "Granger", "Schaller" or "newCRONUS". effective_erosion_rate_old_g_cm2_yr : float, default=0.01 "step_change" only: erosion rate before the change (g/cm^2/yr).

Returns

geopandas.GeoDataFrame Copy of samples with crn_pair_status, crn_fast_concentration_atoms_g, crn_slow_concentration_atoms_g, crn_pair_erosion_rate_g_cm2_yr (pre-burial or new rate) and crn_pair_time_yr (burial age or time since change), plus crn_pair_measured_ratio, crn_pair_steady_state_ratio, crn_pair_burial_required (burial) or crn_pair_fast_predicted_atoms_g, crn_pair_slow_predicted_atoms_g, crn_pair_n_brackets (step change).

Authors

B. Gailleton

def crn_pair_diagnostics(samples: object, mode: str = 'burial', nuclide_fast: str = 'Al26', nuclide_slow: str = 'Be10', concentration_fast_column: str = 'Al26_CONC', concentration_slow_column: str = 'Be10_CONC', total_scaling: float = 1.0, muon_scheme: str = 'BraucherBorchers', effective_erosion_rate_old_g_cm2_yr: float = 0.01) -> object

crn_pressure

Return atmospheric pressure (hPa) for a DEM.

Parameters

dem : Raster Elevation (m) in a projected metre CRS. crn_parameters_path : str, default="" CRN parameter NetCDF file, as in crn_production_scaling. atmosphere : {"auto", "standard", "era40", "ncep"}, default="auto" Atmospheric model, as in crn_production_scaling.

Returns

Raster Pressure in hPa (mbar).

Authors

B. Gailleton

def crn_pressure(dem: lsdtt3.Raster, crn_parameters_path: str = '', atmosphere: str = 'auto') -> lsdtt3.Raster

crn_production_scaling

Return a per-pixel CRN production-scaling raster. DEM coordinates and elevations must be metres.

The factor multiplies sea-level, high-latitude production; it depends on each pixel's elevation and latitude (from the DEM's projected CRS).

Parameters

dem : Raster Elevation (m) in a projected metre CRS. crn_parameters_path : str, default="" Path to the lsdtt3 CRN parameter NetCDF file (atmosphere reanalysis, geomagnetic and LSDn grids). Empty uses the built-in standard atmosphere and modern field only. sample_age_yr : float, default=0.0 Exposure age (years) for the time-integrated palaeomagnetic correction (needs the parameter file); 0 uses the modern field. atmosphere : {"auto", "standard", "era40", "ncep"}, default="auto" Atmospheric pressure model: "auto" uses ERA40 when the parameter file is loaded, else the standard atmosphere. scaling : {"stone", "lsdn"}, default="stone" Stone (2000) scaling, or Lifton, Sato and Dunai (2014) LSDn scaling (needs the LSDn grids in the parameter file; Be10, Al26, C14 only). nuclide : {"Be10", "Al26", "C14"}, default="Be10" Nuclide (affects LSDn scaling only).

Returns

Raster Dimensionless production-scaling factor per pixel.

Authors

B. Gailleton

def crn_production_scaling(dem: lsdtt3.Raster, crn_parameters_path: str = '', sample_age_yr: float = 0.0, atmosphere: str = 'auto', scaling: str = 'stone', nuclide: str = 'Be10') -> lsdtt3.Raster

crn_steady_state

Return whole-raster steady-state CRN concentration (atoms/g).

The surface concentration each pixel would have after eroding at a constant rate for long enough to reach steady state.

Parameters

erosion_rate : Raster Effective erosion rate in g/cm^2/yr (mass flux; divide by rock density in g/cm^3 for cm/yr, e.g. 0.01 g/cm^2/yr at 2.65 g/cm^3 is 37.7 mm/kyr). production_scaling : Raster Production-scaling factor on the same grid (crn_production_scaling). nuclide : {"Be10", "Al26", "C14"}, default="Be10" Cosmogenic nuclide. muon_scheme : str, default="BraucherBorchers" Muon production parameterisation: "Braucher", "BraucherBorchers", "Granger", "Schaller" or "newCRONUS". topographic_shielding : Raster or None, default=None Topographic shielding factor (dimensionless, 0-1; 1 = unshielded) on the same grid; None means 1 everywhere. snow_shielding : Raster or None, default=None Snow shielding as an effective depth (g/cm^2); None means 0 (no snow). self_shielding : Raster or None, default=None Self (sample-thickness) shielding as an effective depth (g/cm^2); None means 0 (surface sample).

Returns

Raster Concentration in atoms/g.

Authors

B. Gailleton

def crn_steady_state(erosion_rate: lsdtt3.Raster, production_scaling: lsdtt3.Raster, nuclide: str = 'Be10', muon_scheme: str = 'BraucherBorchers', topographic_shielding: lsdtt3.Raster | None = None, snow_shielding: lsdtt3.Raster | None = None, self_shielding: lsdtt3.Raster | None = None) -> lsdtt3.Raster

crn_step_change

Return a whole-raster surface concentration after a step change in erosion.

Each pixel was at steady state with erosion_rate_old_g_cm2_yr and has eroded at erosion_rate_new_g_cm2_yr for time_since_change years.

Parameters

time_since_change : Raster Years since the change reached each pixel; <= 0 where it has not arrived. production_scaling : Raster Production-scaling factor on the same grid. nuclide : {"Be10", "Al26", "C14"}, default="Be10" Cosmogenic nuclide. muon_scheme : str, default="BraucherBorchers" Muon production parameterisation: "Braucher", "BraucherBorchers", "Granger", "Schaller" or "newCRONUS". topographic_shielding : Raster or None, default=None Topographic shielding factor (0-1); None means 1. erosion_rate_old_g_cm2_yr : float, default=0.01 Erosion rate before the change (g/cm^2/yr). erosion_rate_new_g_cm2_yr : float, default=0.01 Erosion rate after the change (g/cm^2/yr). pre_change_erosion_rate : Raster or None, default=None Optional per-pixel pre-change rate (g/cm^2/yr) used where time_since_change <= 0; None uses erosion_rate_old_g_cm2_yr.

Returns

Raster Surface concentration in atoms/g.

Authors

B. Gailleton

def crn_step_change(time_since_change: lsdtt3.Raster, production_scaling: lsdtt3.Raster, nuclide: str = 'Be10', muon_scheme: str = 'BraucherBorchers', topographic_shielding: lsdtt3.Raster | None = None, erosion_rate_old_g_cm2_yr: float = 0.01, erosion_rate_new_g_cm2_yr: float = 0.01, pre_change_erosion_rate: lsdtt3.Raster | None = None) -> lsdtt3.Raster

crn_step_change_pair

Invert a two-nuclide step-change pair for new erosion rate and timing.

Parameters

nuclide_fast, nuclide_slow : str Shorter- and longer-lived nuclides. concentration_fast_atoms_g, concentration_slow_atoms_g : float Measured concentrations (atoms/g). effective_erosion_rate_old_g_cm2_yr : float Erosion rate before the change (g/cm^2/yr). total_scaling : float, default=1.0 Production scaling x shielding factor (dimensionless). muon_scheme : str, default="BraucherBorchers" Muon production parameterisation ("Braucher", "BraucherBorchers", "Granger", "Schaller" or "newCRONUS").

Returns

CRNStepPairResult New erosion rate, time since the change and predicted concentrations.

Authors

B. Gailleton

def crn_step_change_pair(nuclide_fast: str, nuclide_slow: str, concentration_fast_atoms_g: float, concentration_slow_atoms_g: float, effective_erosion_rate_old_g_cm2_yr: float, total_scaling: float = 1.0, muon_scheme: str = 'BraucherBorchers') -> lsdtt3.CRNStepPairResult

crn_transient_history

Predict Be-10, Al-26, and C-14 raster concentrations for an arbitrary erosion history.

Parameters

column : CRNColumn Column with a validated present-to-past erosion/removal history. production_scaling : Raster Per-pixel production-scaling factor. topographic_shielding : Raster, optional Same-grid shielding factor. Unity is used when omitted. sampling_depth_metres : float, optional Depth (m) below the present surface at which to predict concentration. muon_scheme : str, default="BraucherBorchers" Muon production parameterisation ("Braucher", "BraucherBorchers", "Granger", "Schaller" or "newCRONUS").

Returns

dict[str, Raster] be10, al26, and c14 concentration rasters in atoms g⁻¹.

Notes

The calculation is O(number of valid pixels × history rows).

Authors

B. Gailleton S. M. Mudd

Deprecated compatibility names: - sampling_depth_m -> sampling_depth_metres; earliest removal: following minor.

def crn_transient_history(column: lsdtt3.CRNColumn, production_scaling: lsdtt3.Raster, topographic_shielding: lsdtt3.Raster | None = None, sampling_depth_metres: float = 0.0, muon_scheme: str = 'BraucherBorchers') -> object

crn_uniform_raster

Create a masked constant raster for CRN erosion or shielding inputs.

Parameters

reference : Raster Raster whose grid and nodata mask are copied. value : float Constant value, for example an erosion rate in g/cm^2/yr.

Returns

Raster value on every valid pixel of reference.

Authors

B. Gailleton

def crn_uniform_raster(reference: lsdtt3.Raster, value: float) -> lsdtt3.Raster