From 6701c077dcb0f5059ff055ca650a8d19fda035ba Mon Sep 17 00:00:00 2001 From: dominiquef Date: Thu, 15 May 2025 11:38:07 -0700 Subject: [PATCH 01/12] Add legacy v0.2 jsons --- .../v0.2.1/direct_current_forward_2d.ui.json | 275 ++++++ .../v0.2.1/direct_current_forward_3d.ui.json | 178 ++++ .../direct_current_forward_pseudo3d.ui.json | 235 +++++ .../direct_current_inversion_2d.ui.json | 605 ++++++++++++ .../direct_current_inversion_3d.ui.json | 562 +++++++++++ .../direct_current_inversion_pseudo3d.ui.json | 575 +++++++++++ .../legacy/v0.2.1/fem_forward.ui.json | 184 ++++ .../legacy/v0.2.1/fem_inversion.ui.json | 590 +++++++++++ .../legacy/v0.2.1/gravity_forward.ui.json | 262 +++++ .../legacy/v0.2.1/gravity_inversion.ui.json | 825 ++++++++++++++++ .../induced_polarization_forward_2d.ui.json | 275 ++++++ .../induced_polarization_forward_3d.ui.json | 218 +++++ ...uced_polarization_forward_pseudo3d.ui.json | 272 ++++++ .../induced_polarization_inversion_2d.ui.json | 615 ++++++++++++ .../induced_polarization_inversion_3d.ui.json | 602 ++++++++++++ ...ed_polarization_inversion_pseudo3d.ui.json | 612 ++++++++++++ .../joint_cross_gradient_inversion.ui.json | 464 +++++++++ .../v0.2.1/joint_surveys_inversion.ui.json | 543 +++++++++++ .../v0.2.1/magnetic_scalar_forward.ui.json | 258 +++++ .../v0.2.1/magnetic_scalar_inversion.ui.json | 855 ++++++++++++++++ .../v0.2.1/magnetic_vector_forward.ui.json | 290 ++++++ .../v0.2.1/magnetic_vector_inversion.ui.json | 919 ++++++++++++++++++ .../v0.2.1/magnetotellurics_forward.ui.json | 259 +++++ .../v0.2.1/magnetotellurics_inversion.ui.json | 809 +++++++++++++++ .../legacy/v0.2.1/tdem_forward.ui.json | 203 ++++ .../legacy/v0.2.1/tdem_inversion.ui.json | 626 ++++++++++++ .../legacy/v0.2.1/tipper_forward.ui.json | 235 +++++ .../legacy/v0.2.1/tipper_inversion.ui.json | 689 +++++++++++++ 28 files changed, 13035 insertions(+) create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/direct_current_forward_2d.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/direct_current_forward_3d.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/direct_current_forward_pseudo3d.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/direct_current_inversion_2d.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/direct_current_inversion_3d.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/direct_current_inversion_pseudo3d.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/fem_forward.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/fem_inversion.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/gravity_forward.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/gravity_inversion.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_forward_2d.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_forward_3d.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_forward_pseudo3d.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_inversion_2d.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_inversion_3d.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_inversion_pseudo3d.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/joint_cross_gradient_inversion.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/joint_surveys_inversion.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/magnetic_scalar_forward.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/magnetic_scalar_inversion.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/magnetic_vector_forward.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/magnetic_vector_inversion.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/magnetotellurics_forward.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/magnetotellurics_inversion.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/tdem_forward.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/tdem_inversion.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/tipper_forward.ui.json create mode 100644 simpeg_drivers-assets/legacy/v0.2.1/tipper_inversion.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/direct_current_forward_2d.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/direct_current_forward_2d.ui.json new file mode 100644 index 00000000..c5b4cbe6 --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/direct_current_forward_2d.ui.json @@ -0,0 +1,275 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Direct Current (DC) 2D Forward", + "icon": "PotentialElectrode", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "direct current 2d", + "forward_only": true, + "data_object": { + "main": true, + "group": "Survey", + "label": "Object", + "meshType": "{275ecee9-9c24-4378-bf94-65f3c5fbe163}", + "value": "" + }, + "z_from_topo": { + "group": "Survey", + "main": true, + "label": "Surface survey", + "tooltip": "Uncheck if borehole data is present", + "value": true + }, + "line_object": { + "association": "Cell", + "dataType": "Referenced", + "group": "Survey", + "main": true, + "label": "Line ID", + "parent": "data_object", + "value": "", + "tooltip": "Selects the data representing the different lines in the survey." + }, + "line_id": { + "group": "Survey", + "main": true, + "min": 1, + "label": "Line number", + "value": 1, + "tooltip": "Selects the line of data to be processed." + }, + "receivers_radar_drape": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data pre-processing", + "label": "Z radar offset", + "tooltip": "Apply a non-homogeneous offset to survey object from radar channel.", + "optional": true, + "parent": "data_object", + "value": "", + "enabled": false, + "visible": false + }, + "receivers_offset_z": { + "group": "Data pre-processing", + "label": "Z static offset", + "optional": true, + "enabled": false, + "value": 0.0, + "visible": false + }, + "gps_receivers_offset": "", + "potential_channel_bool": true, + "mesh": { + "group": "Mesh and models", + "main": true, + "optional": true, + "enabled": false, + "label": "Mesh", + "meshType": "{c94968ea-cf7d-11eb-b8bc-0242ac130003}", + "value": "" + }, + "u_cell_size": { + "min": 0.0, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "main": true, + "enabled": true, + "label": "Easting core cell size (m)", + "value": 25.0 + }, + "v_cell_size": { + "min": 0.0, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "main": true, + "enabled": true, + "label": "Northing core cell size (m)", + "value": 25.0 + }, + "depth_core": { + "min": 0.0, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "main": true, + "enabled": true, + "label": "Depth of core (m)", + "value": 500.0 + }, + "horizontal_padding": { + "min": 0.0, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "main": true, + "enabled": true, + "label": "Horizontal padding (m)", + "value": 1000.0 + }, + "vertical_padding": { + "min": 0.0, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "main": true, + "label": "Vertical padding (m)", + "value": 1000.0 + }, + "expansion_factor": { + "main": true, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "label": "Expansion factor", + "value": 1.1 + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "starting_model": { + "association": "Cell", + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Value(s)", + "property": "", + "value": 0.001 + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": 1, + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "", + "gradient_type": { + "choiceList": [ + "total", + "components" + ], + "group": "Sparse/blocky model", + "label": "Gradient type", + "value": "total", + "verbose": 3, + "tooltip": "Choose whether the IRLS weights for regularization terms are updated using total or partial gradients." + } +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/direct_current_forward_3d.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/direct_current_forward_3d.ui.json new file mode 100644 index 00000000..99aacd6b --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/direct_current_forward_3d.ui.json @@ -0,0 +1,178 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Direct Current (DC) 3D Forward", + "icon": "PotentialElectrode", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "direct current 3d", + "forward_only": true, + "data_object": { + "main": true, + "group": "Survey", + "label": "Object", + "meshType": "{275ecee9-9c24-4378-bf94-65f3c5fbe163}", + "value": "" + }, + "z_from_topo": { + "group": "Survey", + "main": true, + "label": "Surface survey", + "tooltip": "Uncheck if borehole data is present", + "value": true + }, + "potential_channel_bool": true, + "mesh": { + "group": "Mesh and models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "tooltip": "Select a mesh for the inversion." + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "starting_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Value(s)", + "property": "", + "value": 0.001 + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": { + "group": "Compute", + "label": "Number of tiles", + "parent": "data_object", + "isValue": true, + "property": "", + "value": 1, + "min": 1, + "max": 1000, + "verbose": 2, + "tooltip": "Splits the objective function into spatial tiles for distributed computation using the Dask library." + }, + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "" +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/direct_current_forward_pseudo3d.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/direct_current_forward_pseudo3d.ui.json new file mode 100644 index 00000000..615c47d6 --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/direct_current_forward_pseudo3d.ui.json @@ -0,0 +1,235 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Direct Current (DC) 2D Batch Forward", + "icon": "PotentialElectrode", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "direct current pseudo 3d", + "forward_only": true, + "data_object": { + "main": true, + "group": "Survey", + "label": "Object", + "meshType": "{275ecee9-9c24-4378-bf94-65f3c5fbe163}", + "value": "" + }, + "line_object": { + "association": "Cell", + "dataType": "Referenced", + "group": "Survey", + "main": true, + "label": "Line ID", + "parent": "data_object", + "value": "", + "tooltip": "Selects the data representing the different lines in the survey." + }, + "z_from_topo": { + "group": "Data pre-processing", + "label": "Take z from topography", + "tooltip": "Sets survey elevation to topography before any offsets are applied.", + "value": false, + "verbose": 3, + "visible": false + }, + "potential_channel_bool": true, + "u_cell_size": { + "min": 0.0, + "group": "Mesh and models", + "main": true, + "enabled": true, + "label": "Easting core cell size (m)", + "value": 25.0 + }, + "v_cell_size": { + "min": 0.0, + "group": "Mesh and models", + "main": true, + "enabled": true, + "label": "Northing core cell size (m)", + "value": 25.0 + }, + "depth_core": { + "min": 0.0, + "group": "Mesh and models", + "main": true, + "enabled": true, + "label": "Depth of core (m)", + "value": 500.0 + }, + "horizontal_padding": { + "min": 0.0, + "group": "Mesh and models", + "main": true, + "enabled": true, + "label": "Horizontal padding (m)", + "value": 1000.0 + }, + "vertical_padding": { + "min": 0.0, + "group": "Mesh and models", + "main": true, + "dependencyType": "disabled", + "label": "Vertical padding (m)", + "value": 1000.0 + }, + "expansion_factor": { + "main": true, + "group": "Mesh and models", + "label": "Expansion factor", + "value": 1.1 + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "optional": true, + "enabled": false, + "value": "", + "visible": true + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "starting_model": { + "association": "Cell", + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Value(s)", + "property": "", + "value": 0.001 + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": 1, + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "files_only": { + "label": "Generate files only", + "group": "Python run preferences", + "main": true, + "value": false + }, + "cleanup": { + "main": true, + "group": "Python run preferences", + "label": "Clean directory", + "value": false + }, + "distributed_workers": "" +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/direct_current_inversion_2d.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/direct_current_inversion_2d.ui.json new file mode 100644 index 00000000..a34ce7b9 --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/direct_current_inversion_2d.ui.json @@ -0,0 +1,605 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Direct Current (DC) 2D Inversion", + "icon": "PotentialElectrode", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "direct current 2d", + "forward_only": false, + "data_object": { + "main": true, + "group": "Data", + "label": "Object", + "meshType": "{275ecee9-9c24-4378-bf94-65f3c5fbe163}", + "value": "" + }, + "z_from_topo": { + "group": "Data", + "main": true, + "label": "Surface survey", + "tooltip": "Uncheck if borehole data is present", + "value": true + }, + "line_object": { + "association": "Cell", + "dataType": "Referenced", + "group": "Data", + "main": true, + "label": "Line ID", + "parent": "data_object", + "value": "", + "tooltip": "Selects the data representing the different lines in the survey." + }, + "line_id": { + "group": "Data", + "main": true, + "min": 1, + "label": "Line number", + "value": 1, + "tooltip": "Selects the line of data to be processed." + }, + "receivers_radar_drape": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data pre-processing", + "label": "Z radar offset", + "tooltip": "Apply a non-homogeneous offset to survey object from radar channel.", + "optional": true, + "parent": "data_object", + "value": "", + "enabled": false, + "visible": false + }, + "receivers_offset_z": { + "group": "Data pre-processing", + "label": "Z static offset", + "optional": true, + "enabled": false, + "value": 0.0, + "visible": false + }, + "gps_receivers_offset": "", + "potential_channel": { + "association": "Cell", + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Potential (V/I)", + "tooltip": "Potential: voltage normalized by current", + "parent": "data_object", + "value": "" + }, + "potential_uncertainty": { + "association": "Cell", + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "property": "", + "value": 1.0 + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "optional": true, + "enabled": false, + "label": "Mesh", + "meshType": "{c94968ea-cf7d-11eb-b8bc-0242ac130003}", + "value": "" + }, + "u_cell_size": { + "min": 0.0, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "main": true, + "enabled": true, + "label": "Easting core cell size (m)", + "value": 25.0 + }, + "v_cell_size": { + "min": 0.0, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "main": true, + "enabled": true, + "label": "Northing core cell size (m)", + "value": 25.0 + }, + "depth_core": { + "min": 0.0, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "main": true, + "enabled": true, + "label": "Depth of core (m)", + "value": 500.0 + }, + "horizontal_padding": { + "min": 0.0, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "main": true, + "enabled": true, + "label": "Horizontal padding (m)", + "value": 1000.0 + }, + "vertical_padding": { + "min": 0.0, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "main": true, + "label": "Vertical padding (m)", + "value": 1000.0 + }, + "expansion_factor": { + "main": true, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "label": "Expansion factor", + "value": 1.1 + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "starting_model": { + "association": "Cell", + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Initial", + "property": "", + "value": 0.001 + }, + "reference_model": { + "association": "Cell", + "dataType": "Float", + "main": true, + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Reference", + "property": "", + "optional": true, + "enabled": false, + "value": 0.001 + }, + "lower_bound": { + "association": "Cell", + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Lower bound", + "property": "", + "optional": true, + "value": 1e-08, + "enabled": false + }, + "upper_bound": { + "association": "Cell", + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Upper bound", + "property": "", + "optional": true, + "value": 100.0, + "enabled": false + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "inversion_style": "voxel", + "alpha_s": { + "min": 0.0, + "group": "Regularization", + "label": "Reference weight", + "value": 1.0, + "tooltip": "Constant ratio compared to other weights. Larger values result in models that remain close to the reference model", + "dependency": "reference_model", + "dependencyType": "enabled", + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_x": { + "min": 0.0, + "group": "Regularization", + "label": "X-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in x biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_z": { + "min": 0.0, + "group": "Regularization", + "label": "Z-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in z biased smoothess", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "s_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Smallness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 0.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": true, + "enabled": true, + "dependency": "reference_model", + "dependencyType": "enabled", + "tooltip": "Lp-norm used in the smallness term of the objective function." + }, + "x_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "X-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the x-smoothness term of the objective function." + }, + "z_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Z-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the z-smoothness term of the objective function." + }, + "gradient_type": { + "choiceList": [ + "total", + "components" + ], + "group": "Sparse/blocky model", + "label": "Gradient type", + "value": "total", + "verbose": 3, + "tooltip": "Choose whether the IRLS weights for regularization terms are updated using total or partial gradients." + }, + "max_irls_iterations": { + "min": 0, + "group": "Sparse/blocky model", + "label": "Maximum IRLS iterations", + "tooltip": "Incomplete Re-weighted Least Squares iterations for non-L2 problems", + "value": 25, + "enabled": true, + "verbose": 2 + }, + "starting_chi_factor": { + "group": "Sparse/blocky model", + "label": "IRLS start chi factor", + "enabled": true, + "value": 1.0, + "tooltip": "This chi factor will be used to determine the misfit threshold after which IRLS iterations begin.", + "verbose": 3 + }, + "beta_tol": { + "group": "Update IRLS directive", + "label": "Beta tolerance", + "value": 0.5, + "min": 0.0001, + "verbose": 3, + "visible": false + }, + "prctile": { + "group": "Update IRLS directive", + "label": "Percentile", + "value": 95, + "max": 100, + "min": 5, + "verbose": 3, + "visible": false + }, + "chi_factor": { + "min": 0.1, + "max": 20.0, + "precision": 1, + "lineEdit": false, + "group": "Cooling schedule/target", + "label": "Chi factor", + "value": 1.0, + "enabled": true, + "tooltip": "The global target data misfit value." + }, + "auto_scale_misfits": { + "group": "Cooling schedule/target", + "label": "Auto-scale misfits", + "value": true, + "verbose": 3, + "visible": true, + "tooltip": "Whether to auto-scale misfits functions (tile, frequency, joint methods) based on chi-factor." + }, + "initial_beta_ratio": { + "min": 0.0, + "precision": 2, + "group": "Cooling schedule/target", + "optional": true, + "enabled": true, + "label": "Initial beta ratio", + "value": 100.0, + "verbose": 2, + "tooltip": "Estimate the trade-off parameter by scaling the ratio between the largest derivatives in the objective function gradients." + }, + "initial_beta": { + "min": 0.0, + "group": "Cooling schedule/target", + "optional": true, + "enabled": false, + "dependency": "initial_beta_ratio", + "dependencyType": "disabled", + "label": "Initial beta", + "value": 1.0, + "verbose": 2, + "tooltip": "Trade-off parameter between data misfit and regularization." + }, + "coolingFactor": { + "group": "Cooling schedule/target", + "label": "Beta cooling factor", + "tooltip": "Each beta cooling step will be calculated by dividing the current beta by this factor.", + "value": 2.0, + "min": 1.1, + "max": 100, + "precision": 1, + "lineEdit": false, + "verbose": 2 + }, + "coolingRate": { + "group": "Optimization", + "label": "Iterations per beta", + "value": 2, + "min": 1, + "LineEdit": false, + "max": 10, + "precision": 1, + "verbose": 2, + "enabled": true, + "tooltip": "Set the number of iterations per beta value. Use higher values for more non-linear optimization problems." + }, + "max_global_iterations": { + "min": 1, + "lineEdit": false, + "group": "Optimization", + "label": "Maximum iterations", + "tooltip": "Number of L2 and IRLS iterations combined", + "value": 50, + "enabled": true + }, + "max_line_search_iterations": { + "group": "Optimization", + "label": "Maximum number of line searches", + "value": 20, + "min": 1, + "enabled": true, + "verbose": 3, + "tooltip": "Perform an Armijo backtracking linesearch for the provided number of iterations." + }, + "max_cg_iterations": { + "min": 0, + "group": "Optimization", + "label": "Maximum CG iterations", + "value": 30, + "enabled": true, + "verbose": 2 + }, + "tol_cg": { + "min": 0, + "group": "Optimization", + "label": "Conjugate gradient tolerance", + "value": 0.0001, + "enabled": true, + "verbose": 3 + }, + "f_min_change": { + "group": "Optimization", + "label": "Minimum change in objective function", + "value": 0.01, + "min": 1e-06, + "verbose": 3, + "enabled": true, + "tooltip": "Minimum decrease in regularization beyond which the IRLS procedure is deemed to have completed." + }, + "sens_wts_threshold": { + "group": "Update sensitivity weights directive", + "tooltip": "Update sensitivity weight threshold", + "label": "Threshold (%)", + "value": 0.001, + "max": 100.0, + "min": 0.0, + "precision": 3, + "enabled": true, + "verbose": 2 + }, + "every_iteration_bool": { + "group": "Update sensitivity weights directive", + "tooltip": "Update weights at every iteration", + "label": "Every iteration", + "value": true, + "verbose": 2, + "enabled": true + }, + "save_sensitivities": { + "group": "Update sensitivity weights directive", + "label": "Save sensitivities", + "tooltip": "Save the summed square row sensitivities to geoh5.", + "value": false + }, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": 1, + "store_sensitivities": { + "choiceList": [ + "disk", + "ram" + ], + "group": "Compute", + "label": "Storage device", + "tooltip": "Use disk on a fast local SSD, and RAM elsewhere", + "value": "ram" + }, + "max_ram": "", + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "", + "potential_channel_bool": true +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/direct_current_inversion_3d.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/direct_current_inversion_3d.ui.json new file mode 100644 index 00000000..7b351571 --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/direct_current_inversion_3d.ui.json @@ -0,0 +1,562 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Direct Current (DC) 3D Inversion", + "icon": "PotentialElectrode", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "direct current 3d", + "forward_only": false, + "data_object": { + "main": true, + "group": "Data", + "label": "Object", + "meshType": "{275ecee9-9c24-4378-bf94-65f3c5fbe163}", + "value": "" + }, + "z_from_topo": { + "group": "Data", + "main": true, + "label": "Surface survey", + "tooltip": "Uncheck if borehole data is present", + "value": true + }, + "potential_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Potential (V/I)", + "parent": "data_object", + "value": "" + }, + "potential_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "property": "", + "value": 1.0 + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "tooltip": "Select a mesh for the inversion." + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "starting_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Initial", + "property": "", + "value": 0.001 + }, + "reference_model": { + "association": [ + "Cell", + "Vertex" + ], + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Reference", + "property": "", + "optional": true, + "enabled": false, + "value": 0.0 + }, + "lower_bound": { + "association": [ + "Cell", + "Vertex" + ], + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Lower bound", + "property": "", + "optional": true, + "value": 1e-08, + "enabled": false + }, + "upper_bound": { + "association": [ + "Cell", + "Vertex" + ], + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Upper bound", + "property": "", + "optional": true, + "value": 100.0, + "enabled": false + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "inversion_style": "voxel", + "alpha_s": { + "min": 0.0, + "group": "Regularization", + "label": "Reference weight", + "value": 1.0, + "tooltip": "Constant ratio compared to other weights. Larger values result in models that remain close to the reference model", + "dependency": "reference_model", + "dependencyType": "enabled", + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_x": { + "min": 0.0, + "group": "Regularization", + "label": "X-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in x biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_y": { + "min": 0.0, + "group": "Regularization", + "label": "Y-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in y biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_z": { + "min": 0.0, + "group": "Regularization", + "label": "Z-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in z biased smoothess", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "s_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Smallness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 0.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": true, + "enabled": true, + "dependency": "reference_model", + "dependencyType": "enabled", + "tooltip": "Lp-norm used in the smallness term of the objective function." + }, + "x_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "X-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the x-smoothness term of the objective function." + }, + "y_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Y-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the y-smoothness term of the objective function." + }, + "z_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Z-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the z-smoothness term of the objective function." + }, + "gradient_type": { + "choiceList": [ + "total", + "components" + ], + "group": "Sparse/blocky model", + "label": "Gradient type", + "value": "total", + "verbose": 3, + "tooltip": "Choose whether the IRLS weights for regularization terms are updated using total or partial gradients." + }, + "max_irls_iterations": { + "min": 0, + "group": "Sparse/blocky model", + "label": "Maximum IRLS iterations", + "tooltip": "Incomplete Re-weighted Least Squares iterations for non-L2 problems", + "value": 25, + "enabled": true, + "verbose": 2 + }, + "starting_chi_factor": { + "group": "Sparse/blocky model", + "label": "IRLS start chi factor", + "enabled": true, + "value": 1.0, + "tooltip": "This chi factor will be used to determine the misfit threshold after which IRLS iterations begin.", + "verbose": 3 + }, + "beta_tol": { + "group": "Update IRLS directive", + "label": "Beta tolerance", + "value": 0.5, + "min": 0.0001, + "verbose": 3, + "visible": false + }, + "prctile": { + "group": "Update IRLS directive", + "label": "Percentile", + "value": 95, + "max": 100, + "min": 5, + "verbose": 3, + "visible": false + }, + "chi_factor": { + "min": 0.1, + "max": 20.0, + "precision": 1, + "lineEdit": false, + "group": "Cooling schedule/target", + "label": "Chi factor", + "value": 1.0, + "enabled": true, + "tooltip": "The global target data misfit value." + }, + "auto_scale_misfits": { + "group": "Cooling schedule/target", + "label": "Auto-scale misfits", + "value": true, + "verbose": 3, + "visible": true, + "tooltip": "Whether to auto-scale misfits functions (tile, frequency, joint methods) based on chi-factor." + }, + "initial_beta_ratio": { + "min": 0.0, + "precision": 2, + "group": "Cooling schedule/target", + "optional": true, + "enabled": true, + "label": "Initial beta ratio", + "value": 100.0, + "verbose": 2, + "tooltip": "Estimate the trade-off parameter by scaling the ratio between the largest derivatives in the objective function gradients." + }, + "initial_beta": { + "min": 0.0, + "group": "Cooling schedule/target", + "optional": true, + "enabled": false, + "dependency": "initial_beta_ratio", + "dependencyType": "disabled", + "label": "Initial beta", + "value": 1.0, + "verbose": 2, + "tooltip": "Trade-off parameter between data misfit and regularization." + }, + "coolingFactor": { + "group": "Cooling schedule/target", + "label": "Beta cooling factor", + "tooltip": "Each beta cooling step will be calculated by dividing the current beta by this factor.", + "value": 2.0, + "min": 1.1, + "max": 100, + "precision": 1, + "lineEdit": false, + "verbose": 2 + }, + "coolingRate": { + "group": "Optimization", + "label": "Iterations per beta", + "value": 2, + "min": 1, + "LineEdit": false, + "max": 10, + "precision": 1, + "verbose": 2, + "enabled": true, + "tooltip": "Set the number of iterations per beta value. Use higher values for more non-linear optimization problems." + }, + "max_global_iterations": { + "min": 1, + "lineEdit": false, + "group": "Optimization", + "label": "Maximum iterations", + "tooltip": "Number of L2 and IRLS iterations combined", + "value": 50, + "enabled": true + }, + "max_line_search_iterations": { + "group": "Optimization", + "label": "Maximum number of line searches", + "value": 20, + "min": 1, + "enabled": true, + "verbose": 3, + "tooltip": "Perform an Armijo backtracking linesearch for the provided number of iterations." + }, + "max_cg_iterations": { + "min": 0, + "group": "Optimization", + "label": "Maximum CG iterations", + "value": 30, + "enabled": true, + "verbose": 2 + }, + "tol_cg": { + "min": 0, + "group": "Optimization", + "label": "Conjugate gradient tolerance", + "value": 0.0001, + "enabled": true, + "verbose": 3 + }, + "f_min_change": { + "group": "Optimization", + "label": "Minimum change in objective function", + "value": 0.01, + "min": 1e-06, + "verbose": 3, + "enabled": true, + "tooltip": "Minimum decrease in regularization beyond which the IRLS procedure is deemed to have completed." + }, + "sens_wts_threshold": { + "group": "Update sensitivity weights directive", + "tooltip": "Update sensitivity weight threshold", + "label": "Threshold (%)", + "value": 0.001, + "max": 100.0, + "min": 0.0, + "precision": 3, + "enabled": true, + "verbose": 2 + }, + "every_iteration_bool": { + "group": "Update sensitivity weights directive", + "tooltip": "Update weights at every iteration", + "label": "Every iteration", + "value": true, + "verbose": 2, + "enabled": true + }, + "save_sensitivities": { + "group": "Update sensitivity weights directive", + "label": "Save sensitivities", + "tooltip": "Save the summed square row sensitivities to geoh5.", + "value": false + }, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": { + "group": "Compute", + "label": "Number of tiles", + "parent": "data_object", + "isValue": true, + "property": "", + "value": 1, + "min": 1, + "max": 1000, + "verbose": 2, + "tooltip": "Splits the objective function into spatial tiles for distributed computation using the Dask library." + }, + "store_sensitivities": { + "choiceList": [ + "disk", + "ram" + ], + "group": "Compute", + "label": "Storage device", + "tooltip": "Use disk on a fast local SSD, and RAM elsewhere", + "value": "ram" + }, + "max_ram": "", + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "", + "potential_channel_bool": true +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/direct_current_inversion_pseudo3d.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/direct_current_inversion_pseudo3d.ui.json new file mode 100644 index 00000000..ce546a34 --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/direct_current_inversion_pseudo3d.ui.json @@ -0,0 +1,575 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Direct Current (DC) 2D Batch Inversion", + "icon": "PotentialElectrode", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "direct current pseudo 3d", + "forward_only": false, + "data_object": { + "main": true, + "group": "Data", + "label": "Object", + "meshType": "{275ecee9-9c24-4378-bf94-65f3c5fbe163}", + "value": "" + }, + "line_object": { + "association": "Cell", + "dataType": "Referenced", + "group": "Data", + "main": true, + "label": "Line ID", + "parent": "data_object", + "value": "", + "tooltip": "Selects the data representing the different lines in the survey." + }, + "z_from_topo": { + "group": "Data pre-processing", + "label": "Take z from topography", + "tooltip": "Sets survey elevation to topography before any offsets are applied.", + "value": false, + "verbose": 3, + "visible": false + }, + "potential_channel": { + "association": "Cell", + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Potential (V/I)", + "parent": "data_object", + "value": "" + }, + "potential_uncertainty": { + "association": "Cell", + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "property": "", + "value": 1.0 + }, + "u_cell_size": { + "min": 0.0, + "group": "Mesh and models", + "main": true, + "enabled": true, + "label": "Easting core cell size (m)", + "value": 25.0 + }, + "v_cell_size": { + "min": 0.0, + "group": "Mesh and models", + "main": true, + "enabled": true, + "label": "Northing core cell size (m)", + "value": 25.0 + }, + "depth_core": { + "min": 0.0, + "group": "Mesh and models", + "main": true, + "enabled": true, + "label": "Depth of core (m)", + "value": 500.0 + }, + "horizontal_padding": { + "min": 0.0, + "group": "Mesh and models", + "main": true, + "enabled": true, + "label": "Horizontal padding (m)", + "value": 1000.0 + }, + "vertical_padding": { + "min": 0.0, + "group": "Mesh and models", + "main": true, + "dependencyType": "disabled", + "label": "Vertical padding (m)", + "value": 1000.0 + }, + "expansion_factor": { + "main": true, + "group": "Mesh and models", + "label": "Expansion factor", + "value": 1.1 + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "optional": true, + "enabled": false, + "value": "", + "visible": true + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "starting_model": { + "association": "Cell", + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Initial Conductivity (S/m)", + "property": "", + "value": 0.001 + }, + "reference_model": { + "association": "Cell", + "dataType": "Float", + "main": true, + "group": "Mesh and models", + "isValue": true, + "optional": true, + "enabled": false, + "parent": "mesh", + "label": "Reference Conductivity (S/m)", + "property": "", + "value": 0.001 + }, + "lower_bound": { + "association": "Cell", + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Lower bound", + "property": "", + "optional": true, + "value": 1e-08, + "enabled": false + }, + "upper_bound": { + "association": "Cell", + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Upper bound", + "property": "", + "optional": true, + "value": 100.0, + "enabled": false + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "inversion_style": "voxel", + "alpha_s": { + "min": 0.0, + "group": "Regularization", + "label": "Reference weight", + "value": 1.0, + "tooltip": "Constant ratio compared to other weights. Larger values result in models that remain close to the reference model", + "dependency": "reference_model", + "dependencyType": "enabled", + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_x": { + "min": 0.0, + "group": "Regularization", + "label": "X-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in x biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_z": { + "min": 0.0, + "group": "Regularization", + "label": "Z-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in z biased smoothess", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "s_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Smallness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 0.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": true, + "enabled": true, + "dependency": "reference_model", + "dependencyType": "enabled", + "tooltip": "Lp-norm used in the smallness term of the objective function." + }, + "x_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "X-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the x-smoothness term of the objective function." + }, + "z_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Z-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the z-smoothness term of the objective function." + }, + "gradient_type": { + "choiceList": [ + "total", + "components" + ], + "group": "Sparse/blocky model", + "label": "Gradient type", + "value": "total", + "verbose": 3, + "tooltip": "Choose whether the IRLS weights for regularization terms are updated using total or partial gradients." + }, + "max_irls_iterations": { + "min": 0, + "group": "Sparse/blocky model", + "label": "Maximum IRLS iterations", + "tooltip": "Incomplete Re-weighted Least Squares iterations for non-L2 problems", + "value": 25, + "enabled": true, + "verbose": 2 + }, + "starting_chi_factor": { + "group": "Sparse/blocky model", + "label": "IRLS start chi factor", + "enabled": true, + "value": 1.0, + "tooltip": "This chi factor will be used to determine the misfit threshold after which IRLS iterations begin.", + "verbose": 3 + }, + "beta_tol": { + "group": "Update IRLS directive", + "label": "Beta tolerance", + "value": 0.5, + "min": 0.0001, + "verbose": 3, + "visible": false + }, + "prctile": { + "group": "Update IRLS directive", + "label": "Percentile", + "value": 95, + "max": 100, + "min": 5, + "verbose": 3, + "visible": false + }, + "chi_factor": { + "min": 0.1, + "max": 20.0, + "precision": 1, + "lineEdit": false, + "group": "Cooling schedule/target", + "label": "Chi factor", + "value": 1.0, + "enabled": true, + "tooltip": "The global target data misfit value." + }, + "auto_scale_misfits": { + "group": "Cooling schedule/target", + "label": "Auto-scale misfits", + "value": true, + "verbose": 3, + "visible": true, + "tooltip": "Whether to auto-scale misfits functions (tile, frequency, joint methods) based on chi-factor." + }, + "initial_beta_ratio": { + "min": 0.0, + "precision": 2, + "group": "Cooling schedule/target", + "optional": true, + "enabled": true, + "label": "Initial beta ratio", + "value": 100.0, + "verbose": 2, + "tooltip": "Estimate the trade-off parameter by scaling the ratio between the largest derivatives in the objective function gradients." + }, + "initial_beta": { + "min": 0.0, + "group": "Cooling schedule/target", + "optional": true, + "enabled": false, + "dependency": "initial_beta_ratio", + "dependencyType": "disabled", + "label": "Initial beta", + "value": 1.0, + "verbose": 2, + "tooltip": "Trade-off parameter between data misfit and regularization." + }, + "coolingFactor": { + "group": "Cooling schedule/target", + "label": "Beta cooling factor", + "tooltip": "Each beta cooling step will be calculated by dividing the current beta by this factor.", + "value": 2.0, + "min": 1.1, + "max": 100, + "precision": 1, + "lineEdit": false, + "verbose": 2 + }, + "coolingRate": { + "group": "Optimization", + "label": "Iterations per beta", + "value": 2, + "min": 1, + "LineEdit": false, + "max": 10, + "precision": 1, + "verbose": 2, + "enabled": true, + "tooltip": "Set the number of iterations per beta value. Use higher values for more non-linear optimization problems." + }, + "max_global_iterations": { + "min": 1, + "lineEdit": false, + "group": "Optimization", + "label": "Maximum iterations", + "tooltip": "Number of L2 and IRLS iterations combined", + "value": 50, + "enabled": true + }, + "max_line_search_iterations": { + "group": "Optimization", + "label": "Maximum number of line searches", + "value": 20, + "min": 1, + "enabled": true, + "verbose": 3, + "tooltip": "Perform an Armijo backtracking linesearch for the provided number of iterations." + }, + "max_cg_iterations": { + "min": 0, + "group": "Optimization", + "label": "Maximum CG iterations", + "value": 30, + "enabled": true, + "verbose": 2 + }, + "tol_cg": { + "min": 0, + "group": "Optimization", + "label": "Conjugate gradient tolerance", + "value": 0.0001, + "enabled": true, + "verbose": 3 + }, + "f_min_change": { + "group": "Optimization", + "label": "Minimum change in objective function", + "value": 0.01, + "min": 1e-06, + "verbose": 3, + "enabled": true, + "tooltip": "Minimum decrease in regularization beyond which the IRLS procedure is deemed to have completed." + }, + "sens_wts_threshold": { + "group": "Update sensitivity weights directive", + "tooltip": "Update sensitivity weight threshold", + "label": "Threshold (%)", + "value": 0.001, + "max": 100.0, + "min": 0.0, + "precision": 3, + "enabled": true, + "verbose": 2 + }, + "every_iteration_bool": { + "group": "Update sensitivity weights directive", + "tooltip": "Update weights at every iteration", + "label": "Every iteration", + "value": true, + "verbose": 2, + "enabled": true + }, + "save_sensitivities": { + "group": "Update sensitivity weights directive", + "label": "Save sensitivities", + "tooltip": "Save the summed square row sensitivities to geoh5.", + "value": false + }, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": 1, + "store_sensitivities": { + "choiceList": [ + "disk", + "ram" + ], + "group": "Compute", + "label": "Storage device", + "tooltip": "Use disk on a fast local SSD, and RAM elsewhere", + "value": "ram" + }, + "max_ram": "", + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "files_only": { + "label": "Generate files only", + "group": "Python run preferences", + "main": true, + "value": false + }, + "cleanup": { + "main": true, + "group": "Python run preferences", + "label": "Clean directory", + "value": true + }, + "distributed_workers": "", + "potential_channel_bool": true +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/fem_forward.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/fem_forward.ui.json new file mode 100644 index 00000000..5b059c8e --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/fem_forward.ui.json @@ -0,0 +1,184 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Frequency-domain EM (FEM) Forward", + "icon": "surveyairborneem", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "fem", + "forward_only": true, + "data_object": { + "main": true, + "group": "Survey", + "label": "Object", + "meshType": [ + "{b3a47539-0301-4b27-922e-1dde9d882c60}" + ], + "value": "" + }, + "z_real_channel_bool": { + "group": "Survey", + "main": true, + "label": "Z real component", + "value": true + }, + "z_imag_channel_bool": { + "group": "Survey", + "main": true, + "label": "Z imag component", + "value": true + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "tooltip": "Select a mesh for the inversion." + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "starting_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Value(s)", + "property": "", + "value": 0.001 + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": { + "group": "Compute", + "label": "Number of tiles", + "parent": "data_object", + "isValue": true, + "property": "", + "value": 1, + "min": 1, + "max": 1000, + "verbose": 2, + "tooltip": "Splits the objective function into spatial tiles for distributed computation using the Dask library." + }, + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "" +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/fem_inversion.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/fem_inversion.ui.json new file mode 100644 index 00000000..ef627ad6 --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/fem_inversion.ui.json @@ -0,0 +1,590 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Frequency-domain EM (FEM) Inversion", + "icon": "surveyairborneem", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "fem", + "forward_only": false, + "data_object": { + "main": true, + "group": "Data", + "label": "Object", + "meshType": [ + "{b3a47539-0301-4b27-922e-1dde9d882c60}" + ], + "value": "" + }, + "z_real_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "z-real component", + "parent": "data_object", + "optional": true, + "enabled": true, + "value": "" + }, + "z_real_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "z_real_channel", + "dependencyType": "enabled", + "value": "" + }, + "z_imag_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "z-imag component", + "parent": "data_object", + "optional": true, + "enabled": true, + "value": "" + }, + "z_imag_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "z_imag_channel", + "dependencyType": "enabled", + "value": "" + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "tooltip": "Select a mesh for the inversion." + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "starting_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Initial", + "property": "", + "value": 0.001 + }, + "reference_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "main": true, + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Reference", + "property": "", + "optional": true, + "enabled": false, + "value": 0.001 + }, + "lower_bound": { + "association": [ + "Cell", + "Vertex" + ], + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Lower bound", + "property": "", + "optional": true, + "value": 1e-08, + "enabled": false + }, + "upper_bound": { + "association": [ + "Cell", + "Vertex" + ], + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Upper bound", + "property": "", + "optional": true, + "value": 100.0, + "enabled": false + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "inversion_style": "voxel", + "alpha_s": { + "min": 0.0, + "group": "Regularization", + "label": "Reference weight", + "value": 1.0, + "tooltip": "Constant ratio compared to other weights. Larger values result in models that remain close to the reference model", + "dependency": "reference_model", + "dependencyType": "enabled", + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_x": { + "min": 0.0, + "group": "Regularization", + "label": "X-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in x biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_y": { + "min": 0.0, + "group": "Regularization", + "label": "Y-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in y biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_z": { + "min": 0.0, + "group": "Regularization", + "label": "Z-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in z biased smoothess", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "s_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Smallness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 0.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": true, + "enabled": true, + "dependency": "reference_model", + "dependencyType": "enabled", + "tooltip": "Lp-norm used in the smallness term of the objective function." + }, + "x_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "X-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the x-smoothness term of the objective function." + }, + "y_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Y-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the y-smoothness term of the objective function." + }, + "z_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Z-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the z-smoothness term of the objective function." + }, + "gradient_type": { + "choiceList": [ + "total", + "components" + ], + "group": "Sparse/blocky model", + "label": "Gradient type", + "value": "total", + "verbose": 3, + "tooltip": "Choose whether the IRLS weights for regularization terms are updated using total or partial gradients." + }, + "max_irls_iterations": { + "min": 0, + "group": "Sparse/blocky model", + "label": "Maximum IRLS iterations", + "tooltip": "Incomplete Re-weighted Least Squares iterations for non-L2 problems", + "value": 25, + "enabled": true, + "verbose": 2 + }, + "starting_chi_factor": { + "group": "Sparse/blocky model", + "label": "IRLS start chi factor", + "enabled": true, + "value": 1.0, + "tooltip": "This chi factor will be used to determine the misfit threshold after which IRLS iterations begin.", + "verbose": 3 + }, + "beta_tol": { + "group": "Update IRLS directive", + "label": "Beta tolerance", + "value": 0.5, + "min": 0.0001, + "verbose": 3, + "visible": false + }, + "prctile": { + "group": "Update IRLS directive", + "label": "Percentile", + "value": 95, + "max": 100, + "min": 5, + "verbose": 3, + "visible": false + }, + "chi_factor": { + "min": 0.1, + "max": 20.0, + "precision": 1, + "lineEdit": false, + "group": "Cooling schedule/target", + "label": "Chi factor", + "value": 1.0, + "enabled": true, + "tooltip": "The global target data misfit value." + }, + "auto_scale_misfits": { + "group": "Cooling schedule/target", + "label": "Auto-scale misfits", + "value": true, + "verbose": 3, + "visible": true, + "tooltip": "Whether to auto-scale misfits functions (tile, frequency, joint methods) based on chi-factor." + }, + "initial_beta_ratio": { + "min": 0.0, + "precision": 2, + "group": "Cooling schedule/target", + "optional": true, + "enabled": true, + "label": "Initial beta ratio", + "value": 100.0, + "verbose": 2, + "tooltip": "Estimate the trade-off parameter by scaling the ratio between the largest derivatives in the objective function gradients." + }, + "initial_beta": { + "min": 0.0, + "group": "Cooling schedule/target", + "optional": true, + "enabled": false, + "dependency": "initial_beta_ratio", + "dependencyType": "disabled", + "label": "Initial beta", + "value": 1.0, + "verbose": 2, + "tooltip": "Trade-off parameter between data misfit and regularization." + }, + "coolingFactor": { + "group": "Cooling schedule/target", + "label": "Beta cooling factor", + "tooltip": "Each beta cooling step will be calculated by dividing the current beta by this factor.", + "value": 2.0, + "min": 1.1, + "max": 100, + "precision": 1, + "lineEdit": false, + "verbose": 2 + }, + "coolingRate": { + "group": "Optimization", + "label": "Iterations per beta", + "value": 2, + "min": 1, + "LineEdit": false, + "max": 10, + "precision": 1, + "verbose": 2, + "enabled": true, + "tooltip": "Set the number of iterations per beta value. Use higher values for more non-linear optimization problems." + }, + "max_global_iterations": { + "min": 1, + "lineEdit": false, + "group": "Optimization", + "label": "Maximum iterations", + "tooltip": "Number of L2 and IRLS iterations combined", + "value": 50, + "enabled": true + }, + "max_line_search_iterations": { + "group": "Optimization", + "label": "Maximum number of line searches", + "value": 20, + "min": 1, + "enabled": true, + "verbose": 3, + "tooltip": "Perform an Armijo backtracking linesearch for the provided number of iterations." + }, + "max_cg_iterations": { + "min": 0, + "group": "Optimization", + "label": "Maximum CG iterations", + "value": 30, + "enabled": true, + "verbose": 2 + }, + "tol_cg": { + "min": 0, + "group": "Optimization", + "label": "Conjugate gradient tolerance", + "value": 0.0001, + "enabled": true, + "verbose": 3 + }, + "f_min_change": { + "group": "Optimization", + "label": "Minimum change in objective function", + "value": 0.01, + "min": 1e-06, + "verbose": 3, + "enabled": true, + "tooltip": "Minimum decrease in regularization beyond which the IRLS procedure is deemed to have completed." + }, + "sens_wts_threshold": { + "group": "Update sensitivity weights directive", + "tooltip": "Update sensitivity weight threshold", + "label": "Threshold (%)", + "value": 1.0, + "max": 100.0, + "min": 0.0, + "precision": 3, + "enabled": true, + "verbose": 2 + }, + "every_iteration_bool": { + "group": "Update sensitivity weights directive", + "tooltip": "Update weights at every iteration", + "label": "Every iteration", + "value": true, + "verbose": 2, + "enabled": true + }, + "save_sensitivities": { + "group": "Update sensitivity weights directive", + "label": "Save sensitivities", + "tooltip": "Save the summed square row sensitivities to geoh5.", + "value": false + }, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": { + "group": "Compute", + "label": "Number of tiles", + "parent": "data_object", + "isValue": true, + "property": "", + "value": 1, + "min": 1, + "max": 1000, + "verbose": 2, + "tooltip": "Splits the objective function into spatial tiles for distributed computation using the Dask library." + }, + "store_sensitivities": { + "choiceList": [ + "disk", + "ram" + ], + "group": "Compute", + "label": "Storage device", + "tooltip": "Use disk on a fast local SSD, and RAM elsewhere", + "value": "ram" + }, + "max_ram": "", + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "" +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/gravity_forward.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/gravity_forward.ui.json new file mode 100644 index 00000000..13bffb86 --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/gravity_forward.ui.json @@ -0,0 +1,262 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Gravity Forward", + "icon": "surveyairbornegravity", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "gravity", + "forward_only": true, + "data_object": { + "main": true, + "group": "Survey", + "label": "Object", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}", + "{b54f6be6-0eb5-4a4e-887a-ba9d276f9a83}", + "{5ffa3816-358d-4cdd-9b7d-e1f7f5543e05}" + ], + "value": "" + }, + "z_from_topo": { + "group": "Data pre-processing", + "label": "Take z from topography", + "tooltip": "Sets survey elevation to topography before any offsets are applied.", + "value": false, + "verbose": 3, + "visible": false + }, + "receivers_radar_drape": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data pre-processing", + "label": "Z radar offset", + "tooltip": "Apply a non-homogeneous offset to survey object from radar channel.", + "optional": true, + "parent": "data_object", + "value": "", + "enabled": false, + "verbose": 3, + "visible": false + }, + "receivers_offset_z": { + "group": "Data pre-processing", + "label": "Z static offset", + "optional": true, + "enabled": false, + "value": 0.0, + "verbose": 3, + "visible": false + }, + "gps_receivers_offset": "", + "gz_channel_bool": { + "group": "Survey", + "main": true, + "label": "Gz (mGal)", + "value": true + }, + "gx_channel_bool": { + "group": "Survey", + "main": true, + "label": "Gx (mGal)", + "value": false + }, + "gy_channel_bool": { + "group": "Survey", + "main": true, + "label": "Gy (mGal)", + "value": false + }, + "guv_channel_bool": { + "group": "Survey", + "main": true, + "label": "Guv (Eo)", + "value": false + }, + "gxy_channel_bool": { + "group": "Survey", + "main": true, + "label": "Gxy/Gne (Eo)", + "value": false + }, + "gxx_channel_bool": { + "group": "Survey", + "main": true, + "label": "Gxx (Eo)", + "value": false + }, + "gyy_channel_bool": { + "group": "Survey", + "main": true, + "label": "Gyy (Eo)", + "value": false + }, + "gzz_channel_bool": { + "group": "Survey", + "main": true, + "label": "Gzz (Eo)", + "value": false + }, + "gxz_channel_bool": { + "group": "Survey", + "main": true, + "label": "Gxz (Eo)", + "value": false + }, + "gyz_channel_bool": { + "group": "Survey", + "main": true, + "label": "Gyz (Eo)", + "value": false + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "tooltip": "Select a mesh for the inversion." + }, + "starting_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Density (g/cc)", + "property": "", + "value": 0.001 + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": { + "group": "Compute", + "label": "Number of tiles", + "parent": "data_object", + "isValue": true, + "property": "", + "value": 1, + "min": 1, + "max": 1000, + "verbose": 2, + "tooltip": "Splits the objective function into spatial tiles for distributed computation using the Dask library." + }, + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "ga_group": "", + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "" +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/gravity_inversion.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/gravity_inversion.ui.json new file mode 100644 index 00000000..e60a48f7 --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/gravity_inversion.ui.json @@ -0,0 +1,825 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Gravity Inversion", + "icon": "surveyairbornegravity", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "gravity", + "forward_only": false, + "data_object": { + "main": true, + "group": "Data", + "label": "Object", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}", + "{b54f6be6-0eb5-4a4e-887a-ba9d276f9a83}", + "{5ffa3816-358d-4cdd-9b7d-e1f7f5543e05}" + ], + "value": "" + }, + "gz_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Gz (mGal)", + "parent": "data_object", + "optional": true, + "enabled": true, + "value": "" + }, + "gz_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "gz_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "gx_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Gx (mGal)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "gx_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "gx_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "gy_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Gy (mGal)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "gy_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "gy_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "guv_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Guv (Eo)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "guv_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "guv_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "gxy_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Gxy/Gne (Eo)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "gxy_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "gxy_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "gxx_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Gxx (Eo)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "gxx_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "gxx_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "gyy_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Gyy (Eo)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "gyy_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "gyy_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "gzz_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Gzz (Eo)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "gzz_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "gzz_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "gxz_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Gxz (Eo)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "gxz_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "gxz_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "gyz_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Gyz (Eo)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "gyz_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "gyz_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "tooltip": "Select a mesh for the inversion." + }, + "starting_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Initial density (g/cc)", + "property": "", + "value": 0.001 + }, + "reference_model": { + "association": [ + "Cell", + "Vertex" + ], + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "optional": true, + "enabled": false, + "parent": "mesh", + "label": "Reference density (g/cc)", + "property": "", + "value": 0.0 + }, + "lower_bound": { + "association": [ + "Cell", + "Vertex" + ], + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Lower bound (g/cc)", + "property": "", + "optional": true, + "value": -10.0, + "enabled": false + }, + "upper_bound": { + "association": [ + "Cell", + "Vertex" + ], + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Upper bound (g/cc)", + "property": "", + "optional": true, + "value": 10.0, + "enabled": false + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "inversion_style": "voxel", + "alpha_s": { + "min": 0.0, + "group": "Regularization", + "label": "Reference weight", + "value": 1.0, + "tooltip": "Constant ratio compared to other weights. Larger values result in models that remain close to the reference model", + "dependency": "reference_model", + "dependencyType": "enabled", + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_x": { + "min": 0.0, + "group": "Regularization", + "label": "X-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in x biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_y": { + "min": 0.0, + "group": "Regularization", + "label": "Y-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in y biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_z": { + "min": 0.0, + "group": "Regularization", + "label": "Z-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in z biased smoothess", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "s_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Smallness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 0.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": true, + "enabled": true, + "dependency": "reference_model", + "dependencyType": "enabled", + "tooltip": "Lp-norm used in the smallness term of the objective function." + }, + "x_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "X-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the x-smoothness term of the objective function." + }, + "y_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Y-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the y-smoothness term of the objective function." + }, + "z_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Z-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the z-smoothness term of the objective function." + }, + "gradient_type": { + "choiceList": [ + "total", + "components" + ], + "group": "Sparse/blocky model", + "label": "Gradient type", + "value": "total", + "verbose": 3, + "tooltip": "Choose whether the IRLS weights for regularization terms are updated using total or partial gradients." + }, + "max_irls_iterations": { + "min": 0, + "group": "Sparse/blocky model", + "label": "Maximum IRLS iterations", + "tooltip": "Incomplete Re-weighted Least Squares iterations for non-L2 problems", + "value": 25, + "enabled": true, + "verbose": 2 + }, + "starting_chi_factor": { + "group": "Sparse/blocky model", + "label": "IRLS start chi factor", + "enabled": true, + "value": 1.0, + "tooltip": "This chi factor will be used to determine the misfit threshold after which IRLS iterations begin.", + "verbose": 3 + }, + "beta_tol": { + "group": "Update IRLS directive", + "label": "Beta tolerance", + "value": 0.5, + "min": 0.0001, + "verbose": 3, + "visible": false + }, + "prctile": { + "group": "Update IRLS directive", + "label": "Percentile", + "value": 95, + "max": 100, + "min": 5, + "verbose": 3, + "visible": false + }, + "chi_factor": { + "min": 0.1, + "max": 20.0, + "precision": 1, + "lineEdit": false, + "group": "Cooling schedule/target", + "label": "Chi factor", + "value": 1.0, + "enabled": true, + "tooltip": "The global target data misfit value." + }, + "auto_scale_misfits": { + "group": "Cooling schedule/target", + "label": "Auto-scale misfits", + "value": true, + "verbose": 3, + "visible": true, + "tooltip": "Whether to auto-scale misfits functions (tile, frequency, joint methods) based on chi-factor." + }, + "initial_beta_ratio": { + "min": 0.0, + "precision": 2, + "group": "Cooling schedule/target", + "optional": true, + "enabled": true, + "label": "Initial beta ratio", + "value": 100.0, + "verbose": 2, + "tooltip": "Estimate the trade-off parameter by scaling the ratio between the largest derivatives in the objective function gradients." + }, + "initial_beta": { + "min": 0.0, + "group": "Cooling schedule/target", + "optional": true, + "enabled": false, + "dependency": "initial_beta_ratio", + "dependencyType": "disabled", + "label": "Initial beta", + "value": 1.0, + "verbose": 2, + "tooltip": "Trade-off parameter between data misfit and regularization." + }, + "coolingFactor": { + "group": "Cooling schedule/target", + "label": "Beta cooling factor", + "tooltip": "Each beta cooling step will be calculated by dividing the current beta by this factor.", + "value": 2.0, + "min": 1.1, + "max": 100, + "precision": 1, + "lineEdit": false, + "verbose": 2 + }, + "coolingRate": { + "group": "Optimization", + "label": "Iterations per beta", + "value": 1, + "min": 1, + "LineEdit": false, + "max": 10, + "precision": 1, + "verbose": 2, + "enabled": true + }, + "max_global_iterations": { + "min": 1, + "lineEdit": false, + "group": "Optimization", + "label": "Maximum iterations", + "tooltip": "Number of L2 and IRLS iterations combined", + "value": 50, + "enabled": true + }, + "max_line_search_iterations": { + "group": "Optimization", + "label": "Maximum number of line searches", + "value": 20, + "min": 1, + "enabled": true, + "verbose": 3, + "tooltip": "Perform an Armijo backtracking linesearch for the provided number of iterations." + }, + "max_cg_iterations": { + "min": 0, + "group": "Optimization", + "label": "Maximum CG iterations", + "value": 30, + "enabled": true, + "verbose": 2 + }, + "tol_cg": { + "min": 0, + "group": "Optimization", + "label": "Conjugate gradient tolerance", + "value": 0.0001, + "enabled": true, + "verbose": 3 + }, + "f_min_change": { + "group": "Optimization", + "label": "Minimum change in objective function", + "value": 0.01, + "min": 1e-06, + "verbose": 3, + "enabled": true, + "tooltip": "Minimum decrease in regularization beyond which the IRLS procedure is deemed to have completed." + }, + "sens_wts_threshold": { + "group": "Update sensitivity weights directive", + "tooltip": "Update sensitivity weight threshold", + "label": "Threshold (%)", + "value": 0.001, + "max": 100.0, + "min": 0.0, + "precision": 3, + "enabled": true, + "verbose": 2 + }, + "every_iteration_bool": { + "group": "Update sensitivity weights directive", + "tooltip": "Update weights at every iteration", + "label": "Every iteration", + "value": false, + "verbose": 2, + "enabled": true + }, + "save_sensitivities": { + "group": "Update sensitivity weights directive", + "label": "Save sensitivities", + "tooltip": "Save the summed square row sensitivities to geoh5.", + "value": false + }, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": { + "group": "Compute", + "label": "Number of tiles", + "parent": "data_object", + "isValue": true, + "property": "", + "value": 1, + "min": 1, + "max": 1000, + "verbose": 2, + "tooltip": "Splits the objective function into spatial tiles for distributed computation using the Dask library." + }, + "store_sensitivities": { + "choiceList": [ + "disk", + "ram" + ], + "group": "Compute", + "label": "Storage device", + "tooltip": "Use disk on a fast local SSD, and RAM elsewhere", + "value": "ram" + }, + "max_ram": "", + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "ga_group": "", + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "" +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_forward_2d.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_forward_2d.ui.json new file mode 100644 index 00000000..a10aee5a --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_forward_2d.ui.json @@ -0,0 +1,275 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Induced Polarization (IP) 2D Forward", + "icon": "PotentialElectrode", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "induced polarization 2d", + "forward_only": true, + "data_object": { + "main": true, + "group": "Survey", + "label": "Object", + "meshType": "{275ecee9-9c24-4378-bf94-65f3c5fbe163}", + "value": "" + }, + "z_from_topo": { + "group": "Survey", + "main": true, + "label": "Surface survey", + "tooltip": "Uncheck if borehole data is present", + "value": true + }, + "line_object": { + "association": "Cell", + "dataType": "Referenced", + "group": "Survey", + "main": true, + "label": "Line ID", + "parent": "data_object", + "value": "", + "tooltip": "Selects the data representing the different lines in the survey." + }, + "line_id": { + "group": "Survey", + "main": true, + "min": 1, + "label": "Line number", + "value": 1, + "tooltip": "Selects the line of data to be processed." + }, + "receivers_radar_drape": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data pre-processing", + "label": "Z radar offset", + "tooltip": "Apply a non-homogeneous offset to survey object from radar channel.", + "optional": true, + "parent": "data_object", + "value": "", + "enabled": false, + "visible": false + }, + "receivers_offset_z": { + "group": "Data pre-processing", + "label": "Z static offset", + "optional": true, + "enabled": false, + "value": 0.0, + "visible": false + }, + "gps_receivers_offset": "", + "chargeability_channel_bool": true, + "mesh": { + "group": "Mesh and models", + "main": true, + "optional": true, + "enabled": false, + "label": "Mesh", + "meshType": "{c94968ea-cf7d-11eb-b8bc-0242ac130003}", + "value": "" + }, + "u_cell_size": { + "min": 0.0, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "main": true, + "enabled": true, + "label": "Easting core cell size (m)", + "value": 25.0 + }, + "v_cell_size": { + "min": 0.0, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "main": true, + "enabled": true, + "label": "Northing core cell size (m)", + "value": 25.0 + }, + "depth_core": { + "min": 0.0, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "main": true, + "enabled": true, + "label": "Depth of core (m)", + "value": 500.0 + }, + "horizontal_padding": { + "min": 0.0, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "main": true, + "enabled": true, + "label": "Horizontal padding (m)", + "value": 1000.0 + }, + "vertical_padding": { + "min": 0.0, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "main": true, + "label": "Vertical padding (m)", + "value": 1000.0 + }, + "expansion_factor": { + "main": true, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "label": "Expansion factor", + "value": 1.1 + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "conductivity_model": { + "association": "Cell", + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Conductivity (S/m)", + "property": "", + "value": 0.001 + }, + "starting_model": { + "association": "Cell", + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Value(s)", + "property": "", + "value": 0.0 + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": 1, + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "" +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_forward_3d.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_forward_3d.ui.json new file mode 100644 index 00000000..acd13b1e --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_forward_3d.ui.json @@ -0,0 +1,218 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Induced Polarization (IP) 3D Forward", + "icon": "PotentialElectrode", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "induced polarization 3d", + "forward_only": true, + "data_object": { + "main": true, + "group": "Survey", + "label": "Object", + "meshType": "{275ecee9-9c24-4378-bf94-65f3c5fbe163}", + "value": "" + }, + "z_from_topo": { + "group": "Survey", + "main": true, + "label": "Surface survey", + "tooltip": "Uncheck if borehole data is present", + "value": true + }, + "receivers_radar_drape": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data pre-processing", + "label": "Z radar offset", + "tooltip": "Apply a non-homogeneous offset to survey object from radar channel.", + "optional": true, + "parent": "data_object", + "value": "", + "enabled": false, + "visible": false + }, + "receivers_offset_z": { + "group": "Data pre-processing", + "label": "Z static offset", + "optional": true, + "enabled": false, + "value": 0.0, + "visible": false + }, + "gps_receivers_offset": "", + "chargeability_channel_bool": true, + "mesh": { + "group": "Mesh and models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "tooltip": "Select a mesh for the inversion." + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "conductivity_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Conductivity (S/m)", + "property": "", + "value": 0.001 + }, + "starting_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Value(s)", + "property": "", + "min": 0.0, + "max": 10000.0, + "value": 0.0 + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": { + "group": "Compute", + "label": "Number of tiles", + "parent": "data_object", + "isValue": true, + "property": "", + "value": 1, + "min": 1, + "max": 1000, + "verbose": 2, + "tooltip": "Splits the objective function into spatial tiles for distributed computation using the Dask library." + }, + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "" +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_forward_pseudo3d.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_forward_pseudo3d.ui.json new file mode 100644 index 00000000..09e68683 --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_forward_pseudo3d.ui.json @@ -0,0 +1,272 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Induced Polarization (IP) 2D Batch Forward", + "icon": "PotentialElectrode", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "induced polarization pseudo 3d", + "forward_only": true, + "data_object": { + "main": true, + "group": "Survey", + "label": "Object", + "meshType": "{275ecee9-9c24-4378-bf94-65f3c5fbe163}", + "value": "" + }, + "line_object": { + "association": "Cell", + "dataType": "Referenced", + "group": "Survey", + "main": true, + "label": "Line ID", + "parent": "data_object", + "value": "", + "tooltip": "Selects the data representing the different lines in the survey." + }, + "z_from_topo": { + "group": "Data pre-processing", + "label": "Take z from topography", + "tooltip": "Sets survey elevation to topography before any offsets are applied.", + "value": false, + "verbose": 3, + "visible": false + }, + "receivers_radar_drape": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data pre-processing", + "label": "Z radar offset", + "tooltip": "Apply a non-homogeneous offset to survey object from radar channel.", + "optional": true, + "parent": "data_object", + "value": "", + "enabled": false, + "verbose": 3, + "visible": false + }, + "receivers_offset_z": { + "group": "Data pre-processing", + "label": "Z static offset", + "optional": true, + "enabled": true, + "value": 0.0, + "verbose": 3, + "visible": false + }, + "gps_receivers_offset": "", + "chargeability_channel_bool": true, + "u_cell_size": { + "min": 0.0, + "group": "Mesh and models", + "main": true, + "enabled": true, + "label": "Easting core cell size (m)", + "value": 25.0 + }, + "v_cell_size": { + "min": 0.0, + "group": "Mesh and models", + "main": true, + "enabled": true, + "label": "Northing core cell size (m)", + "value": 25.0 + }, + "depth_core": { + "min": 0.0, + "group": "Mesh and models", + "main": true, + "enabled": true, + "label": "Depth of core (m)", + "value": 500.0 + }, + "horizontal_padding": { + "min": 0.0, + "group": "Mesh and models", + "main": true, + "enabled": true, + "label": "Horizontal padding (m)", + "value": 1000.0 + }, + "vertical_padding": { + "min": 0.0, + "group": "Mesh and models", + "main": true, + "dependencyType": "disabled", + "label": "Vertical padding (m)", + "value": 1000.0 + }, + "expansion_factor": { + "main": true, + "group": "Mesh and models", + "label": "Expansion factor", + "value": 1.1 + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "optional": true, + "enabled": false, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "visible": true + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "conductivity_model": { + "association": "Cell", + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Conductivity (S/m)", + "property": "", + "value": 0.001 + }, + "starting_model": { + "association": "Cell", + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Value(s)", + "property": "", + "value": 0.001 + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": 1, + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "files_only": { + "label": "Generate files only", + "group": "Python run preferences", + "main": true, + "value": false + }, + "cleanup": { + "main": true, + "group": "Python run preferences", + "label": "Clean directory", + "value": false + }, + "distributed_workers": "" +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_inversion_2d.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_inversion_2d.ui.json new file mode 100644 index 00000000..714f7a6f --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_inversion_2d.ui.json @@ -0,0 +1,615 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Induced Polarization (IP) 2D Inversion", + "icon": "PotentialElectrode", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "induced polarization 2d", + "forward_only": false, + "data_object": { + "main": true, + "group": "Data", + "label": "Object", + "meshType": "{275ecee9-9c24-4378-bf94-65f3c5fbe163}", + "value": "" + }, + "z_from_topo": { + "group": "Data", + "main": true, + "label": "Surface survey", + "tooltip": "Uncheck if borehole data is present", + "value": true + }, + "line_object": { + "association": "Cell", + "dataType": "Referenced", + "group": "Data", + "main": true, + "label": "Line ID", + "parent": "data_object", + "value": "", + "tooltip": "Selects the data representing the different lines in the survey." + }, + "line_id": { + "group": "Data", + "main": true, + "min": 1, + "label": "Line number", + "value": 1, + "tooltip": "Selects the line of data to be processed." + }, + "receivers_radar_drape": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data pre-processing", + "label": "Z radar offset", + "tooltip": "Apply a non-homogeneous offset to survey object from radar channel.", + "optional": true, + "parent": "data_object", + "value": "", + "enabled": false, + "visible": false + }, + "receivers_offset_z": { + "group": "Data pre-processing", + "label": "Z static offset", + "optional": true, + "enabled": false, + "value": 0.0, + "visible": false + }, + "gps_receivers_offset": "", + "chargeability_channel": { + "association": "Cell", + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Chargeability (V/V)", + "parent": "data_object", + "value": "" + }, + "chargeability_uncertainty": { + "association": "Cell", + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "property": "", + "value": 1.0 + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "optional": true, + "enabled": false, + "label": "Mesh", + "meshType": "{c94968ea-cf7d-11eb-b8bc-0242ac130003}", + "value": "" + }, + "u_cell_size": { + "min": 0.0, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "main": true, + "enabled": true, + "label": "Easting core cell size (m)", + "value": 25.0 + }, + "v_cell_size": { + "min": 0.0, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "main": true, + "enabled": true, + "label": "Northing core cell size (m)", + "value": 25.0 + }, + "depth_core": { + "min": 0.0, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "main": true, + "enabled": true, + "label": "Depth of core (m)", + "value": 500.0 + }, + "horizontal_padding": { + "min": 0.0, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "main": true, + "enabled": true, + "label": "Horizontal padding (m)", + "value": 1000.0 + }, + "vertical_padding": { + "min": 0.0, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "main": true, + "label": "Vertical padding (m)", + "value": 1000.0 + }, + "expansion_factor": { + "main": true, + "group": "Mesh and models", + "dependency": "mesh", + "dependencyType": "disabled", + "label": "Expansion factor", + "value": 1.1 + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "conductivity_model": { + "association": "Cell", + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Conductivity (S/m)", + "property": "", + "value": 0.001 + }, + "starting_model": { + "association": "Cell", + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Initial chargeability (V/V)", + "property": "", + "value": 0.0 + }, + "reference_model": { + "association": "Cell", + "dataType": "Float", + "main": true, + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Reference chargeability (V/V)", + "property": "", + "optional": true, + "enabled": false, + "value": 0.0 + }, + "lower_bound": { + "association": "Cell", + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Lower bound (V/V)", + "property": "", + "optional": true, + "value": 0.0, + "enabled": true + }, + "upper_bound": { + "association": "Cell", + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Upper bound (V/V)", + "property": "", + "optional": true, + "value": 100.0, + "enabled": false + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "inversion_style": "voxel", + "alpha_s": { + "min": 0.0, + "group": "Regularization", + "label": "Reference weight", + "value": 1.0, + "tooltip": "Constant ratio compared to other weights. Larger values result in models that remain close to the reference model", + "dependency": "reference_model", + "dependencyType": "enabled", + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_x": { + "min": 0.0, + "group": "Regularization", + "label": "X-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in x biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_z": { + "min": 0.0, + "group": "Regularization", + "label": "Z-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in z biased smoothess", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "s_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Smallness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 0.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": true, + "enabled": true, + "dependency": "reference_model", + "dependencyType": "enabled", + "tooltip": "Lp-norm used in the smallness term of the objective function." + }, + "x_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "X-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the x-smoothness term of the objective function." + }, + "z_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Z-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the z-smoothness term of the objective function." + }, + "gradient_type": { + "choiceList": [ + "total", + "components" + ], + "group": "Sparse/blocky model", + "label": "Gradient type", + "value": "total", + "verbose": 3, + "tooltip": "Choose whether the IRLS weights for regularization terms are updated using total or partial gradients." + }, + "max_irls_iterations": { + "min": 0, + "group": "Sparse/blocky model", + "label": "Maximum IRLS iterations", + "tooltip": "Incomplete Re-weighted Least Squares iterations for non-L2 problems", + "value": 25, + "enabled": true, + "verbose": 2 + }, + "starting_chi_factor": { + "group": "Sparse/blocky model", + "label": "IRLS start chi factor", + "enabled": true, + "value": 1.0, + "tooltip": "This chi factor will be used to determine the misfit threshold after which IRLS iterations begin.", + "verbose": 3 + }, + "beta_tol": { + "group": "Update IRLS directive", + "label": "Beta tolerance", + "value": 0.5, + "min": 0.0001, + "verbose": 3, + "visible": false + }, + "prctile": { + "group": "Update IRLS directive", + "label": "Percentile", + "value": 95, + "max": 100, + "min": 5, + "verbose": 3, + "visible": false + }, + "chi_factor": { + "min": 0.1, + "max": 20.0, + "precision": 1, + "lineEdit": false, + "group": "Cooling schedule/target", + "label": "Chi factor", + "value": 1.0, + "enabled": true, + "tooltip": "The global target data misfit value." + }, + "auto_scale_misfits": { + "group": "Cooling schedule/target", + "label": "Auto-scale misfits", + "value": true, + "verbose": 3, + "visible": true, + "tooltip": "Whether to auto-scale misfits functions (tile, frequency, joint methods) based on chi-factor." + }, + "initial_beta_ratio": { + "min": 0.0, + "precision": 2, + "group": "Cooling schedule/target", + "optional": true, + "enabled": true, + "label": "Initial beta ratio", + "value": 100.0, + "verbose": 2, + "tooltip": "Estimate the trade-off parameter by scaling the ratio between the largest derivatives in the objective function gradients." + }, + "initial_beta": { + "min": 0.0, + "group": "Cooling schedule/target", + "optional": true, + "enabled": false, + "dependency": "initial_beta_ratio", + "dependencyType": "disabled", + "label": "Initial beta", + "value": 1.0, + "verbose": 2, + "tooltip": "Trade-off parameter between data misfit and regularization." + }, + "coolingFactor": { + "group": "Cooling schedule/target", + "label": "Beta cooling factor", + "tooltip": "Each beta cooling step will be calculated by dividing the current beta by this factor.", + "value": 2.0, + "min": 1.1, + "max": 100, + "precision": 1, + "lineEdit": false, + "verbose": 2 + }, + "coolingRate": { + "group": "Optimization", + "label": "Iterations per beta", + "value": 2, + "min": 1, + "LineEdit": false, + "max": 10, + "precision": 1, + "verbose": 2, + "enabled": true, + "tooltip": "Set the number of iterations per beta value. Use higher values for more non-linear optimization problems." + }, + "max_global_iterations": { + "min": 1, + "lineEdit": false, + "group": "Optimization", + "label": "Maximum iterations", + "tooltip": "Number of L2 and IRLS iterations combined", + "value": 50, + "enabled": true + }, + "max_line_search_iterations": { + "group": "Optimization", + "label": "Maximum number of line searches", + "value": 20, + "min": 1, + "enabled": true, + "verbose": 3, + "tooltip": "Perform an Armijo backtracking linesearch for the provided number of iterations." + }, + "max_cg_iterations": { + "min": 0, + "group": "Optimization", + "label": "Maximum CG iterations", + "value": 30, + "enabled": true, + "verbose": 2 + }, + "tol_cg": { + "min": 0, + "group": "Optimization", + "label": "Conjugate gradient tolerance", + "value": 0.0001, + "enabled": true, + "verbose": 3 + }, + "f_min_change": { + "group": "Optimization", + "label": "Minimum change in objective function", + "value": 0.01, + "min": 1e-06, + "verbose": 3, + "enabled": true, + "tooltip": "Minimum decrease in regularization beyond which the IRLS procedure is deemed to have completed." + }, + "sens_wts_threshold": { + "group": "Update sensitivity weights directive", + "tooltip": "Update sensitivity weight threshold", + "label": "Threshold (%)", + "value": 0.001, + "max": 100.0, + "min": 0.0, + "precision": 3, + "enabled": true, + "verbose": 2 + }, + "every_iteration_bool": { + "group": "Update sensitivity weights directive", + "tooltip": "Update weights at every iteration", + "label": "Every iteration", + "value": true, + "verbose": 2, + "enabled": true + }, + "save_sensitivities": { + "group": "Update sensitivity weights directive", + "label": "Save sensitivities", + "tooltip": "Save the summed square row sensitivities to geoh5.", + "value": false + }, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": 1, + "max_ram": "", + "store_sensitivities": { + "choiceList": [ + "disk", + "ram" + ], + "group": "Compute", + "label": "Storage device", + "tooltip": "Use disk on a fast local SSD, and RAM elsewhere", + "value": "ram" + }, + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "", + "chargeability_channel_bool": true +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_inversion_3d.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_inversion_3d.ui.json new file mode 100644 index 00000000..aede42d7 --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_inversion_3d.ui.json @@ -0,0 +1,602 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Induced Polarization (IP) 3D Inversion", + "icon": "PotentialElectrode", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "induced polarization 3d", + "forward_only": false, + "data_object": { + "main": true, + "group": "Data", + "label": "Object", + "meshType": "{275ecee9-9c24-4378-bf94-65f3c5fbe163}", + "value": "" + }, + "z_from_topo": { + "group": "Data", + "main": true, + "label": "Surface survey", + "tooltip": "Uncheck if borehole data is present", + "value": true + }, + "receivers_radar_drape": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data pre-processing", + "label": "Z radar offset", + "tooltip": "Apply a non-homogeneous offset to survey object from radar channel.", + "optional": true, + "parent": "data_object", + "value": "", + "enabled": false, + "visible": false + }, + "receivers_offset_z": { + "group": "Data pre-processing", + "label": "Z static offset", + "optional": true, + "enabled": false, + "value": 0.0, + "visible": false + }, + "gps_receivers_offset": "", + "chargeability_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Chargeability (V/V)", + "parent": "data_object", + "value": "" + }, + "chargeability_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "property": "", + "value": 1.0 + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "tooltip": "Select a mesh for the inversion." + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "conductivity_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Conductivity (S/m)", + "property": "", + "value": 0.001 + }, + "starting_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Initial Chargeability (V/V)", + "property": "", + "min": 0.0, + "max": 10000.0, + "value": 0.0 + }, + "reference_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "main": true, + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Reference Chargeability (V/V)", + "property": "", + "optional": true, + "enabled": false, + "value": 0.0 + }, + "lower_bound": { + "association": [ + "Cell", + "Vertex" + ], + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Lower bound (V/V)", + "property": "", + "optional": true, + "value": 0.0, + "enabled": true + }, + "upper_bound": { + "association": [ + "Cell", + "Vertex" + ], + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Upper bound (V/V", + "property": "", + "optional": true, + "value": 100.0, + "enabled": false + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "inversion_style": "voxel", + "alpha_s": { + "min": 0.0, + "group": "Regularization", + "label": "Reference weight", + "value": 1.0, + "tooltip": "Constant ratio compared to other weights. Larger values result in models that remain close to the reference model", + "dependency": "reference_model", + "dependencyType": "enabled", + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_x": { + "min": 0.0, + "group": "Regularization", + "label": "X-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in x biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_y": { + "min": 0.0, + "group": "Regularization", + "label": "Y-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in y biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_z": { + "min": 0.0, + "group": "Regularization", + "label": "Z-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in z biased smoothess", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "s_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Smallness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 0.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": true, + "enabled": true, + "dependency": "reference_model", + "dependencyType": "enabled", + "tooltip": "Lp-norm used in the smallness term of the objective function." + }, + "x_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "X-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the x-smoothness term of the objective function." + }, + "y_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Y-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the y-smoothness term of the objective function." + }, + "z_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Z-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the z-smoothness term of the objective function." + }, + "gradient_type": { + "choiceList": [ + "total", + "components" + ], + "group": "Sparse/blocky model", + "label": "Gradient type", + "value": "total", + "verbose": 3, + "tooltip": "Choose whether the IRLS weights for regularization terms are updated using total or partial gradients." + }, + "max_irls_iterations": { + "min": 0, + "group": "Sparse/blocky model", + "label": "Maximum IRLS iterations", + "tooltip": "Incomplete Re-weighted Least Squares iterations for non-L2 problems", + "value": 25, + "enabled": true, + "verbose": 2 + }, + "starting_chi_factor": { + "group": "Sparse/blocky model", + "label": "IRLS start chi factor", + "enabled": true, + "value": 1.0, + "tooltip": "This chi factor will be used to determine the misfit threshold after which IRLS iterations begin.", + "verbose": 3 + }, + "beta_tol": { + "group": "Update IRLS directive", + "label": "Beta tolerance", + "value": 0.5, + "min": 0.0001, + "verbose": 3, + "visible": false + }, + "prctile": { + "group": "Update IRLS directive", + "label": "Percentile", + "value": 95, + "max": 100, + "min": 5, + "verbose": 3, + "visible": false + }, + "chi_factor": { + "min": 0.1, + "max": 20.0, + "precision": 1, + "lineEdit": false, + "group": "Cooling schedule/target", + "label": "Chi factor", + "value": 1.0, + "enabled": true, + "tooltip": "The global target data misfit value." + }, + "auto_scale_misfits": { + "group": "Cooling schedule/target", + "label": "Auto-scale misfits", + "value": true, + "verbose": 3, + "visible": true, + "tooltip": "Whether to auto-scale misfits functions (tile, frequency, joint methods) based on chi-factor." + }, + "initial_beta_ratio": { + "min": 0.0, + "precision": 2, + "group": "Cooling schedule/target", + "optional": true, + "enabled": true, + "label": "Initial beta ratio", + "value": 100.0, + "verbose": 2, + "tooltip": "Estimate the trade-off parameter by scaling the ratio between the largest derivatives in the objective function gradients." + }, + "initial_beta": { + "min": 0.0, + "group": "Cooling schedule/target", + "optional": true, + "enabled": false, + "dependency": "initial_beta_ratio", + "dependencyType": "disabled", + "label": "Initial beta", + "value": 1.0, + "verbose": 2, + "tooltip": "Trade-off parameter between data misfit and regularization." + }, + "coolingFactor": { + "group": "Cooling schedule/target", + "label": "Beta cooling factor", + "tooltip": "Each beta cooling step will be calculated by dividing the current beta by this factor.", + "value": 2.0, + "min": 1.1, + "max": 100, + "precision": 1, + "lineEdit": false, + "verbose": 2 + }, + "coolingRate": { + "group": "Optimization", + "label": "Iterations per beta", + "value": 2, + "min": 1, + "LineEdit": false, + "max": 10, + "precision": 1, + "verbose": 2, + "enabled": true, + "tooltip": "Set the number of iterations per beta value. Use higher values for more non-linear optimization problems." + }, + "max_global_iterations": { + "min": 1, + "lineEdit": false, + "group": "Optimization", + "label": "Maximum iterations", + "tooltip": "Number of L2 and IRLS iterations combined", + "value": 50, + "enabled": true + }, + "max_line_search_iterations": { + "group": "Optimization", + "label": "Maximum number of line searches", + "value": 20, + "min": 1, + "enabled": true, + "verbose": 3, + "tooltip": "Perform an Armijo backtracking linesearch for the provided number of iterations." + }, + "max_cg_iterations": { + "min": 0, + "group": "Optimization", + "label": "Maximum CG iterations", + "value": 30, + "enabled": true, + "verbose": 2 + }, + "tol_cg": { + "min": 0, + "group": "Optimization", + "label": "Conjugate gradient tolerance", + "value": 0.0001, + "enabled": true, + "verbose": 3 + }, + "f_min_change": { + "group": "Optimization", + "label": "Minimum change in objective function", + "value": 0.01, + "min": 1e-06, + "verbose": 3, + "enabled": true, + "tooltip": "Minimum decrease in regularization beyond which the IRLS procedure is deemed to have completed." + }, + "sens_wts_threshold": { + "group": "Update sensitivity weights directive", + "tooltip": "Update sensitivity weight threshold", + "label": "Threshold (%)", + "value": 0.001, + "max": 100.0, + "min": 0.0, + "precision": 3, + "enabled": true, + "verbose": 2 + }, + "every_iteration_bool": { + "group": "Update sensitivity weights directive", + "tooltip": "Update weights at every iteration", + "label": "Every iteration", + "value": true, + "verbose": 2, + "enabled": true + }, + "save_sensitivities": { + "group": "Update sensitivity weights directive", + "label": "Save sensitivities", + "tooltip": "Save the summed square row sensitivities to geoh5.", + "value": false + }, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": { + "group": "Compute", + "label": "Number of tiles", + "parent": "data_object", + "isValue": true, + "property": "", + "value": 1, + "min": 1, + "max": 1000, + "verbose": 2, + "tooltip": "Splits the objective function into spatial tiles for distributed computation using the Dask library." + }, + "max_ram": "", + "store_sensitivities": { + "choiceList": [ + "disk", + "ram" + ], + "group": "Compute", + "label": "Storage device", + "tooltip": "Use disk on a fast local SSD, and RAM elsewhere", + "value": "ram" + }, + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "", + "chargeability_channel_bool": true +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_inversion_pseudo3d.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_inversion_pseudo3d.ui.json new file mode 100644 index 00000000..c78b126f --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_inversion_pseudo3d.ui.json @@ -0,0 +1,612 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Induced Polarization (IP) 2D Batch Inversion", + "icon": "PotentialElectrode", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "induced polarization pseudo 3d", + "forward_only": false, + "data_object": { + "main": true, + "group": "Data", + "label": "Object", + "meshType": "{275ecee9-9c24-4378-bf94-65f3c5fbe163}", + "value": "" + }, + "line_object": { + "association": "Cell", + "dataType": "Referenced", + "group": "Data", + "main": true, + "label": "Line ID", + "parent": "data_object", + "value": "", + "tooltip": "Selects the data representing the different lines in the survey." + }, + "z_from_topo": { + "group": "Data pre-processing", + "label": "Take z from topography", + "tooltip": "Sets survey elevation to topography before any offsets are applied.", + "value": false, + "verbose": 3, + "visible": false + }, + "receivers_radar_drape": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data pre-processing", + "label": "Z radar offset", + "tooltip": "Apply a non-homogeneous offset to survey object from radar channel.", + "optional": true, + "parent": "data_object", + "value": "", + "enabled": false, + "verbose": 3, + "visible": false + }, + "receivers_offset_z": { + "group": "Data pre-processing", + "label": "Z static offset", + "optional": true, + "enabled": true, + "value": 0.0, + "verbose": 3, + "visible": false + }, + "gps_receivers_offset": "", + "chargeability_channel": { + "association": "Cell", + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Chargeability (V/V)", + "parent": "data_object", + "value": "" + }, + "chargeability_uncertainty": { + "association": "Cell", + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "property": "", + "value": 1.0 + }, + "u_cell_size": { + "min": 0.0, + "group": "Mesh and models", + "main": true, + "enabled": true, + "label": "Easting core cell size (m)", + "value": 25.0 + }, + "v_cell_size": { + "min": 0.0, + "group": "Mesh and models", + "main": true, + "enabled": true, + "label": "Northing core cell size (m)", + "value": 25.0 + }, + "depth_core": { + "min": 0.0, + "group": "Mesh and models", + "main": true, + "enabled": true, + "label": "Depth of core (m)", + "value": 500.0 + }, + "horizontal_padding": { + "min": 0.0, + "group": "Mesh and models", + "main": true, + "enabled": true, + "label": "Horizontal padding (m)", + "value": 1000.0 + }, + "vertical_padding": { + "min": 0.0, + "group": "Mesh and models", + "main": true, + "dependencyType": "disabled", + "label": "Vertical padding (m)", + "value": 1000.0 + }, + "expansion_factor": { + "main": true, + "group": "Mesh and models", + "label": "Expansion factor", + "value": 1.1 + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "optional": true, + "enabled": false, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "visible": true + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "conductivity_model": { + "association": "Cell", + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Conductivity (S/m)", + "property": "", + "value": 0.001 + }, + "starting_model": { + "association": "Cell", + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Initial chargeability (V/V)", + "property": "", + "value": 0.001 + }, + "reference_model": { + "association": "Cell", + "dataType": "Float", + "main": true, + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Reference chargeability (V/V)", + "property": "", + "optional": true, + "enabled": false, + "value": 0.001 + }, + "lower_bound": { + "association": "Cell", + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Lower bound (V/V)", + "property": "", + "optional": true, + "value": 0.0, + "enabled": true + }, + "upper_bound": { + "association": "Cell", + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Upper bound (V/V)", + "property": "", + "optional": true, + "value": 100.0, + "enabled": false + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "inversion_style": "voxel", + "alpha_s": { + "min": 0.0, + "group": "Regularization", + "label": "Reference weight", + "value": 1.0, + "tooltip": "Constant ratio compared to other weights. Larger values result in models that remain close to the reference model", + "dependency": "reference_model", + "dependencyType": "enabled", + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_x": { + "min": 0.0, + "group": "Regularization", + "label": "X-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in x biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_z": { + "min": 0.0, + "group": "Regularization", + "label": "Z-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in z biased smoothess", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "s_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Smallness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 0.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": true, + "enabled": true, + "dependency": "reference_model", + "dependencyType": "enabled", + "tooltip": "Lp-norm used in the smallness term of the objective function." + }, + "x_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "X-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the x-smoothness term of the objective function." + }, + "z_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Z-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the z-smoothness term of the objective function." + }, + "gradient_type": { + "choiceList": [ + "total", + "components" + ], + "group": "Sparse/blocky model", + "label": "Gradient type", + "value": "total", + "verbose": 3, + "tooltip": "Choose whether the IRLS weights for regularization terms are updated using total or partial gradients." + }, + "max_irls_iterations": { + "min": 0, + "group": "Sparse/blocky model", + "label": "Maximum IRLS iterations", + "tooltip": "Incomplete Re-weighted Least Squares iterations for non-L2 problems", + "value": 25, + "enabled": true, + "verbose": 2 + }, + "starting_chi_factor": { + "group": "Sparse/blocky model", + "label": "IRLS start chi factor", + "enabled": true, + "value": 1.0, + "tooltip": "This chi factor will be used to determine the misfit threshold after which IRLS iterations begin.", + "verbose": 3 + }, + "beta_tol": { + "group": "Update IRLS directive", + "label": "Beta tolerance", + "value": 0.5, + "min": 0.0001, + "verbose": 3, + "visible": false + }, + "prctile": { + "group": "Update IRLS directive", + "label": "Percentile", + "value": 95, + "max": 100, + "min": 5, + "verbose": 3, + "visible": false + }, + "chi_factor": { + "min": 0.1, + "max": 20.0, + "precision": 1, + "lineEdit": false, + "group": "Cooling schedule/target", + "label": "Chi factor", + "value": 1.0, + "enabled": true, + "tooltip": "The global target data misfit value." + }, + "auto_scale_misfits": { + "group": "Cooling schedule/target", + "label": "Auto-scale misfits", + "value": true, + "verbose": 3, + "visible": true, + "tooltip": "Whether to auto-scale misfits functions (tile, frequency, joint methods) based on chi-factor." + }, + "initial_beta_ratio": { + "min": 0.0, + "precision": 2, + "group": "Cooling schedule/target", + "optional": true, + "enabled": true, + "label": "Initial beta ratio", + "value": 100.0, + "verbose": 2, + "tooltip": "Estimate the trade-off parameter by scaling the ratio between the largest derivatives in the objective function gradients." + }, + "initial_beta": { + "min": 0.0, + "group": "Cooling schedule/target", + "optional": true, + "enabled": false, + "dependency": "initial_beta_ratio", + "dependencyType": "disabled", + "label": "Initial beta", + "value": 1.0, + "verbose": 2, + "tooltip": "Trade-off parameter between data misfit and regularization." + }, + "coolingFactor": { + "group": "Cooling schedule/target", + "label": "Beta cooling factor", + "tooltip": "Each beta cooling step will be calculated by dividing the current beta by this factor.", + "value": 2.0, + "min": 1.1, + "max": 100, + "precision": 1, + "lineEdit": false, + "verbose": 2 + }, + "coolingRate": { + "group": "Optimization", + "label": "Iterations per beta", + "value": 2, + "min": 1, + "LineEdit": false, + "max": 10, + "precision": 1, + "verbose": 2, + "enabled": true, + "tooltip": "Set the number of iterations per beta value. Use higher values for more non-linear optimization problems." + }, + "max_global_iterations": { + "min": 1, + "lineEdit": false, + "group": "Optimization", + "label": "Maximum iterations", + "tooltip": "Number of L2 and IRLS iterations combined", + "value": 50, + "enabled": true + }, + "max_line_search_iterations": { + "group": "Optimization", + "label": "Maximum number of line searches", + "value": 20, + "min": 1, + "enabled": true, + "verbose": 3, + "tooltip": "Perform an Armijo backtracking linesearch for the provided number of iterations." + }, + "max_cg_iterations": { + "min": 0, + "group": "Optimization", + "label": "Maximum CG iterations", + "value": 30, + "enabled": true, + "verbose": 2 + }, + "tol_cg": { + "min": 0, + "group": "Optimization", + "label": "Conjugate gradient tolerance", + "value": 0.0001, + "enabled": true, + "verbose": 3 + }, + "f_min_change": { + "group": "Optimization", + "label": "Minimum change in objective function", + "value": 0.01, + "min": 1e-06, + "verbose": 3, + "enabled": true, + "tooltip": "Minimum decrease in regularization beyond which the IRLS procedure is deemed to have completed." + }, + "sens_wts_threshold": { + "group": "Update sensitivity weights directive", + "tooltip": "Update sensitivity weight threshold", + "label": "Threshold (%)", + "value": 0.001, + "max": 100.0, + "min": 0.0, + "precision": 3, + "enabled": true, + "verbose": 2 + }, + "every_iteration_bool": { + "group": "Update sensitivity weights directive", + "tooltip": "Update weights at every iteration", + "label": "Every iteration", + "value": true, + "verbose": 2, + "enabled": true + }, + "save_sensitivities": { + "group": "Update sensitivity weights directive", + "label": "Save sensitivities", + "tooltip": "Save the summed square row sensitivities to geoh5.", + "value": false + }, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": 1, + "store_sensitivities": { + "choiceList": [ + "disk", + "ram" + ], + "group": "Compute", + "label": "Storage device", + "tooltip": "Use disk on a fast local SSD, and RAM elsewhere", + "value": "ram" + }, + "max_ram": "", + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "files_only": { + "label": "Generate files only", + "group": "Python run preferences", + "main": true, + "value": false + }, + "cleanup": { + "main": true, + "group": "Python run preferences", + "label": "Clean directory", + "value": true + }, + "distributed_workers": "", + "chargeability_channel_bool": true +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/joint_cross_gradient_inversion.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/joint_cross_gradient_inversion.ui.json new file mode 100644 index 00000000..9bdec927 --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/joint_cross_gradient_inversion.ui.json @@ -0,0 +1,464 @@ +{ + "version": "0.2.0-alpha.1", + "title": "SimPEG Joint Cross Gradient Inversion", + "icon": "", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "joint cross gradient", + "forward_only": false, + "group_a": { + "main": true, + "group": "Joint", + "label": "Group A", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "value": "" + }, + "group_a_multiplier": { + "min": 0.0, + "main": true, + "group": "Joint", + "label": "Misfit A Scale", + "value": 1.0, + "tooltip": "Constant multiplier for the data misfit function for Group A." + }, + "group_b": { + "main": true, + "group": "Joint", + "label": "Group B", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "value": "" + }, + "group_b_multiplier": { + "min": 0.0, + "main": true, + "group": "Joint", + "label": "Misfit B Scale", + "value": 1.0, + "tooltip": "Constant multiplier for the data misfit function for Group B." + }, + "cross_gradient_weight_a_b": { + "min": 0.0, + "group": "Joint", + "label": "A x B Coupling Scale", + "value": 1.0, + "main": true, + "lineEdit": false, + "tooltip": "Weight applied to the cross gradient regularizations (1: equal weight with the standard Smallness and Smoothness terms.)" + }, + "group_c": { + "main": true, + "group": "Joint", + "label": "Group C", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "optional": true, + "enabled": false, + "value": "" + }, + "group_c_multiplier": { + "min": 0.0, + "main": true, + "group": "Joint", + "label": "Misfit C Scale", + "value": 1.0, + "dependency": "group_c", + "dependencyType": "enabled", + "tooltip": "Constant multiplier for the data misfit function for Group C." + }, + "cross_gradient_weight_c_a": { + "min": 0.0, + "group": "Joint", + "label": "A x C Coupling Scale", + "value": 1.0, + "main": true, + "lineEdit": false, + "dependency": "group_c", + "dependencyType": "enabled", + "tooltip": "Weight applied to the cross gradient regularizations (1: equal weight with the standard Smallness and Smoothness terms.)" + }, + "cross_gradient_weight_c_b": { + "min": 0.0, + "group": "Joint", + "label": "B x C Coupling Scale", + "value": 1.0, + "main": true, + "lineEdit": false, + "dependency": "group_c", + "dependencyType": "enabled", + "tooltip": "Weight applied to the cross gradient regularizations (1: equal weight with the standard Smallness and Smoothness terms.)" + }, + "mesh": { + "group": "Mesh and Models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "enabled": false, + "optional": true + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "inversion_style": "voxel", + "alpha_s": { + "min": 0.0, + "group": "Regularization", + "groupOptional": true, + "label": "Smallness weight", + "value": 1.0, + "tooltip": "Constant ratio compared to other weights. Larger values result in models that remain close to the reference model", + "enabled": false + }, + "length_scale_x": { + "min": 0.0, + "group": "Regularization", + "label": "X-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in x biased smoothness", + "value": 1.0, + "enabled": false + }, + "length_scale_y": { + "min": 0.0, + "group": "Regularization", + "label": "Y-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in y biased smoothness", + "value": 1.0, + "enabled": false + }, + "length_scale_z": { + "min": 0.0, + "group": "Regularization", + "label": "Z-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in z biased smoothess", + "value": 1.0, + "enabled": false + }, + "s_norm": { + "min": 0.0, + "max": 2.0, + "group": "Regularization", + "label": "Smallness norm", + "value": 0.0, + "precision": 2, + "lineEdit": false, + "enabled": false + }, + "x_norm": { + "min": 0.0, + "max": 2.0, + "group": "Regularization", + "label": "X-smoothness norm", + "value": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": false + }, + "y_norm": { + "min": 0.0, + "max": 2.0, + "group": "Regularization", + "label": "Y-smoothness norm", + "value": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": false + }, + "z_norm": { + "min": 0.0, + "max": 2.0, + "group": "Regularization", + "label": "Z-smoothness norm", + "value": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": false + }, + "gradient_type": { + "choiceList": [ + "total", + "components" + ], + "group": "Regularization", + "label": "Gradient type", + "value": "total", + "verbose": 3, + "enabled": false + }, + "max_irls_iterations": { + "min": 0, + "group": "Sparse/blocky model", + "label": "Maximum IRLS iterations", + "tooltip": "Incomplete Re-weighted Least Squares iterations for non-L2 problems", + "value": 25, + "enabled": true, + "verbose": 2 + }, + "starting_chi_factor": { + "group": "Sparse/blocky model", + "label": "IRLS start chi factor", + "enabled": true, + "value": 1.0, + "tooltip": "This chi factor will be used to determine the misfit threshold after which IRLS iterations begin.", + "verbose": 3 + }, + "beta_tol": { + "group": "Update IRLS directive", + "label": "Beta tolerance", + "value": 0.5, + "min": 0.0001, + "verbose": 3, + "visible": false + }, + "prctile": { + "group": "Update IRLS directive", + "label": "Percentile", + "value": 95, + "max": 100, + "min": 5, + "verbose": 3, + "visible": false + }, + "chi_factor": { + "min": 0.1, + "max": 20.0, + "precision": 1, + "lineEdit": false, + "group": "Cooling schedule/target", + "label": "Chi factor", + "value": 1.0, + "enabled": true, + "tooltip": "The global target data misfit value." + }, + "auto_scale_misfits": { + "group": "Cooling schedule/target", + "label": "Auto-scale misfits", + "value": true, + "verbose": 3, + "visible": true, + "tooltip": "Whether to auto-scale misfits functions (tile, frequency, joint methods) based on chi-factor." + }, + "initial_beta_ratio": { + "min": 0.0, + "precision": 2, + "group": "Cooling schedule/target", + "optional": true, + "enabled": true, + "label": "Initial beta ratio", + "value": 100.0, + "verbose": 2, + "tooltip": "Estimate the trade-off parameter by scaling the ratio between the largest derivatives in the objective function gradients." + }, + "initial_beta": { + "min": 0.0, + "group": "Cooling schedule/target", + "optional": true, + "enabled": false, + "dependency": "initial_beta_ratio", + "dependencyType": "disabled", + "label": "Initial beta", + "value": 1.0, + "verbose": 2, + "tooltip": "Trade-off parameter between data misfit and regularization." + }, + "coolingFactor": { + "group": "Cooling schedule/target", + "label": "Beta cooling factor", + "tooltip": "Each beta cooling step will be calculated by dividing the current beta by this factor.", + "value": 2.0, + "min": 1.1, + "max": 100, + "precision": 1, + "lineEdit": false, + "verbose": 2 + }, + "coolingRate": { + "group": "Optimization", + "label": "Iterations per beta", + "value": 1, + "min": 1, + "LineEdit": false, + "max": 10, + "precision": 1, + "verbose": 2, + "enabled": true, + "tooltip": "Set the number of iterations per beta value. Use higher values for more non-linear optimization problems." + }, + "max_global_iterations": { + "min": 1, + "lineEdit": false, + "group": "Optimization", + "label": "Maximum iterations", + "tooltip": "Number of L2 and IRLS iterations combined", + "value": 50, + "enabled": true + }, + "max_line_search_iterations": { + "group": "Optimization", + "label": "Maximum number of line searches", + "value": 20, + "min": 1, + "enabled": true, + "verbose": 3, + "tooltip": "Perform an Armijo backtracking linesearch for the provided number of iterations." + }, + "max_cg_iterations": { + "min": 0, + "group": "Optimization", + "label": "Maximum CG iterations", + "value": 30, + "enabled": true, + "verbose": 2 + }, + "tol_cg": { + "min": 0, + "group": "Optimization", + "label": "Conjugate gradient tolerance", + "value": 0.0001, + "enabled": true, + "verbose": 3 + }, + "f_min_change": { + "group": "Optimization", + "label": "Minimum change in objective function", + "value": 0.01, + "min": 1e-06, + "verbose": 3, + "enabled": true, + "tooltip": "Minimum decrease in regularization beyond which the IRLS procedure is deemed to have completed." + }, + "sens_wts_threshold": { + "group": "Update sensitivity weights directive", + "tooltip": "Update sensitivity weight threshold", + "label": "Threshold (%)", + "value": 0.001, + "max": 100.0, + "min": 0.0, + "precision": 3, + "enabled": true, + "verbose": 2 + }, + "every_iteration_bool": { + "group": "Update sensitivity weights directive", + "tooltip": "Update weights at every iteration", + "label": "Every iteration", + "value": true, + "verbose": 2, + "enabled": true + }, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "store_sensitivities": { + "choiceList": [ + "disk", + "ram" + ], + "group": "Compute", + "label": "Storage device", + "tooltip": "Use disk on a fast local SSD, and RAM elsewhere", + "value": "ram" + }, + "max_ram": "", + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "" +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/joint_surveys_inversion.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/joint_surveys_inversion.ui.json new file mode 100644 index 00000000..74967253 --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/joint_surveys_inversion.ui.json @@ -0,0 +1,543 @@ +{ + "version": "0.2.0-alpha.1", + "title": "SimPEG Joint Surveys Inversion", + "icon": "", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "joint surveys", + "forward_only": false, + "group_a": { + "main": true, + "group": "Joint", + "label": "Group A", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "value": "" + }, + "group_a_multiplier": { + "min": 0.0, + "main": true, + "group": "Joint", + "label": "Misfit A Scale", + "value": 1.0, + "tooltip": "Constant multiplier for the data misfit function for Group A." + }, + "group_b": { + "main": true, + "group": "Joint", + "label": "Group B", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "value": "" + }, + "group_b_multiplier": { + "min": 0.0, + "main": true, + "group": "Joint", + "label": "Misfit B Scale", + "value": 1.0, + "tooltip": "Constant multiplier for the data misfit function for Group B." + }, + "group_c": { + "main": true, + "group": "Joint", + "label": "Group C", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "optional": true, + "enabled": false, + "value": "" + }, + "group_c_multiplier": { + "min": 0.0, + "main": true, + "group": "Joint", + "label": "Misfit C Scale", + "value": 1.0, + "dependency": "group_c", + "dependencyType": "enabled", + "tooltip": "Constant multiplier for the data misfit function for Group C." + }, + "mesh": { + "group": "Mesh and Models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "enabled": false, + "optional": true + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and Models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "starting_model": { + "association": "Cell", + "dataType": "Float", + "group": "Mesh and Models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Initial model", + "property": "", + "optional": true, + "enabled": false, + "value": 0.0001 + }, + "reference_model": { + "association": "Cell", + "main": true, + "dataType": "Float", + "group": "Mesh and Models", + "isValue": true, + "parent": "mesh", + "label": "Reference", + "property": "", + "optional": true, + "value": 0.0001, + "enabled": false + }, + "lower_bound": { + "association": "Cell", + "main": true, + "dataType": "Float", + "group": "Mesh and Models", + "isValue": true, + "parent": "mesh", + "label": "Lower bound)", + "property": "", + "optional": true, + "value": -10.0, + "enabled": false + }, + "upper_bound": { + "association": "Cell", + "main": true, + "dataType": "Float", + "group": "Mesh and Models", + "isValue": true, + "parent": "mesh", + "label": "Upper bound", + "property": "", + "optional": true, + "value": 10.0, + "enabled": false + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "inversion_style": "voxel", + "alpha_s": { + "min": 0.0, + "group": "Regularization", + "label": "Reference weight", + "value": 1.0, + "tooltip": "Constant ratio compared to other weights. Larger values result in models that remain close to the reference model", + "dependency": "reference_model", + "dependencyType": "enabled", + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_x": { + "min": 0.0, + "group": "Regularization", + "label": "X-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in x biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_y": { + "min": 0.0, + "group": "Regularization", + "label": "Y-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in y biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_z": { + "min": 0.0, + "group": "Regularization", + "label": "Z-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in z biased smoothess", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "s_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Smallness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 0.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": true, + "enabled": true, + "dependency": "reference_model", + "dependencyType": "enabled", + "tooltip": "Lp-norm used in the smallness term of the objective function." + }, + "x_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "X-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the x-smoothness term of the objective function." + }, + "y_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Y-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the y-smoothness term of the objective function." + }, + "z_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Z-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the z-smoothness term of the objective function." + }, + "gradient_type": { + "choiceList": [ + "total", + "components" + ], + "group": "Sparse/blocky model", + "label": "Gradient type", + "value": "total", + "verbose": 3, + "tooltip": "Choose whether the IRLS weights for regularization terms are updated using total or partial gradients." + }, + "max_irls_iterations": { + "min": 0, + "group": "Sparse/blocky model", + "label": "Maximum IRLS iterations", + "tooltip": "Incomplete Re-weighted Least Squares iterations for non-L2 problems", + "value": 25, + "enabled": true, + "verbose": 2 + }, + "starting_chi_factor": { + "group": "Sparse/blocky model", + "label": "IRLS start chi factor", + "enabled": true, + "value": 1.0, + "tooltip": "This chi factor will be used to determine the misfit threshold after which IRLS iterations begin.", + "verbose": 3 + }, + "beta_tol": { + "group": "Update IRLS directive", + "label": "Beta tolerance", + "value": 0.5, + "min": 0.0001, + "verbose": 3, + "visible": false + }, + "prctile": { + "group": "Update IRLS directive", + "label": "Percentile", + "value": 95, + "max": 100, + "min": 5, + "verbose": 3, + "visible": false + }, + "chi_factor": { + "min": 0.1, + "max": 20.0, + "precision": 1, + "lineEdit": false, + "group": "Cooling schedule/target", + "label": "Chi factor", + "value": 1.0, + "enabled": true, + "tooltip": "The global target data misfit value." + }, + "auto_scale_misfits": { + "group": "Cooling schedule/target", + "label": "Auto-scale misfits", + "value": true, + "verbose": 3, + "visible": true, + "tooltip": "Whether to auto-scale misfits functions (tile, frequency, joint methods) based on chi-factor." + }, + "initial_beta_ratio": { + "min": 0.0, + "precision": 2, + "group": "Cooling schedule/target", + "optional": true, + "enabled": true, + "label": "Initial beta ratio", + "value": 100.0, + "verbose": 2, + "tooltip": "Estimate the trade-off parameter by scaling the ratio between the largest derivatives in the objective function gradients." + }, + "initial_beta": { + "min": 0.0, + "group": "Cooling schedule/target", + "optional": true, + "enabled": false, + "dependency": "initial_beta_ratio", + "dependencyType": "disabled", + "label": "Initial beta", + "value": 1.0, + "verbose": 2, + "tooltip": "Trade-off parameter between data misfit and regularization." + }, + "coolingFactor": { + "group": "Cooling schedule/target", + "label": "Beta cooling factor", + "tooltip": "Each beta cooling step will be calculated by dividing the current beta by this factor.", + "value": 2.0, + "min": 1.1, + "max": 100, + "precision": 1, + "lineEdit": false, + "verbose": 2 + }, + "coolingRate": { + "group": "Optimization", + "label": "Iterations per beta", + "value": 1, + "min": 1, + "LineEdit": false, + "max": 10, + "precision": 1, + "verbose": 2, + "enabled": true, + "tooltip": "Set the number of iterations per beta value. Use higher values for more non-linear optimization problems." + }, + "max_global_iterations": { + "min": 1, + "lineEdit": false, + "group": "Optimization", + "label": "Maximum iterations", + "tooltip": "Number of L2 and IRLS iterations combined", + "value": 50, + "enabled": true + }, + "max_line_search_iterations": { + "group": "Optimization", + "label": "Maximum number of line searches", + "value": 20, + "min": 1, + "enabled": true, + "verbose": 3, + "tooltip": "Perform an Armijo backtracking linesearch for the provided number of iterations." + }, + "max_cg_iterations": { + "min": 0, + "group": "Optimization", + "label": "Maximum CG iterations", + "value": 30, + "enabled": true, + "verbose": 2 + }, + "tol_cg": { + "min": 0, + "group": "Optimization", + "label": "Conjugate gradient tolerance", + "value": 0.0001, + "enabled": true, + "verbose": 3 + }, + "f_min_change": { + "group": "Optimization", + "label": "Minimum change in objective function", + "value": 0.01, + "min": 1e-06, + "verbose": 3, + "enabled": true, + "tooltip": "Minimum decrease in regularization beyond which the IRLS procedure is deemed to have completed." + }, + "sens_wts_threshold": { + "group": "Update sensitivity weights directive", + "tooltip": "Update sensitivity weight threshold", + "label": "Threshold (%)", + "value": 0.001, + "max": 100.0, + "min": 0.0, + "precision": 3, + "enabled": true, + "verbose": 2 + }, + "every_iteration_bool": { + "group": "Update sensitivity weights directive", + "tooltip": "Update weights at every iteration", + "label": "Every iteration", + "value": true, + "verbose": 2, + "enabled": true + }, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "store_sensitivities": { + "choiceList": [ + "disk", + "ram" + ], + "group": "Compute", + "label": "Storage device", + "tooltip": "Use disk on a fast local SSD, and RAM elsewhere", + "value": "ram" + }, + "max_ram": "", + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "" +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/magnetic_scalar_forward.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/magnetic_scalar_forward.ui.json new file mode 100644 index 00000000..5edd3802 --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/magnetic_scalar_forward.ui.json @@ -0,0 +1,258 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Magnetic Forward", + "icon": "surveyairbornemagnetics", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "magnetic scalar", + "forward_only": true, + "inducing_field_strength": { + "min": 0.0, + "max": 100000.0, + "precision": 2, + "lineEdit": false, + "main": true, + "group": "Inducing Field", + "label": "Strength (nT)", + "value": 50000.0 + }, + "inducing_field_inclination": { + "min": -90.0, + "max": 90.0, + "precision": 2, + "lineEdit": false, + "main": true, + "group": "Inducing Field", + "label": "Inclination (deg)", + "value": 90.0 + }, + "inducing_field_declination": { + "min": -180.0, + "max": 180.0, + "precision": 2, + "lineEdit": false, + "main": true, + "group": "Inducing Field", + "label": "Declination (deg)", + "value": 0.0 + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "data_object": { + "main": true, + "group": "Survey", + "label": "Object", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}", + "{4b99204c-d133-4579-a916-a9c8b98cfccb}", + "{028e4905-cc97-4dab-b1bf-d76f58b501b5}" + ], + "value": "" + }, + "tmi_channel_bool": { + "group": "Survey", + "main": true, + "label": "TMI (nT)", + "value": true + }, + "bx_channel_bool": { + "group": "Survey", + "main": true, + "label": "Bx (nT)", + "value": false + }, + "by_channel_bool": { + "group": "Survey", + "main": true, + "label": "By (nT)", + "value": false + }, + "bz_channel_bool": { + "group": "Survey", + "main": true, + "label": "Bz (nT)", + "value": false + }, + "bxx_channel_bool": { + "group": "Survey", + "main": true, + "label": "Bxx (nT/m)", + "value": false + }, + "bxy_channel_bool": { + "group": "Survey", + "main": true, + "label": "Bxy (nT/m)", + "value": false + }, + "bxz_channel_bool": { + "group": "Survey", + "main": true, + "label": "Bxz (nT/m)", + "value": false + }, + "byy_channel_bool": { + "group": "Survey", + "main": true, + "label": "Byy (nT/m)", + "value": false + }, + "byz_channel_bool": { + "group": "Survey", + "main": true, + "label": "Byz (nT/m)", + "value": false + }, + "bzz_channel_bool": { + "group": "Survey", + "main": true, + "label": "Bzz (nT/m)", + "value": false + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "tooltip": "Select a mesh for the inversion." + }, + "starting_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Susceptibility (si)", + "property": "", + "value": 0.0001 + }, + "output_tile_files": false, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": { + "group": "Compute", + "label": "Number of tiles", + "parent": "data_object", + "isValue": true, + "property": "", + "value": 1, + "min": 1, + "max": 1000, + "verbose": 2, + "tooltip": "Splits the objective function into spatial tiles for distributed computation using the Dask library." + }, + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "ga_group": "", + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "" +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/magnetic_scalar_inversion.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/magnetic_scalar_inversion.ui.json new file mode 100644 index 00000000..5991b367 --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/magnetic_scalar_inversion.ui.json @@ -0,0 +1,855 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Magnetic Inversion", + "icon": "surveyairbornemagnetics", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "magnetic scalar", + "forward_only": false, + "inducing_field_strength": { + "min": 0.0, + "max": 100000.0, + "precision": 2, + "lineEdit": false, + "main": true, + "group": "Inducing Field", + "label": "Strength (nT)", + "value": 50000.0 + }, + "inducing_field_inclination": { + "min": -90.0, + "max": 90.0, + "precision": 2, + "lineEdit": false, + "main": true, + "group": "Inducing Field", + "label": "Inclination (deg)", + "value": 90.0 + }, + "inducing_field_declination": { + "min": -180.0, + "max": 180.0, + "precision": 2, + "lineEdit": false, + "main": true, + "group": "Inducing Field", + "label": "Declination (deg)", + "value": 0.0 + }, + "data_object": { + "main": true, + "group": "Data", + "label": "Object", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}", + "{4b99204c-d133-4579-a916-a9c8b98cfccb}", + "{028e4905-cc97-4dab-b1bf-d76f58b501b5}" + ], + "value": "" + }, + "tmi_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "TMI (nT)", + "parent": "data_object", + "optional": true, + "enabled": true, + "value": "" + }, + "tmi_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "tmi_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "bx_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Bx (nT)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "bx_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "bx_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "by_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "By (nT)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "by_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "by_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "bz_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Bz (nT)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "bz_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "bz_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "bxx_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Bxx (nT/m)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "bxx_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "bxx_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "bxy_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Bxy (nT/m)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "bxy_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "bxy_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "bxz_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Bxz (nT/m)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "bxz_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "bxz_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "byy_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Byy (nT/m)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "byy_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "byy_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "byz_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Byz (nT/m)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "byz_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "byz_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "bzz_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Bzz (nT/m)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "bzz_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "bzz_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "tooltip": "Select a mesh for the inversion." + }, + "starting_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Initial susceptibility (SI)", + "property": "", + "value": 0.0001 + }, + "reference_model": { + "association": [ + "Cell", + "Vertex" + ], + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "optional": true, + "enabled": false, + "parent": "mesh", + "label": "Reference susceptibility (SI)", + "property": "", + "value": 0.0 + }, + "lower_bound": { + "association": [ + "Cell", + "Vertex" + ], + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Lower bound (SI)", + "property": "", + "optional": true, + "value": 0.0, + "enabled": false + }, + "upper_bound": { + "association": [ + "Cell", + "Vertex" + ], + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Upper bound (SI)", + "property": "", + "optional": true, + "value": 1.0, + "enabled": false + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "inversion_style": "voxel", + "alpha_s": { + "min": 0.0, + "group": "Regularization", + "label": "Reference weight", + "value": 1.0, + "tooltip": "Constant ratio compared to other weights. Larger values result in models that remain close to the reference model", + "dependency": "reference_model", + "dependencyType": "enabled", + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_x": { + "min": 0.0, + "group": "Regularization", + "label": "X-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in x biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_y": { + "min": 0.0, + "group": "Regularization", + "label": "Y-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in y biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_z": { + "min": 0.0, + "group": "Regularization", + "label": "Z-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in z biased smoothess", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "s_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Smallness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 0.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": true, + "enabled": true, + "dependency": "reference_model", + "dependencyType": "enabled", + "tooltip": "Lp-norm used in the smallness term of the objective function." + }, + "x_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "X-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the x-smoothness term of the objective function." + }, + "y_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Y-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the y-smoothness term of the objective function." + }, + "z_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Z-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the z-smoothness term of the objective function." + }, + "gradient_type": { + "choiceList": [ + "total", + "components" + ], + "group": "Sparse/blocky model", + "label": "Gradient type", + "value": "total", + "verbose": 3, + "tooltip": "Choose whether the IRLS weights for regularization terms are updated using total or partial gradients." + }, + "max_irls_iterations": { + "min": 0, + "group": "Sparse/blocky model", + "label": "Maximum IRLS iterations", + "tooltip": "Incomplete Re-weighted Least Squares iterations for non-L2 problems", + "value": 25, + "enabled": true, + "verbose": 2 + }, + "starting_chi_factor": { + "group": "Sparse/blocky model", + "label": "IRLS start chi factor", + "enabled": true, + "value": 1.0, + "tooltip": "This chi factor will be used to determine the misfit threshold after which IRLS iterations begin.", + "verbose": 3 + }, + "beta_tol": { + "group": "Update IRLS directive", + "label": "Beta tolerance", + "value": 0.5, + "min": 0.0001, + "verbose": 3, + "visible": false + }, + "prctile": { + "group": "Update IRLS directive", + "label": "Percentile", + "value": 95, + "max": 100, + "min": 5, + "verbose": 3, + "visible": false + }, + "chi_factor": { + "min": 0.1, + "max": 20.0, + "precision": 1, + "lineEdit": false, + "group": "Cooling schedule/target", + "label": "Chi factor", + "value": 1.0, + "enabled": true, + "tooltip": "The global target data misfit value." + }, + "auto_scale_misfits": { + "group": "Cooling schedule/target", + "label": "Auto-scale misfits", + "value": true, + "verbose": 3, + "visible": true, + "tooltip": "Whether to auto-scale misfits functions (tile, frequency, joint methods) based on chi-factor." + }, + "initial_beta_ratio": { + "min": 0.0, + "precision": 2, + "group": "Cooling schedule/target", + "optional": true, + "enabled": true, + "label": "Initial beta ratio", + "value": 100.0, + "verbose": 2, + "tooltip": "Estimate the trade-off parameter by scaling the ratio between the largest derivatives in the objective function gradients." + }, + "initial_beta": { + "min": 0.0, + "group": "Cooling schedule/target", + "optional": true, + "enabled": false, + "dependency": "initial_beta_ratio", + "dependencyType": "disabled", + "label": "Initial beta", + "value": 1.0, + "verbose": 2, + "tooltip": "Trade-off parameter between data misfit and regularization." + }, + "coolingFactor": { + "group": "Cooling schedule/target", + "label": "Beta cooling factor", + "tooltip": "Each beta cooling step will be calculated by dividing the current beta by this factor.", + "value": 2.0, + "min": 1.1, + "max": 100, + "precision": 1, + "lineEdit": false, + "verbose": 2 + }, + "coolingRate": { + "group": "Optimization", + "label": "Iterations per beta", + "value": 1, + "min": 1, + "LineEdit": false, + "max": 10, + "precision": 1, + "verbose": 2, + "enabled": true + }, + "max_global_iterations": { + "min": 1, + "lineEdit": false, + "group": "Optimization", + "label": "Maximum iterations", + "tooltip": "Number of L2 and IRLS iterations combined", + "value": 50, + "enabled": true + }, + "max_line_search_iterations": { + "group": "Optimization", + "label": "Maximum number of line searches", + "value": 20, + "min": 1, + "enabled": true, + "verbose": 3, + "tooltip": "Perform an Armijo backtracking linesearch for the provided number of iterations." + }, + "max_cg_iterations": { + "min": 0, + "group": "Optimization", + "label": "Maximum CG iterations", + "value": 30, + "enabled": true, + "verbose": 2 + }, + "tol_cg": { + "min": 0, + "group": "Optimization", + "label": "Conjugate gradient tolerance", + "value": 0.0001, + "enabled": true, + "verbose": 3 + }, + "f_min_change": { + "group": "Optimization", + "label": "Minimum change in objective function", + "value": 0.01, + "min": 1e-06, + "verbose": 3, + "enabled": true, + "tooltip": "Minimum decrease in regularization beyond which the IRLS procedure is deemed to have completed." + }, + "sens_wts_threshold": { + "group": "Update sensitivity weights directive", + "tooltip": "Update sensitivity weight threshold", + "label": "Threshold (%)", + "value": 0.001, + "max": 100.0, + "min": 0.0, + "precision": 3, + "enabled": true, + "verbose": 2 + }, + "every_iteration_bool": { + "group": "Update sensitivity weights directive", + "tooltip": "Update weights at every iteration", + "label": "Every iteration", + "value": false, + "verbose": 2, + "enabled": true + }, + "save_sensitivities": { + "group": "Update sensitivity weights directive", + "label": "Save sensitivities", + "tooltip": "Save the summed square row sensitivities to geoh5.", + "value": false + }, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": { + "group": "Compute", + "label": "Number of tiles", + "parent": "data_object", + "isValue": true, + "property": "", + "value": 1, + "min": 1, + "max": 1000, + "verbose": 2, + "tooltip": "Splits the objective function into spatial tiles for distributed computation using the Dask library." + }, + "store_sensitivities": { + "choiceList": [ + "disk", + "ram" + ], + "group": "Compute", + "label": "Storage device", + "tooltip": "Use disk on a fast local SSD, and RAM elsewhere", + "value": "ram" + }, + "max_ram": "", + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "ga_group": "", + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "" +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/magnetic_vector_forward.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/magnetic_vector_forward.ui.json new file mode 100644 index 00000000..0273839c --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/magnetic_vector_forward.ui.json @@ -0,0 +1,290 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Magnetic Vector (MVI) Forward", + "icon": "surveyairbornemagnetics", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "magnetic vector", + "forward_only": true, + "inducing_field_strength": { + "min": 0.1, + "max": 100000.0, + "precision": 2, + "lineEdit": false, + "main": true, + "group": "Inducing Field", + "label": "Strength (nT)", + "value": 50000.0 + }, + "inducing_field_inclination": { + "min": -90.0, + "max": 90.0, + "precision": 2, + "lineEdit": false, + "main": true, + "group": "Inducing Field", + "label": "Inclination (deg)", + "value": 90.0 + }, + "inducing_field_declination": { + "min": -180.0, + "max": 180.0, + "precision": 2, + "lineEdit": false, + "main": true, + "group": "Inducing Field", + "label": "Declination (deg)", + "value": 0.0 + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "data_object": { + "main": true, + "group": "Survey", + "label": "Object", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}", + "{4b99204c-d133-4579-a916-a9c8b98cfccb}", + "{028e4905-cc97-4dab-b1bf-d76f58b501b5}" + ], + "value": "" + }, + "tmi_channel_bool": { + "group": "Survey", + "main": true, + "label": "TMI (nT)", + "value": true + }, + "bx_channel_bool": { + "group": "Survey", + "main": true, + "label": "Bx (nT)", + "value": false + }, + "by_channel_bool": { + "group": "Survey", + "main": true, + "label": "By (nT)", + "value": false + }, + "bz_channel_bool": { + "group": "Survey", + "main": true, + "label": "Bz (nT)", + "value": false + }, + "bxx_channel_bool": { + "group": "Survey", + "main": true, + "label": "Bxx (nT/m)", + "value": false + }, + "bxy_channel_bool": { + "group": "Survey", + "main": true, + "label": "Bxy (nT/m)", + "value": false + }, + "bxz_channel_bool": { + "group": "Survey", + "main": true, + "label": "Bxz (nT/m)", + "value": false + }, + "byy_channel_bool": { + "group": "Survey", + "main": true, + "label": "Byy (nT/m)", + "value": false + }, + "byz_channel_bool": { + "group": "Survey", + "main": true, + "label": "Byz (nT/m)", + "value": false + }, + "bzz_channel_bool": { + "group": "Survey", + "main": true, + "label": "Bzz (nT/m)", + "value": false + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "tooltip": "Select a mesh for the inversion." + }, + "starting_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Susceptibility (si)", + "property": "", + "value": 0.0001 + }, + "starting_inclination": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "optional": true, + "enabled": false, + "parent": "mesh", + "label": "Inclination (deg)", + "property": "", + "value": 0.0 + }, + "starting_declination": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "optional": true, + "enabled": false, + "parent": "mesh", + "label": "Declination (deg)", + "property": "", + "value": 0.0 + }, + "output_tile_files": false, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": { + "group": "Compute", + "label": "Number of tiles", + "parent": "data_object", + "isValue": true, + "property": "", + "value": 1, + "min": 1, + "max": 1000, + "verbose": 2, + "tooltip": "Splits the objective function into spatial tiles for distributed computation using the Dask library." + }, + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "ga_group": "", + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "" +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/magnetic_vector_inversion.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/magnetic_vector_inversion.ui.json new file mode 100644 index 00000000..c04086e2 --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/magnetic_vector_inversion.ui.json @@ -0,0 +1,919 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Magnetic Vector (MVI) Inversion", + "icon": "surveyairbornemagnetics", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "magnetic vector", + "forward_only": false, + "inducing_field_strength": { + "min": 0.1, + "max": 100000.0, + "precision": 2, + "lineEdit": false, + "main": true, + "group": "Inducing Field", + "label": "Strength (nT)", + "value": 50000.0 + }, + "inducing_field_inclination": { + "min": -90.0, + "max": 90.0, + "precision": 2, + "lineEdit": false, + "main": true, + "group": "Inducing Field", + "label": "Inclination (deg)", + "value": 90.0 + }, + "inducing_field_declination": { + "min": -180.0, + "max": 180.0, + "precision": 2, + "lineEdit": false, + "main": true, + "group": "Inducing Field", + "label": "Declination (deg)", + "value": 0.0 + }, + "data_object": { + "main": true, + "group": "Data", + "label": "Object", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}", + "{4b99204c-d133-4579-a916-a9c8b98cfccb}", + "{028e4905-cc97-4dab-b1bf-d76f58b501b5}" + ], + "value": "" + }, + "tmi_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "TMI (nT)", + "parent": "data_object", + "optional": true, + "enabled": true, + "value": "" + }, + "tmi_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "tmi_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "bx_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Bx (nT)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "bx_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "bx_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "by_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "By (nT)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "by_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "by_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "bz_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Bz (nT)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "bz_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "bz_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "bxx_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Bxx (nT/m)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "bxx_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "bxx_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "bxy_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Bxy (nT/m)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "bxy_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "bxy_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "bxz_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Bxz (nT/m)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "bxz_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "bxz_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "byy_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Byy (nT/m)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "byy_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "byy_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "byz_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Byz (nT/m)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "byz_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "byz_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "bzz_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "label": "Bzz (nT/m)", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "bzz_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "main": true, + "isValue": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "bzz_channel", + "dependencyType": "enabled", + "property": "", + "value": 1.0 + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "tooltip": "Select a mesh for the inversion." + }, + "starting_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Initial susceptibility (SI)", + "property": "", + "value": 0.0001 + }, + "reference_model": { + "association": [ + "Cell", + "Vertex" + ], + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "optional": true, + "enabled": false, + "parent": "mesh", + "label": "Reference susceptibility (SI)", + "property": "", + "value": 0.0 + }, + "lower_bound": { + "association": [ + "Cell", + "Vertex" + ], + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Lower bound (SI)", + "property": "", + "optional": true, + "value": 0.0, + "enabled": false + }, + "upper_bound": { + "association": [ + "Cell", + "Vertex" + ], + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Upper bound (SI)", + "property": "", + "optional": true, + "value": 1.0, + "enabled": false + }, + "starting_inclination": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "optional": true, + "enabled": false, + "parent": "mesh", + "label": "Initial inclination (deg)", + "property": "", + "value": 0.0 + }, + "starting_declination": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "optional": true, + "enabled": false, + "parent": "mesh", + "label": "Initial declination (deg)", + "property": "", + "value": 0.0 + }, + "reference_inclination": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "optional": true, + "enabled": false, + "label": "Reference inclination (deg)", + "parent": "mesh", + "property": "", + "value": 0.0 + }, + "reference_declination": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "optional": true, + "enabled": false, + "label": "Reference declination (deg)", + "parent": "mesh", + "property": "", + "value": 0.0 + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "inversion_style": "voxel", + "alpha_s": { + "min": 0.0, + "group": "Regularization", + "label": "Reference weight", + "value": 1.0, + "tooltip": "Constant ratio compared to other weights. Larger values result in models that remain close to the reference model", + "dependency": "reference_model", + "dependencyType": "enabled", + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_x": { + "min": 0.0, + "group": "Regularization", + "label": "X-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in x biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_y": { + "min": 0.0, + "group": "Regularization", + "label": "Y-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in y biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_z": { + "min": 0.0, + "group": "Regularization", + "label": "Z-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in z biased smoothess", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "s_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Smallness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 0.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": true, + "enabled": true, + "dependency": "reference_model", + "dependencyType": "enabled", + "tooltip": "Lp-norm used in the smallness term of the objective function." + }, + "x_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "X-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the x-smoothness term of the objective function." + }, + "y_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Y-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the y-smoothness term of the objective function." + }, + "z_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Z-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the z-smoothness term of the objective function." + }, + "gradient_type": { + "choiceList": [ + "total", + "components" + ], + "group": "Sparse/blocky model", + "label": "Gradient type", + "value": "total", + "verbose": 3, + "tooltip": "Choose whether the IRLS weights for regularization terms are updated using total or partial gradients." + }, + "max_irls_iterations": { + "min": 0, + "group": "Sparse/blocky model", + "label": "Maximum IRLS iterations", + "tooltip": "Incomplete Re-weighted Least Squares iterations for non-L2 problems", + "value": 25, + "enabled": true, + "verbose": 2 + }, + "starting_chi_factor": { + "group": "Sparse/blocky model", + "label": "IRLS start chi factor", + "enabled": true, + "value": 1.0, + "tooltip": "This chi factor will be used to determine the misfit threshold after which IRLS iterations begin.", + "verbose": 3 + }, + "beta_tol": { + "group": "Update IRLS directive", + "label": "Beta tolerance", + "value": 0.5, + "min": 0.0001, + "verbose": 3, + "visible": false + }, + "prctile": { + "group": "Update IRLS directive", + "label": "Percentile", + "value": 95, + "max": 100, + "min": 5, + "verbose": 3, + "visible": false + }, + "chi_factor": { + "min": 0.1, + "max": 20.0, + "precision": 1, + "lineEdit": false, + "group": "Cooling schedule/target", + "label": "Chi factor", + "value": 1.0, + "enabled": true, + "tooltip": "The global target data misfit value." + }, + "auto_scale_misfits": { + "group": "Cooling schedule/target", + "label": "Auto-scale misfits", + "value": true, + "verbose": 3, + "visible": true, + "tooltip": "Whether to auto-scale misfits functions (tile, frequency, joint methods) based on chi-factor." + }, + "initial_beta_ratio": { + "min": 0.0, + "precision": 2, + "group": "Cooling schedule/target", + "optional": true, + "enabled": true, + "label": "Initial beta ratio", + "value": 100.0, + "verbose": 2, + "tooltip": "Estimate the trade-off parameter by scaling the ratio between the largest derivatives in the objective function gradients." + }, + "initial_beta": { + "min": 0.0, + "group": "Cooling schedule/target", + "optional": true, + "enabled": false, + "dependency": "initial_beta_ratio", + "dependencyType": "disabled", + "label": "Initial beta", + "value": 1.0, + "verbose": 2, + "tooltip": "Trade-off parameter between data misfit and regularization." + }, + "coolingFactor": { + "group": "Cooling schedule/target", + "label": "Beta cooling factor", + "tooltip": "Each beta cooling step will be calculated by dividing the current beta by this factor.", + "value": 2.0, + "min": 1.1, + "max": 100, + "precision": 1, + "lineEdit": false, + "verbose": 2 + }, + "coolingRate": { + "group": "Optimization", + "label": "Iterations per beta", + "value": 1, + "min": 1, + "LineEdit": false, + "max": 10, + "precision": 1, + "verbose": 2, + "enabled": true + }, + "max_global_iterations": { + "min": 1, + "lineEdit": false, + "group": "Optimization", + "label": "Maximum iterations", + "tooltip": "Number of L2 and IRLS iterations combined", + "value": 50, + "enabled": true + }, + "max_line_search_iterations": { + "group": "Optimization", + "label": "Maximum number of line searches", + "value": 20, + "min": 1, + "enabled": true, + "verbose": 3, + "tooltip": "Perform an Armijo backtracking linesearch for the provided number of iterations." + }, + "max_cg_iterations": { + "min": 0, + "group": "Optimization", + "label": "Maximum CG iterations", + "value": 30, + "enabled": true, + "verbose": 2 + }, + "tol_cg": { + "min": 0, + "group": "Optimization", + "label": "Conjugate gradient tolerance", + "value": 0.0001, + "enabled": true, + "verbose": 3 + }, + "f_min_change": { + "group": "Optimization", + "label": "Minimum change in objective function", + "value": 0.01, + "min": 1e-06, + "verbose": 3, + "enabled": true, + "tooltip": "Minimum decrease in regularization beyond which the IRLS procedure is deemed to have completed." + }, + "sens_wts_threshold": { + "group": "Update sensitivity weights directive", + "tooltip": "Update sensitivity weight threshold", + "label": "Threshold (%)", + "value": 0.001, + "max": 100.0, + "min": 0.0, + "precision": 3, + "enabled": true, + "verbose": 2 + }, + "every_iteration_bool": { + "group": "Update sensitivity weights directive", + "tooltip": "Update weights at every iteration", + "label": "Every iteration", + "value": false, + "verbose": 2, + "enabled": true + }, + "save_sensitivities": { + "group": "Update sensitivity weights directive", + "label": "Save sensitivities", + "tooltip": "Save the summed square row sensitivities to geoh5.", + "value": false + }, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": { + "group": "Compute", + "label": "Number of tiles", + "parent": "data_object", + "isValue": true, + "property": "", + "value": 1, + "min": 1, + "max": 1000, + "verbose": 2, + "tooltip": "Splits the objective function into spatial tiles for distributed computation using the Dask library." + }, + "store_sensitivities": { + "choiceList": [ + "disk", + "ram" + ], + "group": "Compute", + "label": "Storage device", + "tooltip": "Use disk on a fast local SSD, and RAM elsewhere", + "value": "ram" + }, + "max_ram": "", + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "ga_group": "", + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "" +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/magnetotellurics_forward.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/magnetotellurics_forward.ui.json new file mode 100644 index 00000000..a95b3af4 --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/magnetotellurics_forward.ui.json @@ -0,0 +1,259 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Magnetotellurics (MT) Forward", + "icon": "surveymagnetotellurics", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "magnetotellurics", + "forward_only": true, + "data_object": { + "main": true, + "group": "Survey", + "label": "Object", + "meshType": "{b99bd6e5-4fe1-45a5-bd2f-75fc31f91b38}", + "value": "" + }, + "z_from_topo": { + "group": "Data pre-processing", + "label": "Take z from topography", + "tooltip": "Sets survey elevation to topography before any offsets are applied.", + "value": false, + "verbose": 3, + "visible": false + }, + "receivers_radar_drape": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data pre-processing", + "label": "Z radar offset", + "tooltip": "Apply a non-homogeneous offset to survey object from radar channel.", + "optional": true, + "parent": "data_object", + "value": "", + "enabled": false, + "verbose": 3, + "visible": false + }, + "receivers_offset_z": { + "group": "Data pre-processing", + "label": "Z static offset", + "optional": true, + "enabled": false, + "value": 0.0, + "verbose": 3, + "visible": false + }, + "gps_receivers_offset": "", + "zxx_real_channel_bool": { + "group": "Survey", + "main": true, + "label": "Zxx real", + "value": true + }, + "zxx_imag_channel_bool": { + "group": "Survey", + "main": true, + "label": "Zxx imaginary", + "value": true + }, + "zxy_real_channel_bool": { + "group": "Survey", + "main": true, + "label": "Zxy real", + "value": true + }, + "zxy_imag_channel_bool": { + "group": "Survey", + "main": true, + "label": "Zxy imaginary", + "value": true + }, + "zyx_real_channel_bool": { + "group": "Survey", + "main": true, + "label": "Zyx real", + "value": true + }, + "zyx_imag_channel_bool": { + "group": "Survey", + "main": true, + "label": "Zyx imaginary", + "value": true + }, + "zyy_real_channel_bool": { + "group": "Survey", + "main": true, + "label": "Zyy real", + "value": true + }, + "zyy_imag_channel_bool": { + "group": "Survey", + "main": true, + "label": "Zyy imaginary", + "value": true + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "tooltip": "Select a mesh for the inversion." + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "background_conductivity": { + "group": "Mesh and models", + "main": true, + "label": "Background", + "property": "", + "value": 0.001 + }, + "starting_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Value(s)", + "property": "", + "value": 0.001 + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": { + "group": "Compute", + "label": "Number of tiles", + "parent": "data_object", + "isValue": true, + "property": "", + "value": 1, + "min": 1, + "max": 1000, + "verbose": 2, + "tooltip": "Splits the objective function into spatial tiles for distributed computation using the Dask library." + }, + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "" +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/magnetotellurics_inversion.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/magnetotellurics_inversion.ui.json new file mode 100644 index 00000000..17d0164e --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/magnetotellurics_inversion.ui.json @@ -0,0 +1,809 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Magnetotellurics (MT) Inversion", + "icon": "surveymagnetotellurics", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "magnetotellurics", + "forward_only": false, + "data_object": { + "main": true, + "group": "Data", + "label": "Object", + "meshType": "{b99bd6e5-4fe1-45a5-bd2f-75fc31f91b38}", + "value": "" + }, + "z_from_topo": { + "group": "Data pre-processing", + "label": "Take z from topography", + "tooltip": "Sets survey elevation to topography before any offsets are applied.", + "value": false, + "verbose": 3, + "visible": false + }, + "receivers_radar_drape": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data pre-processing", + "label": "Z radar offset", + "tooltip": "Apply a non-homogeneous offset to survey object from radar channel.", + "optional": true, + "parent": "data_object", + "value": "", + "enabled": false, + "verbose": 3, + "visible": false + }, + "receivers_offset_z": { + "group": "Data pre-processing", + "label": "Z static offset", + "optional": true, + "enabled": false, + "value": 0.0, + "verbose": 3, + "visible": false + }, + "gps_receivers_offset": "", + "zxx_real_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Zxx real", + "parent": "data_object", + "optional": true, + "enabled": true, + "value": "" + }, + "zxx_real_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "zxx_real_channel", + "dependencyType": "enabled", + "value": "" + }, + "zxx_imag_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Zxx imaginary", + "parent": "data_object", + "optional": true, + "enabled": true, + "value": "" + }, + "zxx_imag_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "zxx_imag_channel", + "dependencyType": "enabled", + "value": "" + }, + "zxy_real_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Zxy real", + "parent": "data_object", + "optional": true, + "enabled": true, + "value": "" + }, + "zxy_real_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "zxy_real_channel", + "dependencyType": "enabled", + "value": "" + }, + "zxy_imag_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Zxy imaginary", + "parent": "data_object", + "optional": true, + "enabled": true, + "value": "" + }, + "zxy_imag_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "zxy_imag_channel", + "dependencyType": "enabled", + "value": "" + }, + "zyx_real_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Zyx real", + "parent": "data_object", + "optional": true, + "enabled": true, + "value": "" + }, + "zyx_real_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "zyx_real_channel", + "dependencyType": "enabled", + "value": "" + }, + "zyx_imag_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Zyx imaginary", + "parent": "data_object", + "optional": true, + "enabled": true, + "value": "" + }, + "zyx_imag_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "zyx_imag_channel", + "dependencyType": "enabled", + "value": "" + }, + "zyy_real_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Zyy real", + "parent": "data_object", + "optional": true, + "enabled": true, + "value": "" + }, + "zyy_real_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "zyy_real_channel", + "dependencyType": "enabled", + "value": "" + }, + "zyy_imag_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Zyy imaginary", + "parent": "data_object", + "optional": true, + "enabled": true, + "value": "" + }, + "zyy_imag_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "zyy_imag_channel", + "dependencyType": "enabled", + "value": "" + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "tooltip": "Select a mesh for the inversion." + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "background_conductivity": { + "group": "Mesh and models", + "main": true, + "label": "Background", + "property": "", + "value": 0.001 + }, + "starting_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Initial", + "property": "", + "value": 0.001 + }, + "reference_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "main": true, + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Reference", + "property": "", + "optional": true, + "enabled": false, + "value": 0.001 + }, + "lower_bound": { + "association": [ + "Cell", + "Vertex" + ], + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Lower bound", + "property": "", + "optional": true, + "value": 1e-08, + "enabled": false + }, + "upper_bound": { + "association": [ + "Cell", + "Vertex" + ], + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Upper bound", + "property": "", + "optional": true, + "value": 100.0, + "enabled": false + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "inversion_style": "voxel", + "alpha_s": { + "min": 0.0, + "group": "Regularization", + "label": "Reference weight", + "value": 1.0, + "tooltip": "Constant ratio compared to other weights. Larger values result in models that remain close to the reference model", + "dependency": "reference_model", + "dependencyType": "enabled", + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_x": { + "min": 0.0, + "group": "Regularization", + "label": "X-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in x biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_y": { + "min": 0.0, + "group": "Regularization", + "label": "Y-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in y biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_z": { + "min": 0.0, + "group": "Regularization", + "label": "Z-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in z biased smoothess", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "s_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Smallness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 0.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": true, + "enabled": true, + "dependency": "reference_model", + "dependencyType": "enabled", + "tooltip": "Lp-norm used in the smallness term of the objective function." + }, + "x_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "X-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the x-smoothness term of the objective function." + }, + "y_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Y-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the y-smoothness term of the objective function." + }, + "z_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Z-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the z-smoothness term of the objective function." + }, + "gradient_type": { + "choiceList": [ + "total", + "components" + ], + "group": "Sparse/blocky model", + "label": "Gradient type", + "value": "total", + "verbose": 3, + "tooltip": "Choose whether the IRLS weights for regularization terms are updated using total or partial gradients." + }, + "max_irls_iterations": { + "min": 0, + "group": "Sparse/blocky model", + "label": "Maximum IRLS iterations", + "tooltip": "Incomplete Re-weighted Least Squares iterations for non-L2 problems", + "value": 25, + "enabled": true, + "verbose": 2 + }, + "starting_chi_factor": { + "group": "Sparse/blocky model", + "label": "IRLS start chi factor", + "enabled": true, + "value": 1.0, + "tooltip": "This chi factor will be used to determine the misfit threshold after which IRLS iterations begin.", + "verbose": 3 + }, + "beta_tol": { + "group": "Update IRLS directive", + "label": "Beta tolerance", + "value": 0.5, + "min": 0.0001, + "verbose": 3, + "visible": false + }, + "prctile": { + "group": "Update IRLS directive", + "label": "Percentile", + "value": 95, + "max": 100, + "min": 5, + "verbose": 3, + "visible": false + }, + "chi_factor": { + "min": 0.1, + "max": 20.0, + "precision": 1, + "lineEdit": false, + "group": "Cooling schedule/target", + "label": "Chi factor", + "value": 1.0, + "enabled": true, + "tooltip": "The global target data misfit value." + }, + "auto_scale_misfits": { + "group": "Cooling schedule/target", + "label": "Auto-scale misfits", + "value": true, + "verbose": 3, + "visible": true, + "tooltip": "Whether to auto-scale misfits functions (tile, frequency, joint methods) based on chi-factor." + }, + "initial_beta_ratio": { + "min": 0.0, + "precision": 2, + "group": "Cooling schedule/target", + "optional": true, + "enabled": true, + "label": "Initial beta ratio", + "value": 100.0, + "verbose": 2, + "tooltip": "Estimate the trade-off parameter by scaling the ratio between the largest derivatives in the objective function gradients." + }, + "initial_beta": { + "min": 0.0, + "group": "Cooling schedule/target", + "optional": true, + "enabled": false, + "dependency": "initial_beta_ratio", + "dependencyType": "disabled", + "label": "Initial beta", + "value": 1.0, + "verbose": 2, + "tooltip": "Trade-off parameter between data misfit and regularization." + }, + "coolingFactor": { + "group": "Cooling schedule/target", + "label": "Beta cooling factor", + "tooltip": "Each beta cooling step will be calculated by dividing the current beta by this factor.", + "value": 2.0, + "min": 1.1, + "max": 100, + "precision": 1, + "lineEdit": false, + "verbose": 2 + }, + "coolingRate": { + "group": "Optimization", + "label": "Iterations per beta", + "value": 2, + "min": 1, + "LineEdit": false, + "max": 10, + "precision": 1, + "verbose": 2, + "enabled": true, + "tooltip": "Set the number of iterations per beta value. Use higher values for more non-linear optimization problems." + }, + "max_global_iterations": { + "min": 1, + "lineEdit": false, + "group": "Optimization", + "label": "Maximum iterations", + "tooltip": "Number of L2 and IRLS iterations combined", + "value": 50, + "enabled": true + }, + "max_line_search_iterations": { + "group": "Optimization", + "label": "Maximum number of line searches", + "value": 20, + "min": 1, + "enabled": true, + "verbose": 3, + "tooltip": "Perform an Armijo backtracking linesearch for the provided number of iterations." + }, + "max_cg_iterations": { + "min": 0, + "group": "Optimization", + "label": "Maximum CG iterations", + "value": 30, + "enabled": true, + "verbose": 2 + }, + "tol_cg": { + "min": 0, + "group": "Optimization", + "label": "Conjugate gradient tolerance", + "value": 0.0001, + "enabled": true, + "verbose": 3 + }, + "f_min_change": { + "group": "Optimization", + "label": "Minimum change in objective function", + "value": 0.01, + "min": 1e-06, + "verbose": 3, + "enabled": true, + "tooltip": "Minimum decrease in regularization beyond which the IRLS procedure is deemed to have completed." + }, + "sens_wts_threshold": { + "group": "Update sensitivity weights directive", + "tooltip": "Update sensitivity weight threshold", + "label": "Threshold (%)", + "value": 1.0, + "max": 100.0, + "min": 0.0, + "precision": 3, + "enabled": true, + "verbose": 2 + }, + "every_iteration_bool": { + "group": "Update sensitivity weights directive", + "tooltip": "Update weights at every iteration", + "label": "Every iteration", + "value": true, + "verbose": 2, + "enabled": true + }, + "save_sensitivities": { + "group": "Update sensitivity weights directive", + "label": "Save sensitivities", + "tooltip": "Save the summed square row sensitivities to geoh5.", + "value": false + }, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": { + "group": "Compute", + "label": "Number of tiles", + "parent": "data_object", + "isValue": true, + "property": "", + "value": 1, + "min": 1, + "max": 1000, + "verbose": 2, + "tooltip": "Splits the objective function into spatial tiles for distributed computation using the Dask library." + }, + "store_sensitivities": { + "choiceList": [ + "disk", + "ram" + ], + "group": "Compute", + "label": "Storage device", + "tooltip": "Use disk on a fast local SSD, and RAM elsewhere", + "value": "ram" + }, + "max_ram": "", + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "" +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/tdem_forward.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/tdem_forward.ui.json new file mode 100644 index 00000000..21b94d59 --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/tdem_forward.ui.json @@ -0,0 +1,203 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Time-domain EM (TEM) Forward", + "icon": "surveyairborneem", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "tdem", + "forward_only": true, + "data_object": { + "main": true, + "group": "Survey", + "label": "Object", + "meshType": [ + "{19730589-fd28-4649-9de0-ad47249d9aba}", + "{deebe11a-b57b-4a03-99d6-8f27b25eb2a8}" + ], + "value": "" + }, + "data_units": { + "choiceList": [ + "dB/dt (T/s)", + "B (T)", + "H (A/m)" + ], + "group": "Survey", + "main": true, + "label": "Data type", + "tooltip": "Set the units of the data.", + "value": "dB/dt (T/s)" + }, + "z_channel_bool": { + "group": "Survey", + "main": true, + "label": "Z component", + "value": true + }, + "x_channel_bool": { + "group": "Survey", + "main": true, + "label": "X component", + "value": true + }, + "y_channel_bool": { + "group": "Survey", + "main": true, + "label": "Y component", + "value": true + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "tooltip": "Select a mesh for the inversion." + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "starting_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Value(s)", + "property": "", + "value": 0.001 + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": { + "group": "Compute", + "label": "Number of tiles", + "parent": "data_object", + "isValue": true, + "property": "", + "value": 1, + "min": 1, + "max": 1000, + "verbose": 2, + "tooltip": "Splits the objective function into spatial tiles for distributed computation using the Dask library." + }, + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "" +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/tdem_inversion.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/tdem_inversion.ui.json new file mode 100644 index 00000000..928db145 --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/tdem_inversion.ui.json @@ -0,0 +1,626 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Time-domain EM (TEM) Inversion", + "icon": "surveyairborneem", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "tdem", + "forward_only": false, + "data_object": { + "main": true, + "group": "Data", + "label": "Object", + "meshType": [ + "{19730589-fd28-4649-9de0-ad47249d9aba}", + "{deebe11a-b57b-4a03-99d6-8f27b25eb2a8}" + ], + "value": "" + }, + "data_units": { + "choiceList": [ + "dB/dt (T/s)", + "B (T)", + "H (A/m)" + ], + "group": "Data", + "main": true, + "label": "Data type", + "tooltip": "Set the units of the data.", + "value": "dB/dt (T/s)" + }, + "z_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "z-component", + "parent": "data_object", + "optional": true, + "enabled": true, + "value": "" + }, + "z_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "z_channel", + "dependencyType": "enabled", + "value": "" + }, + "x_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "x-component", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "x_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "x_channel", + "dependencyType": "enabled", + "value": "" + }, + "y_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "y-component", + "parent": "data_object", + "optional": true, + "enabled": false, + "value": "" + }, + "y_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "y_channel", + "dependencyType": "enabled", + "value": "" + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "tooltip": "Select a mesh for the inversion." + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "starting_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Initial", + "property": "", + "value": 0.001 + }, + "reference_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "main": true, + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Reference", + "property": "", + "optional": true, + "enabled": false, + "value": 0.001 + }, + "lower_bound": { + "association": "Cell", + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Lower bound", + "property": "", + "optional": true, + "value": 1e-08, + "enabled": false + }, + "upper_bound": { + "association": "Cell", + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Upper bound", + "property": "", + "optional": true, + "value": 100.0, + "enabled": false + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "inversion_style": "voxel", + "alpha_s": { + "min": 0.0, + "group": "Regularization", + "label": "Reference weight", + "value": 1.0, + "tooltip": "Constant ratio compared to other weights. Larger values result in models that remain close to the reference model", + "dependency": "reference_model", + "dependencyType": "enabled", + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_x": { + "min": 0.0, + "group": "Regularization", + "label": "X-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in x biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_y": { + "min": 0.0, + "group": "Regularization", + "label": "Y-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in y biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_z": { + "min": 0.0, + "group": "Regularization", + "label": "Z-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in z biased smoothess", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "s_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Smallness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 0.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": true, + "enabled": true, + "dependency": "reference_model", + "dependencyType": "enabled", + "tooltip": "Lp-norm used in the smallness term of the objective function." + }, + "x_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "X-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the x-smoothness term of the objective function." + }, + "y_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Y-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the y-smoothness term of the objective function." + }, + "z_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Z-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the z-smoothness term of the objective function." + }, + "gradient_type": { + "choiceList": [ + "total", + "components" + ], + "group": "Sparse/blocky model", + "label": "Gradient type", + "value": "total", + "verbose": 3, + "tooltip": "Choose whether the IRLS weights for regularization terms are updated using total or partial gradients." + }, + "max_irls_iterations": { + "min": 0, + "group": "Sparse/blocky model", + "label": "Maximum IRLS iterations", + "tooltip": "Incomplete Re-weighted Least Squares iterations for non-L2 problems", + "value": 25, + "enabled": true, + "verbose": 2 + }, + "starting_chi_factor": { + "group": "Sparse/blocky model", + "label": "IRLS start chi factor", + "enabled": true, + "value": 1.0, + "tooltip": "This chi factor will be used to determine the misfit threshold after which IRLS iterations begin.", + "verbose": 3 + }, + "beta_tol": { + "group": "Update IRLS directive", + "label": "Beta tolerance", + "value": 0.5, + "min": 0.0001, + "verbose": 3, + "visible": false + }, + "prctile": { + "group": "Update IRLS directive", + "label": "Percentile", + "value": 95, + "max": 100, + "min": 5, + "verbose": 3, + "visible": false + }, + "chi_factor": { + "min": 0.1, + "max": 20.0, + "precision": 1, + "lineEdit": false, + "group": "Cooling schedule/target", + "label": "Chi factor", + "value": 1.0, + "enabled": true, + "tooltip": "The global target data misfit value." + }, + "auto_scale_misfits": { + "group": "Cooling schedule/target", + "label": "Auto-scale misfits", + "value": true, + "verbose": 3, + "visible": true, + "tooltip": "Whether to auto-scale misfits functions (tile, frequency, joint methods) based on chi-factor." + }, + "initial_beta_ratio": { + "min": 0.0, + "precision": 2, + "group": "Cooling schedule/target", + "optional": true, + "enabled": true, + "label": "Initial beta ratio", + "value": 100.0, + "verbose": 2, + "tooltip": "Estimate the trade-off parameter by scaling the ratio between the largest derivatives in the objective function gradients." + }, + "initial_beta": { + "min": 0.0, + "group": "Cooling schedule/target", + "optional": true, + "enabled": false, + "dependency": "initial_beta_ratio", + "dependencyType": "disabled", + "label": "Initial beta", + "value": 1.0, + "verbose": 2, + "tooltip": "Trade-off parameter between data misfit and regularization." + }, + "coolingFactor": { + "group": "Cooling schedule/target", + "label": "Beta cooling factor", + "tooltip": "Each beta cooling step will be calculated by dividing the current beta by this factor.", + "value": 2.0, + "min": 1.1, + "max": 100, + "precision": 1, + "lineEdit": false, + "verbose": 2 + }, + "coolingRate": { + "group": "Optimization", + "label": "Iterations per beta", + "value": 2, + "min": 1, + "LineEdit": false, + "max": 10, + "precision": 1, + "verbose": 2, + "enabled": true, + "tooltip": "Set the number of iterations per beta value. Use higher values for more non-linear optimization problems." + }, + "max_global_iterations": { + "min": 1, + "lineEdit": false, + "group": "Optimization", + "label": "Maximum iterations", + "tooltip": "Number of L2 and IRLS iterations combined", + "value": 50, + "enabled": true + }, + "max_line_search_iterations": { + "group": "Optimization", + "label": "Maximum number of line searches", + "value": 20, + "min": 1, + "enabled": true, + "verbose": 3, + "tooltip": "Perform an Armijo backtracking linesearch for the provided number of iterations." + }, + "max_cg_iterations": { + "min": 0, + "group": "Optimization", + "label": "Maximum CG iterations", + "value": 30, + "enabled": true, + "verbose": 2 + }, + "tol_cg": { + "min": 0, + "group": "Optimization", + "label": "Conjugate gradient tolerance", + "value": 0.0001, + "enabled": true, + "verbose": 3 + }, + "f_min_change": { + "group": "Optimization", + "label": "Minimum change in objective function", + "value": 0.01, + "min": 1e-06, + "verbose": 3, + "enabled": true, + "tooltip": "Minimum decrease in regularization beyond which the IRLS procedure is deemed to have completed." + }, + "sens_wts_threshold": { + "group": "Update sensitivity weights directive", + "tooltip": "Update sensitivity weight threshold", + "label": "Threshold (%)", + "value": 1.0, + "max": 100.0, + "min": 0.0, + "precision": 3, + "enabled": true, + "verbose": 2 + }, + "every_iteration_bool": { + "group": "Update sensitivity weights directive", + "tooltip": "Update weights at every iteration", + "label": "Every iteration", + "value": true, + "verbose": 2, + "enabled": true + }, + "save_sensitivities": { + "group": "Update sensitivity weights directive", + "label": "Save sensitivities", + "tooltip": "Save the summed square row sensitivities to geoh5.", + "value": false + }, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": { + "group": "Compute", + "label": "Number of tiles", + "parent": "data_object", + "isValue": true, + "property": "", + "value": 1, + "min": 1, + "max": 1000, + "verbose": 2, + "tooltip": "Splits the objective function into spatial tiles for distributed computation using the Dask library." + }, + "store_sensitivities": { + "choiceList": [ + "ram" + ], + "group": "Compute", + "label": "Storage device", + "tooltip": "Only RAM storage available for now.", + "value": "ram" + }, + "max_ram": "", + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "" +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/tipper_forward.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/tipper_forward.ui.json new file mode 100644 index 00000000..8a135653 --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/tipper_forward.ui.json @@ -0,0 +1,235 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Tipper Forward", + "icon": "surveyztem", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "tipper", + "forward_only": true, + "data_object": { + "main": true, + "group": "Survey", + "label": "Object", + "meshType": "{0b639533-f35b-44d8-92a8-f70ecff3fd26}", + "value": "" + }, + "z_from_topo": { + "group": "Data pre-processing", + "label": "Take z from topography", + "tooltip": "Sets survey elevation to topography before any offsets are applied.", + "value": false, + "verbose": 3, + "visible": false + }, + "receivers_radar_drape": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data pre-processing", + "label": "Z radar offset", + "tooltip": "Apply a non-homogeneous offset to survey object from radar channel.", + "optional": true, + "parent": "data_object", + "value": "", + "enabled": false, + "verbose": 3, + "visible": false + }, + "receivers_offset_z": { + "group": "Data pre-processing", + "label": "Z static offset", + "optional": true, + "enabled": false, + "value": 0.0, + "verbose": 3, + "visible": false + }, + "gps_receivers_offset": "", + "txz_real_channel_bool": { + "group": "Survey", + "main": true, + "label": "Txz real", + "value": true + }, + "txz_imag_channel_bool": { + "group": "Survey", + "main": true, + "label": "Txz imaginary", + "value": true + }, + "tyz_real_channel_bool": { + "group": "Survey", + "main": true, + "label": "Tyz real", + "value": true + }, + "tyz_imag_channel_bool": { + "group": "Survey", + "main": true, + "label": "Tyz imaginary", + "value": true + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "tooltip": "Select a mesh for the inversion." + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "background_conductivity": { + "group": "Mesh and models", + "main": true, + "label": "Background", + "property": "", + "value": 0.001 + }, + "starting_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Value(s)", + "property": "", + "value": 0.001 + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": { + "group": "Compute", + "label": "Number of tiles", + "parent": "data_object", + "isValue": true, + "property": "", + "value": 1, + "min": 1, + "max": 1000, + "verbose": 2, + "tooltip": "Splits the objective function into spatial tiles for distributed computation using the Dask library." + }, + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "" +} diff --git a/simpeg_drivers-assets/legacy/v0.2.1/tipper_inversion.ui.json b/simpeg_drivers-assets/legacy/v0.2.1/tipper_inversion.ui.json new file mode 100644 index 00000000..17d6c60e --- /dev/null +++ b/simpeg_drivers-assets/legacy/v0.2.1/tipper_inversion.ui.json @@ -0,0 +1,689 @@ +{ + "version": "0.2.0-alpha.1", + "title": "Tipper Inversion", + "icon": "surveyztem", + "documentation": "https://mirageoscience-simpeg-drivers.readthedocs-hosted.com/en/stable/intro.html", + "conda_environment": "simpeg_drivers", + "run_command": "simpeg_drivers.driver", + "geoh5": "", + "monitoring_directory": "", + "workspace_geoh5": "", + "inversion_type": "tipper", + "forward_only": false, + "data_object": { + "main": true, + "group": "Data", + "label": "Object", + "meshType": "{0b639533-f35b-44d8-92a8-f70ecff3fd26}", + "value": "" + }, + "z_from_topo": { + "group": "Data pre-processing", + "label": "Take z from topography", + "tooltip": "Sets survey elevation to topography before any offsets are applied.", + "value": false, + "verbose": 3, + "visible": false + }, + "receivers_radar_drape": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data pre-processing", + "label": "Z radar offset", + "tooltip": "Apply a non-homogeneous offset to survey object from radar channel.", + "optional": true, + "parent": "data_object", + "value": "", + "enabled": false, + "verbose": 3, + "visible": false + }, + "receivers_offset_z": { + "group": "Data pre-processing", + "label": "Z static offset", + "optional": true, + "enabled": false, + "value": 0.0, + "verbose": 3, + "visible": false + }, + "gps_receivers_offset": "", + "txz_real_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Txz real", + "parent": "data_object", + "optional": true, + "enabled": true, + "value": "" + }, + "txz_real_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "txz_real_channel", + "dependencyType": "enabled", + "value": "" + }, + "txz_imag_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Txz imaginary", + "parent": "data_object", + "optional": true, + "enabled": true, + "value": "" + }, + "txz_imag_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "txz_imag_channel", + "dependencyType": "enabled", + "value": "" + }, + "tyz_real_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Tyz real", + "parent": "data_object", + "optional": true, + "enabled": true, + "value": "" + }, + "tyz_real_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "tyz_real_channel", + "dependencyType": "enabled", + "value": "" + }, + "tyz_imag_channel": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Tyz imaginary", + "parent": "data_object", + "optional": true, + "enabled": true, + "value": "" + }, + "tyz_imag_uncertainty": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Data", + "dataGroupType": "Multi-element", + "main": true, + "label": "Uncertainty", + "parent": "data_object", + "dependency": "tyz_imag_channel", + "dependencyType": "enabled", + "value": "" + }, + "mesh": { + "group": "Mesh and models", + "main": true, + "label": "Mesh", + "meshType": "{4ea87376-3ece-438b-bf12-3479733ded46}", + "value": "", + "tooltip": "Select a mesh for the inversion." + }, + "model_type": { + "choiceList": [ + "Conductivity (S/m)", + "Resistivity (Ohm-m)" + ], + "main": true, + "group": "Mesh and models", + "label": "Model units", + "tooltip": "Select the units of the model.", + "value": "Conductivity (S/m)" + }, + "background_conductivity": { + "group": "Mesh and models", + "main": true, + "label": "Background", + "property": "", + "value": 0.001 + }, + "starting_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "group": "Mesh and models", + "main": true, + "isValue": true, + "parent": "mesh", + "label": "Initial", + "property": "", + "value": 0.001 + }, + "reference_model": { + "association": [ + "Cell", + "Vertex" + ], + "dataType": "Float", + "main": true, + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Reference", + "property": "", + "optional": true, + "enabled": false, + "value": 0.001 + }, + "lower_bound": { + "association": [ + "Cell", + "Vertex" + ], + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Lower bound", + "property": "", + "optional": true, + "value": 1e-08, + "enabled": false + }, + "upper_bound": { + "association": [ + "Cell", + "Vertex" + ], + "main": true, + "dataType": "Float", + "group": "Mesh and models", + "isValue": true, + "parent": "mesh", + "label": "Upper bound", + "property": "", + "optional": true, + "value": 100.0, + "enabled": false + }, + "topography_object": { + "main": true, + "group": "Topography", + "label": "Topography", + "meshType": [ + "{202c5db1-a56d-4004-9cad-baafd8899406}", + "{6a057fdc-b355-11e3-95be-fd84a7ffcb88}", + "{f26feba3-aded-494b-b9e9-b2bbcbe298e1}", + "{48f5054a-1c5c-4ca4-9048-80f36dc60a06}", + "{b020a277-90e2-4cd7-84d6-612ee3f25051}" + ], + "value": "", + "optional": true, + "enabled": true, + "tooltip": "Select a topography object to define the active cells for inversion." + }, + "topography": { + "association": [ + "Vertex", + "Cell" + ], + "dataType": "Float", + "group": "Topography", + "main": true, + "optional": true, + "enabled": false, + "label": "Elevation channel", + "tooltip": "Set elevation from channel. If not set the topography will be set from the geometry of the selected 'topography' object.", + "parent": "topography_object", + "dependency": "topography_object", + "dependencyType": "enabled", + "value": "", + "verbose": 2 + }, + "active_model": { + "association": "Cell", + "dataType": [ + "Referenced", + "Boolean", + "Integer" + ], + "group": "Topography", + "main": true, + "enabled": false, + "dependency": "topography_object", + "dependencyType": "disabled", + "label": "Active model", + "tooltip": "Provide the active cell boolean model directly if topography not set.", + "parent": "mesh", + "value": "" + }, + "output_tile_files": false, + "inversion_style": "voxel", + "alpha_s": { + "min": 0.0, + "group": "Regularization", + "label": "Reference weight", + "value": 1.0, + "tooltip": "Constant ratio compared to other weights. Larger values result in models that remain close to the reference model", + "dependency": "reference_model", + "dependencyType": "enabled", + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_x": { + "min": 0.0, + "group": "Regularization", + "label": "X-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in x biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_y": { + "min": 0.0, + "group": "Regularization", + "label": "Y-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in y biased smoothness", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "length_scale_z": { + "min": 0.0, + "group": "Regularization", + "label": "Z-smoothness weight", + "tooltip": "Larger values relative to other smoothness weights will result in z biased smoothess", + "value": 1.0, + "isValue": true, + "parent": "mesh", + "association": "Cell", + "dataType": "Float", + "property": "", + "enabled": true + }, + "s_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Smallness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 0.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": true, + "enabled": true, + "dependency": "reference_model", + "dependencyType": "enabled", + "tooltip": "Lp-norm used in the smallness term of the objective function." + }, + "x_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "X-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the x-smoothness term of the objective function." + }, + "y_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Y-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the y-smoothness term of the objective function." + }, + "z_norm": { + "association": "Cell", + "dataType": "Float", + "group": "Sparse/blocky model", + "label": "Z-smoothness norm", + "isValue": true, + "parent": "mesh", + "property": "", + "value": 2.0, + "min": 0.0, + "max": 2.0, + "precision": 2, + "lineEdit": false, + "enabled": true, + "tooltip": "Lp-norm used in the z-smoothness term of the objective function." + }, + "gradient_type": { + "choiceList": [ + "total", + "components" + ], + "group": "Sparse/blocky model", + "label": "Gradient type", + "value": "total", + "verbose": 3, + "tooltip": "Choose whether the IRLS weights for regularization terms are updated using total or partial gradients." + }, + "max_irls_iterations": { + "min": 0, + "group": "Sparse/blocky model", + "label": "Maximum IRLS iterations", + "tooltip": "Incomplete Re-weighted Least Squares iterations for non-L2 problems", + "value": 25, + "enabled": true, + "verbose": 2 + }, + "starting_chi_factor": { + "group": "Sparse/blocky model", + "label": "IRLS start chi factor", + "enabled": true, + "value": 1.0, + "tooltip": "This chi factor will be used to determine the misfit threshold after which IRLS iterations begin.", + "verbose": 3 + }, + "beta_tol": { + "group": "Update IRLS directive", + "label": "Beta tolerance", + "value": 0.5, + "min": 0.0001, + "verbose": 3, + "visible": false + }, + "prctile": { + "group": "Update IRLS directive", + "label": "Percentile", + "value": 95, + "max": 100, + "min": 5, + "verbose": 3, + "visible": false + }, + "chi_factor": { + "min": 0.1, + "max": 20.0, + "precision": 1, + "lineEdit": false, + "group": "Cooling schedule/target", + "label": "Chi factor", + "value": 1.0, + "enabled": true, + "tooltip": "The global target data misfit value." + }, + "auto_scale_misfits": { + "group": "Cooling schedule/target", + "label": "Auto-scale misfits", + "value": true, + "verbose": 3, + "visible": true, + "tooltip": "Whether to auto-scale misfits functions (tile, frequency, joint methods) based on chi-factor." + }, + "initial_beta_ratio": { + "min": 0.0, + "precision": 2, + "group": "Cooling schedule/target", + "optional": true, + "enabled": true, + "label": "Initial beta ratio", + "value": 100.0, + "verbose": 2, + "tooltip": "Estimate the trade-off parameter by scaling the ratio between the largest derivatives in the objective function gradients." + }, + "initial_beta": { + "min": 0.0, + "group": "Cooling schedule/target", + "optional": true, + "enabled": false, + "dependency": "initial_beta_ratio", + "dependencyType": "disabled", + "label": "Initial beta", + "value": 1.0, + "verbose": 2, + "tooltip": "Trade-off parameter between data misfit and regularization." + }, + "coolingFactor": { + "group": "Cooling schedule/target", + "label": "Beta cooling factor", + "tooltip": "Each beta cooling step will be calculated by dividing the current beta by this factor.", + "value": 2.0, + "min": 1.1, + "max": 100, + "precision": 1, + "lineEdit": false, + "verbose": 2 + }, + "coolingRate": { + "group": "Optimization", + "label": "Iterations per beta", + "value": 2, + "min": 1, + "LineEdit": false, + "max": 10, + "precision": 1, + "verbose": 2, + "enabled": true, + "tooltip": "Set the number of iterations per beta value. Use higher values for more non-linear optimization problems." + }, + "max_global_iterations": { + "min": 1, + "lineEdit": false, + "group": "Optimization", + "label": "Maximum iterations", + "tooltip": "Number of L2 and IRLS iterations combined", + "value": 50, + "enabled": true + }, + "max_line_search_iterations": { + "group": "Optimization", + "label": "Maximum number of line searches", + "value": 20, + "min": 1, + "enabled": true, + "verbose": 3, + "tooltip": "Perform an Armijo backtracking linesearch for the provided number of iterations." + }, + "max_cg_iterations": { + "min": 0, + "group": "Optimization", + "label": "Maximum CG iterations", + "value": 30, + "enabled": true, + "verbose": 2 + }, + "tol_cg": { + "min": 0, + "group": "Optimization", + "label": "Conjugate gradient tolerance", + "value": 0.0001, + "enabled": true, + "verbose": 3 + }, + "f_min_change": { + "group": "Optimization", + "label": "Minimum change in objective function", + "value": 0.01, + "min": 1e-06, + "verbose": 3, + "enabled": true, + "tooltip": "Minimum decrease in regularization beyond which the IRLS procedure is deemed to have completed." + }, + "sens_wts_threshold": { + "group": "Update sensitivity weights directive", + "tooltip": "Update sensitivity weight threshold", + "label": "Threshold (%)", + "value": 1.0, + "max": 100.0, + "min": 0.0, + "precision": 3, + "enabled": true, + "verbose": 2 + }, + "every_iteration_bool": { + "group": "Update sensitivity weights directive", + "tooltip": "Update weights at every iteration", + "label": "Every iteration", + "value": true, + "verbose": 2, + "enabled": true + }, + "save_sensitivities": { + "group": "Update sensitivity weights directive", + "label": "Save sensitivities", + "tooltip": "Save the summed square row sensitivities to geoh5.", + "value": false + }, + "parallelized": { + "group": "Compute", + "label": "Use parallelization", + "value": true, + "visible": false + }, + "n_cpu": { + "min": 1, + "group": "Compute", + "dependency": "parallelized", + "dependencyType": "enabled", + "optional": true, + "enabled": false, + "label": "Number of CPUs", + "value": 1, + "visible": false + }, + "tile_spatial": { + "group": "Compute", + "label": "Number of tiles", + "parent": "data_object", + "isValue": true, + "property": "", + "value": 1, + "min": 1, + "max": 1000, + "verbose": 2, + "tooltip": "Splits the objective function into spatial tiles for distributed computation using the Dask library." + }, + "max_ram": "", + "store_sensitivities": { + "choiceList": [ + "disk", + "ram" + ], + "group": "Compute", + "label": "Storage device", + "tooltip": "Use disk on a fast local SSD, and RAM elsewhere", + "value": "ram" + }, + "max_chunk_size": { + "min": 0, + "group": "Compute", + "optional": true, + "enabled": true, + "label": "Maximum chunk size (Mb)", + "value": 128, + "verbose": 3, + "visible": false, + "tooltip": "Limit the chunk size used by Dask for distributed computation." + }, + "chunk_by_rows": { + "group": "Compute", + "label": "Chunk by rows", + "value": true, + "verbose": 3, + "visible": false + }, + "out_group": { + "label": "SimPEG group", + "value": "", + "groupType": "{55ed3daf-c192-4d4b-a439-60fa987fe2b8}", + "group": "Drag-and-drop options", + "visible": true, + "optional": true, + "enabled": false, + "tooltip": "Optionally set the SimPEG group to which results will be saved." + }, + "generate_sweep": { + "label": "Generate sweep file", + "group": "Python run preferences", + "main": true, + "value": false, + "tooltip": "Generates a file for sweeping parameters instead of running the application." + }, + "distributed_workers": "" +} From d009f7df3398952a6024f1101a6355b403d7ea54 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Thu, 15 May 2025 11:59:45 -0700 Subject: [PATCH 02/12] Add unit test --- simpeg_drivers/driver.py | 6 ++- tests/uijson_test.py | 108 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 111 insertions(+), 3 deletions(-) diff --git a/simpeg_drivers/driver.py b/simpeg_drivers/driver.py index 1d2cb02f..7ddf270c 100644 --- a/simpeg_drivers/driver.py +++ b/simpeg_drivers/driver.py @@ -612,7 +612,7 @@ def configure_dask(self): dconf.set(scheduler="threads", pool=ThreadPool(n_cpu)) @classmethod - def start(cls, filepath: str | Path | InputFile): + def start(cls, filepath: str | Path | InputFile, run=True): if isinstance(filepath, InputFile): ifile = filepath else: @@ -629,7 +629,9 @@ def start(cls, filepath: str | Path | InputFile): params = driver_class._options_class.build(ifile) driver = driver_class(params) - driver.run() + if run: + driver.run() + return driver @staticmethod diff --git a/tests/uijson_test.py b/tests/uijson_test.py index 07c4da27..1f44eb06 100644 --- a/tests/uijson_test.py +++ b/tests/uijson_test.py @@ -16,11 +16,14 @@ import numpy as np import pytest from geoh5py import Workspace +from geoh5py.ui_json import InputFile from geoh5py.ui_json.annotations import Deprecated from packaging.version import Version from pydantic import AliasChoices, Field import simpeg_drivers +from simpeg_drivers.driver import InversionDriver +from simpeg_drivers.line_sweep.driver import LineSweepDriver from simpeg_drivers.options import ActiveCellsOptions from simpeg_drivers.potential_fields.gravity.options import GravityInversionOptions from simpeg_drivers.potential_fields.gravity.uijson import GravityInversionUIJson @@ -129,7 +132,7 @@ def test_version_warning( ): """Test version warning behavior with mocked package version.""" # Mock the package version - monkeypatch.setattr(simpeg_drivers, "__version__", package_version) + monkeypatch.setattr(simpeg_drivers, "simpeg_drivers.__version__", package_version) with caplog.at_level(logging.WARNING): caplog.clear() @@ -250,3 +253,106 @@ def test_gravity_uijson(tmp_path): params_data_nobraces[param] = field_data_nobraces assert uijson_data == params_data_nobraces + + +CHANNEL_NAME = { + "direct current pseudo 3d": "potential", + "direct current 3d": "potential", + "direct current 2d": "potential", + "induced polarization pseudo 3d": "chargeability", + "induced polarization 3d": "chargeability", + "induced polarization 2d": "chargeability", + "fdem 1d": "z_real", + "fem": "z_real", + "fdem": "z_real", + "tdem 1d": "z", + "tdem": "z", + "gravity": "gz", + "magnetics": "tmi", + "magnetotellurics": "zxx_real", + "tipper": "txz_real", +} + + +def test_legacy_uijson(tmp_path): + """ + Loop over all uijson files in the legacy directory and check that the + read and run still works. + """ + path = simpeg_drivers.assets_path() / "legacy" + + for directory in path.iterdir(): + if not directory.is_dir(): + continue + + version_path = tmp_path / directory.name + for file in directory.glob("*.ui.json"): + ifile = InputFile.read_ui_json(file, validate=False) + inversion_type = ifile.data.get("inversion_type", None) + + if inversion_type not in CHANNEL_NAME: + continue + + forward = ifile.data.get("forward_only", None) + + work_path = version_path / ( + inversion_type + (" fwr" if forward else " inv") + ) + + work_path.mkdir(parents=True) + geoh5, mesh, model, survey, topo = setup_inversion_workspace( + work_path, + background=1.0, + anomaly=2.0, + n_electrodes=10, + n_lines=3, + inversion_type=inversion_type, + ) + + with geoh5.open(mode="r+"): + ifile.data["geoh5"] = geoh5 + ifile.data["mesh"] = mesh + ifile.data["starting_model"] = model + ifile.data["data_object"] = survey + ifile.data["topography_object"] = topo + + if "2d" in inversion_type or "pseudo 3d" in inversion_type: + line_id = geoh5.get_entity("line_ids")[0] + ifile.data["line_object"] = line_id + + if not forward: + n_vals = survey.n_vertices + if ( + "direct current" in inversion_type + or "induced polarization" in inversion_type + ): + n_vals = survey.n_cells + + channels = getattr(survey, "channels", [1]) + + data = [] + for channel in channels: + data.append( + survey.add_data( + { + CHANNEL_NAME[inversion_type] + f"[{channel}]": { + "values": np.ones(n_vals) + } + } + ) + ) + + if len(data) > 1: + channel = survey.add_data_to_group(data, "Group") + else: + channel = data[0] + + ifile.data[CHANNEL_NAME[inversion_type] + "_channel"] = channel + ifile.data[CHANNEL_NAME[inversion_type] + "_uncertainty"] = channel + + driver = InversionDriver.start(ifile, run=False) + + if isinstance(driver, LineSweepDriver): + continue + + assert driver.inversion From 6c6815e028f84fa5a5490d68b78c6137a0bb30ba Mon Sep 17 00:00:00 2001 From: dominiquef Date: Thu, 15 May 2025 12:04:21 -0700 Subject: [PATCH 03/12] Refactor survey generation for tests --- simpeg_drivers/utils/testing.py | 340 ++++++++++++---------- tests/run_tests/driver_ground_tem_test.py | 4 +- 2 files changed, 185 insertions(+), 159 deletions(-) diff --git a/simpeg_drivers/utils/testing.py b/simpeg_drivers/utils/testing.py index 9cc7589d..8c2bcce2 100644 --- a/simpeg_drivers/utils/testing.py +++ b/simpeg_drivers/utils/testing.py @@ -109,6 +109,16 @@ def check_target(output: dict, target: dict, tolerance=0.05): ) +def gaussian_topo_drape(x, y, flatten=False): + """Topography Gaussian function""" + b = 100 + A = 50 + if flatten: + return np.zeros_like(x) + else: + return A * np.exp(-0.5 * ((x / b) ** 2.0 + (y / b) ** 2.0)) + + def generate_dc_survey( workspace: Workspace, x_loc: np.ndarray, @@ -171,6 +181,161 @@ def generate_dc_survey( return potentials +def generate_fdem_survey(geoh5, vertices): + survey = AirborneFEMReceivers.create(geoh5, vertices=vertices, name="Airborne_rx") + freq_metadata = [ + {"Coaxial data": False, "Frequency": 900, "Offset": 7.86}, + {"Coaxial data": False, "Frequency": 7200, "Offset": 7.86}, + {"Coaxial data": False, "Frequency": 56000, "Offset": 6.3}, + ] + survey.metadata["EM Dataset"]["Frequency configurations"] = freq_metadata + + tx_locs = [] + freqs = [] + for meta in freq_metadata: + tx_vertices = vertices.copy() + tx_vertices[:, 0] -= meta["Offset"] + tx_locs.append(tx_vertices) + freqs.append([[meta["Frequency"]] * len(vertices)]) + tx_locs = np.vstack(tx_locs) + freqs = np.hstack(freqs).flatten() + + transmitters = AirborneFEMTransmitters.create( + geoh5, vertices=tx_locs, name="Airborne_tx" + ) + survey.transmitters = transmitters + survey.channels = [900.0, 7200.0, 56000.0] + + transmitters.add_data( + { + "Tx frequency": { + "values": freqs, + "association": "VERTEX", + "primitive_type": "REFERENCED", + "value_map": {k: str(k) for k in freqs}, + } + } + ) + + dist = np.linalg.norm( + survey.vertices[survey.cells[:, 0], :] - survey.vertices[survey.cells[:, 1], :], + axis=1, + ) + survey.remove_cells(np.where(dist > 200.0)[0]) + dist = np.linalg.norm( + transmitters.vertices[transmitters.cells[:, 0], :] + - transmitters.vertices[transmitters.cells[:, 1], :], + axis=1, + ) + transmitters.remove_cells(np.where(dist > 200.0)[0]) + + return survey + + +def generate_tdem_survey( + geoh5, vertices, n_lines, drape_height, flatten=False, airborne=False +): + if airborne: + survey = AirborneTEMReceivers.create( + geoh5, vertices=vertices, name="Airborne_rx" + ) + transmitters = AirborneTEMTransmitters.create( + geoh5, vertices=vertices, name="Airborne_tx" + ) + + dist = np.linalg.norm( + survey.vertices[survey.cells[:, 0], :] + - survey.vertices[survey.cells[:, 1], :], + axis=1, + ) + survey.remove_cells(np.where(dist > 200.0)[0]) + transmitters.remove_cells(np.where(dist > 200.0)[0]) + survey.transmitters = transmitters + else: + X = vertices[:, 0].reshape((n_lines, -1)) + Y = vertices[:, 1].reshape((n_lines, -1)) + Z = vertices[:, 2].reshape((n_lines, -1)) + center = np.mean(vertices, axis=0) + arrays = [ + np.c_[ + X[: int(n_lines / 2), :].flatten(), + Y[: int(n_lines / 2), :].flatten(), + Z[: int(n_lines / 2), :].flatten(), + ], + np.c_[ + X[int(n_lines / 2) :, :].flatten(), + Y[int(n_lines / 2) :, :].flatten(), + Z[int(n_lines / 2) :, :].flatten(), + ], + ] + loops = [] + loop_cells = [] + loop_id = [] + count = 0 + for ind, array in enumerate(arrays): + loop_id += [np.ones(array.shape[0]) * (ind + 1)] + min_loc = np.min(array, axis=0) + max_loc = np.max(array, axis=0) + loop = np.vstack( + [ + np.c_[ + np.ones(5) * min_loc[0], + np.linspace(min_loc[1], max_loc[1], 5), + ], + np.c_[ + np.linspace(min_loc[0], max_loc[0], 5)[1:], + np.ones(4) * max_loc[1], + ], + np.c_[ + np.ones(4) * max_loc[0], + np.linspace(max_loc[1], min_loc[1], 5)[1:], + ], + np.c_[ + np.linspace(max_loc[0], min_loc[0], 5)[1:-1], + np.ones(3) * min_loc[1], + ], + ] + ) + loop = (loop - np.mean(loop, axis=0)) * 1.5 + np.mean(loop, axis=0) + loop = np.c_[ + loop, + gaussian_topo_drape(loop[:, 0], loop[:, 1], flatten=flatten) + + drape_height, + ] + loops += [loop + np.asarray(center)] + loop_cells += [np.c_[np.arange(15) + count, np.arange(15) + count + 1]] + loop_cells += [np.c_[count + 15, count]] + count += 16 + + transmitters = LargeLoopGroundTEMTransmitters.create( + geoh5, + vertices=np.vstack(loops), + cells=np.vstack(loop_cells), + ) + transmitters.tx_id_property = transmitters.parts + 1 + survey = LargeLoopGroundTEMReceivers.create(geoh5, vertices=np.vstack(vertices)) + survey.transmitters = transmitters + survey.tx_id_property = np.hstack(loop_id) + # survey.parts = np.repeat(np.arange(n_lines), n_electrodes) + + survey.channels = np.r_[3e-04, 6e-04, 1.2e-03] * 1e3 + waveform = np.c_[ + np.r_[ + np.arange(-0.002, -0.0001, 5e-4), + np.arange(-0.0004, 0.0, 1e-4), + np.arange(0.0, 0.002, 5e-4), + ] + * 1e3 + + 2.0, + np.r_[np.linspace(0, 1, 4), np.linspace(0.9, 0.0, 4), np.zeros(4)], + ] + survey.waveform = waveform + survey.timing_mark = 2.0 + survey.unit = "Milliseconds (ms)" + + return survey + + def setup_inversion_workspace( work_dir, background=None, @@ -196,16 +361,7 @@ def setup_inversion_workspace( # Topography xx, yy = np.meshgrid(np.linspace(-200.0, 200.0, 50), np.linspace(-200.0, 200.0, 50)) - def topo_drape(x, y): - """Topography Gaussian function""" - b = 100 - A = 50 - if flatten: - return np.zeros_like(x) - else: - return A * np.exp(-0.5 * ((x / b) ** 2.0 + (y / b) ** 2.0)) - - zz = topo_drape(xx, yy) + zz = gaussian_topo_drape(xx, yy, flatten=flatten) topo = np.c_[ utils.mkvc(xx) + center[0], utils.mkvc(yy) + center[1], @@ -218,16 +374,18 @@ def topo_drape(x, y): cells=triang.simplices, # pylint: disable=E1101 name="topography", ) + # Observation points n_electrodes = ( 4 - if (inversion_type in ["dcip", "dcip_2d"]) & (n_electrodes < 4) + if ("polarization" in inversion_type or "current" in inversion_type) + & (n_electrodes < 4) else n_electrodes ) xr = np.linspace(x_limits[0], x_limits[1], int(n_electrodes)) yr = np.linspace(y_limits[0], y_limits[1], int(n_lines)) X, Y = np.meshgrid(xr, yr) - Z = topo_drape(X, Y) + drape_height + Z = gaussian_topo_drape(X, Y, flatten=flatten) + drape_height vertices = np.c_[ utils.mkvc(X.T) + center[0], @@ -235,10 +393,10 @@ def topo_drape(x, y): utils.mkvc(Z.T) + center[2], ] - if inversion_type in ["dcip", "dcip_2d"]: + if "polarization" in inversion_type or "current" in inversion_type: survey = generate_dc_survey(geoh5, X, Y, Z) - elif inversion_type == "magnetotellurics": + elif "magnetotellurics" in inversion_type: survey = MTReceivers.create( geoh5, vertices=vertices, @@ -256,7 +414,7 @@ def topo_drape(x, y): channels=[10.0, 100.0, 1000.0], ) - elif inversion_type == "tipper": + elif "tipper" in inversion_type: survey = TipperReceivers.create( geoh5, vertices=vertices, @@ -280,149 +438,18 @@ def topo_drape(x, y): # survey.cells = survey.cells[dist < 100.0, :] survey.remove_cells(np.where(dist > 200)[0]) - elif "fdem" in inversion_type: - survey = AirborneFEMReceivers.create( - geoh5, vertices=vertices, name="Airborne_rx" - ) - freq_metadata = [ - {"Coaxial data": False, "Frequency": 900, "Offset": 7.86}, - {"Coaxial data": False, "Frequency": 7200, "Offset": 7.86}, - {"Coaxial data": False, "Frequency": 56000, "Offset": 6.3}, - ] - survey.metadata["EM Dataset"]["Frequency configurations"] = freq_metadata - - tx_locs = [] - freqs = [] - for meta in freq_metadata: - tx_vertices = vertices.copy() - tx_vertices[:, 0] -= meta["Offset"] - tx_locs.append(tx_vertices) - freqs.append([[meta["Frequency"]] * len(vertices)]) - tx_locs = np.vstack(tx_locs) - freqs = np.hstack(freqs).flatten() - - transmitters = AirborneFEMTransmitters.create( - geoh5, vertices=tx_locs, name="Airborne_tx" - ) - survey.transmitters = transmitters - survey.channels = [900.0, 7200.0, 56000.0] - - transmitters.add_data( - { - "Tx frequency": { - "values": freqs, - "association": "VERTEX", - "primitive_type": "REFERENCED", - "value_map": {k: str(k) for k in freqs}, - } - } - ) + elif inversion_type in ["fdem", "fem"]: + survey = generate_fdem_survey(geoh5, vertices) - dist = np.linalg.norm( - survey.vertices[survey.cells[:, 0], :] - - survey.vertices[survey.cells[:, 1], :], - axis=1, - ) - survey.remove_cells(np.where(dist > 200.0)[0]) - dist = np.linalg.norm( - transmitters.vertices[transmitters.cells[:, 0], :] - - transmitters.vertices[transmitters.cells[:, 1], :], - axis=1, + elif "tdem" in inversion_type: + survey = generate_tdem_survey( + geoh5, + vertices, + n_lines, + drape_height, + flatten=flatten, + airborne="airborne" in inversion_type, ) - transmitters.remove_cells(np.where(dist > 200.0)[0]) - - elif "tem" in inversion_type: - if "airborne" in inversion_type: - survey = AirborneTEMReceivers.create( - geoh5, vertices=vertices, name="Airborne_rx" - ) - transmitters = AirborneTEMTransmitters.create( - geoh5, vertices=vertices, name="Airborne_tx" - ) - - dist = np.linalg.norm( - survey.vertices[survey.cells[:, 0], :] - - survey.vertices[survey.cells[:, 1], :], - axis=1, - ) - survey.remove_cells(np.where(dist > 200.0)[0]) - transmitters.remove_cells(np.where(dist > 200.0)[0]) - survey.transmitters = transmitters - else: - arrays = [ - np.c_[ - X[: int(n_lines / 2), :].flatten(), - Y[: int(n_lines / 2), :].flatten(), - Z[: int(n_lines / 2), :].flatten(), - ], - np.c_[ - X[int(n_lines / 2) :, :].flatten(), - Y[int(n_lines / 2) :, :].flatten(), - Z[int(n_lines / 2) :, :].flatten(), - ], - ] - loops = [] - loop_cells = [] - loop_id = [] - count = 0 - for ind, array in enumerate(arrays): - loop_id += [np.ones(array.shape[0]) * (ind + 1)] - min_loc = np.min(array, axis=0) - max_loc = np.max(array, axis=0) - loop = np.vstack( - [ - np.c_[ - np.ones(5) * min_loc[0], - np.linspace(min_loc[1], max_loc[1], 5), - ], - np.c_[ - np.linspace(min_loc[0], max_loc[0], 5)[1:], - np.ones(4) * max_loc[1], - ], - np.c_[ - np.ones(4) * max_loc[0], - np.linspace(max_loc[1], min_loc[1], 5)[1:], - ], - np.c_[ - np.linspace(max_loc[0], min_loc[0], 5)[1:-1], - np.ones(3) * min_loc[1], - ], - ] - ) - loop = (loop - np.mean(loop, axis=0)) * 1.5 + np.mean(loop, axis=0) - loop = np.c_[loop, topo_drape(loop[:, 0], loop[:, 1]) + drape_height] - loops += [loop + np.asarray(center)] - loop_cells += [np.c_[np.arange(15) + count, np.arange(15) + count + 1]] - loop_cells += [np.c_[count + 15, count]] - count += 16 - - transmitters = LargeLoopGroundTEMTransmitters.create( - geoh5, - vertices=np.vstack(loops), - cells=np.vstack(loop_cells), - ) - transmitters.tx_id_property = transmitters.parts + 1 - survey = LargeLoopGroundTEMReceivers.create( - geoh5, vertices=np.vstack(vertices) - ) - survey.transmitters = transmitters - survey.tx_id_property = np.hstack(loop_id) - # survey.parts = np.repeat(np.arange(n_lines), n_electrodes) - - survey.channels = np.r_[3e-04, 6e-04, 1.2e-03] * 1e3 - waveform = np.c_[ - np.r_[ - np.arange(-0.002, -0.0001, 5e-4), - np.arange(-0.0004, 0.0, 1e-4), - np.arange(0.0, 0.002, 5e-4), - ] - * 1e3 - + 2.0, - np.r_[np.linspace(0, 1, 4), np.linspace(0.9, 0.0, 4), np.zeros(4)], - ] - survey.waveform = waveform - survey.timing_mark = 2.0 - survey.unit = "Milliseconds (ms)" else: survey = Points.create( @@ -432,7 +459,6 @@ def topo_drape(x, y): ) # Create a mesh - if "2d" in inversion_type: lines = survey.get_entity("line_ids")[0].values entity, mesh, _ = get_drape_model( # pylint: disable=unbalanced-tuple-unpacking diff --git a/tests/run_tests/driver_ground_tem_test.py b/tests/run_tests/driver_ground_tem_test.py index a0677fb3..58396b52 100644 --- a/tests/run_tests/driver_ground_tem_test.py +++ b/tests/run_tests/driver_ground_tem_test.py @@ -54,7 +54,7 @@ def test_tiling_ground_tem( n_electrodes=n_grid_points, n_lines=n_grid_points, refinement=refinement, - inversion_type="ground_tem", + inversion_type="ground tdem", drape_height=5.0, padding_distance=1000.0, flatten=True, @@ -101,7 +101,7 @@ def test_ground_tem_fwr_run( n_electrodes=n_grid_points, n_lines=n_grid_points, refinement=refinement, - inversion_type="ground_tem", + inversion_type="ground tdem", drape_height=5.0, cell_size=cell_size, padding_distance=1000.0, From 70b68671be5cc15477102a06f09f8bc8061c901b Mon Sep 17 00:00:00 2001 From: dominiquef Date: Thu, 15 May 2025 12:21:48 -0700 Subject: [PATCH 04/12] Remove drape_height for gtdem --- simpeg_drivers/utils/testing.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/simpeg_drivers/utils/testing.py b/simpeg_drivers/utils/testing.py index 8c2bcce2..c7dbe71a 100644 --- a/simpeg_drivers/utils/testing.py +++ b/simpeg_drivers/utils/testing.py @@ -232,9 +232,7 @@ def generate_fdem_survey(geoh5, vertices): return survey -def generate_tdem_survey( - geoh5, vertices, n_lines, drape_height, flatten=False, airborne=False -): +def generate_tdem_survey(geoh5, vertices, n_lines, flatten=False, airborne=False): if airborne: survey = AirborneTEMReceivers.create( geoh5, vertices=vertices, name="Airborne_rx" @@ -298,9 +296,7 @@ def generate_tdem_survey( ) loop = (loop - np.mean(loop, axis=0)) * 1.5 + np.mean(loop, axis=0) loop = np.c_[ - loop, - gaussian_topo_drape(loop[:, 0], loop[:, 1], flatten=flatten) - + drape_height, + loop, gaussian_topo_drape(loop[:, 0], loop[:, 1], flatten=flatten) ] loops += [loop + np.asarray(center)] loop_cells += [np.c_[np.arange(15) + count, np.arange(15) + count + 1]] @@ -438,7 +434,7 @@ def setup_inversion_workspace( # survey.cells = survey.cells[dist < 100.0, :] survey.remove_cells(np.where(dist > 200)[0]) - elif inversion_type in ["fdem", "fem"]: + elif inversion_type in ["fdem", "fem", "fdem 1d"]: survey = generate_fdem_survey(geoh5, vertices) elif "tdem" in inversion_type: @@ -446,7 +442,6 @@ def setup_inversion_workspace( geoh5, vertices, n_lines, - drape_height, flatten=flatten, airborne="airborne" in inversion_type, ) From 036d894cd80fa2d5959229b809b29e5c0bbfe2dc Mon Sep 17 00:00:00 2001 From: dominiquef Date: Thu, 15 May 2025 12:25:14 -0700 Subject: [PATCH 05/12] Specify inversion_type in tests --- tests/run_tests/driver_airborne_tem_1d_test.py | 2 +- tests/run_tests/driver_airborne_tem_test.py | 4 ++-- tests/run_tests/driver_dc_2d_test.py | 2 +- tests/run_tests/driver_dc_b2d_test.py | 2 +- tests/run_tests/driver_dc_test.py | 2 +- tests/run_tests/driver_grav_test.py | 1 + tests/run_tests/driver_ip_2d_test.py | 2 +- tests/run_tests/driver_ip_b2d_test.py | 2 +- tests/run_tests/driver_ip_test.py | 2 +- tests/run_tests/driver_joint_cross_gradient_test.py | 2 +- tests/run_tests/driver_mag_test.py | 1 + 11 files changed, 12 insertions(+), 10 deletions(-) diff --git a/tests/run_tests/driver_airborne_tem_1d_test.py b/tests/run_tests/driver_airborne_tem_1d_test.py index e0b55afa..50d1e17d 100644 --- a/tests/run_tests/driver_airborne_tem_1d_test.py +++ b/tests/run_tests/driver_airborne_tem_1d_test.py @@ -50,7 +50,7 @@ def test_airborne_tem_1d_fwr_run( n_lines=n_grid_points, cell_size=cell_size, refinement=refinement, - inversion_type="airborne_tem 1d", + inversion_type="airborne tdem 1d", drape_height=10.0, padding_distance=400.0, flatten=False, diff --git a/tests/run_tests/driver_airborne_tem_test.py b/tests/run_tests/driver_airborne_tem_test.py index a8df18a5..2d7a338d 100644 --- a/tests/run_tests/driver_airborne_tem_test.py +++ b/tests/run_tests/driver_airborne_tem_test.py @@ -45,7 +45,7 @@ def test_bad_waveform(tmp_path: Path): n_electrodes=n_grid_points, n_lines=n_grid_points, refinement=refinement, - inversion_type="airborne_tem", + inversion_type="airborne tdem", drape_height=10.0, padding_distance=400.0, flatten=False, @@ -84,7 +84,7 @@ def test_airborne_tem_fwr_run( n_lines=n_grid_points, cell_size=cell_size, refinement=refinement, - inversion_type="airborne_tem", + inversion_type="airborne tdem", drape_height=10.0, padding_distance=400.0, flatten=False, diff --git a/tests/run_tests/driver_dc_2d_test.py b/tests/run_tests/driver_dc_2d_test.py index 706cb51e..f1d4de75 100644 --- a/tests/run_tests/driver_dc_2d_test.py +++ b/tests/run_tests/driver_dc_2d_test.py @@ -58,7 +58,7 @@ def test_dc_2d_fwr_run( n_electrodes=n_electrodes, n_lines=n_lines, refinement=refinement, - inversion_type="dcip_2d", + inversion_type="direct current 2d", drape_height=0.0, flatten=False, ) diff --git a/tests/run_tests/driver_dc_b2d_test.py b/tests/run_tests/driver_dc_b2d_test.py index 6c8f9540..c02d9493 100644 --- a/tests/run_tests/driver_dc_b2d_test.py +++ b/tests/run_tests/driver_dc_b2d_test.py @@ -57,7 +57,7 @@ def test_dc_p3d_fwr_run( n_electrodes=n_electrodes, n_lines=n_lines, refinement=refinement, - inversion_type="dcip", + inversion_type="direct current pseudo 3d", drape_height=0.0, flatten=False, ) diff --git a/tests/run_tests/driver_dc_test.py b/tests/run_tests/driver_dc_test.py index 2431af89..da41e143 100644 --- a/tests/run_tests/driver_dc_test.py +++ b/tests/run_tests/driver_dc_test.py @@ -49,7 +49,7 @@ def test_dc_3d_fwr_run( n_lines=n_lines, refinement=refinement, drape_height=0.0, - inversion_type="dcip", + inversion_type="direct current 3d", flatten=False, ) diff --git a/tests/run_tests/driver_grav_test.py b/tests/run_tests/driver_grav_test.py index b30cdc32..b3541083 100644 --- a/tests/run_tests/driver_grav_test.py +++ b/tests/run_tests/driver_grav_test.py @@ -50,6 +50,7 @@ def test_gravity_fwr_run( n_electrodes=n_grid_points, n_lines=n_grid_points, refinement=refinement, + inversion_type="gravity", flatten=False, ) diff --git a/tests/run_tests/driver_ip_2d_test.py b/tests/run_tests/driver_ip_2d_test.py index d4d2e86f..29ec1905 100644 --- a/tests/run_tests/driver_ip_2d_test.py +++ b/tests/run_tests/driver_ip_2d_test.py @@ -48,7 +48,7 @@ def test_ip_2d_fwr_run( n_electrodes=n_electrodes, n_lines=n_lines, refinement=refinement, - inversion_type="dcip_2d", + inversion_type="induced polarization 2d", flatten=False, drape_height=0.0, ) diff --git a/tests/run_tests/driver_ip_b2d_test.py b/tests/run_tests/driver_ip_b2d_test.py index 24959d41..45ab36fe 100644 --- a/tests/run_tests/driver_ip_b2d_test.py +++ b/tests/run_tests/driver_ip_b2d_test.py @@ -56,7 +56,7 @@ def test_ip_p3d_fwr_run( n_electrodes=n_electrodes, n_lines=n_lines, refinement=refinement, - inversion_type="dcip", + inversion_type="induced polarization pseudo 3d", drape_height=0.0, flatten=False, ) diff --git a/tests/run_tests/driver_ip_test.py b/tests/run_tests/driver_ip_test.py index 167b365d..c2b29622 100644 --- a/tests/run_tests/driver_ip_test.py +++ b/tests/run_tests/driver_ip_test.py @@ -48,7 +48,7 @@ def test_ip_3d_fwr_run( n_lines=n_lines, refinement=refinement, drape_height=0.0, - inversion_type="dcip", + inversion_type="induced polarization 3d", flatten=False, ) params = IP3DForwardOptions( diff --git a/tests/run_tests/driver_joint_cross_gradient_test.py b/tests/run_tests/driver_joint_cross_gradient_test.py index 2b60cd92..28e6e8a9 100644 --- a/tests/run_tests/driver_joint_cross_gradient_test.py +++ b/tests/run_tests/driver_joint_cross_gradient_test.py @@ -111,7 +111,7 @@ def test_joint_cross_gradient_fwr_run( n_lines=n_lines, refinement=refinement, drape_height=0.0, - inversion_type="dcip", + inversion_type="direct current 3d", flatten=False, ) diff --git a/tests/run_tests/driver_mag_test.py b/tests/run_tests/driver_mag_test.py index baeffa15..58f8dd7b 100644 --- a/tests/run_tests/driver_mag_test.py +++ b/tests/run_tests/driver_mag_test.py @@ -48,6 +48,7 @@ def test_susceptibility_fwr_run( refinement=refinement, n_electrodes=n_grid_points, n_lines=n_grid_points, + inversion_type="magnetic", flatten=False, ) inducing_field = (49999.8, 90.0, 0.0) From 081672da0900edd0f31d730c1e57f8cf71b237e3 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Thu, 15 May 2025 12:47:29 -0700 Subject: [PATCH 06/12] One more fix to preserve tests --- simpeg_drivers/utils/testing.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simpeg_drivers/utils/testing.py b/simpeg_drivers/utils/testing.py index c7dbe71a..f200d99c 100644 --- a/simpeg_drivers/utils/testing.py +++ b/simpeg_drivers/utils/testing.py @@ -487,7 +487,7 @@ def setup_inversion_workspace( finalize=False, ) - if inversion_type in ["fdem", "airborne_tem"]: + if inversion_type in ["fdem", "airborne tdem"]: mesh = OctreeDriver.refine_tree_from_points( mesh, vertices, From 1cbd4ff1852f5705db93ea1a6ce86bd4e7c3cda0 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Thu, 15 May 2025 12:49:26 -0700 Subject: [PATCH 07/12] Fix imports --- tests/uijson_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/uijson_test.py b/tests/uijson_test.py index 1f44eb06..aea86209 100644 --- a/tests/uijson_test.py +++ b/tests/uijson_test.py @@ -132,7 +132,7 @@ def test_version_warning( ): """Test version warning behavior with mocked package version.""" # Mock the package version - monkeypatch.setattr(simpeg_drivers, "simpeg_drivers.__version__", package_version) + monkeypatch.setattr(simpeg_drivers, "__version__", package_version) with caplog.at_level(logging.WARNING): caplog.clear() From 7de35862cb55237f411d8914a595846f77b48e27 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Fri, 16 May 2025 10:01:27 -0700 Subject: [PATCH 08/12] Add docstrings to start method --- simpeg_drivers/driver.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/simpeg_drivers/driver.py b/simpeg_drivers/driver.py index 7ddf270c..e038f75c 100644 --- a/simpeg_drivers/driver.py +++ b/simpeg_drivers/driver.py @@ -612,7 +612,16 @@ def configure_dask(self): dconf.set(scheduler="threads", pool=ThreadPool(n_cpu)) @classmethod - def start(cls, filepath: str | Path | InputFile, run=True): + def start(cls, filepath: str | Path | InputFile, run=True) -> InversionDriver: + """ + Start the inversion driver. + + :param filepath: Path to the input file or InputFile object. + :param run: If True, run the inversion, otherwise only instantiate the + driver class. + + :return: InversionDriver instance with the specified parameters. + """ if isinstance(filepath, InputFile): ifile = filepath else: From 6cdcf490c14baee2e7ecbd1202ec1ca0a7fdbb21 Mon Sep 17 00:00:00 2001 From: domfournier Date: Fri, 16 May 2025 10:02:36 -0700 Subject: [PATCH 09/12] Update tests/uijson_test.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Sébastien Hensgen --- tests/uijson_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/uijson_test.py b/tests/uijson_test.py index aea86209..f35ce3a7 100644 --- a/tests/uijson_test.py +++ b/tests/uijson_test.py @@ -274,7 +274,7 @@ def test_gravity_uijson(tmp_path): } -def test_legacy_uijson(tmp_path): +def test_legacy_uijson(tmp_path: Path): """ Loop over all uijson files in the legacy directory and check that the read and run still works. From 45e19e42fc2f5fba6597ce6268ab063e8d37e610 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Fri, 16 May 2025 10:09:55 -0700 Subject: [PATCH 10/12] Migrate files --- .../legacy/v0.2.1/direct_current_forward_2d.ui.json | 0 .../legacy/v0.2.1/direct_current_forward_3d.ui.json | 0 .../legacy/v0.2.1/direct_current_forward_pseudo3d.ui.json | 0 .../legacy/v0.2.1/direct_current_inversion_2d.ui.json | 0 .../legacy/v0.2.1/direct_current_inversion_3d.ui.json | 0 .../legacy/v0.2.1/direct_current_inversion_pseudo3d.ui.json | 0 .../legacy/v0.2.1/fem_forward.ui.json | 0 .../legacy/v0.2.1/fem_inversion.ui.json | 0 .../legacy/v0.2.1/gravity_forward.ui.json | 0 .../legacy/v0.2.1/gravity_inversion.ui.json | 0 .../legacy/v0.2.1/induced_polarization_forward_2d.ui.json | 0 .../legacy/v0.2.1/induced_polarization_forward_3d.ui.json | 0 .../legacy/v0.2.1/induced_polarization_forward_pseudo3d.ui.json | 0 .../legacy/v0.2.1/induced_polarization_inversion_2d.ui.json | 0 .../legacy/v0.2.1/induced_polarization_inversion_3d.ui.json | 0 .../v0.2.1/induced_polarization_inversion_pseudo3d.ui.json | 0 .../legacy/v0.2.1/joint_cross_gradient_inversion.ui.json | 0 .../legacy/v0.2.1/joint_surveys_inversion.ui.json | 0 .../legacy/v0.2.1/magnetic_scalar_forward.ui.json | 0 .../legacy/v0.2.1/magnetic_scalar_inversion.ui.json | 0 .../legacy/v0.2.1/magnetic_vector_forward.ui.json | 0 .../legacy/v0.2.1/magnetic_vector_inversion.ui.json | 0 .../legacy/v0.2.1/magnetotellurics_forward.ui.json | 0 .../legacy/v0.2.1/magnetotellurics_inversion.ui.json | 0 .../legacy/v0.2.1/tdem_forward.ui.json | 0 .../legacy/v0.2.1/tdem_inversion.ui.json | 0 .../legacy/v0.2.1/tipper_forward.ui.json | 0 .../legacy/v0.2.1/tipper_inversion.ui.json | 0 tests/uijson_test.py | 2 +- 29 files changed, 1 insertion(+), 1 deletion(-) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/direct_current_forward_2d.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/direct_current_forward_3d.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/direct_current_forward_pseudo3d.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/direct_current_inversion_2d.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/direct_current_inversion_3d.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/direct_current_inversion_pseudo3d.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/fem_forward.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/fem_inversion.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/gravity_forward.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/gravity_inversion.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/induced_polarization_forward_2d.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/induced_polarization_forward_3d.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/induced_polarization_forward_pseudo3d.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/induced_polarization_inversion_2d.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/induced_polarization_inversion_3d.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/induced_polarization_inversion_pseudo3d.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/joint_cross_gradient_inversion.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/joint_surveys_inversion.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/magnetic_scalar_forward.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/magnetic_scalar_inversion.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/magnetic_vector_forward.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/magnetic_vector_inversion.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/magnetotellurics_forward.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/magnetotellurics_inversion.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/tdem_forward.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/tdem_inversion.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/tipper_forward.ui.json (100%) rename {simpeg_drivers-assets => tests}/legacy/v0.2.1/tipper_inversion.ui.json (100%) diff --git a/simpeg_drivers-assets/legacy/v0.2.1/direct_current_forward_2d.ui.json b/tests/legacy/v0.2.1/direct_current_forward_2d.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/direct_current_forward_2d.ui.json rename to tests/legacy/v0.2.1/direct_current_forward_2d.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/direct_current_forward_3d.ui.json b/tests/legacy/v0.2.1/direct_current_forward_3d.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/direct_current_forward_3d.ui.json rename to tests/legacy/v0.2.1/direct_current_forward_3d.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/direct_current_forward_pseudo3d.ui.json b/tests/legacy/v0.2.1/direct_current_forward_pseudo3d.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/direct_current_forward_pseudo3d.ui.json rename to tests/legacy/v0.2.1/direct_current_forward_pseudo3d.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/direct_current_inversion_2d.ui.json b/tests/legacy/v0.2.1/direct_current_inversion_2d.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/direct_current_inversion_2d.ui.json rename to tests/legacy/v0.2.1/direct_current_inversion_2d.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/direct_current_inversion_3d.ui.json b/tests/legacy/v0.2.1/direct_current_inversion_3d.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/direct_current_inversion_3d.ui.json rename to tests/legacy/v0.2.1/direct_current_inversion_3d.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/direct_current_inversion_pseudo3d.ui.json b/tests/legacy/v0.2.1/direct_current_inversion_pseudo3d.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/direct_current_inversion_pseudo3d.ui.json rename to tests/legacy/v0.2.1/direct_current_inversion_pseudo3d.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/fem_forward.ui.json b/tests/legacy/v0.2.1/fem_forward.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/fem_forward.ui.json rename to tests/legacy/v0.2.1/fem_forward.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/fem_inversion.ui.json b/tests/legacy/v0.2.1/fem_inversion.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/fem_inversion.ui.json rename to tests/legacy/v0.2.1/fem_inversion.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/gravity_forward.ui.json b/tests/legacy/v0.2.1/gravity_forward.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/gravity_forward.ui.json rename to tests/legacy/v0.2.1/gravity_forward.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/gravity_inversion.ui.json b/tests/legacy/v0.2.1/gravity_inversion.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/gravity_inversion.ui.json rename to tests/legacy/v0.2.1/gravity_inversion.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_forward_2d.ui.json b/tests/legacy/v0.2.1/induced_polarization_forward_2d.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_forward_2d.ui.json rename to tests/legacy/v0.2.1/induced_polarization_forward_2d.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_forward_3d.ui.json b/tests/legacy/v0.2.1/induced_polarization_forward_3d.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_forward_3d.ui.json rename to tests/legacy/v0.2.1/induced_polarization_forward_3d.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_forward_pseudo3d.ui.json b/tests/legacy/v0.2.1/induced_polarization_forward_pseudo3d.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_forward_pseudo3d.ui.json rename to tests/legacy/v0.2.1/induced_polarization_forward_pseudo3d.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_inversion_2d.ui.json b/tests/legacy/v0.2.1/induced_polarization_inversion_2d.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_inversion_2d.ui.json rename to tests/legacy/v0.2.1/induced_polarization_inversion_2d.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_inversion_3d.ui.json b/tests/legacy/v0.2.1/induced_polarization_inversion_3d.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_inversion_3d.ui.json rename to tests/legacy/v0.2.1/induced_polarization_inversion_3d.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_inversion_pseudo3d.ui.json b/tests/legacy/v0.2.1/induced_polarization_inversion_pseudo3d.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/induced_polarization_inversion_pseudo3d.ui.json rename to tests/legacy/v0.2.1/induced_polarization_inversion_pseudo3d.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/joint_cross_gradient_inversion.ui.json b/tests/legacy/v0.2.1/joint_cross_gradient_inversion.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/joint_cross_gradient_inversion.ui.json rename to tests/legacy/v0.2.1/joint_cross_gradient_inversion.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/joint_surveys_inversion.ui.json b/tests/legacy/v0.2.1/joint_surveys_inversion.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/joint_surveys_inversion.ui.json rename to tests/legacy/v0.2.1/joint_surveys_inversion.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/magnetic_scalar_forward.ui.json b/tests/legacy/v0.2.1/magnetic_scalar_forward.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/magnetic_scalar_forward.ui.json rename to tests/legacy/v0.2.1/magnetic_scalar_forward.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/magnetic_scalar_inversion.ui.json b/tests/legacy/v0.2.1/magnetic_scalar_inversion.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/magnetic_scalar_inversion.ui.json rename to tests/legacy/v0.2.1/magnetic_scalar_inversion.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/magnetic_vector_forward.ui.json b/tests/legacy/v0.2.1/magnetic_vector_forward.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/magnetic_vector_forward.ui.json rename to tests/legacy/v0.2.1/magnetic_vector_forward.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/magnetic_vector_inversion.ui.json b/tests/legacy/v0.2.1/magnetic_vector_inversion.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/magnetic_vector_inversion.ui.json rename to tests/legacy/v0.2.1/magnetic_vector_inversion.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/magnetotellurics_forward.ui.json b/tests/legacy/v0.2.1/magnetotellurics_forward.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/magnetotellurics_forward.ui.json rename to tests/legacy/v0.2.1/magnetotellurics_forward.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/magnetotellurics_inversion.ui.json b/tests/legacy/v0.2.1/magnetotellurics_inversion.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/magnetotellurics_inversion.ui.json rename to tests/legacy/v0.2.1/magnetotellurics_inversion.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/tdem_forward.ui.json b/tests/legacy/v0.2.1/tdem_forward.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/tdem_forward.ui.json rename to tests/legacy/v0.2.1/tdem_forward.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/tdem_inversion.ui.json b/tests/legacy/v0.2.1/tdem_inversion.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/tdem_inversion.ui.json rename to tests/legacy/v0.2.1/tdem_inversion.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/tipper_forward.ui.json b/tests/legacy/v0.2.1/tipper_forward.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/tipper_forward.ui.json rename to tests/legacy/v0.2.1/tipper_forward.ui.json diff --git a/simpeg_drivers-assets/legacy/v0.2.1/tipper_inversion.ui.json b/tests/legacy/v0.2.1/tipper_inversion.ui.json similarity index 100% rename from simpeg_drivers-assets/legacy/v0.2.1/tipper_inversion.ui.json rename to tests/legacy/v0.2.1/tipper_inversion.ui.json diff --git a/tests/uijson_test.py b/tests/uijson_test.py index aea86209..3ad8b926 100644 --- a/tests/uijson_test.py +++ b/tests/uijson_test.py @@ -279,7 +279,7 @@ def test_legacy_uijson(tmp_path): Loop over all uijson files in the legacy directory and check that the read and run still works. """ - path = simpeg_drivers.assets_path() / "legacy" + path = Path(__file__).resolve().parent / "legacy" for directory in path.iterdir(): if not directory.is_dir(): From 3ae82e546ddd894254f82f2c5a865996288ac65b Mon Sep 17 00:00:00 2001 From: dominiquef Date: Fri, 16 May 2025 10:28:24 -0700 Subject: [PATCH 11/12] move testing utils under tests --- .pre-commit-config.yaml | 1 + tests/data_test.py | 2 +- tests/driver_test.py | 2 +- tests/locations_test.py | 2 +- tests/meshes_test.py | 2 +- tests/models_test.py | 2 +- tests/run_tests/driver_airborne_fem_1d_test.py | 2 +- tests/run_tests/driver_airborne_tem_1d_test.py | 2 +- tests/run_tests/driver_airborne_tem_test.py | 2 +- tests/run_tests/driver_dc_2d_test.py | 2 +- tests/run_tests/driver_dc_b2d_test.py | 2 +- tests/run_tests/driver_dc_test.py | 2 +- tests/run_tests/driver_fem_test.py | 2 +- tests/run_tests/driver_grav_test.py | 2 +- tests/run_tests/driver_ground_tem_test.py | 2 +- tests/run_tests/driver_ip_2d_test.py | 2 +- tests/run_tests/driver_ip_b2d_test.py | 2 +- tests/run_tests/driver_ip_test.py | 2 +- tests/run_tests/driver_joint_cross_gradient_test.py | 2 +- tests/run_tests/driver_joint_surveys_test.py | 2 +- tests/run_tests/driver_mag_automesh_test.py | 2 +- tests/run_tests/driver_mag_test.py | 2 +- tests/run_tests/driver_mt_test.py | 2 +- tests/run_tests/driver_mvi_test.py | 2 +- tests/run_tests/driver_rotated_gradients_test.py | 2 +- tests/run_tests/driver_tile_estimator_test.py | 2 +- tests/run_tests/driver_tipper_test.py | 2 +- tests/run_tests/sensitivity_cutoff_test.py | 2 +- simpeg_drivers/utils/testing.py => tests/testing_utils.py | 0 tests/topography_test.py | 2 +- tests/uijson_test.py | 2 +- 31 files changed, 30 insertions(+), 29 deletions(-) rename simpeg_drivers/utils/testing.py => tests/testing_utils.py (100%) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 28f49512..d349a943 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -86,6 +86,7 @@ repos: - id: mixed-line-ending exclude: ^\.idea/.*\.xml$ - id: name-tests-test + exclude: testing_utils.py - id: pretty-format-json args: - --autofix diff --git a/tests/data_test.py b/tests/data_test.py index 82288b5d..5f01de33 100644 --- a/tests/data_test.py +++ b/tests/data_test.py @@ -29,7 +29,7 @@ from simpeg_drivers.potential_fields.magnetic_vector.options import ( MVIInversionOptions, ) -from simpeg_drivers.utils.testing import Geoh5Tester, setup_inversion_workspace +from tests.testing_utils import Geoh5Tester, setup_inversion_workspace def get_mvi_params(tmp_path: Path, **kwargs) -> MVIInversionOptions: diff --git a/tests/driver_test.py b/tests/driver_test.py index aa99564e..a3c419ac 100644 --- a/tests/driver_test.py +++ b/tests/driver_test.py @@ -15,7 +15,7 @@ from simpeg_drivers.options import ActiveCellsOptions from simpeg_drivers.potential_fields import GravityInversionOptions from simpeg_drivers.potential_fields.gravity.driver import GravityInversionDriver -from simpeg_drivers.utils.testing import setup_inversion_workspace +from tests.testing_utils import setup_inversion_workspace def test_smallness_terms(tmp_path: Path): diff --git a/tests/locations_test.py b/tests/locations_test.py index 997e07a2..b654cdc7 100644 --- a/tests/locations_test.py +++ b/tests/locations_test.py @@ -19,7 +19,7 @@ from simpeg_drivers.components.locations import InversionLocations from simpeg_drivers.options import ActiveCellsOptions from simpeg_drivers.potential_fields import MVIInversionOptions -from simpeg_drivers.utils.testing import Geoh5Tester, setup_inversion_workspace +from tests.testing_utils import Geoh5Tester, setup_inversion_workspace def get_mvi_params(tmp_path: Path) -> MVIInversionOptions: diff --git a/tests/meshes_test.py b/tests/meshes_test.py index 5ed2ba25..e8a02391 100644 --- a/tests/meshes_test.py +++ b/tests/meshes_test.py @@ -22,7 +22,7 @@ from simpeg_drivers.components import InversionMesh from simpeg_drivers.options import ActiveCellsOptions from simpeg_drivers.potential_fields import MVIInversionOptions -from simpeg_drivers.utils.testing import Geoh5Tester, setup_inversion_workspace +from tests.testing_utils import Geoh5Tester, setup_inversion_workspace def get_mvi_params(tmp_path: Path) -> MVIInversionOptions: diff --git a/tests/models_test.py b/tests/models_test.py index 3e5f741e..d8208574 100644 --- a/tests/models_test.py +++ b/tests/models_test.py @@ -25,7 +25,7 @@ from simpeg_drivers.potential_fields.magnetic_vector.driver import ( MVIInversionDriver, ) -from simpeg_drivers.utils.testing import Geoh5Tester, setup_inversion_workspace +from tests.testing_utils import Geoh5Tester, setup_inversion_workspace def get_mvi_params(tmp_path: Path) -> MVIInversionOptions: diff --git a/tests/run_tests/driver_airborne_fem_1d_test.py b/tests/run_tests/driver_airborne_fem_1d_test.py index 87528e29..a38b25a0 100644 --- a/tests/run_tests/driver_airborne_fem_1d_test.py +++ b/tests/run_tests/driver_airborne_fem_1d_test.py @@ -27,8 +27,8 @@ FDEM1DInversionOptions, ) from simpeg_drivers.options import ActiveCellsOptions -from simpeg_drivers.utils.testing import check_target, setup_inversion_workspace from simpeg_drivers.utils.utils import get_inversion_output +from tests.testing_utils import check_target, setup_inversion_workspace # To test the full run and validate the inversion. diff --git a/tests/run_tests/driver_airborne_tem_1d_test.py b/tests/run_tests/driver_airborne_tem_1d_test.py index 50d1e17d..bddf1d09 100644 --- a/tests/run_tests/driver_airborne_tem_1d_test.py +++ b/tests/run_tests/driver_airborne_tem_1d_test.py @@ -26,8 +26,8 @@ TDEM1DInversionOptions, ) from simpeg_drivers.options import ActiveCellsOptions -from simpeg_drivers.utils.testing import check_target, setup_inversion_workspace from simpeg_drivers.utils.utils import get_inversion_output +from tests.testing_utils import check_target, setup_inversion_workspace # To test the full run and validate the inversion. diff --git a/tests/run_tests/driver_airborne_tem_test.py b/tests/run_tests/driver_airborne_tem_test.py index 2d7a338d..1ad5f7ae 100644 --- a/tests/run_tests/driver_airborne_tem_test.py +++ b/tests/run_tests/driver_airborne_tem_test.py @@ -26,8 +26,8 @@ TDEMInversionOptions, ) from simpeg_drivers.options import ActiveCellsOptions -from simpeg_drivers.utils.testing import check_target, setup_inversion_workspace from simpeg_drivers.utils.utils import get_inversion_output +from tests.testing_utils import check_target, setup_inversion_workspace # To test the full run and validate the inversion. diff --git a/tests/run_tests/driver_dc_2d_test.py b/tests/run_tests/driver_dc_2d_test.py index f1d4de75..3edd585d 100644 --- a/tests/run_tests/driver_dc_2d_test.py +++ b/tests/run_tests/driver_dc_2d_test.py @@ -30,8 +30,8 @@ DrapeModelOptions, LineSelectionOptions, ) -from simpeg_drivers.utils.testing import check_target, setup_inversion_workspace from simpeg_drivers.utils.utils import get_inversion_output +from tests.testing_utils import check_target, setup_inversion_workspace # To test the full run and validate the inversion. diff --git a/tests/run_tests/driver_dc_b2d_test.py b/tests/run_tests/driver_dc_b2d_test.py index c02d9493..5368b407 100644 --- a/tests/run_tests/driver_dc_b2d_test.py +++ b/tests/run_tests/driver_dc_b2d_test.py @@ -33,8 +33,8 @@ DrapeModelOptions, LineSelectionOptions, ) -from simpeg_drivers.utils.testing import check_target, setup_inversion_workspace from simpeg_drivers.utils.utils import get_inversion_output +from tests.testing_utils import check_target, setup_inversion_workspace # To test the full run and validate the inversion. diff --git a/tests/run_tests/driver_dc_test.py b/tests/run_tests/driver_dc_test.py index da41e143..c13e64c6 100644 --- a/tests/run_tests/driver_dc_test.py +++ b/tests/run_tests/driver_dc_test.py @@ -24,8 +24,8 @@ DC3DInversionOptions, ) from simpeg_drivers.options import ActiveCellsOptions -from simpeg_drivers.utils.testing import check_target, setup_inversion_workspace from simpeg_drivers.utils.utils import get_inversion_output +from tests.testing_utils import check_target, setup_inversion_workspace # To test the full run and validate the inversion. diff --git a/tests/run_tests/driver_fem_test.py b/tests/run_tests/driver_fem_test.py index b62d055f..6f9054f4 100644 --- a/tests/run_tests/driver_fem_test.py +++ b/tests/run_tests/driver_fem_test.py @@ -28,8 +28,8 @@ FDEMInversionOptions, ) from simpeg_drivers.options import ActiveCellsOptions -from simpeg_drivers.utils.testing import check_target, setup_inversion_workspace from simpeg_drivers.utils.utils import get_inversion_output +from tests.testing_utils import check_target, setup_inversion_workspace # To test the full run and validate the inversion. diff --git a/tests/run_tests/driver_grav_test.py b/tests/run_tests/driver_grav_test.py index b3541083..83a6c86a 100644 --- a/tests/run_tests/driver_grav_test.py +++ b/tests/run_tests/driver_grav_test.py @@ -27,8 +27,8 @@ GravityForwardDriver, GravityInversionDriver, ) -from simpeg_drivers.utils.testing import check_target, setup_inversion_workspace from simpeg_drivers.utils.utils import get_inversion_output +from tests.testing_utils import check_target, setup_inversion_workspace # To test the full run and validate the inversion. diff --git a/tests/run_tests/driver_ground_tem_test.py b/tests/run_tests/driver_ground_tem_test.py index 58396b52..38b2d8ac 100644 --- a/tests/run_tests/driver_ground_tem_test.py +++ b/tests/run_tests/driver_ground_tem_test.py @@ -26,8 +26,8 @@ TDEMInversionOptions, ) from simpeg_drivers.options import ActiveCellsOptions -from simpeg_drivers.utils.testing import check_target, setup_inversion_workspace from simpeg_drivers.utils.utils import get_inversion_output +from tests.testing_utils import check_target, setup_inversion_workspace logger = getLogger(__name__) diff --git a/tests/run_tests/driver_ip_2d_test.py b/tests/run_tests/driver_ip_2d_test.py index 29ec1905..26daff56 100644 --- a/tests/run_tests/driver_ip_2d_test.py +++ b/tests/run_tests/driver_ip_2d_test.py @@ -24,8 +24,8 @@ IP2DInversionDriver, ) from simpeg_drivers.options import ActiveCellsOptions, LineSelectionOptions -from simpeg_drivers.utils.testing import check_target, setup_inversion_workspace from simpeg_drivers.utils.utils import get_inversion_output +from tests.testing_utils import check_target, setup_inversion_workspace # To test the full run and validate the inversion. diff --git a/tests/run_tests/driver_ip_b2d_test.py b/tests/run_tests/driver_ip_b2d_test.py index 45ab36fe..f19ad257 100644 --- a/tests/run_tests/driver_ip_b2d_test.py +++ b/tests/run_tests/driver_ip_b2d_test.py @@ -32,8 +32,8 @@ DrapeModelOptions, LineSelectionOptions, ) -from simpeg_drivers.utils.testing import check_target, setup_inversion_workspace from simpeg_drivers.utils.utils import get_inversion_output +from tests.testing_utils import check_target, setup_inversion_workspace # To test the full run and validate the inversion. diff --git a/tests/run_tests/driver_ip_test.py b/tests/run_tests/driver_ip_test.py index c2b29622..c191590e 100644 --- a/tests/run_tests/driver_ip_test.py +++ b/tests/run_tests/driver_ip_test.py @@ -23,8 +23,8 @@ IP3DInversionDriver, ) from simpeg_drivers.options import ActiveCellsOptions -from simpeg_drivers.utils.testing import check_target, setup_inversion_workspace from simpeg_drivers.utils.utils import get_inversion_output +from tests.testing_utils import check_target, setup_inversion_workspace # To test the full run and validate the inversion. diff --git a/tests/run_tests/driver_joint_cross_gradient_test.py b/tests/run_tests/driver_joint_cross_gradient_test.py index 28e6e8a9..e5d6598e 100644 --- a/tests/run_tests/driver_joint_cross_gradient_test.py +++ b/tests/run_tests/driver_joint_cross_gradient_test.py @@ -40,8 +40,8 @@ MVIForwardDriver, MVIInversionDriver, ) -from simpeg_drivers.utils.testing import check_target, setup_inversion_workspace from simpeg_drivers.utils.utils import get_inversion_output +from tests.testing_utils import check_target, setup_inversion_workspace # To test the full run and validate the inversion. diff --git a/tests/run_tests/driver_joint_surveys_test.py b/tests/run_tests/driver_joint_surveys_test.py index dce8f18c..59744f4e 100644 --- a/tests/run_tests/driver_joint_surveys_test.py +++ b/tests/run_tests/driver_joint_surveys_test.py @@ -22,8 +22,8 @@ GravityInversionOptions, ) from simpeg_drivers.potential_fields.gravity.driver import GravityInversionDriver -from simpeg_drivers.utils.testing import check_target, setup_inversion_workspace from simpeg_drivers.utils.utils import get_inversion_output +from tests.testing_utils import check_target, setup_inversion_workspace # To test the full run and validate the inversion. diff --git a/tests/run_tests/driver_mag_automesh_test.py b/tests/run_tests/driver_mag_automesh_test.py index 28ca4cbd..8ac5db4d 100644 --- a/tests/run_tests/driver_mag_automesh_test.py +++ b/tests/run_tests/driver_mag_automesh_test.py @@ -25,8 +25,8 @@ MagneticForwardDriver, MagneticInversionDriver, ) -from simpeg_drivers.utils.testing import check_target, setup_inversion_workspace from simpeg_drivers.utils.utils import get_inversion_output +from tests.testing_utils import check_target, setup_inversion_workspace TARGET = 1132.1998 diff --git a/tests/run_tests/driver_mag_test.py b/tests/run_tests/driver_mag_test.py index 58f8dd7b..20dff4dd 100644 --- a/tests/run_tests/driver_mag_test.py +++ b/tests/run_tests/driver_mag_test.py @@ -25,8 +25,8 @@ MagneticForwardDriver, MagneticInversionDriver, ) -from simpeg_drivers.utils.testing import check_target, setup_inversion_workspace from simpeg_drivers.utils.utils import get_inversion_output +from tests.testing_utils import check_target, setup_inversion_workspace # To test the full run and validate the inversion. diff --git a/tests/run_tests/driver_mt_test.py b/tests/run_tests/driver_mt_test.py index c5a2f2fc..e9cb1b04 100644 --- a/tests/run_tests/driver_mt_test.py +++ b/tests/run_tests/driver_mt_test.py @@ -28,8 +28,8 @@ MTInversionOptions, ) from simpeg_drivers.options import ActiveCellsOptions -from simpeg_drivers.utils.testing import check_target, setup_inversion_workspace from simpeg_drivers.utils.utils import get_inversion_output +from tests.testing_utils import check_target, setup_inversion_workspace # To test the full run and validate the inversion. diff --git a/tests/run_tests/driver_mvi_test.py b/tests/run_tests/driver_mvi_test.py index 80d9304f..ca0ee227 100644 --- a/tests/run_tests/driver_mvi_test.py +++ b/tests/run_tests/driver_mvi_test.py @@ -29,8 +29,8 @@ MVIForwardDriver, MVIInversionDriver, ) -from simpeg_drivers.utils.testing import check_target, setup_inversion_workspace from simpeg_drivers.utils.utils import get_inversion_output +from tests.testing_utils import check_target, setup_inversion_workspace # To test the full run and validate the inversion. diff --git a/tests/run_tests/driver_rotated_gradients_test.py b/tests/run_tests/driver_rotated_gradients_test.py index 159fa64f..d7b2fc89 100644 --- a/tests/run_tests/driver_rotated_gradients_test.py +++ b/tests/run_tests/driver_rotated_gradients_test.py @@ -28,8 +28,8 @@ GravityForwardDriver, GravityInversionDriver, ) -from simpeg_drivers.utils.testing import check_target, setup_inversion_workspace from simpeg_drivers.utils.utils import get_inversion_output +from tests.testing_utils import check_target, setup_inversion_workspace # To test the full run and validate the inversion. diff --git a/tests/run_tests/driver_tile_estimator_test.py b/tests/run_tests/driver_tile_estimator_test.py index 8f7737ec..ddb0ae92 100644 --- a/tests/run_tests/driver_tile_estimator_test.py +++ b/tests/run_tests/driver_tile_estimator_test.py @@ -19,9 +19,9 @@ from simpeg_drivers.potential_fields.magnetic_scalar.driver import ( MagneticInversionDriver, ) -from simpeg_drivers.utils.testing import setup_inversion_workspace from simpeg_drivers.utils.tile_estimate import TileEstimator, TileParameters from simpeg_drivers.utils.utils import simpeg_group_to_driver +from tests.testing_utils import setup_inversion_workspace def test_tile_estimator_run( diff --git a/tests/run_tests/driver_tipper_test.py b/tests/run_tests/driver_tipper_test.py index 7165e7dc..d87f2a4a 100644 --- a/tests/run_tests/driver_tipper_test.py +++ b/tests/run_tests/driver_tipper_test.py @@ -25,8 +25,8 @@ TipperInversionDriver, ) from simpeg_drivers.options import ActiveCellsOptions -from simpeg_drivers.utils.testing import check_target, setup_inversion_workspace from simpeg_drivers.utils.utils import get_inversion_output +from tests.testing_utils import check_target, setup_inversion_workspace # To test the full run and validate the inversion. diff --git a/tests/run_tests/sensitivity_cutoff_test.py b/tests/run_tests/sensitivity_cutoff_test.py index f4388810..15cc11ef 100644 --- a/tests/run_tests/sensitivity_cutoff_test.py +++ b/tests/run_tests/sensitivity_cutoff_test.py @@ -24,7 +24,7 @@ from simpeg_drivers.options import ActiveCellsOptions from simpeg_drivers.potential_fields import GravityInversionOptions from simpeg_drivers.potential_fields.gravity.driver import GravityInversionDriver -from simpeg_drivers.utils.testing import setup_inversion_workspace +from tests.testing_utils import setup_inversion_workspace def setup_inversion_results( diff --git a/simpeg_drivers/utils/testing.py b/tests/testing_utils.py similarity index 100% rename from simpeg_drivers/utils/testing.py rename to tests/testing_utils.py diff --git a/tests/topography_test.py b/tests/topography_test.py index e0f5114c..de8bebb8 100644 --- a/tests/topography_test.py +++ b/tests/topography_test.py @@ -17,7 +17,7 @@ from simpeg_drivers.components import InversionData, InversionMesh, InversionTopography from simpeg_drivers.options import ActiveCellsOptions from simpeg_drivers.potential_fields import MVIInversionOptions -from simpeg_drivers.utils.testing import Geoh5Tester, setup_inversion_workspace +from tests.testing_utils import Geoh5Tester, setup_inversion_workspace def test_get_locations(tmp_path: Path): diff --git a/tests/uijson_test.py b/tests/uijson_test.py index 9ddcee44..fb1ee303 100644 --- a/tests/uijson_test.py +++ b/tests/uijson_test.py @@ -28,7 +28,7 @@ from simpeg_drivers.potential_fields.gravity.options import GravityInversionOptions from simpeg_drivers.potential_fields.gravity.uijson import GravityInversionUIJson from simpeg_drivers.uijson import SimPEGDriversUIJson -from simpeg_drivers.utils.testing import setup_inversion_workspace +from tests.testing_utils import setup_inversion_workspace logger = logging.getLogger(__name__) From 308d953c32177819dc41c0cbec3acca0e3b8e153 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Fri, 16 May 2025 15:02:10 -0700 Subject: [PATCH 12/12] Add method from_input_file to generate a driver instance --- simpeg_drivers/driver.py | 51 ++++++++++++++++++++++++++-------------- tests/uijson_test.py | 2 +- 2 files changed, 35 insertions(+), 18 deletions(-) diff --git a/simpeg_drivers/driver.py b/simpeg_drivers/driver.py index e038f75c..a7ab4fee 100644 --- a/simpeg_drivers/driver.py +++ b/simpeg_drivers/driver.py @@ -612,41 +612,38 @@ def configure_dask(self): dconf.set(scheduler="threads", pool=ThreadPool(n_cpu)) @classmethod - def start(cls, filepath: str | Path | InputFile, run=True) -> InversionDriver: + def start( + cls, filepath: str | Path | InputFile, driver_class=None, **kwargs + ) -> InversionDriver: """ Start the inversion driver. :param filepath: Path to the input file or InputFile object. - :param run: If True, run the inversion, otherwise only instantiate the - driver class. + :param driver_class: Optional driver class to use instead of the default. + :param kwargs: Additional keyword arguments for InputFile read_ui_json. :return: InversionDriver instance with the specified parameters. """ if isinstance(filepath, InputFile): ifile = filepath else: - ifile = InputFile.read_ui_json(filepath) - - forward_only = ifile.data["forward_only"] - inversion_type = ifile.ui_json.get("inversion_type", None) - - driver_class = cls.driver_class_from_name( - inversion_type, forward_only=forward_only - ) + ifile = InputFile.read_ui_json(filepath, **kwargs) - with ifile.data["geoh5"].open(mode="r+"): - params = driver_class._options_class.build(ifile) - driver = driver_class(params) + if driver_class is None: + driver = cls.from_input_file(ifile) + else: + with ifile.data["geoh5"].open(mode="r+"): + params = driver_class._options_class.build(ifile) + driver = driver_class(params) - if run: - driver.run() + driver.run() return driver @staticmethod def driver_class_from_name( name: str, forward_only: bool = False - ) -> InversionDriver: + ) -> type[InversionDriver]: if name not in DRIVER_MAP: msg = f"Inversion type {name} is not supported." msg += f" Valid inversions are: {(*list(DRIVER_MAP),)}." @@ -660,6 +657,26 @@ def driver_class_from_name( module = __import__(mod_name, fromlist=[class_name]) return getattr(module, class_name) + @classmethod + def from_input_file(cls, ifile: InputFile) -> InversionDriver: + forward_only = ifile.data["forward_only"] + inversion_type = ifile.ui_json.get("inversion_type", None) + if inversion_type is None: + raise GeoAppsError( + "Key/value 'inversion_type' not found in the input file. " + "Please specify the inversion type in the UI JSON." + ) + + driver_class = cls.driver_class_from_name( + inversion_type, forward_only=forward_only + ) + + with ifile.data["geoh5"].open(mode="r+"): + params = driver_class._options_class.build(ifile) + driver = driver_class(params) + + return driver + class InversionLogger: def __init__(self, logfile, driver): diff --git a/tests/uijson_test.py b/tests/uijson_test.py index fb1ee303..7f76b0c8 100644 --- a/tests/uijson_test.py +++ b/tests/uijson_test.py @@ -350,7 +350,7 @@ def test_legacy_uijson(tmp_path: Path): ifile.data[CHANNEL_NAME[inversion_type] + "_channel"] = channel ifile.data[CHANNEL_NAME[inversion_type] + "_uncertainty"] = channel - driver = InversionDriver.start(ifile, run=False) + driver = InversionDriver.from_input_file(ifile) if isinstance(driver, LineSweepDriver): continue