From 1d3d76ade329d28724d9841e41bab5d1c792542a Mon Sep 17 00:00:00 2001 From: Lachlan Grose Date: Fri, 2 Feb 2024 09:08:07 +1100 Subject: [PATCH] updating docs build with aylas changes --- .buildinfo | 2 +- API.html | 6 +- _auto_examples/index.html | 6 +- _auto_examples/plot_hamersley.html | 6 +- _auto_examples/sg_execution_times.html | 6 +- _autosummary/map2loop.Project.html | 6 +- _autosummary/map2loop.html | 6 +- _images/csv.png | Bin 0 -> 92292 bytes _images/fault_attributes_table.png | Bin 0 -> 16226 bytes _images/litho_attributes_table.png | Bin 0 -> 62347 bytes _images/ori_attributes_table.png | Bin 0 -> 14683 bytes _sources/sg_execution_times.rst.txt | 4 +- _sources/user_guide/changing_colours.rst.txt | 48 ++ _sources/user_guide/config_file.rst.txt | 64 ++ _sources/user_guide/geomodelling.rst.txt | 223 +++++++ _sources/user_guide/getting_started.rst.txt | 21 +- _sources/user_guide/index.rst.txt | 5 +- _sources/user_guide/m2l_code_template.rst.txt | 1 + _sources/user_guide/setup_jupyter.rst.txt | 34 ++ .../user_guide/stratigraphic_order.rst.txt | 129 ++++ .../stratigraphic_thickness.rst.txt | 129 +++- _static/documentation_options.js | 2 +- genindex.html | 6 +- index.html | 6 +- objects.inv | Bin 938 -> 1070 bytes py-modindex.html | 6 +- search.html | 6 +- searchindex.js | 2 +- sg_execution_times.html | 10 +- user_guide/changing_colours.html | 561 ++++++++++++++++++ user_guide/config_file.html | 551 +++++++++++++++++ user_guide/explanation.html | 6 +- user_guide/exporting.html | 11 +- user_guide/fault_offset.html | 11 +- user_guide/geomodelling.html | 320 +++++++++- user_guide/getting_started.html | 44 +- user_guide/index.html | 78 ++- user_guide/installation.html | 15 +- user_guide/m2l_code_template.html | 476 +++++++++++++++ user_guide/setup_jupyter.html | 559 +++++++++++++++++ user_guide/stratigraphic_order.html | 137 ++++- user_guide/stratigraphic_thickness.html | 143 ++++- 42 files changed, 3551 insertions(+), 95 deletions(-) create mode 100644 _images/csv.png create mode 100644 _images/fault_attributes_table.png create mode 100644 _images/litho_attributes_table.png create mode 100644 _images/ori_attributes_table.png create mode 100644 _sources/user_guide/changing_colours.rst.txt create mode 100644 _sources/user_guide/config_file.rst.txt create mode 100644 _sources/user_guide/m2l_code_template.rst.txt create mode 100644 _sources/user_guide/setup_jupyter.rst.txt create mode 100644 user_guide/changing_colours.html create mode 100644 user_guide/config_file.html create mode 100644 user_guide/m2l_code_template.html create mode 100644 user_guide/setup_jupyter.html diff --git a/.buildinfo b/.buildinfo index 6b5eb92f..3edb879c 100644 --- a/.buildinfo +++ b/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 41df95f0b456467426b3a4993c4edb55 +config: cfcb5948b1fcdbad51b18af9e03a2903 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/API.html b/API.html index 4c5f7171..090ede31 100644 --- a/API.html +++ b/API.html @@ -8,7 +8,7 @@ - API — map2loop 3.0.4 documentation + API — map2loop 3.0.6 documentation @@ -39,7 +39,7 @@ - + @@ -120,7 +120,7 @@ -

map2loop 3.0.4 documentation

+

map2loop 3.0.6 documentation

diff --git a/_auto_examples/index.html b/_auto_examples/index.html index 1756faaa..12316930 100644 --- a/_auto_examples/index.html +++ b/_auto_examples/index.html @@ -8,7 +8,7 @@ - Examples — map2loop 3.0.4 documentation + Examples — map2loop 3.0.6 documentation @@ -39,7 +39,7 @@ - + @@ -122,7 +122,7 @@ -

map2loop 3.0.4 documentation

+

map2loop 3.0.6 documentation

diff --git a/_auto_examples/plot_hamersley.html b/_auto_examples/plot_hamersley.html index 01222016..6f161724 100644 --- a/_auto_examples/plot_hamersley.html +++ b/_auto_examples/plot_hamersley.html @@ -8,7 +8,7 @@ - Hamersley, Western Australia — map2loop 3.0.4 documentation + Hamersley, Western Australia — map2loop 3.0.6 documentation @@ -39,7 +39,7 @@ - + @@ -122,7 +122,7 @@ -

map2loop 3.0.4 documentation

+

map2loop 3.0.6 documentation

diff --git a/_auto_examples/sg_execution_times.html b/_auto_examples/sg_execution_times.html index 6fc5f376..f3a7c965 100644 --- a/_auto_examples/sg_execution_times.html +++ b/_auto_examples/sg_execution_times.html @@ -8,7 +8,7 @@ - Computation times — map2loop 3.0.4 documentation + Computation times — map2loop 3.0.6 documentation @@ -39,7 +39,7 @@ - + @@ -120,7 +120,7 @@ -

map2loop 3.0.4 documentation

+

map2loop 3.0.6 documentation

diff --git a/_autosummary/map2loop.Project.html b/_autosummary/map2loop.Project.html index f0f4825d..d652b96e 100644 --- a/_autosummary/map2loop.Project.html +++ b/_autosummary/map2loop.Project.html @@ -8,7 +8,7 @@ - map2loop.Project — map2loop 3.0.4 documentation + map2loop.Project — map2loop 3.0.6 documentation @@ -39,7 +39,7 @@ - + @@ -121,7 +121,7 @@ -

map2loop 3.0.4 documentation

+

map2loop 3.0.6 documentation

diff --git a/_autosummary/map2loop.html b/_autosummary/map2loop.html index 92a9273f..71dacf12 100644 --- a/_autosummary/map2loop.html +++ b/_autosummary/map2loop.html @@ -8,7 +8,7 @@ - map2loop — map2loop 3.0.4 documentation + map2loop — map2loop 3.0.6 documentation @@ -39,7 +39,7 @@ - + @@ -122,7 +122,7 @@ -

map2loop 3.0.4 documentation

+

map2loop 3.0.6 documentation

