Releases: EarthByte/pyBacktrack
PyBacktrack 1.5.0
Changes since version 1.4:
- Installation:
- Can now install pyBacktrack using conda:
- PyBacktrack conda-forge packages can be installed with:
conda install -c conda-forge pybacktrack
- PyBacktrack conda-forge packages can be installed with:
- Dropped support for Python 2.7 (reached end-of-life in 2020).
- Currently require Python 3.8 or above.
- Can now install pyBacktrack using conda:
- Backtracking:
- Can now output the reconstructed well location at each stratigraphic age.
- These are two new columns (
paleo_longitudeandpaleo_latitude) in the decompacted output file. - By default uses same static polygons and rotation model as paleobathymetry (but can be overridden).
- These are two new columns (
- Added three new lithology-related columns in the decompacted output file.
- These are
compacted_density,composite_porosityandcomposite_decay. - Containing the final density, porosity and porosity decay of the mixture of lithologies in the single stratigraphic layer (of each row).
- These are
- Can now specify your own decompaction output times.
- By default the decompaction times (in the decompacted output file) match the stratigraphic ages in the input drill site.
- Optionally print the optimal rift stretching (beta) factor (calculated internally).
- Can now output the reconstructed well location at each stratigraphic age.
- Backstripping:
- Like backtracking, can now output the reconstructed well location and layer density/porosity at each stratigraphic age, and specify your own decompaction output times.
- Paleobathymetry:
- Can now merge traditional paleobathymetry (produced by an external workflow).
- The traditional grids fill in missing paleobathymetry (on subducted crust) that is not covered by the reconstructed (present day) sediment-deposited crust generated by pyBacktrack.
- Previously was a supplementary script but is now built directly into the pyBacktrack (its command-line and function API).
- Removed bathymetry landward of trenches.
- Particularly along Western side of North and South America.
- For example, removes thin strip of bathymetry inside the South America continent (that was particularly noticeable for times prior to Andes deformation).
- Paleobathymetry gridding now defaults to
Average_ocean_floor_sedimentlithology (instead ofShale).- This differs from the base lithology of a drill site where the undrilled portion is usually below the Carbonate Compensation Depth (CCD) where
Shaledominates.
- This differs from the base lithology of a drill site where the undrilled portion is usually below the Carbonate Compensation Depth (CCD) where
- Specifying the oldest time (to generate paleobathymetry grids) is now optional.
- Defaults to oldest of all ocean crust ages and all continental rift start ages at the grid points.
- Optionally override builtin rift grids with a constant rift period.
- Only really useful for regional reconstructions (not global) since rift periods would no longer vary spatially.
- Optionally output the optimal rift stretching (beta) factors to a grid file when generating paleobathymetry grids.
- Each present day grid point, reconstructed through the time-sequence of paleobathymetry grids, has an optimal rift stretching (beta) factor.
- Can now merge traditional paleobathymetry (produced by an external workflow).
- Reconstruction:
- Changed the default reconstruction model from Muller 2019 to Zahirovic 2022.
- This model is used for reconstructing paleobathymetry and drill site locations.
- However you can override it by providing your own rotation and static polygons files.
- Note that the Zahirovic 2022 model supports a mantle reference frame and a paleomag reference frame.
- The mantle frame is enabled by default (anchor plate 0) and the paleomag frame is enabled by specifying anchor plate 701701.
- The previous model (Muller 2019) only supported a mantle reference frame (anchor plate 0).
- Changed the default reconstruction model from Muller 2019 to Zahirovic 2022.
- Dynamic topography:
- Added two new dynamic topography models:
- Braz2021 (
D10_gmcm9) - Young2022 (
gld428)
- Braz2021 (
- Can now run dynamic topography module as a script:
- To output dynamic topography for a present-day location reconstructed through time.
- For example,
python -m pybacktrack.dynamic_topography_cli -ym M7 -p 0 30 -i 10 -- 100prints the dynamic topography of builtin modelM7at present day (longitude, latitude) location (0, 30) reconstructed back to 100 Ma in 10 Myr intervals.
- Added two new dynamic topography models:
- Sea level:
- Added three new sea level models:
- Miller2024 (
Miller2024_SealevelCurve) - Haq2024 (
Haq2024_Hybrid_SealevelCurve)- Combined Haq (2014) and Haq (2017) sea level curves for the Cretaceous and Jurassic respectively, with the Cenozoic section of Haq and Ogg (2024).
- 0-66 Ma: Haq and Ogg (2024)
- 66-140 Ma: Haq (2014)
- 140.1-205 Ma: Haq (2017)
- Combined Haq (2014) and Haq (2017) sea level curves for the Cretaceous and Jurassic respectively, with the Cenozoic section of Haq and Ogg (2024).
- Haq2024 longterm (
Haq2024_Hybrid_SealevelCurve_Longterm)- Note that while this is from Haq and Ogg (2024), it is digitized to follow the peaks of the shorter term curve.
- Miller2024 (
- Added three new sea level models:
- Added
stratigraphic_depth_to_agemodule to convert stratigraphic depths to ages using a depth-to-age model.- Depth-to-age model is a piecewise linear function of age with depth:
- specified as a file containing a column of ages and a column of depths.
- When converting depths outside the depth range of the model, the corresponding ages can be excluded, clamped or extrapolated.
- Depth-to-age model is a piecewise linear function of age with depth:
- Supplementary scripts:
- Added script to reconstruct paleobathymetry at a location:
- Very similar to reconstructing paleobathymetry grids, except at a single longitude/latitude location.
- And output is written to a single text file (instead of a time-sequence of grid files).
- Added script to reconstruct the location of a drill site back through time (in 1 Myr increments).
- This is similar to backtracking/backstripping (which can now output
paleo_longitudeandpaleo_latitudecolumns), but- uses uniform ages across an age range (instead of the ages of the stratigraphic units in a drill site), and
- does not output any of the regular backtracking/backstripping outputs.
- Optionally outputs distance from each reconstructed drill site location to
- reconstructed continental-oceanic boundaries (COBs) at each time step.
- This is similar to backtracking/backstripping (which can now output
- Added script to convert a range of ages (in 1 Myr increments) to basement depth using a specific oceanic age/depth model.
- This is similar to using
age_to_depth_cli(seepython -m pybacktrack.age_to_depth_cli --help), but - uses uniform ages across an age range (instead of requiring an input file containing ages).
- This is similar to using
- Added script to reconstruct paleobathymetry at a location:
- Separated the example data from the test data:
- Example data now contains only input data (like drill site files), not output data (like decompacted output files).
- The
--helpdescription in each command now includes links to the online documentation:- Describing the bundled data that's used in each command (by default).
- Updated example notebooks:
- Added notebook to reconstruct drill sites and render them on top of reconstructed paleobathymetry.
- Produces an animation over time for the Alfonso 2024 plate model.
- Also animates a plot of the stratigraphic layers of each drill site as new layers are deposited and the underlying layers compact over time.
- This notebook was used for the pyBacktrack 1.5 release video.
- Updated paleobathymetry notebook to demonstrate how to merge traditional paleobathymetry.
- Added notebook to reconstruct drill sites and render them on top of reconstructed paleobathymetry.
- Updated functions and classes (API reference):
- New functions to convert stratigraphic depths to ages.
- Backtracking and backstripping functions can now output the reconstructed drill site location:
- as DecompactedWell.paleo_longitude and DecompactedWell.paleo_latitude attributes, and
- static polygons and rotation model default to those used for paleobathymetry gridding.
- Backtracking functions can optionally output the optimal rift stretching (beta) factor,
- if drill site is on submerged continental crust (not just ...
PyBacktrack 1.4.0
PyBacktrack 1.4 adds support for generating paleobathymetry grids from submerged present-day crust.
Changes since version 1.3:
- Can now generate paleobathymetry grids:
- Submerged oceanic and continental present-day crust is backtracked and reconstructed.
- Similar to drill sites, but 2D instead of 1D.
- Continental subsidence model obtains rifting period from builtin rift grids:
- In contrast to drill sites where rifting period is explicitly specified.
- Builtin rift grids:
- Cover all submerged continental crust, and
- are generated from Müller 2019 deforming plate model:
- All submerged crust is assigned a single lithology, whereas drill sites have multiple stratigraphic layers.
- Water depths are negative (below sea level) in paleobathymetry grids, but positive in backtracked drill site output.
- Supports multiple CPUs to reduce running time.
- Submerged oceanic and continental present-day crust is backtracked and reconstructed.
- Supplementary scripts can be installed:
- Previously was
misc/folder in Github repository, but is now installable. - Added script to preferentially merge paleobathymetry grids produced by pybacktrack with externally produced paleobathymetry grids (after adding dynamic topography to external grids).
- Added script to generate rift start/end time grids from a global deforming model (used to generate builtin rift grids).
- Added script to extract present day trenches from a global deforming model (used internally to avoid deep bathymetry near trenches).
- Added script to convert sediment thickness into water thickness based on porosity assuming a single “average ocean floor sediment” lithology.
- Previously was
- Backtracking:
- Updated builtin total sediment thickness grid to 2019 version:
- Updated builtin age grid to 2020 version:
- Added
RHCW18age-to-depth model:- "Structure and dynamics of the oceanic lithosphere-asthenosphere system"
- Is now the default model (previously was
GDH1).
- Added Cao2019 dynamic topography models (
AY18andKM16): - Rift start/end times are no longer required for drill sites on continental crust.
- Now obtained implicitly from builtin rift grids, if not specified explicitly in drill site file.
- Updated example notebooks:
- Added notebook to demonstrate paleobathymetry gridding.
- Added geohistory analysis examples demonstrating backtracking of ocean and shallow continental drill sites.
- Updated functions and classes (API reference):
- New paleobathymetry functions to:
- Generate paleobathymetry by reconstructing and backtracking sediment-covered crust through time,
- write reconstructed paleobathymetry as NetCDF grids.
- Can decompact at any age (not just ages at stratigraphic boundaries).
- Assumes a constant sediment deposition rate within each stratigraphic layer.
- Dynamic topography:
- Now supports multiple point locations:
- Previously supported just a single drill site location.
- Slight change in how grids are interpolated (see notes under DynamicTopography.sample).
- Note: there is only a difference when interpolating between grid times (no difference at grid times).
- New class InterpolateDynamicTopography:
- For just interpolating time-dependent dynamic topography mantle frame grids.
- Used in above-mentioned script for merging paleobathymetry grids.
- Existing class DynamicTopography both reconstructs and interpolates.
- For just interpolating time-dependent dynamic topography mantle frame grids.
- Now supports multiple point locations:
- New paleobathymetry functions to:
PyBacktrack 1.3.0
Changes since version 1.2:
- Supports Python 3:
- please also use the recent pyGPlates Python 3 release.
- Added the following output columns:
- dynamic_topography:
- change in dynamic topography elevation since present day
- decompacted_depth:
- depth from fully decompacted layers (using surface porosity only)
- as if no portion of any layer had ever been buried
- decompacted_sediment_rate:
- fully decompacted surface layer thickness divided by its deposition interval
- dynamic_topography:
- Option to force continental subsidence model:
- if well site is in age grid (oceanic crust) but known to be on continental crust.
- Option to ignore total sediment thickness grid:
- if well site is known to be drilled to basement.
- Fixed missing last row of output:
- when well depth exceeds total sediment thickness.
- Fixed bug in syn-rift subsidence equation:
- affected tectonic subsidence by less than 1%.
PyBacktrack 1.2.0
Changes since version 1.1:
- Added example notebooks:
- Backstripped subsidence
- Visualizing decompaction of stratigraphic layers
- Fixed backstripping example:
- Original sunrise well depths in metres (not feet).
- Hence no longer a base sediment layer.
- Added script to convert original sunrise well format to pyBacktrack format.
- Updated functions and classes (API reference):
- Dynamic topography:
- Can now access built-in dynamic topography data
- Previously only available internally in backtracking subsidence model.
- Access independently of whether you’re backtracking or backstripping.
- Sampling dynamic topography grids made easier
- Can now access built-in dynamic topography data
- Sea level:
- Can now access built-in sea level data
- Fixed bug when age of a stratigraphic layer in well is older than sea-level model.
- Lithologies:
- Added function to read and merge multiple lithology definition files
- Stratigraphic layers:
- Added tectonic subsidence function
- Backtracking: returns tectonic subsidence model.
- Backstripping: returns backstripped subsidence.
- Added paleo-water depth function
- Backtracking: returns backtracked water depth.
- Backstripping: returns average recorded water depth.
- Added sea-level function
- Returns sea-level of model specified to backtracking or backstripping.
- Added dynamic topography function
- Backtracking: returns dynamic topography relative to present day.
- Backstripping: returns zero.
- Added tectonic subsidence function
- See usage in example notebooks.
- Dynamic topography:
PyBacktrack 1.1.0
Changes since version 1.0.0:
- The example data is now included in the Python package.
- So you can install it without needing to download from Github.
- Includes notebooks (such as plotting paleo-water depths for various dynamic topography models).
- Added Docker image.
- Added new inbuilt dynamic topography models ngrand, s20rts and smean (from Müller et al., 2008).
- Can specify more than one lithology definition file.
- Added inbuilt extended lithologies for shallow water (to complement primary lithologies in pyBacktrack 1.0 paper).
- Added “sunrise” backstripping example (uses extended lithologies).
- Can now specify your own oceanic age-to-depth model (instead of just the inbuilt models).
- Fixed bug specifying your own dynamic topography model (inbuilt models were fine though).
PyBacktrack 1.0.0
PyBacktrack is a tool for reconstructing paleobathymetry on oceanic and continental crust.
PyBacktrack is a Python package that backtracks the paleo-water depth of ocean drill sites through time by combining a model of tectonic subsidence with decompaction of the site stratigraphic lithologies. PyBacktrack can also include the effects of mantle-convection driven dynamic topography on paleo-water depth, as well as sea-level variations. PyBacktrack provides a model of tectonic subsidence on both oceanic and continental crust. Ocean crust subsidence is based on a user-selected lithospheric age-depth model and the present-day unloaded basement depth. Continental crust subsidence is based on syn-rift and post-rift subsidence that is modelled using the total sediment thickness at the site and the timing of the transition from rifting to thermal subsidence. On sites that did not penetrate to basement, the age-coded stratigraphy is supplemented with a synthetic stratigraphic section that represents the undrilled section, whose thickness is estimated using a global sediment thickness map. This is essential for estimating the decompacted thickness of the total sedimentary section, and thus bathymetry, through time.