resqpy 4.9.2__tar.gz → 4.9.5__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (198) hide show
  1. {resqpy-4.9.2 → resqpy-4.9.5}/PKG-INFO +2 -4
  2. {resqpy-4.9.2 → resqpy-4.9.5}/README.md +1 -3
  3. {resqpy-4.9.2 → resqpy-4.9.5}/pyproject.toml +1 -1
  4. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/__init__.py +1 -1
  5. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid_surface/_find_faces.py +16 -4
  6. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/multi_processing/wrappers/grid_surface_mp.py +6 -2
  7. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/wellspec_keywords.py +1 -1
  8. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/well/_blocked_well.py +1 -1
  9. {resqpy-4.9.2 → resqpy-4.9.5}/LICENSE +0 -0
  10. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/crs.py +0 -0
  11. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/__init__.py +0 -0
  12. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_add_edges_per_column_property_array.py +0 -0
  13. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_add_faults.py +0 -0
  14. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_add_one_blocked_well_property.py +0 -0
  15. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_add_one_grid_property_array.py +0 -0
  16. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_add_single_cell_grid.py +0 -0
  17. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_add_wells_from_ascii_file.py +0 -0
  18. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_add_zone_by_layer_property.py +0 -0
  19. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_coarsened_grid.py +0 -0
  20. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_common.py +0 -0
  21. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_copy_grid.py +0 -0
  22. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_drape_to_surface.py +0 -0
  23. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_extract_box.py +0 -0
  24. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_extract_box_for_well.py +0 -0
  25. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_fault_throw_scaling.py +0 -0
  26. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_gather_ensemble.py +0 -0
  27. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_interpolated_grid.py +0 -0
  28. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_local_depth_adjustment.py +0 -0
  29. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_refined_grid.py +0 -0
  30. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_tilted_grid.py +0 -0
  31. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_unsplit_grid.py +0 -0
  32. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_zonal_grid.py +0 -0
  33. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/derived_model/_zone_layer_ranges_from_array.py +0 -0
  34. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/fault/__init__.py +0 -0
  35. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/fault/_gcs_functions.py +0 -0
  36. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/fault/_grid_connection_set.py +0 -0
  37. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid/__init__.py +0 -0
  38. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid/_cell_properties.py +0 -0
  39. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid/_connection_sets.py +0 -0
  40. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid/_create_grid_xml.py +0 -0
  41. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid/_defined_geometry.py +0 -0
  42. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid/_extract_functions.py +0 -0
  43. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid/_face_functions.py +0 -0
  44. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid/_faults.py +0 -0
  45. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid/_grid.py +0 -0
  46. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid/_grid_types.py +0 -0
  47. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid/_intervals_info.py +0 -0
  48. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid/_moved_functions.py +0 -0
  49. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid/_pillars.py +0 -0
  50. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid/_pixel_maps.py +0 -0
  51. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid/_points_functions.py +0 -0
  52. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid/_regular_grid.py +0 -0
  53. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid/_transmissibility.py +0 -0
  54. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid/_write_hdf5_from_caches.py +0 -0
  55. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid/_write_nexus_corp.py +0 -0
  56. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid/_xyz.py +0 -0
  57. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid_surface/__init__.py +0 -0
  58. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid_surface/_blocked_well_populate.py +0 -0
  59. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid_surface/_grid_skin.py +0 -0
  60. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid_surface/_grid_surface.py +0 -0
  61. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid_surface/_trajectory_intersects.py +0 -0
  62. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/grid_surface/grid_surface_cuda.py +0 -0
  63. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/lines/__init__.py +0 -0
  64. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/lines/_common.py +0 -0
  65. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/lines/_polyline.py +0 -0
  66. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/lines/_polyline_set.py +0 -0
  67. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/model/__init__.py +0 -0
  68. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/model/_catalogue.py +0 -0
  69. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/model/_context.py +0 -0
  70. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/model/_forestry.py +0 -0
  71. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/model/_grids.py +0 -0
  72. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/model/_hdf5.py +0 -0
  73. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/model/_model.py +0 -0
  74. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/model/_xml.py +0 -0
  75. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/multi_processing/__init__.py +0 -0
  76. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/multi_processing/_multiprocessing.py +0 -0
  77. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/multi_processing/wrappers/__init__.py +0 -0
  78. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/multi_processing/wrappers/blocked_well_mp.py +0 -0
  79. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/multi_processing/wrappers/mesh_mp.py +0 -0
  80. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/__init__.py +0 -0
  81. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/ab_toolbox.py +0 -0
  82. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/base.py +0 -0
  83. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/box_utilities.py +0 -0
  84. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/class_dict.py +0 -0
  85. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/consolidation.py +0 -0
  86. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/data/build.py +0 -0
  87. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/data/properties.json +0 -0
  88. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/dataframe.py +0 -0
  89. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/exceptions.py +0 -0
  90. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/factors.py +0 -0
  91. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/fine_coarse.py +0 -0
  92. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/grid_functions.py +0 -0
  93. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/intersection.py +0 -0
  94. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/keyword_files.py +0 -0
  95. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/load_data.py +0 -0
  96. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/point_inclusion.py +0 -0
  97. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/random_seed.py +0 -0
  98. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/read_nexus_fault.py +0 -0
  99. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/relperm.py +0 -0
  100. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/simple_lines.py +0 -0
  101. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/time.py +0 -0
  102. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/trademark.py +0 -0
  103. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/transmission.py +0 -0
  104. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/triangulation.py +0 -0
  105. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/uuid.py +0 -0
  106. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/vdb.py +0 -0
  107. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/vector_utilities.py +0 -0
  108. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/volume.py +0 -0
  109. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/write_data.py +0 -0
  110. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/write_hdf5.py +0 -0
  111. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/xml_et.py +0 -0
  112. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/xml_namespaces.py +0 -0
  113. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/olio/zmap_reader.py +0 -0
  114. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/__init__.py +0 -0
  115. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/_utils.py +0 -0
  116. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/boundary_feature.py +0 -0
  117. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/boundary_feature_interpretation.py +0 -0
  118. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/earth_model_interpretation.py +0 -0
  119. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/fault_interpretation.py +0 -0
  120. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/fluid_boundary_feature.py +0 -0
  121. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/frontier_feature.py +0 -0
  122. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/generic_interpretation.py +0 -0
  123. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/genetic_boundary_feature.py +0 -0
  124. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/geobody_boundary_interpretation.py +0 -0
  125. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/geobody_feature.py +0 -0
  126. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/geobody_interpretation.py +0 -0
  127. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/geologic_unit_feature.py +0 -0
  128. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/horizon_interpretation.py +0 -0
  129. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/organization_feature.py +0 -0
  130. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/rock_fluid_unit_feature.py +0 -0
  131. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/structural_organization_interpretation.py +0 -0
  132. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/tectonic_boundary_feature.py +0 -0
  133. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/wellbore_feature.py +0 -0
  134. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/organize/wellbore_interpretation.py +0 -0
  135. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/property/__init__.py +0 -0
  136. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/property/_collection_add_part.py +0 -0
  137. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/property/_collection_create_xml.py +0 -0
  138. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/property/_collection_get_attributes.py +0 -0
  139. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/property/_collection_support.py +0 -0
  140. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/property/_property.py +0 -0
  141. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/property/grid_property_collection.py +0 -0
  142. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/property/property_collection.py +0 -0
  143. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/property/property_common.py +0 -0
  144. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/property/property_kind.py +0 -0
  145. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/property/string_lookup.py +0 -0
  146. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/property/well_interval_property.py +0 -0
  147. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/property/well_interval_property_collection.py +0 -0
  148. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/property/well_log.py +0 -0
  149. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/property/well_log_collection.py +0 -0
  150. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/rq_import/__init__.py +0 -0
  151. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/rq_import/_add_ab_properties.py +0 -0
  152. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/rq_import/_add_surfaces.py +0 -0
  153. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/rq_import/_grid_from_cp.py +0 -0
  154. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/rq_import/_import_nexus.py +0 -0
  155. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/rq_import/_import_vdb_all_grids.py +0 -0
  156. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/rq_import/_import_vdb_ensemble.py +0 -0
  157. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/strata/__init__.py +0 -0
  158. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/strata/_binary_contact_interpretation.py +0 -0
  159. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/strata/_geologic_unit_interpretation.py +0 -0
  160. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/strata/_strata_common.py +0 -0
  161. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/strata/_stratigraphic_column.py +0 -0
  162. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/strata/_stratigraphic_column_rank.py +0 -0
  163. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/strata/_stratigraphic_unit_feature.py +0 -0
  164. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/strata/_stratigraphic_unit_interpretation.py +0 -0
  165. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/surface/__init__.py +0 -0
  166. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/surface/_base_surface.py +0 -0
  167. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/surface/_combined_surface.py +0 -0
  168. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/surface/_mesh.py +0 -0
  169. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/surface/_pointset.py +0 -0
  170. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/surface/_surface.py +0 -0
  171. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/surface/_tri_mesh.py +0 -0
  172. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/surface/_triangulated_patch.py +0 -0
  173. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/time_series/__init__.py +0 -0
  174. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/time_series/_any_time_series.py +0 -0
  175. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/time_series/_from_nexus_summary.py +0 -0
  176. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/time_series/_functions.py +0 -0
  177. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/time_series/_geologic_time_series.py +0 -0
  178. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/time_series/_time_duration.py +0 -0
  179. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/time_series/_time_series.py +0 -0
  180. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/unstructured/__init__.py +0 -0
  181. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/unstructured/_hexa_grid.py +0 -0
  182. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/unstructured/_prism_grid.py +0 -0
  183. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/unstructured/_pyramid_grid.py +0 -0
  184. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/unstructured/_tetra_grid.py +0 -0
  185. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/unstructured/_unstructured_grid.py +0 -0
  186. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/weights_and_measures/__init__.py +0 -0
  187. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/weights_and_measures/nexus_units.py +0 -0
  188. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/weights_and_measures/weights_and_measures.py +0 -0
  189. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/well/__init__.py +0 -0
  190. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/well/_deviation_survey.py +0 -0
  191. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/well/_md_datum.py +0 -0
  192. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/well/_trajectory.py +0 -0
  193. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/well/_wellbore_frame.py +0 -0
  194. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/well/_wellbore_marker.py +0 -0
  195. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/well/_wellbore_marker_frame.py +0 -0
  196. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/well/blocked_well_frame.py +0 -0
  197. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/well/well_object_funcs.py +0 -0
  198. {resqpy-4.9.2 → resqpy-4.9.5}/resqpy/well/well_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: resqpy
