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.
Files changed (198) hide show
  1. {resqpy-4.12.2 → resqpy-4.12.3}/PKG-INFO +1 -1
  2. {resqpy-4.12.2 → resqpy-4.12.3}/pyproject.toml +1 -1
  3. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/__init__.py +1 -1
  4. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_defined_geometry.py +6 -2
  5. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid_surface/_blocked_well_populate.py +4 -1
  6. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/_collection_get_attributes.py +1 -1
  7. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/grid_property_collection.py +1 -1
  8. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/property_collection.py +3 -3
  9. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/property_common.py +2 -2
  10. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/unstructured/_prism_grid.py +1 -1
  11. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/weights_and_measures/nexus_units.py +7 -7
  12. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/_blocked_well.py +6 -3
  13. {resqpy-4.12.2 → resqpy-4.12.3}/LICENSE +0 -0
  14. {resqpy-4.12.2 → resqpy-4.12.3}/README.md +0 -0
  15. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/crs.py +0 -0
  16. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/__init__.py +0 -0
  17. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_add_edges_per_column_property_array.py +0 -0
  18. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_add_faults.py +0 -0
  19. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_add_one_blocked_well_property.py +0 -0
  20. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_add_one_grid_property_array.py +0 -0
  21. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_add_single_cell_grid.py +0 -0
  22. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_add_wells_from_ascii_file.py +0 -0
  23. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_add_zone_by_layer_property.py +0 -0
  24. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_coarsened_grid.py +0 -0
  25. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_common.py +0 -0
  26. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_copy_grid.py +0 -0
  27. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_drape_to_surface.py +0 -0
  28. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_extract_box.py +0 -0
  29. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_extract_box_for_well.py +0 -0
  30. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_fault_throw_scaling.py +0 -0
  31. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_gather_ensemble.py +0 -0
  32. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_interpolated_grid.py +0 -0
  33. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_local_depth_adjustment.py +0 -0
  34. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_refined_grid.py +0 -0
  35. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_tilted_grid.py +0 -0
  36. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_unsplit_grid.py +0 -0
  37. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_zonal_grid.py +0 -0
  38. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/derived_model/_zone_layer_ranges_from_array.py +0 -0
  39. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/fault/__init__.py +0 -0
  40. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/fault/_gcs_functions.py +0 -0
  41. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/fault/_grid_connection_set.py +0 -0
  42. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/__init__.py +0 -0
  43. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_cell_properties.py +0 -0
  44. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_connection_sets.py +0 -0
  45. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_create_grid_xml.py +0 -0
  46. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_extract_functions.py +0 -0
  47. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_face_functions.py +0 -0
  48. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_faults.py +0 -0
  49. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_grid.py +0 -0
  50. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_grid_types.py +0 -0
  51. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_intervals_info.py +0 -0
  52. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_moved_functions.py +0 -0
  53. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_pillars.py +0 -0
  54. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_pixel_maps.py +0 -0
  55. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_points_functions.py +0 -0
  56. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_regular_grid.py +0 -0
  57. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_transmissibility.py +0 -0
  58. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_write_hdf5_from_caches.py +0 -0
  59. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_write_nexus_corp.py +0 -0
  60. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid/_xyz.py +0 -0
  61. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid_surface/__init__.py +0 -0
  62. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid_surface/_find_faces.py +0 -0
  63. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid_surface/_grid_skin.py +0 -0
  64. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid_surface/_grid_surface.py +0 -0
  65. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid_surface/_trajectory_intersects.py +0 -0
  66. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/grid_surface/grid_surface_cuda.py +0 -0
  67. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/lines/__init__.py +0 -0
  68. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/lines/_common.py +0 -0
  69. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/lines/_polyline.py +0 -0
  70. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/lines/_polyline_set.py +0 -0
  71. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/model/__init__.py +0 -0
  72. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/model/_catalogue.py +0 -0
  73. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/model/_context.py +0 -0
  74. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/model/_forestry.py +0 -0
  75. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/model/_grids.py +0 -0
  76. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/model/_hdf5.py +0 -0
  77. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/model/_model.py +0 -0
  78. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/model/_xml.py +0 -0
  79. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/multi_processing/__init__.py +0 -0
  80. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/multi_processing/_multiprocessing.py +0 -0
  81. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/multi_processing/wrappers/__init__.py +0 -0
  82. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/multi_processing/wrappers/blocked_well_mp.py +0 -0
  83. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/multi_processing/wrappers/grid_surface_mp.py +0 -0
  84. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/multi_processing/wrappers/mesh_mp.py +0 -0
  85. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/__init__.py +0 -0
  86. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/ab_toolbox.py +0 -0
  87. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/base.py +0 -0
  88. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/box_utilities.py +0 -0
  89. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/class_dict.py +0 -0
  90. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/consolidation.py +0 -0
  91. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/data/build.py +0 -0
  92. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/data/properties.json +0 -0
  93. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/dataframe.py +0 -0
  94. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/exceptions.py +0 -0
  95. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/factors.py +0 -0
  96. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/fine_coarse.py +0 -0
  97. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/grid_functions.py +0 -0
  98. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/intersection.py +0 -0
  99. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/keyword_files.py +0 -0
  100. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/load_data.py +0 -0
  101. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/point_inclusion.py +0 -0
  102. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/random_seed.py +0 -0
  103. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/read_nexus_fault.py +0 -0
  104. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/relperm.py +0 -0
  105. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/simple_lines.py +0 -0
  106. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/time.py +0 -0
  107. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/trademark.py +0 -0
  108. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/transmission.py +0 -0
  109. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/triangulation.py +0 -0
  110. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/uuid.py +0 -0
  111. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/vdb.py +0 -0
  112. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/vector_utilities.py +0 -0
  113. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/volume.py +0 -0
  114. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/wellspec_keywords.py +0 -0
  115. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/write_data.py +0 -0
  116. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/write_hdf5.py +0 -0
  117. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/xml_et.py +0 -0
  118. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/xml_namespaces.py +0 -0
  119. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/olio/zmap_reader.py +0 -0
  120. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/__init__.py +0 -0
  121. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/_utils.py +0 -0
  122. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/boundary_feature.py +0 -0
  123. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/boundary_feature_interpretation.py +0 -0
  124. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/earth_model_interpretation.py +0 -0
  125. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/fault_interpretation.py +0 -0
  126. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/fluid_boundary_feature.py +0 -0
  127. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/frontier_feature.py +0 -0
  128. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/generic_interpretation.py +0 -0
  129. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/genetic_boundary_feature.py +0 -0
  130. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/geobody_boundary_interpretation.py +0 -0
  131. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/geobody_feature.py +0 -0
  132. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/geobody_interpretation.py +0 -0
  133. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/geologic_unit_feature.py +0 -0
  134. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/horizon_interpretation.py +0 -0
  135. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/organization_feature.py +0 -0
  136. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/rock_fluid_unit_feature.py +0 -0
  137. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/structural_organization_interpretation.py +0 -0
  138. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/tectonic_boundary_feature.py +0 -0
  139. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/wellbore_feature.py +0 -0
  140. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/organize/wellbore_interpretation.py +0 -0
  141. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/__init__.py +0 -0
  142. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/_collection_add_part.py +0 -0
  143. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/_collection_create_xml.py +0 -0
  144. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/_collection_support.py +0 -0
  145. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/_property.py +0 -0
  146. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/property_kind.py +0 -0
  147. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/string_lookup.py +0 -0
  148. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/well_interval_property.py +0 -0
  149. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/well_interval_property_collection.py +0 -0
  150. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/well_log.py +0 -0
  151. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/property/well_log_collection.py +0 -0
  152. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/rq_import/__init__.py +0 -0
  153. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/rq_import/_add_ab_properties.py +0 -0
  154. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/rq_import/_add_surfaces.py +0 -0
  155. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/rq_import/_grid_from_cp.py +0 -0
  156. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/rq_import/_import_nexus.py +0 -0
  157. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/rq_import/_import_vdb_all_grids.py +0 -0
  158. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/rq_import/_import_vdb_ensemble.py +0 -0
  159. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/strata/__init__.py +0 -0
  160. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/strata/_binary_contact_interpretation.py +0 -0
  161. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/strata/_geologic_unit_interpretation.py +0 -0
  162. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/strata/_strata_common.py +0 -0
  163. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/strata/_stratigraphic_column.py +0 -0
  164. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/strata/_stratigraphic_column_rank.py +0 -0
  165. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/strata/_stratigraphic_unit_feature.py +0 -0
  166. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/strata/_stratigraphic_unit_interpretation.py +0 -0
  167. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/surface/__init__.py +0 -0
  168. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/surface/_base_surface.py +0 -0
  169. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/surface/_combined_surface.py +0 -0
  170. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/surface/_mesh.py +0 -0
  171. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/surface/_pointset.py +0 -0
  172. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/surface/_surface.py +0 -0
  173. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/surface/_tri_mesh.py +0 -0
  174. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/surface/_triangulated_patch.py +0 -0
  175. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/time_series/__init__.py +0 -0
  176. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/time_series/_any_time_series.py +0 -0
  177. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/time_series/_from_nexus_summary.py +0 -0
  178. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/time_series/_functions.py +0 -0
  179. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/time_series/_geologic_time_series.py +0 -0
  180. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/time_series/_time_duration.py +0 -0
  181. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/time_series/_time_series.py +0 -0
  182. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/unstructured/__init__.py +0 -0
  183. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/unstructured/_hexa_grid.py +0 -0
  184. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/unstructured/_pyramid_grid.py +0 -0
  185. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/unstructured/_tetra_grid.py +0 -0
  186. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/unstructured/_unstructured_grid.py +0 -0
  187. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/weights_and_measures/__init__.py +0 -0
  188. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/weights_and_measures/weights_and_measures.py +0 -0
  189. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/__init__.py +0 -0
  190. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/_deviation_survey.py +0 -0
  191. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/_md_datum.py +0 -0
  192. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/_trajectory.py +0 -0
  193. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/_wellbore_frame.py +0 -0
  194. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/_wellbore_marker.py +0 -0
  195. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/_wellbore_marker_frame.py +0 -0
  196. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/blocked_well_frame.py +0 -0
  197. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/well_object_funcs.py +0 -0
  198. {resqpy-4.12.2 → resqpy-4.12.3}/resqpy/well/well_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: resqpy
3
- Version: 4.12.2
3
+ Version: 4.12.3
4
4
  Summary: Python API for working with RESQML models
5
5
  Home-page: https://github.com/bp/resqpy
6
6
  License: MIT
@@ -9,7 +9,7 @@ build-backend = "poetry.masonry.api"
9
9
 
10
10
  [tool.poetry]
11
11
  name = "resqpy"
12
- version = "4.12.2" # Set at build time
12
+ version = "4.12.3" # 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.12.2" # Set at build time
31
+ __version__ = "4.12.3" # Set at build time
32
32
  log = logging.getLogger(__name__)
33
33
  log.info(f"Imported resqpy version {__version__}")
@@ -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
- assert not np.any(np.isnan(points))
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 = grr.grid_flavour(grid.root)
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 rock',
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 rock')
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 rock I, J & K; each returned part may be None.
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 rock')
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 rock I, J & K; each returned uuid may be None.
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 rock'
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 rock')
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 permeability':
44
- quantity = 'permeability rock'
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 rock': 'mD',
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 rock': 'mD',
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 rock': 'mD',
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 rock': 'mD',
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 rock': 'mD',
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 rock', False),
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
- bu.uuid_from_string(grid_root.attrib['uuid']),
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
- bu.uuid_from_string(interp_root.attrib['uuid']),
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes