Kinematic model of the Gippsland Basin - Version 4

We analyse here uncertainties in a kinematic model of the Gippsland Basin, Victoria. The model is built on the basis of a detailed analysis of the geological history and adjusted to observed structures in the area.

Here, we first evaluate the model and analyse the setting a little bit and then proceed to investigate how errors in the parameterised geological history (i.e. the parameters of the kinematic events) propagate into model uncertainties.


In [2]:
from IPython.core.display import HTML
css_file = 'pynoddy.css'
HTML(open(css_file, "r").read())


Out[2]:

In [3]:
import sys, os
import matplotlib.pyplot as plt
import pynoddy.history
import pynoddy.output
import copy
import pickle
plt.rcParams['font.size'] = 16

In [4]:
pwd


Out[4]:
u'/Users/flow/git/pynoddy/docs/notebooks'

In [5]:
# the following reloads are only required during development phase
reload(pynoddy.history)
reload(pynoddy.events)
PH = pynoddy.history.NoddyHistory("../../examples/GBasin_Ve1_V4_b.his")


 STRATIGRAPHY
 FOLD
 UNCONFORMITY
 FAULT
 FAULT
 UNCONFORMITY
 FAULT
 FAULT
 UNCONFORMITY
 FAULT
 FAULT
 UNCONFORMITY
 TILT
 FOLD

In [6]:
# get some basic model information
print PH.get_extent()
print PH.get_origin()


(26630.0, 19291.0, 1500.0)
(0.0, 0.0, 1500.0)

In [7]:
# Let's have a look at the defined events
PH.events


Out[7]:
{1: <pynoddy.events.Stratigraphy instance at 0x10ca0e248>,
 2: <pynoddy.events.Fold instance at 0x10ca0e320>,
 3: <pynoddy.events.Unconformity instance at 0x10ca0e170>,
 4: <pynoddy.events.Fault instance at 0x10ca0ea28>,
 5: <pynoddy.events.Fault instance at 0x10ca0ea70>,
 6: <pynoddy.events.Unconformity instance at 0x10ca0e830>,
 7: <pynoddy.events.Fault instance at 0x10ca0e0e0>,
 8: <pynoddy.events.Fault instance at 0x10ca0e5a8>,
 9: <pynoddy.events.Unconformity instance at 0x10ca0e878>,
 10: <pynoddy.events.Fault instance at 0x10ca0ef80>,
 11: <pynoddy.events.Fault instance at 0x10ca0e908>,
 12: <pynoddy.events.Unconformity instance at 0x10ca0ebd8>,
 13: <pynoddy.events.Tilt instance at 0x10ca0e1b8>,
 14: <pynoddy.events.Fold instance at 0x10ca0ecf8>}

In [8]:
# Determine model stratigraphy for plots below
PH.determine_model_stratigraphy()

In [9]:
# Compute the model
reload(pynoddy)
his = 'GBasin_V4_new.his'
PH.write_history(his)
out = 'GBasin_V4_out'
pynoddy.compute_model(his, out)
print os.getcwd()


/Users/flow/git/pynoddy/docs/notebooks

Visualise output

To do: fix colorbar!


In [10]:
reload(pynoddy.output)
PO = pynoddy.output.NoddyOutput(out)

In [11]:
# create section plots in axes diretions:
PO.plot_section('x', ve = 5.,
                cmap = 'YlOrRd',
                title = '',
                colorbar = False,
                layer_labels = PH.model_stratigraphy)
PO.plot_section('y', position = 100, ve = 5.,
                cmap = 'YlOrRd',
                title = '',
                colorbar_orientation = 'horizontal',
                layer_labels = PH.model_stratigraphy)



In [12]:
# Export to VTK for 3-D visualisation and analysis
PO.export_to_vtk(vtk_filename = "GBasin_V4")

Update model origin and extent

Test new implementation as basis for 1-D "Drillhole" export


In [13]:
reload(pynoddy.history)
reload(pynoddy.events)
PH = pynoddy.history.NoddyHistory("../../examples/GBasin_Ve1_V4_b.his")


 STRATIGRAPHY
 FOLD
 UNCONFORMITY
 FAULT
 FAULT
 UNCONFORMITY
 FAULT
 FAULT
 UNCONFORMITY
 FAULT
 FAULT
 UNCONFORMITY
 TILT
 FOLD

In [16]:
PH.info(events_only = True)


This model consists of 14 events:
	(1) - STRATIGRAPHY
	(2) - FOLD
	(3) - UNCONFORMITY
	(4) - FAULT
	(5) - FAULT
	(6) - UNCONFORMITY
	(7) - FAULT
	(8) - FAULT
	(9) - UNCONFORMITY
	(10) - FAULT
	(11) - FAULT
	(12) - UNCONFORMITY
	(13) - TILT
	(14) - FOLD

In [34]:
PH.events[14].properties


Out[34]:
{'Amplitude': 500.0,
 'Cylindricity': 0.0,
 'Dip': 90.0,
 'Dip Direction': 180.0,
 'Pitch': 0.0,
 'Single Fold': 'FALSE',
 'Type': 'Sine',
 'Wavelength': 17000.0,
 'X': 0.0,
 'Y': 7000.0,
 'Z': 0.0}

In [80]:
PH.write_history("GB_V4_1D.his")

In [75]:
no = pynoddy.output.NoddyOutput("tmp")

In [76]:
z_range = no.block[0,0,:]

In [77]:
plot(z_range)


Out[77]:
[<matplotlib.lines.Line2D at 0x11187f410>]

In [78]:
len(z_range)


Out[78]:
1500

In [88]:
reload(pynoddy.history)
reload(pynoddy.events)
PH = pynoddy.history.NoddyHistory("../../examples/GBasin_Ve1_V4_b.his")
drillhole = PH.get_drillhole_data(10000, 10000, resolution = 100)


 STRATIGRAPHY
 FOLD
 UNCONFORMITY
 FAULT
 FAULT
 UNCONFORMITY
 FAULT
 FAULT
 UNCONFORMITY
 FAULT
 FAULT
 UNCONFORMITY
 TILT
 FOLD


In [89]:
plot(drillhole)


Out[89]:
[<matplotlib.lines.Line2D at 0x115780290>]

In [ ]: