resqpy 4.15.1__tar.gz → 4.15.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {resqpy-4.15.1 → resqpy-4.15.3}/PKG-INFO +1 -1
- {resqpy-4.15.1 → resqpy-4.15.3}/pyproject.toml +1 -1
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/__init__.py +1 -1
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/rq_import/_import_nexus.py +75 -48
- resqpy-4.15.3/resqpy/rq_import/_import_vdb_all_grids.py +120 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/surface/_surface.py +18 -2
- resqpy-4.15.1/resqpy/rq_import/_import_vdb_all_grids.py +0 -108
- {resqpy-4.15.1 → resqpy-4.15.3}/LICENSE +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/README.md +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/crs.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/__init__.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_add_edges_per_column_property_array.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_add_faults.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_add_one_blocked_well_property.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_add_one_grid_property_array.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_add_single_cell_grid.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_add_wells_from_ascii_file.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_add_zone_by_layer_property.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_coarsened_grid.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_common.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_copy_grid.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_drape_to_surface.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_extract_box.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_extract_box_for_well.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_fault_throw_scaling.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_gather_ensemble.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_interpolated_grid.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_local_depth_adjustment.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_refined_grid.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_tilted_grid.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_unsplit_grid.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_zonal_grid.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_zone_layer_ranges_from_array.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/fault/__init__.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/fault/_gcs_functions.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/fault/_grid_connection_set.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid/__init__.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid/_cell_properties.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid/_connection_sets.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid/_create_grid_xml.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid/_defined_geometry.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid/_extract_functions.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid/_face_functions.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid/_faults.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid/_grid.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid/_grid_types.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid/_intervals_info.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid/_moved_functions.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid/_pillars.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid/_pixel_maps.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid/_points_functions.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid/_regular_grid.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid/_transmissibility.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid/_write_hdf5_from_caches.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid/_write_nexus_corp.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid/_xyz.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid_surface/__init__.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid_surface/_blocked_well_populate.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid_surface/_find_faces.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid_surface/_grid_skin.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid_surface/_grid_surface.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid_surface/_trajectory_intersects.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/grid_surface/grid_surface_cuda.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/lines/__init__.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/lines/_common.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/lines/_polyline.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/lines/_polyline_set.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/model/__init__.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/model/_catalogue.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/model/_context.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/model/_forestry.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/model/_grids.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/model/_hdf5.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/model/_model.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/model/_xml.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/multi_processing/__init__.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/multi_processing/_multiprocessing.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/multi_processing/wrappers/__init__.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/multi_processing/wrappers/blocked_well_mp.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/multi_processing/wrappers/grid_surface_mp.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/multi_processing/wrappers/mesh_mp.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/__init__.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/ab_toolbox.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/base.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/box_utilities.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/class_dict.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/consolidation.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/data/build.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/data/properties.json +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/dataframe.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/exceptions.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/factors.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/fine_coarse.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/grid_functions.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/intersection.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/keyword_files.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/load_data.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/point_inclusion.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/random_seed.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/read_nexus_fault.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/relperm.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/simple_lines.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/time.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/trademark.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/transmission.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/triangulation.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/uuid.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/vdb.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/vector_utilities.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/volume.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/wellspec_keywords.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/write_data.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/write_hdf5.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/xml_et.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/xml_namespaces.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/olio/zmap_reader.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/__init__.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/_utils.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/boundary_feature.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/boundary_feature_interpretation.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/earth_model_interpretation.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/fault_interpretation.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/fluid_boundary_feature.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/frontier_feature.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/generic_interpretation.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/genetic_boundary_feature.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/geobody_boundary_interpretation.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/geobody_feature.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/geobody_interpretation.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/geologic_unit_feature.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/horizon_interpretation.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/organization_feature.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/rock_fluid_unit_feature.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/structural_organization_interpretation.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/tectonic_boundary_feature.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/wellbore_feature.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/organize/wellbore_interpretation.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/property/__init__.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/property/_collection_add_part.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/property/_collection_create_xml.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/property/_collection_get_attributes.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/property/_collection_support.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/property/_property.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/property/attribute_property_set.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/property/grid_property_collection.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/property/property_collection.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/property/property_common.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/property/property_kind.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/property/string_lookup.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/property/well_interval_property.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/property/well_interval_property_collection.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/property/well_log.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/property/well_log_collection.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/rq_import/__init__.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/rq_import/_add_ab_properties.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/rq_import/_add_surfaces.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/rq_import/_grid_from_cp.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/rq_import/_import_vdb_ensemble.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/strata/__init__.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/strata/_binary_contact_interpretation.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/strata/_geologic_unit_interpretation.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/strata/_strata_common.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/strata/_stratigraphic_column.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/strata/_stratigraphic_column_rank.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/strata/_stratigraphic_unit_feature.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/strata/_stratigraphic_unit_interpretation.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/surface/__init__.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/surface/_base_surface.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/surface/_combined_surface.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/surface/_mesh.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/surface/_pointset.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/surface/_tri_mesh.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/surface/_tri_mesh_stencil.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/surface/_triangulated_patch.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/time_series/__init__.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/time_series/_any_time_series.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/time_series/_from_nexus_summary.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/time_series/_functions.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/time_series/_geologic_time_series.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/time_series/_time_duration.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/time_series/_time_series.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/unstructured/__init__.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/unstructured/_hexa_grid.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/unstructured/_prism_grid.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/unstructured/_pyramid_grid.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/unstructured/_tetra_grid.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/unstructured/_unstructured_grid.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/weights_and_measures/__init__.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/weights_and_measures/nexus_units.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/weights_and_measures/weights_and_measures.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/well/__init__.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/well/_blocked_well.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/well/_deviation_survey.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/well/_md_datum.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/well/_trajectory.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/well/_wellbore_frame.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/well/_wellbore_marker.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/well/_wellbore_marker_frame.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/well/blocked_well_frame.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/well/well_object_funcs.py +0 -0
- {resqpy-4.15.1 → resqpy-4.15.3}/resqpy/well/well_utils.py +0 -0
@@ -67,55 +67,78 @@ def import_nexus(
|
|
67
67
|
ensemble_size_limit = None,
|
68
68
|
grid_title = 'ROOT',
|
69
69
|
mode = 'w',
|
70
|
-
progress_fn = None
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
vdb_case (str, optional): required if the vdb contains more than one case
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
70
|
+
progress_fn = None,
|
71
|
+
vdb_property_list = None):
|
72
|
+
"""Read a Nexus grid geometry (from ascii input or vdb) and optionally grid properties.
|
73
|
+
|
74
|
+
arguments:
|
75
|
+
- resqml_file_root (str): output path and file name without .epc or .h5 extension
|
76
|
+
- extent_ijk (triple float, optional): ijk extents (fortran ordering)
|
77
|
+
- vdb_file (str, optional): vdb input file, either this or corp_file should be not None;
|
78
|
+
required if importing from a vdb
|
79
|
+
- vdb_case (str, optional): required if the vdb contains more than one case;
|
80
|
+
if None, first case in vdb is used
|
81
|
+
- corp_file (str, optional): required if importing from corp ascii file;
|
82
|
+
corp ascii input file containing nexus corp data without keyword
|
83
|
+
- corp_bin_file (str, optional): required if importing from corp binary file
|
84
|
+
- corp_xy_units (str, default 'm'): xy length units
|
85
|
+
- corp_z_units (str, default 'm'): z length units
|
86
|
+
- corp_z_inc_down (bool, default True): if True z values increase with depth
|
87
|
+
- ijk_handedness (str, default 'right'): 'right' or 'left'
|
88
|
+
- corp_eight_mode (bool, default False): if True the ordering of corner point data
|
89
|
+
is in nexus EIGHT mode
|
90
|
+
- geometry_defined_everywhere (bool, default True): if False then inactive cells are
|
91
|
+
marked as not having geometry
|
92
|
+
- treat_as_nan (float, default None): if a value is provided corner points with
|
93
|
+
this value will be assigned not-a-number
|
94
|
+
- active_mask_file (str, default None): ascii property file holding values 0 or 1,
|
95
|
+
with 1 indicating active cells
|
96
|
+
- use_binary (bool, default False): if True a cached binary version of ascii files
|
97
|
+
will be used (pure binary, not corp bin format)
|
98
|
+
- resqml_xy_units (str, default 'm'): output xy units for resqml file
|
99
|
+
- resqml_z_units (str, default 'm'): output z units for resqml file
|
100
|
+
- resqml_z_inc_down (bool, default True): if True z values increase with depth for
|
101
|
+
output resqml file
|
102
|
+
- shift_to_local (bool, default False): if True then a local origin will be used in the CRS
|
103
|
+
- local_origin_place (str, default 'centre'): 'centre' or 'minimum'; if 'centre' the
|
104
|
+
local origin is placed at the centre of the grid; ignored if shift_to_local is False
|
105
|
+
- max_z_void (float, default 0.1): maximum z gap between vertically neighbouring corner points;
|
106
|
+
vertical gaps greater than this will introduce k gaps into resqml grid; units are corp z units
|
107
|
+
- split_pillars (bool, default True): if False an unfaulted grid will be generated
|
108
|
+
- split_tolerance (float, default 0.01): maximum distance between neighbouring corner points
|
109
|
+
before a pillar is considered 'split'; applies to each of x, y, z differences
|
110
|
+
- property_array_files (list, default None): list of (filename, keyword, uom, time_index, null_value, discrete)
|
111
|
+
- summary_file (str, default None): nexus output summary file, used to extract timestep dates
|
112
|
+
when loading recurrent data from vdb
|
113
|
+
- vdb_static_properties (bool, default True): if True, static vdb properties are imported;
|
114
|
+
only relevant if vdb_file is not None; see also vdb_property_list
|
115
|
+
- vdb_recurrent_properties (bool, default False): if True, recurrent vdb properties are imported;
|
116
|
+
only relevant if vdb_file is not None; see also vdb_property_list
|
117
|
+
- timestep_selection (str, default 'all): 'first', 'last', 'first and last', 'all',
|
118
|
+
or list of ints being reporting timestep numbers; ignored if vdb_recurrent_properties is False
|
119
|
+
- use_compressed_time_series (bool, default True): generates reduced time series containing
|
120
|
+
timesteps with recurrent properties from vdb, rather than full nexus summary time series
|
121
|
+
- decoarsen (bool, default True): where ICOARSE is present, redistribute data to uncoarse cells
|
122
|
+
- ab_property_list (list, optional): list of
|
123
|
+
(file_name, keyword, property_kind, facet_type, facet, uom, time_index, null_value, discrete)
|
124
|
+
- create_property_set (bool, default False): if True a resqml PropertySet is created
|
125
|
+
- ensemble_case_dirs_root (str, optional): path up to but excluding realisation number
|
126
|
+
- ensemble_property_dictionary (str, optional): dictionary mapping title (or keyword) to
|
127
|
+
(filename, property_kind, facet_type, facet, uom, time_index, null_value, discrete)
|
128
|
+
- ensemble_size_limit (int, optional): if present processing of ensemble will terminate
|
129
|
+
after this number of cases is reached
|
130
|
+
- grid_title (str, default 'ROOT'): grid citation title
|
131
|
+
- mode (str, default 'w'): 'w' or 'a', mode to write or append to hdf5
|
132
|
+
- progress_fn (function, default None): if present function must have one floating argument
|
133
|
+
with value increasing from 0.0 to 1.0, and is called at intervals to indicate progress
|
134
|
+
- vdb_property_list (list of str, optional): list of vdb static and/or recurrent properties to
|
135
|
+
include in the import; if None, all properties are imported; vdb_static_properties and
|
136
|
+
vdb_recurrent_properties boolean arguments must also be set True for respective properties
|
137
|
+
to be included; ignored if not importing from vdb
|
138
|
+
|
139
|
+
returns:
|
140
|
+
- resqml model in memory & written to disc
|
117
141
|
"""
|
118
|
-
|
119
142
|
if resqml_file_root.endswith('.epc'):
|
120
143
|
resqml_file_root = resqml_file_root[:-4]
|
121
144
|
assert mode in ['w', 'a']
|
@@ -333,6 +356,8 @@ def import_nexus(
|
|
333
356
|
prop_import_collection = rp.GridPropertyCollection()
|
334
357
|
prop_import_collection.set_grid(grid)
|
335
358
|
for keyword in props:
|
359
|
+
if vdb_property_list is not None and keyword not in vdb_property_list:
|
360
|
+
continue
|
336
361
|
prop_import_collection.import_vdb_static_property_to_cache(vdbase, keyword, grid_name = grid_title)
|
337
362
|
# if active_mask is not None:
|
338
363
|
# prop_import_collection.add_cached_array_to_imported_list(active_mask, active_mask_file, 'ACTIVE', property_kind = 'active',
|
@@ -520,6 +545,8 @@ def import_nexus(
|
|
520
545
|
for keyword in recur_prop_list:
|
521
546
|
if vdb.bad_keyword(keyword):
|
522
547
|
continue
|
548
|
+
if vdb_property_list is not None and keyword not in vdb_property_list:
|
549
|
+
continue
|
523
550
|
prop_kind, facet_type, facet = rp.property_kind_and_facet_from_keyword(keyword)
|
524
551
|
step_import_collection.import_vdb_recurrent_property_to_cache(
|
525
552
|
vdbase,
|
@@ -0,0 +1,120 @@
|
|
1
|
+
"""_import_vdb_all_grids.py: Module to import a vdb into resqml format."""
|
2
|
+
|
3
|
+
# Nexus is a registered trademark of the Halliburton Company
|
4
|
+
|
5
|
+
import logging
|
6
|
+
|
7
|
+
log = logging.getLogger(__name__)
|
8
|
+
|
9
|
+
import resqpy.olio.vdb as vdb
|
10
|
+
import resqpy.rq_import as rqi
|
11
|
+
|
12
|
+
|
13
|
+
def import_vdb_all_grids(resqml_file_root,
|
14
|
+
extent_ijk = None,
|
15
|
+
vdb_file = None,
|
16
|
+
vdb_case = None,
|
17
|
+
corp_xy_units = 'm',
|
18
|
+
corp_z_units = 'm',
|
19
|
+
corp_z_inc_down = True,
|
20
|
+
ijk_handedness = 'right',
|
21
|
+
geometry_defined_everywhere = True,
|
22
|
+
treat_as_nan = None,
|
23
|
+
resqml_xy_units = 'm',
|
24
|
+
resqml_z_units = 'm',
|
25
|
+
resqml_z_inc_down = True,
|
26
|
+
shift_to_local = False,
|
27
|
+
local_origin_place = 'centre',
|
28
|
+
max_z_void = 0.1,
|
29
|
+
split_pillars = True,
|
30
|
+
split_tolerance = 0.01,
|
31
|
+
vdb_static_properties = True,
|
32
|
+
vdb_recurrent_properties = False,
|
33
|
+
decoarsen = True,
|
34
|
+
timestep_selection = 'all',
|
35
|
+
create_property_set = False,
|
36
|
+
vdb_property_list = None):
|
37
|
+
"""Creates a RESQML dataset containing grids and grid properties, including LGRs, for a single realisation.
|
38
|
+
|
39
|
+
arguments:
|
40
|
+
- resqml_file_root (str): output path and file name without .epc or .h5 extension
|
41
|
+
- extent_ijk (triple float, optional): ijk extents (fortran ordering)
|
42
|
+
- vdb_file (str, optional): vdb input file, either this or corp_file should be not None;
|
43
|
+
required if importing from a vdb
|
44
|
+
- vdb_case (str, optional): required if the vdb contains more than one case;
|
45
|
+
if None, first case in vdb is used
|
46
|
+
- corp_xy_units (str, default 'm'): xy length units
|
47
|
+
- corp_z_units (str, default 'm'): z length units
|
48
|
+
- corp_z_inc_down (bool, default True): if True z values increase with depth
|
49
|
+
- ijk_handedness (str, default 'right'): 'right' or 'left'
|
50
|
+
- geometry_defined_everywhere (bool, default True): if False then inactive cells are marked
|
51
|
+
as not having geometry
|
52
|
+
- treat_as_nan (float, default None): if a value is provided corner points with this value
|
53
|
+
will be assigned nan (not-a-number)
|
54
|
+
- resqml_xy_units (str, default 'm'): output xy units for resqml file
|
55
|
+
- resqml_z_units (str, default 'm'): output z units for resqml file
|
56
|
+
- resqml_z_inc_down (bool, default True): if True z values increase with depth in output resqml file
|
57
|
+
- shift_to_local (bool, default False): if True then a local origin will be used in the CRS
|
58
|
+
- local_origin_place (str, default 'centre'): 'centre' or 'minimum'; if 'centre' the local origin
|
59
|
+
is placed at the centre of the grid; ignored if shift_to_local is False
|
60
|
+
- max_z_void (float, default 0.1): maximum z gap between vertically neighbouring corner points;
|
61
|
+
vertical gaps greater than this will introduce k gaps into resqml grid; units are corp z units
|
62
|
+
- split_pillars (bool, default True): if False an unfaulted grid will be generated
|
63
|
+
- split_tolerance (float, default 0.01): maximum distance between neighbouring corner points
|
64
|
+
before a pillar is considered 'split'; applies to each of x, y, z differences
|
65
|
+
- vdb_static_properties (bool, default True): if True, static vdb properties are imported;
|
66
|
+
only relevant if vdb_file is not None; see also vdb_property_list
|
67
|
+
- vdb_recurrent_properties (bool, default False): if True, recurrent vdb properties are imported;
|
68
|
+
only relevant if vdb_file is not None; see also vdb_property_list
|
69
|
+
- decoarsen (bool, default True): where ICOARSE is present, redistribute data to uncoarse cells
|
70
|
+
- timestep_selection (str, default 'all): 'first', 'last', 'first and last', 'all', or list of ints
|
71
|
+
being reporting timestep numbers to include; ignored if vdb_recurrent_properties is False
|
72
|
+
- create_property_set (bool, default False): if True a resqml PropertySet is created
|
73
|
+
- vdb_property_list (list of str, optional): list of vdb static and/or recurrent properties to
|
74
|
+
include in the import; if None, all properties are imported; vdb_static_properties and
|
75
|
+
vdb_recurrent_properties boolean arguments must also be set True for respective properties
|
76
|
+
to be included; ignored if not importing from vdb
|
77
|
+
"""
|
78
|
+
vdbase = vdb.VDB(vdb_file)
|
79
|
+
case_list = vdbase.cases()
|
80
|
+
assert len(case_list) > 0, 'no cases found in vdb'
|
81
|
+
if vdb_case is None:
|
82
|
+
vdb_case = case_list[0]
|
83
|
+
else:
|
84
|
+
assert vdb_case in case_list, 'case ' + vdb_case + ' not found in vdb: ' + vdb_file
|
85
|
+
vdbase.set_use_case(vdb_case)
|
86
|
+
grid_list = vdbase.list_of_grids()
|
87
|
+
index = 0
|
88
|
+
for grid_name in grid_list:
|
89
|
+
if grid_name.upper().startswith('SMALLGRIDS'):
|
90
|
+
log.warning('vdb import skipping small grids')
|
91
|
+
continue
|
92
|
+
log.debug('importing vdb data for grid ' + str(grid_name))
|
93
|
+
rqi.import_nexus(
|
94
|
+
resqml_file_root,
|
95
|
+
extent_ijk = extent_ijk if grid_name == 'ROOT' else None, # 3 element numpy vector applicable to ROOT
|
96
|
+
vdb_file = vdb_file,
|
97
|
+
vdb_case = vdb_case, # if None, first case in vdb is used (usually a vdb only holds one case)
|
98
|
+
corp_xy_units = corp_xy_units,
|
99
|
+
corp_z_units = corp_z_units,
|
100
|
+
corp_z_inc_down = corp_z_inc_down,
|
101
|
+
ijk_handedness = ijk_handedness,
|
102
|
+
geometry_defined_everywhere = geometry_defined_everywhere,
|
103
|
+
treat_as_nan = treat_as_nan,
|
104
|
+
resqml_xy_units = resqml_xy_units,
|
105
|
+
resqml_z_units = resqml_z_units,
|
106
|
+
resqml_z_inc_down = resqml_z_inc_down,
|
107
|
+
shift_to_local = shift_to_local,
|
108
|
+
local_origin_place = local_origin_place, # 'centre' or 'minimum'
|
109
|
+
max_z_void = max_z_void, # vertical gaps greater than this will introduce k gaps intp resqml grid
|
110
|
+
split_pillars = split_pillars, # NB: some LGRs may be unsplit even if ROOT is split
|
111
|
+
split_tolerance = split_tolerance, # applies to each of x, y, z differences
|
112
|
+
vdb_static_properties = vdb_static_properties, # if True, static vdb properties are imported
|
113
|
+
vdb_recurrent_properties = vdb_recurrent_properties,
|
114
|
+
decoarsen = decoarsen,
|
115
|
+
timestep_selection = timestep_selection,
|
116
|
+
create_property_set = create_property_set,
|
117
|
+
grid_title = grid_name,
|
118
|
+
mode = 'w' if index == 0 else 'a',
|
119
|
+
vdb_property_list = vdb_property_list)
|
120
|
+
index += 1
|
@@ -122,6 +122,7 @@ class Surface(rqsb.BaseSurface):
|
|
122
122
|
self.set_from_mesh_file(mesh_file, mesh_format, quad_triangles = quad_triangles)
|
123
123
|
elif tsurf_file is not None:
|
124
124
|
self.set_from_tsurf_file(tsurf_file)
|
125
|
+
self._load_normal_vector_from_extra_metadata()
|
125
126
|
|
126
127
|
@classmethod
|
127
128
|
def from_tri_mesh(cls, tri_mesh, exclude_nans = False):
|
@@ -715,7 +716,7 @@ class Surface(rqsb.BaseSurface):
|
|
715
716
|
|
716
717
|
_, p = self.triangles_and_points()
|
717
718
|
crs = rqc.Crs(self.model, uuid = self.crs_uuid)
|
718
|
-
if crs.xy_units ==
|
719
|
+
if crs.xy_units == crs.z_units:
|
719
720
|
return p
|
720
721
|
unit_adjusted_p = p.copy()
|
721
722
|
wam.convert_lengths(unit_adjusted_p[:, 2], crs.z_units, crs.xy_units)
|
@@ -1203,7 +1204,12 @@ class Surface(rqsb.BaseSurface):
|
|
1203
1204
|
if not self.title:
|
1204
1205
|
self.title = 'surface'
|
1205
1206
|
|
1206
|
-
|
1207
|
+
em = None
|
1208
|
+
if self.normal_vector is not None:
|
1209
|
+
assert len(self.normal_vector) == 3
|
1210
|
+
em = {'normal vector': f'{self.normal_vector[0]},{self.normal_vector[1]},{self.normal_vector[2]}'}
|
1211
|
+
|
1212
|
+
tri_rep = super().create_xml(add_as_part = False, title = title, originator = originator, extra_metadata = em)
|
1207
1213
|
|
1208
1214
|
# todo: if crs_uuid is None, attempt to set to surface patch crs uuid (within patch loop, below)
|
1209
1215
|
if crs_uuid is not None:
|
@@ -1309,6 +1315,16 @@ class Surface(rqsb.BaseSurface):
|
|
1309
1315
|
|
1310
1316
|
return tri_rep
|
1311
1317
|
|
1318
|
+
def _load_normal_vector_from_extra_metadata(self):
|
1319
|
+
if self.normal_vector is None and self.extra_metadata is not None:
|
1320
|
+
nv_str = self.extra_metadata.get('normal vector')
|
1321
|
+
if nv_str is not None:
|
1322
|
+
nv_words = nv_str.split(',')
|
1323
|
+
assert len(nv_words) == 3, f'failed to convert normal vector string into triplet: {nv_str}'
|
1324
|
+
self.normal_vector = np.empty(3, dtype = float)
|
1325
|
+
for i in range(3):
|
1326
|
+
self.normal_vector[i] = float(nv_words[i])
|
1327
|
+
|
1312
1328
|
|
1313
1329
|
def distill_triangle_points(t, p):
|
1314
1330
|
"""Returns a (triangles, points) pair with points distilled as only those used from p."""
|
@@ -1,108 +0,0 @@
|
|
1
|
-
"""_import_vdb_all_grids.py: Module to import a vdb into resqml format."""
|
2
|
-
|
3
|
-
# Nexus is a registered trademark of the Halliburton Company
|
4
|
-
|
5
|
-
import logging
|
6
|
-
|
7
|
-
log = logging.getLogger(__name__)
|
8
|
-
|
9
|
-
import resqpy.olio.vdb as vdb
|
10
|
-
import resqpy.rq_import as rqi
|
11
|
-
|
12
|
-
|
13
|
-
def import_vdb_all_grids(
|
14
|
-
resqml_file_root, # output path and file name without .epc or .h5 extension
|
15
|
-
extent_ijk = None, # 3 element numpy vector applicable to ROOT
|
16
|
-
vdb_file = None,
|
17
|
-
vdb_case = None, # if None, first case in vdb is used (usually a vdb only holds one case)
|
18
|
-
corp_xy_units = 'm',
|
19
|
-
corp_z_units = 'm',
|
20
|
-
corp_z_inc_down = True,
|
21
|
-
ijk_handedness = 'right',
|
22
|
-
geometry_defined_everywhere = True,
|
23
|
-
treat_as_nan = None,
|
24
|
-
resqml_xy_units = 'm',
|
25
|
-
resqml_z_units = 'm',
|
26
|
-
resqml_z_inc_down = True,
|
27
|
-
shift_to_local = False,
|
28
|
-
local_origin_place = 'centre', # 'centre' or 'minimum'
|
29
|
-
max_z_void = 0.1, # vertical gaps greater than this will introduce k gaps intp resqml grid
|
30
|
-
split_pillars = True,
|
31
|
-
split_tolerance = 0.01, # applies to each of x, y, z differences
|
32
|
-
vdb_static_properties = True,
|
33
|
-
# if True, static vdb properties are imported (only relevant if vdb_file is not None)
|
34
|
-
vdb_recurrent_properties = False,
|
35
|
-
decoarsen = True,
|
36
|
-
timestep_selection = 'all',
|
37
|
-
# 'first', 'last', 'first and last', 'all', or list of ints being reporting timestep numbers
|
38
|
-
create_property_set = False):
|
39
|
-
"""Creates a RESQML dataset containing grids and grid properties, including LGRs, for a single realisation.
|
40
|
-
|
41
|
-
Arguments:
|
42
|
-
resqml_file_root (str): output path and file name without .epc or .h5 extension
|
43
|
-
extent_ijk (triple float, optional): ijk extents (fortran ordering)
|
44
|
-
vdb_file (str, optional): vdb input file, either this or corp_file should be not None. Required if importing from a vdb
|
45
|
-
vdb_case (str, optional): required if the vdb contains more than one case. If None, first case in vdb is used
|
46
|
-
corp_xy_units (str, default 'm'): xy length units
|
47
|
-
corp_z_units (str, default 'm'): z length units
|
48
|
-
corp_z_inc_down (bool, default True): if True z values increase with depth
|
49
|
-
ijk_handedness (str, default 'right'): 'right' or 'left'
|
50
|
-
geometry_defined_everywhere (bool, default True): if False then inactive cells are marked as not having geometry
|
51
|
-
treat_as_nan (float, default None): if a value is provided corner points with this value will be assigned nan
|
52
|
-
resqml_xy_units (str, default 'm'): output xy units for resqml file
|
53
|
-
resqml_z_units (str, default 'm'): output z units for resqml file
|
54
|
-
resqml_z_inc_down (bool, default True): if True z values increase with depth for output resqml file
|
55
|
-
shift_to_local (bool, default False): if True then a local origin will be used in the CRS
|
56
|
-
local_origin_place (str, default 'centre'): 'centre' or 'minimum'. If 'centre' the local origin is placed at the centre of the grid; ignored if shift_to_local is False
|
57
|
-
max_z_void (float, default 0.1): maximum z gap between vertically neighbouring corner points. Vertical gaps greater than this will introduce k gaps into resqml grid. Units are corp z units
|
58
|
-
split_pillars (bool, default True): if False an unfaulted grid will be generated
|
59
|
-
split_tolerance (float, default 0.01): maximum distance between neighbouring corner points before a pillar is considered 'split'. Applies to each of x, y, z differences
|
60
|
-
vdb_static_properties (bool, default True): if True, static vdb properties are imported (only relevant if vdb_file is not None)
|
61
|
-
vdb_recurrent_properties (bool, default False): # if True, recurrent vdb properties are imported (only relevant if vdb_file is not None)
|
62
|
-
decoarsen (bool, default True): where ICOARSE is present, redistribute data to uncoarse cells
|
63
|
-
timestep_selection (str, default 'all): 'first', 'last', 'first and last', 'all', or list of ints being reporting timestep numbers. Ignored if vdb_recurrent_properties is False
|
64
|
-
create_property_set (bool, default False): if True a resqml PropertySet is created
|
65
|
-
"""
|
66
|
-
|
67
|
-
vdbase = vdb.VDB(vdb_file)
|
68
|
-
case_list = vdbase.cases()
|
69
|
-
assert len(case_list) > 0, 'no cases found in vdb'
|
70
|
-
if vdb_case is None:
|
71
|
-
vdb_case = case_list[0]
|
72
|
-
else:
|
73
|
-
assert vdb_case in case_list, 'case ' + vdb_case + ' not found in vdb: ' + vdb_file
|
74
|
-
vdbase.set_use_case(vdb_case)
|
75
|
-
grid_list = vdbase.list_of_grids()
|
76
|
-
index = 0
|
77
|
-
for grid_name in grid_list:
|
78
|
-
if grid_name.upper().startswith('SMALLGRIDS'):
|
79
|
-
log.warning('vdb import skipping small grids')
|
80
|
-
continue
|
81
|
-
log.debug('importing vdb data for grid ' + str(grid_name))
|
82
|
-
rqi.import_nexus(
|
83
|
-
resqml_file_root,
|
84
|
-
extent_ijk = extent_ijk if grid_name == 'ROOT' else None, # 3 element numpy vector applicable to ROOT
|
85
|
-
vdb_file = vdb_file,
|
86
|
-
vdb_case = vdb_case, # if None, first case in vdb is used (usually a vdb only holds one case)
|
87
|
-
corp_xy_units = corp_xy_units,
|
88
|
-
corp_z_units = corp_z_units,
|
89
|
-
corp_z_inc_down = corp_z_inc_down,
|
90
|
-
ijk_handedness = ijk_handedness,
|
91
|
-
geometry_defined_everywhere = geometry_defined_everywhere,
|
92
|
-
treat_as_nan = treat_as_nan,
|
93
|
-
resqml_xy_units = resqml_xy_units,
|
94
|
-
resqml_z_units = resqml_z_units,
|
95
|
-
resqml_z_inc_down = resqml_z_inc_down,
|
96
|
-
shift_to_local = shift_to_local,
|
97
|
-
local_origin_place = local_origin_place, # 'centre' or 'minimum'
|
98
|
-
max_z_void = max_z_void, # vertical gaps greater than this will introduce k gaps intp resqml grid
|
99
|
-
split_pillars = split_pillars, # NB: some LGRs may be unsplit even if ROOT is split
|
100
|
-
split_tolerance = split_tolerance, # applies to each of x, y, z differences
|
101
|
-
vdb_static_properties = vdb_static_properties, # if True, static vdb properties are imported
|
102
|
-
vdb_recurrent_properties = vdb_recurrent_properties,
|
103
|
-
decoarsen = decoarsen,
|
104
|
-
timestep_selection = timestep_selection,
|
105
|
-
create_property_set = create_property_set,
|
106
|
-
grid_title = grid_name,
|
107
|
-
mode = 'w' if index == 0 else 'a')
|
108
|
-
index += 1
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{resqpy-4.15.1 → resqpy-4.15.3}/resqpy/derived_model/_add_edges_per_column_property_array.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|