3
- Version: 4.9.2
3
+ Version: 4.9.5
4
4
  Summary: Python API for working with RESQML models
5
5
  Home-page: https://github.com/bp/resqpy
6
6
  License: MIT
@@ -48,7 +48,7 @@ you the ability to work with reservoir models programmatically, without having
48
48
  to know the details of the RESQML standard.
49
49
 
50
50
  The package is written and maintained by bp, and is made available under the MIT
51
- license as a contribution to the open-source community.
51
+ license as a contribution to the open source community.
52
52
 
53
53
  **resqpy** was created by Andy Beer. For enquires about resqpy, please contact
54
54
  Emma Nesbit (Emma.Nesbit@uk.bp.com)
@@ -73,8 +73,6 @@ for, although the RESQML standard does allow for such grids.
73
73
  It is envisaged that the code base will be expanded to include other classes of
74
74
  object and more fully cover the options permitted by the RESQML standard.
75
75
 
76
- Modification functionality at the moment focuses on changes to grid geometry.
77
-
78
76
  ## Installation
79
77
 
80
78
  Resqpy can be installed with pip:
@@ -16,7 +16,7 @@ you the ability to work with reservoir models programmatically, without having
16
16
  to know the details of the RESQML standard.
17
17
 
18
18
  The package is written and maintained by bp, and is made available under the MIT
19
- license as a contribution to the open-source community.
19
+ license as a contribution to the open source community.
20
20
 
21
21
  **resqpy** was created by Andy Beer. For enquires about resqpy, please contact
22
22
  Emma Nesbit (Emma.Nesbit@uk.bp.com)
@@ -41,8 +41,6 @@ for, although the RESQML standard does allow for such grids.
41
41
  It is envisaged that the code base will be expanded to include other classes of
42
42
  object and more fully cover the options permitted by the RESQML standard.
43
43
 
44
- Modification functionality at the moment focuses on changes to grid geometry.
45
-
46
44
  ## Installation
47
45
 
48
46
  Resqpy can be installed with pip:
@@ -9,7 +9,7 @@ build-backend = "poetry.masonry.api"
9
9
 
10
10
  [tool.poetry]
11
11
  name = "resqpy"
12
- version = "4.9.2" # Set at build time
12
+ version = "4.9.5" # Set at build time
13
13
  description = "Python API for working with RESQML models"
14
14
  authors = ["BP"]
15
15
  license = "MIT"
@@ -28,6 +28,6 @@
28
28
 
29
29
  import logging
30
30
 
31
- __version__ = "4.9.2" # Set at build time
31
+ __version__ = "4.9.5" # Set at build time
32
32
  log = logging.getLogger(__name__)
33
33
  log.info(f"Imported resqpy version {__version__}")
@@ -182,6 +182,7 @@ def find_faces_to_represent_surface_regular(
182
182
  title = None,
183
183
  centres = None,
184
184
  agitate = False,
185
+ random_agitation = False,
185
186
  feature_type = "fault",
186
187
  progress_fn = None,
187
188
  consistent_side = False,
@@ -196,9 +197,11 @@ def find_faces_to_represent_surface_regular(
196
197
  title (str, optional): the citation title to use for the grid connection set; defaults to name
197
198
  centres (numpy float array of shape (nk, nj, ni, 3), optional): precomputed cell centre points in
198
199
  local grid space, to avoid possible crs issues; required if grid's crs includes an origin (offset)?
199
- agitate (bool, default False): if True, the points of the surface are perturbed by a small random
200
+ agitate (bool, default False): if True, the points of the surface are perturbed by a small
200
201
  offset, which can help if the surface has been built from a regular mesh with a periodic resonance
201
202
  with the grid
203
+ random_agitation (bool, default False): if True, the agitation is by a small random distance; if False,
204
+ a constant positive shift of 5.0e-6 is applied to x, y & z values; ignored if agitate is False
202
205
  feature_type (str, default 'fault'): 'fault', 'horizon' or 'geobody boundary'
203
206
  progress_fn (f(x: float), optional): a callback function to be called at intervals by this function;
204
207
  the argument will progress from 0.0 to 1.0 in unspecified and uneven increments
@@ -261,7 +264,10 @@ def find_faces_to_represent_surface_regular(
261
264
  t, p = surface.triangles_and_points()
262
265
  assert t is not None and p is not None, f"surface {surface.title} is empty"
263
266
  if agitate:
264
- p += 1.0e-5 * (np.random.random(p.shape) - 0.5)
267
+ if random_agitation:
268
+ p += 1.0e-5 * (np.random.random(p.shape) - 0.5)
269
+ else:
270
+ p += 5.0e-6
265
271
  log.debug(f"surface: {surface.title}; p0: {p[0]}; crs uuid: {surface.crs_uuid}")
266
272
  log.debug(f"surface min xyz: {np.min(p, axis = 0)}")
267
273
  log.debug(f"surface max xyz: {np.max(p, axis = 0)}")
@@ -495,6 +501,7 @@ def find_faces_to_represent_surface_regular_optimised(
495
501
  name,
496
502
  title = None,
497
503
  agitate = False,
504
+ random_agitation = False,
498
505
  feature_type = "fault",
499
506
  is_curtain = False,
500
507
  progress_fn = None,
@@ -509,9 +516,11 @@ def find_faces_to_represent_surface_regular_optimised(
509
516
  surface (Surface): the surface to be intersected with the grid
510
517
  name (str): the feature name to use in the grid connection set
511
518
  title (str, optional): the citation title to use for the grid connection set; defaults to name
512
- agitate (bool, default False): if True, the points of the surface are perturbed by a small random
519
+ agitate (bool, default False): if True, the points of the surface are perturbed by a small
513
520
  offset, which can help if the surface has been built from a regular mesh with a periodic resonance
514
521
  with the grid
522
+ random_agitation (bool, default False): if True, the agitation is by a small random distance; if False,
523
+ a constant positive shift of 5.0e-6 is applied to x, y & z values; ignored if agitate is False
515
524
  feature_type (str, default 'fault'): 'fault', 'horizon' or 'geobody boundary'
516
525
  is_curtain (bool, default False): if True, only the top layer of the grid is processed and the bisector
517
526
  property, if requested, is generated with indexable element columns
@@ -591,7 +600,10 @@ def find_faces_to_represent_surface_regular_optimised(
591
600
  triangles, points = surface.triangles_and_points()
592
601
  assert (triangles is not None and points is not None), f"surface {surface.title} is empty"
593
602
  if agitate:
594
- points += 1.0e-5 * (np.random.random(points.shape) - 0.5)
603
+ if random_agitation:
604
+ points += 1.0e-5 * (np.random.random(points.shape) - 0.5)
605
+ else:
606
+ points += 5.0e-6
595
607
  # log.debug(f'surface: {surface.title}; p0: {points[0]}; crs uuid: {surface.crs_uuid}')
596
608
  # log.debug(f'surface min xyz: {np.min(points, axis = 0)}')
597
609
  # log.debug(f'surface max xyz: {np.max(points, axis = 0)}')
@@ -29,6 +29,7 @@ def find_faces_to_represent_surface_regular_wrapper(
29
29
  name: str,
30
30
  title: Optional[str] = None,
31
31
  agitate: bool = False,
32
+ random_agitation: bool = False,
32
33
  feature_type: str = 'fault',
33
34
  trimmed: bool = False,
34
35
  is_curtain = False,
@@ -55,9 +56,11 @@ def find_faces_to_represent_surface_regular_wrapper(
55
56
  surface_uuid (UUID or str): UUID (universally unique identifier) of the surface (or point set) object.
56
57
  name (str): the feature name to use in the grid connection set.
57
58
  title (str): the citation title to use for the grid connection set; defaults to name
58
- agitate (bool): if True, the points of the surface are perturbed by a small random
59
- offset, which can help if the surface has been built from a regular mesh with a periodic resonance
59
+ agitate (bool): if True, the points of the surface are perturbed by a small offset,
60
+ which can help if the surface has been built from a regular mesh with a periodic resonance
60
61
  with the grid
62
+ random_agitation (bool, default False): if True, the agitation is by a small random distance; if False,
63
+ a constant positive shift of 5.0e-6 is applied to x, y & z values; ignored if agitate is False
61
64
  feature_type (str, default 'fault'): one of 'fault', 'horizon', or 'geobody boundary'
62
65
  trimmed (bool, default True): if True the surface has already been trimmed
63
66
  is_curtain (bool, default False): if True, only the top layer is intersected with the surface and bisector
@@ -221,6 +224,7 @@ def find_faces_to_represent_surface_regular_wrapper(
221
224
  name,
222
225
  title,
223
226
  agitate,
227
+ random_agitation,
224
228
  feature_type,
225
229
  is_curtain,
226
230
  progress_fn,
@@ -469,7 +469,7 @@ def get_well_data(
469
469
  while True:
470
470
  kf.skip_comments(file)
471
471
  if (kf.specific_keyword_next(file, "WELLSPEC") or kf.specific_keyword_next(file, "WELLMOD") or
472
- kf.specific_keyword_next(file, "TIME")):
472
+ kf.specific_keyword_next(file, "TIME") or kf.specific_keyword_next(file, "INCLUDE")):
473
473
  break
474
474
  line = kf.strip_trailing_comment(file.readline())
475
475
  words = line.split()
@@ -3485,7 +3485,7 @@ class BlockedWell(BaseResqpy):
3485
3485
  facet = gridpc.facet_for_part(part),
3486
3486
  realization = gridpc.realization_for_part(part),
3487
3487
  indexable_element = 'cells')
3488
- bwpc.write_hdf5_for_imported_list()
3488
+ bwpc.write_hdf5_for_imported_list(use_int32 = False)
3489
3489
  bwpc.create_xml_for_imported_list_and_add_parts_to_model(time_series_uuid = time_uuid,
3490
3490
  string_lookup_uuid = sl_uuid)
3491
3491
  else:
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes