resqpy 4.8.1__tar.gz → 4.8.2__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {resqpy-4.8.1 → resqpy-4.8.2}/PKG-INFO +1 -1
- {resqpy-4.8.1 → resqpy-4.8.2}/pyproject.toml +1 -1
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/__init__.py +1 -1
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/triangulation.py +15 -6
- {resqpy-4.8.1 → resqpy-4.8.2}/LICENSE +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/README.md +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/crs.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/__init__.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_add_edges_per_column_property_array.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_add_faults.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_add_one_blocked_well_property.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_add_one_grid_property_array.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_add_single_cell_grid.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_add_wells_from_ascii_file.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_add_zone_by_layer_property.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_coarsened_grid.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_common.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_copy_grid.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_drape_to_surface.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_extract_box.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_extract_box_for_well.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_fault_throw_scaling.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_gather_ensemble.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_interpolated_grid.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_local_depth_adjustment.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_refined_grid.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_tilted_grid.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_unsplit_grid.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_zonal_grid.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/derived_model/_zone_layer_ranges_from_array.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/fault/__init__.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/fault/_gcs_functions.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/fault/_grid_connection_set.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid/__init__.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid/_cell_properties.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid/_connection_sets.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid/_create_grid_xml.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid/_defined_geometry.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid/_extract_functions.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid/_face_functions.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid/_faults.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid/_grid.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid/_grid_types.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid/_intervals_info.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid/_moved_functions.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid/_pillars.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid/_pixel_maps.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid/_points_functions.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid/_regular_grid.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid/_transmissibility.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid/_write_hdf5_from_caches.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid/_write_nexus_corp.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid/_xyz.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid_surface/__init__.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid_surface/_blocked_well_populate.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid_surface/_find_faces.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid_surface/_grid_skin.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid_surface/_grid_surface.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid_surface/_trajectory_intersects.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/grid_surface/grid_surface_cuda.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/lines/__init__.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/lines/_common.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/lines/_polyline.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/lines/_polyline_set.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/model/__init__.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/model/_catalogue.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/model/_context.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/model/_forestry.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/model/_grids.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/model/_hdf5.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/model/_model.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/model/_xml.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/multi_processing/__init__.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/multi_processing/_multiprocessing.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/multi_processing/wrappers/__init__.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/multi_processing/wrappers/blocked_well_mp.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/multi_processing/wrappers/grid_surface_mp.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/multi_processing/wrappers/mesh_mp.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/__init__.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/ab_toolbox.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/base.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/box_utilities.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/class_dict.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/consolidation.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/data/build.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/data/properties.json +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/dataframe.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/exceptions.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/factors.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/fine_coarse.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/grid_functions.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/intersection.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/keyword_files.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/load_data.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/point_inclusion.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/random_seed.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/read_nexus_fault.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/relperm.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/simple_lines.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/time.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/trademark.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/transmission.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/uuid.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/vdb.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/vector_utilities.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/volume.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/wellspec_keywords.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/write_data.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/write_hdf5.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/xml_et.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/xml_namespaces.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/olio/zmap_reader.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/__init__.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/_utils.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/boundary_feature.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/boundary_feature_interpretation.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/earth_model_interpretation.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/fault_interpretation.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/fluid_boundary_feature.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/frontier_feature.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/generic_interpretation.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/genetic_boundary_feature.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/geobody_boundary_interpretation.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/geobody_feature.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/geobody_interpretation.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/geologic_unit_feature.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/horizon_interpretation.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/organization_feature.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/rock_fluid_unit_feature.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/structural_organization_interpretation.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/tectonic_boundary_feature.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/wellbore_feature.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/organize/wellbore_interpretation.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/property/__init__.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/property/_collection_add_part.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/property/_collection_create_xml.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/property/_collection_get_attributes.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/property/_collection_support.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/property/_property.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/property/grid_property_collection.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/property/property_collection.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/property/property_common.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/property/property_kind.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/property/string_lookup.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/property/well_interval_property.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/property/well_interval_property_collection.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/property/well_log.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/property/well_log_collection.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/rq_import/__init__.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/rq_import/_add_ab_properties.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/rq_import/_add_surfaces.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/rq_import/_grid_from_cp.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/rq_import/_import_nexus.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/rq_import/_import_vdb_all_grids.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/rq_import/_import_vdb_ensemble.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/strata/__init__.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/strata/_binary_contact_interpretation.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/strata/_geologic_unit_interpretation.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/strata/_strata_common.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/strata/_stratigraphic_column.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/strata/_stratigraphic_column_rank.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/strata/_stratigraphic_unit_feature.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/strata/_stratigraphic_unit_interpretation.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/surface/__init__.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/surface/_base_surface.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/surface/_combined_surface.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/surface/_mesh.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/surface/_pointset.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/surface/_surface.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/surface/_tri_mesh.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/surface/_triangulated_patch.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/time_series/__init__.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/time_series/_any_time_series.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/time_series/_from_nexus_summary.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/time_series/_functions.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/time_series/_geologic_time_series.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/time_series/_time_duration.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/time_series/_time_series.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/unstructured/__init__.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/unstructured/_hexa_grid.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/unstructured/_prism_grid.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/unstructured/_pyramid_grid.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/unstructured/_tetra_grid.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/unstructured/_unstructured_grid.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/weights_and_measures/__init__.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/weights_and_measures/nexus_units.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/weights_and_measures/weights_and_measures.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/well/__init__.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/well/_blocked_well.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/well/_deviation_survey.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/well/_md_datum.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/well/_trajectory.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/well/_wellbore_frame.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/well/_wellbore_marker.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/well/_wellbore_marker_frame.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/well/blocked_well_frame.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/well/well_object_funcs.py +0 -0
- {resqpy-4.8.1 → resqpy-4.8.2}/resqpy/well/well_utils.py +0 -0
@@ -726,7 +726,7 @@ def triangulated_polygons(p, v, centres = None):
|
|
726
726
|
return points, triangles
|
727
727
|
|
728
728
|
|
729
|
-
def reorient(points, rough = True, max_dip = None, use_linalg = True):
|
729
|
+
def reorient(points, rough = True, max_dip = None, use_linalg = True, sample = 500):
|
730
730
|
"""Returns a reoriented copy of a set of points, such that z axis is approximate normal to average plane of points.
|
731
731
|
|
732
732
|
arguments:
|
@@ -736,6 +736,7 @@ def reorient(points, rough = True, max_dip = None, use_linalg = True):
|
|
736
736
|
max_dip (float, optional): if present, the reorientation of perspective off vertical is
|
737
737
|
limited to this angle in degrees
|
738
738
|
use_linalg (bool, default True): if True, the numpy linear algebra svd function is used and rough is ignored
|
739
|
+
sample (int, default 500): downsample points to this number for the purposes of determining normal vector
|
739
740
|
|
740
741
|
returns:
|
741
742
|
numpy float array of the same shape as points, numpy xyz vector, numpy 3x3 matrix;
|
@@ -748,7 +749,9 @@ def reorient(points, rough = True, max_dip = None, use_linalg = True):
|
|
748
749
|
implicit xy & z units for points are assumed to be the same;
|
749
750
|
the function may typically be called prior to the Delauney triangulation, which uses an xy projection to
|
750
751
|
determine the triangulation;
|
751
|
-
the numpy linear algebra option seems to be memory intensive, not recommended
|
752
|
+
the numpy linear algebra option seems to be memory intensive, not recommended;
|
753
|
+
downsampling will occur (for normal vector determination) when the number of points exceeds double that
|
754
|
+
given in the sample argument; set sample to None to use all points for normal vector determination
|
752
755
|
"""
|
753
756
|
|
754
757
|
def best_angles(points, mid_x, mid_y, steps, d_theta):
|
@@ -780,8 +783,14 @@ def reorient(points, rough = True, max_dip = None, use_linalg = True):
|
|
780
783
|
|
781
784
|
assert points.ndim >= 2 and points.shape[-1] == 3
|
782
785
|
|
786
|
+
if sample is not None and len(points) > 2 * sample:
|
787
|
+
step = len(points) // sample
|
788
|
+
p = points[::step, :]
|
789
|
+
else:
|
790
|
+
p = points
|
791
|
+
|
783
792
|
if use_linalg:
|
784
|
-
normal_vector = linalg_normal_vector(
|
793
|
+
normal_vector = linalg_normal_vector(p)
|
785
794
|
incl = vec.inclination(normal_vector)
|
786
795
|
if incl == 0.0:
|
787
796
|
rotation_m = vec.no_rotation_matrix()
|
@@ -790,14 +799,14 @@ def reorient(points, rough = True, max_dip = None, use_linalg = True):
|
|
790
799
|
rotation_m = vec.tilt_3d_matrix(azi, incl)
|
791
800
|
else:
|
792
801
|
# coarse iteration trying a few different angles
|
793
|
-
best_x_rotation, best_y_rotation = best_angles(
|
802
|
+
best_x_rotation, best_y_rotation = best_angles(p, 0.0, 0.0, 7, 30.0)
|
794
803
|
|
795
804
|
# finer iteration searching around the best coarse rotation
|
796
|
-
best_x_rotation, best_y_rotation = best_angles(
|
805
|
+
best_x_rotation, best_y_rotation = best_angles(p, best_x_rotation, best_y_rotation, 5, 10.0)
|
797
806
|
|
798
807
|
if not rough:
|
799
808
|
# finer iteration searching around the best coarse rotation
|
800
|
-
best_x_rotation, best_y_rotation = best_angles(
|
809
|
+
best_x_rotation, best_y_rotation = best_angles(p, best_x_rotation, best_y_rotation, 7, 2.5)
|
801
810
|
|
802
811
|
rotation_m = vec.rotation_3d_matrix((best_x_rotation, 0.0, best_y_rotation))
|
803
812
|
|
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
|
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
|