diff --git a/docs/_toc.yml b/docs/_toc.yml index ce48025c..0bcf4b08 100644 --- a/docs/_toc.yml +++ b/docs/_toc.yml @@ -4,15 +4,18 @@ format: jb-book root: intro chapters: -- file: inversion/index +- file: fundamentals/index sections: - - file: inversion/fundamentals - - file: inversion/data_misfit - - file: inversion/regularization - - file: inversion/mesh_design - - file: inversion/joint_inversion - - file: inversion/depth_of_investigation - - file: inversion/optimization + - file: fundamentals/background + - file: fundamentals/data_misfit + - file: fundamentals/regularization/regularization + sections: + - file: fundamentals/regularization/sparse + - file: fundamentals/regularization/rotated_gradients + - file: fundamentals/mesh_design + - file: fundamentals/joint_inversion + - file: fundamentals/depth_of_investigation + - file: fundamentals/optimization - file: tutorials/introduction sections: - file: tutorials/background diff --git a/docs/case_studies/Forrestania/forrestania.ipynb b/docs/case_studies/Forrestania/forrestania.ipynb index 952c5ebd..42f420ed 100644 --- a/docs/case_studies/Forrestania/forrestania.ipynb +++ b/docs/case_studies/Forrestania/forrestania.ipynb @@ -5,7 +5,7 @@ "id": "34c04eea-4ec5-468f-90aa-0f4bea2b44f3", "metadata": {}, "source": [ - "(forrestania)=\n", + "(forrestania-main)=\n", "\n", "# Forrestania: Joint grav/mag\n", "\n", @@ -29,6 +29,14 @@ "\n", "- [Gravity](gravity-code)\n", "- [Magnetics](magnetics-code)\n", + "```\n", + "\n", + "```{table}\n", + "| **Authors** | |\n", + "| :--- | :--- |\n", + "| [Glenn Pears](https://www.mirageoscience.com/consulting-services/geological-consultants-and-geophysical-consultants/#gp) | glennp@mirageoscience.com |\n", + "| [Polyanna Rowe](https://github.com/polyye) | polyannar@mirageoscience.com |\n", + "| [Dominique Fournier](https://github.com/domfournier) | dominiquef@mirageoscience.com |\n", "```" ] }, diff --git a/docs/case_studies/Forrestania/open_code.ipynb b/docs/case_studies/Forrestania/open_code.ipynb index d0c1ad6d..fbfdae81 100644 --- a/docs/case_studies/Forrestania/open_code.ipynb +++ b/docs/case_studies/Forrestania/open_code.ipynb @@ -14,7 +14,7 @@ "---\n", "```\n", "\n", - "This section demonstrates the processing and inversion of the Forrestania datasets using purely open-source packages. For an equivalent and streamlined version, see the parent [Forrestania](#Forrestania) case study.\n", + "This section demonstrates the processing and inversion of the Forrestania datasets using purely open-source packages. For an equivalent and streamlined version, see the parent [Forrestania](forrestania-main) case study.\n", "\n", "- [Gravity inversion](gravity-code)\n", "- [Magnetics inversion](magnetics-code)\n", diff --git a/docs/case_studies/Forrestania/python_code/joint_grav_mag.ipynb b/docs/case_studies/Forrestania/python_code/joint_grav_mag.ipynb index 22612194..0545cd65 100644 --- a/docs/case_studies/Forrestania/python_code/joint_grav_mag.ipynb +++ b/docs/case_studies/Forrestania/python_code/joint_grav_mag.ipynb @@ -35,6 +35,13 @@ "> This workflow closely follows the methodology and structure of the official [SimPEG Tutorials](https://simpeg.xyz/user-tutorials/).\n", "\n", "```{figure} ../images/open_code.png\n", + "```\n", + "\n", + "```{table}\n", + "| **Authors** | |\n", + "| :--- | :--- |\n", + "| [Polyanna Rowe](https://github.com/polyye) | polyannar@mirageoscience.com |\n", + "| [Dominique Fournier](https://github.com/domfournier) | dominiquef@mirageoscience.com |\n", "```" ] }, diff --git a/docs/case_studies/Forrestania/python_code/unconstrained_gravity_inv_training.ipynb b/docs/case_studies/Forrestania/python_code/unconstrained_gravity_inv_training.ipynb index b0f7052f..547c2425 100644 --- a/docs/case_studies/Forrestania/python_code/unconstrained_gravity_inv_training.ipynb +++ b/docs/case_studies/Forrestania/python_code/unconstrained_gravity_inv_training.ipynb @@ -12,7 +12,7 @@ "This section demonstrates the processing and inversion of the **Forrestania gravity dataset** using purely open-source packages.\n", "\n", "For an equivalent and streamlined version, see the parent case study here: \n", - "👉 [Forrestania Case Study](https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/geopy-2297/case_studies/Forrestania/forrestania.html#forrestania)\n", + "👉 [Forrestania Case Study](forrestania-main)\n", "\n", "> 💡 **Note**: \n", "> The steps taken in this tutorial are strongly based on the official [SimPEG Tutorials](https://simpeg.xyz/user-tutorials/).\n", @@ -21,6 +21,14 @@ "---\n", "name: Landing Image\n", "---\n", + "```\n", + "\n", + "\n", + "```{table}\n", + "| **Authors** | |\n", + "| :--- | :--- |\n", + "| [Polyanna Rowe](https://github.com/polyye) | polyannar@mirageoscience.com |\n", + "| [Dominique Fournier](https://github.com/domfournier) | dominiquef@mirageoscience.com |\n", "```" ] }, diff --git a/docs/case_studies/Forrestania/python_code/unconstrained_magnetics_inv_training.ipynb b/docs/case_studies/Forrestania/python_code/unconstrained_magnetics_inv_training.ipynb index 1ce18dbd..198cdb3f 100644 --- a/docs/case_studies/Forrestania/python_code/unconstrained_magnetics_inv_training.ipynb +++ b/docs/case_studies/Forrestania/python_code/unconstrained_magnetics_inv_training.ipynb @@ -12,7 +12,7 @@ "This section demonstrates the processing and inversion of the Forrestania airborne **magnetic** dataset using purely open-source packages. \n", "\n", "For an equivalent and streamlined version, see the parent case study here: \n", - "👉 [Forrestania Case Study](https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/geopy-2297/case_studies/Forrestania/forrestania.html#forrestania)\n", + "👉 [Forrestania Case Study](forrestania-main)\n", "\n", "> 💡 **Note**: \n", "\n", @@ -22,6 +22,13 @@ "---\n", "name: Landing Image\n", "---\n", + "```\n", + "\n", + "```{table}\n", + "| **Authors** | |\n", + "| :--- | :--- |\n", + "| [Polyanna Rowe](https://github.com/polyye) | polyannar@mirageoscience.com |\n", + "| [Dominique Fournier](https://github.com/domfournier) | dominiquef@mirageoscience.com |\n", "```" ] }, diff --git a/docs/inversion/fundamentals.ipynb b/docs/fundamentals/background.ipynb similarity index 88% rename from docs/inversion/fundamentals.ipynb rename to docs/fundamentals/background.ipynb index c8e1e6f5..969dadc7 100644 --- a/docs/inversion/fundamentals.ipynb +++ b/docs/fundamentals/background.ipynb @@ -83,19 +83,7 @@ "metadata": { "lines_to_next_cell": 2 }, - "outputs": [ - { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'numpy'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[1], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mnumpy\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mnp\u001b[39;00m\n\u001b[0;32m 2\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mnumpy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mlinalg\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m LinAlgError\n", - "\u001b[1;31mModuleNotFoundError\u001b[0m: No module named 'numpy'" - ] - } - ], + "outputs": [], "source": [ "import numpy as np\n", "from numpy.linalg import LinAlgError" @@ -103,7 +91,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "f4503466", "metadata": {}, "outputs": [], @@ -122,10 +110,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "d94c5ea7", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([1.])" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "np.dot(F, [0.5, 0.25])" ] @@ -175,7 +174,7 @@ "where the data weights $\\mathbf{W}_d$ are diagonal matrices with estimated data uncertainties. More details can be found in the [data misfit](data_misfit.ipynb) module.\n", "\n", "\n", - "- $\\phi_m$ is a [regularization](regularization.ipynb) function measuring how well we **fit geological assumptions**\n", + "- $\\phi_m$ is a [regularization](regularization) function measuring how well we **fit geological assumptions**\n", "\n", "$$\n", "\\phi_m =\\sum_{i=1}^{N}\\left(w_i f(m_i - {m}_i^{ref})\\right)^2\n", @@ -188,7 +187,7 @@ "\\phi_m = (\\mathbf{m} - \\mathbf{m}^{ref})^T \\mathbf{R}^T \\mathbf{R}(\\mathbf{m} - \\mathbf{m}^{ref})\n", "$$\n", "\n", - "where the operator $\\mathbf{R}$ describe all functions used to guide the solution to a reference model $\\mathbf{m}_{ref}$. More details can be found in the [regularization](regularization.ipynb) module. A solution for the minimum of the objective function can be computed by taking its partial derivatives with respect to the model and setting it to zero\n", + "where the operator $\\mathbf{R}$ describe all functions used to guide the solution to a reference model $\\mathbf{m}_{ref}$. More details can be found in the [regularization](regularization) module. A solution for the minimum of the objective function can be computed by taking its partial derivatives with respect to the model and setting it to zero\n", "\n", "$$\n", "\\frac{\\delta \\phi(m)}{\\delta m} = \\frac{\\delta \\phi_d}{\\delta m} + \\beta \\frac{\\delta \\phi_m}{\\delta m} = 0\n", @@ -285,7 +284,7 @@ "id": "11b58143", "metadata": {}, "source": [ - "We have found a solution to this under-determined problem: $m = [0.2,\\; 0.4]$. This result is known as the `least-norm` solution, which differs from the true answer $m = [0.5, \\;0.25]$. Other \"better\" solutions could be found if more information is provided to the inverse problem to push the model towards expected values. This will be the topic of the [Regularization Section](regularization.ipynb)" + "We have found a solution to this under-determined problem: $m = [0.2,\\; 0.4]$. This result is known as the `least-norm` solution, which differs from the true answer $m = [0.5, \\;0.25]$. Other \"better\" solutions could be found if more information is provided to the inverse problem to push the model towards expected values. This will be the topic of the [Regularization Section](regularization)" ] }, { diff --git a/docs/inversion/data_misfit.ipynb b/docs/fundamentals/data_misfit.ipynb similarity index 92% rename from docs/inversion/data_misfit.ipynb rename to docs/fundamentals/data_misfit.ipynb index d20ef329..4c93e6c5 100644 --- a/docs/inversion/data_misfit.ipynb +++ b/docs/fundamentals/data_misfit.ipynb @@ -5,6 +5,8 @@ "id": "43572ed1", "metadata": {}, "source": [ + "(data-misfit)=\n", + "\n", "# Data Fitting\n", "\n", "The data misfit function ($\\phi_d$) measures the quality of a model $\\mathbf{m}$ at **fitting the observed data**. It generally takes the form\n", @@ -13,19 +15,18 @@ "\\phi_d =\\sum_{i=1}^{N}\\left(\\frac{d_i^{pred} - {d}_i^{obs}}{w_i}\\right)^2 \\;.\n", "$$\n", "\n", - "It measures the sum of **weighted residual** between observed ($\\mathbf{d}^{obs}$) and predicted ($\\mathbf{d}^{pred}$) data. In matrix form, this least-square measure can be written as\n", + "It measures the sum of **weighted residual** between observed ($\\mathbf{d}^{obs}$) and predicted ($\\mathbf{d}^{pred}$) data. In matrix form, this least-squares measure can be written as\n", "\n", "$$\n", "\\phi_d =(F(\\mathbf{m}) - \\mathbf{d}^{obs})^T \\mathbf{W}_d^T \\mathbf{W}_d (F(\\mathbf{m}) - \\mathbf{d}^{obs})\\;,\n", "$$\n", "\n", - "where $F(\\mathbf{m})$ is a forward simulation of data (gravity, magnetic, EM, etc.) due to a model $m$. The $\\mathbf{W}_d$ is a diagonal matrix holding the data weights ($\\frac{1}{\\mathbf{w}}$), also referred to as **data uncertainties**. The larger the weights, the less importance a given datum has on the solution. There are many sources of **noise** that can yield large data residuals:\n", - "\n", + "where $F(\\mathbf{m})$ is a forward simulation of data (gravity, magnetic, EM, etc.) due to a model $m$. The $\\mathbf{W}_d$ is a diagonal matrix holding the data weights ($\\frac{1}{\\mathbf{w}}$), also referred to as **data uncertainties**. The larger the weights, the less important a datum is to drive the solution. There are many sources of **noise** that can yield large data residuals:\n", "\n", " - Experimental noise from $\\mathbf{d}^{obs}$, generally introduced during acquisition (positioning, instrumental noise)\n", " - Numerical noise introduced by $F(\\mathbf{m})$ from our inability to perfectly simulate the physics (discretization, interpolation, etc.)\n", "\n", - "In all cases, we may never expect the data residual to completely vanish, but we may allow it to be within an *acceptable* level of fitness for modelling purposes." + "In all cases, we may never expect the data residual to vanish completely, but we may allow it to be within an *acceptable* level of fitness for modelling purposes." ] }, { @@ -74,7 +75,7 @@ "source": [ "#### Noise floor too high\n", "\n", - "With a high floor, the inversion is dominated by the [regularization](regularization.ipynb) function and the data remains underfitted - there is coherent signal in the observed data that is not accounted for. The model is very smooth and we have a poor recovery of the shape of the susceptible body." + "With a high floor, the inversion is dominated by the [regularization](regularization) function. As the data remains underfitted, a coherent signal remains unaccounted for. The model is very smooth, and we have a poor recovery of the shape of the susceptible body." ] }, { diff --git a/docs/inversion/depth_of_investigation.ipynb b/docs/fundamentals/depth_of_investigation.ipynb similarity index 100% rename from docs/inversion/depth_of_investigation.ipynb rename to docs/fundamentals/depth_of_investigation.ipynb diff --git a/docs/inversion/images/apply_mask.png b/docs/fundamentals/images/apply_mask.png similarity index 100% rename from docs/inversion/images/apply_mask.png rename to docs/fundamentals/images/apply_mask.png diff --git a/docs/inversion/images/beta_optimal.png b/docs/fundamentals/images/beta_optimal.png similarity index 100% rename from docs/inversion/images/beta_optimal.png rename to docs/fundamentals/images/beta_optimal.png diff --git a/docs/inversion/images/beta_too_high.png b/docs/fundamentals/images/beta_too_high.png similarity index 100% rename from docs/inversion/images/beta_too_high.png rename to docs/fundamentals/images/beta_too_high.png diff --git a/docs/inversion/images/beta_too_low.png b/docs/fundamentals/images/beta_too_low.png similarity index 100% rename from docs/inversion/images/beta_too_low.png rename to docs/fundamentals/images/beta_too_low.png diff --git a/docs/inversion/images/cell_size_estimate.png b/docs/fundamentals/images/cell_size_estimate.png similarity index 100% rename from docs/inversion/images/cell_size_estimate.png rename to docs/fundamentals/images/cell_size_estimate.png diff --git a/docs/inversion/images/common_survey.png b/docs/fundamentals/images/common_survey.png similarity index 100% rename from docs/inversion/images/common_survey.png rename to docs/fundamentals/images/common_survey.png diff --git a/docs/inversion/images/correct_floor.png b/docs/fundamentals/images/correct_floor.png similarity index 100% rename from docs/inversion/images/correct_floor.png rename to docs/fundamentals/images/correct_floor.png diff --git a/docs/inversion/images/correct_floor_plot.png b/docs/fundamentals/images/correct_floor_plot.png similarity index 100% rename from docs/inversion/images/correct_floor_plot.png rename to docs/fundamentals/images/correct_floor_plot.png diff --git a/docs/inversion/images/cutoff_options.png b/docs/fundamentals/images/cutoff_options.png similarity index 100% rename from docs/inversion/images/cutoff_options.png rename to docs/fundamentals/images/cutoff_options.png diff --git a/docs/inversion/images/dc_mesh_diagram.png b/docs/fundamentals/images/dc_mesh_diagram.png similarity index 100% rename from docs/inversion/images/dc_mesh_diagram.png rename to docs/fundamentals/images/dc_mesh_diagram.png diff --git a/docs/inversion/images/extent_to_pad.png b/docs/fundamentals/images/extent_to_pad.png similarity index 100% rename from docs/inversion/images/extent_to_pad.png rename to docs/fundamentals/images/extent_to_pad.png diff --git a/docs/inversion/images/forward_mag_susc.png b/docs/fundamentals/images/forward_mag_susc.png similarity index 100% rename from docs/inversion/images/forward_mag_susc.png rename to docs/fundamentals/images/forward_mag_susc.png diff --git a/docs/inversion/images/inversion_ui.png b/docs/fundamentals/images/inversion_ui.png similarity index 100% rename from docs/inversion/images/inversion_ui.png rename to docs/fundamentals/images/inversion_ui.png diff --git a/docs/inversion/images/joint_coupling.png b/docs/fundamentals/images/joint_coupling.png similarity index 100% rename from docs/inversion/images/joint_coupling.png rename to docs/fundamentals/images/joint_coupling.png diff --git a/docs/inversion/images/joint_survey.png b/docs/fundamentals/images/joint_survey.png similarity index 100% rename from docs/inversion/images/joint_survey.png rename to docs/fundamentals/images/joint_survey.png diff --git a/docs/inversion/images/joint_surveys.png b/docs/fundamentals/images/joint_surveys.png similarity index 100% rename from docs/inversion/images/joint_surveys.png rename to docs/fundamentals/images/joint_surveys.png diff --git a/docs/inversion/images/joint_ui.png b/docs/fundamentals/images/joint_ui.png similarity index 100% rename from docs/inversion/images/joint_ui.png rename to docs/fundamentals/images/joint_ui.png diff --git a/docs/inversion/images/large_floor.png b/docs/fundamentals/images/large_floor.png similarity index 100% rename from docs/inversion/images/large_floor.png rename to docs/fundamentals/images/large_floor.png diff --git a/docs/inversion/images/large_floor_plot.png b/docs/fundamentals/images/large_floor_plot.png similarity index 100% rename from docs/inversion/images/large_floor_plot.png rename to docs/fundamentals/images/large_floor_plot.png diff --git a/docs/inversion/images/mag_mesh_diagram.png b/docs/fundamentals/images/mag_mesh_diagram.png similarity index 100% rename from docs/inversion/images/mag_mesh_diagram.png rename to docs/fundamentals/images/mag_mesh_diagram.png diff --git a/docs/inversion/images/mag_mesh_options.png b/docs/fundamentals/images/mag_mesh_options.png similarity index 100% rename from docs/inversion/images/mag_mesh_options.png rename to docs/fundamentals/images/mag_mesh_options.png diff --git a/docs/inversion/images/masked_model.png b/docs/fundamentals/images/masked_model.png similarity index 100% rename from docs/inversion/images/masked_model.png rename to docs/fundamentals/images/masked_model.png diff --git a/docs/inversion/images/mesh_core.png b/docs/fundamentals/images/mesh_core.png similarity index 100% rename from docs/inversion/images/mesh_core.png rename to docs/fundamentals/images/mesh_core.png diff --git a/docs/inversion/images/mesh_dc.png b/docs/fundamentals/images/mesh_dc.png similarity index 100% rename from docs/inversion/images/mesh_dc.png rename to docs/fundamentals/images/mesh_dc.png diff --git a/docs/inversion/images/percent.png b/docs/fundamentals/images/percent.png similarity index 100% rename from docs/inversion/images/percent.png rename to docs/fundamentals/images/percent.png diff --git a/docs/inversion/images/percent_floor.png b/docs/fundamentals/images/percent_floor.png similarity index 100% rename from docs/inversion/images/percent_floor.png rename to docs/fundamentals/images/percent_floor.png diff --git a/docs/inversion/images/percent_floor_plot.png b/docs/fundamentals/images/percent_floor_plot.png similarity index 100% rename from docs/inversion/images/percent_floor_plot.png rename to docs/fundamentals/images/percent_floor_plot.png diff --git a/docs/inversion/images/save_sensitivities.png b/docs/fundamentals/images/save_sensitivities.png similarity index 100% rename from docs/inversion/images/save_sensitivities.png rename to docs/fundamentals/images/save_sensitivities.png diff --git a/docs/inversion/images/sensitivity_mask.png b/docs/fundamentals/images/sensitivity_mask.png similarity index 100% rename from docs/inversion/images/sensitivity_mask.png rename to docs/fundamentals/images/sensitivity_mask.png diff --git a/docs/inversion/images/sensitivity_models.png b/docs/fundamentals/images/sensitivity_models.png similarity index 100% rename from docs/inversion/images/sensitivity_models.png rename to docs/fundamentals/images/sensitivity_models.png diff --git a/docs/inversion/images/setup.png b/docs/fundamentals/images/setup.png similarity index 100% rename from docs/inversion/images/setup.png rename to docs/fundamentals/images/setup.png diff --git a/docs/inversion/images/setup_plot.png b/docs/fundamentals/images/setup_plot.png similarity index 100% rename from docs/inversion/images/setup_plot.png rename to docs/fundamentals/images/setup_plot.png diff --git a/docs/inversion/images/small_floor.png b/docs/fundamentals/images/small_floor.png similarity index 100% rename from docs/inversion/images/small_floor.png rename to docs/fundamentals/images/small_floor.png diff --git a/docs/inversion/images/small_floor_plot.png b/docs/fundamentals/images/small_floor_plot.png similarity index 100% rename from docs/inversion/images/small_floor_plot.png rename to docs/fundamentals/images/small_floor_plot.png diff --git a/docs/inversion/images/tradeoff_setup.png b/docs/fundamentals/images/tradeoff_setup.png similarity index 100% rename from docs/inversion/images/tradeoff_setup.png rename to docs/fundamentals/images/tradeoff_setup.png diff --git a/docs/inversion/images/uijson.png b/docs/fundamentals/images/uijson.png similarity index 100% rename from docs/inversion/images/uijson.png rename to docs/fundamentals/images/uijson.png diff --git a/docs/inversion/index.ipynb b/docs/fundamentals/index.ipynb similarity index 82% rename from docs/inversion/index.ipynb rename to docs/fundamentals/index.ipynb index 235e55f9..506dafab 100644 --- a/docs/inversion/index.ipynb +++ b/docs/fundamentals/index.ipynb @@ -10,11 +10,11 @@ "This module documents the use of [SimPEG](https://simpeg.xyz/) for geophysical data inversion with user-interface (UIjson) made available through the [Mira Geoscience-geoapps](https://mirageoscience-geoapps.readthedocs-hosted.com/) project. While the code itself has its own documentation, there is a need to demonstrate the effect of parameters controlling the inversion. This document is meant to be a reference guide with practical examples to help practitioners with their inversion work.\n", "\n", "\n", - "- [Background](fundamentals.ipynb): An overview of the inversion framework.\n", + "- [Background](background.ipynb): An overview of the inversion framework.\n", "\n", "- [Data Fit](data_misfit.ipynb): Assigning uncertainties and global target (data misfit).\n", "\n", - "- [Constraints](regularization.ipynb): Adding modeling constraints (regularization).\n", + "- [Regularization (Constraints)](regularization): Adding modeling constraints (regularization).\n", "\n", "- [Mesh Design](mesh_design.ipynb): Designing an inversion mesh.\n", "\n", @@ -24,6 +24,14 @@ "\n", "![inversion_ui](./images/inversion_ui.png)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2308931b-c540-4082-8b20-b4d011e127af", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/docs/inversion/joint_inversion.ipynb b/docs/fundamentals/joint_inversion.ipynb similarity index 100% rename from docs/inversion/joint_inversion.ipynb rename to docs/fundamentals/joint_inversion.ipynb diff --git a/docs/inversion/mesh_design.ipynb b/docs/fundamentals/mesh_design.ipynb similarity index 100% rename from docs/inversion/mesh_design.ipynb rename to docs/fundamentals/mesh_design.ipynb diff --git a/docs/inversion/optimization.ipynb b/docs/fundamentals/optimization.ipynb similarity index 100% rename from docs/inversion/optimization.ipynb rename to docs/fundamentals/optimization.ipynb diff --git a/docs/fundamentals/regularization/images/create_orientation.png b/docs/fundamentals/regularization/images/create_orientation.png new file mode 100644 index 00000000..e83e7a56 Binary files /dev/null and b/docs/fundamentals/regularization/images/create_orientation.png differ diff --git a/docs/inversion/images/flat_models.png b/docs/fundamentals/regularization/images/flat_models.png similarity index 100% rename from docs/inversion/images/flat_models.png rename to docs/fundamentals/regularization/images/flat_models.png diff --git a/docs/fundamentals/regularization/images/flin_flon_no_rotation.png b/docs/fundamentals/regularization/images/flin_flon_no_rotation.png new file mode 100644 index 00000000..cc5ffa89 Binary files /dev/null and b/docs/fundamentals/regularization/images/flin_flon_no_rotation.png differ diff --git a/docs/fundamentals/regularization/images/flin_flon_rotated.png b/docs/fundamentals/regularization/images/flin_flon_rotated.png new file mode 100644 index 00000000..a147b389 Binary files /dev/null and b/docs/fundamentals/regularization/images/flin_flon_rotated.png differ diff --git a/docs/fundamentals/regularization/images/gradient_direction.png b/docs/fundamentals/regularization/images/gradient_direction.png new file mode 100644 index 00000000..5da4ffea Binary files /dev/null and b/docs/fundamentals/regularization/images/gradient_direction.png differ diff --git a/docs/fundamentals/regularization/images/local_rotation.png b/docs/fundamentals/regularization/images/local_rotation.png new file mode 100644 index 00000000..a0fa702b Binary files /dev/null and b/docs/fundamentals/regularization/images/local_rotation.png differ diff --git a/docs/inversion/images/lp_norm.png b/docs/fundamentals/regularization/images/lp_norm.png similarity index 100% rename from docs/inversion/images/lp_norm.png rename to docs/fundamentals/regularization/images/lp_norm.png diff --git a/docs/fundamentals/regularization/images/partial_volumes.png b/docs/fundamentals/regularization/images/partial_volumes.png new file mode 100644 index 00000000..544e7d3a Binary files /dev/null and b/docs/fundamentals/regularization/images/partial_volumes.png differ diff --git a/docs/fundamentals/regularization/images/plane_rotation.png b/docs/fundamentals/regularization/images/plane_rotation.png new file mode 100644 index 00000000..34a15905 Binary files /dev/null and b/docs/fundamentals/regularization/images/plane_rotation.png differ diff --git a/docs/inversion/images/reference_model.png b/docs/fundamentals/regularization/images/reference_model.png similarity index 100% rename from docs/inversion/images/reference_model.png rename to docs/fundamentals/regularization/images/reference_model.png diff --git a/docs/fundamentals/regularization/images/regularization_alpha.png b/docs/fundamentals/regularization/images/regularization_alpha.png new file mode 100644 index 00000000..5d894269 Binary files /dev/null and b/docs/fundamentals/regularization/images/regularization_alpha.png differ diff --git a/docs/inversion/images/regularization_lp.png b/docs/fundamentals/regularization/images/regularization_lp.png similarity index 100% rename from docs/inversion/images/regularization_lp.png rename to docs/fundamentals/regularization/images/regularization_lp.png diff --git a/docs/fundamentals/regularization/images/rotated_demo.png b/docs/fundamentals/regularization/images/rotated_demo.png new file mode 100644 index 00000000..d7bfc6d3 Binary files /dev/null and b/docs/fundamentals/regularization/images/rotated_demo.png differ diff --git a/docs/fundamentals/regularization/images/set_orientation.png b/docs/fundamentals/regularization/images/set_orientation.png new file mode 100644 index 00000000..70608fb4 Binary files /dev/null and b/docs/fundamentals/regularization/images/set_orientation.png differ diff --git a/docs/fundamentals/regularization/images/smallness_norm_setup.png b/docs/fundamentals/regularization/images/smallness_norm_setup.png new file mode 100644 index 00000000..147da4ef Binary files /dev/null and b/docs/fundamentals/regularization/images/smallness_norm_setup.png differ diff --git a/docs/fundamentals/regularization/images/smoothness_norm_setup.png b/docs/fundamentals/regularization/images/smoothness_norm_setup.png new file mode 100644 index 00000000..20324787 Binary files /dev/null and b/docs/fundamentals/regularization/images/smoothness_norm_setup.png differ diff --git a/docs/inversion/images/sparse_models.png b/docs/fundamentals/regularization/images/sparse_models.png similarity index 100% rename from docs/inversion/images/sparse_models.png rename to docs/fundamentals/regularization/images/sparse_models.png diff --git a/docs/fundamentals/regularization/regularization.ipynb b/docs/fundamentals/regularization/regularization.ipynb new file mode 100644 index 00000000..30714031 --- /dev/null +++ b/docs/fundamentals/regularization/regularization.ipynb @@ -0,0 +1,143 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "3a9fd274", + "metadata": {}, + "source": [ + "(regularization)=\n", + "\n", + "# Regularization (Constraints)\n", + "\n", + "This section focuses on the regularization functions, or model constraints, that can inject \"geological knowledge\" into the inversion process. More specifically, this section covers the weighted least-squares regularization functions. Readers are invited to visit the following sections for more advanced options\n", + "\n", + "- [Sparse Lp-norms](lp-norm)\n", + "- [Rotate Gradients](rotated-gradients)" + ] + }, + { + "cell_type": "markdown", + "id": "3e78e630", + "metadata": {}, + "source": [ + "(l2-norm)=\n", + "\n", + "## Least-squares regularization\n", + "\n", + "The conventional L2-norm regularization function imposes constraints based on least-squares measures, either of the model and/or its spatial gradients. \n", + "\n", + "For 3D inverse problems, the full regularization function contains 4 terms: one for the reference model and three terms for the smoothness measures along the three Cartesian axes. We can express these various constraints as\n", + "\n", + "$$\n", + "\\phi_m = \\sum_{i = s,x,y,z} \\| \\mathbf{W}_i f_i(\\mathbf{m}) \\|_2^2\n", + "$$\n", + "\n", + "Weighting matrices $\\mathbf{W}_i$ are added to each function to scale the constraints among each other. \n", + "While often referred to as an *unconstrained inversion*, one could argue that the conventional least-squares regularization does still incorporate first-degree information about the geological background, at least in the form of physical property distribution. The following sections provide details on each element of the regularization.\n", + "\n", + "(small-ref)=\n", + "\n", + "### Model smallness (reference)\n", + "\n", + "In the seminal work of {cite:t}`TikhonovArsenin77`, the function $f(\\mathbf{m})$ simply measures the deviation between the inversion model from a reference value\n", + "\n", + "$$\n", + "\\mathbf{f}_s = \\mathbf{m} - \\mathbf{m}_{ref}\n", + "$$\n", + "\n", + "where $\\mathbf{m}_{ref}$ is a reference model. This function tries to keep the model \"small\", in terms of deviation from the reference values. The reference model can vary in complexity, from a constant background value to a full 3D geological representation of the physical property. \n", + "\n", + "![ref_model](./images/reference_model.png)\n", + "\n", + "\n", + "(smooth-ref)=\n", + "\n", + "### Model smoothness (gradients)\n", + "\n", + "A second set of terms can be added to the regularization function to apply constraints on the model gradients, or the roughness, of the solution. Following the notation used in {cite:t}`LiOldenburg1998`,\n", + "\n", + "$$\n", + "\\mathbf{f}_i = \\mathbf{G}_i (\\mathbf{m} - \\mathbf{m}_{ref}),\n", + "$$\n", + "\n", + "where $\\mathbf{G}_i$ is a finite difference operator that measures the gradient of the model $\\mathbf{m}$ along one of the Cartesian directions. \n", + "Three functions are needed to calculate the model gradients along the Easting ($f_x$), Northing ($f_y$) and vertical ($f_z$) directions. These functions enforce the model to remain smooth, as large gradients (sharp contrasts) are penalized strongly. \n", + "\n", + "(weights)=\n", + "\n", + "### Weights\n", + "\n", + "The diagonal weighting matrices $\\mathbf{W}_i$ are made up of default and user-defined weights\n", + "\n", + "$$\n", + "\\mathbf{W}_i = diag(\\mathbf{w}_h * \\mathbf{w}_s * \\mathbf{w}_u)\n", + "$$\n", + "\n", + "#### User-defined weights ($\\mathbf{w}_u$)\n", + "\n", + "User-defined weights can be tuned to emphasize the contribution of a particular function. This can be done globally, as a constant, or locally on a cell-by-cell basis. Weights may reflect variable degrees of confidence in the reference geological model (e.g. high near the surface, low at depth), or to accentuate specific trends in the model.\n", + "\n", + "![reg_alphas](./images/regularization_alpha.png)\n", + "\n", + "\n", + "#### Sensitivity-based weights ($\\mathbf{w}_s$)\n", + "\n", + "Sensitivity-based weights are computed as the sum-squares the rows of the sensitivities\n", + "\n", + "$$\n", + "\\mathbf{w}_s = [\\sum_{i=1}^{N} \\mathbf{J}_{ij}^2 + \\epsilon ]^{1/4} \\;,\n", + "$$\n", + "\n", + "where $\\mathbf{J}$ are the sensitivities (Jacobian) of the forward problem. The weighting attempts to compensate for the strong influence of the misfit function near the receiver locations, which would favour a model with high complexity near the surface. A small constant $\\epsilon$ is added to threshold the weights in regions of extremely low sensitivity.\n", + "\n", + "\n", + "#### Dimensionality scaling ($\\mathbf{w}_h$)\n", + "\n", + "Dimensionality scaling is applied to the gradient terms $\\phi_{i=(x,y,z)}$ as constants to account for length scales in the *smoothness* terms\n", + "\n", + "$$\n", + "\\mathbf{w}_{hi} = h_i \n", + "$$\n", + "\n", + "where $h$ is defined by the smallest cell dimension in each dimension $i=x,y,z$. This default scaling brings the *smallness* and *smoothness* terms to be dimensionally equivalent, which would otherwise be\n", + "\n", + "$$\n", + "dim\\; \\phi_s = [m]^2, \\; \n", + "dim\\; \\phi_x = \\frac{[m]^2}{[h]^2}\n", + "$$\n", + "\n", + "\n", + "

" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "84ea9df7-f402-45e7-b92e-4dfdd04202b4", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.17" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/fundamentals/regularization/rotated_gradients.ipynb b/docs/fundamentals/regularization/rotated_gradients.ipynb new file mode 100644 index 00000000..33b269d2 --- /dev/null +++ b/docs/fundamentals/regularization/rotated_gradients.ipynb @@ -0,0 +1,124 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "d1c00010", + "metadata": {}, + "source": [ + "(rotated-gradients)=\n", + "\n", + "# Rotated Gradients\n", + "\n", + "This section provides details about rotating the model gradients used in the [Regularization](#Regularization) function. Applied in conjunction with weights and sparse norms, the rotation can help reinforce structural trends, as depicted in the image below. \n", + "\n", + "```{figure} ./images/rotated_demo.png\n", + "---\n", + "scale: 30%\n", + "---\n", + "(Top) Horizontal and (bottom) vertical sections through (left) a simple dipping dyke model under smooth topography. (Center) Model recovered using the conventional smooth norm inversion. (Right) Compact model obtained with a dip rotation of $45\\circ$ towards East. \n", + "```\n", + "\n", + "The rotation angles can be applied globally, or on a cell-by-cell basis to reflect local orientations, such as faults and folds. \n", + "\n", + "```{figure} ./images/local_rotation.png\n", + "---\n", + "scale: 30%\n", + "---\n", + "Example of an inversion with local rotations along the expected limbs of a folded layer.\n", + "```\n", + "\n", + "## Input format\n", + "\n", + "Direction information must be supplied as a `Data Group` defined on the inversion mesh. The following group types are accepted: `Dip direction & Dip`, `Strike & Dip` or as `3D vector`. \n", + "\n", + "```{figure} ./images/set_orientation.png\n", + "---\n", + "scale: 30%\n", + "---\n", + "```\n", + "\n", + "The `dip` angles (degrees) are positive downward from the horizontal. The `strike` and `dip direction` angles (degrees) are positive clockwise from North. The `3D vector` vector data defines the unit normals, which are perpendicular to both the `Dip direction & Dip` and `Strike & Dip` directions. As illustrated below, all three formats define a rotated plane in 3D.\n", + "\n", + "```{figure} ./images/gradient_direction.png\n", + "---\n", + "scale: 50%\n", + "--- \n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "8405d820-2336-466f-9946-f0f55340b5dd", + "metadata": {}, + "source": [ + "## Background\n", + "\n", + "As covered in the [Model Smoothness](smooth-ref) section, penalties on the model gradients are measured by:\n", + "\n", + "$$\n", + "\\mathbf{f}_i = \\mathbf{G}_i (\\mathbf{m} - \\mathbf{m}_{ref}),\n", + "$$\n", + "\n", + "where $\\mathbf{G}_i$ is a finite difference operator that computes the difference in model $\\mathbf{m}$ values between adjacent cells along one of the Cartesian directions: East (X), North (Y) and vertical (Z). As proposed by {cite:t}`LiOldenburg2000`, orientation information can be incorporated in the inversion by rotating the gradient operators along arbitrary directions such that \n", + "\n", + "$$\n", + "\\mathbf{\\hat f}_i = \\mathbf{\\hat G}_i (\\mathbf{m} - \\mathbf{m}_{ref}),\n", + "$$\n", + "\n", + "where $\\mathbf{\\hat G}_i$ are rotated gradients along one of the $u$, $v$ and $w$-axis.\n", + "\n", + "```{figure} ./images/plane_rotation.png\n", + "---\n", + "name: plane_rotation\n", + "scale: 50%\n", + "---\n", + "Rotation of the Cartesian axes along an arbitrary plane.\n", + "```\n", + "\n", + "- $X \\rightarrow u$ pointing down-dip\n", + "- $Y \\rightarrow v$ pointing along strike\n", + "- $Z \\rightarrow w$ pointing along the normal\n", + "\n", + "### Special note\n", + "\n", + "`Simpeg-Drivers` uses a combination of both forward and backward gradient operators to achieve better symmetry in 3D. The gradient operators are constructed based on the partial volumes intercepted by ghost cells rotated about the center of each cell. The partial volumes include all diagonal neighbours intercepted by the ghost cells. \n", + "\n", + "```{figure} ./images/partial_volumes.png\n", + "---\n", + "scale: 50%\n", + "---\n", + "Plan-view depiction of the $u,v$ forward gradient operators, made up of partial volumes from neighbouring cells.\n", + "```\n", + "\n", + "The full regularization term is made up of seven terms in total\n", + "\n", + "$$\n", + "\\phi_m = \\| \\mathbf{W}_s (\\mathbf{m} - \\mathbf{m}_{ref}) \\|_2^2 + \\sum_{i = u^F,v^F,w^F} \\| \\mathbf{W}_i \\mathbf{G}_i(\\mathbf{m}) \\|_2^2 + \\sum_{i = u^B,v^B,w^B,} \\| \\mathbf{W}_i \\mathbf{G}_i(\\mathbf{m}) \\|_2^2\n", + "$$\n", + "\n", + "\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.17" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/fundamentals/regularization/sparse.ipynb b/docs/fundamentals/regularization/sparse.ipynb new file mode 100644 index 00000000..14a9da85 --- /dev/null +++ b/docs/fundamentals/regularization/sparse.ipynb @@ -0,0 +1,204 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "d1c00010", + "metadata": {}, + "source": [ + "(lp-norm)=\n", + "\n", + "# Sparse regularization\n", + "\n", + "\n", + "It is possible to generalize the conventional least-squares approach such that we can recover different solutions with variable degrees of sparsity. By sparsity, we mean fewer model cells (or gradients) away from the reference, but with larger values. The goal is to explore the model space by changing our assumption about the character of the solution, in terms of the volume of the anomalies and the sharpness of their edges. We can do this by changing the \"ruler\" by which we evaluate the model function $f(\\mathbf{m})$." + ] + }, + { + "cell_type": "markdown", + "id": "a89bf21c", + "metadata": {}, + "source": [ + "(reference-model)=\n", + "\n", + "## Smallness norm model\n", + "\n", + "The first option is to impose sparsity assumptions on the model values.\n", + "\n", + "$$\n", + "\\phi(m) = \\| (\\mathbf{m} - \\mathbf{m}_{ref} \\|_p \\;.\n", + "$$\n", + "\n", + "\n", + "That is, we ask the inversion to recover anomalies that have small volumes but large physical property contrasts. This is desirable if we know the geological bodies to be discrete and compact (e.g. kimberlite pipe, dyke, etc.). The example below demonstrates the outcome of an inversion for different combinations of norms applied to the model\n", + "\n", + "```{figure} ./images/sparse_models.png\n", + "---\n", + "name: sparse_model\n", + "---\n", + "```\n", + "\n", + "The [figure above](sparse_model) shows vertical sections through the true and recovered models (from left to right) with L2, L1 and L0-norm on the model values.\n", + "\n", + "Note that as $p \\rightarrow 0$ the volume of the anomaly shrinks to a few non-zero elements while the physical property contrasts increase. They generally agree on the center position of the anomaly but differ significantly in their extent and shape.\n", + "\n", + "![smallness_setup](./images/smallness_norm_setup.png)\n", + "\n", + "No smoothness constraints were used ($\\alpha_{x,y,z} = 0$), only a penalty on the reference model ($m_{ref} = 0$).\n", + "\n", + "\n", + "All those models fit the data to the target [data misfit](data-misfit) and are therefore valid solutions to the inversion.\n", + "\n", + "

" + ] + }, + { + "cell_type": "markdown", + "id": "24179e0b", + "metadata": {}, + "source": [ + "(model-smoothness)=\n", + "\n", + "## Smoothness norm model\n", + "\n", + "Next, we explore the effect of applying sparse norms on the model gradients. \n", + "\n", + "$$\n", + "\\phi(m) = \\| |\\nabla \\mathbf{m}| \\|_p\n", + "$$\n", + "\n", + "or in matrix form\n", + "\n", + "$$\n", + "\\phi(m) = \\| \\sqrt{(\\mathbf{G}_x \\mathbf{m})^2 + (\\mathbf{G}_y \\mathbf{m})^2 + (\\mathbf{G}_z \\mathbf{m})^2} \\|_p \\;.\n", + "$$\n", + "\n", + "In this case, we are requesting a model that has either large or no (zero) gradients. This promotes anomalies with sharp contrast and constant values within.\n", + "\n", + "```{figure} ./images/flat_models.png\n", + "---\n", + "name: flat_model\n", + "---\n", + "```\n", + "\n", + "The [figure above](flat_model) shows vertical sections through the true and recovered models (from left to right) with L2, L1 and L0-norm on the model gradients.\n", + "\n", + "![smoothness_setup](./images/smoothness_norm_setup.png)\n", + "\n", + "No reference model was used ($\\alpha_s = 0$) with uniform norm values on all three Cartesian components.\n", + "\n", + "All those models also fit the data to the target [data misfit](data-misfit) and are therefore valid solutions to the inversion. Note that as $p \\rightarrow 0$ the edges of the anomaly become tighter while variability inside the body diminishes. They generally agree on the center position of the anomaly but differ greatly on the extent and shape.\n" + ] + }, + { + "cell_type": "markdown", + "id": "4487f435", + "metadata": {}, + "source": [ + "## Mixed norms\n", + "\n", + "The next logical step is to mix different norms on both the smallness and smoothness constraints. This gives rise to a \"space\" of models bounded by all possible combinations on $[0, 2]$ applied to each function independently.\n", + "\n", + "To be continued..." + ] + }, + { + "cell_type": "markdown", + "id": "e8b6527c-842e-4b8f-8619-bb96ff3deffc", + "metadata": {}, + "source": [ + "## Background: Approximated $L_p$-norm\n", + "\n", + "The standard $L_p$ norm measure is generally written as\n", + "\n", + "$$\n", + "\\phi(m) = \\| f(\\mathbf{m}) \\|_p ] \\;,\n", + "$$\n", + "\n", + "which can also be expressed as\n", + "\n", + "$$\n", + "\\phi(m) = \\sum_{j}^M {|f(m)_i |}^p \\;.\n", + "$$\n", + "\n", + "For $p<=1$, the function is non-linear with respect to the model. It is possible to approximate the function in a linearized form as \n", + "\n", + "$$\n", + "\\sum_{j}^M {|f(m)_i |}^p \\approx \\sum_{i} {\\frac{ {f(m)_i}^2}{\\left( {{f(m)_i}}^{2} + \\epsilon^2 \\right)^{1-p/2 }}}\n", + "$$\n", + "\n", + "where $p$ is any constant between $[0,\\;2]$. This is a decent approximation of the $l_p$-norm for any of the functions presented in the [L2-norm](l2-norm) section.\n", + "\n", + "![lp_norm](./images/lp_norm.png)\n", + "\n", + "Note that choosing a different $l_p$-norm greatly changes how we measure the function $f(m)$. Rather than simply increasing exponentially with the size of $f(m)$, small norms increase the penalty on low $f(m)$ values.\n", + "As $p\\rightarrow 0$, we attempt to recover as few non-zero elements, which in turn favour sparse solutions.\n", + "\n", + "Since it is a non-linear function with respect to $\\mathbf{m}$, we can linearize it as\n", + "\n", + "$$\n", + "\\| f(\\mathbf{m})_i \\|_p \\approx \\| \\mathbf{R}_i \\mathbf{W}_i f(\\mathbf{m})_i\\|\n", + "$$\n", + "\n", + "where\n", + "\n", + "$$\n", + "\\mathbf{R}_i = {\\frac{1}{\\left( {{f(m)^{(k-1)}_i}}^{2} + \\epsilon^2 \\right)^{1-p/2 }}}\\,.\n", + "$$\n", + "\n", + "Here, the superscript $(k)$ denotes the iteration step of the inversion. This is also known as an iterative re-weighted least-squares (IRLS) method. For more details on the implementation, refer to {cite:t}`fournier_2019`.\n", + "\n", + "### Note on `Total Variation`\n", + "\n", + "In the literature and other inversion software, sparsity constraints are imposed as an L1-norm on the model gradients, also called `Total Variation` inversion. While the implementation may differ slightly, the general $l_p$-norm methodology presented above encompasses this specific case. We can write\n", + "\n", + "$$\n", + "\\sum_{i} {|f(m)_i |}^p \\approx \\sum_{i} {\\frac{ (\\mathbf{G}_x \\mathbf{m})_i^2 + (\\mathbf{G}_y \\mathbf{m})_i^2 + (\\mathbf{G}_z \\mathbf{m})_i^2}{\\left( (\\mathbf{G}_x \\mathbf{m})_i^2 + (\\mathbf{G}_y \\mathbf{m})_i^2 + (\\mathbf{G}_z \\mathbf{m})_i^2 + \\epsilon^2 \\right)^{1-p/2 }}} \\;.\n", + "$$\n", + "\n", + "Then for $p=1$\n", + "\n", + "$$\n", + "\\phi(m) \\approx \\sum_{i} \\sqrt{(\\mathbf{G}_x \\mathbf{m})_i^2 + (\\mathbf{G}_y \\mathbf{m})_i^2 + (\\mathbf{G}_z \\mathbf{m})_i^2} \\;,\n", + "$$\n", + "\n", + "which recovers the total-variation (TV) function. \n", + "Lastly, for $p=2$\n", + "\n", + "$$\n", + "\\phi(m) = \\sum_{i} (\\mathbf{G}_x \\mathbf{m})_i^2 + (\\mathbf{G}_y \\mathbf{m})_i^2 + (\\mathbf{G}_z \\mathbf{m})_i^2 \\;,\n", + "$$\n", + "\n", + "which recovers the smooth regularization. The Total Variation (L1) and Smooth (L2) inversion strategies are therefore specific cases of the more general Lp-norm regularization function for $p \\in [0, 2]$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "38eb4170-29e8-47e7-8c7f-972c52d8e8ab", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.17" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/inversion/images/regularization_alpha.png b/docs/inversion/images/regularization_alpha.png deleted file mode 100644 index 7699a766..00000000 Binary files a/docs/inversion/images/regularization_alpha.png and /dev/null differ diff --git a/docs/inversion/images/smallness_norm_setup.png b/docs/inversion/images/smallness_norm_setup.png deleted file mode 100644 index 43082dd6..00000000 Binary files a/docs/inversion/images/smallness_norm_setup.png and /dev/null differ diff --git a/docs/inversion/images/smoothness_norm_setup.png b/docs/inversion/images/smoothness_norm_setup.png deleted file mode 100644 index 159f237f..00000000 Binary files a/docs/inversion/images/smoothness_norm_setup.png and /dev/null differ diff --git a/docs/inversion/regularization.ipynb b/docs/inversion/regularization.ipynb deleted file mode 100644 index a40f8315..00000000 --- a/docs/inversion/regularization.ipynb +++ /dev/null @@ -1,323 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "3a9fd274", - "metadata": {}, - "source": [ - "(regularization)=\n", - "\n", - "# Constraints (Regularization)\n", - "\n", - "This section focuses on the regularization functions, or constraints, that can be used to inject \"geological knowledge\" into the inversion process. More specifically, this section covers the weighted least-squares regularization functions:\n", - "\n", - "- [Conventional L2-norm](l2-norm)\n", - "\n", - "- [General Lp-norms](lp-norm)\n", - "\n", - "While often referred to as an \"unconstrained inversion\", one could argue that the conventional model norm regularizations do still incorporate some degree of geological information, at least in the form of physical property distribution. Exactly what kind of a priori information is available dictates the complexity of the constraints. For more advanced petrophysical and/or geometric constraints, see the [Joint Inversion](./joint_inversion.ipynb) section." - ] - }, - { - "cell_type": "markdown", - "id": "3e78e630", - "metadata": {}, - "source": [ - "(l2-norm)=\n", - "\n", - "## L2-norm regularization\n", - "\n", - "The conventional L2-norm regularization function imposes constraints based on the least-square measure with respect to the inversion model value\n", - "\n", - "$$\n", - "\\phi(m) = \\| f(\\mathbf{m}) \\|_2^2 \\;,\n", - "$$\n", - "\n", - "where $f(\\mathbf{m})$ is any linear function of the model $\\mathbf{m}$. The following sections introduce the conventional model \"smallness\" and \"smoothness\" functions.\n", - "\n", - "\n", - "### Model smallness\n", - "\n", - "In the seminal work of {cite:t}`TikhonovArsenin77`, the function $f(\\mathbf{m})$ simply measures the deviation between the inversion model from a reference\n", - "\n", - "$$\n", - "f_s(\\mathbf{m}) = \\mathbf{m} - \\mathbf{m}_{ref} \\;,\n", - "$$\n", - "\n", - "where $\\mathbf{m}_{ref}$ is a reference model. This function tries to keep the model \"small\", as large deviations from the reference value are penalized more heavily. The reference model can vary in complexity, from a constant background value to a full 3D geological representation of the physical property. This constitutes our first constraint.\n", - "\n", - "![ref_model](./images/reference_model.png)\n", - "\n", - "\n", - "(smooth-ref)=\n", - "\n", - "### Model smoothness\n", - "\n", - "A second set of terms can be added to the regularization function to apply constraints on the model gradients, or roughness of the solution. Following the notation used in {cite:t}`LiOldenburg1998` and others before,\n", - "\n", - "$$\n", - "f_x(\\mathbf{m}) = \\mathbf{G}_x (\\mathbf{m} - \\mathbf{m}_{ref}) \\;,\n", - "$$\n", - "\n", - "where $\\mathbf{G}_x$ is a finite difference operator that measures the gradient of the model $\\mathbf{m}$ along one of the Cartesian directions (`x` for Easting). This function keeps the model \"smooth\", as large gradients (sharp contrasts) are penalized strongly. Two additional terms are needed to measure the model gradients along the Northing ($f_y$) and vertical ($f_z$) direction.\n", - "\n", - "\n", - "### Scaling\n", - "\n", - "For 3D inverse problems, the full regularization function contains 4 terms: one for the reference model and three terms for the smoothness measures along the three Cartesian axes:\n", - "\n", - "$$\n", - "\\phi_m = \\sum_{i = s,x,y,z} \\alpha_i \\| \\mathbf{W}_i f_i(\\mathbf{m}) \\|_2^2\n", - "$$\n", - "\n", - "Note that we have added scaling parameters $\\alpha_i$ to each function. The role of those multipliers is two-fold:\n", - "\n", - "- User-defined weights to emphasize the contribution of a particular function\n", - "\n", - "- Dimensionality scaling to level the functions with each other.\n", - "\n", - "Dimensionality scales arise from the difference operators:\n", - "\n", - "$$\n", - "\\phi_x(m) = \\sum_{i=1}^{N_{fx}} \\left(\\frac{\\Delta m_i}{h_{xi}}\\right)^2\n", - "$$\n", - "\n", - "such that $\\Delta m_i$ is the difference in model values between two cells separated by a distance $h_{xi}$ along the x-axis. When adding together the [reference](#Model smallness) and [model smoothnedd](#Model smoothness) terms in the regularization, it is obvious that the scale factor of $h^{-2}$ would favor $\\phi_m$ to have a larger impact on the solution. The standard practice is to weight down the influence of the reference model accordingly.\n", - "\n", - "\n", - "**Note**\n", - "\n", - "For all SimPEG inversions, dimensionality scaling of $h^2$ is applied directly for the gradient terms by the program, allowing the default state to be all 1s for simplicity.\n", - "\n", - "\n", - "![reg_alphas](./images/regularization_alpha.png)\n", - "\n", - "\n", - "\n", - "### Model weights (future option)\n", - "\n", - "\n", - "Any of the regularization functions mentioned above can be further augmented with weights associated with each model cell such that\n", - "\n", - "$$\n", - "\\phi_i = \\| \\mathbf{W}_i f_i(\\mathbf{m}) \\|_2^2\n", - "$$\n", - "\n", - "where $\\mathbf{W}_i$ contains positive values that change the relative strength of the regularization function in specific volumes of the 3D space. This is typically done for advanced constraints to reflect variable degrees of confidence in the reference geological model (e.g. high near the surface, low at depth). This option is currently not available but it is planned to be included in geoapps v0.12.0.\n", - "\n", - "

" - ] - }, - { - "cell_type": "markdown", - "id": "d1c00010", - "metadata": {}, - "source": [ - "(lp-norm)=\n", - "\n", - "## Sparse regularization\n", - "\n", - "\n", - "It is possible to generalize the conventional least-squares approach such that we can recover different solutions with variable degrees of sparsity {cite:t}`fournier_2019`. The goal is to explore the model space by changing our assumption about the character of the solution, in terms of volume of the anomalies and sharpness of contrasts between domains. We can do this by changing the \"ruler\" by which we evaluate the model function $f(\\mathbf{m})$.\n", - "\n", - "\n", - "### Approximated $L_p$-norm\n", - "\n", - "Since the general $L_p$ norm is not linear with respect to the model, an approximation is used where\n", - "\n", - "$$\n", - "\\phi(m) = \\| f(\\mathbf{m}) \\|_p\n", - "$$\n", - "\n", - "$$\n", - "\\sum_{j}^M {|f(m)_i |}^p \\approx \\sum_{i} {\\frac{ {f(m)_i}^2}{\\left( {{f(m)_i}}^{2} + \\epsilon^2 \\right)^{1-p/2 }}}\n", - "$$\n", - "\n", - "where $p$ is any constant between $[0,\\;2]$. This is a decent approximation of the $l_p$-norm for any of the functions presented in the [L2-norm](l2-norm) section.\n", - "\n", - "![lp_norm](./images/lp_norm.png)\n", - "\n", - "Note that choosing a different $l_p$-norm greatly changes how we measure the function $f(m)$. Rather than simply increasing exponentially with the size of $f(m)$, small norms increase the penalty on low $f(m)$ values.\n", - "As $p\\rightarrow 0$, we attempt to recover as few non-zero elements, which in turn favour sparse solutions.\n", - "\n", - "Since it is a non-linear function with respect to $\\mathbf{m}$, we must first linearize it as\n", - "\n", - "$$\n", - "\\| f(\\mathbf{m})_i \\|_p \\approx \\| \\mathbf{R}_i f(\\mathbf{m})_i\\|\n", - "$$\n", - "\n", - "where\n", - "\n", - "$$\n", - "\\mathbf{R}_i = {\\frac{1}{\\left( {{f(m)^{(k-1)}_i}}^{2} + \\epsilon^2 \\right)^{1-p/2 }}}\\,.\n", - "$$\n", - "\n", - "Here the superscript $(k)$ denotes the inversion iteration number. This is also known as an iterative re-weighted least-squares (IRLS) method. For more details on the implementation refer to {cite:t}`fournier_2019`.\n", - "\n", - "The next two sub-sections apply this methodology to the [model smallness](reference-model) and [model smoothness](model-smoothness) regularizers.\n", - "\n", - "![reg_lp](./images/regularization_lp.png)\n", - "\n", - "\n", - "

" - ] - }, - { - "cell_type": "markdown", - "id": "a89bf21c", - "metadata": {}, - "source": [ - "(reference-model)=\n", - "\n", - "### Smallness norm model\n", - "\n", - "The first option is to impose sparsity assumptions on the model values.\n", - "\n", - "$$\n", - "\\phi(m) = \\| (\\mathbf{m} - \\mathbf{m}_{ref} \\|_p \\;.\n", - "$$\n", - "\n", - "\n", - "That is, we ask the inversion to recover anomalies that have small volumes but large physical property contrasts. This is desirable if we know the geological bodies to be discrete and compact (e.g. kimberlite pip, dyke, etc.). The example below demonstrates the outcome of an inversion for different combinations of norms applied to the model\n", - "\n", - "```{figure} ./images/sparse_models.png\n", - "---\n", - "name: sparse_model\n", - "---\n", - "```\n", - "\n", - "The [figure above](sparse_model) shows vertical sections through the true and recovered models (from left to right) with L2, L1 and L0-norm on the model values.\n", - "\n", - "Note that as $p \\rightarrow 0$ the volume of the anomaly shrinks to a few non-zero elements while the physical property contrasts increase. They generally agree on the center position of the anomaly but differ greatly on the extent and shape.\n", - "\n", - "![smallness_setup](./images/smallness_norm_setup.png)\n", - "\n", - "No smoothness constraints were used ($\\alpha_{x,y,z} = 0$), only a penalty on the reference model ($m_{ref} = 0$).\n", - "\n", - "\n", - "All those models fit the data to the target [data misfit](data_misfit) and are therefore valid solutions to the inversion.\n", - "\n", - "

" - ] - }, - { - "cell_type": "markdown", - "id": "24179e0b", - "metadata": {}, - "source": [ - "(model-smoothness)=\n", - "\n", - "### Smoothness norm model\n", - "\n", - "Next, we explore the effect of applying sparse norms on the model gradients. We have two options.\n", - "\n", - "#### Gradient type: Total\n", - "\n", - "The favoured approach is to measure the total gradient of the model\n", - "\n", - "$$\n", - "\\phi(m) = \\| |\\nabla \\mathbf{m}| \\|_p\n", - "$$\n", - "\n", - "or in matrix form\n", - "\n", - "$$\n", - "\\phi(m) = \\| \\sqrt{(\\mathbf{G}_x \\mathbf{m})^2 + (\\mathbf{G}_y \\mathbf{m})^2 + (\\mathbf{G}_z \\mathbf{m})^2} \\|_p \\;.\n", - "$$\n", - "\n", - "In this case, we are requesting a model that has either large or no (zero) gradients. This promotes anomalies with sharp contrast and constant values within.\n", - "\n", - "```{figure} ./images/flat_models.png\n", - "---\n", - "name: flat_model\n", - "---\n", - "```\n", - "\n", - "The [figure above](flat_model) shows vertical sections through the true and recovered models (from left to right) with L2, L1 and L0-norm on the model gradients.\n", - "\n", - "![smoothness_setup](./images/smoothness_norm_setup.png)\n", - "\n", - "No reference model was used ($\\alpha_s = 0$) with uniform norm values on all three Cartesian components.\n", - "\n", - "All those models also fit the data to the target [data misfit](data_misfit) and are therefore valid solutions to the inversion. Note that as $p \\rightarrow 0$ the edges of the anomaly become tighter while variability inside the body diminishes. They generally agree on the center position of the anomaly but differ greatly on the extent and shape.\n", - "\n", - "\n", - "\n", - "**Note**\n", - "\n", - "In the literature, the majority of studies on sparse norms use the L1-norm on the model gradients, also called `Total Variation` inversion. While the implementation may differ slightly, the general $l_p$-norm methodology presented above covers this specific case. We can re-write\n", - "\n", - "$$\n", - "\\sum_{i} {|f(m)_i |}^p \\approx \\sum_{i} {\\frac{ (\\mathbf{G}_x \\mathbf{m})_i^2 + (\\mathbf{G}_y \\mathbf{m})_i^2 + (\\mathbf{G}_z \\mathbf{m})_i^2}{\\left( (\\mathbf{G}_x \\mathbf{m})_i^2 + (\\mathbf{G}_y \\mathbf{m})_i^2 + (\\mathbf{G}_z \\mathbf{m})_i^2 + \\epsilon^2 \\right)^{1-p/2 }}} \\;.\n", - "$$\n", - "\n", - "Then for $p=1$\n", - "\n", - "$$\n", - "\\phi(m) \\approx \\sum_{i} \\sqrt{(\\mathbf{G}_x \\mathbf{m})_i^2 + (\\mathbf{G}_y \\mathbf{m})_i^2 + (\\mathbf{G}_z \\mathbf{m})_i^2} \\;,\n", - "$$\n", - "\n", - "we recover the total-variation (TV) function. \n", - "Lastly, for $p=2$\n", - "\n", - "$$\n", - "\\phi(m) = \\sum_{i} (\\mathbf{G}_x \\mathbf{m})_i^2 + (\\mathbf{G}_y \\mathbf{m})_i^2 + (\\mathbf{G}_z \\mathbf{m})_i^2 \\;,\n", - "$$\n", - "\n", - "we recover the smooth regularization.\n", - "\n", - "\n", - "#### Gradient type: Components\n", - "\n", - "Alternatively, we can treat each gradient term independently, such that\n", - "\n", - "$$\n", - "\\phi(m) = \\| \\mathbf{G}_x \\mathbf{m} \\|_p + \\| \\mathbf{G}_y \\mathbf{m} \\|_p + \\| \\mathbf{G}_z \\mathbf{m} \\|_p \\;.\n", - "$$\n", - "\n", - "This formulation tends to recover box-like anomalies with edges aligned with the Cartesian axes. This is generally not desirable unless the gradients can be rotated in 3D.\n" - ] - }, - { - "cell_type": "markdown", - "id": "4487f435", - "metadata": {}, - "source": [ - "## Mixed norms\n", - "\n", - "The next logical step is to mix different norms on both the smallness and smoothness constraints. This gives rise to a \"space\" of models bounded by all possible combinations on $[0, 2]$ applied to each function independently.\n", - "\n", - "To be continued..." - ] - }, - { - "cell_type": "markdown", - "id": "2bf887ab", - "metadata": {}, - "source": [ - "

\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.17" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/references.bib b/docs/references.bib index 11dfaadd..65f378e5 100644 --- a/docs/references.bib +++ b/docs/references.bib @@ -50,6 +50,15 @@ @Book{TikhonovArsenin77 address = {Washington, D.C.}, } +@Article{LiOldenburg2000, + author = {Y. Li. and D. W. Oldenburg}, + title = {Incorporating geological dip information into geophysical inversions}, + journal = {Geophysics}, + year = {2000}, + volume = {65}, + pages = {148-157}, +} + @Article{LiOldenburg1998, author = {Y. Li. and D. W. Oldenburg}, title = {3-D inversion of gravity data}, diff --git a/docs/tutorials/airborne_tem.ipynb b/docs/tutorials/airborne_tem.ipynb index 2baacb22..d9ce0bcf 100644 --- a/docs/tutorials/airborne_tem.ipynb +++ b/docs/tutorials/airborne_tem.ipynb @@ -125,9 +125,9 @@ "\n", "### Refinements\n", "\n", - "- For the first refinement, we insert 4 cells for the first three octree levels along the flight path. The refinement is done radially around the segments of the flight path curve to assure good numerical accuracy near the receiver locations. This is especially important for EM methods with low frequencies.\n", + "- For the first refinement, we insert 4 cells for the first three octree levels along the flight path. The refinement is done radially around the segments of the flight path curve to ensure good numerical accuracy near the receiver locations. This is especially important for EM methods with low frequencies.\n", "\n", - "- We use a second refinement along topography to get a coarse but continuous air-ground interface outside the area or interest.\n", + "- We use a second refinement along topography to get a coarse but continuous air-ground interface outside the area of interest.\n", "\n", "- Lastly, we refine a \"horizon\" to get a core region at depth with increasing cell size directly below the survey. This is our volume of interest most strongly influenced by the data.\n", "\n", @@ -136,10 +136,10 @@ "scale: 50%\n", "name: atem_refinement\n", "---\n", - "Refinement strategy used for the atem modeling.\n", + "Refinement strategy used for the atem modelling.\n", "```\n", "\n", - "See [Mesh creation](../inversion/mesh_design.ipynb) section for general details on the parameters." + "See [Mesh creation](mesh-design) section for general details on the parameters." ] }, { diff --git a/docs/tutorials/dc_resistivity.ipynb b/docs/tutorials/dc_resistivity.ipynb index 36b1a729..5b5eb3e3 100644 --- a/docs/tutorials/dc_resistivity.ipynb +++ b/docs/tutorials/dc_resistivity.ipynb @@ -84,11 +84,11 @@ "\n", "### Refinements\n", "\n", - "- The first refinement adds more cells around each pole location, radially outward. This assures good numerical accuracy, espatially on the outer boundary of the survey area.\n", + "- The first refinement adds more cells around each pole location, radially outward. This assures good numerical accuracy, especially on the outer boundary of the survey area.\n", "\n", - "- A second refinement is used along topography to get a coarse but continuous air-ground interface outside the area or interest.\n", + "- A second refinement is used along topography to get a coarse but continuous air-ground interface outside the area of interest.\n", "\n", - "- The third refinement \"horizon\" is used to get a core region at depth with increasing cell size directly below the survey. This is our volume of interest most strongly influence by the data. We use a maximum distance of 100 m to limit the refinement away from the survey lines. In the case of remote electrodes, this parameter prevents from discretization finely everywhere in between.\n", + "- The third refinement, \"horizon\", is used to get a core region at depth with increasing cell size directly below the survey. This is our volume of interest most strongly influenced by the data. We use a maximum distance of 100 m to limit the refinement away from the survey lines. In the case of remote electrodes, this parameter prevents discretization from applying everywhere in between.\n", "\n", "\n", "```{figure} ./images/dc/dc_refinement.png\n", @@ -96,10 +96,10 @@ "scale: 50%\n", "name: dc_refinement\n", "---\n", - "Refinement strategy used for the direct-current modeling.\n", + "Refinement strategy used for the direct-current modelling.\n", "```\n", "\n", - "See [Mesh creation](../inversion/mesh_design.ipynb) section for general details on the parameters.\n" + "See [Mesh creation](mesh-design) section for general details on the parameters.\n" ] }, { diff --git a/docs/tutorials/gravity.ipynb b/docs/tutorials/gravity.ipynb index f6bf2aad..016eeb33 100644 --- a/docs/tutorials/gravity.ipynb +++ b/docs/tutorials/gravity.ipynb @@ -87,7 +87,7 @@ "Refinement strategy used for the magnetic modeling.\n", "```\n", "\n", - "See [Mesh creation](../inversion/mesh_design.ipynb) section for general details on the parameters.\n" + "See [Mesh creation](mesh-design) section for general details on the parameters.\n" ] }, { diff --git a/docs/tutorials/joint_inversion.ipynb b/docs/tutorials/joint_inversion.ipynb index 9b807f46..21a7fb18 100644 --- a/docs/tutorials/joint_inversion.ipynb +++ b/docs/tutorials/joint_inversion.ipynb @@ -16,6 +16,18 @@ "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.17" } }, "nbformat": 4, diff --git a/docs/tutorials/magnetic.ipynb b/docs/tutorials/magnetic.ipynb index 94b3d5f5..98ef31d3 100644 --- a/docs/tutorials/magnetic.ipynb +++ b/docs/tutorials/magnetic.ipynb @@ -7,10 +7,11 @@ "source": [ "

\n", "\n", - "# Magnetic Inversion\n", + "(magnetic-tutorial)=\n", "\n", - "This section focuses on the inversion of magnetic data using a scalar (susceptibility) and a magnetization (vector) approach generated from the Flin Flon magnetic model. We also cover some strategies on how to remove regional signal and the use of compact norms.\n", + "# Magnetic Inversion\n", "\n", + "This section focuses on the inversion of magnetic scalar (susceptibility) and vector (magnetization) approaches with data generated from the Flin Flon magnetic model. We also cover some strategies on regional signal removal and the use of compact norms.\n", "\n", "\n", "```{figure} ./images/magnetics/mag_model.png\n", @@ -82,21 +83,21 @@ "\n", "### Refinements\n", "\n", - "- For the first refinement, we insert two cells around our survey lines. The refinement is done radially around the segments of the curve to assure that the air-ground interface near the receivers are modeled with the finest cell size.\n", + "- For the first refinement, we insert two cells around our survey lines. The refinement is done radially around the segments of the curve to ensure that the air-ground interface near the receivers is modelled with the finest cell size.\n", "\n", - "- A second refinement is used along topography to get a coarse but continuous air-ground interface outside the area or interest.\n", + "- A second refinement is used along topography to get a coarse but continuous air-ground interface outside the area of interest.\n", "\n", - "- The third refinement \"horizon\" is used to get a core region at depth with increasing cell size directly below the survey. This is our volume of interest most strongly influence by the data.\n", + "- The third refinement, \"horizon\", is used to get a core region at depth with increasing cell size directly below the survey. This is our volume of interest most strongly influenced by the data.\n", "\n", "```{figure} ./images/magnetics/mesh_refinement.png\n", "---\n", "scale: 50%\n", "name: mag_refinement\n", "---\n", - "Refinement strategy used for the magnetic modeling.\n", + "Refinement strategy used for the magnetic modelling.\n", "```\n", "\n", - "See [Mesh creation](../inversion/mesh_design.ipynb) section for general details on the parameters.\n" + "See [Mesh creation](mesh-design) section for general details on the parameters.\n" ] }, { diff --git a/docs/tutorials/tipper.ipynb b/docs/tutorials/tipper.ipynb index fb4703e5..7528827d 100644 --- a/docs/tutorials/tipper.ipynb +++ b/docs/tutorials/tipper.ipynb @@ -88,9 +88,9 @@ "\n", "### Refinements\n", "\n", - "- For the first refinement, we insert 4 cells for the first three octree levels along the flight path. The refinement is done radially around the segments of the flight path curve to assure good numerical accuracy near the receiver locations. This is especially important for EM methods with low frequencies.\n", + "- For the first refinement, we insert 4 cells for the first three octree levels along the flight path. The refinement is done radially around the segments of the flight path curve to ensure good numerical accuracy near the receiver locations. This is especially important for EM methods with low frequencies.\n", "\n", - "- We use a second refinement along topography to get a coarse but continuous air-ground interface outside the area or interest.\n", + "- We use a second refinement along topography to get a coarse but continuous air-ground interface outside the area of interest.\n", "\n", "- Lastly, we refine a \"horizon\" to get a core region at depth with increasing cell size directly below the survey. This is our volume of interest most strongly influenced by the data.\n", "\n", @@ -99,10 +99,10 @@ "scale: 50%\n", "name: tipper_refinement\n", "---\n", - "Refinement strategy used for the tipper modeling.\n", + "Refinement strategy used for the tipper modelling.\n", "```\n", "\n", - "See [Mesh creation](../inversion/mesh_design.ipynb) section for general details on the parameters." + "See [Mesh creation](mesh-design) section for general details on the parameters." ] }, { @@ -114,7 +114,7 @@ "\n", "**Runtime: ~2.0 h**\n", "\n", - "Tipper data involves 2 receiver configuration (x and y), with two components (real and imaginary) and measured over 6 frequencies. Balancing all this data can be challenging and time consuming. Here we adopt a variable floor strategy based on the 10th percentile of each data layer.\n", + "Tipper data involves 2 receiver configurations (x and y), with two components (real and imaginary) and measured over 6 frequencies. Balancing all this data can be challenging and time-consuming. Here, we adopt a variable floor strategy based on the 10th percentile of each data layer.\n", "\n", "```{figure} ./images/tipper/tipper_uncerts.png\n", "---\n", @@ -125,7 +125,7 @@ "\n", "This approach is a good starting point, but experimentation is generally required.\n", "\n", - "After running the inversion we recover the following solution:\n", + "After running the inversion, we recover the following solution:\n", "\n", "\n", "```{figure} ./images/tipper/tipper_unconstrained.png\n", @@ -134,11 +134,19 @@ "---\n", "(Left) Horizontal section at 120 m elevation after reaching target misfit (iteration 5).\n", "\n", - "(Right)(top) 2D profiles of observed versus predicted data for all 4 channels and 6 frequencies and (bottom) vertical section through the conductivity model below the same line.\n", + "(Right)(top) 2D profiles of observed versus predicted data for all 4 channels and 6 frequencies, and (bottom) vertical section through the conductivity model below the same line.\n", "```\n", "\n", "Despite our simplistic floor uncertainties, the inversion managed to converge fairly quickly to a reasonable model that fits our data well. We have recovered a clear conductor at depth that overlaps with the ore body. However, the inversion could not resolve the thin conductive overburden layer, as expected by the low frequency range of the tipper system." ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6db10672-d6a6-4cf9-bb21-03ae881dff7b", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/environments/py-3.10-linux-64-dev.conda.lock.yml b/environments/py-3.10-linux-64-dev.conda.lock.yml index 7930f754..4d6d8496 100644 --- a/environments/py-3.10-linux-64-dev.conda.lock.yml +++ b/environments/py-3.10-linux-64-dev.conda.lock.yml @@ -34,13 +34,13 @@ dependencies: - cached_property=1.5.2=pyha770c72_1 - certifi=2025.8.3=pyhd8ed1ab_0 - cffi=1.17.1=py310h8deb56e_0 - - charset-normalizer=3.4.2=pyhd8ed1ab_0 + - charset-normalizer=3.4.3=pyhd8ed1ab_0 - click=8.2.1=pyh707e725_0 - cloudpickle=3.1.1=pyhd8ed1ab_0 - colorama=0.4.6=pyhd8ed1ab_1 - comm=0.2.3=pyhe01879c_0 - contourpy=1.3.2=py310h3788b33_0 - - coverage=7.10.2=py310h3406613_0 + - coverage=7.10.3=py310h3406613_0 - cycler=0.12.1=pyhd8ed1ab_1 - cytoolz=1.0.1=py310ha75aee5_0 - dask-core=2025.3.0=pyhd8ed1ab_0 @@ -60,7 +60,7 @@ dependencies: - freetype=2.13.3=ha770c72_1 - fsspec=2025.7.0=pyhd8ed1ab_0 - geoana=0.7.2=py310ha2bacc8_0 - - greenlet=3.2.3=py310hf71b8c6_0 + - greenlet=3.2.4=py310hea6c23e_0 - h11=0.16.0=pyhd8ed1ab_0 - h2=4.2.0=pyhd8ed1ab_0 - h5py=3.14.0=nompi_py310hea1e86d_100 @@ -101,8 +101,8 @@ dependencies: - jupyterlab_server=2.27.3=pyhd8ed1ab_1 - jupyterlab_widgets=1.1.11=pyhd8ed1ab_0 - jupytext=1.17.2=pyh80e38bb_0 - - keyutils=1.6.1=h166bdaf_0 - - kiwisolver=1.4.8=py310h3788b33_1 + - keyutils=1.6.3=hb9d3cd8_0 + - kiwisolver=1.4.9=py310haaf941d_0 - krb5=1.21.3=h659f571_0 - lark=1.2.2=pyhd8ed1ab_1 - latexcodec=2.0.1=pyh9f0ad1d_0 @@ -110,11 +110,11 @@ dependencies: - ld_impl_linux-64=2.44=h1423503_1 - lerc=4.0.0=h0aef613_1 - libaec=1.1.4=h3f801dc_0 - - libblas=3.9.0=33_hfdb39a5_mkl + - libblas=3.9.0=34_hfdb39a5_mkl - libbrotlicommon=1.1.0=hb9d3cd8_3 - libbrotlidec=1.1.0=hb9d3cd8_3 - libbrotlienc=1.1.0=hb9d3cd8_3 - - libcblas=3.9.0=33_h372d94f_mkl + - libcblas=3.9.0=34_h372d94f_mkl - libcurl=8.14.1=h332b0f4_0 - libdeflate=1.24=h86f0d12_0 - libdlf=0.3.0=pyhd8ed1ab_1 @@ -129,9 +129,9 @@ dependencies: - libgfortran=15.1.0=h69a702a_4 - libgfortran5=15.1.0=hcea5267_4 - libhwloc=2.12.1=default_h3d81e11_1000 - - libiconv=1.18=h4ce23a2_1 + - libiconv=1.18=h3b78370_2 - libjpeg-turbo=3.1.0=hb9d3cd8_0 - - liblapack=3.9.0=33_hc41d3b0_mkl + - liblapack=3.9.0=34_hc41d3b0_mkl - liblzma=5.8.1=hb9d3cd8_2 - libnghttp2=1.64.0=h161d5f1_0 - libnsl=2.0.1=hb9d3cd8_1 @@ -209,7 +209,7 @@ dependencies: - pydata-sphinx-theme=0.15.4=pyhd8ed1ab_0 - pydiso=0.1.2=py310h69a6472_0 - pygments=2.19.2=pyhd8ed1ab_0 - - pylint=3.3.7=pyhe01879c_0 + - pylint=3.3.8=pyhe01879c_0 - pymatsolver=0.3.1=pyh48887ae_201 - pyparsing=3.2.3=pyhe01879c_2 - pysocks=1.7.1=pyha55dd90_7 @@ -232,7 +232,7 @@ dependencies: - rfc3339-validator=0.1.4=pyhd8ed1ab_1 - rfc3986-validator=0.1.1=pyh9f0ad1d_0 - rfc3987-syntax=1.1.0=pyhe01879c_1 - - rpds-py=0.26.0=py310hbcd0ec0_0 + - rpds-py=0.27.0=py310hd8f68c5_0 - rtree=1.2.0=py310haf1e407_1 - scikit-learn=1.6.1=py310h27f47ee_0 - scipy=1.14.1=py310hfcf56fc_2 @@ -273,11 +273,11 @@ dependencies: - tomli=2.2.1=pyhe01879c_2 - tomlkit=0.13.3=pyha770c72_0 - toolz=1.0.0=pyhd8ed1ab_1 - - tornado=6.5.1=py310ha75aee5_0 + - tornado=6.5.2=py310h7c4b9e2_0 - tqdm=4.67.1=pyhd8ed1ab_1 - traitlets=5.14.3=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 - - types-python-dateutil=2.9.0.20250708=pyhd8ed1ab_0 + - types-python-dateutil=2.9.0.20250809=pyhd8ed1ab_0 - typing-extensions=4.14.1=h4440ef1_0 - typing-inspection=0.4.1=pyhd8ed1ab_0 - typing_extensions=4.14.1=pyhe01879c_0 @@ -304,11 +304,11 @@ dependencies: - zstandard=0.23.0=py310ha75aee5_2 - zstd=1.5.7=hb8e6e7a_2 - pip: - - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 - - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 - - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 + - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 + - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 + - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 variables: KMP_WARNINGS: 0 diff --git a/environments/py-3.10-linux-64.conda.lock.yml b/environments/py-3.10-linux-64.conda.lock.yml index d0e01478..6fa49d78 100644 --- a/environments/py-3.10-linux-64.conda.lock.yml +++ b/environments/py-3.10-linux-64.conda.lock.yml @@ -42,18 +42,18 @@ dependencies: - importlib-metadata=8.7.0=pyhe01879c_1 - jinja2=3.1.6=pyhd8ed1ab_0 - joblib=1.5.1=pyhd8ed1ab_0 - - keyutils=1.6.1=h166bdaf_0 - - kiwisolver=1.4.8=py310h3788b33_1 + - keyutils=1.6.3=hb9d3cd8_0 + - kiwisolver=1.4.9=py310haaf941d_0 - krb5=1.21.3=h659f571_0 - lcms2=2.17=h717163a_0 - ld_impl_linux-64=2.44=h1423503_1 - lerc=4.0.0=h0aef613_1 - libaec=1.1.4=h3f801dc_0 - - libblas=3.9.0=33_hfdb39a5_mkl + - libblas=3.9.0=34_hfdb39a5_mkl - libbrotlicommon=1.1.0=hb9d3cd8_3 - libbrotlidec=1.1.0=hb9d3cd8_3 - libbrotlienc=1.1.0=hb9d3cd8_3 - - libcblas=3.9.0=33_h372d94f_mkl + - libcblas=3.9.0=34_h372d94f_mkl - libcurl=8.14.1=h332b0f4_0 - libdeflate=1.24=h86f0d12_0 - libdlf=0.3.0=pyhd8ed1ab_1 @@ -68,9 +68,9 @@ dependencies: - libgfortran=15.1.0=h69a702a_4 - libgfortran5=15.1.0=hcea5267_4 - libhwloc=2.12.1=default_h3d81e11_1000 - - libiconv=1.18=h4ce23a2_1 + - libiconv=1.18=h3b78370_2 - libjpeg-turbo=3.1.0=hb9d3cd8_0 - - liblapack=3.9.0=33_hc41d3b0_mkl + - liblapack=3.9.0=34_hc41d3b0_mkl - liblzma=5.8.1=hb9d3cd8_2 - libnghttp2=1.64.0=h161d5f1_0 - libnsl=2.0.1=hb9d3cd8_1 @@ -136,7 +136,7 @@ dependencies: - threadpoolctl=3.6.0=pyhecae5ae_0 - tk=8.6.13=noxft_hd72426e_102 - toolz=1.0.0=pyhd8ed1ab_1 - - tornado=6.5.1=py310ha75aee5_0 + - tornado=6.5.2=py310h7c4b9e2_0 - tqdm=4.67.1=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 - typing-extensions=4.14.1=h4440ef1_0 @@ -156,11 +156,11 @@ dependencies: - zstandard=0.23.0=py310ha75aee5_2 - zstd=1.5.7=hb8e6e7a_2 - pip: - - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 - - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 - - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 + - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 + - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 + - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 variables: KMP_WARNINGS: 0 diff --git a/environments/py-3.10-win-64-dev.conda.lock.yml b/environments/py-3.10-win-64-dev.conda.lock.yml index 55eec2ad..23350ad5 100644 --- a/environments/py-3.10-win-64-dev.conda.lock.yml +++ b/environments/py-3.10-win-64-dev.conda.lock.yml @@ -33,13 +33,13 @@ dependencies: - cached_property=1.5.2=pyha770c72_1 - certifi=2025.8.3=pyhd8ed1ab_0 - cffi=1.17.1=py310ha8f682b_0 - - charset-normalizer=3.4.2=pyhd8ed1ab_0 + - charset-normalizer=3.4.3=pyhd8ed1ab_0 - click=8.2.1=pyh7428d3b_0 - cloudpickle=3.1.1=pyhd8ed1ab_0 - colorama=0.4.6=pyhd8ed1ab_1 - comm=0.2.3=pyhe01879c_0 - contourpy=1.3.2=py310hc19bc0b_0 - - coverage=7.10.2=py310hdb0e946_0 + - coverage=7.10.3=py310hdb0e946_0 - cpython=3.10.18=py310hd8ed1ab_0 - cycler=0.12.1=pyhd8ed1ab_1 - cytoolz=1.0.1=py310ha8f682b_0 @@ -60,7 +60,7 @@ dependencies: - freetype=2.13.3=h57928b3_1 - fsspec=2025.7.0=pyhd8ed1ab_0 - geoana=0.7.2=py310h3e8ed56_0 - - greenlet=3.2.3=py310h9e98ed7_0 + - greenlet=3.2.4=py310h73ae2b4_0 - h11=0.16.0=pyhd8ed1ab_0 - h2=4.2.0=pyhd8ed1ab_0 - h5py=3.14.0=nompi_py310h877c39c_100 @@ -101,18 +101,18 @@ dependencies: - jupyterlab_server=2.27.3=pyhd8ed1ab_1 - jupyterlab_widgets=1.1.11=pyhd8ed1ab_0 - jupytext=1.17.2=pyh80e38bb_0 - - kiwisolver=1.4.8=py310he9f1925_1 + - kiwisolver=1.4.9=py310h1e1005b_0 - krb5=1.21.3=hdf4eb48_0 - lark=1.2.2=pyhd8ed1ab_1 - latexcodec=2.0.1=pyh9f0ad1d_0 - lcms2=2.17=hbcf6048_0 - lerc=4.0.0=h6470a55_1 - libaec=1.1.4=h20038f6_0 - - libblas=3.9.0=33_h706a439_openblas + - libblas=3.9.0=34_h5709861_mkl - libbrotlicommon=1.1.0=h2466b09_3 - libbrotlidec=1.1.0=h2466b09_3 - libbrotlienc=1.1.0=h2466b09_3 - - libcblas=3.9.0=33_ha692739_openblas + - libcblas=3.9.0=34_h2a3cdd5_mkl - libcurl=8.14.1=h88aaa65_0 - libdeflate=1.24=h76ddb4d_0 - libdlf=0.3.0=pyhd8ed1ab_1 @@ -123,11 +123,10 @@ dependencies: - libgcc=15.1.0=h1383e82_4 - libgomp=15.1.0=h1383e82_4 - libhwloc=2.12.1=default_h88281d1_1000 - - libiconv=1.18=h135ad9c_1 + - libiconv=1.18=hc1393d2_2 - libjpeg-turbo=3.1.0=h2466b09_0 - - liblapack=3.9.0=33_h1c6d55f_openblas + - liblapack=3.9.0=34_hf9ab0e9_mkl - liblzma=5.8.1=h2466b09_2 - - libopenblas=0.3.30=openmp_h96ad2b0_1 - libpng=1.6.50=h7351971_1 - libsodium=1.0.20=hc70643c_0 - libspatialindex=2.0.0=h5a68840_0 @@ -193,7 +192,7 @@ dependencies: - pydata-sphinx-theme=0.15.4=pyhd8ed1ab_0 - pydiso=0.1.2=py310h8f92c26_0 - pygments=2.19.2=pyhd8ed1ab_0 - - pylint=3.3.7=pyhe01879c_0 + - pylint=3.3.8=pyhe01879c_0 - pymatsolver=0.3.1=pyh48887ae_201 - pyparsing=3.2.3=pyhe01879c_2 - pysocks=1.7.1=pyh09c184e_7 @@ -217,7 +216,7 @@ dependencies: - rfc3339-validator=0.1.4=pyhd8ed1ab_1 - rfc3986-validator=0.1.1=pyh9f0ad1d_0 - rfc3987-syntax=1.1.0=pyhe01879c_1 - - rpds-py=0.26.0=py310h034784e_0 + - rpds-py=0.27.0=py310h034784e_0 - rtree=1.2.0=py310h08d5ad2_1 - scikit-learn=1.6.1=py310hf2a6c47_0 - scipy=1.14.1=py310hbd0dde3_2 @@ -258,11 +257,11 @@ dependencies: - tomli=2.2.1=pyhe01879c_2 - tomlkit=0.13.3=pyha770c72_0 - toolz=1.0.0=pyhd8ed1ab_1 - - tornado=6.5.1=py310ha8f682b_0 + - tornado=6.5.2=py310h29418f3_0 - tqdm=4.67.1=pyhd8ed1ab_1 - traitlets=5.14.3=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 - - types-python-dateutil=2.9.0.20250708=pyhd8ed1ab_0 + - types-python-dateutil=2.9.0.20250809=pyhd8ed1ab_0 - typing-extensions=4.14.1=h4440ef1_0 - typing-inspection=0.4.1=pyhd8ed1ab_0 - typing_extensions=4.14.1=pyhe01879c_0 @@ -295,11 +294,11 @@ dependencies: - zstandard=0.23.0=py310ha8f682b_2 - zstd=1.5.7=hbeecb71_2 - pip: - - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 - - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 - - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 + - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 + - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 + - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 variables: KMP_WARNINGS: 0 diff --git a/environments/py-3.10-win-64.conda.lock.yml b/environments/py-3.10-win-64.conda.lock.yml index ed86f8f1..4b67710b 100644 --- a/environments/py-3.10-win-64.conda.lock.yml +++ b/environments/py-3.10-win-64.conda.lock.yml @@ -41,16 +41,16 @@ dependencies: - importlib-metadata=8.7.0=pyhe01879c_1 - jinja2=3.1.6=pyhd8ed1ab_0 - joblib=1.5.1=pyhd8ed1ab_0 - - kiwisolver=1.4.8=py310he9f1925_1 + - kiwisolver=1.4.9=py310h1e1005b_0 - krb5=1.21.3=hdf4eb48_0 - lcms2=2.17=hbcf6048_0 - lerc=4.0.0=h6470a55_1 - libaec=1.1.4=h20038f6_0 - - libblas=3.9.0=33_h706a439_openblas + - libblas=3.9.0=34_h5709861_mkl - libbrotlicommon=1.1.0=h2466b09_3 - libbrotlidec=1.1.0=h2466b09_3 - libbrotlienc=1.1.0=h2466b09_3 - - libcblas=3.9.0=33_ha692739_openblas + - libcblas=3.9.0=34_h2a3cdd5_mkl - libcurl=8.14.1=h88aaa65_0 - libdeflate=1.24=h76ddb4d_0 - libdlf=0.3.0=pyhd8ed1ab_1 @@ -61,11 +61,10 @@ dependencies: - libgcc=15.1.0=h1383e82_4 - libgomp=15.1.0=h1383e82_4 - libhwloc=2.12.1=default_h88281d1_1000 - - libiconv=1.18=h135ad9c_1 + - libiconv=1.18=hc1393d2_2 - libjpeg-turbo=3.1.0=h2466b09_0 - - liblapack=3.9.0=33_h1c6d55f_openblas + - liblapack=3.9.0=34_hf9ab0e9_mkl - liblzma=5.8.1=h2466b09_2 - - libopenblas=0.3.30=openmp_h96ad2b0_1 - libpng=1.6.50=h7351971_1 - libspatialindex=2.0.0=h5a68840_0 - libsqlite=3.50.4=hf5d6505_0 @@ -120,7 +119,7 @@ dependencies: - threadpoolctl=3.6.0=pyhecae5ae_0 - tk=8.6.13=h2c6b04d_2 - toolz=1.0.0=pyhd8ed1ab_1 - - tornado=6.5.1=py310ha8f682b_0 + - tornado=6.5.2=py310h29418f3_0 - tqdm=4.67.1=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 - typing-extensions=4.14.1=h4440ef1_0 @@ -145,11 +144,11 @@ dependencies: - zstandard=0.23.0=py310ha8f682b_2 - zstd=1.5.7=hbeecb71_2 - pip: - - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 - - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 - - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 + - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 + - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 + - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 variables: KMP_WARNINGS: 0 diff --git a/environments/py-3.11-linux-64-dev.conda.lock.yml b/environments/py-3.11-linux-64-dev.conda.lock.yml index 02d5a0a9..9788f133 100644 --- a/environments/py-3.11-linux-64-dev.conda.lock.yml +++ b/environments/py-3.11-linux-64-dev.conda.lock.yml @@ -34,13 +34,13 @@ dependencies: - cached_property=1.5.2=pyha770c72_1 - certifi=2025.8.3=pyhd8ed1ab_0 - cffi=1.17.1=py311hf29c0ef_0 - - charset-normalizer=3.4.2=pyhd8ed1ab_0 + - charset-normalizer=3.4.3=pyhd8ed1ab_0 - click=8.2.1=pyh707e725_0 - cloudpickle=3.1.1=pyhd8ed1ab_0 - colorama=0.4.6=pyhd8ed1ab_1 - comm=0.2.3=pyhe01879c_0 - contourpy=1.3.3=py311hdf67eae_1 - - coverage=7.10.2=py311h3778330_0 + - coverage=7.10.3=py311h3778330_0 - cycler=0.12.1=pyhd8ed1ab_1 - cytoolz=1.0.1=py311h9ecbd09_0 - dask-core=2025.3.0=pyhd8ed1ab_0 @@ -61,7 +61,7 @@ dependencies: - freetype=2.13.3=ha770c72_1 - fsspec=2025.7.0=pyhd8ed1ab_0 - geoana=0.7.2=py311h5b7b71f_0 - - greenlet=3.2.3=py311hfdbb021_0 + - greenlet=3.2.4=py311h1ddb823_0 - h11=0.16.0=pyhd8ed1ab_0 - h2=4.2.0=pyhd8ed1ab_0 - h5py=3.14.0=nompi_py311h7f87ba5_100 @@ -103,8 +103,8 @@ dependencies: - jupyterlab_server=2.27.3=pyhd8ed1ab_1 - jupyterlab_widgets=1.1.11=pyhd8ed1ab_0 - jupytext=1.17.2=pyh80e38bb_0 - - keyutils=1.6.1=h166bdaf_0 - - kiwisolver=1.4.8=py311hd18a35c_1 + - keyutils=1.6.3=hb9d3cd8_0 + - kiwisolver=1.4.9=py311h724c32c_0 - krb5=1.21.3=h659f571_0 - lark=1.2.2=pyhd8ed1ab_1 - latexcodec=2.0.1=pyh9f0ad1d_0 @@ -112,11 +112,11 @@ dependencies: - ld_impl_linux-64=2.44=h1423503_1 - lerc=4.0.0=h0aef613_1 - libaec=1.1.4=h3f801dc_0 - - libblas=3.9.0=33_hfdb39a5_mkl + - libblas=3.9.0=34_hfdb39a5_mkl - libbrotlicommon=1.1.0=hb9d3cd8_3 - libbrotlidec=1.1.0=hb9d3cd8_3 - libbrotlienc=1.1.0=hb9d3cd8_3 - - libcblas=3.9.0=33_h372d94f_mkl + - libcblas=3.9.0=34_h372d94f_mkl - libcurl=8.14.1=h332b0f4_0 - libdeflate=1.24=h86f0d12_0 - libdlf=0.3.0=pyhd8ed1ab_1 @@ -131,9 +131,9 @@ dependencies: - libgfortran=15.1.0=h69a702a_4 - libgfortran5=15.1.0=hcea5267_4 - libhwloc=2.12.1=default_h3d81e11_1000 - - libiconv=1.18=h4ce23a2_1 + - libiconv=1.18=h3b78370_2 - libjpeg-turbo=3.1.0=hb9d3cd8_0 - - liblapack=3.9.0=33_hc41d3b0_mkl + - liblapack=3.9.0=34_hc41d3b0_mkl - liblzma=5.8.1=hb9d3cd8_2 - libnghttp2=1.64.0=h161d5f1_0 - libnsl=2.0.1=hb9d3cd8_1 @@ -211,7 +211,7 @@ dependencies: - pydata-sphinx-theme=0.15.4=pyhd8ed1ab_0 - pydiso=0.1.2=py311h19ea254_0 - pygments=2.19.2=pyhd8ed1ab_0 - - pylint=3.3.7=pyhe01879c_0 + - pylint=3.3.8=pyhe01879c_0 - pymatsolver=0.3.1=pyh48887ae_201 - pyparsing=3.2.3=pyhe01879c_2 - pysocks=1.7.1=pyha55dd90_7 @@ -234,7 +234,7 @@ dependencies: - rfc3339-validator=0.1.4=pyhd8ed1ab_1 - rfc3986-validator=0.1.1=pyh9f0ad1d_0 - rfc3987-syntax=1.1.0=pyhe01879c_1 - - rpds-py=0.26.0=py311hdae7d1d_0 + - rpds-py=0.27.0=py311h902ca64_0 - rtree=1.2.0=py311ha1603b9_1 - scikit-learn=1.6.1=py311h57cc02b_0 - scipy=1.14.1=py311he9a78e4_2 @@ -275,11 +275,11 @@ dependencies: - tomli=2.2.1=pyhe01879c_2 - tomlkit=0.13.3=pyha770c72_0 - toolz=1.0.0=pyhd8ed1ab_1 - - tornado=6.5.1=py311h9ecbd09_0 + - tornado=6.5.2=py311h49ec1c0_0 - tqdm=4.67.1=pyhd8ed1ab_1 - traitlets=5.14.3=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 - - types-python-dateutil=2.9.0.20250708=pyhd8ed1ab_0 + - types-python-dateutil=2.9.0.20250809=pyhd8ed1ab_0 - typing-extensions=4.14.1=h4440ef1_0 - typing-inspection=0.4.1=pyhd8ed1ab_0 - typing_extensions=4.14.1=pyhe01879c_0 @@ -307,11 +307,11 @@ dependencies: - zstandard=0.23.0=py311h9ecbd09_2 - zstd=1.5.7=hb8e6e7a_2 - pip: - - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 - - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 - - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 + - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 + - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 + - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 variables: KMP_WARNINGS: 0 diff --git a/environments/py-3.11-linux-64.conda.lock.yml b/environments/py-3.11-linux-64.conda.lock.yml index 5edb2483..6888f2bd 100644 --- a/environments/py-3.11-linux-64.conda.lock.yml +++ b/environments/py-3.11-linux-64.conda.lock.yml @@ -43,18 +43,18 @@ dependencies: - importlib-metadata=8.7.0=pyhe01879c_1 - jinja2=3.1.6=pyhd8ed1ab_0 - joblib=1.5.1=pyhd8ed1ab_0 - - keyutils=1.6.1=h166bdaf_0 - - kiwisolver=1.4.8=py311hd18a35c_1 + - keyutils=1.6.3=hb9d3cd8_0 + - kiwisolver=1.4.9=py311h724c32c_0 - krb5=1.21.3=h659f571_0 - lcms2=2.17=h717163a_0 - ld_impl_linux-64=2.44=h1423503_1 - lerc=4.0.0=h0aef613_1 - libaec=1.1.4=h3f801dc_0 - - libblas=3.9.0=33_hfdb39a5_mkl + - libblas=3.9.0=34_hfdb39a5_mkl - libbrotlicommon=1.1.0=hb9d3cd8_3 - libbrotlidec=1.1.0=hb9d3cd8_3 - libbrotlienc=1.1.0=hb9d3cd8_3 - - libcblas=3.9.0=33_h372d94f_mkl + - libcblas=3.9.0=34_h372d94f_mkl - libcurl=8.14.1=h332b0f4_0 - libdeflate=1.24=h86f0d12_0 - libdlf=0.3.0=pyhd8ed1ab_1 @@ -69,9 +69,9 @@ dependencies: - libgfortran=15.1.0=h69a702a_4 - libgfortran5=15.1.0=hcea5267_4 - libhwloc=2.12.1=default_h3d81e11_1000 - - libiconv=1.18=h4ce23a2_1 + - libiconv=1.18=h3b78370_2 - libjpeg-turbo=3.1.0=hb9d3cd8_0 - - liblapack=3.9.0=33_hc41d3b0_mkl + - liblapack=3.9.0=34_hc41d3b0_mkl - liblzma=5.8.1=hb9d3cd8_2 - libnghttp2=1.64.0=h161d5f1_0 - libnsl=2.0.1=hb9d3cd8_1 @@ -137,7 +137,7 @@ dependencies: - threadpoolctl=3.6.0=pyhecae5ae_0 - tk=8.6.13=noxft_hd72426e_102 - toolz=1.0.0=pyhd8ed1ab_1 - - tornado=6.5.1=py311h9ecbd09_0 + - tornado=6.5.2=py311h49ec1c0_0 - tqdm=4.67.1=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 - typing-extensions=4.14.1=h4440ef1_0 @@ -158,11 +158,11 @@ dependencies: - zstandard=0.23.0=py311h9ecbd09_2 - zstd=1.5.7=hb8e6e7a_2 - pip: - - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 - - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 - - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 + - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 + - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 + - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 variables: KMP_WARNINGS: 0 diff --git a/environments/py-3.11-win-64-dev.conda.lock.yml b/environments/py-3.11-win-64-dev.conda.lock.yml index cb8dc73c..784fe677 100644 --- a/environments/py-3.11-win-64-dev.conda.lock.yml +++ b/environments/py-3.11-win-64-dev.conda.lock.yml @@ -33,13 +33,13 @@ dependencies: - cached_property=1.5.2=pyha770c72_1 - certifi=2025.8.3=pyhd8ed1ab_0 - cffi=1.17.1=py311he736701_0 - - charset-normalizer=3.4.2=pyhd8ed1ab_0 + - charset-normalizer=3.4.3=pyhd8ed1ab_0 - click=8.2.1=pyh7428d3b_0 - cloudpickle=3.1.1=pyhd8ed1ab_0 - colorama=0.4.6=pyhd8ed1ab_1 - comm=0.2.3=pyhe01879c_0 - contourpy=1.3.3=py311h3fd045d_1 - - coverage=7.10.2=py311h3f79411_0 + - coverage=7.10.3=py311h3f79411_0 - cpython=3.11.13=py311hd8ed1ab_0 - cycler=0.12.1=pyhd8ed1ab_1 - cytoolz=1.0.1=py311he736701_0 @@ -61,7 +61,7 @@ dependencies: - freetype=2.13.3=h57928b3_1 - fsspec=2025.7.0=pyhd8ed1ab_0 - geoana=0.7.2=py311h9b10771_0 - - greenlet=3.2.3=py311hda3d55a_0 + - greenlet=3.2.4=py311h3e6a449_0 - h11=0.16.0=pyhd8ed1ab_0 - h2=4.2.0=pyhd8ed1ab_0 - h5py=3.14.0=nompi_py311h97e6cc2_100 @@ -103,18 +103,18 @@ dependencies: - jupyterlab_server=2.27.3=pyhd8ed1ab_1 - jupyterlab_widgets=1.1.11=pyhd8ed1ab_0 - jupytext=1.17.2=pyh80e38bb_0 - - kiwisolver=1.4.8=py311h3fd045d_1 + - kiwisolver=1.4.9=py311h275cad7_0 - krb5=1.21.3=hdf4eb48_0 - lark=1.2.2=pyhd8ed1ab_1 - latexcodec=2.0.1=pyh9f0ad1d_0 - lcms2=2.17=hbcf6048_0 - lerc=4.0.0=h6470a55_1 - libaec=1.1.4=h20038f6_0 - - libblas=3.9.0=33_h706a439_openblas + - libblas=3.9.0=34_h5709861_mkl - libbrotlicommon=1.1.0=h2466b09_3 - libbrotlidec=1.1.0=h2466b09_3 - libbrotlienc=1.1.0=h2466b09_3 - - libcblas=3.9.0=33_ha692739_openblas + - libcblas=3.9.0=34_h2a3cdd5_mkl - libcurl=8.14.1=h88aaa65_0 - libdeflate=1.24=h76ddb4d_0 - libdlf=0.3.0=pyhd8ed1ab_1 @@ -125,11 +125,10 @@ dependencies: - libgcc=15.1.0=h1383e82_4 - libgomp=15.1.0=h1383e82_4 - libhwloc=2.12.1=default_h88281d1_1000 - - libiconv=1.18=h135ad9c_1 + - libiconv=1.18=hc1393d2_2 - libjpeg-turbo=3.1.0=h2466b09_0 - - liblapack=3.9.0=33_h1c6d55f_openblas + - liblapack=3.9.0=34_hf9ab0e9_mkl - liblzma=5.8.1=h2466b09_2 - - libopenblas=0.3.30=openmp_h96ad2b0_1 - libpng=1.6.50=h7351971_1 - libsodium=1.0.20=hc70643c_0 - libspatialindex=2.0.0=h5a68840_0 @@ -195,7 +194,7 @@ dependencies: - pydata-sphinx-theme=0.15.4=pyhd8ed1ab_0 - pydiso=0.1.2=py311h66870c1_0 - pygments=2.19.2=pyhd8ed1ab_0 - - pylint=3.3.7=pyhe01879c_0 + - pylint=3.3.8=pyhe01879c_0 - pymatsolver=0.3.1=pyh48887ae_201 - pyparsing=3.2.3=pyhe01879c_2 - pysocks=1.7.1=pyh09c184e_7 @@ -219,7 +218,7 @@ dependencies: - rfc3339-validator=0.1.4=pyhd8ed1ab_1 - rfc3986-validator=0.1.1=pyh9f0ad1d_0 - rfc3987-syntax=1.1.0=pyhe01879c_1 - - rpds-py=0.26.0=py311hf51aa87_0 + - rpds-py=0.27.0=py311hf51aa87_0 - rtree=1.2.0=py311h44d53c4_1 - scikit-learn=1.6.1=py311hdcb8d17_0 - scipy=1.14.1=py311hf16d85f_2 @@ -260,11 +259,11 @@ dependencies: - tomli=2.2.1=pyhe01879c_2 - tomlkit=0.13.3=pyha770c72_0 - toolz=1.0.0=pyhd8ed1ab_1 - - tornado=6.5.1=py311he736701_0 + - tornado=6.5.2=py311h3485c13_0 - tqdm=4.67.1=pyhd8ed1ab_1 - traitlets=5.14.3=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 - - types-python-dateutil=2.9.0.20250708=pyhd8ed1ab_0 + - types-python-dateutil=2.9.0.20250809=pyhd8ed1ab_0 - typing-extensions=4.14.1=h4440ef1_0 - typing-inspection=0.4.1=pyhd8ed1ab_0 - typing_extensions=4.14.1=pyhe01879c_0 @@ -298,11 +297,11 @@ dependencies: - zstandard=0.23.0=py311he736701_2 - zstd=1.5.7=hbeecb71_2 - pip: - - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 - - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 - - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 + - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 + - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 + - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 variables: KMP_WARNINGS: 0 diff --git a/environments/py-3.11-win-64.conda.lock.yml b/environments/py-3.11-win-64.conda.lock.yml index bc668a45..a958dc78 100644 --- a/environments/py-3.11-win-64.conda.lock.yml +++ b/environments/py-3.11-win-64.conda.lock.yml @@ -42,16 +42,16 @@ dependencies: - importlib-metadata=8.7.0=pyhe01879c_1 - jinja2=3.1.6=pyhd8ed1ab_0 - joblib=1.5.1=pyhd8ed1ab_0 - - kiwisolver=1.4.8=py311h3fd045d_1 + - kiwisolver=1.4.9=py311h275cad7_0 - krb5=1.21.3=hdf4eb48_0 - lcms2=2.17=hbcf6048_0 - lerc=4.0.0=h6470a55_1 - libaec=1.1.4=h20038f6_0 - - libblas=3.9.0=33_h706a439_openblas + - libblas=3.9.0=34_h5709861_mkl - libbrotlicommon=1.1.0=h2466b09_3 - libbrotlidec=1.1.0=h2466b09_3 - libbrotlienc=1.1.0=h2466b09_3 - - libcblas=3.9.0=33_ha692739_openblas + - libcblas=3.9.0=34_h2a3cdd5_mkl - libcurl=8.14.1=h88aaa65_0 - libdeflate=1.24=h76ddb4d_0 - libdlf=0.3.0=pyhd8ed1ab_1 @@ -62,11 +62,10 @@ dependencies: - libgcc=15.1.0=h1383e82_4 - libgomp=15.1.0=h1383e82_4 - libhwloc=2.12.1=default_h88281d1_1000 - - libiconv=1.18=h135ad9c_1 + - libiconv=1.18=hc1393d2_2 - libjpeg-turbo=3.1.0=h2466b09_0 - - liblapack=3.9.0=33_h1c6d55f_openblas + - liblapack=3.9.0=34_hf9ab0e9_mkl - liblzma=5.8.1=h2466b09_2 - - libopenblas=0.3.30=openmp_h96ad2b0_1 - libpng=1.6.50=h7351971_1 - libspatialindex=2.0.0=h5a68840_0 - libsqlite=3.50.4=hf5d6505_0 @@ -121,7 +120,7 @@ dependencies: - threadpoolctl=3.6.0=pyhecae5ae_0 - tk=8.6.13=h2c6b04d_2 - toolz=1.0.0=pyhd8ed1ab_1 - - tornado=6.5.1=py311he736701_0 + - tornado=6.5.2=py311h3485c13_0 - tqdm=4.67.1=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 - typing-extensions=4.14.1=h4440ef1_0 @@ -147,11 +146,11 @@ dependencies: - zstandard=0.23.0=py311he736701_2 - zstd=1.5.7=hbeecb71_2 - pip: - - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 - - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 - - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 + - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 + - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 + - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 variables: KMP_WARNINGS: 0 diff --git a/environments/py-3.12-linux-64-dev.conda.lock.yml b/environments/py-3.12-linux-64-dev.conda.lock.yml index aa80118a..b883d8f9 100644 --- a/environments/py-3.12-linux-64-dev.conda.lock.yml +++ b/environments/py-3.12-linux-64-dev.conda.lock.yml @@ -34,13 +34,13 @@ dependencies: - cached_property=1.5.2=pyha770c72_1 - certifi=2025.8.3=pyhd8ed1ab_0 - cffi=1.17.1=py312h06ac9bb_0 - - charset-normalizer=3.4.2=pyhd8ed1ab_0 + - charset-normalizer=3.4.3=pyhd8ed1ab_0 - click=8.2.1=pyh707e725_0 - cloudpickle=3.1.1=pyhd8ed1ab_0 - colorama=0.4.6=pyhd8ed1ab_1 - comm=0.2.3=pyhe01879c_0 - contourpy=1.3.3=py312hd9148b4_1 - - coverage=7.10.2=py312h8a5da7c_0 + - coverage=7.10.3=py312h8a5da7c_0 - cycler=0.12.1=pyhd8ed1ab_1 - cytoolz=1.0.1=py312h66e93f0_0 - dask-core=2025.3.0=pyhd8ed1ab_0 @@ -61,7 +61,7 @@ dependencies: - freetype=2.13.3=ha770c72_1 - fsspec=2025.7.0=pyhd8ed1ab_0 - geoana=0.7.2=py312hc39e661_0 - - greenlet=3.2.3=py312h2ec8cdc_0 + - greenlet=3.2.4=py312h1289d80_0 - h11=0.16.0=pyhd8ed1ab_0 - h2=4.2.0=pyhd8ed1ab_0 - h5py=3.14.0=nompi_py312h3faca00_100 @@ -103,8 +103,8 @@ dependencies: - jupyterlab_server=2.27.3=pyhd8ed1ab_1 - jupyterlab_widgets=1.1.11=pyhd8ed1ab_0 - jupytext=1.17.2=pyh80e38bb_0 - - keyutils=1.6.1=h166bdaf_0 - - kiwisolver=1.4.8=py312h68727a3_1 + - keyutils=1.6.3=hb9d3cd8_0 + - kiwisolver=1.4.9=py312h0a2e395_0 - krb5=1.21.3=h659f571_0 - lark=1.2.2=pyhd8ed1ab_1 - latexcodec=2.0.1=pyh9f0ad1d_0 @@ -112,11 +112,11 @@ dependencies: - ld_impl_linux-64=2.44=h1423503_1 - lerc=4.0.0=h0aef613_1 - libaec=1.1.4=h3f801dc_0 - - libblas=3.9.0=33_hfdb39a5_mkl + - libblas=3.9.0=34_hfdb39a5_mkl - libbrotlicommon=1.1.0=hb9d3cd8_3 - libbrotlidec=1.1.0=hb9d3cd8_3 - libbrotlienc=1.1.0=hb9d3cd8_3 - - libcblas=3.9.0=33_h372d94f_mkl + - libcblas=3.9.0=34_h372d94f_mkl - libcurl=8.14.1=h332b0f4_0 - libdeflate=1.24=h86f0d12_0 - libdlf=0.3.0=pyhd8ed1ab_1 @@ -131,9 +131,9 @@ dependencies: - libgfortran=15.1.0=h69a702a_4 - libgfortran5=15.1.0=hcea5267_4 - libhwloc=2.12.1=default_h3d81e11_1000 - - libiconv=1.18=h4ce23a2_1 + - libiconv=1.18=h3b78370_2 - libjpeg-turbo=3.1.0=hb9d3cd8_0 - - liblapack=3.9.0=33_hc41d3b0_mkl + - liblapack=3.9.0=34_hc41d3b0_mkl - liblzma=5.8.1=hb9d3cd8_2 - libnghttp2=1.64.0=h161d5f1_0 - libnsl=2.0.1=hb9d3cd8_1 @@ -211,7 +211,7 @@ dependencies: - pydata-sphinx-theme=0.15.4=pyhd8ed1ab_0 - pydiso=0.1.2=py312h772f2df_0 - pygments=2.19.2=pyhd8ed1ab_0 - - pylint=3.3.7=pyhe01879c_0 + - pylint=3.3.8=pyhe01879c_0 - pymatsolver=0.3.1=pyh48887ae_201 - pyparsing=3.2.3=pyhe01879c_2 - pysocks=1.7.1=pyha55dd90_7 @@ -234,7 +234,7 @@ dependencies: - rfc3339-validator=0.1.4=pyhd8ed1ab_1 - rfc3986-validator=0.1.1=pyh9f0ad1d_0 - rfc3987-syntax=1.1.0=pyhe01879c_1 - - rpds-py=0.26.0=py312h680f630_0 + - rpds-py=0.27.0=py312h868fb18_0 - rtree=1.2.0=py312h3ed4c40_1 - scikit-learn=1.6.1=py312h7a48858_0 - scipy=1.14.1=py312h62794b6_2 @@ -275,11 +275,11 @@ dependencies: - tomli=2.2.1=pyhe01879c_2 - tomlkit=0.13.3=pyha770c72_0 - toolz=1.0.0=pyhd8ed1ab_1 - - tornado=6.5.1=py312h66e93f0_0 + - tornado=6.5.2=py312h4c3975b_0 - tqdm=4.67.1=pyhd8ed1ab_1 - traitlets=5.14.3=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 - - types-python-dateutil=2.9.0.20250708=pyhd8ed1ab_0 + - types-python-dateutil=2.9.0.20250809=pyhd8ed1ab_0 - typing-extensions=4.14.1=h4440ef1_0 - typing-inspection=0.4.1=pyhd8ed1ab_0 - typing_extensions=4.14.1=pyhe01879c_0 @@ -307,11 +307,11 @@ dependencies: - zstandard=0.23.0=py312h66e93f0_2 - zstd=1.5.7=hb8e6e7a_2 - pip: - - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 - - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 - - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 + - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 + - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 + - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 variables: KMP_WARNINGS: 0 diff --git a/environments/py-3.12-linux-64.conda.lock.yml b/environments/py-3.12-linux-64.conda.lock.yml index 4850ec6b..13b54b41 100644 --- a/environments/py-3.12-linux-64.conda.lock.yml +++ b/environments/py-3.12-linux-64.conda.lock.yml @@ -43,18 +43,18 @@ dependencies: - importlib-metadata=8.7.0=pyhe01879c_1 - jinja2=3.1.6=pyhd8ed1ab_0 - joblib=1.5.1=pyhd8ed1ab_0 - - keyutils=1.6.1=h166bdaf_0 - - kiwisolver=1.4.8=py312h68727a3_1 + - keyutils=1.6.3=hb9d3cd8_0 + - kiwisolver=1.4.9=py312h0a2e395_0 - krb5=1.21.3=h659f571_0 - lcms2=2.17=h717163a_0 - ld_impl_linux-64=2.44=h1423503_1 - lerc=4.0.0=h0aef613_1 - libaec=1.1.4=h3f801dc_0 - - libblas=3.9.0=33_hfdb39a5_mkl + - libblas=3.9.0=34_hfdb39a5_mkl - libbrotlicommon=1.1.0=hb9d3cd8_3 - libbrotlidec=1.1.0=hb9d3cd8_3 - libbrotlienc=1.1.0=hb9d3cd8_3 - - libcblas=3.9.0=33_h372d94f_mkl + - libcblas=3.9.0=34_h372d94f_mkl - libcurl=8.14.1=h332b0f4_0 - libdeflate=1.24=h86f0d12_0 - libdlf=0.3.0=pyhd8ed1ab_1 @@ -69,9 +69,9 @@ dependencies: - libgfortran=15.1.0=h69a702a_4 - libgfortran5=15.1.0=hcea5267_4 - libhwloc=2.12.1=default_h3d81e11_1000 - - libiconv=1.18=h4ce23a2_1 + - libiconv=1.18=h3b78370_2 - libjpeg-turbo=3.1.0=hb9d3cd8_0 - - liblapack=3.9.0=33_hc41d3b0_mkl + - liblapack=3.9.0=34_hc41d3b0_mkl - liblzma=5.8.1=hb9d3cd8_2 - libnghttp2=1.64.0=h161d5f1_0 - libnsl=2.0.1=hb9d3cd8_1 @@ -137,7 +137,7 @@ dependencies: - threadpoolctl=3.6.0=pyhecae5ae_0 - tk=8.6.13=noxft_hd72426e_102 - toolz=1.0.0=pyhd8ed1ab_1 - - tornado=6.5.1=py312h66e93f0_0 + - tornado=6.5.2=py312h4c3975b_0 - tqdm=4.67.1=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 - typing-extensions=4.14.1=h4440ef1_0 @@ -158,11 +158,11 @@ dependencies: - zstandard=0.23.0=py312h66e93f0_2 - zstd=1.5.7=hb8e6e7a_2 - pip: - - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 - - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 - - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 + - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 + - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 + - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 variables: KMP_WARNINGS: 0 diff --git a/environments/py-3.12-win-64-dev.conda.lock.yml b/environments/py-3.12-win-64-dev.conda.lock.yml index 49c24e3b..071d077d 100644 --- a/environments/py-3.12-win-64-dev.conda.lock.yml +++ b/environments/py-3.12-win-64-dev.conda.lock.yml @@ -33,13 +33,13 @@ dependencies: - cached_property=1.5.2=pyha770c72_1 - certifi=2025.8.3=pyhd8ed1ab_0 - cffi=1.17.1=py312h4389bb4_0 - - charset-normalizer=3.4.2=pyhd8ed1ab_0 + - charset-normalizer=3.4.3=pyhd8ed1ab_0 - click=8.2.1=pyh7428d3b_0 - cloudpickle=3.1.1=pyhd8ed1ab_0 - colorama=0.4.6=pyhd8ed1ab_1 - comm=0.2.3=pyhe01879c_0 - contourpy=1.3.3=py312hf90b1b7_1 - - coverage=7.10.2=py312h05f76fc_0 + - coverage=7.10.3=py312h05f76fc_0 - cpython=3.12.11=py312hd8ed1ab_0 - cycler=0.12.1=pyhd8ed1ab_1 - cytoolz=1.0.1=py312h4389bb4_0 @@ -61,7 +61,7 @@ dependencies: - freetype=2.13.3=h57928b3_1 - fsspec=2025.7.0=pyhd8ed1ab_0 - geoana=0.7.2=py312hbaa7e33_0 - - greenlet=3.2.3=py312h275cf98_0 + - greenlet=3.2.4=py312hbb81ca0_0 - h11=0.16.0=pyhd8ed1ab_0 - h2=4.2.0=pyhd8ed1ab_0 - h5py=3.14.0=nompi_py312h6cc2a29_100 @@ -103,18 +103,18 @@ dependencies: - jupyterlab_server=2.27.3=pyhd8ed1ab_1 - jupyterlab_widgets=1.1.11=pyhd8ed1ab_0 - jupytext=1.17.2=pyh80e38bb_0 - - kiwisolver=1.4.8=py312hf90b1b7_1 + - kiwisolver=1.4.9=py312h78d62e6_0 - krb5=1.21.3=hdf4eb48_0 - lark=1.2.2=pyhd8ed1ab_1 - latexcodec=2.0.1=pyh9f0ad1d_0 - lcms2=2.17=hbcf6048_0 - lerc=4.0.0=h6470a55_1 - libaec=1.1.4=h20038f6_0 - - libblas=3.9.0=33_h706a439_openblas + - libblas=3.9.0=34_h5709861_mkl - libbrotlicommon=1.1.0=h2466b09_3 - libbrotlidec=1.1.0=h2466b09_3 - libbrotlienc=1.1.0=h2466b09_3 - - libcblas=3.9.0=33_ha692739_openblas + - libcblas=3.9.0=34_h2a3cdd5_mkl - libcurl=8.14.1=h88aaa65_0 - libdeflate=1.24=h76ddb4d_0 - libdlf=0.3.0=pyhd8ed1ab_1 @@ -125,11 +125,10 @@ dependencies: - libgcc=15.1.0=h1383e82_4 - libgomp=15.1.0=h1383e82_4 - libhwloc=2.12.1=default_h88281d1_1000 - - libiconv=1.18=h135ad9c_1 + - libiconv=1.18=hc1393d2_2 - libjpeg-turbo=3.1.0=h2466b09_0 - - liblapack=3.9.0=33_h1c6d55f_openblas + - liblapack=3.9.0=34_hf9ab0e9_mkl - liblzma=5.8.1=h2466b09_2 - - libopenblas=0.3.30=openmp_h96ad2b0_1 - libpng=1.6.50=h7351971_1 - libsodium=1.0.20=hc70643c_0 - libspatialindex=2.0.0=h5a68840_0 @@ -195,7 +194,7 @@ dependencies: - pydata-sphinx-theme=0.15.4=pyhd8ed1ab_0 - pydiso=0.1.2=py312h01acb21_0 - pygments=2.19.2=pyhd8ed1ab_0 - - pylint=3.3.7=pyhe01879c_0 + - pylint=3.3.8=pyhe01879c_0 - pymatsolver=0.3.1=pyh48887ae_201 - pyparsing=3.2.3=pyhe01879c_2 - pysocks=1.7.1=pyh09c184e_7 @@ -219,7 +218,7 @@ dependencies: - rfc3339-validator=0.1.4=pyhd8ed1ab_1 - rfc3986-validator=0.1.1=pyh9f0ad1d_0 - rfc3987-syntax=1.1.0=pyhe01879c_1 - - rpds-py=0.26.0=py312hdabe01f_0 + - rpds-py=0.27.0=py312hdabe01f_0 - rtree=1.2.0=py312h50e5f8f_1 - scikit-learn=1.6.1=py312h816cc57_0 - scipy=1.14.1=py312h337df96_2 @@ -260,11 +259,11 @@ dependencies: - tomli=2.2.1=pyhe01879c_2 - tomlkit=0.13.3=pyha770c72_0 - toolz=1.0.0=pyhd8ed1ab_1 - - tornado=6.5.1=py312h4389bb4_0 + - tornado=6.5.2=py312he06e257_0 - tqdm=4.67.1=pyhd8ed1ab_1 - traitlets=5.14.3=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 - - types-python-dateutil=2.9.0.20250708=pyhd8ed1ab_0 + - types-python-dateutil=2.9.0.20250809=pyhd8ed1ab_0 - typing-extensions=4.14.1=h4440ef1_0 - typing-inspection=0.4.1=pyhd8ed1ab_0 - typing_extensions=4.14.1=pyhe01879c_0 @@ -298,11 +297,11 @@ dependencies: - zstandard=0.23.0=py312h4389bb4_2 - zstd=1.5.7=hbeecb71_2 - pip: - - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 - - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 - - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 + - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 + - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 + - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 variables: KMP_WARNINGS: 0 diff --git a/environments/py-3.12-win-64.conda.lock.yml b/environments/py-3.12-win-64.conda.lock.yml index 46c58086..166209c4 100644 --- a/environments/py-3.12-win-64.conda.lock.yml +++ b/environments/py-3.12-win-64.conda.lock.yml @@ -42,16 +42,16 @@ dependencies: - importlib-metadata=8.7.0=pyhe01879c_1 - jinja2=3.1.6=pyhd8ed1ab_0 - joblib=1.5.1=pyhd8ed1ab_0 - - kiwisolver=1.4.8=py312hf90b1b7_1 + - kiwisolver=1.4.9=py312h78d62e6_0 - krb5=1.21.3=hdf4eb48_0 - lcms2=2.17=hbcf6048_0 - lerc=4.0.0=h6470a55_1 - libaec=1.1.4=h20038f6_0 - - libblas=3.9.0=33_h706a439_openblas + - libblas=3.9.0=34_h5709861_mkl - libbrotlicommon=1.1.0=h2466b09_3 - libbrotlidec=1.1.0=h2466b09_3 - libbrotlienc=1.1.0=h2466b09_3 - - libcblas=3.9.0=33_ha692739_openblas + - libcblas=3.9.0=34_h2a3cdd5_mkl - libcurl=8.14.1=h88aaa65_0 - libdeflate=1.24=h76ddb4d_0 - libdlf=0.3.0=pyhd8ed1ab_1 @@ -62,11 +62,10 @@ dependencies: - libgcc=15.1.0=h1383e82_4 - libgomp=15.1.0=h1383e82_4 - libhwloc=2.12.1=default_h88281d1_1000 - - libiconv=1.18=h135ad9c_1 + - libiconv=1.18=hc1393d2_2 - libjpeg-turbo=3.1.0=h2466b09_0 - - liblapack=3.9.0=33_h1c6d55f_openblas + - liblapack=3.9.0=34_hf9ab0e9_mkl - liblzma=5.8.1=h2466b09_2 - - libopenblas=0.3.30=openmp_h96ad2b0_1 - libpng=1.6.50=h7351971_1 - libspatialindex=2.0.0=h5a68840_0 - libsqlite=3.50.4=hf5d6505_0 @@ -121,7 +120,7 @@ dependencies: - threadpoolctl=3.6.0=pyhecae5ae_0 - tk=8.6.13=h2c6b04d_2 - toolz=1.0.0=pyhd8ed1ab_1 - - tornado=6.5.1=py312h4389bb4_0 + - tornado=6.5.2=py312he06e257_0 - tqdm=4.67.1=pyhd8ed1ab_1 - trimesh=4.1.8=pyhd8ed1ab_0 - typing-extensions=4.14.1=h4440ef1_0 @@ -147,11 +146,11 @@ dependencies: - zstandard=0.23.0=py312h4389bb4_2 - zstd=1.5.7=hbeecb71_2 - pip: - - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 - - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 - - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 - - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 - - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 + - geoapps-utils @ git+https://github.com/MiraGeoscience/geoapps-utils.git@1dbe97d441d65962a94e071b5c1c27d9facd2050 + - geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 + - mira-simpeg @ git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 + - octree-creation-app @ git+https://github.com/MiraGeoscience/octree-creation-app.git@02fbd85bf7d54b8f4336f1f0094c1c3e27714e81 + - param-sweeps @ git+https://github.com/MiraGeoscience/param-sweeps.git@9ed6091534d638171957a17324e1a1e8f067b434 variables: KMP_WARNINGS: 0 diff --git a/py-3.10.conda-lock.yml b/py-3.10.conda-lock.yml index 401a3e95..8c0d5231 100644 --- a/py-3.10.conda-lock.yml +++ b/py-3.10.conda-lock.yml @@ -792,27 +792,27 @@ package: category: main optional: false - name: charset-normalizer - version: 3.4.2 + version: 3.4.3 manager: conda platform: linux-64 dependencies: python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.2-pyhd8ed1ab_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.3-pyhd8ed1ab_0.conda hash: - md5: 40fe4284b8b5835a9073a645139f35af - sha256: 535ae5dcda8022e31c6dc063eb344c80804c537a5a04afba43a845fa6fa130f5 + md5: 7e7d5ef1b9ed630e4a1c358d6bc62284 + sha256: 838d5a011f0e7422be6427becba3de743c78f3874ad2743c341accbba9bb2624 category: dev optional: true - name: charset-normalizer - version: 3.4.2 + version: 3.4.3 manager: conda platform: win-64 dependencies: python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.2-pyhd8ed1ab_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.3-pyhd8ed1ab_0.conda hash: - md5: 40fe4284b8b5835a9073a645139f35af - sha256: 535ae5dcda8022e31c6dc063eb344c80804c537a5a04afba43a845fa6fa130f5 + md5: 7e7d5ef1b9ed630e4a1c358d6bc62284 + sha256: 838d5a011f0e7422be6427becba3de743c78f3874ad2743c341accbba9bb2624 category: dev optional: true - name: click @@ -949,7 +949,7 @@ package: category: main optional: false - name: coverage - version: 7.10.2 + version: 7.10.3 manager: conda platform: linux-64 dependencies: @@ -958,14 +958,14 @@ package: python: '>=3.10,<3.11.0a0' python_abi: 3.10.* tomli: '' - url: https://repo.prefix.dev/conda-forge/linux-64/coverage-7.10.2-py310h3406613_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/coverage-7.10.3-py310h3406613_0.conda hash: - md5: c03cc1310dc3059463e52ba1062e1689 - sha256: 2c647bf7df6135b2cac4b2076240f8fd7f05f6fab39a727ead9f65e184eed2f0 + md5: 075e8dd909720be418b6d94ed1b3d517 + sha256: 6163d00602de9937a5af06eefbf2a2c83e865d24c2efc8e55abf8f2f6ff8691e category: dev optional: true - name: coverage - version: 7.10.2 + version: 7.10.3 manager: conda platform: win-64 dependencies: @@ -975,10 +975,10 @@ package: ucrt: '>=10.0.20348.0' vc: '>=14.3,<15' vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/coverage-7.10.2-py310hdb0e946_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/coverage-7.10.3-py310hdb0e946_0.conda hash: - md5: df6cd1aa316df7c199030a889cd8886f - sha256: a66b46595b82dd73f102aa11fe046bf0df739e9b053fea611a1fb36d1fb32d50 + md5: ae729ad9cc463282ad54c8380576d799 + sha256: 255952213dce744c952042f87865947d431b69cbadae08de8d3a7c97ceac2729 category: dev optional: true - name: cpython @@ -1563,35 +1563,35 @@ package: category: main optional: false - name: greenlet - version: 3.2.3 + version: 3.2.4 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - libstdcxx: '>=13' + libgcc: '>=14' + libstdcxx: '>=14' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* - url: https://repo.prefix.dev/conda-forge/linux-64/greenlet-3.2.3-py310hf71b8c6_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/greenlet-3.2.4-py310hea6c23e_0.conda hash: - md5: 8455091aed2d84aa239354f67cbdfe74 - sha256: 9d02287ff70b5734ee7a23acde4012df62f851e787aad4219d4259b591aeb054 + md5: 2e49ba3735f24d0cede54e1b77e78d48 + sha256: 840fd31fd31ae3d2d2aba23bd8dfa9536dd961a99c72781ad7e8d9b6049956c2 category: dev optional: true - name: greenlet - version: 3.2.3 + version: 3.2.4 manager: conda platform: win-64 dependencies: python: '>=3.10,<3.11.0a0' python_abi: 3.10.* ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/greenlet-3.2.3-py310h9e98ed7_0.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/greenlet-3.2.4-py310h73ae2b4_0.conda hash: - md5: 91c8d80e04ca8d01f79a1143f6b80392 - sha256: d5f4d8a0fc7d83baaf957966cc2e17cca82e2950d45c91bd759c09e010038bde + md5: ea79676b3b10a7d1c6cf5e988c1b796e + sha256: 70c39fde989a869e7e83bb968c4fafeb9361f1ff2a3948534086606f12e494c5 category: dev optional: true - name: h11 @@ -2900,47 +2900,48 @@ package: category: dev optional: true - name: keyutils - version: 1.6.1 + version: 1.6.3 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=10.3.0' - url: https://repo.prefix.dev/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=13' + url: https://repo.prefix.dev/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda hash: - md5: 30186d27e2c9fa62b45fb1476b7200e3 - sha256: 150c05a6e538610ca7c43beb3a40d65c90537497a4f6a5f4d15ec0451b6f5ebb + md5: b38117a3c920364aff79f870c984b4a3 + sha256: 0960d06048a7185d3542d850986d807c6e37ca2e644342dd0c72feefcf26c2a4 category: main optional: false - name: kiwisolver - version: 1.4.8 + version: 1.4.9 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - libstdcxx: '>=13' - python: '>=3.10,<3.11.0a0' + libgcc: '>=14' + libstdcxx: '>=14' + python: '' python_abi: 3.10.* - url: https://repo.prefix.dev/conda-forge/linux-64/kiwisolver-1.4.8-py310h3788b33_1.conda + url: https://repo.prefix.dev/conda-forge/linux-64/kiwisolver-1.4.9-py310haaf941d_0.conda hash: - md5: b70dd76da5231e6073fd44c42a1d78c5 - sha256: 01270e2548efdf04411f4a6938b04df295a1194060808b497d9e60f5e16c98b7 + md5: b5e7e5df6544fc81102bdea6157a0689 + sha256: 26e51a62efbea5c5bb832443020cb2bec366477e1cf7ff324308835523c8fe1b category: main optional: false - name: kiwisolver - version: 1.4.8 + version: 1.4.9 manager: conda platform: win-64 dependencies: - python: '>=3.10,<3.11.0a0' + python: '' python_abi: 3.10.* ucrt: '>=10.0.20348.0' vc: '>=14.3,<15' vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/kiwisolver-1.4.8-py310he9f1925_1.conda + url: https://repo.prefix.dev/conda-forge/win-64/kiwisolver-1.4.9-py310h1e1005b_0.conda hash: - md5: e2755283837d9bd45838564cf54872c8 - sha256: ea9925067a1401cd0693ea8d7dbe160e47c71bff4113bc59e526844ddc11e017 + md5: 1dafe400279a912768c930ed12d65a29 + sha256: 077f534795d9c012f028523ad3fe23a269e127e2b66f04963ee2f887ecb38796 category: main optional: false - name: krb5 @@ -3129,10 +3130,10 @@ package: platform: linux-64 dependencies: mkl: '>=2024.2.2,<2025.0a0' - url: https://repo.prefix.dev/conda-forge/linux-64/libblas-3.9.0-33_hfdb39a5_mkl.conda + url: https://repo.prefix.dev/conda-forge/linux-64/libblas-3.9.0-34_hfdb39a5_mkl.conda hash: - md5: 9f89883004e428c65c462fbb07618125 - sha256: 8b686362a6c6396fa529e444b32c9b089926da781f4db04953edfc1aa1bba239 + md5: 2ab9d1b88cf3e99b2d060b17072fe8eb + sha256: 633de259502cc410738462a070afaeb904a7bba9b475916bd26c9e0d7e12383c category: main optional: false - name: libblas @@ -3140,12 +3141,11 @@ package: manager: conda platform: win-64 dependencies: - libopenblas: 0.3.30 - llvm-openmp: '>=20.1.8' - url: https://repo.prefix.dev/conda-forge/win-64/libblas-3.9.0-33_h706a439_openblas.conda + mkl: '>=2024.2.2,<2025.0a0' + url: https://repo.prefix.dev/conda-forge/win-64/libblas-3.9.0-34_h5709861_mkl.conda hash: - md5: cae3b10447e3f89f12b416fa53a18d92 - sha256: 33a271a0d8a3ff1618752b3fa99e3809d5f0783fd6272fd25809c4e634e8aa87 + md5: a64dcde5f27b8e0e413ddfc56151664c + sha256: d7865fcc7d29b22e4111ababec49083851a84bb3025748eed65184be765b6e7d category: main optional: false - name: libbrotlicommon @@ -3239,10 +3239,10 @@ package: platform: linux-64 dependencies: libblas: 3.9.0 - url: https://repo.prefix.dev/conda-forge/linux-64/libcblas-3.9.0-33_h372d94f_mkl.conda + url: https://repo.prefix.dev/conda-forge/linux-64/libcblas-3.9.0-34_h372d94f_mkl.conda hash: - md5: 71bd2fa1924b99978688f736343ff9eb - sha256: 27a9412196046685d4e13a1e834b7f5b6fa704f1a1d05f3d4bd4f12e4fec22af + md5: b45c7c718d1e1cde0e7b0d9c463b617f + sha256: 3e7c172ca2c7cdd4bfae36c612ee29565681274c9e54d577ff48b4c5fafc1568 category: main optional: false - name: libcblas @@ -3251,11 +3251,10 @@ package: platform: win-64 dependencies: libblas: 3.9.0 - libopenblas: '*' - url: https://repo.prefix.dev/conda-forge/win-64/libcblas-3.9.0-33_ha692739_openblas.conda + url: https://repo.prefix.dev/conda-forge/win-64/libcblas-3.9.0-34_h2a3cdd5_mkl.conda hash: - md5: 335a221c3b7911438a6c54567c50b60d - sha256: 043041784348bc6b48b7065d2f71927f0c838933a26aa04c2934aeb607d0413f + md5: 25a019872ff471af70fd76d9aaaf1313 + sha256: e9f31d44e668822f6420bfaeda4aa74cd6c60d3671cf0b00262867f36ad5a8c1 category: main optional: false - name: libcurl @@ -3594,11 +3593,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://repo.prefix.dev/conda-forge/linux-64/libiconv-1.18-h4ce23a2_1.conda + libgcc: '>=14' + url: https://repo.prefix.dev/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda hash: - md5: e796ff8ddc598affdf7c173d6145f087 - sha256: 18a4afe14f731bfb9cf388659994263904d20111e42f841e9eea1bb6f91f4ab4 + md5: 915f5995e94f60e9a4826e0b0920ee88 + sha256: c467851a7312765447155e071752d7bf9bf44d610a5687e32706f480aad2833f category: main optional: false - name: libiconv @@ -3607,12 +3606,12 @@ package: platform: win-64 dependencies: ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/libiconv-1.18-h135ad9c_1.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/libiconv-1.18-hc1393d2_2.conda hash: - md5: 21fc5dba2cbcd8e5e26ff976a312122c - sha256: ea5ed2b362b6dbc4ba7188eb4eaf576146e3dfc6f4395e9f0db76ad77465f786 + md5: 64571d1dd6cdcfa25d0664a5950fdaa2 + sha256: 0dcdb1a5f01863ac4e8ba006a8b0dc1a02d2221ec3319b5915a1863254d7efa7 category: main optional: false - name: libjpeg-turbo @@ -3648,10 +3647,10 @@ package: platform: linux-64 dependencies: libblas: 3.9.0 - url: https://repo.prefix.dev/conda-forge/linux-64/liblapack-3.9.0-33_hc41d3b0_mkl.conda + url: https://repo.prefix.dev/conda-forge/linux-64/liblapack-3.9.0-34_hc41d3b0_mkl.conda hash: - md5: 8708ffe8e9393e576131ab8256372e07 - sha256: e00ce22c430b80a237daaaf2037ade05dbacffb2ad2bc61f75524fe347d37381 + md5: 77f13fe82430578ec2ff162fc89a13a0 + sha256: 167db8be4c6d6efaad88e4fb6c8649ab6d5277ea20592a7ae0d49733c2d276fd category: main optional: false - name: liblapack @@ -3660,11 +3659,10 @@ package: platform: win-64 dependencies: libblas: 3.9.0 - libopenblas: '*' - url: https://repo.prefix.dev/conda-forge/win-64/liblapack-3.9.0-33_h1c6d55f_openblas.conda + url: https://repo.prefix.dev/conda-forge/win-64/liblapack-3.9.0-34_hf9ab0e9_mkl.conda hash: - md5: 56a2a25e5cd7cd3b9d081ff6a7a74cdb - sha256: 449fc8454e2241cfaffc91c76c7fa67965d6f50d1c55eab56c6b94627b462d4d + md5: ba80d9feadfbafceafb0bf46d35f5886 + sha256: c65298d584551cba1b7a42537f8e0093ec9fd0e871fc80ddf9cf6ffa0efa25ae category: main optional: false - name: liblzma @@ -3725,21 +3723,6 @@ package: sha256: 927fe72b054277cde6cb82597d0fcf6baf127dcbce2e0a9d8925a68f1265eef5 category: main optional: false -- name: libopenblas - version: 0.3.30 - manager: conda - platform: win-64 - dependencies: - llvm-openmp: '>=20.1.8' - ucrt: '>=10.0.20348.0' - vc: '>=14.3,<15' - vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/libopenblas-0.3.30-openmp_h96ad2b0_1.conda - hash: - md5: e7ef216687ffda08478ef66bbd61c904 - sha256: ec84f1b1295ca7a024b677ca03ca12bf2373c037e9ba623921e0b4e360ca2cd0 - category: main - optional: false - name: libpng version: 1.6.50 manager: conda @@ -5817,7 +5800,7 @@ package: category: dev optional: true - name: pylint - version: 3.3.7 + version: 3.3.8 manager: conda platform: linux-64 dependencies: @@ -5831,14 +5814,14 @@ package: tomli: '>=1.1.0' tomlkit: '>=0.10.1' typing_extensions: '>=3.10.0' - url: https://repo.prefix.dev/conda-forge/noarch/pylint-3.3.7-pyhe01879c_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/pylint-3.3.8-pyhe01879c_0.conda hash: - md5: fad6b90165dcf39e3ac79de5dbc030a8 - sha256: 6a1dc262763220c9dc046400d8655ebe58ad4d81e872be7264af5137f906e220 + md5: f5ba3b2c52e855b67fc0abedcebc9675 + sha256: 5b19f8113694ff4e4f0d0870cf38357d9e84330ff6c2516127a65764289b6743 category: dev optional: true - name: pylint - version: 3.3.7 + version: 3.3.8 manager: conda platform: win-64 dependencies: @@ -5852,10 +5835,10 @@ package: tomli: '>=1.1.0' tomlkit: '>=0.10.1' typing_extensions: '>=3.10.0' - url: https://repo.prefix.dev/conda-forge/noarch/pylint-3.3.7-pyhe01879c_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/pylint-3.3.8-pyhe01879c_0.conda hash: - md5: fad6b90165dcf39e3ac79de5dbc030a8 - sha256: 6a1dc262763220c9dc046400d8655ebe58ad4d81e872be7264af5137f906e220 + md5: f5ba3b2c52e855b67fc0abedcebc9675 + sha256: 5b19f8113694ff4e4f0d0870cf38357d9e84330ff6c2516127a65764289b6743 category: dev optional: true - name: pymatsolver @@ -6028,6 +6011,7 @@ package: libzlib: '>=1.3.1,<2.0a0' ncurses: '>=6.5,<7.0a0' openssl: '>=3.5.0,<4.0a0' + pip: '' readline: '>=8.2,<9.0a0' tk: '>=8.6.13,<8.7.0a0' tzdata: '' @@ -6049,6 +6033,7 @@ package: libsqlite: '>=3.50.0,<4.0a0' libzlib: '>=1.3.1,<2.0a0' openssl: '>=3.5.0,<4.0a0' + pip: '' tk: '>=8.6.13,<8.7.0a0' tzdata: '' ucrt: '>=10.0.20348.0' @@ -6525,22 +6510,22 @@ package: category: dev optional: true - name: rpds-py - version: 0.26.0 + version: 0.27.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' + libgcc: '>=14' python: '' python_abi: 3.10.* - url: https://repo.prefix.dev/conda-forge/linux-64/rpds-py-0.26.0-py310hbcd0ec0_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/rpds-py-0.27.0-py310hd8f68c5_0.conda hash: - md5: e59b1ae4bfd0e42664fa3336bff5b4f0 - sha256: ae8cf73bae0b831a39fecd20caf7e706c95cc208dee0a5dc9b06735c54f48636 + md5: 40a2626d9988362dfaa3c5e888735bc8 + sha256: b306b7781493ed219a313ac82c8e16860beb077bce193b08aaa30242022a7ce7 category: dev optional: true - name: rpds-py - version: 0.26.0 + version: 0.27.0 manager: conda platform: win-64 dependencies: @@ -6549,10 +6534,10 @@ package: ucrt: '>=10.0.20348.0' vc: '>=14.3,<15' vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/rpds-py-0.26.0-py310h034784e_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/rpds-py-0.27.0-py310h034784e_0.conda hash: - md5: 76116295f7a1cdf33369fd1dacca4d0b - sha256: 81f6a3c5eb93343ef3d885efb01189e0c9fd6256a4c2f81cfcc48b254a170456 + md5: 351aba0937fb0ad39baafa89093fa134 + sha256: 12123ac68d90cdd4dfe79708860655bbc27551aea5ee6c8bc0d4de6e3456a016 category: dev optional: true - name: rtree @@ -7677,34 +7662,34 @@ package: category: main optional: false - name: tornado - version: 6.5.1 + version: 6.5.2 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' + libgcc: '>=14' python: '>=3.10,<3.11.0a0' python_abi: 3.10.* - url: https://repo.prefix.dev/conda-forge/linux-64/tornado-6.5.1-py310ha75aee5_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/tornado-6.5.2-py310h7c4b9e2_0.conda hash: - md5: 6f3da1072c0c4d2a1beb1e84615f7c9c - sha256: c24cc5952f1f1a84a848427382eecb04fc959987e19423e2c84e3281d0beec32 + md5: 1653341c07e20f4670eff86cad216515 + sha256: b7f1419c5ce178be8937cf6b0ef691f56be458e9aa6ce95d66026f8b05460772 category: main optional: false - name: tornado - version: 6.5.1 + version: 6.5.2 manager: conda platform: win-64 dependencies: python: '>=3.10,<3.11.0a0' python_abi: 3.10.* ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/tornado-6.5.1-py310ha8f682b_0.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/tornado-6.5.2-py310h29418f3_0.conda hash: - md5: 4c8f599990e386f3a0aba3f3bd8608da - sha256: 2a922fc165be81c2121cbd0ba5db6dfcbb69ebdc4e48b0f6fac40fde954602e0 + md5: 976f9142074884ea8f1d59806ad5fc21 + sha256: f87dbe5c74811d3466470ce9dbd8a5c27c6d2556b4967eae4cdba9fa0fbdef1a category: main optional: false - name: tqdm @@ -7784,27 +7769,27 @@ package: category: main optional: false - name: types-python-dateutil - version: 2.9.0.20250708 + version: 2.9.0.20250809 manager: conda platform: linux-64 dependencies: python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/types-python-dateutil-2.9.0.20250708-pyhd8ed1ab_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/types-python-dateutil-2.9.0.20250809-pyhd8ed1ab_0.conda hash: - md5: b6d4c200582ead6427f49a189e2c6d65 - sha256: 843bbc8e763a96b2b4ea568cf7918b6027853d03b5d8810ab77aaa9af472a6e2 + md5: 63a644e158c4f8eeca0d1290ac25e0cc + sha256: e54a82e474f4f4b6988c6c7186e5def628c840fca81f5d103e9f78f01d5fead1 category: dev optional: true - name: types-python-dateutil - version: 2.9.0.20250708 + version: 2.9.0.20250809 manager: conda platform: win-64 dependencies: python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/types-python-dateutil-2.9.0.20250708-pyhd8ed1ab_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/types-python-dateutil-2.9.0.20250809-pyhd8ed1ab_0.conda hash: - md5: b6d4c200582ead6427f49a189e2c6d65 - sha256: 843bbc8e763a96b2b4ea568cf7918b6027853d03b5d8810ab77aaa9af472a6e2 + md5: 63a644e158c4f8eeca0d1290ac25e0cc + sha256: e54a82e474f4f4b6988c6c7186e5def628c840fca81f5d103e9f78f01d5fead1 category: dev optional: true - name: typing-extensions @@ -8579,12 +8564,12 @@ package: numpy: '>=1.26.0,<1.27.0' pillow: '>=10.3.0,<10.4.0' pydantic: '>=2.5.2,<3.0.0' - url: git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 + url: git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 hash: - sha256: 41271883c83f9ad1c9f7b662335dd1d54f880547 + sha256: 570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 source: type: url - url: git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 + url: git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 category: main optional: false - name: geoh5py @@ -8596,16 +8581,16 @@ package: numpy: '>=1.26.0,<1.27.0' pillow: '>=10.3.0,<10.4.0' pydantic: '>=2.5.2,<3.0.0' - url: git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 + url: git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 hash: - sha256: 41271883c83f9ad1c9f7b662335dd1d54f880547 + sha256: 570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 source: type: url - url: git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 + url: git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 category: main optional: false - name: mira-simpeg - version: 0.23.0.1.post2.dev36+g2e1d9b31b + version: 0.23.0.1.post2.dev38+mira.ga1cf0ec4a manager: pip platform: linux-64 dependencies: @@ -8617,16 +8602,16 @@ package: numpy: '>=1.22' pymatsolver: '>=0.3' scipy: '>=1.8' - url: git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 + url: git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 hash: - sha256: 2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 + sha256: a1cf0ec4aa28705eb7de68cfedb255de6e590433 source: type: url - url: git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 + url: git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 category: main optional: false - name: mira-simpeg - version: 0.23.0.1.post2.dev36+g2e1d9b31b + version: 0.23.0.1.post2.dev38+mira.ga1cf0ec4a manager: pip platform: win-64 dependencies: @@ -8638,12 +8623,12 @@ package: numpy: '>=1.22' pymatsolver: '>=0.3' scipy: '>=1.8' - url: git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 + url: git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 hash: - sha256: 2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 + sha256: a1cf0ec4aa28705eb7de68cfedb255de6e590433 source: type: url - url: git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 + url: git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 category: main optional: false - name: octree-creation-app diff --git a/py-3.11.conda-lock.yml b/py-3.11.conda-lock.yml index 20af9fe8..8efeb06f 100644 --- a/py-3.11.conda-lock.yml +++ b/py-3.11.conda-lock.yml @@ -790,27 +790,27 @@ package: category: main optional: false - name: charset-normalizer - version: 3.4.2 + version: 3.4.3 manager: conda platform: linux-64 dependencies: python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.2-pyhd8ed1ab_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.3-pyhd8ed1ab_0.conda hash: - md5: 40fe4284b8b5835a9073a645139f35af - sha256: 535ae5dcda8022e31c6dc063eb344c80804c537a5a04afba43a845fa6fa130f5 + md5: 7e7d5ef1b9ed630e4a1c358d6bc62284 + sha256: 838d5a011f0e7422be6427becba3de743c78f3874ad2743c341accbba9bb2624 category: dev optional: true - name: charset-normalizer - version: 3.4.2 + version: 3.4.3 manager: conda platform: win-64 dependencies: python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.2-pyhd8ed1ab_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.3-pyhd8ed1ab_0.conda hash: - md5: 40fe4284b8b5835a9073a645139f35af - sha256: 535ae5dcda8022e31c6dc063eb344c80804c537a5a04afba43a845fa6fa130f5 + md5: 7e7d5ef1b9ed630e4a1c358d6bc62284 + sha256: 838d5a011f0e7422be6427becba3de743c78f3874ad2743c341accbba9bb2624 category: dev optional: true - name: click @@ -947,7 +947,7 @@ package: category: main optional: false - name: coverage - version: 7.10.2 + version: 7.10.3 manager: conda platform: linux-64 dependencies: @@ -956,14 +956,14 @@ package: python: '>=3.11,<3.12.0a0' python_abi: 3.11.* tomli: '' - url: https://repo.prefix.dev/conda-forge/linux-64/coverage-7.10.2-py311h3778330_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/coverage-7.10.3-py311h3778330_0.conda hash: - md5: db7bfab113866fc693c0e0dc0a17ce9e - sha256: 90d58aeaafa5e6723d54be7881aa0ee50026e51c278a778c9efab350df0b9954 + md5: ad2711c0c4366177466c4bb7d3dd6809 + sha256: 1da38824b3e4337f8bd3407936222677d6accc882a3badf39244600fc73f140e category: dev optional: true - name: coverage - version: 7.10.2 + version: 7.10.3 manager: conda platform: win-64 dependencies: @@ -973,10 +973,10 @@ package: ucrt: '>=10.0.20348.0' vc: '>=14.3,<15' vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/coverage-7.10.2-py311h3f79411_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/coverage-7.10.3-py311h3f79411_0.conda hash: - md5: 4ffaeacc144145419a2144161dcb4728 - sha256: 0f991f9ef21897cf27ed03bcfdc7f6dcd5ab01468ee199df46e2c7f047df6c2a + md5: 19738e4a2b8c0f882769c4ecf2663b09 + sha256: e046c26ed49e18fbaa258a5705691acec6aab8f2017e45ecea104a0d5e50c1be category: dev optional: true - name: cpython @@ -1587,35 +1587,35 @@ package: category: main optional: false - name: greenlet - version: 3.2.3 + version: 3.2.4 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - libstdcxx: '>=13' + libgcc: '>=14' + libstdcxx: '>=14' python: '>=3.11,<3.12.0a0' python_abi: 3.11.* - url: https://repo.prefix.dev/conda-forge/linux-64/greenlet-3.2.3-py311hfdbb021_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/greenlet-3.2.4-py311h1ddb823_0.conda hash: - md5: 6da38c50cd487d2e2b98f8421bbe0f6a - sha256: 29b46ef4338f297987bbaada35bada314de411d43b5a1edecb97b264214fa593 + md5: f15c0de21acba18ed30624272ebc0db0 + sha256: 088dc5f28b1633b3de85dc62311063232b1ebb7569ff5e56a287a96c18fad17a category: dev optional: true - name: greenlet - version: 3.2.3 + version: 3.2.4 manager: conda platform: win-64 dependencies: python: '>=3.11,<3.12.0a0' python_abi: 3.11.* ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/greenlet-3.2.3-py311hda3d55a_0.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/greenlet-3.2.4-py311h3e6a449_0.conda hash: - md5: 00d29571d33ae7e1c74486a3e53a953a - sha256: ee485694a61f45822deca736b6b16eed55dc2fdc0e3fc5ede7c52aed98756795 + md5: 91a7a2876b2dae42a5092092eb339ca0 + sha256: f6fa06fc512649e4025bf9536c74fb79711aed212b7206f2e6d3f44d2ec9b0e9 category: dev optional: true - name: h11 @@ -2952,47 +2952,48 @@ package: category: dev optional: true - name: keyutils - version: 1.6.1 + version: 1.6.3 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=10.3.0' - url: https://repo.prefix.dev/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=13' + url: https://repo.prefix.dev/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda hash: - md5: 30186d27e2c9fa62b45fb1476b7200e3 - sha256: 150c05a6e538610ca7c43beb3a40d65c90537497a4f6a5f4d15ec0451b6f5ebb + md5: b38117a3c920364aff79f870c984b4a3 + sha256: 0960d06048a7185d3542d850986d807c6e37ca2e644342dd0c72feefcf26c2a4 category: main optional: false - name: kiwisolver - version: 1.4.8 + version: 1.4.9 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - libstdcxx: '>=13' - python: '>=3.11,<3.12.0a0' + libgcc: '>=14' + libstdcxx: '>=14' + python: '' python_abi: 3.11.* - url: https://repo.prefix.dev/conda-forge/linux-64/kiwisolver-1.4.8-py311hd18a35c_1.conda + url: https://repo.prefix.dev/conda-forge/linux-64/kiwisolver-1.4.9-py311h724c32c_0.conda hash: - md5: bb17b97b0c0d86e052134bf21af5c03d - sha256: 1a1f73000796c0429ecbcc8a869b9f64e6e95baa49233c0777bfab8fb26cd75a + md5: 9c869454a8fdb86fabd93df6cf6075a3 + sha256: 51813a024ff9ed172ebd8042ad5927400ece08da2498f815cb61f93c6a455b34 category: main optional: false - name: kiwisolver - version: 1.4.8 + version: 1.4.9 manager: conda platform: win-64 dependencies: - python: '>=3.11,<3.12.0a0' + python: '' python_abi: 3.11.* ucrt: '>=10.0.20348.0' vc: '>=14.3,<15' vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/kiwisolver-1.4.8-py311h3fd045d_1.conda + url: https://repo.prefix.dev/conda-forge/win-64/kiwisolver-1.4.9-py311h275cad7_0.conda hash: - md5: b6946e850c2df74a0b0aede30c85fbee - sha256: 223c426ba94e58f9e7b283403e4cd8b2388a88104914b4f22129ca2cb643c634 + md5: 6be4fb00d6e23f9d027262dc503efd11 + sha256: 8654a25270345bc32d72e4346bc923f25cd8791092736c32b2c82a68d81710a0 category: main optional: false - name: krb5 @@ -3181,10 +3182,10 @@ package: platform: linux-64 dependencies: mkl: '>=2024.2.2,<2025.0a0' - url: https://repo.prefix.dev/conda-forge/linux-64/libblas-3.9.0-33_hfdb39a5_mkl.conda + url: https://repo.prefix.dev/conda-forge/linux-64/libblas-3.9.0-34_hfdb39a5_mkl.conda hash: - md5: 9f89883004e428c65c462fbb07618125 - sha256: 8b686362a6c6396fa529e444b32c9b089926da781f4db04953edfc1aa1bba239 + md5: 2ab9d1b88cf3e99b2d060b17072fe8eb + sha256: 633de259502cc410738462a070afaeb904a7bba9b475916bd26c9e0d7e12383c category: main optional: false - name: libblas @@ -3192,12 +3193,11 @@ package: manager: conda platform: win-64 dependencies: - libopenblas: 0.3.30 - llvm-openmp: '>=20.1.8' - url: https://repo.prefix.dev/conda-forge/win-64/libblas-3.9.0-33_h706a439_openblas.conda + mkl: '>=2024.2.2,<2025.0a0' + url: https://repo.prefix.dev/conda-forge/win-64/libblas-3.9.0-34_h5709861_mkl.conda hash: - md5: cae3b10447e3f89f12b416fa53a18d92 - sha256: 33a271a0d8a3ff1618752b3fa99e3809d5f0783fd6272fd25809c4e634e8aa87 + md5: a64dcde5f27b8e0e413ddfc56151664c + sha256: d7865fcc7d29b22e4111ababec49083851a84bb3025748eed65184be765b6e7d category: main optional: false - name: libbrotlicommon @@ -3291,10 +3291,10 @@ package: platform: linux-64 dependencies: libblas: 3.9.0 - url: https://repo.prefix.dev/conda-forge/linux-64/libcblas-3.9.0-33_h372d94f_mkl.conda + url: https://repo.prefix.dev/conda-forge/linux-64/libcblas-3.9.0-34_h372d94f_mkl.conda hash: - md5: 71bd2fa1924b99978688f736343ff9eb - sha256: 27a9412196046685d4e13a1e834b7f5b6fa704f1a1d05f3d4bd4f12e4fec22af + md5: b45c7c718d1e1cde0e7b0d9c463b617f + sha256: 3e7c172ca2c7cdd4bfae36c612ee29565681274c9e54d577ff48b4c5fafc1568 category: main optional: false - name: libcblas @@ -3303,11 +3303,10 @@ package: platform: win-64 dependencies: libblas: 3.9.0 - libopenblas: '*' - url: https://repo.prefix.dev/conda-forge/win-64/libcblas-3.9.0-33_ha692739_openblas.conda + url: https://repo.prefix.dev/conda-forge/win-64/libcblas-3.9.0-34_h2a3cdd5_mkl.conda hash: - md5: 335a221c3b7911438a6c54567c50b60d - sha256: 043041784348bc6b48b7065d2f71927f0c838933a26aa04c2934aeb607d0413f + md5: 25a019872ff471af70fd76d9aaaf1313 + sha256: e9f31d44e668822f6420bfaeda4aa74cd6c60d3671cf0b00262867f36ad5a8c1 category: main optional: false - name: libcurl @@ -3646,11 +3645,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://repo.prefix.dev/conda-forge/linux-64/libiconv-1.18-h4ce23a2_1.conda + libgcc: '>=14' + url: https://repo.prefix.dev/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda hash: - md5: e796ff8ddc598affdf7c173d6145f087 - sha256: 18a4afe14f731bfb9cf388659994263904d20111e42f841e9eea1bb6f91f4ab4 + md5: 915f5995e94f60e9a4826e0b0920ee88 + sha256: c467851a7312765447155e071752d7bf9bf44d610a5687e32706f480aad2833f category: main optional: false - name: libiconv @@ -3659,12 +3658,12 @@ package: platform: win-64 dependencies: ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/libiconv-1.18-h135ad9c_1.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/libiconv-1.18-hc1393d2_2.conda hash: - md5: 21fc5dba2cbcd8e5e26ff976a312122c - sha256: ea5ed2b362b6dbc4ba7188eb4eaf576146e3dfc6f4395e9f0db76ad77465f786 + md5: 64571d1dd6cdcfa25d0664a5950fdaa2 + sha256: 0dcdb1a5f01863ac4e8ba006a8b0dc1a02d2221ec3319b5915a1863254d7efa7 category: main optional: false - name: libjpeg-turbo @@ -3700,10 +3699,10 @@ package: platform: linux-64 dependencies: libblas: 3.9.0 - url: https://repo.prefix.dev/conda-forge/linux-64/liblapack-3.9.0-33_hc41d3b0_mkl.conda + url: https://repo.prefix.dev/conda-forge/linux-64/liblapack-3.9.0-34_hc41d3b0_mkl.conda hash: - md5: 8708ffe8e9393e576131ab8256372e07 - sha256: e00ce22c430b80a237daaaf2037ade05dbacffb2ad2bc61f75524fe347d37381 + md5: 77f13fe82430578ec2ff162fc89a13a0 + sha256: 167db8be4c6d6efaad88e4fb6c8649ab6d5277ea20592a7ae0d49733c2d276fd category: main optional: false - name: liblapack @@ -3712,11 +3711,10 @@ package: platform: win-64 dependencies: libblas: 3.9.0 - libopenblas: '*' - url: https://repo.prefix.dev/conda-forge/win-64/liblapack-3.9.0-33_h1c6d55f_openblas.conda + url: https://repo.prefix.dev/conda-forge/win-64/liblapack-3.9.0-34_hf9ab0e9_mkl.conda hash: - md5: 56a2a25e5cd7cd3b9d081ff6a7a74cdb - sha256: 449fc8454e2241cfaffc91c76c7fa67965d6f50d1c55eab56c6b94627b462d4d + md5: ba80d9feadfbafceafb0bf46d35f5886 + sha256: c65298d584551cba1b7a42537f8e0093ec9fd0e871fc80ddf9cf6ffa0efa25ae category: main optional: false - name: liblzma @@ -3777,21 +3775,6 @@ package: sha256: 927fe72b054277cde6cb82597d0fcf6baf127dcbce2e0a9d8925a68f1265eef5 category: main optional: false -- name: libopenblas - version: 0.3.30 - manager: conda - platform: win-64 - dependencies: - llvm-openmp: '>=20.1.8' - ucrt: '>=10.0.20348.0' - vc: '>=14.3,<15' - vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/libopenblas-0.3.30-openmp_h96ad2b0_1.conda - hash: - md5: e7ef216687ffda08478ef66bbd61c904 - sha256: ec84f1b1295ca7a024b677ca03ca12bf2373c037e9ba623921e0b4e360ca2cd0 - category: main - optional: false - name: libpng version: 1.6.50 manager: conda @@ -5871,7 +5854,7 @@ package: category: dev optional: true - name: pylint - version: 3.3.7 + version: 3.3.8 manager: conda platform: linux-64 dependencies: @@ -5885,14 +5868,14 @@ package: tomli: '>=1.1.0' tomlkit: '>=0.10.1' typing_extensions: '>=3.10.0' - url: https://repo.prefix.dev/conda-forge/noarch/pylint-3.3.7-pyhe01879c_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/pylint-3.3.8-pyhe01879c_0.conda hash: - md5: fad6b90165dcf39e3ac79de5dbc030a8 - sha256: 6a1dc262763220c9dc046400d8655ebe58ad4d81e872be7264af5137f906e220 + md5: f5ba3b2c52e855b67fc0abedcebc9675 + sha256: 5b19f8113694ff4e4f0d0870cf38357d9e84330ff6c2516127a65764289b6743 category: dev optional: true - name: pylint - version: 3.3.7 + version: 3.3.8 manager: conda platform: win-64 dependencies: @@ -5906,10 +5889,10 @@ package: tomli: '>=1.1.0' tomlkit: '>=0.10.1' typing_extensions: '>=3.10.0' - url: https://repo.prefix.dev/conda-forge/noarch/pylint-3.3.7-pyhe01879c_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/pylint-3.3.8-pyhe01879c_0.conda hash: - md5: fad6b90165dcf39e3ac79de5dbc030a8 - sha256: 6a1dc262763220c9dc046400d8655ebe58ad4d81e872be7264af5137f906e220 + md5: f5ba3b2c52e855b67fc0abedcebc9675 + sha256: 5b19f8113694ff4e4f0d0870cf38357d9e84330ff6c2516127a65764289b6743 category: dev optional: true - name: pymatsolver @@ -6082,6 +6065,7 @@ package: libzlib: '>=1.3.1,<2.0a0' ncurses: '>=6.5,<7.0a0' openssl: '>=3.5.0,<4.0a0' + pip: '' readline: '>=8.2,<9.0a0' tk: '>=8.6.13,<8.7.0a0' tzdata: '' @@ -6103,6 +6087,7 @@ package: libsqlite: '>=3.50.0,<4.0a0' libzlib: '>=1.3.1,<2.0a0' openssl: '>=3.5.0,<4.0a0' + pip: '' tk: '>=8.6.13,<8.7.0a0' tzdata: '' ucrt: '>=10.0.20348.0' @@ -6579,22 +6564,22 @@ package: category: dev optional: true - name: rpds-py - version: 0.26.0 + version: 0.27.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' + libgcc: '>=14' python: '' python_abi: 3.11.* - url: https://repo.prefix.dev/conda-forge/linux-64/rpds-py-0.26.0-py311hdae7d1d_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/rpds-py-0.27.0-py311h902ca64_0.conda hash: - md5: 875fcd394b4ea7df4f73827db7674a82 - sha256: 552e826f953f974f20573c8fb061136a24ca0456c73ecf99e0da24c2aed281e8 + md5: 397e7e07356db9425069fa86e8920404 + sha256: c32892bc6ec30f932424c6a02f2b6de1062581a1cc942127792ec7980ddc31aa category: dev optional: true - name: rpds-py - version: 0.26.0 + version: 0.27.0 manager: conda platform: win-64 dependencies: @@ -6603,10 +6588,10 @@ package: ucrt: '>=10.0.20348.0' vc: '>=14.3,<15' vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/rpds-py-0.26.0-py311hf51aa87_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/rpds-py-0.27.0-py311hf51aa87_0.conda hash: - md5: fde2d272a1f0659b7c0cc8b6465976b9 - sha256: 100b94d884fe06a7d97ad6ddcefa4a125fa86a8d65f0144fe19526e372fef789 + md5: 2380617b3e31a99fff5fc05b1eef6b40 + sha256: ec07fee2b2d325b4a6c1284663eebfa2a85298c626a6040c86b5ea72f8bf7df5 category: dev optional: true - name: rtree @@ -7731,34 +7716,34 @@ package: category: main optional: false - name: tornado - version: 6.5.1 + version: 6.5.2 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' + libgcc: '>=14' python: '>=3.11,<3.12.0a0' python_abi: 3.11.* - url: https://repo.prefix.dev/conda-forge/linux-64/tornado-6.5.1-py311h9ecbd09_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/tornado-6.5.2-py311h49ec1c0_0.conda hash: - md5: 24e9f474abd101554b7a91313b9dfad6 - sha256: 66cc98dbf7aafe11a4cb886a8278a559c1616c098ee9f36d41697eaeb0830a4d + md5: 8e82bf1a7614ac43096a5c8d726030a3 + sha256: 99b43e96b71271bf906d87d9dceeb1b5d7f79d56d2cd58374e528b56830c99af category: main optional: false - name: tornado - version: 6.5.1 + version: 6.5.2 manager: conda platform: win-64 dependencies: python: '>=3.11,<3.12.0a0' python_abi: 3.11.* ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/tornado-6.5.1-py311he736701_0.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/tornado-6.5.2-py311h3485c13_0.conda hash: - md5: 3b58e6c2e18a83cf64ecc550513b940c - sha256: c7b28b96f21fa9cf675b051fe3039682038debf69ab8a3aa25cfdf3fa4aa9f8e + md5: 4f7ddc08f9282d519d5c1316e540d4ad + sha256: 288fc2b231d4b9895fefb50066881531a8d148f5cb01aa99eb9d335bf00b6447 category: main optional: false - name: tqdm @@ -7838,27 +7823,27 @@ package: category: main optional: false - name: types-python-dateutil - version: 2.9.0.20250708 + version: 2.9.0.20250809 manager: conda platform: linux-64 dependencies: python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/types-python-dateutil-2.9.0.20250708-pyhd8ed1ab_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/types-python-dateutil-2.9.0.20250809-pyhd8ed1ab_0.conda hash: - md5: b6d4c200582ead6427f49a189e2c6d65 - sha256: 843bbc8e763a96b2b4ea568cf7918b6027853d03b5d8810ab77aaa9af472a6e2 + md5: 63a644e158c4f8eeca0d1290ac25e0cc + sha256: e54a82e474f4f4b6988c6c7186e5def628c840fca81f5d103e9f78f01d5fead1 category: dev optional: true - name: types-python-dateutil - version: 2.9.0.20250708 + version: 2.9.0.20250809 manager: conda platform: win-64 dependencies: python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/types-python-dateutil-2.9.0.20250708-pyhd8ed1ab_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/types-python-dateutil-2.9.0.20250809-pyhd8ed1ab_0.conda hash: - md5: b6d4c200582ead6427f49a189e2c6d65 - sha256: 843bbc8e763a96b2b4ea568cf7918b6027853d03b5d8810ab77aaa9af472a6e2 + md5: 63a644e158c4f8eeca0d1290ac25e0cc + sha256: e54a82e474f4f4b6988c6c7186e5def628c840fca81f5d103e9f78f01d5fead1 category: dev optional: true - name: typing-extensions @@ -8664,12 +8649,12 @@ package: numpy: '>=1.26.0,<1.27.0' pillow: '>=10.3.0,<10.4.0' pydantic: '>=2.5.2,<3.0.0' - url: git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 + url: git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 hash: - sha256: 41271883c83f9ad1c9f7b662335dd1d54f880547 + sha256: 570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 source: type: url - url: git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 + url: git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 category: main optional: false - name: geoh5py @@ -8681,16 +8666,16 @@ package: numpy: '>=1.26.0,<1.27.0' pillow: '>=10.3.0,<10.4.0' pydantic: '>=2.5.2,<3.0.0' - url: git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 + url: git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 hash: - sha256: 41271883c83f9ad1c9f7b662335dd1d54f880547 + sha256: 570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 source: type: url - url: git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 + url: git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 category: main optional: false - name: mira-simpeg - version: 0.23.0.1.post2.dev36+g2e1d9b31b + version: 0.23.0.1.post2.dev38+mira.ga1cf0ec4a manager: pip platform: linux-64 dependencies: @@ -8702,16 +8687,16 @@ package: numpy: '>=1.22' pymatsolver: '>=0.3' scipy: '>=1.8' - url: git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 + url: git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 hash: - sha256: 2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 + sha256: a1cf0ec4aa28705eb7de68cfedb255de6e590433 source: type: url - url: git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 + url: git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 category: main optional: false - name: mira-simpeg - version: 0.23.0.1.post2.dev36+g2e1d9b31b + version: 0.23.0.1.post2.dev38+mira.ga1cf0ec4a manager: pip platform: win-64 dependencies: @@ -8723,12 +8708,12 @@ package: numpy: '>=1.22' pymatsolver: '>=0.3' scipy: '>=1.8' - url: git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 + url: git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 hash: - sha256: 2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 + sha256: a1cf0ec4aa28705eb7de68cfedb255de6e590433 source: type: url - url: git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 + url: git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 category: main optional: false - name: octree-creation-app diff --git a/py-3.12.conda-lock.yml b/py-3.12.conda-lock.yml index 922892c8..1beea778 100644 --- a/py-3.12.conda-lock.yml +++ b/py-3.12.conda-lock.yml @@ -790,27 +790,27 @@ package: category: main optional: false - name: charset-normalizer - version: 3.4.2 + version: 3.4.3 manager: conda platform: linux-64 dependencies: python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.2-pyhd8ed1ab_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.3-pyhd8ed1ab_0.conda hash: - md5: 40fe4284b8b5835a9073a645139f35af - sha256: 535ae5dcda8022e31c6dc063eb344c80804c537a5a04afba43a845fa6fa130f5 + md5: 7e7d5ef1b9ed630e4a1c358d6bc62284 + sha256: 838d5a011f0e7422be6427becba3de743c78f3874ad2743c341accbba9bb2624 category: dev optional: true - name: charset-normalizer - version: 3.4.2 + version: 3.4.3 manager: conda platform: win-64 dependencies: python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.2-pyhd8ed1ab_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.3-pyhd8ed1ab_0.conda hash: - md5: 40fe4284b8b5835a9073a645139f35af - sha256: 535ae5dcda8022e31c6dc063eb344c80804c537a5a04afba43a845fa6fa130f5 + md5: 7e7d5ef1b9ed630e4a1c358d6bc62284 + sha256: 838d5a011f0e7422be6427becba3de743c78f3874ad2743c341accbba9bb2624 category: dev optional: true - name: click @@ -947,7 +947,7 @@ package: category: main optional: false - name: coverage - version: 7.10.2 + version: 7.10.3 manager: conda platform: linux-64 dependencies: @@ -956,14 +956,14 @@ package: python: '>=3.12,<3.13.0a0' python_abi: 3.12.* tomli: '' - url: https://repo.prefix.dev/conda-forge/linux-64/coverage-7.10.2-py312h8a5da7c_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/coverage-7.10.3-py312h8a5da7c_0.conda hash: - md5: f8830a2249f4b8a5f9c33cb44ad5c31a - sha256: 211754cf4be7ce64b11955509fcab60cd33090633c362d4aface4a5320adbf77 + md5: 47633b6600c6ff2b4930b5b0b4704a53 + sha256: 9e170e3cebebedd2e685aac8cab09f3ad7489c7f9de2d014c1d46e4b4270ab28 category: dev optional: true - name: coverage - version: 7.10.2 + version: 7.10.3 manager: conda platform: win-64 dependencies: @@ -973,10 +973,10 @@ package: ucrt: '>=10.0.20348.0' vc: '>=14.3,<15' vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/coverage-7.10.2-py312h05f76fc_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/coverage-7.10.3-py312h05f76fc_0.conda hash: - md5: 3e5dfd3ffc8d4ad4edf44c3aa1eac327 - sha256: 0dea2bdde9900460581011fefd79f78cdcd1b23b235f88fd29b17e5f4d5b2fc3 + md5: e539a0d708db866075cb03f692e7e10c + sha256: 9aece073f835373d95572db67a9a412bdca9c7aac83283517be3b3788b50be3a category: dev optional: true - name: cpython @@ -1587,35 +1587,35 @@ package: category: main optional: false - name: greenlet - version: 3.2.3 + version: 3.2.4 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - libstdcxx: '>=13' + libgcc: '>=14' + libstdcxx: '>=14' python: '>=3.12,<3.13.0a0' python_abi: 3.12.* - url: https://repo.prefix.dev/conda-forge/linux-64/greenlet-3.2.3-py312h2ec8cdc_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/greenlet-3.2.4-py312h1289d80_0.conda hash: - md5: 78380a74e2375eb8244290e181b2738b - sha256: 99a0e1937ba0a6ec31802d7d732270873ee39f5ad9235626d21dc0edcb3840b6 + md5: 20613c19390027c191c9a882a62c10c4 + sha256: 319724de8686c45f5d927d2b1eea4e589a831ea53fa0919c965f9e95f9b0884e category: dev optional: true - name: greenlet - version: 3.2.3 + version: 3.2.4 manager: conda platform: win-64 dependencies: python: '>=3.12,<3.13.0a0' python_abi: 3.12.* ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/greenlet-3.2.3-py312h275cf98_0.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/greenlet-3.2.4-py312hbb81ca0_0.conda hash: - md5: 0697d4cc1f64299d43f26dbdfc2c6ee1 - sha256: dc86c99941221b6c056407934a46de85fddc8ef1d4c1d031f8819d8f957f61c9 + md5: e7ccdb35c3fb14af0f12991f7ebe7977 + sha256: 08914fa8b92386a7017184d60c006e235cbe57821dd21a20c64367a0990b0479 category: dev optional: true - name: h11 @@ -2952,47 +2952,48 @@ package: category: dev optional: true - name: keyutils - version: 1.6.1 + version: 1.6.3 manager: conda platform: linux-64 dependencies: - libgcc-ng: '>=10.3.0' - url: https://repo.prefix.dev/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 + __glibc: '>=2.17,<3.0.a0' + libgcc: '>=13' + url: https://repo.prefix.dev/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda hash: - md5: 30186d27e2c9fa62b45fb1476b7200e3 - sha256: 150c05a6e538610ca7c43beb3a40d65c90537497a4f6a5f4d15ec0451b6f5ebb + md5: b38117a3c920364aff79f870c984b4a3 + sha256: 0960d06048a7185d3542d850986d807c6e37ca2e644342dd0c72feefcf26c2a4 category: main optional: false - name: kiwisolver - version: 1.4.8 + version: 1.4.9 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - libstdcxx: '>=13' - python: '>=3.12,<3.13.0a0' + libgcc: '>=14' + libstdcxx: '>=14' + python: '' python_abi: 3.12.* - url: https://repo.prefix.dev/conda-forge/linux-64/kiwisolver-1.4.8-py312h68727a3_1.conda + url: https://repo.prefix.dev/conda-forge/linux-64/kiwisolver-1.4.9-py312h0a2e395_0.conda hash: - md5: a8ea818e46addfa842348701a9dbe8f8 - sha256: 34814cea4b92d17237211769f2ec5b739a328849b152a2f5736183c52d48cafc + md5: f1f7cfc42b0fa6adb4c304d609077a78 + sha256: abe5ba0c956c5b830c237a5aaf50516ac9ebccf3f9fd9ffb18a5a11640f43677 category: main optional: false - name: kiwisolver - version: 1.4.8 + version: 1.4.9 manager: conda platform: win-64 dependencies: - python: '>=3.12,<3.13.0a0' + python: '' python_abi: 3.12.* ucrt: '>=10.0.20348.0' vc: '>=14.3,<15' vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/kiwisolver-1.4.8-py312hf90b1b7_1.conda + url: https://repo.prefix.dev/conda-forge/win-64/kiwisolver-1.4.9-py312h78d62e6_0.conda hash: - md5: c3b0a086ab765183c024e0f4001fd8bc - sha256: 91e452fca2de7cc94374c99d09e3e984adc48eb90f41f69be0716b20015a55a3 + md5: 051ec1f2aae07891d9169fe9927c1cc5 + sha256: 6f7497788ade7349b30d78e4bd1aa017085fe84624240228f6287376d2714c85 category: main optional: false - name: krb5 @@ -3181,10 +3182,10 @@ package: platform: linux-64 dependencies: mkl: '>=2024.2.2,<2025.0a0' - url: https://repo.prefix.dev/conda-forge/linux-64/libblas-3.9.0-33_hfdb39a5_mkl.conda + url: https://repo.prefix.dev/conda-forge/linux-64/libblas-3.9.0-34_hfdb39a5_mkl.conda hash: - md5: 9f89883004e428c65c462fbb07618125 - sha256: 8b686362a6c6396fa529e444b32c9b089926da781f4db04953edfc1aa1bba239 + md5: 2ab9d1b88cf3e99b2d060b17072fe8eb + sha256: 633de259502cc410738462a070afaeb904a7bba9b475916bd26c9e0d7e12383c category: main optional: false - name: libblas @@ -3192,12 +3193,11 @@ package: manager: conda platform: win-64 dependencies: - libopenblas: 0.3.30 - llvm-openmp: '>=20.1.8' - url: https://repo.prefix.dev/conda-forge/win-64/libblas-3.9.0-33_h706a439_openblas.conda + mkl: '>=2024.2.2,<2025.0a0' + url: https://repo.prefix.dev/conda-forge/win-64/libblas-3.9.0-34_h5709861_mkl.conda hash: - md5: cae3b10447e3f89f12b416fa53a18d92 - sha256: 33a271a0d8a3ff1618752b3fa99e3809d5f0783fd6272fd25809c4e634e8aa87 + md5: a64dcde5f27b8e0e413ddfc56151664c + sha256: d7865fcc7d29b22e4111ababec49083851a84bb3025748eed65184be765b6e7d category: main optional: false - name: libbrotlicommon @@ -3291,10 +3291,10 @@ package: platform: linux-64 dependencies: libblas: 3.9.0 - url: https://repo.prefix.dev/conda-forge/linux-64/libcblas-3.9.0-33_h372d94f_mkl.conda + url: https://repo.prefix.dev/conda-forge/linux-64/libcblas-3.9.0-34_h372d94f_mkl.conda hash: - md5: 71bd2fa1924b99978688f736343ff9eb - sha256: 27a9412196046685d4e13a1e834b7f5b6fa704f1a1d05f3d4bd4f12e4fec22af + md5: b45c7c718d1e1cde0e7b0d9c463b617f + sha256: 3e7c172ca2c7cdd4bfae36c612ee29565681274c9e54d577ff48b4c5fafc1568 category: main optional: false - name: libcblas @@ -3303,11 +3303,10 @@ package: platform: win-64 dependencies: libblas: 3.9.0 - libopenblas: '*' - url: https://repo.prefix.dev/conda-forge/win-64/libcblas-3.9.0-33_ha692739_openblas.conda + url: https://repo.prefix.dev/conda-forge/win-64/libcblas-3.9.0-34_h2a3cdd5_mkl.conda hash: - md5: 335a221c3b7911438a6c54567c50b60d - sha256: 043041784348bc6b48b7065d2f71927f0c838933a26aa04c2934aeb607d0413f + md5: 25a019872ff471af70fd76d9aaaf1313 + sha256: e9f31d44e668822f6420bfaeda4aa74cd6c60d3671cf0b00262867f36ad5a8c1 category: main optional: false - name: libcurl @@ -3646,11 +3645,11 @@ package: platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' - url: https://repo.prefix.dev/conda-forge/linux-64/libiconv-1.18-h4ce23a2_1.conda + libgcc: '>=14' + url: https://repo.prefix.dev/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda hash: - md5: e796ff8ddc598affdf7c173d6145f087 - sha256: 18a4afe14f731bfb9cf388659994263904d20111e42f841e9eea1bb6f91f4ab4 + md5: 915f5995e94f60e9a4826e0b0920ee88 + sha256: c467851a7312765447155e071752d7bf9bf44d610a5687e32706f480aad2833f category: main optional: false - name: libiconv @@ -3659,12 +3658,12 @@ package: platform: win-64 dependencies: ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/libiconv-1.18-h135ad9c_1.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/libiconv-1.18-hc1393d2_2.conda hash: - md5: 21fc5dba2cbcd8e5e26ff976a312122c - sha256: ea5ed2b362b6dbc4ba7188eb4eaf576146e3dfc6f4395e9f0db76ad77465f786 + md5: 64571d1dd6cdcfa25d0664a5950fdaa2 + sha256: 0dcdb1a5f01863ac4e8ba006a8b0dc1a02d2221ec3319b5915a1863254d7efa7 category: main optional: false - name: libjpeg-turbo @@ -3700,10 +3699,10 @@ package: platform: linux-64 dependencies: libblas: 3.9.0 - url: https://repo.prefix.dev/conda-forge/linux-64/liblapack-3.9.0-33_hc41d3b0_mkl.conda + url: https://repo.prefix.dev/conda-forge/linux-64/liblapack-3.9.0-34_hc41d3b0_mkl.conda hash: - md5: 8708ffe8e9393e576131ab8256372e07 - sha256: e00ce22c430b80a237daaaf2037ade05dbacffb2ad2bc61f75524fe347d37381 + md5: 77f13fe82430578ec2ff162fc89a13a0 + sha256: 167db8be4c6d6efaad88e4fb6c8649ab6d5277ea20592a7ae0d49733c2d276fd category: main optional: false - name: liblapack @@ -3712,11 +3711,10 @@ package: platform: win-64 dependencies: libblas: 3.9.0 - libopenblas: '*' - url: https://repo.prefix.dev/conda-forge/win-64/liblapack-3.9.0-33_h1c6d55f_openblas.conda + url: https://repo.prefix.dev/conda-forge/win-64/liblapack-3.9.0-34_hf9ab0e9_mkl.conda hash: - md5: 56a2a25e5cd7cd3b9d081ff6a7a74cdb - sha256: 449fc8454e2241cfaffc91c76c7fa67965d6f50d1c55eab56c6b94627b462d4d + md5: ba80d9feadfbafceafb0bf46d35f5886 + sha256: c65298d584551cba1b7a42537f8e0093ec9fd0e871fc80ddf9cf6ffa0efa25ae category: main optional: false - name: liblzma @@ -3777,21 +3775,6 @@ package: sha256: 927fe72b054277cde6cb82597d0fcf6baf127dcbce2e0a9d8925a68f1265eef5 category: main optional: false -- name: libopenblas - version: 0.3.30 - manager: conda - platform: win-64 - dependencies: - llvm-openmp: '>=20.1.8' - ucrt: '>=10.0.20348.0' - vc: '>=14.3,<15' - vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/libopenblas-0.3.30-openmp_h96ad2b0_1.conda - hash: - md5: e7ef216687ffda08478ef66bbd61c904 - sha256: ec84f1b1295ca7a024b677ca03ca12bf2373c037e9ba623921e0b4e360ca2cd0 - category: main - optional: false - name: libpng version: 1.6.50 manager: conda @@ -5871,7 +5854,7 @@ package: category: dev optional: true - name: pylint - version: 3.3.7 + version: 3.3.8 manager: conda platform: linux-64 dependencies: @@ -5885,14 +5868,14 @@ package: tomli: '>=1.1.0' tomlkit: '>=0.10.1' typing_extensions: '>=3.10.0' - url: https://repo.prefix.dev/conda-forge/noarch/pylint-3.3.7-pyhe01879c_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/pylint-3.3.8-pyhe01879c_0.conda hash: - md5: fad6b90165dcf39e3ac79de5dbc030a8 - sha256: 6a1dc262763220c9dc046400d8655ebe58ad4d81e872be7264af5137f906e220 + md5: f5ba3b2c52e855b67fc0abedcebc9675 + sha256: 5b19f8113694ff4e4f0d0870cf38357d9e84330ff6c2516127a65764289b6743 category: dev optional: true - name: pylint - version: 3.3.7 + version: 3.3.8 manager: conda platform: win-64 dependencies: @@ -5906,10 +5889,10 @@ package: tomli: '>=1.1.0' tomlkit: '>=0.10.1' typing_extensions: '>=3.10.0' - url: https://repo.prefix.dev/conda-forge/noarch/pylint-3.3.7-pyhe01879c_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/pylint-3.3.8-pyhe01879c_0.conda hash: - md5: fad6b90165dcf39e3ac79de5dbc030a8 - sha256: 6a1dc262763220c9dc046400d8655ebe58ad4d81e872be7264af5137f906e220 + md5: f5ba3b2c52e855b67fc0abedcebc9675 + sha256: 5b19f8113694ff4e4f0d0870cf38357d9e84330ff6c2516127a65764289b6743 category: dev optional: true - name: pymatsolver @@ -6082,6 +6065,7 @@ package: libzlib: '>=1.3.1,<2.0a0' ncurses: '>=6.5,<7.0a0' openssl: '>=3.5.0,<4.0a0' + pip: '' readline: '>=8.2,<9.0a0' tk: '>=8.6.13,<8.7.0a0' tzdata: '' @@ -6103,6 +6087,7 @@ package: libsqlite: '>=3.50.0,<4.0a0' libzlib: '>=1.3.1,<2.0a0' openssl: '>=3.5.0,<4.0a0' + pip: '' tk: '>=8.6.13,<8.7.0a0' tzdata: '' ucrt: '>=10.0.20348.0' @@ -6579,22 +6564,22 @@ package: category: dev optional: true - name: rpds-py - version: 0.26.0 + version: 0.27.0 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' + libgcc: '>=14' python: '' python_abi: 3.12.* - url: https://repo.prefix.dev/conda-forge/linux-64/rpds-py-0.26.0-py312h680f630_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/rpds-py-0.27.0-py312h868fb18_0.conda hash: - md5: 5b251d4dd547d8b5970152bae2cc1600 - sha256: bb051358e7550fd8ef9129def61907ad03853604f5e641108b1dbe2ce93247cc + md5: 3d3d11430ec826a845a0e9d6ccefa294 + sha256: cfc9c79f0e2658754b02efb890fe3c835d865ed0535155787815ae16e56dbe9c category: dev optional: true - name: rpds-py - version: 0.26.0 + version: 0.27.0 manager: conda platform: win-64 dependencies: @@ -6603,10 +6588,10 @@ package: ucrt: '>=10.0.20348.0' vc: '>=14.3,<15' vc14_runtime: '>=14.44.35208' - url: https://repo.prefix.dev/conda-forge/win-64/rpds-py-0.26.0-py312hdabe01f_0.conda + url: https://repo.prefix.dev/conda-forge/win-64/rpds-py-0.27.0-py312hdabe01f_0.conda hash: - md5: 353d4c6bd46906805189af9a7394b0d1 - sha256: 665d771c3d4a028dc49c45e47634ef3adac80500ed6206ba6837885f02b0947f + md5: f504b7d8f88ecdadb851a9cb77645b99 + sha256: 779d7b805ebf5f3ab48c2e4556f2b02861253ab4948266a55ba6e2c5c4642fc3 category: dev optional: true - name: rtree @@ -7731,34 +7716,34 @@ package: category: main optional: false - name: tornado - version: 6.5.1 + version: 6.5.2 manager: conda platform: linux-64 dependencies: __glibc: '>=2.17,<3.0.a0' - libgcc: '>=13' + libgcc: '>=14' python: '>=3.12,<3.13.0a0' python_abi: 3.12.* - url: https://repo.prefix.dev/conda-forge/linux-64/tornado-6.5.1-py312h66e93f0_0.conda + url: https://repo.prefix.dev/conda-forge/linux-64/tornado-6.5.2-py312h4c3975b_0.conda hash: - md5: c532a6ee766bed75c4fa0c39e959d132 - sha256: c96be4c8bca2431d7ad7379bad94ed6d4d25cd725ae345540a531d9e26e148c9 + md5: 82dacd4832dcde0c2b7888248a3b3d7c + sha256: 891965f8e495ad5cef399db03a13df48df7add06ae131f4b77a88749c74b2060 category: main optional: false - name: tornado - version: 6.5.1 + version: 6.5.2 manager: conda platform: win-64 dependencies: python: '>=3.12,<3.13.0a0' python_abi: 3.12.* ucrt: '>=10.0.20348.0' - vc: '>=14.2,<15' - vc14_runtime: '>=14.29.30139' - url: https://repo.prefix.dev/conda-forge/win-64/tornado-6.5.1-py312h4389bb4_0.conda + vc: '>=14.3,<15' + vc14_runtime: '>=14.44.35208' + url: https://repo.prefix.dev/conda-forge/win-64/tornado-6.5.2-py312he06e257_0.conda hash: - md5: 06b156bbbe1597eb5ea30b931cadaa32 - sha256: cec4ab331788122f7f01dd02f57f8e21d9ae14553dedd6389d7dfeceb3592399 + md5: ef13034aef592637ce6e2dc1ca126bca + sha256: bc5f5b20aa13e3ba343685c54d75a02c737ae6a5fe778908caf563d9f2273cb2 category: main optional: false - name: tqdm @@ -7838,27 +7823,27 @@ package: category: main optional: false - name: types-python-dateutil - version: 2.9.0.20250708 + version: 2.9.0.20250809 manager: conda platform: linux-64 dependencies: python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/types-python-dateutil-2.9.0.20250708-pyhd8ed1ab_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/types-python-dateutil-2.9.0.20250809-pyhd8ed1ab_0.conda hash: - md5: b6d4c200582ead6427f49a189e2c6d65 - sha256: 843bbc8e763a96b2b4ea568cf7918b6027853d03b5d8810ab77aaa9af472a6e2 + md5: 63a644e158c4f8eeca0d1290ac25e0cc + sha256: e54a82e474f4f4b6988c6c7186e5def628c840fca81f5d103e9f78f01d5fead1 category: dev optional: true - name: types-python-dateutil - version: 2.9.0.20250708 + version: 2.9.0.20250809 manager: conda platform: win-64 dependencies: python: '>=3.9' - url: https://repo.prefix.dev/conda-forge/noarch/types-python-dateutil-2.9.0.20250708-pyhd8ed1ab_0.conda + url: https://repo.prefix.dev/conda-forge/noarch/types-python-dateutil-2.9.0.20250809-pyhd8ed1ab_0.conda hash: - md5: b6d4c200582ead6427f49a189e2c6d65 - sha256: 843bbc8e763a96b2b4ea568cf7918b6027853d03b5d8810ab77aaa9af472a6e2 + md5: 63a644e158c4f8eeca0d1290ac25e0cc + sha256: e54a82e474f4f4b6988c6c7186e5def628c840fca81f5d103e9f78f01d5fead1 category: dev optional: true - name: typing-extensions @@ -8664,12 +8649,12 @@ package: numpy: '>=1.26.0,<1.27.0' pillow: '>=10.3.0,<10.4.0' pydantic: '>=2.5.2,<3.0.0' - url: git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 + url: git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 hash: - sha256: 41271883c83f9ad1c9f7b662335dd1d54f880547 + sha256: 570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 source: type: url - url: git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 + url: git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 category: main optional: false - name: geoh5py @@ -8681,16 +8666,16 @@ package: numpy: '>=1.26.0,<1.27.0' pillow: '>=10.3.0,<10.4.0' pydantic: '>=2.5.2,<3.0.0' - url: git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 + url: git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 hash: - sha256: 41271883c83f9ad1c9f7b662335dd1d54f880547 + sha256: 570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 source: type: url - url: git+https://github.com/MiraGeoscience/geoh5py.git@41271883c83f9ad1c9f7b662335dd1d54f880547 + url: git+https://github.com/MiraGeoscience/geoh5py.git@570ea996ae7e48ab1b8b971b23c9c73b7f5637b2 category: main optional: false - name: mira-simpeg - version: 0.23.0.1.post2.dev36+g2e1d9b31b + version: 0.23.0.1.post2.dev38+mira.ga1cf0ec4a manager: pip platform: linux-64 dependencies: @@ -8702,16 +8687,16 @@ package: numpy: '>=1.22' pymatsolver: '>=0.3' scipy: '>=1.8' - url: git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 + url: git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 hash: - sha256: 2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 + sha256: a1cf0ec4aa28705eb7de68cfedb255de6e590433 source: type: url - url: git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 + url: git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 category: main optional: false - name: mira-simpeg - version: 0.23.0.1.post2.dev36+g2e1d9b31b + version: 0.23.0.1.post2.dev38+mira.ga1cf0ec4a manager: pip platform: win-64 dependencies: @@ -8723,12 +8708,12 @@ package: numpy: '>=1.22' pymatsolver: '>=0.3' scipy: '>=1.8' - url: git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 + url: git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 hash: - sha256: 2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 + sha256: a1cf0ec4aa28705eb7de68cfedb255de6e590433 source: type: url - url: git+https://github.com/MiraGeoscience/simpeg.git@2e1d9b31ba74e900b7f41f903b73ec2b4e4217b4 + url: git+https://github.com/MiraGeoscience/simpeg.git@a1cf0ec4aa28705eb7de68cfedb255de6e590433 category: main optional: false - name: octree-creation-app