Importing a sea-level curve

To simulate the impact of sea level fluctuations through geological time, it is possible to import a description of sea level evolution within Badlands.

The file (CSV format) provides for each line the following information:

  • Time in years,
  • Sea-level elevation for the considered time in meters.

In addition the defined fluctuation times should be set in increasing order starting from the oldest time.

In this notebook we show how this could be done using a digitized version of the long-term Haq curve (1987) for the last 260 Ma.


In [7]:
%matplotlib inline

# Import badlands grid generation toolbox
import pybadlands_companion.toolSea as tools

# display plots in SVG format
%config InlineBackend.figure_format = 'svg'

The dataset provided are stored in the data folder. The data were digitized using Didger4 software and come from Haq (1987) paper by Dr Sabin Zahirovic.

Didger used a copied from the PDF paper extracted from Adobe Photoshop (300 dpi).

The figure width was then doubled (proportionally) and resolution was increased to 600 dpi to help Didger with interpolation accuracy.

Then the figure was exported as JPG and georeferenced in Didger 4.

Finally the curve was digitized as spline and exported as DAT file.

The obtained dataset is formated as follow:

  • Column 1 = Sea Level (m)
  • Column 2 = Absolute Age (Ma)

The digitization error is at best -/+ 1 m and up to +/- 5 m.

NOTE: Please be aware that the TIMESCALE has not been updated or changed. This is the original Haq et al. (1987) curve! For any detailed use and comparison, the timescales should be standardised. Refer to the paper for timescale information.

1. Load Haq curves

First we define the path to the digitized Haq curve and the normalized one. We then initialise the toolSea python class.


In [ ]:
#help(tools.toolSea.__init__)

In [ ]:
haq87 = 'data/Haq87_Longterm_Combined.dat'
haq87N = 'data/Haq87_Longterm_Combined_Normalized.dat'

#haq87_HR = 'data/Haq_87_SealevelCurve.dat'
#haq87_HRF = 'data/Haq_87_SealevelCurve_filtered.dat'

sea = tools.toolSea(curve1 = haq87, curve2 = haq87N)

We then read the curves and define:

  1. the extent of the simulation curve based on the simulation start and end time,
  2. the discretisation timestep for curve fitting interpolation.

It is worth noting that the dataset is expressed in Ma and that the time is positive going backward in time.


In [ ]:
#help(sea.readCurve)

In [ ]:
sea.readCurve(timeMax=180, timeMin=80, dt = 0.05)

2. Plot sea level curves

We make 2 subplots of sea-level fluctuations for the digitized dataset.

  1. The left one represents the entire data for both the Haq and normalized curves.
  2. The right one represents the curves for around the simulation time.

In [ ]:
#help(sea.plotCurves)

In [ ]:
sea.plotCurves(fsize=(8,8), saveFig = False, figName = 'sealevel')

3. Export dataset

We then choose the zoomed normalised Haq curve to create the sea level fluctuations CSV file for the simulation. The exportCurve function transform the Time data from Ma to a using the factor parameter.


In [ ]:
#help(sea.exportCurve)

In [ ]:
sea.exportCurve(curve='HaqNorm', factor=1.e6, nameCSV='sea')

In [ ]: