resqpy 4.8.2__tar.gz → 4.8.4__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.8.2 → resqpy-4.8.4}/PKG-INFO +1 -1
  2. {resqpy-4.8.2 → resqpy-4.8.4}/pyproject.toml +1 -1
  3. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/__init__.py +1 -1
  4. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/model/_hdf5.py +3 -1
  5. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/property/_collection_get_attributes.py +3 -1
  6. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/weights_and_measures/nexus_units.py +22 -11
  7. {resqpy-4.8.2 → resqpy-4.8.4}/LICENSE +0 -0
  8. {resqpy-4.8.2 → resqpy-4.8.4}/README.md +0 -0
  9. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/crs.py +0 -0
  10. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/__init__.py +0 -0
  11. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_add_edges_per_column_property_array.py +0 -0
  12. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_add_faults.py +0 -0
  13. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_add_one_blocked_well_property.py +0 -0
  14. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_add_one_grid_property_array.py +0 -0
  15. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_add_single_cell_grid.py +0 -0
  16. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_add_wells_from_ascii_file.py +0 -0
  17. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_add_zone_by_layer_property.py +0 -0
  18. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_coarsened_grid.py +0 -0
  19. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_common.py +0 -0
  20. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_copy_grid.py +0 -0
  21. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_drape_to_surface.py +0 -0
  22. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_extract_box.py +0 -0
  23. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_extract_box_for_well.py +0 -0
  24. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_fault_throw_scaling.py +0 -0
  25. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_gather_ensemble.py +0 -0
  26. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_interpolated_grid.py +0 -0
  27. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_local_depth_adjustment.py +0 -0
  28. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_refined_grid.py +0 -0
  29. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_tilted_grid.py +0 -0
  30. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_unsplit_grid.py +0 -0
  31. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_zonal_grid.py +0 -0
  32. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/derived_model/_zone_layer_ranges_from_array.py +0 -0
  33. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/fault/__init__.py +0 -0
  34. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/fault/_gcs_functions.py +0 -0
  35. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/fault/_grid_connection_set.py +0 -0
  36. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid/__init__.py +0 -0
  37. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid/_cell_properties.py +0 -0
  38. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid/_connection_sets.py +0 -0
  39. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid/_create_grid_xml.py +0 -0
  40. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid/_defined_geometry.py +0 -0
  41. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid/_extract_functions.py +0 -0
  42. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid/_face_functions.py +0 -0
  43. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid/_faults.py +0 -0
  44. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid/_grid.py +0 -0
  45. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid/_grid_types.py +0 -0
  46. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid/_intervals_info.py +0 -0
  47. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid/_moved_functions.py +0 -0
  48. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid/_pillars.py +0 -0
  49. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid/_pixel_maps.py +0 -0
  50. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid/_points_functions.py +0 -0
  51. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid/_regular_grid.py +0 -0
  52. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid/_transmissibility.py +0 -0
  53. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid/_write_hdf5_from_caches.py +0 -0
  54. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid/_write_nexus_corp.py +0 -0
  55. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid/_xyz.py +0 -0
  56. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid_surface/__init__.py +0 -0
  57. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid_surface/_blocked_well_populate.py +0 -0
  58. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid_surface/_find_faces.py +0 -0
  59. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid_surface/_grid_skin.py +0 -0
  60. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid_surface/_grid_surface.py +0 -0
  61. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid_surface/_trajectory_intersects.py +0 -0
  62. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/grid_surface/grid_surface_cuda.py +0 -0
  63. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/lines/__init__.py +0 -0
  64. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/lines/_common.py +0 -0
  65. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/lines/_polyline.py +0 -0
  66. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/lines/_polyline_set.py +0 -0
  67. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/model/__init__.py +0 -0
  68. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/model/_catalogue.py +0 -0
  69. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/model/_context.py +0 -0
  70. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/model/_forestry.py +0 -0
  71. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/model/_grids.py +0 -0
  72. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/model/_model.py +0 -0
  73. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/model/_xml.py +0 -0
  74. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/multi_processing/__init__.py +0 -0
  75. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/multi_processing/_multiprocessing.py +0 -0
  76. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/multi_processing/wrappers/__init__.py +0 -0
  77. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/multi_processing/wrappers/blocked_well_mp.py +0 -0
  78. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/multi_processing/wrappers/grid_surface_mp.py +0 -0
  79. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/multi_processing/wrappers/mesh_mp.py +0 -0
  80. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/__init__.py +0 -0
  81. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/ab_toolbox.py +0 -0
  82. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/base.py +0 -0
  83. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/box_utilities.py +0 -0
  84. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/class_dict.py +0 -0
  85. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/consolidation.py +0 -0
  86. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/data/build.py +0 -0
  87. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/data/properties.json +0 -0
  88. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/dataframe.py +0 -0
  89. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/exceptions.py +0 -0
  90. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/factors.py +0 -0
  91. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/fine_coarse.py +0 -0
  92. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/grid_functions.py +0 -0
  93. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/intersection.py +0 -0
  94. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/keyword_files.py +0 -0
  95. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/load_data.py +0 -0
  96. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/point_inclusion.py +0 -0
  97. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/random_seed.py +0 -0
  98. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/read_nexus_fault.py +0 -0
  99. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/relperm.py +0 -0
  100. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/simple_lines.py +0 -0
  101. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/time.py +0 -0
  102. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/trademark.py +0 -0
  103. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/transmission.py +0 -0
  104. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/triangulation.py +0 -0
  105. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/uuid.py +0 -0
  106. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/vdb.py +0 -0
  107. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/vector_utilities.py +0 -0
  108. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/volume.py +0 -0
  109. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/wellspec_keywords.py +0 -0
  110. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/write_data.py +0 -0
  111. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/write_hdf5.py +0 -0
  112. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/xml_et.py +0 -0
  113. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/xml_namespaces.py +0 -0
  114. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/olio/zmap_reader.py +0 -0
  115. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/__init__.py +0 -0
  116. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/_utils.py +0 -0
  117. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/boundary_feature.py +0 -0
  118. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/boundary_feature_interpretation.py +0 -0
  119. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/earth_model_interpretation.py +0 -0
  120. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/fault_interpretation.py +0 -0
  121. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/fluid_boundary_feature.py +0 -0
  122. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/frontier_feature.py +0 -0
  123. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/generic_interpretation.py +0 -0
  124. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/genetic_boundary_feature.py +0 -0
  125. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/geobody_boundary_interpretation.py +0 -0
  126. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/geobody_feature.py +0 -0
  127. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/geobody_interpretation.py +0 -0
  128. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/geologic_unit_feature.py +0 -0
  129. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/horizon_interpretation.py +0 -0
  130. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/organization_feature.py +0 -0
  131. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/rock_fluid_unit_feature.py +0 -0
  132. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/structural_organization_interpretation.py +0 -0
  133. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/tectonic_boundary_feature.py +0 -0
  134. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/wellbore_feature.py +0 -0
  135. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/organize/wellbore_interpretation.py +0 -0
  136. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/property/__init__.py +0 -0
  137. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/property/_collection_add_part.py +0 -0
  138. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/property/_collection_create_xml.py +0 -0
  139. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/property/_collection_support.py +0 -0
  140. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/property/_property.py +0 -0
  141. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/property/grid_property_collection.py +0 -0
  142. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/property/property_collection.py +0 -0
  143. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/property/property_common.py +0 -0
  144. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/property/property_kind.py +0 -0
  145. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/property/string_lookup.py +0 -0
  146. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/property/well_interval_property.py +0 -0
  147. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/property/well_interval_property_collection.py +0 -0
  148. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/property/well_log.py +0 -0
  149. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/property/well_log_collection.py +0 -0
  150. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/rq_import/__init__.py +0 -0
  151. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/rq_import/_add_ab_properties.py +0 -0
  152. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/rq_import/_add_surfaces.py +0 -0
  153. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/rq_import/_grid_from_cp.py +0 -0
  154. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/rq_import/_import_nexus.py +0 -0
  155. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/rq_import/_import_vdb_all_grids.py +0 -0
  156. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/rq_import/_import_vdb_ensemble.py +0 -0
  157. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/strata/__init__.py +0 -0
  158. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/strata/_binary_contact_interpretation.py +0 -0
  159. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/strata/_geologic_unit_interpretation.py +0 -0
  160. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/strata/_strata_common.py +0 -0
  161. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/strata/_stratigraphic_column.py +0 -0
  162. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/strata/_stratigraphic_column_rank.py +0 -0
  163. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/strata/_stratigraphic_unit_feature.py +0 -0
  164. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/strata/_stratigraphic_unit_interpretation.py +0 -0
  165. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/surface/__init__.py +0 -0
  166. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/surface/_base_surface.py +0 -0
  167. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/surface/_combined_surface.py +0 -0
  168. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/surface/_mesh.py +0 -0
  169. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/surface/_pointset.py +0 -0
  170. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/surface/_surface.py +0 -0
  171. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/surface/_tri_mesh.py +0 -0
  172. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/surface/_triangulated_patch.py +0 -0
  173. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/time_series/__init__.py +0 -0
  174. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/time_series/_any_time_series.py +0 -0
  175. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/time_series/_from_nexus_summary.py +0 -0
  176. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/time_series/_functions.py +0 -0
  177. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/time_series/_geologic_time_series.py +0 -0
  178. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/time_series/_time_duration.py +0 -0
  179. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/time_series/_time_series.py +0 -0
  180. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/unstructured/__init__.py +0 -0
  181. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/unstructured/_hexa_grid.py +0 -0
  182. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/unstructured/_prism_grid.py +0 -0
  183. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/unstructured/_pyramid_grid.py +0 -0
  184. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/unstructured/_tetra_grid.py +0 -0
  185. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/unstructured/_unstructured_grid.py +0 -0
  186. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/weights_and_measures/__init__.py +0 -0
  187. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/weights_and_measures/weights_and_measures.py +0 -0
  188. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/well/__init__.py +0 -0
  189. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/well/_blocked_well.py +0 -0
  190. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/well/_deviation_survey.py +0 -0
  191. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/well/_md_datum.py +0 -0
  192. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/well/_trajectory.py +0 -0
  193. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/well/_wellbore_frame.py +0 -0
  194. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/well/_wellbore_marker.py +0 -0
  195. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/well/_wellbore_marker_frame.py +0 -0
  196. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/well/blocked_well_frame.py +0 -0
  197. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/well/well_object_funcs.py +0 -0
  198. {resqpy-4.8.2 → resqpy-4.8.4}/resqpy/well/well_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: resqpy