diff --git a/_images/csv.png b/_images/csv.png new file mode 100644 index 0000000000000000000000000000000000000000..5e96a39d44f285d5593e7e9ed4acf6d274db3235 GIT binary patch literal 92292 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 literal 0 HcmV?d00001 diff --git a/_images/litho_attributes_table.png b/_images/litho_attributes_table.png new file mode 100644 index 0000000000000000000000000000000000000000..3e0e211dc0f770fa037382a0ff5e0c1c89d7e494 GIT binary patch literal 62347 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ƋeMWoGHZFq})nfaBQKM)u_o4`s_Oy8(} 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 literal 0 HcmV?d00001 diff --git a/_images/ori_attributes_table.png b/_images/ori_attributes_table.png new file mode 100644 index 0000000000000000000000000000000000000000..25a95da95e99b1a7dd8516e3e1b8b4db90aaef00 GIT binary patch literal 14683 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 literal 0 HcmV?d00001 diff --git a/_sources/sg_execution_times.rst.txt b/_sources/sg_execution_times.rst.txt index e7769168..1a054ffc 100644 --- a/_sources/sg_execution_times.rst.txt +++ b/_sources/sg_execution_times.rst.txt @@ -6,7 +6,7 @@ Computation times ================= -**00:19.460** total execution time for 1 file **from all galleries**: +**00:00.000** total execution time for 1 file **from all galleries**: .. container:: @@ -33,5 +33,5 @@ Computation times - Time - Mem (MB) * - :ref:`sphx_glr__auto_examples_plot_hamersley.py` (``..\..\examples\plot_hamersley.py``) - - 00:19.460 + - 00:00.000 - 0.0 diff --git a/_sources/user_guide/changing_colours.rst.txt b/_sources/user_guide/changing_colours.rst.txt new file mode 100644 index 00000000..5fef0674 --- /dev/null +++ b/_sources/user_guide/changing_colours.rst.txt @@ -0,0 +1,48 @@ +Changing Colours +================ +Using a CSV file +---------------- +The easiest way to set the colour of different units in your model is to create a csv file that contains the lithological unit names in one column and the hex colour code in another, as shown below: + +.. image:: ../images/csv.png + :width: 500 + +Changing colours via your Jupyter notebook +------------------------------------------ +You can also change unit and fault colours manually in your Jupyter notebook. There are examples of the code you can use to achieve this below. Importantly, if you decide to use this method, you’ll need to call this code after the creation of ‘model’ in your Jupyter notebook. +The stratigraphy data is stored in a python dictionary, so to change the colour of specific elements you need to use the associated key. In the below cases you need to navigate through the nested dictionaries to find the colour value. To view the contents of the stratigraphic column dictionary in your own notebook you can just use the command: + +.. code-block:: python + + model. stratigraphic_column + +To view a dictionary nested within the stratigraphic_column dictionary you will need to specify the key, for example: + +.. code-block:: python + + model.stratigraphic_column['sg'] + +If you run this command, you’ll get an output showing the sg dictionary (which contains all of the rock units) as well as any dictionaries nested within it. + + +Unit Colours +............. +Following on from the above explanation, to access the unit colour you will need to navigate from the stratigraphic_column dictionary through the dictionaries nested within it. In the example below you’ll navigate to ‘sg’ then ‘unit_name’ then ‘colour’ where you can finally edit the hex colour value. + +Make sure to replace ‘unit_name’ with the name of the unit you want to change and the ‘#f71945’ with the hex colour code you desire. Remember you can check these values by running and inspecting the output of: model. stratigraphic_column + +.. code-block:: python + + model.stratigraphic_column['sg']['unit_name']['colour'] = '#f71945' + +Fault Colours +.............. +The code to change the colour of faults is very similar, where ‘fault_name’ is the name of the fault you’re editing. + +.. code-block:: python + + model.stratigraphic_column['faults']['fault_name’]['colour'] = '#f25d27' + +Please see the examples for further clarification. + + diff --git a/_sources/user_guide/config_file.rst.txt b/_sources/user_guide/config_file.rst.txt new file mode 100644 index 00000000..fe9b9f9a --- /dev/null +++ b/_sources/user_guide/config_file.rst.txt @@ -0,0 +1,64 @@ +Mapping attributes to variables using an HJSON file +=================================================== +Once you’ve completed your map in QGIS, you’ll need to map the attributes (with whatever names you’ve given them) to the variable names used in map2loop. You can map the attributes to the variable names used in version 2 or 3 of map2loop, as specified in the tables in the Setting up your Shapefiles section. +An example hjson file is shown below, using map2loop-2 variable names (also known as Legacy code. If you decide to use map2loop-2 variable names, you will have to set the legacy flag to true in the map2loop calling code later on. If you use map2loop-3 variable names you'll need to set the legacy flag to false. + +Feel free to copy the attached template and fill in the required variables with the attribute names specific to your project. + +Config File Template +--------------------- +The templates below demonstrate how to setup a config file for map2loop. +Explanations of the HJSON file elements: + + * The left most 'term' is the map2loop variable name + * The information after the hash on the right is a description of the required field. You can delete this from your own file if you'd like. + * You'll need to change the attribute name in the second quotation to match your shapefile attribute names (e.g. change "INSERT_DIP" to your attribute name). Ensure that the attribute name is between '' or "". + * Any lines with a *opt in the description string, means that they are optional. If you don't want to include them, just leave the attribute field blank (e.g. "g": '', ) + +For more information on the variables and map2loop requirements please see the documentation. + +Legacy Variable Names (map2loop-2) Template +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Note, there is an inbuilt converter within map2loop so you can use either of the config files with the most recent version of map2loop. + +.. codeblock:: JSON + { + #ORIENTATION SHAPEFILE ATTRIBUTES + "d": "INSERT_DIP", #attribute containing dip information + "dd": "INSERT_DIP_DIRECTION", #attribute containing dip direction information + "otype": 'dip direction', #Set the measurement convention used (either 'strike' or 'dip direction') + "sf": 'INSERT_STRUCTURE_DESCRIPTION', #*opt attribute containing type of structure (eg. S0, S1) + "bedding": 'INSERT_BEDDING_TEXT', #*opt text defining bedding measurements in the "sf" field (eg "Bedding" or "S0") + "bo": 'INSERT_FOLIATION_DESCRIPTION', #*opt attribute containing type of foliation + "btype": 'OVERTURNED_BEDDING_TEXT', #*opt text defining overturned bedding measurements in the "bo" field (eg. 'overturned') + #LITHOLOGY SHAPEFILE ATTRIBUTES + "c": 'INSERT_UNIT_NAME', #attribute containing stratigraphic unit name (most specific) + "u": 'INSERT_ALT_UNIT_NAME', #attribute containing alternative stratigraphic unit name (eg unit code). Can be the same as 'c' + "g": 'INSERT_GROUP', #*opt attribute containing stratigraphic group + "g2": 'INSERT_SUPERGROUP', #*opt attribute containing stratigraphic supergroup (most coarse classification) + "ds": 'INSERT_DESCRIPTION', #*opt general description field + "r1": 'INSERT_ROCKTYPE', #*opt attribute containing extra lithology information (can indicate intrusions) + "r2": 'INSERT_ROCKTYPE2', #*opt attribute containing secondary rocktype information + "sill": 'INSERT_SILL_TEXT', #*opt text defining a sill in the "ds" field (eg 'sill') + "intrusive": 'INSERT_INTRUSIVE_TEXT', #*opt text defining an intrusion in the "r1" field (eg 'intrusion') + "volcanic": 'INSERT_VOLCANIC_TEXT', #*opt text defining volcanics in the "ds" field (eg 'volcanic') + "min": 'INSERT_MIN_AGE', #*opt attribute containing minimum unit age + "max": 'INSERT_MAX_AGE', #*opt attribute containing maximum unit age + #LINEAR FEATURES SHAPEFILE ATTRIBUTES + "f": 'INSERT_STRUCT_TYPE', #attribute containing linear structure type (e.g. fault) + "fault": 'fault', #text defining faults in the "f" field (eg. 'fault') + "fdip": 'INSERT_FAULT_DIP', #*opt attribute containing numeric fault dip value (defaults to fdipnull) + "fdipnull": '0', #Default fault dip value, if 'fdip' field is empty + "fdipdir": 'INSERT_FAULT_DIP_DIRECTION', #*opt attribute containing the fault dip direction (defaults to -999) + "fdipdir_flag": 'num', #*opt specifies whether fdipdir is "num":numeric or other ("alpha") + "fdipest": 'INSERT_DIP_EST_TEXT', #*opt field for text fault dip estimate value (defaults to none) + "fdipest_vals": 'INSERT_DIP_EST_TERMS', #*opt text used to estimate dip in increasing steepness, in "fdipest" field + "n": 'INSERT_FAULT_NAME', #*opt attribute containing the fault name + #GENERAL IDS + "o": 'INSERT_OBJ_ID', #*opt attribute containing unique object id (used in polygon and lineString shapefiles + "gi": 'INSERT_ORI_ID', #*opt attribute containing unique id of structural points + } + +map2loop-3 variable names HJSON File Template +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This is a template with the most up-to date variable names. diff --git a/_sources/user_guide/geomodelling.rst.txt b/_sources/user_guide/geomodelling.rst.txt index 410d810a..2fd1fe57 100644 --- a/_sources/user_guide/geomodelling.rst.txt +++ b/_sources/user_guide/geomodelling.rst.txt @@ -1,2 +1,225 @@ Creating a 3D geological model ------------------------------ +This is a step-by-step tutorial designed to help you get started with using Loop’s python libraries to create a 3D geological model. +This piece covers how to use map2loop to convert a QGIS map into a loop3d file, which can in turn be used by LoopStructural to create a 3D geological model. + +Getting Started +=============== +map2loop takes 3 shapefile inputs and generates a ‘.loop3d’ output file, which can be transformed into a 3D geological model using the LoopStructural library. +Please note that the names used for shapefiles and attributes throughout this tutorial are examples. You can name these as you see fit, provided you refer to your names within the calling code as explained towards the end of this guide. + +Required Shape Files +.................... +In order to use map2loop, you will first need to create a digital QGIS map containing three shapefiles as specified in the table below: + +.. list-table:: + :widths: 25 100 25 + :header-rows: 1 + + * - Shape file example name + - Shape file description + - QGIS Geometry Type + * - Lithologies.shp + - Represents contacts (eg. lithologies) as different polygons on your QGIS map + - Polygon + * - Linear_Features.shp + - Represents linear features (eg faults and axial traces), as lines on your QGIS map + - LineString + * - Orientation_data.shp + - Represents orientation data (eg. bedding measurements, foliations etc) as points on your QGIS map + - Point +Notes: +~~~~~ +* If your map doesn’t have any faults in it, you will need to create a blank lineString shapefile to pass map2loop as an input. +* Axial trace data is not yet used by map2loop, so irrespective of whether you include it in the line shape file, you will have to manually add axial traces using LoopStructural. +* Faults are currently modelled using a single orientation measurement (dip and dip direction). This makes it difficult to model faults with changing dip using map2loop. This issue is currently being worked on, but in the meantime if you would like to model complex fault systems it may be best to use LoopStructural to generate these. + +Shape File Attribute Table Requirements +======================================= +This section covers the required attributes that each shape file should contain, within the QGIS attributes table. Please note that you can name attributes whatever you’d like, as long as they contain the information specified below. + +Point Shapefile +............... + +This file contains point data that is used to represent orientation data (e.g. bedding and foliation measurements). + +.. list-table:: **Orientation_data.shp** + :widths: 20 25 20 20 20 50 + :header-rows: 1 + + * - Example Attribute name in QGIS + - Variable name in map2loop-3 + - Variable name in map2loop-2 (ie Legacy code) + - Data Type + - Required/ optional + - Description + * - Strike + - “dipdir_column” + - “dd” + - Integer + - Required + - Strike (using the right hand rule) + * - Dip + - "dip_column" + - “d” + - Integer + - Required + - Dip + * - Desc + - "desciption_column" + - “sf” + - String + - Optional + - Description field about structural measurements. This could be a specification about deformation event or foliation type (eg. ‘s0’). + * - bo + - "overturned_column" + - 'bo' + - String + - Optional + - Text field indicating if bedding measurements are overturned (eg. ‘overturned’) + * - geopnt_id + - "objectid_column" + - ‘gi’ + - Integer / String + - Optional + - Field to specify a unique id of structural measurement + +An example of the QGIS attribute table for simple orientation data is shown in the image below: + +.. image:: ../images/ori_attributes_table.png + :width: 400 + +LineString Shapefile +...................... +This shapefile contains lineStrings that represent fault traces at the surface. Axial traces can also be included in this shape file, however map2loop doesn’t yet have the capability to include fold axes in the 3D model. If you’d like to include fold axes, you will have to do so using LoopStructural. + +.. list-table:: **Linear_Features.shp** + :widths: 20 25 20 20 20 50 + :header-rows: 1 + + * - Example Attribute name in QGIS + - Variable name in map2loop-3 + - Variable name in map2loop-2 (ie Legacy code) + - Data Type + - Required/ optional + - Description + * - Feature + - "structtype_column" + - "f" + - String + - Required + - Field that contains information about the type of structure (eg. ‘fault’) + * - Plunge + - "dip_column" + - "fdip" + - Integer + - Optional + - Fault dip value. Note if a fault dip isn’t provided the default value defined by ‘fdipnull’ will be used + * - Dip Direct + - "dipdir_column" + - “fdipdir” + - Integer + - Required + - Fault dip direction – calculate this as the strike using the RHR ±90 degrees + * - Name + - "name_column" + - “n” + - String + - Optional + - Name of the feature + +An example of the QGIS attribute table for a single fault is shown in the image below: + +.. image:: ../images/fault_attributes_table.png + :width: 400 + + +Polygon Shapefile +................... +This contains polygons representing different lithologies and the contacts between them. + +.. list-table:: **Lithologies.shp** + :widths: 20 25 20 20 20 50 + :header-rows: 1 + + * - Example Attribute name in QGIS + - Variable name in map2loop-3 + - Variable name in map2loop-2 (ie Legacy code) + - Data Type + - Required/ optional + - Description + * - supersuite + - "group_column" + - “g” + - String + - Optional + - Most coarse stratigraphic unit classification (e.g. supergroup) + * - group + - "supergroup_column" + - "g2" + - String + - Optional + - Coarser stratigraphic group classification (e.g. group) + * - Lithology + - "unitname_column" + - "c" + - String + - Required + - Most specific stratigraphic unit names (eg. member, formation etc) + * - Descript + - "description_column" + - "ds" + - String + - Optional + - General description field + * - Alt_unit + - "alt_unitname_column" + - "u" + - String + - Required + - Field containing alternate stratigraphic unit names + * - r1 + - "rocktype_column" + - "r1" + - String + - Optional + - Contains rocktype information (e.g. intrusion) + * - r2 + - "alt_rocktype_column" + - "r2" + - String + - Optional + - Secondary rock type field + * - min_age + - "minage_column" + - "min" + - Integer + - Optional + - Minimum unit age + * - max_age + - "maxage_column" + - "max" + - Integer + - Optional + - Maximum unit age + +A simple example of the QGIS attribute table for lithology data is shown in the image below: + +.. image:: ../images/litho_attributes_table.png + :width: 400 + +Tips and Trouble Shooting for QGIS map +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +* Ensure that there are no gaps between your polygons. You may find it helpful to use the ‘snapping tool’ in QGIS. +* Map2loop sometimes glitches with white spaces. You may need to replace spaces in names with underscores (for example: Emu Egg Fault becomes Emu_Egg_Fault) +* If you want to force a stratigraphic sequence but don’t want to but in absolute unit ages, you can number the units with relative ‘age’ values in order (eg, 1, 2, 3, 4). To do this set the min and max ages to the relevant sequence number. This is demonstrated in the image above. + +Adding Data +=========== +Once you’ve set up the aforementioned shapefiles, you can start to add your data into the corresponding QGIS layers. + +Tip +~~~ + +* If you are working in a complex system, or an area with fine geological detail, you may need to upscale your data. It is usually easier to start modelling the large scale structures and then you can try to add in relevant detail once you have a decent model. diff --git a/_sources/user_guide/getting_started.rst.txt b/_sources/user_guide/getting_started.rst.txt index 746ad84a..d3f98eaa 100644 --- a/_sources/user_guide/getting_started.rst.txt +++ b/_sources/user_guide/getting_started.rst.txt @@ -1,2 +1,19 @@ -Getting started -=============== \ No newline at end of file +Getting Started +=============== +map2loop is a python library that improves the ease and accessibility of 3D modelling with Loop. It enables you to create 3D geological models from digital maps produced in programs such as GIS. map2loop's role within the Loop3D ecosystem is to automatically convert digital map data into a useable format. The generated ‘.loop3d’ output file can then be transformed into a 3D geological model using the LoopStructural library. + +map2loop Requirements +...................... +In order to run map2loop you will need the following input files: + +#. Polygon shapefile containing your lithologies +#. LineString shapefile containing your linear features (e.g. faults) +#. Point data shapefile containing orientation data +#. hjson config file, used to map the attribute names used in your shapefiles to map2loop's variables + +Additional useful inputs: + +* DEM or DTM file for your map region +* Optional CSV file specifying unit colours + +If you need help setting up these files please refer to the relevant map2loop user pages or to the examples which provide a step-by-step guide. diff --git a/_sources/user_guide/index.rst.txt b/_sources/user_guide/index.rst.txt index 662e76f3..afb3f0eb 100644 --- a/_sources/user_guide/index.rst.txt +++ b/_sources/user_guide/index.rst.txt @@ -7,7 +7,10 @@ User Guide getting_started installation geomodelling + config_file + setup_jupyter + changing_colours stratigraphic_thickness stratigraphic_order fault_offset - exporting \ No newline at end of file + exporting diff --git a/_sources/user_guide/m2l_code_template.rst.txt b/_sources/user_guide/m2l_code_template.rst.txt new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/_sources/user_guide/m2l_code_template.rst.txt @@ -0,0 +1 @@ + diff --git a/_sources/user_guide/setup_jupyter.rst.txt b/_sources/user_guide/setup_jupyter.rst.txt new file mode 100644 index 00000000..57b5af92 --- /dev/null +++ b/_sources/user_guide/setup_jupyter.rst.txt @@ -0,0 +1,34 @@ +Setting up your Jupyter Notebook +================================ +Now that you’ve created all of the required inputs for map2loop, you can set up a Jupyter notebook to run the code. In order to do this, you’ll need to create an Anaconda (or similar) environment with all the required dependencies. If you need help setting up your virtual environment, please refer to the Installation page. + +Map2loop calling code: +--------------------- +In order to ‘run’ map2loop, you need to pass the program several pieces of information, including: + * Shape file paths + * Csv colour file path (optional) + * DEM / DTM path + * hjson config file that maps the attributes from your QGIS project onto the map2loop variables. + +An example code template for processing your QGIS map data using map2loop is provided under the Examples section on the map2loop website. The output from this code is a .loop3d file which can then be passed to LoopStructural to create your 3d model. + +Depending on the sorter algorithm you choose to use with map2loop (as described in the template), you’ll receive different outputs. If you use the take best sorter algorithm, you can expect an output similar to: + + **Best sorter SorterAgeBased calculated contact length of 29632.67023438857** + + +Inspecting the .loop3d output file +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +You can inspect your map2loop output file using the ncdump command via the terminal (e.g. Anaconda Prompt). In order to use this tool, you’ll need to ensure that you have netcdf4 installed in your environment. You can check this by using the command: ''**conda list**'' within your Anaconda environment. This will list all of the installed applications and dependencies. You’ll need to scroll through these to see if netcdf4 is installed. +If you are able to use this tool, you can run it with the following command, where local_source.loop3d is the name of the output file that you named in the map2loop calling code (see the explanation in the Map2Loop template notebook). + **ncdump local_source.loop3d** + +Note: this command will only work if you are in the correct working directory (i.e wherever you saved the loop3d file). You can change directories using the **cd** command, followed by the directory path that you’d like to change to. +The expected output of the ncdump command, is a series of text representing the tabulated data generated by map2loop. It will be output directly onto the terminal console. + +LoopStructural calling code +--------------------------- +Once you have run map2loop successfully, you can pass the produced .loop3d file to apt LoopStructural calling code, to produce a 3D model. +There is an example of this code on the map2loop documentation page. It is also explained in the Loop Structural Calling Code Template. + + diff --git a/_sources/user_guide/stratigraphic_order.rst.txt b/_sources/user_guide/stratigraphic_order.rst.txt index 4b35f20b..c9555916 100644 --- a/_sources/user_guide/stratigraphic_order.rst.txt +++ b/_sources/user_guide/stratigraphic_order.rst.txt @@ -1,3 +1,132 @@ Identifying stratigraphic order =============================== +Calculating stratigraphic order in map2loop can be difficult depending on the +stratigraphy of your region of interest and how much data has been collected in +the field. Because of this map2loop has been written so that a python-capable user +can create their own stratigraphic column sorter and use it within the map2loop process. + +Below is the structure of a stratigraphic column sorter and an example of how to implement +your own and use it within map2loop. + +In order to make a plugin sorter map2loop has a template that is extendable. The whole +template is shown below: + +.. code-block:: + + class Sorter(ABC): + """ + Base Class of Sorter used to force structure of Sorter + + Args: + ABC (ABC): Derived from Abstract Base Class + """ + def __init__(self): + """ + Initialiser of for Sorter + """ + self.sorter_label = "SorterBaseClass" + + def type(self): + """ + Getter for subclass type label + + Returns: + str: Name of subclass + """ + return self.sorter_label + + @beartype.beartype + @abstractmethod + def sort(self, units: pandas.DataFrame, unit_relationships: pandas.DataFrame, stratigraphic_order_hint: list, contacts: pandas.DataFrame, map_data: MapData) -> list: + """ + Execute sorter method (abstract method) + + Args: + units (pandas.DataFrame): the data frame to sort (columns must contain ["layerId", "name", "minAge", "maxAge", "group"]) + units_relationships (pandas.DataFrame): the relationships between units (columns must contain ["Index1", "Unitname1", "Index2", "Unitname2"]) + stratigraphic_order_hint (list): a list of unit names to be used as a hint to sorting the units + contacts (geopandas.GeoDataFrame): unit contacts with length of the contacts in metres + map_data (map2loop.MapData): a catchall so that access to all map data is available + + Returns: + list: sorted list of unit names + """ + pass + +Using this abstract base class a new class can be created by taking that base class and +replacing the __init__ and sort functions, the simplest example is shown below: + +.. code-block:: + + class mySorter(Sorter): + def __init__(self): + self.sorter_label = "mySorter" + + def sort(self, + units: pandas.DataFrame, + unit_relationships: pandas.DataFrame, + stratigraphic_order_hint: list, + contacts: geopandas.GeoDataFrame, + map_data: MapData + ) -> list: + unitnames = sorted(units['name']) + return unitnames + +This example will sort the units into alphabetical order based on name and return the +stratigraphic column order in a list of unit names. + +To use this new sorter in the map2loop project one final line needs to +be added after the Project has been initialised: + +.. code-block:: + + proj = map2loop.Project( ... ) + + proj.set_sorter(mySorter()) + +Notes +----- +You need to set the sorter as an instance of mySorter (with the ()s) rather than the definition. + +The sorter takes the existing units dataframe and must return a list containing all the +unitnames present in that dataframe. If some are added or missing map2loop with raise an +exception. Also while you have control of this dataframe you have the power to add or +remove units, and change features of any unit but if you do this there is no longer any +guarantee that map2loop will still process your maps or even finish. + +As the base class Sorter contains abstract methods and is parsed through beartype the +structure of the sort function must remain the same. If there is reason to access more +map2loop data that isn't in the map_data structure raise an issue with in the map2loop +github repo and we can address that. + +Parameters +---------- +As seen in the template and the sort abstract method you have access to other data +from within the map2loop process. Below is a brief description of each and a potential +use for them in your thickness calculator: + +units - this is the data frame that contains the units and fields such as group, supergroup and +min/max ages. If the age data is present it can be useful in sorting the units. Also +group and supergroup information could be used to ensure that all units within the +same group/supergroup are contiguous. + +unit_relationships - this data frame contains a list of adjacent units within the shapefile. +The format is ['Index1', 'Unitname1', 'Index2', 'Unitname2'] and each row is a single +adjacency that was found. Note that some of these contacts might have been across a fault +so take that into account when using this data. + +stratigraphic_order_hint - this is a first pass attempt at the stratigraphic column +calculated by map2model which looks at unit adjacency in the shapefile. + +contacts - this geometric data frame contains linear data of where adjacent +units are and the length of that contact. Using this data you might prioritise +longer contacts as more likely to be adjacent in the stratigraphic column. + +map_data - this catch-all gives you complete access to the shapefiles used in map2loop. +If you need access to the structural orientation data you can use +map_data.get_map_data(Datatype.STRUCTURE) or if you want the geology map +map_data.get_map_data(Datatype.GEOLOGY) and you have access to those shapefiles. Note +that changing information or using setter function from map_data is likely to cause +problems within the map2loop workflow. + diff --git a/_sources/user_guide/stratigraphic_thickness.rst.txt b/_sources/user_guide/stratigraphic_thickness.rst.txt index 2e576c5d..5656a663 100644 --- a/_sources/user_guide/stratigraphic_thickness.rst.txt +++ b/_sources/user_guide/stratigraphic_thickness.rst.txt @@ -1,2 +1,129 @@ Calculating stratigraphic thicknesses -------------------------------------- \ No newline at end of file +===================================== + +Calculating unit thicknesses in map2loop is both an important and a difficult +task. There is no 'best' way to determine thicknesses because it depends on the +stratigraphy of your region of interest and how much data has been collected in +the field. Because of this map2loop has been written so that a python-capable user +can create their own thickness calculator and use it within the map2loop process. + +Below is the structure of a thickness calculator and an example of how to implement +your own and use it within map2loop. + +In order to make a plugin thickness calculator map2loop has a template that is +extendable. The whole template is shown below: + +.. code-block:: + + class ThicknessCalculator(ABC): + """ + Base Class of Thickness Calculator used to force structure of ThicknessCalculator + + Args: + ABC (ABC): Derived from Abstract Base Class + """ + + def __init__(self): + """ + Initialiser of for ThicknessCalculator + """ + self.thickness_calculator_label = "ThicknessCalculatorBaseClass" + + def type(self): + """ + Getter for subclass type label + + Returns: + str: Name of subclass + """ + return self.thickness_calculator_label + + @beartype.beartype + @abstractmethod + def compute( + self, + units: pandas.DataFrame, + stratigraphic_order: list, + basal_contacts: geopandas.GeoDataFrame, + map_data: MapData, + ) -> pandas.DataFrame: + """ + Execute thickness calculator method (abstract method) + + Args: + units (pandas.DataFrame): the data frame of units to add thicknesses to + stratigraphic_order (list): a list of unit names sorted from youngest to oldest + basal_contacts (geopandas.GeoDataFrame): basal contact geo data with locations and unit names of the contacts (columns must contain ["ID","basal_unit","type","geometry"]) + map_data (map2loop.MapData): a catchall so that access to all map data is available + + Returns: + pandas.DataFrame: units dataframe with added thickness column for calculated thickness values + """ + pass + +Using this abstract base class a new class can be created by taking that base class and +replacing the __init__ and compute functions, the simplest example is shown below: + +.. code-block:: + + class myThicknessCalculator(ThicknessCalculator): + def __init__(self): + self.thickness_calculator_label = "myThicknessCalculator" + + def compute( + self, + units: pandas.DataFrame, + stratigraphic_order: list, + basal_contacts: pandas.DataFrame, + map_data: MapData, + ) -> pandas.DataFrame: + output_units = units.copy() + output_units['thickness'] = 100 + return output_units + +This example will set all unit thicknesses to 100m. + +To use this new thickness calculator in the map2loop project one final line needs to +be added after the Project has been initialised: + +.. code-block:: + + proj = map2loop.Project( ... ) + + proj.set_thickness_calculator(myThicknessCalculator()) + +Notes +----- +You need to set the thickness calculator as an instance of myThicknessCalculator +(with the ()s) rather than the definition. + +The thickness calculator takes the existing units dataframe, changes the values in the +thickness column and then returns the modified dataframe. While you have control of +this dataframe you have the power to add or remove units, and change features +of any unit but if you do this there is no longer any guarantee that map2loop will still +process your maps or even finish. + +Parameters +---------- +As seen in the template and the compute abstract method you have access to other data +from within the map2loop process. Below is a brief description of each and a potential +use for them in your thickness calculator: + +units - while this is the data frame that you need to return it also contains fields +such as group, supergroup and min/max ages. If you have coarser information about the +thickness of a group this information could be used to ensure that the sum of the unit +thicknesses in your region that are within the same group matches your information. + +stratigraphic_order - this is likely the most useful parameter as it tells you which +units are adjacent. In combination with the basal_contacts parameter apparent thicknesses +can be calculated. + +basal_contacts - this geometric data frame contains linear data of where adjacent +contacts are. By comparing the contacts on both sides of a unit you can calculated the +apparent thickness of a unit + +map_data - this catch-all gives you complete access to the shapefiles used in map2loop. +If you need access to the structural orientation data you can use +map_data.get_map_data(Datatype.STRUCTURE) and you have access to the shapefile. Note +that changing information or using setter function from map_data is likely to cause +problems within the map2loop workflow. diff --git a/_static/documentation_options.js b/_static/documentation_options.js index afc79d00..753fe330 100644 --- a/_static/documentation_options.js +++ b/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '3.0.4', + VERSION: '3.0.6', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/genindex.html b/genindex.html index d07026be..31db464d 100644 --- a/genindex.html +++ b/genindex.html @@ -7,7 +7,7 @@ - Index — map2loop 3.0.4 documentation + Index — map2loop 3.0.6 documentation @@ -38,7 +38,7 @@ - + @@ -119,7 +119,7 @@ -

map2loop 3.0.4 documentation

+

map2loop 3.0.6 documentation

diff --git a/index.html b/index.html index 94ed5c82..b0568ae3 100644 --- a/index.html +++ b/index.html @@ -8,7 +8,7 @@ - Map2loop 3.0.x — map2loop 3.0.4 documentation + Map2loop 3.0.x — map2loop 3.0.6 documentation @@ -39,7 +39,7 @@ - + @@ -121,7 +121,7 @@ -

map2loop 3.0.4 documentation

+

map2loop 3.0.6 documentation

diff --git a/objects.inv b/objects.inv index 859bb55430f553eaec619e3dd0474932185e5e7a..f304874284484db6c7ac0f74d03c7a1d021347fe 100644 GIT binary patch delta 962 zcmV;z13mnz2d)T^dVky?5Qgvm6-e!|PSWNURh6QCB#qQIQdH%Lh|Sux7!VB2`rmgj zwqvi?yOBa}>*3`YJPgBl8)iO8tqn2lMWahEIXNSgdC<-`4YTcO(<@GDXyluy$={MZ z8wYN!{=*9hh(a>w$omySFN~yph!aYM5cBD(m1U+D1=Y6XHnE4WY6?jItGIJK%?p&4J<^I}XsVXtXc8#jVlWCAxrJ7M z&uLa%ai9$*N8=m1VO|22TvbpfgFDt3nP~Sqp0H)a4GQbVVNTm6_CY`vmP$|S6~ zIU!SN$$%wd{(s{kS3ztx)H0W9w>qv+Sa3|VYy?)-WMs645QKsjz-dmG!z3tqJXife zNCy^`(w1X6C=;&s)oOuDTnk*-Q1Fczu zXIS#~0BbIc(Cgvx9l7VBCMt62!_G;;b{)A2fAhkF(29a+@OZB~TZ*H@&$=-lSTK{$ zob8S9g1omsCBsv8aGQ?9ru#{Dty#s@(>_V|z-1r});Q^V_?a!XbE5b$yxRH6*~vD; z)_M=rw14?9(9eopdc;pgk4(F5@hqtMY{!``>iNWIi*xSc_${k=c6hI!zq!uTTUtp= z=jlOra?!N&WgXAlH-VfZISiVlS=96MP%qGwnfE5oOaP6SUKfIRML+H}H>qZs1zPbDLlZ1&=k9=z+Q}I3b zdz>hu$NQSWSei(w=dnRK-nqf&DlU!>cS-*^WyIT5Z#LK$tYD^+Nct8mq@Ogj5xD3n z7=OENtWI3Y_4Q39{f1f2x));P{0oU6nF1Y_*1e6b^RqmT>OKR9Y+iVs{6CZZ2O&5yipMkL0RR91 delta 829 zcmV-D1H$~S2&xB=dVkw642JLi6#}~BoObK2w_+b%4+8=WLyv-HF^)D_GW4;=|9+HZ zdveWM(ClW}4foQ*8FGk~dM4zax1z z3~Y`54TTGcLNaT~hZRC6jHD&RhEkz~qqGeN++OoHz*t?&hJO}XYHz61)Fav^As0** zUNQ&NI>VeO4XgK}pxSUSi9LjPjKU4vLMw;Q zX(BGc(F%*B@)g}NFCCSjO1Do2x2&pVqSb48+PH+cp#o@M8agH1=-1R>;}vC6CSk?J z36)AYb1V__FMotubz--phS^lB)pCWxhEqq&PGDC}Mn-E$L1<_JoMv}fECLR3Uv(QH z9axk~8^CtJ6GnTrUSJdV0-LrM*lYFzd#zp&5^!`@;<@ZAm4@C<5f-{?cyo*BHtzgp zlV8M|-Hh_=ar;cH;}2XH0fLXM6h~Sfg+p6%_EsnkhkvnjX*|yT(%Fs?wbYL8S%rI8 zLUV#O6-MZ{{_#C|fzT5bdGulBq+rL6Y>B_2@J?t&ov3houREKIqr*?Ss=Z^uOj>ic znBf_D@qSABr|jf1orjIrlN?*K64d{7lI$1AK&q9{*82l3rJ>XE zphvY>H`B1rSME(9=Sa?jH1DN(kmiFlNASrKUyE<${nr9qNyu7|w#)~49_c4i$Mvg{ zn(-^)&ZX#VPA| zRj%XWc;A4#$1x)wL3+2t!*m5RmPFFmU?JV4{_Mq|$6&mw;+6&}*W(*Yx(#T6wJ*fT z{bv%t%mg|ht!|2UL5Qa`!^;X^^)OLICr{BxI^&o+>wm{%k?<3( - Python Module Index — map2loop 3.0.4 documentation + Python Module Index — map2loop 3.0.6 documentation @@ -38,7 +38,7 @@ - + @@ -126,7 +126,7 @@ -

map2loop 3.0.4 documentation

+

map2loop 3.0.6 documentation

diff --git a/search.html b/search.html index ff34d539..354ff15b 100644 --- a/search.html +++ b/search.html @@ -6,7 +6,7 @@ - Search - map2loop 3.0.4 documentation + Search - map2loop 3.0.6 documentation @@ -37,7 +37,7 @@ - + @@ -121,7 +121,7 @@ -

map2loop 3.0.4 documentation

+

map2loop 3.0.6 documentation

diff --git a/searchindex.js b/searchindex.js index 55cd46f9..ffc1bef1 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["API", "_auto_examples/index", "_auto_examples/plot_hamersley", "_auto_examples/sg_execution_times", "_autosummary/map2loop", "_autosummary/map2loop.Project", "index", "sg_execution_times", "user_guide/explanation", "user_guide/exporting", "user_guide/fault_offset", "user_guide/geomodelling", "user_guide/getting_started", "user_guide/index", "user_guide/installation", "user_guide/stratigraphic_order", "user_guide/stratigraphic_thickness"], "filenames": ["API.rst", "_auto_examples/index.rst", "_auto_examples/plot_hamersley.rst", "_auto_examples/sg_execution_times.rst", "_autosummary/map2loop.rst", "_autosummary/map2loop.Project.rst", "index.rst", "sg_execution_times.rst", "user_guide/explanation.rst", "user_guide/exporting.rst", "user_guide/fault_offset.rst", "user_guide/geomodelling.rst", "user_guide/getting_started.rst", "user_guide/index.rst", "user_guide/installation.rst", "user_guide/stratigraphic_order.rst", "user_guide/stratigraphic_thickness.rst"], "titles": ["API", "Examples", "Hamersley, Western Australia", "Computation times", "map2loop", "map2loop.Project", "Map2loop 3.0.x", "Computation times", "What map2loop does", "Exporting", "Fault offset calculation", "Creating a 3D geological model", "Getting started", "User Guide", "Installing map2loop", "Identifying stratigraphic order", "Calculating stratigraphic thicknesses"], "terms": {"hamerslei": [1, 3, 7], "western": [1, 3, 6, 7], "australia": [1, 3, 6, 7], "download": [1, 2, 14], "all": [1, 2, 5, 7], "python": [1, 2, 6, 14], "sourc": [1, 2, 14], "code": [1, 2, 5, 6, 14], "_auto_examples_python": 1, "zip": [1, 5], "jupyt": [1, 2, 6, 14], "notebook": [1, 2, 6, 14], "_auto_examples_jupyt": 1, "galleri": [1, 2, 7], "gener": [1, 2, 6], "sphinx": [1, 2], "go": [2, 6], "end": 2, "full": [2, 5], "exampl": [2, 3, 6, 7, 14], "import": [2, 6], "time": 2, "o": 2, "from": [2, 3, 5, 6, 7], "m2l_enum": [2, 5, 6], "verboselevel": [2, 5, 6], "datatyp": [2, 5], "sorter": [2, 5], "sorteralpha": 2, "sorteragebas": 2, "sorterusehint": 2, "sorterusenetworkx": 2, "sortermaximisecontact": 2, "sorterobservationproject": 2, "sampler": [2, 5], "samplerspac": 2, "datetim": 2, "defin": [2, 5, 6], "bound": [2, 6], "box": [2, 6], "roi": [2, 6], "bbox_3d": [2, 6], "minx": [2, 6], "515687": 2, "31005864": 2, "mini": [2, 6], "7493446": 2, "76593407": 2, "maxx": [2, 6], "562666": 2, "860106543": 2, "maxi": [2, 6], "7521273": 2, "57407786": 2, "base": [2, 5, 6], "3200": [2, 6], "top": [2, 6], "3000": 2, "specifi": [2, 5, 6], "minimum": 2, "detail": [2, 6], "which": [2, 5], "australian": 2, "state": [2, 5, 6], "output": [2, 5, 6], "file": [2, 3, 5, 7, 14], "loop_project_filenam": [2, 5, 6], "wa_output": 2, "loop3d": [2, 6, 14], "proj": [2, 6], "use_australian_state_data": [2, 5, 6], "wa": [2, 5], "working_project": [2, 5, 6], "epsg": [2, 5, 6], "28350": 2, "bounding_box": [2, 5, 6], "verbose_level": [2, 5], "none": [2, 5], "distanc": 2, "between": 2, "sampl": [2, 5], "point": [2, 5], "arial": 2, "linestr": 2, "geometri": 2, "set_sampl": [2, 5], "geologi": [2, 5], "200": 2, "0": [2, 3, 7], "fault": [2, 5, 13], "choos": 2, "stratigraph": [2, 5, 13], "us": [2, 5, 6], "run_al": [2, 5, 6], "take_best": [2, 5], "flag": [2, 5], "run": [2, 5, 14], "them": 2, "set_sort": [2, 5], "true": 2, "unus": 2, "kei": 2, "legaci": [2, 5], "format": [2, 5], "msc": 2, "msn": 2, "mst": 2, "mtc": 2, "mscm": 2, "mcom": 2, "minf": 2, "fdipdir_flag": 2, "deposit_dist": 2, "best": [2, 6], "calcul": [2, 5, 13], "contact": [2, 5], "length": [2, 5], "286560": 2, "51738879026": 2, "cannot": 2, "thick": [2, 5, 13], "fortescue_group": 2, "bunjinah_form": 2, "boolgeeda_iron_form": 2, "woongarra_rhyolit": 2, "weeli_wolli_form": 2, "brockman_iron_form": 2, "wittenoom_form": 2, "marra_mamba_iron_form": 2, "turee_creek_group": 2, "map_data": [2, 5], "basal_contact": [2, 5], "plot": [2, 5], "ax": 2, "total": [2, 3, 7], "script": 2, "minut": 2, "19": [2, 3, 7], "460": [2, 3, 7], "second": 2, "plot_hamerslei": [2, 3, 7], "ipynb": 2, "py": [2, 3, 7], "00": [3, 7], "execut": [3, 7], "1": [3, 7], "_auto_exampl": 3, "mem": [3, 7], "mb": [3, 7], "class": [4, 5], "tmp_path": 5, "str": 5, "m2l_data_tmp": 5, "geology_filenam": 5, "structure_filenam": 5, "fault_filenam": 5, "fold_filenam": 5, "dtm_filenam": 5, "config_filenam": 5, "config_dictionari": 5, "dict": 5, "clut_filenam": 5, "clut_file_legaci": 5, "bool": 5, "fals": 5, "save_pre_checked_map_data": 5, "kwarg": 5, "object": 5, "The": 5, "main": 5, "entri": 5, "A": 5, "select": 5, "how": [5, 6], "much": 5, "consol": 5, "log": 5, "i": [5, 6], "list": 5, "extract": 5, "polyon": 5, "line": [5, 6], "segment": 5, "index": 5, "datayp": 5, "sort": 5, "algorithm": 5, "column": 5, "thickness_calcul": 5, "thicknesscalul": 5, "make": [5, 6], "unit": 5, "estim": 5, "loop_filenam": 5, "name": [5, 14], "loop": [5, 6], "thi": [5, 6, 14], "mapdata": 5, "structur": 5, "hold": 5, "map": [5, 6, 13], "dtm": 5, "data": [5, 6], "map2model": 5, "map2modelwrapp": 5, "wrapper": 5, "around": 5, "modul": 5, "adjac": 5, "stratigraphic_column": 5, "stratigraphiccolumn": 5, "inform": 5, "order": [5, 13], "deformation_histori": 5, "deformationhistori": 5, "structura": 5, "fold": 5, "interact": [5, 6], "initialis": 5, "param": 5, "sent": 5, "default": 5, "type": 5, "option": 5, "directori": [5, 6], "store": 5, "temporari": 5, "int": 5, "boundari": 5, "extent": 5, "m": 5, "whether": 5, "filenam": 5, "shapefil": 5, "fo": 5, "digit": 5, "terrain": 5, "configur": 5, "json": 5, "dictionari": 5, "version": 5, "colour": 5, "look": 5, "up": [5, 14], "tabl": 5, "indic": 5, "clut": 5, "save": 5, "befor": 5, "rais": 5, "typeerror": 5, "valueerror": 5, "4": 5, "6": 5, "tupl": 5, "sa": [5, 6], "qld": 5, "nsw": 5, "ta": 5, "vic": 5, "act": 5, "nt": 5, "__init__": 5, "paramet": 5, "method": 5, "apply_colour_to_unit": 5, "appli": 5, "calculate_stratigraphic_ord": 5, "relationship": 5, "ag": 5, "creat": [5, 13], "calculate_unit_thick": 5, "draw_geology_map": 5, "datafram": 5, "overlai": 5, "specif": 5, "panda": 5, "must": 5, "contain": [5, 6, 14], "x": 5, "y": [5, 6, 14], "layer": 5, "ar": [5, 6], "orient": 5, "extract_geology_contact": 5, "along": 5, "get_minimum_fault_length": 5, "float": 5, "get": [5, 13, 14], "cutoff": 5, "return": 5, "get_sampl": 5, "being": 5, "get_sort": 5, "get_thickness_calcul": 5, "get_throw_calcul": 5, "throw": 5, "user_defined_stratigraphic_column": 5, "process": [5, 6], "user": 5, "fed": 5, "overrid": 5, "sample_map_data": 5, "polylin": 5, "save_geotiff_rast": 5, "test": 5, "tif": 5, "pixel_s": 5, "25": 5, "geotiff": 5, "string": 5, "3857": 5, "work": [5, 6], "size": 5, "pixel": 5, "metr": 5, "save_into_projectfil": 5, "updat": 5, "save_mapdata_to_fil": 5, "save_path": 5, "extens": [5, 6], "shp": 5, "frame": 5, "csv": 5, "path": 5, "an": [5, 6, 14], "altern": 5, "geodatafram": 5, "set_default_sampl": 5, "function": 5, "set": 5, "reset": 5, "set_ignore_cod": 5, "ignor": 5, "set_minimum_fault_length": 5, "determin": 5, "set_thickness_calcul": 5, "thicknesscalcul": 5, "set_throw_calcul": 5, "throw_calcul": 5, "throwcalcul": 5, "valu": 5, "sort_stratigraphic_column": 5, "match": 5, "summarise_fault_data": 5, "summari": 5, "each": 5, "3d": [6, 13], "geolog": [6, 13], "model": [6, 13], "input": 6, "geograph": [], "high": 6, "level": 6, "implement": 6, "origin": 6, "develop": [6, 13], "prof": 6, "mark": 6, "jessel": 6, "uwa": 6, "To": [6, 14], "see": [6, 14], "built": 6, "loopstructur": 6, "follow": [6, 14], "our": 6, "cover": 6, "case": 6, "more": 6, "here": [6, 14], "": 6, "south": 6, "remot": 6, "geospati": 6, "just": [6, 14], "20": 6, "first": 6, "let": 6, "you": [6, 14], "can": 6, "gi": 6, "softwar": [6, 14], "find": [6, 14], "one": 6, "rememb": 6, "what": 6, "project": 6, "your": 6, "coordin": 6, "note": 6, "region": 6, "28354": 6, "repres": 6, "east": 6, "north": 6, "respect": 6, "250805": 6, "1529856466": 6, "6405084": 6, "328058686": 6, "336682": 6, "921539395": 6, "6458336": 6, "085975628": 6, "1200": 6, "Then": 6, "abov": [6, 14], "hit": 6, "That": 6, "minim": 6, "small": 6, "part": 6, "document": 6, "other": 6, "resourc": 6, "outlin": 6, "extend": 6, "port": 6, "engin": 6, "we": [6, 14], "incorpor": 6, "geophys": 6, "tool": 6, "provid": 6, "visualis": 6, "workflow": 6, "consolid": 6, "gui": 6, "led": 6, "laurent": 6, "ailler": 6, "monash": 6, "univers": 6, "team": 6, "packag": [6, 14], "leader": 6, "thomson": 6, "lachlan": 6, "grose": 6, "robin": 6, "armit": 6, "jeremi": 6, "giraud": 6, "lindsai": 6, "guillaum": 6, "pirot": 6, "survei": 6, "canada": 6, "boyan": 6, "brodar": 6, "eric": 6, "de": 6, "kemp": 6, "docker": [6, 13], "window": 6, "mean": 6, "won": 6, "t": 6, "have": 6, "gpu": 6, "passthrough": 6, "discret": 6, "graphic": 6, "card": 6, "even": 6, "If": [6, 14], "requir": 6, "token": 6, "password": 6, "mai": 6, "8888": 6, "alreadi": 6, "fix": 6, "either": 6, "anoth": 6, "host": 6, "ie": 6, "p": [6, 14], "8889": 6, "stop": 6, "ani": 6, "instanc": 6, "http": [6, 14], "github": [6, 14], "io": 6, "start": 13, "instal": 13, "map2loop": 13, "build": 13, "identifi": 13, "offset": 13, "export": 13, "need": 14, "some": 14, "flavour": 14, "conda": 14, "manag": 14, "well": 14, "3": 14, "8": 14, "command": 14, "c": 14, "forg": 14, "want": 14, "tinker": 14, "yourself": 14, "contribut": 14, "clone": 14, "git": 14, "com": 14, "Or": 14, "navig": 14, "issu": 14, "its": 14, "depend": 14, "txt": 14, "pip": 14, "edit": 14, "environ": 14, "e": 14, "fair": 14, "warn": 14, "recommend": 14, "almost": 14, "everyon": 14, "With": 14, "great": 14, "power": 14, "come": 14, "setup": 14, "inconveni": 14, "ll": 14, "containeris": 14, "compos": 14, "cli": 14, "repo": 14, "insid": 14, "per": 14, "click": 14, "server": 14, "forward": 14, "link": 14, "access": 14, "hop": 14, "bash": 14, "shell": 14, "open": 14, "termin": 14, "id": 14, "exec": 14, "container_nameorid": 14, "probabl": 14, "map2loop_dev_1": 14, "geoloci": 6}, "objects": {"": [[4, 0, 0, "-", "map2loop"]], "map2loop": [[5, 1, 1, "", "Project"]], "map2loop.Project": [[5, 2, 1, "", "__init__"], [5, 2, 1, "", "apply_colour_to_units"], [5, 2, 1, "", "calculate_stratigraphic_order"], [5, 2, 1, "", "calculate_unit_thicknesses"], [5, 2, 1, "", "draw_geology_map"], [5, 2, 1, "", "extract_geology_contacts"], [5, 2, 1, "", "get_minimum_fault_length"], [5, 2, 1, "", "get_sampler"], [5, 2, 1, "", "get_sorter"], [5, 2, 1, "", "get_thickness_calculator"], [5, 2, 1, "", "get_throw_calculator"], [5, 2, 1, "", "run_all"], [5, 2, 1, "", "sample_map_data"], [5, 2, 1, "", "save_geotiff_raster"], [5, 2, 1, "", "save_into_projectfile"], [5, 2, 1, "", "save_mapdata_to_files"], [5, 2, 1, "", "set_default_samplers"], [5, 2, 1, "", "set_ignore_codes"], [5, 2, 1, "", "set_minimum_fault_length"], [5, 2, 1, "", "set_sampler"], [5, 2, 1, "", "set_sorter"], [5, 2, 1, "", "set_thickness_calculator"], [5, 2, 1, "", "set_throw_calculator"], [5, 2, 1, "", "sort_stratigraphic_column"], [5, 2, 1, "", "summarise_fault_data"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"]}, "titleterms": {"api": 0, "exampl": 1, "hamerslei": 2, "western": 2, "australia": 2, "set": 2, "region": 2, "interest": 2, "project": [2, 5], "visualis": 2, "map2loop": [2, 4, 5, 6, 8, 14], "result": 2, "comput": [3, 7], "time": [3, 7], "attiribut": 5, "3": 6, "0": 6, "x": 6, "usag": 6, "known": 6, "issu": 6, "faq": 6, "link": 6, "what": 8, "doe": 8, "export": 9, "geolog": [9, 11], "map": 9, "fault": 10, "offset": 10, "calcul": [10, 16], "creat": 11, "3d": 11, "model": 11, "get": 12, "start": 12, "user": 13, "guid": 13, "instal": 14, "develop": 14, "build": 14, "docker": 14, "identifi": 15, "stratigraph": [15, 16], "order": 15, "thick": 16}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"API": [[0, "api"]], "Examples": [[1, "examples"]], "Hamersley, Western Australia": [[2, "hamersley-western-australia"]], "Set the region of interest for the project": [[2, "set-the-region-of-interest-for-the-project"]], "Visualise the map2loop results": [[2, "visualise-the-map2loop-results"]], "Computation times": [[3, "computation-times"], [7, "computation-times"]], "map2loop": [[4, "module-map2loop"]], "map2loop.Project": [[5, "map2loop-project"]], "Attiributes": [[5, "attiributes"]], "What map2loop does": [[8, "what-map2loop-does"]], "Exporting": [[9, "exporting"]], "Geological map": [[9, "geological-map"]], "Fault offset calculation": [[10, "fault-offset-calculation"]], "Creating a 3D geological model": [[11, "creating-a-3d-geological-model"]], "Getting started": [[12, "getting-started"]], "User Guide": [[13, "user-guide"], [13, null]], "Installing map2loop": [[14, "installing-map2loop"]], "Install": [[14, "install"]], "Development": [[14, "development"], [14, "id1"]], "Building with Docker": [[14, "building-with-docker"]], "Identifying stratigraphic order": [[15, "identifying-stratigraphic-order"]], "Calculating stratigraphic thicknesses": [[16, "calculating-stratigraphic-thicknesses"]], "Map2loop 3.0.x": [[6, "map2loop-3-0-x"]], "Usage": [[6, "usage"]], "Known Issues and FAQs": [[6, "known-issues-and-faqs"]], "Links": [[6, "links"]]}, "indexentries": {"map2loop": [[4, "module-map2loop"]], "module": [[4, "module-map2loop"]], "project (class in map2loop)": [[5, "map2loop.Project"]], "__init__() (map2loop.project method)": [[5, "map2loop.Project.__init__"]], "apply_colour_to_units() (map2loop.project method)": [[5, "map2loop.Project.apply_colour_to_units"]], "calculate_stratigraphic_order() (map2loop.project method)": [[5, "map2loop.Project.calculate_stratigraphic_order"]], "calculate_unit_thicknesses() (map2loop.project method)": [[5, "map2loop.Project.calculate_unit_thicknesses"]], "draw_geology_map() (map2loop.project method)": [[5, "map2loop.Project.draw_geology_map"]], "extract_geology_contacts() (map2loop.project method)": [[5, "map2loop.Project.extract_geology_contacts"]], "get_minimum_fault_length() (map2loop.project method)": [[5, "map2loop.Project.get_minimum_fault_length"]], "get_sampler() (map2loop.project method)": [[5, "map2loop.Project.get_sampler"]], "get_sorter() (map2loop.project method)": [[5, "map2loop.Project.get_sorter"]], "get_thickness_calculator() (map2loop.project method)": [[5, "map2loop.Project.get_thickness_calculator"]], "get_throw_calculator() (map2loop.project method)": [[5, "map2loop.Project.get_throw_calculator"]], "run_all() (map2loop.project method)": [[5, "map2loop.Project.run_all"]], "sample_map_data() (map2loop.project method)": [[5, "map2loop.Project.sample_map_data"]], "save_geotiff_raster() (map2loop.project method)": [[5, "map2loop.Project.save_geotiff_raster"]], "save_into_projectfile() (map2loop.project method)": [[5, "map2loop.Project.save_into_projectfile"]], "save_mapdata_to_files() (map2loop.project method)": [[5, "map2loop.Project.save_mapdata_to_files"]], "set_default_samplers() (map2loop.project method)": [[5, "map2loop.Project.set_default_samplers"]], "set_ignore_codes() (map2loop.project method)": [[5, "map2loop.Project.set_ignore_codes"]], "set_minimum_fault_length() (map2loop.project method)": [[5, "map2loop.Project.set_minimum_fault_length"]], "set_sampler() (map2loop.project method)": [[5, "map2loop.Project.set_sampler"]], "set_sorter() (map2loop.project method)": [[5, "map2loop.Project.set_sorter"]], "set_thickness_calculator() (map2loop.project method)": [[5, "map2loop.Project.set_thickness_calculator"]], "set_throw_calculator() (map2loop.project method)": [[5, "map2loop.Project.set_throw_calculator"]], "sort_stratigraphic_column() (map2loop.project method)": [[5, "map2loop.Project.sort_stratigraphic_column"]], "summarise_fault_data() (map2loop.project method)": [[5, "map2loop.Project.summarise_fault_data"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["API", "_auto_examples/index", "_auto_examples/plot_hamersley", "_auto_examples/sg_execution_times", "_autosummary/map2loop", "_autosummary/map2loop.Project", "index", "sg_execution_times", "user_guide/changing_colours", "user_guide/config_file", "user_guide/explanation", "user_guide/exporting", "user_guide/fault_offset", "user_guide/geomodelling", "user_guide/getting_started", "user_guide/index", "user_guide/installation", "user_guide/m2l_code_template", "user_guide/setup_jupyter", "user_guide/stratigraphic_order", "user_guide/stratigraphic_thickness"], "filenames": ["API.rst", "_auto_examples/index.rst", "_auto_examples/plot_hamersley.rst", "_auto_examples/sg_execution_times.rst", "_autosummary/map2loop.rst", "_autosummary/map2loop.Project.rst", "index.rst", "sg_execution_times.rst", "user_guide/changing_colours.rst", "user_guide/config_file.rst", "user_guide/explanation.rst", "user_guide/exporting.rst", "user_guide/fault_offset.rst", "user_guide/geomodelling.rst", "user_guide/getting_started.rst", "user_guide/index.rst", "user_guide/installation.rst", "user_guide/m2l_code_template.rst", "user_guide/setup_jupyter.rst", "user_guide/stratigraphic_order.rst", "user_guide/stratigraphic_thickness.rst"], "titles": ["API", "Examples", "Hamersley, Western Australia", "Computation times", "map2loop", "map2loop.Project", "Map2loop 3.0.x", "Computation times", "Changing Colours", "Mapping attributes to variables using an HJSON file", "What map2loop does", "Exporting", "Fault offset calculation", "Creating a 3D geological model", "Getting Started", "User Guide", "Installing map2loop", "<no title>", "Setting up your Jupyter Notebook", "Identifying stratigraphic order", "Calculating stratigraphic thicknesses"], "terms": {"hamerslei": [1, 3, 7], "western": [1, 3, 6, 7], "australia": [1, 3, 6, 7], "download": [1, 2, 16], "all": [1, 2, 5, 7, 8, 18, 19, 20], "python": [1, 2, 6, 8, 13, 14, 16, 19, 20], "sourc": [1, 2, 16], "code": [1, 2, 5, 6, 8, 9, 13, 15, 16], "_auto_examples_python": 1, "zip": [1, 5], "jupyt": [1, 2, 6, 15, 16], "notebook": [1, 2, 6, 15, 16], "_auto_examples_jupyt": 1, "galleri": [1, 2, 7], "gener": [1, 2, 6, 13, 14, 18], "sphinx": [1, 2], "go": [2, 6], "end": [2, 13], "full": [2, 5], "exampl": [2, 3, 6, 7, 8, 9, 13, 14, 16, 18, 19, 20], "import": [2, 6, 20], "time": 2, "o": 2, "from": [2, 3, 5, 6, 7, 8, 9, 14, 18, 19, 20], "m2l_enum": [2, 5, 6], "verboselevel": [2, 5, 6], "datatyp": [2, 5, 19, 20], "sorter": [2, 5, 18, 19], "sorteralpha": 2, "sorteragebas": [2, 18], "sorterusehint": 2, "sorterusenetworkx": 2, "sortermaximisecontact": 2, "sorterobservationproject": 2, "sampler": [2, 5], "samplerspac": 2, "datetim": 2, "defin": [2, 5, 6, 13], "bound": [2, 6], "box": [2, 6], "roi": [2, 6], "bbox_3d": [2, 6], "minx": [2, 6], "515687": 2, "31005864": 2, "mini": [2, 6], "7493446": 2, "76593407": 2, "maxx": [2, 6], "562666": 2, "860106543": 2, "maxi": [2, 6], "7521273": 2, "57407786": 2, "base": [2, 5, 6, 19, 20], "3200": [2, 6], "top": [2, 6], "3000": 2, "specifi": [2, 5, 6, 8, 9, 13, 14], "minimum": [2, 13], "detail": [2, 6, 13], "which": [2, 5, 8, 13, 14, 18, 19, 20], "australian": 2, "state": [2, 5, 6], "output": [2, 5, 6, 8, 13, 14, 15], "file": [2, 3, 5, 7, 14, 15, 16], "loop_project_filenam": [2, 5, 6], "wa_output": 2, "loop3d": [2, 6, 13, 14, 15, 16], "proj": [2, 6, 19, 20], "use_australian_state_data": [2, 5, 6], "wa": [2, 5, 19], "working_project": [2, 5, 6], "epsg": [2, 5, 6], "28350": 2, "bounding_box": [2, 5, 6], "verbose_level": [2, 5], "none": [2, 5], "distanc": 2, "between": [2, 9, 13, 19], "sampl": [2, 5], "point": [2, 5, 14, 15], "arial": 2, "linestr": [2, 14, 15], "geometri": [2, 13, 20], "set_sampl": [2, 5], "geologi": [2, 5, 19], "200": 2, "0": [2, 3, 7], "fault": [2, 5, 13, 14, 15, 19], "choos": [2, 18], "stratigraph": [2, 5, 8, 13, 15], "us": [2, 5, 6, 13, 14, 15, 18, 19, 20], "run_al": [2, 5, 6], "take_best": [2, 5], "flag": [2, 5, 9], "run": [2, 5, 8, 14, 16, 18], "them": [2, 9, 13, 19, 20], "set_sort": [2, 5, 19], "true": [2, 9], "unus": 2, "kei": [2, 8], "legaci": [2, 5, 13, 15], "format": [2, 5, 13, 14, 19], "msc": 2, "msn": 2, "mst": 2, "mtc": 2, "mscm": 2, "mcom": 2, "minf": 2, "fdipdir_flag": 2, "deposit_dist": 2, "best": [2, 6, 13, 18, 20], "calcul": [2, 5, 13, 15, 18, 19], "contact": [2, 5, 13, 18, 19, 20], "length": [2, 5, 18, 19], "286560": 2, "51738879026": 2, "cannot": 2, "thick": [2, 5, 15, 19], "fortescue_group": 2, "bunjinah_form": 2, "boolgeeda_iron_form": 2, "woongarra_rhyolit": 2, "weeli_wolli_form": 2, "brockman_iron_form": 2, "wittenoom_form": 2, "marra_mamba_iron_form": 2, "turee_creek_group": 2, "map_data": [2, 5, 19, 20], "basal_contact": [2, 5, 20], "plot": [2, 5], "ax": [2, 13], "total": [2, 3, 7], "script": 2, "minut": 2, "19": [2, 3], "460": [2, 3], "second": [2, 9], "plot_hamerslei": [2, 3, 7], "ipynb": 2, "py": [2, 3, 7], "00": [3, 7], "execut": [3, 7, 19, 20], "1": [3, 7, 13], "_auto_exampl": 3, "mem": [3, 7], "mb": [3, 7], "class": [4, 5, 19, 20], "tmp_path": 5, "str": [5, 19, 20], "m2l_data_tmp": 5, "geology_filenam": 5, "structure_filenam": 5, "fault_filenam": 5, "fold_filenam": 5, "dtm_filenam": 5, "config_filenam": 5, "config_dictionari": 5, "dict": 5, "clut_filenam": 5, "clut_file_legaci": 5, "bool": 5, "fals": [5, 9], "save_pre_checked_map_data": 5, "kwarg": 5, "object": 5, "The": [5, 8, 9, 14, 18, 19, 20], "main": 5, "entri": 5, "A": [5, 13], "select": 5, "how": [5, 6, 9, 13, 19, 20], "much": [5, 19, 20], "consol": [5, 18], "log": 5, "i": [5, 6, 8, 9, 13, 14, 18, 19, 20], "list": [5, 18, 19, 20], "extract": 5, "polyon": 5, "line": [5, 6, 9, 13, 19, 20], "segment": 5, "index": 5, "datayp": 5, "sort": [5, 19, 20], "algorithm": [5, 18], "column": [5, 8, 19, 20], "thickness_calcul": 5, "thicknesscalul": 5, "make": [5, 6, 8, 13, 19, 20], "unit": [5, 13, 14, 15, 19, 20], "estim": 5, "loop_filenam": 5, "name": [5, 8, 13, 14, 15, 16, 18, 19, 20], "loop": [5, 6, 13, 14, 18], "thi": [5, 6, 8, 9, 13, 16, 18, 19, 20], "mapdata": [5, 19, 20], "structur": [5, 13, 18, 19, 20], "hold": 5, "map": [5, 6, 14, 15, 18, 19, 20], "dtm": [5, 14, 18], "data": [5, 6, 8, 14, 15, 18, 19, 20], "map2model": [5, 19], "map2modelwrapp": 5, "wrapper": 5, "around": 5, "modul": 5, "adjac": [5, 19, 20], "stratigraphic_column": [5, 8], "stratigraphiccolumn": 5, "inform": [5, 9, 13, 18, 19, 20], "order": [5, 13, 14, 15, 18, 20], "deformation_histori": 5, "deformationhistori": 5, "structura": 5, "fold": [5, 13], "interact": [5, 6], "initialis": [5, 19, 20], "param": 5, "sent": 5, "default": [5, 13], "type": [5, 13, 19, 20], "option": [5, 9, 13, 14, 18], "directori": [5, 6, 18], "store": [5, 8], "temporari": 5, "int": 5, "boundari": 5, "extent": 5, "m": 5, "whether": [5, 13], "filenam": 5, "shapefil": [5, 9, 14, 15, 19, 20], "fo": 5, "digit": [5, 13, 14], "terrain": 5, "configur": 5, "json": 5, "dictionari": [5, 8], "version": [5, 9], "colour": [5, 14, 15, 18], "look": [5, 19], "up": [5, 9, 13, 14, 15, 16], "tabl": [5, 9, 15], "indic": [5, 13], "clut": 5, "save": [5, 18], "befor": 5, "rais": [5, 19], "typeerror": 5, "valueerror": 5, "4": [5, 13], "6": 5, "tupl": 5, "sa": [5, 6], "qld": 5, "nsw": 5, "ta": 5, "vic": 5, "act": 5, "nt": 5, "__init__": [5, 19, 20], "paramet": [5, 15], "method": [5, 8, 19, 20], "apply_colour_to_unit": 5, "appli": 5, "calculate_stratigraphic_ord": 5, "relationship": [5, 19], "ag": [5, 13, 19, 20], "creat": [5, 8, 14, 15, 18, 19, 20], "calculate_unit_thick": 5, "draw_geology_map": 5, "datafram": [5, 19, 20], "overlai": 5, "specif": [5, 8, 9, 13], "panda": [5, 19, 20], "must": [5, 19, 20], "contain": [5, 6, 8, 13, 14, 16, 19, 20], "x": 5, "y": [5, 6, 16], "layer": [5, 13], "ar": [5, 6, 8, 9, 13, 18, 19, 20], "orient": [5, 13, 14, 19, 20], "extract_geology_contact": 5, "along": 5, "get_minimum_fault_length": 5, "float": 5, "get": [5, 8, 15, 16], "cutoff": 5, "return": [5, 19, 20], "get_sampl": 5, "being": [5, 13], "get_sort": 5, "get_thickness_calcul": 5, "get_throw_calcul": 5, "throw": 5, "user_defined_stratigraphic_column": 5, "process": [5, 6, 18, 19, 20], "user": [5, 14, 19, 20], "fed": 5, "overrid": 5, "sample_map_data": 5, "polylin": 5, "save_geotiff_rast": 5, "test": 5, "tif": 5, "pixel_s": 5, "25": 5, "geotiff": 5, "string": [5, 9, 13], "3857": 5, "work": [5, 6, 13, 18], "size": 5, "pixel": 5, "metr": [5, 19], "save_into_projectfil": 5, "updat": 5, "save_mapdata_to_fil": 5, "save_path": 5, "extens": [5, 6], "shp": 5, "frame": [5, 19, 20], "csv": [5, 14, 15, 18], "path": [5, 18], "an": [5, 6, 8, 13, 15, 16, 18, 19, 20], "altern": [5, 13], "geodatafram": [5, 19, 20], "set_default_sampl": 5, "function": [5, 19, 20], "set": [5, 8, 9, 13, 14, 15, 19, 20], "reset": 5, "set_ignore_cod": 5, "ignor": 5, "set_minimum_fault_length": 5, "determin": [5, 20], "set_thickness_calcul": [5, 20], "thicknesscalcul": [5, 20], "set_throw_calcul": 5, "throw_calcul": 5, "throwcalcul": 5, "valu": [5, 8, 13, 20], "sort_stratigraphic_column": 5, "match": [5, 9, 20], "summarise_fault_data": 5, "summari": 5, "each": [5, 13, 19, 20], "3d": [6, 14, 15, 18], "geolog": [6, 14, 15], "model": [6, 8, 14, 15, 18], "input": [6, 13, 14, 18], "geograph": [], "high": 6, "level": 6, "implement": [6, 19, 20], "origin": 6, "develop": [6, 15], "prof": 6, "mark": 6, "jessel": 6, "uwa": 6, "To": [6, 8, 13, 16, 19, 20], "see": [6, 8, 9, 13, 16, 18], "built": 6, "loopstructur": [6, 13, 14, 15], "follow": [6, 8, 14, 16, 18], "our": 6, "cover": [6, 13], "case": [6, 8], "more": [6, 9, 19], "here": [6, 16], "": [6, 13, 14, 19, 20], "south": 6, "remot": 6, "geospati": 6, "just": [6, 8, 9, 16], "20": 6, "first": [6, 13, 19], "let": 6, "you": [6, 8, 9, 13, 14, 16, 18, 19, 20], "can": [6, 8, 9, 13, 14, 18, 19, 20], "gi": [6, 13, 14], "softwar": [6, 16], "find": [6, 8, 13, 16], "one": [6, 8, 19, 20], "rememb": [6, 8], "what": 6, "project": [6, 9, 18, 19, 20], "your": [6, 9, 13, 14, 15, 19, 20], "coordin": 6, "note": [6, 9, 15, 18], "region": [6, 14, 19, 20], "28354": 6, "repres": [6, 13, 18], "east": 6, "north": 6, "respect": 6, "250805": 6, "1529856466": 6, "6405084": 6, "328058686": 6, "336682": 6, "921539395": 6, "6458336": 6, "085975628": 6, "1200": 6, "Then": 6, "abov": [6, 8, 13, 16], "hit": 6, "That": 6, "minim": 6, "small": 6, "part": 6, "document": [6, 9, 18], "other": [6, 19, 20], "resourc": 6, "outlin": 6, "extend": [6, 19, 20], "port": 6, "engin": 6, "we": [6, 16, 19], "incorpor": 6, "geophys": 6, "tool": [6, 13, 18], "provid": [6, 13, 14, 18], "visualis": 6, "workflow": [6, 19, 20], "consolid": 6, "gui": 6, "led": 6, "laurent": 6, "ailler": 6, "monash": 6, "univers": 6, "team": 6, "packag": [6, 16], "leader": 6, "thomson": 6, "lachlan": 6, "grose": 6, "robin": 6, "armit": 6, "jeremi": 6, "giraud": 6, "lindsai": 6, "guillaum": 6, "pirot": 6, "survei": 6, "canada": 6, "boyan": 6, "brodar": 6, "eric": 6, "de": 6, "kemp": 6, "docker": [6, 15], "window": 6, "mean": [6, 9], "won": 6, "t": [6, 9, 13, 19], "have": [6, 9, 13, 18, 19, 20], "gpu": 6, "passthrough": 6, "discret": 6, "graphic": 6, "card": 6, "even": [6, 19, 20], "If": [6, 8, 9, 13, 14, 16, 18, 19, 20], "requir": [6, 9, 15, 18], "token": 6, "password": 6, "mai": [6, 13], "8888": 6, "alreadi": 6, "fix": 6, "either": [6, 9], "anoth": [6, 8], "host": 6, "ie": [6, 13], "p": [6, 16], "8889": 6, "stop": 6, "ani": [6, 8, 9, 13, 19, 20], "instanc": [6, 19, 20], "http": [6, 16], "github": [6, 16, 19], "io": 6, "start": 15, "instal": [15, 18], "map2loop": [13, 15, 19, 20], "build": 15, "identifi": 15, "offset": 15, "export": 15, "need": [8, 9, 13, 14, 16, 18, 19, 20], "some": [16, 19], "flavour": 16, "conda": [16, 18], "manag": 16, "well": [8, 16], "3": [13, 15, 16], "8": 16, "command": [8, 16, 18], "c": [13, 16], "forg": 16, "want": [8, 9, 13, 16, 19], "tinker": 16, "yourself": 16, "contribut": 16, "clone": 16, "git": 16, "com": 16, "Or": 16, "navig": [8, 16], "issu": [13, 16, 19], "its": 16, "depend": [16, 18, 19, 20], "txt": 16, "pip": 16, "edit": [8, 16], "environ": [16, 18], "e": [9, 13, 14, 16, 18], "fair": 16, "warn": 16, "recommend": 16, "almost": 16, "everyon": 16, "With": 16, "great": 16, "power": [16, 19, 20], "come": 16, "setup": [9, 16], "inconveni": 16, "ll": [8, 9, 16, 18], "containeris": 16, "compos": 16, "cli": 16, "repo": [16, 19], "insid": 16, "per": 16, "click": 16, "server": 16, "forward": 16, "link": 16, "access": [8, 14, 16, 19, 20], "hop": 16, "bash": 16, "shell": 16, "open": 16, "termin": [16, 18], "id": [13, 16, 20], "exec": 16, "container_nameorid": 16, "probabl": 16, "map2loop_dev_1": 16, "geoloci": 6, "000": 7, "easiest": 8, "wai": [8, 20], "differ": [8, 13, 18], "litholog": 8, "hex": 8, "shown": [8, 9, 13, 19, 20], "below": [8, 9, 13, 19, 20], "also": [8, 9, 13, 18, 19, 20], "manual": [8, 13], "There": [8, 18, 20], "achiev": 8, "importantli": 8, "decid": [8, 9], "call": [8, 9, 13, 15], "after": [8, 9, 19, 20], "creation": 8, "stratigraphi": [8, 19, 20], "so": [8, 9, 13, 19, 20], "element": [8, 9], "associ": 8, "In": [8, 13, 14, 18, 19, 20], "through": [8, 18, 19], "nest": 8, "view": 8, "content": 8, "own": [8, 9, 19, 20], "within": [8, 9, 13, 14, 18, 19, 20], "sg": 8, "show": 8, "rock": [8, 13], "explan": [8, 9, 18], "unit_nam": 8, "where": [8, 18, 19, 20], "final": [8, 19, 20], "sure": 8, "replac": [8, 13, 19, 20], "f71945": 8, "desir": 8, "check": [8, 18], "inspect": [8, 15], "veri": 8, "similar": [8, 18], "fault_nam": 8, "re": 8, "f25d27": 8, "pleas": [8, 9, 13, 14, 18], "further": 8, "clarif": 8, "onc": [9, 13, 18], "ve": [9, 13, 18], "complet": [9, 19, 20], "qgi": [9, 15, 18], "whatev": [9, 13], "given": 9, "section": [9, 13, 18], "known": 9, "later": 9, "feel": 9, "free": 9, "copi": [9, 20], "attach": 9, "fill": 9, "demonstr": [9, 13], "left": 9, "most": [9, 13, 20], "term": 9, "hash": 9, "right": [9, 13], "descript": [9, 13, 19, 20], "field": [9, 13, 19, 20], "delet": 9, "d": [9, 13, 18], "like": [9, 13, 18, 19, 20], "chang": [9, 13, 15, 18, 19, 20], "quotat": 9, "g": [9, 13, 14, 18], "insert_dip": 9, "ensur": [9, 13, 18, 19, 20], "opt": 9, "thei": [9, 13], "don": [9, 13], "includ": [9, 13, 18], "leav": 9, "blank": [9, 13], "For": 9, "inbuilt": 9, "convert": [9, 13, 14], "recent": 9, "date": 9, "step": [13, 14], "tutori": 13, "design": 13, "help": [13, 14, 18], "librari": [13, 14], "piec": [13, 18], "turn": 13, "take": [13, 18, 19, 20], "transform": [13, 14], "throughout": 13, "fit": 13, "refer": [13, 14, 18], "explain": [13, 18], "toward": 13, "guid": [13, 14], "three": 13, "eg": 13, "linear": [13, 14, 19, 20], "featur": [13, 14, 19, 20], "axial": 13, "trace": 13, "bed": 13, "measur": 13, "foliat": 13, "etc": 13, "doesn": 13, "pass": [13, 18, 19, 20], "yet": 13, "irrespect": 13, "add": [13, 19, 20], "current": 13, "singl": [13, 19], "dip": 13, "direct": 13, "difficult": [13, 19, 20], "meantim": 13, "would": 13, "complex": 13, "system": 13, "should": 13, "long": 13, "variabl": [13, 14, 15, 18], "2": [13, 15], "strike": 13, "dipdir_column": 13, "dd": 13, "integ": 13, "hand": 13, "rule": 13, "dip_column": 13, "desc": 13, "desciption_column": 13, "sf": 13, "about": [13, 20], "could": [13, 19, 20], "deform": 13, "event": 13, "s0": 13, "bo": 13, "overturned_column": 13, "text": [13, 18], "overturn": 13, "geopnt_id": 13, "objectid_column": 13, "uniqu": 13, "simpl": 13, "imag": 13, "surfac": 13, "howev": 13, "capabl": [13, 19, 20], "do": [13, 18, 19, 20], "structtype_column": 13, "f": 13, "plung": 13, "fdip": 13, "isn": [13, 19], "fdipnul": 13, "fdipdir": 13, "rhr": 13, "90": 13, "degre": 13, "name_column": 13, "n": 13, "supersuit": 13, "group_column": 13, "coars": 13, "classif": 13, "supergroup": [13, 19, 20], "group": [13, 19, 20], "supergroup_column": 13, "g2": 13, "coarser": [13, 20], "unitname_column": 13, "member": 13, "description_column": 13, "alt_unit": 13, "alt_unitname_column": 13, "u": 13, "r1": 13, "rocktype_column": 13, "rocktyp": 13, "intrus": 13, "r2": 13, "alt_rocktype_column": 13, "secondari": 13, "min_ag": 13, "minage_column": 13, "min": [13, 19, 20], "max_ag": 13, "maxage_column": 13, "max": [13, 19, 20], "maximum": 13, "gap": 13, "snap": 13, "sometim": 13, "glitch": 13, "white": 13, "space": 13, "underscor": 13, "emu": 13, "egg": 13, "becom": 13, "emu_egg_fault": 13, "forc": [13, 19, 20], "sequenc": 13, "absolut": 13, "number": 13, "rel": 13, "relev": [13, 14], "aforement": 13, "correspond": 13, "area": 13, "fine": 13, "upscal": 13, "It": [13, 14, 18], "usual": 13, "easier": 13, "larg": 13, "scale": 13, "try": 13, "decent": 13, "improv": 14, "eas": 14, "enabl": 14, "produc": [14, 18], "program": [14, 18], "role": 14, "ecosystem": 14, "automat": 14, "useabl": 14, "polygon": [14, 15], "lithologi": 14, "hjson": [14, 15, 18], "config": [14, 15, 18], "attribut": [14, 15, 18], "addit": 14, "dem": [14, 18], "page": [14, 18], "shape": [15, 18], "tip": 15, "troubl": 15, "shoot": 15, "ad": [15, 19, 20], "templat": [15, 18, 19, 20], "via": [15, 18], "now": 18, "anaconda": 18, "virtual": 18, "sever": 18, "onto": 18, "under": 18, "websit": 18, "describ": 18, "receiv": 18, "expect": 18, "29632": 18, "67023438857": 18, "ncdump": 18, "prompt": 18, "netcdf4": 18, "applic": 18, "scroll": 18, "abl": 18, "local_sourc": 18, "onli": 18, "correct": 18, "wherev": 18, "cd": 18, "seri": 18, "tabul": 18, "directli": 18, "successfulli": 18, "apt": 18, "interest": [19, 20], "ha": [19, 20], "been": [19, 20], "collect": [19, 20], "becaus": [19, 20], "written": [19, 20], "plugin": [19, 20], "whole": [19, 20], "abc": [19, 20], "arg": [19, 20], "deriv": [19, 20], "abstract": [19, 20], "def": [19, 20], "self": [19, 20], "sorter_label": 19, "sorterbaseclass": 19, "getter": [19, 20], "subclass": [19, 20], "label": [19, 20], "beartyp": [19, 20], "abstractmethod": [19, 20], "unit_relationship": 19, "stratigraphic_order_hint": 19, "layerid": 19, "minag": 19, "maxag": 19, "units_relationship": 19, "index1": 19, "unitname1": 19, "index2": 19, "unitname2": 19, "hint": 19, "geopanda": [19, 20], "catchal": [19, 20], "avail": [19, 20], "new": [19, 20], "simplest": [19, 20], "mysort": 19, "unitnam": 19, "alphabet": 19, "rather": [19, 20], "than": [19, 20], "definit": [19, 20], "exist": [19, 20], "present": 19, "miss": 19, "except": 19, "while": [19, 20], "control": [19, 20], "remov": [19, 20], "longer": [19, 20], "guarante": [19, 20], "still": [19, 20], "finish": [19, 20], "As": [19, 20], "pars": 19, "remain": 19, "same": [19, 20], "reason": 19, "address": 19, "seen": [19, 20], "brief": [19, 20], "potenti": [19, 20], "contigu": 19, "row": 19, "found": 19, "might": 19, "across": 19, "account": 19, "when": 19, "attempt": 19, "geometr": [19, 20], "prioritis": 19, "catch": [19, 20], "give": [19, 20], "get_map_data": [19, 20], "those": 19, "setter": [19, 20], "caus": [19, 20], "problem": [19, 20], "both": 20, "task": 20, "thickness_calculator_label": 20, "thicknesscalculatorbaseclass": 20, "comput": 20, "stratigraphic_ord": 20, "youngest": 20, "oldest": 20, "basal": 20, "geo": 20, "locat": 20, "basal_unit": 20, "mythicknesscalcul": 20, "output_unit": 20, "100": 20, "100m": 20, "modifi": 20, "sum": 20, "tell": 20, "combin": 20, "appar": 20, "By": 20, "compar": 20, "side": 20}, "objects": {"": [[4, 0, 0, "-", "map2loop"]], "map2loop": [[5, 1, 1, "", "Project"]], "map2loop.Project": [[5, 2, 1, "", "__init__"], [5, 2, 1, "", "apply_colour_to_units"], [5, 2, 1, "", "calculate_stratigraphic_order"], [5, 2, 1, "", "calculate_unit_thicknesses"], [5, 2, 1, "", "draw_geology_map"], [5, 2, 1, "", "extract_geology_contacts"], [5, 2, 1, "", "get_minimum_fault_length"], [5, 2, 1, "", "get_sampler"], [5, 2, 1, "", "get_sorter"], [5, 2, 1, "", "get_thickness_calculator"], [5, 2, 1, "", "get_throw_calculator"], [5, 2, 1, "", "run_all"], [5, 2, 1, "", "sample_map_data"], [5, 2, 1, "", "save_geotiff_raster"], [5, 2, 1, "", "save_into_projectfile"], [5, 2, 1, "", "save_mapdata_to_files"], [5, 2, 1, "", "set_default_samplers"], [5, 2, 1, "", "set_ignore_codes"], [5, 2, 1, "", "set_minimum_fault_length"], [5, 2, 1, "", "set_sampler"], [5, 2, 1, "", "set_sorter"], [5, 2, 1, "", "set_thickness_calculator"], [5, 2, 1, "", "set_throw_calculator"], [5, 2, 1, "", "sort_stratigraphic_column"], [5, 2, 1, "", "summarise_fault_data"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"]}, "titleterms": {"api": 0, "exampl": 1, "hamerslei": 2, "western": 2, "australia": 2, "set": [2, 18], "region": 2, "interest": 2, "project": [2, 5], "visualis": 2, "map2loop": [2, 4, 5, 6, 9, 10, 14, 16, 18], "result": 2, "comput": [3, 7], "time": [3, 7], "attiribut": 5, "3": [6, 9], "0": 6, "x": 6, "usag": 6, "known": 6, "issu": 6, "faq": 6, "link": 6, "what": 10, "doe": 10, "export": 11, "geolog": [11, 13], "map": [9, 11, 13], "fault": [8, 12], "offset": 12, "calcul": [12, 20], "creat": 13, "3d": 13, "model": 13, "get": [13, 14], "start": [13, 14], "user": 15, "guid": 15, "instal": 16, "develop": 16, "build": 16, "docker": 16, "identifi": 19, "stratigraph": [19, 20], "order": 19, "thick": 20, "chang": 8, "colour": 8, "us": [8, 9], "csv": 8, "file": [8, 9, 13, 18], "via": 8, "your": [8, 18], "jupyt": [8, 18], "notebook": [8, 18], "unit": 8, "attribut": [9, 13], "variabl": 9, "an": 9, "hjson": 9, "config": 9, "templat": 9, "legaci": 9, "name": 9, "2": 9, "requir": [13, 14], "shape": 13, "note": [13, 19, 20], "tabl": 13, "point": 13, "shapefil": 13, "orientation_data": 13, "shp": 13, "linestr": 13, "linear_featur": 13, "polygon": 13, "lithologi": 13, "tip": 13, "troubl": 13, "shoot": 13, "qgi": 13, "ad": 13, "data": 13, "up": 18, "call": 18, "code": 18, "inspect": 18, "loop3d": 18, "output": 18, "loopstructur": 18, "paramet": [19, 20]}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"API": [[0, "api"]], "Examples": [[1, "examples"]], "Hamersley, Western Australia": [[2, "hamersley-western-australia"]], "Set the region of interest for the project": [[2, "set-the-region-of-interest-for-the-project"]], "Visualise the map2loop results": [[2, "visualise-the-map2loop-results"]], "Computation times": [[3, "computation-times"], [7, "computation-times"]], "map2loop": [[4, "module-map2loop"]], "map2loop.Project": [[5, "map2loop-project"]], "Attiributes": [[5, "attiributes"]], "Mapping attributes to variables using an HJSON file": [[9, "mapping-attributes-to-variables-using-an-hjson-file"]], "Config File Template": [[9, "config-file-template"]], "Legacy Variable Names (map2loop-2) Template": [[9, "legacy-variable-names-map2loop-2-template"]], "map2loop-3 variable names HJSON File Template": [[9, "map2loop-3-variable-names-hjson-file-template"]], "What map2loop does": [[10, "what-map2loop-does"]], "Exporting": [[11, "exporting"]], "Geological map": [[11, "geological-map"]], "Fault offset calculation": [[12, "fault-offset-calculation"]], "Getting Started": [[14, "getting-started"], [13, "getting-started"]], "map2loop Requirements": [[14, "map2loop-requirements"]], "User Guide": [[15, "user-guide"], [15, null]], "Installing map2loop": [[16, "installing-map2loop"]], "Install": [[16, "install"]], "Development": [[16, "development"], [16, "id1"]], "Building with Docker": [[16, "building-with-docker"]], "Setting up your Jupyter Notebook": [[18, "setting-up-your-jupyter-notebook"]], "Map2loop calling code:": [[18, "map2loop-calling-code"]], "Inspecting the .loop3d output file": [[18, "inspecting-the-loop3d-output-file"]], "LoopStructural calling code": [[18, "loopstructural-calling-code"]], "Identifying stratigraphic order": [[19, "identifying-stratigraphic-order"]], "Notes": [[19, "notes"], [20, "notes"]], "Parameters": [[19, "parameters"], [20, "parameters"]], "Calculating stratigraphic thicknesses": [[20, "calculating-stratigraphic-thicknesses"]], "Creating a 3D geological model": [[13, "creating-a-3d-geological-model"]], "Required Shape Files": [[13, "required-shape-files"]], "Notes:": [[13, "notes"]], "Shape File Attribute Table Requirements": [[13, "shape-file-attribute-table-requirements"]], "Point Shapefile": [[13, "point-shapefile"]], "Orientation_data.shp": [[13, "id1"]], "LineString Shapefile": [[13, "linestring-shapefile"]], "Linear_Features.shp": [[13, "id2"]], "Polygon Shapefile": [[13, "polygon-shapefile"]], "Lithologies.shp": [[13, "id3"]], "Tips and Trouble Shooting for QGIS map": [[13, "tips-and-trouble-shooting-for-qgis-map"]], "Adding Data": [[13, "adding-data"]], "Map2loop 3.0.x": [[6, "map2loop-3-0-x"]], "Usage": [[6, "usage"]], "Known Issues and FAQs": [[6, "known-issues-and-faqs"]], "Links": [[6, "links"]], "Changing Colours": [[8, "changing-colours"]], "Using a CSV file": [[8, "using-a-csv-file"]], "Changing colours via your Jupyter notebook": [[8, "changing-colours-via-your-jupyter-notebook"]], "Unit Colours": [[8, "unit-colours"]], "Fault Colours": [[8, "fault-colours"]]}, "indexentries": {"map2loop": [[4, "module-map2loop"]], "module": [[4, "module-map2loop"]], "project (class in map2loop)": [[5, "map2loop.Project"]], "__init__() (map2loop.project method)": [[5, "map2loop.Project.__init__"]], "apply_colour_to_units() (map2loop.project method)": [[5, "map2loop.Project.apply_colour_to_units"]], "calculate_stratigraphic_order() (map2loop.project method)": [[5, "map2loop.Project.calculate_stratigraphic_order"]], "calculate_unit_thicknesses() (map2loop.project method)": [[5, "map2loop.Project.calculate_unit_thicknesses"]], "draw_geology_map() (map2loop.project method)": [[5, "map2loop.Project.draw_geology_map"]], "extract_geology_contacts() (map2loop.project method)": [[5, "map2loop.Project.extract_geology_contacts"]], "get_minimum_fault_length() (map2loop.project method)": [[5, "map2loop.Project.get_minimum_fault_length"]], "get_sampler() (map2loop.project method)": [[5, "map2loop.Project.get_sampler"]], "get_sorter() (map2loop.project method)": [[5, "map2loop.Project.get_sorter"]], "get_thickness_calculator() (map2loop.project method)": [[5, "map2loop.Project.get_thickness_calculator"]], "get_throw_calculator() (map2loop.project method)": [[5, "map2loop.Project.get_throw_calculator"]], "run_all() (map2loop.project method)": [[5, "map2loop.Project.run_all"]], "sample_map_data() (map2loop.project method)": [[5, "map2loop.Project.sample_map_data"]], "save_geotiff_raster() (map2loop.project method)": [[5, "map2loop.Project.save_geotiff_raster"]], "save_into_projectfile() (map2loop.project method)": [[5, "map2loop.Project.save_into_projectfile"]], "save_mapdata_to_files() (map2loop.project method)": [[5, "map2loop.Project.save_mapdata_to_files"]], "set_default_samplers() (map2loop.project method)": [[5, "map2loop.Project.set_default_samplers"]], "set_ignore_codes() (map2loop.project method)": [[5, "map2loop.Project.set_ignore_codes"]], "set_minimum_fault_length() (map2loop.project method)": [[5, "map2loop.Project.set_minimum_fault_length"]], "set_sampler() (map2loop.project method)": [[5, "map2loop.Project.set_sampler"]], "set_sorter() (map2loop.project method)": [[5, "map2loop.Project.set_sorter"]], "set_thickness_calculator() (map2loop.project method)": [[5, "map2loop.Project.set_thickness_calculator"]], "set_throw_calculator() (map2loop.project method)": [[5, "map2loop.Project.set_throw_calculator"]], "sort_stratigraphic_column() (map2loop.project method)": [[5, "map2loop.Project.sort_stratigraphic_column"]], "summarise_fault_data() (map2loop.project method)": [[5, "map2loop.Project.summarise_fault_data"]]}}) \ No newline at end of file diff --git a/sg_execution_times.html b/sg_execution_times.html index 795beaa8..24b86c71 100644 --- a/sg_execution_times.html +++ b/sg_execution_times.html @@ -8,7 +8,7 @@ - Computation times — map2loop 3.0.4 documentation + Computation times — map2loop 3.0.6 documentation @@ -39,7 +39,7 @@ - + @@ -120,7 +120,7 @@ -

map2loop 3.0.4 documentation

+

map2loop 3.0.6 documentation

@@ -405,7 +405,7 @@

Computation times#

-

00:19.460 total execution time for 1 file from all galleries:

+

00:00.000 total execution time for 1 file from all galleries: