resqpy 4.12.2__tar.gz → 4.12.3__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {resqpy-4.12.2 → resqpy-4.12.3}/PKG-INFO +1 -1
- {resqpy-4.12.2 → resqpy-4.12.3}/pyproject.toml +1 -1
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/__init__.py +1 -1
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_defined_geometry.py +6 -2
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid_surface/_blocked_well_populate.py +4 -1
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/_collection_get_attributes.py +1 -1
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/grid_property_collection.py +1 -1
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/property_collection.py +3 -3
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/property_common.py +2 -2
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/unstructured/_prism_grid.py +1 -1
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/weights_and_measures/nexus_units.py +7 -7
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/_blocked_well.py +6 -3
- {resqpy-4.12.2 → resqpy-4.12.3}/LICENSE +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/README.md +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/crs.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/__init__.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_add_edges_per_column_property_array.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_add_faults.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_add_one_blocked_well_property.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_add_one_grid_property_array.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_add_single_cell_grid.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_add_wells_from_ascii_file.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_add_zone_by_layer_property.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_coarsened_grid.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_common.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_copy_grid.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_drape_to_surface.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_extract_box.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_extract_box_for_well.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_fault_throw_scaling.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_gather_ensemble.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_interpolated_grid.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_local_depth_adjustment.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_refined_grid.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_tilted_grid.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_unsplit_grid.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_zonal_grid.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_zone_layer_ranges_from_array.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/fault/__init__.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/fault/_gcs_functions.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/fault/_grid_connection_set.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/__init__.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_cell_properties.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_connection_sets.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_create_grid_xml.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_extract_functions.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_face_functions.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_faults.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_grid.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_grid_types.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_intervals_info.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_moved_functions.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_pillars.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_pixel_maps.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_points_functions.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_regular_grid.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_transmissibility.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_write_hdf5_from_caches.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_write_nexus_corp.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_xyz.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid_surface/__init__.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid_surface/_find_faces.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid_surface/_grid_skin.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid_surface/_grid_surface.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid_surface/_trajectory_intersects.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid_surface/grid_surface_cuda.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/lines/__init__.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/lines/_common.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/lines/_polyline.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/lines/_polyline_set.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/model/__init__.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/model/_catalogue.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/model/_context.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/model/_forestry.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/model/_grids.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/model/_hdf5.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/model/_model.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/model/_xml.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/multi_processing/__init__.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/multi_processing/_multiprocessing.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/multi_processing/wrappers/__init__.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/multi_processing/wrappers/blocked_well_mp.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/multi_processing/wrappers/grid_surface_mp.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/multi_processing/wrappers/mesh_mp.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/__init__.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/ab_toolbox.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/base.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/box_utilities.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/class_dict.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/consolidation.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/data/build.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/data/properties.json +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/dataframe.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/exceptions.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/factors.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/fine_coarse.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/grid_functions.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/intersection.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/keyword_files.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/load_data.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/point_inclusion.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/random_seed.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/read_nexus_fault.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/relperm.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/simple_lines.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/time.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/trademark.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/transmission.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/triangulation.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/uuid.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/vdb.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/vector_utilities.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/volume.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/wellspec_keywords.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/write_data.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/write_hdf5.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/xml_et.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/xml_namespaces.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/zmap_reader.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/__init__.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/_utils.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/boundary_feature.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/boundary_feature_interpretation.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/earth_model_interpretation.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/fault_interpretation.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/fluid_boundary_feature.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/frontier_feature.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/generic_interpretation.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/genetic_boundary_feature.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/geobody_boundary_interpretation.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/geobody_feature.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/geobody_interpretation.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/geologic_unit_feature.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/horizon_interpretation.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/organization_feature.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/rock_fluid_unit_feature.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/structural_organization_interpretation.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/tectonic_boundary_feature.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/wellbore_feature.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/wellbore_interpretation.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/__init__.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/_collection_add_part.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/_collection_create_xml.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/_collection_support.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/_property.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/property_kind.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/string_lookup.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/well_interval_property.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/well_interval_property_collection.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/well_log.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/well_log_collection.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/rq_import/__init__.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/rq_import/_add_ab_properties.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/rq_import/_add_surfaces.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/rq_import/_grid_from_cp.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/rq_import/_import_nexus.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/rq_import/_import_vdb_all_grids.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/rq_import/_import_vdb_ensemble.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/strata/__init__.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/strata/_binary_contact_interpretation.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/strata/_geologic_unit_interpretation.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/strata/_strata_common.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/strata/_stratigraphic_column.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/strata/_stratigraphic_column_rank.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/strata/_stratigraphic_unit_feature.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/strata/_stratigraphic_unit_interpretation.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/surface/__init__.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/surface/_base_surface.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/surface/_combined_surface.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/surface/_mesh.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/surface/_pointset.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/surface/_surface.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/surface/_tri_mesh.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/surface/_triangulated_patch.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/time_series/__init__.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/time_series/_any_time_series.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/time_series/_from_nexus_summary.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/time_series/_functions.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/time_series/_geologic_time_series.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/time_series/_time_duration.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/time_series/_time_series.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/unstructured/__init__.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/unstructured/_hexa_grid.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/unstructured/_pyramid_grid.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/unstructured/_tetra_grid.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/unstructured/_unstructured_grid.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/weights_and_measures/__init__.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/weights_and_measures/weights_and_measures.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/__init__.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/_deviation_survey.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/_md_datum.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/_trajectory.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/_wellbore_frame.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/_wellbore_marker.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/_wellbore_marker_frame.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/blocked_well_frame.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/well_object_funcs.py +0 -0
- {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/well_utils.py +0 -0
@@ -348,6 +348,7 @@ def set_geometry_is_defined(grid,
|
|
348
348
|
|
349
349
|
if complete_all:
|
350
350
|
cells_update_needed = __complete_all_pillars(cells_update_needed, grid, points, surround_z)
|
351
|
+
cells_update_needed = True
|
351
352
|
|
352
353
|
if cells_update_needed:
|
353
354
|
# note: each pillar is either fully defined or fully undefined at this point
|
@@ -387,7 +388,10 @@ def __complete_all_pillars(cells_update_needed, grid, points, surround_z):
|
|
387
388
|
if hasattr(grid, 'array_pillar_geometry_is_defined'):
|
388
389
|
del grid.array_pillar_geometry_is_defined
|
389
390
|
cells_update_needed = False
|
390
|
-
|
391
|
+
nan_mask = np.isnan(points)
|
392
|
+
if np.any(nan_mask):
|
393
|
+
log.warning('remaining NaNs after filling missing pillar geometry will be set to zero (dangerous)')
|
394
|
+
points[nan_mask] = 0.0
|
391
395
|
grid.geometry_defined_for_all_cells_cached = True
|
392
396
|
if hasattr(grid, 'array_cell_geometry_is_defined'):
|
393
397
|
del grid.array_cell_geometry_is_defined
|
@@ -585,7 +589,7 @@ def __fill_holes(grid, holes_mask):
|
|
585
589
|
def __fill_surround(grid, surround_mask):
|
586
590
|
# note: only fills x,y; based on bottom layer of points; assumes surround mask is a regularly shaped frame of columns
|
587
591
|
log.debug(f'filling {np.count_nonzero(surround_mask)} pillars for surround')
|
588
|
-
points = grid.points_ref(masked = False)
|
592
|
+
points = grid.points_ref(masked = False).reshape((grid.nk_plus_k_gaps + 1, -1, 3))
|
589
593
|
points_view = points[-1, :, :2].reshape((-1, 2))[:(grid.nj + 1) * (grid.ni + 1), :].reshape(
|
590
594
|
(grid.nj + 1, grid.ni + 1, 2))
|
591
595
|
modified = False
|
@@ -60,7 +60,10 @@ def populate_blocked_well_from_trajectory(blocked_well,
|
|
60
60
|
assert isinstance(blocked_well.trajectory, rqw.Trajectory)
|
61
61
|
assert grid is not None
|
62
62
|
|
63
|
-
flavour =
|
63
|
+
flavour = grid.grid_representation
|
64
|
+
if flavour is None:
|
65
|
+
assert grid.root is not None
|
66
|
+
flavour = grr.grid_flavour(grid.root)
|
64
67
|
if not flavour.startswith('Ijk'):
|
65
68
|
raise NotImplementedError('well blocking only implemented for IjkGridRepresentation')
|
66
69
|
is_regular = (flavour == 'IjkBlockGrid') and hasattr(grid, 'is_aligned') and grid.is_aligned
|
@@ -222,7 +222,7 @@ def _get_perm_k_part(collection, perms, perm_k_mode, share_perm_parts, perm_i_pa
|
|
222
222
|
uom = 'mD',
|
223
223
|
time_index = None,
|
224
224
|
null_value = None,
|
225
|
-
property_kind = 'permeability
|
225
|
+
property_kind = 'rock permeability',
|
226
226
|
facet_type = 'direction',
|
227
227
|
facet = 'K',
|
228
228
|
realization = perms.realization_for_part(perm_i_part),
|
@@ -941,7 +941,7 @@ def _extend_imported_get_fine_collections(other, realization):
|
|
941
941
|
source_sat = rqp_c.selective_version_of_collection(other, realization = realization, property_kind = 'saturation')
|
942
942
|
source_perm = rqp_c.selective_version_of_collection(other,
|
943
943
|
realization = realization,
|
944
|
-
property_kind = 'permeability
|
944
|
+
property_kind = 'rock permeability')
|
945
945
|
# todo: add kh and some other property kinds
|
946
946
|
|
947
947
|
return source_rv, source_ntg, source_poro, source_sat, source_perm
|
@@ -2796,7 +2796,7 @@ class PropertyCollection():
|
|
2796
2796
|
share_perm_parts = False,
|
2797
2797
|
perm_k_mode = None,
|
2798
2798
|
perm_k_ratio = 1.0):
|
2799
|
-
"""Returns five parts: net to gross ratio, porosity, permeability
|
2799
|
+
"""Returns five parts: net to gross ratio, porosity, rock permeability I, J & K; each returned part may be None.
|
2800
2800
|
|
2801
2801
|
arguments:
|
2802
2802
|
realization: (int, optional): if present, only properties with the given realization are considered; if None,
|
@@ -2832,7 +2832,7 @@ class PropertyCollection():
|
|
2832
2832
|
|
2833
2833
|
perms = rqp_c.selective_version_of_collection(self,
|
2834
2834
|
realization = realization,
|
2835
|
-
property_kind = 'permeability
|
2835
|
+
property_kind = 'rock permeability')
|
2836
2836
|
if perms is None or perms.number_of_parts() == 0:
|
2837
2837
|
log.error('no rock permeabilities present')
|
2838
2838
|
else:
|
@@ -2869,7 +2869,7 @@ class PropertyCollection():
|
|
2869
2869
|
share_perm_parts = False,
|
2870
2870
|
perm_k_mode = None,
|
2871
2871
|
perm_k_ratio = 1.0):
|
2872
|
-
"""Returns five uuids: net to gross ratio, porosity, permeability
|
2872
|
+
"""Returns five uuids: net to gross ratio, porosity, rock permeability I, J & K; each returned uuid may be None.
|
2873
2873
|
|
2874
2874
|
note:
|
2875
2875
|
see basic_static_property_parts() method for argument documentation
|
@@ -78,7 +78,7 @@ expected_facet_type_dict = {
|
|
78
78
|
'property multiplier': (
|
79
79
|
'what',
|
80
80
|
[
|
81
|
-
'rock volume', # made up; todo: add rock permeability?
|
81
|
+
'rock volume', # made up; todo: add rock permeability? (would need multiple facets)
|
82
82
|
'pore volume',
|
83
83
|
'transmissibility'
|
84
84
|
]),
|
@@ -159,7 +159,7 @@ def property_kind_and_facet_from_keyword(keyword):
|
|
159
159
|
elif len(lk) >= 2 and lk[0] == 'd' and lk[1] in 'xyz':
|
160
160
|
property_kind, facet_type, facet = _pkf_from_keyword_length(lk)
|
161
161
|
elif lk[:4] == 'perm' or (len(lk) == 2 and lk[0] == 'k'): # permeability
|
162
|
-
property_kind = 'permeability
|
162
|
+
property_kind = 'rock permeability'
|
163
163
|
(facet_type, facet) = _facet_info_for_dir_ch(lk[-1])
|
164
164
|
elif lk[:5] == 'trans' or (len(lk) == 2 and lk[0] == 't'): # transmissibility (for unit viscosity)
|
165
165
|
if 'mult' in lk:
|
@@ -624,7 +624,7 @@ class VerticalPrismGrid(PrismGrid):
|
|
624
624
|
ppc = rqp.selective_version_of_collection(pc,
|
625
625
|
continuous = True,
|
626
626
|
realization = realization,
|
627
|
-
property_kind = 'permeability
|
627
|
+
property_kind = 'rock permeability')
|
628
628
|
assert ppc.number_of_parts() > 0, 'no permeability properties available for vertical prism grid'
|
629
629
|
|
630
630
|
# look for a triple permeability; if present, assume to be per face horizontal permeabilities
|
@@ -40,8 +40,8 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
|
|
40
40
|
'length', 'area', 'volume', 'volume per volume', 'permeability rock', 'rock permeability', 'time',
|
41
41
|
'thermodynamic temperature', 'mass per volume', 'pressure', 'volume per time'
|
42
42
|
]
|
43
|
-
if quantity == 'rock
|
44
|
-
quantity = 'permeability
|
43
|
+
if quantity == 'permeability rock':
|
44
|
+
quantity = 'rock permeability'
|
45
45
|
|
46
46
|
if (nexus_unit_system == 'ENGLISH' and english_volume_flavour is not None):
|
47
47
|
english_volume_flavour = english_volume_flavour.lower()
|
@@ -68,7 +68,7 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
|
|
68
68
|
'area': 'm2',
|
69
69
|
'volume': 'm3',
|
70
70
|
'volume per volume': 'm3/m3',
|
71
|
-
'permeability
|
71
|
+
'rock permeability': 'mD',
|
72
72
|
'time': 'd',
|
73
73
|
'thermodynamic temperature': 'degC',
|
74
74
|
'mass per volume': 'kg/m3',
|
@@ -80,7 +80,7 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
|
|
80
80
|
'area': 'm2',
|
81
81
|
'volume': 'm3',
|
82
82
|
'volume per volume': 'm3/m3',
|
83
|
-
'permeability
|
83
|
+
'rock permeability': 'mD',
|
84
84
|
'time': 'd',
|
85
85
|
'thermodynamic temperature': 'degC',
|
86
86
|
'mass per volume': 'kg/m3',
|
@@ -92,7 +92,7 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
|
|
92
92
|
'area': 'm2',
|
93
93
|
'volume': 'm3',
|
94
94
|
'volume per volume': 'm3/m3',
|
95
|
-
'permeability
|
95
|
+
'rock permeability': 'mD',
|
96
96
|
'time': 'd',
|
97
97
|
'thermodynamic temperature': 'degC',
|
98
98
|
'mass per volume': 'kg/m3',
|
@@ -104,7 +104,7 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
|
|
104
104
|
'area': 'cm2',
|
105
105
|
'volume': 'cm3',
|
106
106
|
'volume per volume': 'cm3/cm3',
|
107
|
-
'permeability
|
107
|
+
'rock permeability': 'mD',
|
108
108
|
'time': 'h',
|
109
109
|
'thermodynamic temperature': 'degC',
|
110
110
|
'mass per volume': 'g/cm3',
|
@@ -116,7 +116,7 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
|
|
116
116
|
'area': 'ft2',
|
117
117
|
'volume': 'ft3', # NB. Nexus expects bbl in some situations!
|
118
118
|
'volume per volume': 'ft3/ft3', # note: some special cases dealt with above
|
119
|
-
'permeability
|
119
|
+
'rock permeability': 'mD',
|
120
120
|
'time': 'd',
|
121
121
|
'thermodynamic temperature': 'degF',
|
122
122
|
'mass per volume': 'lbm/ft3',
|
@@ -2754,7 +2754,7 @@ class BlockedWell(BaseResqpy):
|
|
2754
2754
|
'ANGLE': ('dega', 'plane angle', False),
|
2755
2755
|
'TEMP': (temperature_uom, 'thermodynamic temperature', False),
|
2756
2756
|
'MDCON': length_uom_pk_discrete,
|
2757
|
-
'K': ('mD', 'permeability
|
2757
|
+
'K': ('mD', 'rock permeability', False),
|
2758
2758
|
'DZ': (length_uom, 'cell length', False), # TODO: add direction facet
|
2759
2759
|
'DTOP': (length_uom, 'depth', False),
|
2760
2760
|
'DBOT': (length_uom, 'depth', False),
|
@@ -3366,18 +3366,21 @@ class BlockedWell(BaseResqpy):
|
|
3366
3366
|
root = bw_node)
|
3367
3367
|
for grid in self.grid_list:
|
3368
3368
|
grid_root = grid.root
|
3369
|
+
ref_uuid = grid.uuid if grid_root is None else bu.uuid_from_string(grid_root.attrib['uuid'])
|
3369
3370
|
self.model.create_ref_node('Grid',
|
3370
3371
|
rqet.find_nested_tags_text(grid_root, ['Citation', 'Title']),
|
3371
|
-
|
3372
|
+
ref_uuid,
|
3372
3373
|
content_type = 'obj_IjkGridRepresentation',
|
3373
3374
|
root = bw_node)
|
3374
3375
|
|
3375
3376
|
interp_root = None
|
3376
3377
|
if self.wellbore_interpretation is not None:
|
3377
3378
|
interp_root = self.wellbore_interpretation.root
|
3379
|
+
ref_uuid = self.wellbore_interpretation.uuid if interp_root is None else bu.uuid_from_string(
|
3380
|
+
interp_root.attrib['uuid'])
|
3378
3381
|
self.model.create_ref_node('RepresentedInterpretation',
|
3379
3382
|
rqet.find_nested_tags_text(interp_root, ['Citation', 'Title']),
|
3380
|
-
|
3383
|
+
ref_uuid,
|
3381
3384
|
content_type = 'obj_WellboreInterpretation',
|
3382
3385
|
root = bw_node)
|
3383
3386
|
return traj_root, grid_root, interp_root
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{resqpy-4.12.2 → resqpy-4.12.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
|
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
|
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
|
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
|