3
- Version: 4.8.2
3
+ Version: 4.8.4
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.8.2" # Set at build time
12
+ version = "4.8.4" # 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.8.2" # Set at build time
31
+ __version__ = "4.8.4" # Set at build time
32
32
  log = logging.getLogger(__name__)
33
33
  log.info(f"Imported resqpy version {__version__}")
@@ -229,10 +229,12 @@ def _h5_array_element(model,
229
229
  shape_tuple = tuple(h5_root[h5_key_pair[1]].shape)
230
230
  if required_shape is None:
231
231
  required_shape = shape_tuple
232
+ else:
233
+ required_shape = tuple(required_shape)
232
234
  object.__dict__[array_attribute] = np.zeros(required_shape, dtype = dtype)
233
235
  if shape_tuple == required_shape:
234
236
  object.__dict__[array_attribute][:] = h5_root[h5_key_pair[1]]
235
- elif (len(shape_tuple) == len(required_shape) and ('bool' in str_dtype or 'int8' in str_dtype) and
237
+ elif (len(shape_tuple) == len(required_shape) and ('bool' in str_dtype or 'uint8' in str_dtype) and
236
238
  8 * (shape_tuple[-1] - 1) < required_shape[-1] <= 8 * shape_tuple[-1]):
237
239
  a = np.unpackbits(h5_root[h5_key_pair[1]], axis = -1).astype(bool)
238
240
  object.__dict__[array_attribute][:] = a[..., :required_shape[-1]]
@@ -427,6 +427,8 @@ def _supporting_shape_grid(support, indexable_element, direction):
427
427
  shape_list = [support.nk, support.ni]
428
428
  elif indexable_element == 'I0':
429
429
  shape_list = [support.nk, support.nj]
430
+ else:
431
+ raise ValueError(f'unsupported grid indexable element: {indexable_element}')
430
432
  return shape_list
431
433
 
432
434
 
@@ -549,7 +551,7 @@ def _cached_part_array_ref_const_none(collection, part, dtype, model, cached_arr
549
551
  # the required shape is required if a bool array may need to be unpacked from bits
550
552
  required_shape = None
551
553
  str_dtype = str(dtype)
552
- if use_pack and ('bool' in str_dtype or 'int8' in str_dtype):
554
+ if use_pack and ('bool' in str_dtype or 'uint8' in str_dtype):
553
555
  required_shape = collection.supporting_shape(indexable_element = collection.indexable_for_part(part),
554
556
  direction = _part_direction(collection, part))
555
557
 
@@ -10,10 +10,12 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
10
10
  nexus_unit_system (str): one of 'METRIC', 'METKG/CM2', 'METBAR', 'LAB', or 'ENGLISH'
11
11
  quantity (str): the RESQML quantity class of interest; currently suppported:
12
12
  'length', 'area', 'volume', 'volume per volume', 'permeability rock',
13
- 'time', 'thermodynamic temperature', 'mass per volume', 'pressure'
14
- english_volume_flavour (str, optional): only needed for ENGLISH unit system and volume
15
- or volume per volume quantity; one of 'PV', 'OVER PV', 'FVF', 'GOR', or 'saturation';
16
- see notes regarding FVF
13
+ 'time', 'thermodynamic temperature', 'mass per volume', 'pressure',
14
+ 'volume per time'
15
+ english_volume_flavour (str, optional): only needed for ENGLISH unit system and volume,
16
+ volume per volume, or volume per time quantity; one of 'PV', 'OVER PV', 'FVF', 'GOR',
17
+ 'surface gas rate', or 'saturation'; see notes regarding FVF, also regarding flow
18
+ rates
17
19
 
18
20
  returns:
19
21
  str: the RESQML uom string for the units required by Nexus
@@ -27,7 +29,8 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
27
29
  in the ENHLISH unit system, Nexus expacts gas formation volume factors in bbl / 1000 ft3
28
30
  but that is not a valid RESQML uom – this function will return bbl/bbl for ENGLISH FVF;
29
31
  also be wary of pore volume units when using the medieval ENGLISH unit system: the OVER
30
- keyword expects different units than GRID or recurrent override input
32
+ keyword expects different units than GRID or recurrent override input; ENGLISH fluid flow
33
+ rates will be returned as bbl/d unless the flavour is specified as 'surface gas rate'
31
34
  """
32
35
 
33
36
  nexus_unit_system = nexus_unit_system.upper()
@@ -35,7 +38,7 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
35
38
  # todo: add other quantities as needed
36
39
  assert quantity in [
37
40
  'length', 'area', 'volume', 'volume per volume', 'permeability rock', 'rock permeability', 'time',
38
- 'thermodynamic temperature', 'mass per volume', 'pressure'
41
+ 'thermodynamic temperature', 'mass per volume', 'pressure', 'volume per time'
39
42
  ]
40
43
  if quantity == 'rock permeability':
41
44
  quantity = 'permeability rock'
@@ -48,6 +51,9 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
48
51
  elif english_volume_flavour == 'over pv':
49
52
  assert quantity == 'volume'
50
53
  return 'bbl' # for static override of pv (Nexus OVER)
54
+ elif english_volume_flavour == 'surface gas rate':
55
+ assert quantity == 'volume per time'
56
+ return '1000 ft3/d'
51
57
  assert quantity == 'volume per volume'
52
58
  if english_volume_flavour == 'fvf':
53
59
  return 'bbl/bbl'
@@ -66,7 +72,8 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
66
72
  'time': 'd',
67
73
  'thermodynamic temperature': 'degC',
68
74
  'mass per volume': 'kg/m3',
69
- 'pressure': 'kPa'
75
+ 'pressure': 'kPa',
76
+ 'volume per time': 'm3/d'
70
77
  },
71
78
  'METKG/CM2': {
72
79
  'length': 'm',
@@ -77,7 +84,8 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
77
84
  'time': 'd',
78
85
  'thermodynamic temperature': 'degC',
79
86
  'mass per volume': 'kg/m3',
80
- 'pressure': 'kgf/cm2'
87
+ 'pressure': 'kgf/cm2',
88
+ 'volume per time': 'm3/d'
81
89
  },
82
90
  'METBAR': {
83
91
  'length': 'm',
@@ -88,7 +96,8 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
88
96
  'time': 'd',
89
97
  'thermodynamic temperature': 'degC',
90
98
  'mass per volume': 'kg/m3',
91
- 'pressure': 'bar'
99
+ 'pressure': 'bar',
100
+ 'volume per time': 'm3/d'
92
101
  },
93
102
  'LAB': {
94
103
  'length': 'cm',
@@ -99,7 +108,8 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
99
108
  'time': 'h',
100
109
  'thermodynamic temperature': 'degC',
101
110
  'mass per volume': 'g/cm3',
102
- 'pressure': 'psi'
111
+ 'pressure': 'psi',
112
+ 'volume per time': 'cm3/h'
103
113
  },
104
114
  'ENGLISH': {
105
115
  'length': 'ft',
@@ -110,7 +120,8 @@ def nexus_uom_for_quantity(nexus_unit_system, quantity, english_volume_flavour =
110
120
  'time': 'd',
111
121
  'thermodynamic temperature': 'degF',
112
122
  'mass per volume': 'lbm/ft3',
113
- 'pressure': 'psi'
123
+ 'pressure': 'psi',
124
+ 'volume per time': 'bbl/d' # surface gas is special case handled above
114
125
  }
115
126
  }
116
127
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes