From 619557b3ff76c9dd5996fc6f8136de82369ca248 Mon Sep 17 00:00:00 2001 From: Lachlan Grose Date: Mon, 4 Dec 2023 10:25:12 +1100 Subject: [PATCH 01/11] fix: pypi only on release --- .github/workflows/release-please.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 65395b0ca..f790ce819 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -159,7 +159,7 @@ jobs: upload_to_pypi: needs: ["release-please","build_wheels","make_sdist","conda-deploy"] runs-on: ubuntu-latest - #if: ${{ needs.release-please.outputs.release_created }} + if: ${{ needs.release-please.outputs.release_created }} steps: - uses: actions/download-artifact@v3 with: From f293ee735cd777d23a57ea4dc6e31f60d22aba9f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 3 Dec 2023 23:36:09 +0000 Subject: [PATCH 02/11] chore(master): release 1.5.11 --- CHANGELOG.md | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a23d097f..b83d31480 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,71 @@ # Changelog +## [1.5.11](https://github.com/Loop3D/LoopStructural/compare/v1.5.10...v1.5.11) (2023-12-03) + + +### Bug Fixes + +* :art: moving get interpolator out of geologicalmodel ([3f52950](https://github.com/Loop3D/LoopStructural/commit/3f5295050bff2cbd0ecb769e703678550abcc632)) +* :bug: add default solver to discrete interpolator ([3b93f7f](https://github.com/Loop3D/LoopStructural/commit/3b93f7f594ba519368ebde8d3ed6e3a83979ce14)) +* :bug: evalute changed to evaluate ([4e93caf](https://github.com/Loop3D/LoopStructural/commit/4e93caf37f6c917f530bb0d26ffafdbff1279cb3)) +* :bug: return a as array not transpose ([46e9edf](https://github.com/Loop3D/LoopStructural/commit/46e9edfa69442747bcdcd83af283a7584a8bfbf8)) +* :sparkles: adding interpolator factory ([245517b](https://github.com/Loop3D/LoopStructural/commit/245517bdf3cfd2d0dce2f5b6961d54193e5f7a1b)) +* :sparkles: adding support factory ([c3ec7a8](https://github.com/Loop3D/LoopStructural/commit/c3ec7a85dadb4e19bb65be6fd8d21852f54ce16c)) +* :sparkles: adding support type enum ([82c0bd5](https://github.com/Loop3D/LoopStructural/commit/82c0bd59a16f7ccc0843141dc90fd14def19c1f4)) +* :sparkles: bounding box object ([75941f0](https://github.com/Loop3D/LoopStructural/commit/75941f02d6cdfeaf29306ff6d55428cb77933dde)) +* :sparkles: new api for accessing interpolation for a single scalar field ([5bca235](https://github.com/Loop3D/LoopStructural/commit/5bca2350e88f8e0f857e1b30da823de4a490f974)) +* :sparkles: transformation object ([48e6c32](https://github.com/Loop3D/LoopStructural/commit/48e6c32b0149227b6c9efa80cf3a5cd6ef6c7b05)) +* add logger to surface ([8fcf89c](https://github.com/Loop3D/LoopStructural/commit/8fcf89c79a51d26382ff160cbb43dd4c95b9cf27)) +* adding a factory method to create an interpolator ([8aba4bd](https://github.com/Loop3D/LoopStructural/commit/8aba4bdfdecd1ef5dfd976c9c8145d7a171f6c3a)) +* adding api module ([7ab7c07](https://github.com/Loop3D/LoopStructural/commit/7ab7c077ea983a8569613ab1fc50555bd4276421)) +* adding datatypes module ([2102c72](https://github.com/Loop3D/LoopStructural/commit/2102c72c3f8a83aec416ad6c241728b16ac95fa6)) +* adding example execution time to git ignore ([7ac99d3](https://github.com/Loop3D/LoopStructural/commit/7ac99d378b236f2fa4a48295cb0108852b9c7029)) +* adding exception if nsteps=0 or <0 ([0940c55](https://github.com/Loop3D/LoopStructural/commit/0940c552b5c1ba931c8d6cfe02702c2e07d8020e)) +* adding fixture for bb and interpolatortype ([2a3e84e](https://github.com/Loop3D/LoopStructural/commit/2a3e84ee88b12cccf2e28a8bd7ed7e9a585bba3a)) +* adding isovalue to surfaces created by isosurfacer ([754541f](https://github.com/Loop3D/LoopStructural/commit/754541fc4010bc3632a101e4ca4f895325baa49b)) +* adding mesa ([7f0fb94](https://github.com/Loop3D/LoopStructural/commit/7f0fb9476348fdf7dcf8402420793737a3da2dd5)) +* adding nsteps to bb ([82e4dac](https://github.com/Loop3D/LoopStructural/commit/82e4dac7685882323ed65bfb47cb8fa4b4d7f69b)) +* adding placeholder for interpolate api ([f9709b5](https://github.com/Loop3D/LoopStructural/commit/f9709b54515b97cee9eed429110cbb5101edd24c)) +* adding surface data type for storing triangular surfaces ([0d383cf](https://github.com/Loop3D/LoopStructural/commit/0d383cf5d472852b5d2690b71efa9682b0b84fe4)) +* adding surfacer ([47c390d](https://github.com/Loop3D/LoopStructural/commit/47c390d0abcb4fc825e48c1c344f6309212ed785)) +* adding test to bb ([485f084](https://github.com/Loop3D/LoopStructural/commit/485f08485a0d602fc7479378faaf92ad698da255)) +* bug with size of constraints array ([66a9825](https://github.com/Loop3D/LoopStructural/commit/66a982554358b6a629aa8d7c2a68469626bd30da)) +* change to interpolation factory ([91bcbed](https://github.com/Loop3D/LoopStructural/commit/91bcbed956d2ca80f59c03c730ea53ba50c1436b)) +* Check for empty features and escape early ([083a195](https://github.com/Loop3D/LoopStructural/commit/083a195004f45cc52086b503441f93f97cb3f21d)) +* create folded fold frame using updated code ([7e1db31](https://github.com/Loop3D/LoopStructural/commit/7e1db31ed275099cd830b695dd416ff7aa7cf994)) +* Ensure modifications to data frame are on a copy of that frame ([ed61243](https://github.com/Loop3D/LoopStructural/commit/ed6124380bc95ba91f55c88916c40e2a29463747)) +* fixing lavavu version ([57f649b](https://github.com/Loop3D/LoopStructural/commit/57f649b252b9f2ca37dca42d82f97724a26be271)) +* fixing python 3.10 for docs ([6ea4d84](https://github.com/Loop3D/LoopStructural/commit/6ea4d847de2b737d9ac9279fc5861aa848bfb0e5)) +* flake8 ([9ef0081](https://github.com/Loop3D/LoopStructural/commit/9ef00811979f41eac624508eb436112d3060f43c)) +* flake8 error ([a37fec2](https://github.com/Loop3D/LoopStructural/commit/a37fec28c1946fbd99bfe71eb8dd01dc0cc1966b)) +* formatting ([8175437](https://github.com/Loop3D/LoopStructural/commit/817543773f649c5a03143029fcb6f81acf1fe56e)) +* init file for datatypes ([7f1f62a](https://github.com/Loop3D/LoopStructural/commit/7f1f62ab5e6cd62077cbf594a45cee724feb7716)) +* isinside and init with list ([0ff6735](https://github.com/Loop3D/LoopStructural/commit/0ff6735025ca6eaefc8494861a4b32f5f6af7463)) +* manually incrementing version ([4229d6a](https://github.com/Loop3D/LoopStructural/commit/4229d6a95691e66b0b0fe63df3eb469140b22189)) +* move create interpolator to feature builders ([1c01bdd](https://github.com/Loop3D/LoopStructural/commit/1c01bdde350e23e4018c1a61135d16ed309f766c)) +* moving get interpolator to separate function ([2790d76](https://github.com/Loop3D/LoopStructural/commit/2790d761ec27f00be9a6beee7305a0827f4617b3)) +* osmesa ([54595cb](https://github.com/Loop3D/LoopStructural/commit/54595cb5ebcc80de9bd09bb8bdd694685feb1e39)) +* pypi only on release ([619557b](https://github.com/Loop3D/LoopStructural/commit/619557b3ff76c9dd5996fc6f8136de82369ca248)) +* relocating bounding box ([8b18eb2](https://github.com/Loop3D/LoopStructural/commit/8b18eb20fbdea8f84bd87e9832c7f63cc2761613)) +* removing calculate pairs from dsi ([e35003c](https://github.com/Loop3D/LoopStructural/commit/e35003cab2ca27fdc504557696f8e43cd3b9e2ed)) +* removing print property values from lavavu ([306793c](https://github.com/Loop3D/LoopStructural/commit/306793ca4a997752a1e479f9c7ea50ac99695189)) +* removing wavelength variable from refolded fold ([64278b7](https://github.com/Loop3D/LoopStructural/commit/64278b788bb74cad0e2dbf804f097e573a473f9d)) +* return surface object from isosurfacer ([6f28d67](https://github.com/Loop3D/LoopStructural/commit/6f28d67cf11d3e6c14068ee0a6d7426ad9efb944)) +* set min number of elements to 3 ([7a7e9ba](https://github.com/Loop3D/LoopStructural/commit/7a7e9ba62825cc03f5db176d009258c42e097c39)) +* specify argument names for get_interpolator ([e203b4d](https://github.com/Loop3D/LoopStructural/commit/e203b4d5cfacbd6786b4aeda42ed44f45d10a664)) +* trying lavavu without osmesa ([f41b7e7](https://github.com/Loop3D/LoopStructural/commit/f41b7e7caddcbc5936b898e1fe426d3fcbf8b1bd)) +* trying to use tini for x ([4b38221](https://github.com/Loop3D/LoopStructural/commit/4b38221a6a09c4c4d9746dac379d3e9f23c1260c)) +* updating dockerfile for documentaiton build ([1bd6d38](https://github.com/Loop3D/LoopStructural/commit/1bd6d387443280bb43de46a6c2e6bcde3c8785b7)) +* updating docs to use LS version ([f8aac3a](https://github.com/Loop3D/LoopStructural/commit/f8aac3ab577b89f3b29de104df1a7c76840575cc)) +* updating examples to not use pyamg ([66239cb](https://github.com/Loop3D/LoopStructural/commit/66239cb480d88c7f4d3a6530e841ae3524a65a8a)) +* updating lavavu to use new bounding box ([96306db](https://github.com/Loop3D/LoopStructural/commit/96306db7ef7c41017183f67046ce32ac4f3ab5bb)) +* updating product to prod ([5d050ca](https://github.com/Loop3D/LoopStructural/commit/5d050cab8c63591bf41291fe6c973a37d3849bee)) +* updating so change work for building model ([08adb56](https://github.com/Loop3D/LoopStructural/commit/08adb5624e9d42a889c1def8fb1c0e126c75cffd)) +* updating to new bbox ([fb450e0](https://github.com/Loop3D/LoopStructural/commit/fb450e02ef52b4959cf4e8e94af157bc9516a93a)) +* Use fault names if present before labelling fault Fault_XXX ([7bf34fc](https://github.com/Loop3D/LoopStructural/commit/7bf34fc3e841e243b1a34dbaf36294b5ce17306f)) +* use property array rather than store properties on grid ([2d95b85](https://github.com/Loop3D/LoopStructural/commit/2d95b852eb0f327daddbf6a786f354853c645242)) +* value changed to point ([4144c59](https://github.com/Loop3D/LoopStructural/commit/4144c59d134b420875bb4247a361e26be1547c9c)) + ## [1.5.10](https://github.com/Loop3D/LoopStructural/compare/v1.5.9...v1.5.10) (2023-03-14) From cb1bd649e9c4c8f83b2813826611a57d3b9963eb Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 12 Jan 2024 12:51:51 +1100 Subject: [PATCH 03/11] Replace reqs with correct theme Theme being loaded by requirements.txt was wrong (an old one?) So have updated with the pydata_sphinx_theme so now builds correctly --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index 609171a96..2e5ec648f 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,5 +1,5 @@ sphinx==3.5.4 sphinx_gallery sphinxcontrib-bibtex -sphinx_rtd_theme +pydata_sphinx_theme myst-parser \ No newline at end of file From 86fd6bd550cc78aed5c223df6e03a5399c60a463 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 12 Jan 2024 13:25:04 +1100 Subject: [PATCH 04/11] Adding PyPI custom link to navigation --- docs/source/_static/custom-icon.js | 16 ++++++++++++++++ docs/source/conf.py | 15 ++++++++++++--- 2 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 docs/source/_static/custom-icon.js diff --git a/docs/source/_static/custom-icon.js b/docs/source/_static/custom-icon.js new file mode 100644 index 000000000..cd949b3b7 --- /dev/null +++ b/docs/source/_static/custom-icon.js @@ -0,0 +1,16 @@ +/******************************************************************************* + * Set a custom icon for pypi as it's not available in the fa built-in brands + */ +FontAwesome.library.add( + (faListOldStyle = { + prefix: "fa-custom", + iconName: "pypi", + icon: [ + 17.313, // viewBox width + 19.807, // viewBox height + [], // ligature + "e001", // unicode codepoint - private use area + "m10.383 0.2-3.239 1.1769 3.1883 1.1614 3.239-1.1798zm-3.4152 1.2411-3.2362 1.1769 3.1855 1.1614 3.2369-1.1769zm6.7177 0.00281-3.2947 1.2009v3.8254l3.2947-1.1988zm-3.4145 1.2439-3.2926 1.1981v3.8254l0.17548-0.064132 3.1171-1.1347zm-6.6564 0.018325v3.8247l3.244 1.1805v-3.8254zm10.191 0.20931v2.3137l3.1777-1.1558zm3.2947 1.2425-3.2947 1.1988v3.8254l3.2947-1.1988zm-8.7058 0.45739c0.00929-1.931e-4 0.018327-2.977e-4 0.027485 0 0.25633 0.00851 0.4263 0.20713 0.42638 0.49826 1.953e-4 0.38532-0.29327 0.80469-0.65542 0.93662-0.36226 0.13215-0.65608-0.073306-0.65613-0.4588-6.28e-5 -0.38556 0.2938-0.80504 0.65613-0.93662 0.068422-0.024919 0.13655-0.038114 0.20156-0.039466zm5.2913 0.78369-3.2947 1.1988v3.8247l3.2947-1.1981zm-10.132 1.239-3.2362 1.1769 3.1883 1.1614 3.2362-1.1769zm6.7177 0.00213-3.2926 1.2016v3.8247l3.2926-1.2009zm-3.4124 1.2439-3.2947 1.1988v3.8254l3.2947-1.1988zm-6.6585 0.016195v3.8275l3.244 1.1805v-3.8254zm16.9 0.21143-3.2947 1.1988v3.8247l3.2947-1.1981zm-3.4145 1.2411-3.2926 1.2016v3.8247l3.2926-1.2009zm-3.4145 1.2411-3.2926 1.2016v3.8247l3.2926-1.2009zm-3.4124 1.2432-3.2947 1.1988v3.8254l3.2947-1.1988zm-6.6585 0.019027v3.8247l3.244 1.1805v-3.8254zm13.485 1.4497-3.2947 1.1988v3.8247l3.2947-1.1981zm-3.4145 1.2411-3.2926 1.2016v3.8247l3.2926-1.2009zm2.4018 0.38127c0.0093-1.83e-4 0.01833-3.16e-4 0.02749 0 0.25633 0.0085 0.4263 0.20713 0.42638 0.49826 1.97e-4 0.38532-0.29327 0.80469-0.65542 0.93662-0.36188 0.1316-0.65525-0.07375-0.65542-0.4588-1.95e-4 -0.38532 0.29328-0.80469 0.65542-0.93662 0.06842-0.02494 0.13655-0.03819 0.20156-0.03947zm-5.8142 0.86403-3.244 1.1805v1.4201l3.244 1.1805z", // svg path (https://simpleicons.org/icons/pypi.svg) + ], + }) +); diff --git a/docs/source/conf.py b/docs/source/conf.py index 275e226ad..1d41a2a07 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -66,15 +66,20 @@ html_theme_options = { "icon_links": [ + { + "name": "Twitter", + "url": "https://twitter.com/loop3d", + "icon": "fab fa-twitter-square", + }, { "name": "GitHub", "url": "https://github.com/loop3d/LoopStructural", "icon": "fab fa-github-square", }, { - "name": "Twitter", - "url": "https://twitter.com/loop3d", - "icon": "fab fa-twitter-square", + "name": "PyPI", + "url": "https://pypi.org/project/LoopStructural", + "icon": "fa-custom fa-pypi", }, ], # "navbar_start": ["navbar-logo", "navbar-version"], @@ -94,6 +99,10 @@ # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ["_static"] +html_css_files = ["custom.css"] +html_js_files = ["custom-icon.js"] +todo_include_todos = True + autosummary_mock_imports = [ "LoopStructural.interpolators._cython", ] From 4c7064fc14c7ae3b2a4cd84774b2d3aeef62d9c2 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 12 Jan 2024 14:56:40 +1100 Subject: [PATCH 05/11] Replacing square icon with (nicer) round icon --- docs/source/conf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 1d41a2a07..b6f7ce5c8 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -69,12 +69,12 @@ { "name": "Twitter", "url": "https://twitter.com/loop3d", - "icon": "fab fa-twitter-square", + "icon": "fab fa-twitter", }, { "name": "GitHub", "url": "https://github.com/loop3d/LoopStructural", - "icon": "fab fa-github-square", + "icon": "fab fa-github", }, { "name": "PyPI", From 2579cd55a04352d202ad56a43ed66fd978fa89b5 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 12 Jan 2024 15:48:59 +1100 Subject: [PATCH 06/11] Adding navbar options and metadata Image is a placeholder for now, but this is an (onvs opinionated) view on a nicer format. Adds a limit to the number of nav items, adds a logo, changes the title to look cleaner (and not say "documentation" at the end), adds metadata --- docs/source/conf.py | 14 ++++++++++++-- docs/source/images/infinity-loop-icon.svg | 1 + 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 docs/source/images/infinity-loop-icon.svg diff --git a/docs/source/conf.py b/docs/source/conf.py index b6f7ce5c8..2ff7eda40 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -26,6 +26,10 @@ # The full version, including alpha/beta/rc tags release = LoopStructural.__version__ +# -- Internationalization ---------------------------------------------------- + +# specifying the natural language populates some key tags +language = "en" # -- General configuration --------------------------------------------------- autoclass_content = "both" # include both class docstring and __init__ @@ -82,11 +86,15 @@ "icon": "fa-custom fa-pypi", }, ], - # "navbar_start": ["navbar-logo", "navbar-version"], - # "use_edit_page_button": True, "external_links": [ {"name": "Loop3d", "url": "https://www.loop3d.org"}, ], + "header_links_before_dropdown": 4, + "logo": { + "text": "LoopStructural - {}".format(release), + "image_light": "images/infinity-loop-icon.svg", + "image_dark": "images/infinity-loop-icon.svg", + }, } # -- Options for HTML output ------------------------------------------------- @@ -94,6 +102,8 @@ # a list of builtin themes. # html_theme = "pydata_sphinx_theme" +html_sourcelink_suffix = "" +html_last_updated_fmt = "" # to reveal the build date in the pages meta # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, diff --git a/docs/source/images/infinity-loop-icon.svg b/docs/source/images/infinity-loop-icon.svg new file mode 100644 index 000000000..4b5306c1e --- /dev/null +++ b/docs/source/images/infinity-loop-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file From dcb1d792ad1968e9ca6ba89fdc4d5aff1df0db97 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 12 Jan 2024 18:44:05 +1100 Subject: [PATCH 07/11] Fixing svg img --- docs/source/_static/infinity_loop_icon.svg | 4 ++++ docs/source/conf.py | 4 ++-- docs/source/images/infinity-loop-icon.svg | 1 - 3 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 docs/source/_static/infinity_loop_icon.svg delete mode 100644 docs/source/images/infinity-loop-icon.svg diff --git a/docs/source/_static/infinity_loop_icon.svg b/docs/source/_static/infinity_loop_icon.svg new file mode 100644 index 000000000..a69ecd1b2 --- /dev/null +++ b/docs/source/_static/infinity_loop_icon.svg @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py index 2ff7eda40..d743bf3c1 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -92,8 +92,8 @@ "header_links_before_dropdown": 4, "logo": { "text": "LoopStructural - {}".format(release), - "image_light": "images/infinity-loop-icon.svg", - "image_dark": "images/infinity-loop-icon.svg", + "image_light": "_static/infinity_loop_icon.svg", + "image_dark": "_static/infinity_loop_icon.svg", }, } # -- Options for HTML output ------------------------------------------------- diff --git a/docs/source/images/infinity-loop-icon.svg b/docs/source/images/infinity-loop-icon.svg deleted file mode 100644 index 4b5306c1e..000000000 --- a/docs/source/images/infinity-loop-icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From 706d1c520bfe4297c2c392b1b08bb64177bdb5b1 Mon Sep 17 00:00:00 2001 From: Sam Date: Mon, 15 Jan 2024 09:06:23 +1100 Subject: [PATCH 08/11] Updating the contributors docs --- .../getting_started/contributors_guide.rst | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/docs/source/getting_started/contributors_guide.rst b/docs/source/getting_started/contributors_guide.rst index c1bb9fbc7..3fc5d141e 100644 --- a/docs/source/getting_started/contributors_guide.rst +++ b/docs/source/getting_started/contributors_guide.rst @@ -28,7 +28,27 @@ Contributing new code Any contributions to the documentation and code for LoopStructural are welcome. If you would like to contribute code to LoopStructural please open an `issue `_ either -a bug report or a feature request and then submit a pull request and link it to this issue. +a bug report or a feature request and then submit a pull request and link it to this issue. + +Getting setup +~~~~~~~~~~~ +To get started, fork and clone the repository. It's then best to get started with conda:: + + conda activate + pip install -r requirements.txt + conda list + +N.B. On Linux, the LavaVu package requires the installation of extra tools:: + + sudo apt install build-essential libgl1-mesa-dev libx11-dev zlib1g-dev + +For changes to ``./docs``:: + + pip install -r docs/requirements.txt + make -C ./docs html + +Building the docs the first time takes a little while. After this, you will see a build directory. From here you can preview the generated HTML +in your browser. Commit messages --------------- From a9959df421c073b4a6889c3e54426c38a31e757f Mon Sep 17 00:00:00 2001 From: Sam Date: Mon, 15 Jan 2024 09:15:23 +1100 Subject: [PATCH 09/11] removing accidental tab --- docs/source/getting_started/contributors_guide.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/getting_started/contributors_guide.rst b/docs/source/getting_started/contributors_guide.rst index 3fc5d141e..894928316 100644 --- a/docs/source/getting_started/contributors_guide.rst +++ b/docs/source/getting_started/contributors_guide.rst @@ -35,8 +35,8 @@ Getting setup To get started, fork and clone the repository. It's then best to get started with conda:: conda activate - pip install -r requirements.txt - conda list + pip install -r requirements.txt + conda list N.B. On Linux, the LavaVu package requires the installation of extra tools:: From 24fb90a73db3d57e9a6d91744ce42881dc8d9af2 Mon Sep 17 00:00:00 2001 From: Lachlan Grose Date: Mon, 15 Jan 2024 11:38:56 +1100 Subject: [PATCH 10/11] docs: adding explicit imports for submodules Without explicit import of submodules and using __ALL__ the majority of the code isn't imported so sphinx doesn't document it. --- docs/source/API.rst | 15 ++++++++++++++- docs/source/index.rst | 8 +------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/docs/source/API.rst b/docs/source/API.rst index 160248e12..21cc294c1 100644 --- a/docs/source/API.rst +++ b/docs/source/API.rst @@ -1 +1,14 @@ -.. automodule:: LoopStructural +API +--- +.. autosummary:: + :caption: API + :toctree: _autosummary + :template: custom-module-template.rst + :recursive: + + LoopStructural + LoopStructural.utils + LoopStructural.modelling + LoopStructural.interpolators + LoopStructural.visualisation + LoopStructural.api \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst index 6ead52de6..a665ab957 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -37,12 +37,6 @@ and a wrapper for the generalised radial basis functions provided by Surfe :cite :caption: LoopStructural API :hidden: -.. autosummary:: - :caption: API - :toctree: _autosummary - :template: custom-module-template.rst - :recursive: - - LoopStructural + API From 35d2195515d95762e2cbf743a178be6105143ebc Mon Sep 17 00:00:00 2001 From: Lachlan Grose Date: Mon, 15 Jan 2024 12:03:04 +1100 Subject: [PATCH 11/11] docs: adding citations to documentation --- docs/Dockerfile | 4 +- docs/source/conf.py | 3 ++ docs/source/docs_references.bib | 82 +++++++++++++++++++++++++++++++++ docs/source/index.rst | 8 ++-- 4 files changed, 92 insertions(+), 5 deletions(-) create mode 100644 docs/source/docs_references.bib diff --git a/docs/Dockerfile b/docs/Dockerfile index c0c5ea243..83afabfa2 100644 --- a/docs/Dockerfile +++ b/docs/Dockerfile @@ -32,10 +32,10 @@ RUN conda install -c conda-forge\ python=3.10\ -y RUN pip install git+https://github.com/geopandas/geopandas.git@v0.10.2 -RUN pip install lavavu-osmesa==1.8.45 +RUN pip install lavavu-osmesa==1.8.45 ENV LD_LIBRARY_PATH=/opt/conda/lib/python3.10/site-packages/lavavu_osmesa.libs RUN conda install -c conda-forge pydata-sphinx-theme - +RUN pip install sphinxcontrib-bibtex ENV TINI_VERSION v0.19.0 ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini RUN chmod +x /tini diff --git a/docs/source/conf.py b/docs/source/conf.py index d743bf3c1..76bfa30b6 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -58,7 +58,10 @@ "sphinx_gallery.gen_gallery", # citations "myst_parser", + "sphinxcontrib.bibtex", ] +bibtex_bibfiles = ["docs_references.bib"] +bibtex_default_style = "plain" # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] diff --git a/docs/source/docs_references.bib b/docs/source/docs_references.bib new file mode 100644 index 000000000..b018c892e --- /dev/null +++ b/docs/source/docs_references.bib @@ -0,0 +1,82 @@ +@article{Frank2007, + abstract = {In this paper we introduce a new, precise and adaptive method for the implicit reconstruction of faulted surfaces with complex geometry from scattered, unorganized points as obtained from seismic data or laser scanners. We embed the point set into a 3d-complex on which a 3d-implicit function is interpolated. The 3d-complex is a set of tetrahedrons and the implicit function represents a surface that lies as close as possible to the input data points. The density of the 3d-complex can be adapted to efficiently control both the precision of the implicit function and the size of triangles of the reconstructed surface. Discontinuities in the topology of the tetrahedral mesh make it possible to reconstruct discontinuous, bounded surfaces and very close parallel patches without introducing unwanted connections (topological "handles") between these regions. To compute the implicit function we use the discrete smooth interpolation (DSI) method with a set of boundary, off-boundary and smoothness constraints. The interpolation problem does not primarily depend on the number of input data points but on the magnitude of the 3d-complex. This method can be applied to the construction of faulted horizons and salt-top surfaces. © 2007 Elsevier Ltd. All rights reserved.}, + author = {Tobias Frank and Anne-Laure Laure Tertois and Jean-Laurent Laurent Mallet}, + doi = {10.1016/j.cageo.2006.11.014}, + issn = {00983004}, + issue = {7}, + journal = {Computers & Geosciences}, + keywords = {Computational geometry,Discrete smooth interpolation,Ill-conditioned point data,Implicit function,Surface reconstruction,Tetrahedral mesh,computational geometry,discrete,ill-conditioned point data,implicit function,smooth interpolation,surface reconstruction,tetrahedral mesh}, + month = {7}, + pages = {932-943}, + title = {3D-reconstruction of complex geological interfaces from irregularly distributed and noisy point data}, + volume = {33}, + url = {http://linkinghub.elsevier.com/retrieve/pii/S0098300407000581}, + year = {2007} +} +@article{Grose2018, + author = {L. Grose and G. Laurent and L. Aillères and R. Armit and M. Jessell and T. Cousin-Dechenaud}, + doi = {10.1029/2017JB015177}, + issn = {21699313}, + issue = {8}, + journal = {Journal of Geophysical Research: Solid Earth}, + pages = {6318-6333}, + title = {Inversion of structural geology data for fold geometry}, + volume = {123}, + url = {http://doi.wiley.com/10.1029/2017JB015177}, + year = {2018} +} +@article{Grose2019, + abstract = {The process of building three-dimensional (3D) geological models can be framed as an inverse problem where a model describing the 3D distribution of rock units is non-uniquely derived from geological observations. The inverse problem theory provides a powerful framework for inferring these parameters from all geological observations, in a similar way to how a geologist can iteratively update their structural interpretation while mapping. Existing geological knowledge is usually indirectly incorporated into 3D models using the geologist's non-unique interpretation as form lines, cross sections and level maps. These approaches treat constraints derived from geological knowledge in the same way as direct observations, diluting and confusing both information provided by geological knowledge and hard data resulting in significant subjectivity. We present a geological inversion using Bayesian inference where geological knowledge can be incorporated directly into the interpolation scheme with likelihood functions and informative prior distributions. We demonstrate these approaches on a series of synthetic fold shapes as a proof of concept and a case study from the Proterozoic Davenport Province in the Northern Territory, Australia. The combined inversion of geological data and knowledge significantly reduces the uncertainty in possible fold geometries where data is sparse or highly ambiguous. This could be used by geologists while mapping to propagate information about uncertainties throughout the mapping/model building process and would allow for different structural interpretations to be rapidly tested for targeted data collection.}, + author = {Lachlan Grose and Laurent Ailleres and Gautier Laurent and Robin Armit and Mark Jessell}, + doi = {10.1016/j.jsg.2018.11.010}, + issn = {01918141}, + issue = {November 2018}, + journal = {Journal of Structural Geology}, + keywords = {3D modeling,Bayesian inference,Folding,Geological inversion,Geological uncertainty,Inverse problem,Structural geology,bayesian inference,folding,geological inversion,geological uncertainty,structural geology}, + pages = {1-14}, + publisher = {Elsevier}, + title = {Inversion of geological knowledge for fold geometry}, + volume = {119}, + url = {https://doi.org/10.1016/j.jsg.2018.11.010}, + year = {2019} +} +@article{Hillier2014, + author = {Michael J. Hillier and Ernst M. Schetselaar and Eric A. de Kemp and Gervais Perron}, + doi = {10.1007/s11004-014-9540-3}, + issn = {1874-8961}, + issue = {8}, + journal = {Mathematical Geosciences}, + month = {11}, + pages = {931-953}, + title = {Three-Dimensional Modelling of Geological Surfaces Using Generalized Interpolation with Radial Basis Functions}, + volume = {46}, + url = {http://link.springer.com/10.1007/s11004-014-9540-3}, + year = {2014} +} +@article{Laurent2016, + abstract = {© 2016 Elsevier B.V. Three-dimensional structural modeling is gaining importance for a broad range of quantitative geoscientific applications. However, existing approaches are still limited by the type of structural data they are able to use and by their lack of structural meaning. Most techniques heavily rely on spatial data for modeling folded layers, but are unable to completely use cleavage and lineation information for constraining the shape of modeled folds. This lack of structural control is generally compensated by expert knowledge introduced in the form of additional interpretive data such as cross-sections and maps. With this appro ach, folds are explicitly designed by the user instead of being derived from data. This makes the resulting structures subjective and deterministic. This paper introduces a numerical framework for modeling folds and associated foliations from typical field data. In this framework, a parametric description of fold geometry is incorporated into the interpolation algorithm. This way the folded geometry is implicitly derived from observed data, while being controlled through structural parameters such as fold wavelength, amplitude and tightness. A fold coordinate system is used to support the numerical description of fold geometry and to modify the behavior of classical structural interpolators. This fold frame is constructed from fold-related structural elements such as axial foliations, intersection lineations, and vergence. Poly-deformed terranes are progressively modeled by successively modeling each folding event going backward through time. The proposed framework introduces a new modeling paradigm, which enables the building of three-dimensional geological models of complex poly-deformed terranes. It follows a process based on the structural geologist approach and is able to produce geomodels that honor both structural data and geological knowledge.}, + author = {Gautier Laurent and Laurent Ailleres and Lachlan Grose and Guillaume Caumon and Mark Jessell and Robin Armit}, + doi = {10.1016/j.epsl.2016.09.040}, + issn = {0012821X}, + journal = {Earth and Planetary Science Letters}, + keywords = {3D modeling,3d modeling,fold,foliation,geological structures,implicit modeling,vergence}, + pages = {26-38}, + publisher = {Elsevier B.V.}, + title = {Implicit modeling of folds and overprinting deformation}, + volume = {456}, + url = {http://linkinghub.elsevier.com/retrieve/pii/S0012821X16305209}, + year = {2016} +} +@article{Irakarama2020, + abstract = {We introduce a new method for implicit structural modeling. The main developments in this paper are the new regularization operators we propose by extending inherent properties of the classic one-dimensional discrete second derivative operator to higher dimensions. The proposed regularization operators discretize naturally on the Cartesian grid using finite differences, owing to the highly symmetric nature of the Cartesian grid. Furthermore, the proposed regularization operators do not require any special treatment on boundary nodes, and their generalization to higher dimensions is straightforward. As a result, the proposed method has the advantage of being simple to implement. Numerical examples show that the proposed method is robust and numerically efficient.}, + author = {Modeste Irakarama and Gautier Laurent and Julien Renaudeau and Guillaume Caumon}, + doi = {10.1007/s11004-020-09887-w}, + issn = {18748953}, + journal = {Mathematical Geosciences}, + keywords = {Finite-differences,Implicit modeling,Interpolation,Regularization operators,Structural modeling}, + publisher = {Springer Berlin Heidelberg}, + title = {Finite Difference Implicit Structural Modeling of Geological Structures}, + url = {https://doi.org/10.1007/s11004-020-09887-w}, + year = {2020} +} + diff --git a/docs/source/index.rst b/docs/source/index.rst index a665ab957..ee3211079 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -19,12 +19,14 @@ LoopStructural is the forward geological modelling engine for the loop and conta elements in a 3D geological model. Including stratigraphy, unconformities, fault and folds. LoopStructural contains three native interpolation algorithms: -1. Piecewise-linear interpolation :cite:`Frank2007` -2. Discrete Fold Interpolator :cite:`Laurent2016,Grose2017,Grose2018,Grose2019` -3. Finite Difference Interpolation :cite:`Irakarama2020` +1. Piecewise-linear interpolation :cite:p:`Frank2007` +2. Discrete Fold Interpolator :cite:p:`Laurent2016,Grose2017,Grose2018,Grose2019` +3. Finite Difference Interpolation :cite:p:`Irakarama2020` and a wrapper for the generalised radial basis functions provided by Surfe :cite:`Hillier2014`. +.. bibliography:: + .. toctree:: :hidden: