resqpy 4.15.2__tar.gz → 4.16.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. {resqpy-4.15.2 → resqpy-4.16.0}/PKG-INFO +1 -1
  2. {resqpy-4.15.2 → resqpy-4.16.0}/pyproject.toml +1 -1
  3. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/__init__.py +1 -1
  4. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/property/_collection_create_xml.py +1 -1
  5. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/property/property_common.py +3 -8
  6. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/surface/_surface.py +18 -2
  7. {resqpy-4.15.2 → resqpy-4.16.0}/LICENSE +0 -0
  8. {resqpy-4.15.2 → resqpy-4.16.0}/README.md +0 -0
  9. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/crs.py +0 -0
  10. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/__init__.py +0 -0
  11. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_add_edges_per_column_property_array.py +0 -0
  12. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_add_faults.py +0 -0
  13. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_add_one_blocked_well_property.py +0 -0
  14. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_add_one_grid_property_array.py +0 -0
  15. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_add_single_cell_grid.py +0 -0
  16. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_add_wells_from_ascii_file.py +0 -0
  17. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_add_zone_by_layer_property.py +0 -0
  18. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_coarsened_grid.py +0 -0
  19. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_common.py +0 -0
  20. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_copy_grid.py +0 -0
  21. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_drape_to_surface.py +0 -0
  22. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_extract_box.py +0 -0
  23. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_extract_box_for_well.py +0 -0
  24. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_fault_throw_scaling.py +0 -0
  25. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_gather_ensemble.py +0 -0
  26. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_interpolated_grid.py +0 -0
  27. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_local_depth_adjustment.py +0 -0
  28. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_refined_grid.py +0 -0
  29. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_tilted_grid.py +0 -0
  30. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_unsplit_grid.py +0 -0
  31. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_zonal_grid.py +0 -0
  32. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/derived_model/_zone_layer_ranges_from_array.py +0 -0
  33. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/fault/__init__.py +0 -0
  34. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/fault/_gcs_functions.py +0 -0
  35. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/fault/_grid_connection_set.py +0 -0
  36. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid/__init__.py +0 -0
  37. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid/_cell_properties.py +0 -0
  38. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid/_connection_sets.py +0 -0
  39. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid/_create_grid_xml.py +0 -0
  40. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid/_defined_geometry.py +0 -0
  41. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid/_extract_functions.py +0 -0
  42. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid/_face_functions.py +0 -0
  43. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid/_faults.py +0 -0
  44. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid/_grid.py +0 -0
  45. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid/_grid_types.py +0 -0
  46. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid/_intervals_info.py +0 -0
  47. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid/_moved_functions.py +0 -0
  48. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid/_pillars.py +0 -0
  49. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid/_pixel_maps.py +0 -0
  50. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid/_points_functions.py +0 -0
  51. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid/_regular_grid.py +0 -0
  52. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid/_transmissibility.py +0 -0
  53. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid/_write_hdf5_from_caches.py +0 -0
  54. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid/_write_nexus_corp.py +0 -0
  55. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid/_xyz.py +0 -0
  56. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid_surface/__init__.py +0 -0
  57. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid_surface/_blocked_well_populate.py +0 -0
  58. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid_surface/_find_faces.py +0 -0
  59. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid_surface/_grid_skin.py +0 -0
  60. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid_surface/_grid_surface.py +0 -0
  61. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid_surface/_trajectory_intersects.py +0 -0
  62. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/grid_surface/grid_surface_cuda.py +0 -0
  63. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/lines/__init__.py +0 -0
  64. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/lines/_common.py +0 -0
  65. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/lines/_polyline.py +0 -0
  66. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/lines/_polyline_set.py +0 -0
  67. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/model/__init__.py +0 -0
  68. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/model/_catalogue.py +0 -0
  69. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/model/_context.py +0 -0
  70. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/model/_forestry.py +0 -0
  71. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/model/_grids.py +0 -0
  72. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/model/_hdf5.py +0 -0
  73. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/model/_model.py +0 -0
  74. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/model/_xml.py +0 -0
  75. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/multi_processing/__init__.py +0 -0
  76. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/multi_processing/_multiprocessing.py +0 -0
  77. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/multi_processing/wrappers/__init__.py +0 -0
  78. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/multi_processing/wrappers/blocked_well_mp.py +0 -0
  79. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/multi_processing/wrappers/grid_surface_mp.py +0 -0
  80. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/multi_processing/wrappers/mesh_mp.py +0 -0
  81. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/__init__.py +0 -0
  82. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/ab_toolbox.py +0 -0
  83. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/base.py +0 -0
  84. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/box_utilities.py +0 -0
  85. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/class_dict.py +0 -0
  86. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/consolidation.py +0 -0
  87. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/data/build.py +0 -0
  88. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/data/properties.json +0 -0
  89. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/dataframe.py +0 -0
  90. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/exceptions.py +0 -0
  91. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/factors.py +0 -0
  92. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/fine_coarse.py +0 -0
  93. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/grid_functions.py +0 -0
  94. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/intersection.py +0 -0
  95. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/keyword_files.py +0 -0
  96. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/load_data.py +0 -0
  97. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/point_inclusion.py +0 -0
  98. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/random_seed.py +0 -0
  99. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/read_nexus_fault.py +0 -0
  100. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/relperm.py +0 -0
  101. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/simple_lines.py +0 -0
  102. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/time.py +0 -0
  103. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/trademark.py +0 -0
  104. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/transmission.py +0 -0
  105. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/triangulation.py +0 -0
  106. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/uuid.py +0 -0
  107. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/vdb.py +0 -0
  108. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/vector_utilities.py +0 -0
  109. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/volume.py +0 -0
  110. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/wellspec_keywords.py +0 -0
  111. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/write_data.py +0 -0
  112. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/write_hdf5.py +0 -0
  113. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/xml_et.py +0 -0
  114. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/xml_namespaces.py +0 -0
  115. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/olio/zmap_reader.py +0 -0
  116. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/__init__.py +0 -0
  117. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/_utils.py +0 -0
  118. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/boundary_feature.py +0 -0
  119. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/boundary_feature_interpretation.py +0 -0
  120. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/earth_model_interpretation.py +0 -0
  121. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/fault_interpretation.py +0 -0
  122. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/fluid_boundary_feature.py +0 -0
  123. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/frontier_feature.py +0 -0
  124. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/generic_interpretation.py +0 -0
  125. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/genetic_boundary_feature.py +0 -0
  126. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/geobody_boundary_interpretation.py +0 -0
  127. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/geobody_feature.py +0 -0
  128. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/geobody_interpretation.py +0 -0
  129. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/geologic_unit_feature.py +0 -0
  130. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/horizon_interpretation.py +0 -0
  131. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/organization_feature.py +0 -0
  132. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/rock_fluid_unit_feature.py +0 -0
  133. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/structural_organization_interpretation.py +0 -0
  134. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/tectonic_boundary_feature.py +0 -0
  135. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/wellbore_feature.py +0 -0
  136. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/organize/wellbore_interpretation.py +0 -0
  137. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/property/__init__.py +0 -0
  138. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/property/_collection_add_part.py +0 -0
  139. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/property/_collection_get_attributes.py +0 -0
  140. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/property/_collection_support.py +0 -0
  141. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/property/_property.py +0 -0
  142. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/property/attribute_property_set.py +0 -0
  143. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/property/grid_property_collection.py +0 -0
  144. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/property/property_collection.py +0 -0
  145. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/property/property_kind.py +0 -0
  146. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/property/string_lookup.py +0 -0
  147. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/property/well_interval_property.py +0 -0
  148. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/property/well_interval_property_collection.py +0 -0
  149. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/property/well_log.py +0 -0
  150. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/property/well_log_collection.py +0 -0
  151. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/rq_import/__init__.py +0 -0
  152. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/rq_import/_add_ab_properties.py +0 -0
  153. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/rq_import/_add_surfaces.py +0 -0
  154. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/rq_import/_grid_from_cp.py +0 -0
  155. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/rq_import/_import_nexus.py +0 -0
  156. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/rq_import/_import_vdb_all_grids.py +0 -0
  157. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/rq_import/_import_vdb_ensemble.py +0 -0
  158. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/strata/__init__.py +0 -0
  159. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/strata/_binary_contact_interpretation.py +0 -0
  160. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/strata/_geologic_unit_interpretation.py +0 -0
  161. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/strata/_strata_common.py +0 -0
  162. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/strata/_stratigraphic_column.py +0 -0
  163. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/strata/_stratigraphic_column_rank.py +0 -0
  164. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/strata/_stratigraphic_unit_feature.py +0 -0
  165. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/strata/_stratigraphic_unit_interpretation.py +0 -0
  166. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/surface/__init__.py +0 -0
  167. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/surface/_base_surface.py +0 -0
  168. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/surface/_combined_surface.py +0 -0
  169. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/surface/_mesh.py +0 -0
  170. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/surface/_pointset.py +0 -0
  171. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/surface/_tri_mesh.py +0 -0
  172. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/surface/_tri_mesh_stencil.py +0 -0
  173. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/surface/_triangulated_patch.py +0 -0
  174. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/time_series/__init__.py +0 -0
  175. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/time_series/_any_time_series.py +0 -0
  176. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/time_series/_from_nexus_summary.py +0 -0
  177. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/time_series/_functions.py +0 -0
  178. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/time_series/_geologic_time_series.py +0 -0
  179. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/time_series/_time_duration.py +0 -0
  180. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/time_series/_time_series.py +0 -0
  181. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/unstructured/__init__.py +0 -0
  182. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/unstructured/_hexa_grid.py +0 -0
  183. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/unstructured/_prism_grid.py +0 -0
  184. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/unstructured/_pyramid_grid.py +0 -0
  185. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/unstructured/_tetra_grid.py +0 -0
  186. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/unstructured/_unstructured_grid.py +0 -0
  187. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/weights_and_measures/__init__.py +0 -0
  188. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/weights_and_measures/nexus_units.py +0 -0
  189. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/weights_and_measures/weights_and_measures.py +0 -0
  190. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/well/__init__.py +0 -0
  191. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/well/_blocked_well.py +0 -0
  192. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/well/_deviation_survey.py +0 -0
  193. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/well/_md_datum.py +0 -0
  194. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/well/_trajectory.py +0 -0
  195. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/well/_wellbore_frame.py +0 -0
  196. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/well/_wellbore_marker.py +0 -0
  197. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/well/_wellbore_marker_frame.py +0 -0
  198. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/well/blocked_well_frame.py +0 -0
  199. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/well/well_object_funcs.py +0 -0
  200. {resqpy-4.15.2 → resqpy-4.16.0}/resqpy/well/well_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: resqpy
3
- Version: 4.15.2
3
+ Version: 4.16.0
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.15.2" # Set at build time
12
+ version = "4.16.0" # 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.15.2" # Set at build time
31
+ __version__ = "4.16.0" # Set at build time
32
32
  log = logging.getLogger(__name__)
33
33
  log.info(f"Imported resqpy version {__version__}")
@@ -66,7 +66,7 @@ def _create_xml_property_kind(collection, p_node, find_local_property_kinds, pro
66
66
  property_kind = 'rock permeability'
67
67
  p_kind_node = rqet.SubElement(p_node, ns['resqml2'] + 'PropertyKind')
68
68
  p_kind_node.text = rqet.null_xml_text
69
- if find_local_property_kinds and property_kind not in rqp_c.supported_property_kind_list:
69
+ if find_local_property_kinds and property_kind not in wam.valid_property_kinds():
70
70
  property_kind_uuid = pcga._get_property_kind_uuid(collection, property_kind_uuid, property_kind, uom, discrete)
71
71
 
72
72
  if property_kind_uuid is None:
@@ -12,18 +12,13 @@ import numpy as np
12
12
  import resqpy.property as rqp
13
13
  import resqpy.olio.uuid as bu
14
14
  import resqpy.olio.xml_et as rqet
15
- import resqpy.weights_and_measures as bwam
15
+ import resqpy.weights_and_measures as wam
16
16
 
17
17
  # the following resqml property kinds and facet types are 'known about' by this module in relation to nexus
18
18
  # other property kinds should be handled okay but without any special treatment
19
19
  # see property_kind_and_facet_from_keyword() for simulator keyword to property kind and facet mapping
20
20
 
21
- supported_property_kind_list = [
22
- 'continuous', 'discrete', 'categorical', 'code', 'index', 'depth', 'rock volume', 'pore volume', 'volume',
23
- 'thickness', 'length', 'cell length', 'area', 'net to gross ratio', 'porosity', 'permeability thickness',
24
- 'permeability length', 'permeability rock', 'rock permeability', 'fluid volume', 'transmissibility', 'pressure',
25
- 'saturation', 'solution gas-oil ratio', 'vapor oil-gas ratio', 'property multiplier', 'thermodynamic temperature'
26
- ]
21
+ supported_property_kind_list = list(wam.valid_property_kinds())
27
22
 
28
23
  supported_local_property_kind_list = [
29
24
  'active', 'transmissibility multiplier', 'fault transmissibility', 'mat transmissibility'
@@ -326,7 +321,7 @@ def infer_property_kind(name, unit):
326
321
 
327
322
  # Currently unit is ignored
328
323
 
329
- valid_kinds = bwam.valid_property_kinds()
324
+ valid_kinds = wam.valid_property_kinds()
330
325
 
331
326
  if name in valid_kinds:
332
327
  kind = name
@@ -122,6 +122,7 @@ class Surface(rqsb.BaseSurface):
122
122
  self.set_from_mesh_file(mesh_file, mesh_format, quad_triangles = quad_triangles)
123
123
  elif tsurf_file is not None:
124
124
  self.set_from_tsurf_file(tsurf_file)
125
+ self._load_normal_vector_from_extra_metadata()
125
126
 
126
127
  @classmethod
127
128
  def from_tri_mesh(cls, tri_mesh, exclude_nans = False):
@@ -715,7 +716,7 @@ class Surface(rqsb.BaseSurface):
715
716
 
716
717
  _, p = self.triangles_and_points()
717
718
  crs = rqc.Crs(self.model, uuid = self.crs_uuid)
718
- if crs.xy_units == self.z_units:
719
+ if crs.xy_units == crs.z_units:
719
720
  return p
720
721
  unit_adjusted_p = p.copy()
721
722
  wam.convert_lengths(unit_adjusted_p[:, 2], crs.z_units, crs.xy_units)
@@ -1203,7 +1204,12 @@ class Surface(rqsb.BaseSurface):
1203
1204
  if not self.title:
1204
1205
  self.title = 'surface'
1205
1206
 
1206
- tri_rep = super().create_xml(add_as_part = False, title = title, originator = originator)
1207
+ em = None
1208
+ if self.normal_vector is not None:
1209
+ assert len(self.normal_vector) == 3
1210
+ em = {'normal vector': f'{self.normal_vector[0]},{self.normal_vector[1]},{self.normal_vector[2]}'}
1211
+
1212
+ tri_rep = super().create_xml(add_as_part = False, title = title, originator = originator, extra_metadata = em)
1207
1213
 
1208
1214
  # todo: if crs_uuid is None, attempt to set to surface patch crs uuid (within patch loop, below)
1209
1215
  if crs_uuid is not None:
@@ -1309,6 +1315,16 @@ class Surface(rqsb.BaseSurface):
1309
1315
 
1310
1316
  return tri_rep
1311
1317
 
1318
+ def _load_normal_vector_from_extra_metadata(self):
1319
+ if self.normal_vector is None and self.extra_metadata is not None:
1320
+ nv_str = self.extra_metadata.get('normal vector')
1321
+ if nv_str is not None:
1322
+ nv_words = nv_str.split(',')
1323
+ assert len(nv_words) == 3, f'failed to convert normal vector string into triplet: {nv_str}'
1324
+ self.normal_vector = np.empty(3, dtype = float)
1325
+ for i in range(3):
1326
+ self.normal_vector[i] = float(nv_words[i])
1327
+
1312
1328
 
1313
1329
  def distill_triangle_points(t, p):
1314
1330
  """Returns a (triangles, points) pair with points distilled as only those used from p."""
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes