subsurface-terra 2025.1.0rc17__tar.gz → 2025.1.0rc19__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 (131) hide show
  1. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/.teamcity/Subsurface/buildTypes/Subsurface_Testing.xml +17 -0
  2. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/PKG-INFO +3 -1
  3. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/requirements/requirements_volume.txt +1 -0
  4. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/_version.py +3 -3
  5. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/structs/base_structures/unstructured_data.py +18 -6
  6. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/volume/read_volume.py +10 -6
  7. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface_terra.egg-info/PKG-INFO +3 -1
  8. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface_terra.egg-info/requires.txt +2 -0
  9. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/.env.example +0 -0
  10. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/.teamcity/Subsurface/buildTypes/Subsurface_ReleaseSubsurface.xml +0 -0
  11. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/.teamcity/Subsurface/buildTypes/Subsurface_ReleaseSubsurface_2.xml +0 -0
  12. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/.teamcity/Subsurface/project-config.xml +0 -0
  13. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/.teamcity/Subsurface/vcsRoots/Subsurface_HttpsGithubComTerranigmaSolutionsSubsurfaceRefsHeadsMain.xml +0 -0
  14. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/.teamcity/Subsurface/vcsRoots/Subsurface_HttpsGithubComTerranigmaSolutionsSubsurfaceRefsHeadsMain1.xml +0 -0
  15. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/.teamcity/Subsurface/vcsRoots/Subsurface_HttpsGithubComTerranigmaSolutionsSubsurfaceRefsHeadsMain2.xml +0 -0
  16. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/LICENSE +0 -0
  17. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/README.rst +0 -0
  18. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/requirements/requirements.txt +0 -0
  19. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/requirements/requirements_all.txt +0 -0
  20. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/requirements/requirements_dev.txt +0 -0
  21. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/requirements/requirements_geospatial.txt +0 -0
  22. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/requirements/requirements_mesh.txt +0 -0
  23. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/requirements/requirements_opt.txt +0 -0
  24. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/requirements/requirements_plot.txt +0 -0
  25. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/requirements/requirements_traces.txt +0 -0
  26. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/requirements/requirements_wells.txt +0 -0
  27. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/setup.cfg +0 -0
  28. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/setup.py +0 -0
  29. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/__init__.py +0 -0
  30. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/api/__init__.py +0 -0
  31. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/api/interfaces/README.rst +0 -0
  32. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/api/interfaces/__init__.py +0 -0
  33. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/api/interfaces/stream.py +0 -0
  34. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/api/reader/__init__.py +0 -0
  35. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/api/reader/read_wells.py +0 -0
  36. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/__init__.py +0 -0
  37. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/geological_formats/__init__.py +0 -0
  38. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/geological_formats/boreholes/__init__.py +0 -0
  39. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/geological_formats/boreholes/_combine_trajectories.py +0 -0
  40. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/geological_formats/boreholes/_map_attrs_to_survey.py +0 -0
  41. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/geological_formats/boreholes/_survey_to_unstruct.py +0 -0
  42. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/geological_formats/boreholes/boreholes.py +0 -0
  43. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/geological_formats/boreholes/collars.py +0 -0
  44. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/geological_formats/boreholes/survey.py +0 -0
  45. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/geological_formats/fault.py +0 -0
  46. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/reader_helpers/__init__.py +0 -0
  47. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/reader_helpers/reader_unstruct.py +0 -0
  48. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/reader_helpers/readers_data.py +0 -0
  49. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/reader_helpers/readers_wells.py +0 -0
  50. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/structs/README.rst +0 -0
  51. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/structs/__init__.py +0 -0
  52. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/structs/base_structures/__init__.py +0 -0
  53. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/structs/base_structures/_aux.py +0 -0
  54. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/structs/base_structures/_liquid_earth_mesh.py +0 -0
  55. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/structs/base_structures/_unstructured_data_constructor.py +0 -0
  56. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/structs/base_structures/base_structures_enum.py +0 -0
  57. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/structs/base_structures/structured_data.py +0 -0
  58. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/structs/structured_elements/__init__.py +0 -0
  59. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/structs/structured_elements/octree_mesh.py +0 -0
  60. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/structs/structured_elements/structured_grid.py +0 -0
  61. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/structs/structured_elements/structured_mesh.py +0 -0
  62. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/structs/unstructured_elements/__init__.py +0 -0
  63. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/structs/unstructured_elements/line_set.py +0 -0
  64. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/structs/unstructured_elements/point_set.py +0 -0
  65. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/structs/unstructured_elements/tetrahedron_mesh.py +0 -0
  66. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/structs/unstructured_elements/triangular_surface.py +0 -0
  67. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/utils/__init__.py +0 -0
  68. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/core/utils/utils_core.py +0 -0
  69. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/__init__.py +0 -0
  70. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/README.rst +0 -0
  71. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/__init__.py +0 -0
  72. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/faults/__init__.py +0 -0
  73. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/faults/faults.py +0 -0
  74. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/from_binary.py +0 -0
  75. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/geo_object/__init__.py +0 -0
  76. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/mesh/NOTES.md +0 -0
  77. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/mesh/_GOCAD_mesh.py +0 -0
  78. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/mesh/__init__.py +0 -0
  79. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/mesh/_trimesh_reader.py +0 -0
  80. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/mesh/csv_mesh_reader.py +0 -0
  81. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/mesh/dxf_reader.py +0 -0
  82. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/mesh/glb_reader.py +0 -0
  83. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/mesh/mx_reader.py +0 -0
  84. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/mesh/obj_reader.py +0 -0
  85. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/mesh/omf_mesh_reader.py +0 -0
  86. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/mesh/surface_reader.py +0 -0
  87. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/mesh/surfaces_api.py +0 -0
  88. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/petrel/__init__.py +0 -0
  89. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/profiles/__init__.py +0 -0
  90. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/profiles/profiles_core.py +0 -0
  91. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/read_netcdf.py +0 -0
  92. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/topography/__init__.py +0 -0
  93. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/topography/topo_core.py +0 -0
  94. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/volume/__init__.py +0 -0
  95. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/volume/read_grav3d.py +0 -0
  96. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/volume/segy_reader.py +0 -0
  97. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/volume/seismic.py +0 -0
  98. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/volume/volume_utils.py +0 -0
  99. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/wells/DEP/__init__.py +0 -0
  100. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/wells/DEP/_well_files_reader.py +0 -0
  101. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/wells/DEP/_wells_api.py +0 -0
  102. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/wells/DEP/_welly_reader.py +0 -0
  103. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/wells/DEP/pandas_to_welly.py +0 -0
  104. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/wells/README.rst +0 -0
  105. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/wells/__init__.py +0 -0
  106. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/wells/_read_to_df.py +0 -0
  107. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/wells/read_borehole_interface.py +0 -0
  108. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/reader/wells/wells_utils.py +0 -0
  109. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/tools/__init__.py +0 -0
  110. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/tools/mocking_aux.py +0 -0
  111. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/visualization/__init__.py +0 -0
  112. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/visualization/to_pyvista.py +0 -0
  113. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/writer/__init__.py +0 -0
  114. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/writer/to_binary.py +0 -0
  115. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/writer/to_liquid_earth/__init__.py +0 -0
  116. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/writer/to_rex/__init__.py +0 -0
  117. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/writer/to_rex/common.py +0 -0
  118. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/writer/to_rex/data_struct.py +0 -0
  119. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/writer/to_rex/doc/rex-spec-v1.md +0 -0
  120. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/writer/to_rex/doc/right-handed.png +0 -0
  121. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/writer/to_rex/doc/sketchup_example.jpg +0 -0
  122. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/writer/to_rex/gempy_to_rexfile.py +0 -0
  123. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/writer/to_rex/material_encoder.py +0 -0
  124. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/writer/to_rex/mesh_encoder.py +0 -0
  125. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/writer/to_rex/to_rex.py +0 -0
  126. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/modules/writer/to_rex/utils.py +0 -0
  127. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface/optional_requirements.py +0 -0
  128. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface_terra.egg-info/SOURCES.txt +0 -0
  129. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface_terra.egg-info/dependency_links.txt +0 -0
  130. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface_terra.egg-info/not-zip-safe +0 -0
  131. {subsurface_terra-2025.1.0rc17 → subsurface_terra-2025.1.0rc19}/subsurface_terra.egg-info/top_level.txt +0 -0
@@ -32,11 +32,13 @@
32
32
  <param name="env.PATH_TO_OMF" value="%env.TERRA_PATH_DEVOPS%/combined/Leapfrog_OMF/Collinstown.omf" />
33
33
  <param name="env.PATH_TO_SECTION" value="%env.TERRA_PATH_DEVOPS%/meshes/Seismic/L1_CDP-Coords.txt" />
34
34
  <param name="env.PATH_TO_SEISMIC" value="%env.TERRA_PATH_DEVOPS%/meshes/Seismic/Linie01.segy" />
35
+ <param name="env.PATH_TO_SEISMIC_3D" value="%env.TERRA_PATH_DEVOPS%/volume/3D-SPRB-11-depth-converted.segy" />
35
36
  <param name="env.PATH_TO_SEISMIC_FINAL" value="%env.TERRA_PATH_DEVOPS%/meshes/Seismic/L1_final-mig.sgy" />
36
37
  <param name="env.PATH_TO_SPREMBERG_ASSAY" value="%env.TERRA_PATH_DEVOPS%/boreholes/Spremberg/Spremberg_assay.csv" />
37
38
  <param name="env.PATH_TO_SPREMBERG_COLLAR" value="%env.TERRA_PATH_DEVOPS%/boreholes/Spremberg/Spremberg_collar_updated.csv" />
38
39
  <param name="env.PATH_TO_SPREMBERG_STRATIGRAPHY" value="%env.TERRA_PATH_DEVOPS%/boreholes/Spremberg/Spremberg_stratigraphy.csv" />
39
40
  <param name="env.PATH_TO_SPREMBERG_SURVEY" value="%env.TERRA_PATH_DEVOPS%/boreholes/Spremberg/Spremberg_survey.csv" />
41
+ <param name="env.PATH_TO_VOLUME_NUMPY" value="%env.TERRA_PATH_DEVOPS%/volume/numpy/" />
40
42
  <param name="env.PATH_TO_WEISWEILER" value="%env.TERRA_PATH_DEVOPS%/meshes/Weisweiler/" />
41
43
  <param name="env.TERRA_PATH_DEVOPS" value="/home/leguark/DevOps/DevOps/SubsurfaceTestData/" />
42
44
  </parameters>
@@ -119,6 +121,21 @@ pip install --verbose -r requirements/requirements_wells.txt
119
121
  export REQUIREMENT_LEVEL="${REQUIREMENT_LEVEL:-READ_WELL}"
120
122
  echo "REQUIREMENT_LEVEL is ${REQUIREMENT_LEVEL}"
121
123
 
124
+ python -m pytest --teamcity -v]]></param>
125
+ <param name="teamcity.step.mode" value="execute_if_failed" />
126
+ <param name="use.custom.script" value="true" />
127
+ </parameters>
128
+ </runner>
129
+ <runner id="Run_Test_Volumes" name="Run Test: Volume" type="simpleRunner">
130
+ <parameters>
131
+ <param name="script.content"><![CDATA[set -euo pipefail
132
+ source venv/bin/activate
133
+
134
+ pip install --verbose -r requirements/requirements_volume.txt
135
+
136
+ export REQUIREMENT_LEVEL="${REQUIREMENT_LEVEL:-READ_VOLUME}"
137
+ echo "REQUIREMENT_LEVEL is ${REQUIREMENT_LEVEL}"
138
+
122
139
  python -m pytest --teamcity -v]]></param>
123
140
  <param name="teamcity.step.mode" value="execute_if_failed" />
124
141
  <param name="use.custom.script" value="true" />
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: subsurface_terra
3
- Version: 2025.1.0rc17
3
+ Version: 2025.1.0rc19
4
4
  Summary: Subsurface data types and utilities. This version is the one used by Terranigma Solutions. Please feel free to take anything in this repository for the original one.
5
5
  Home-page: https://softwareunderground.github.io/subsurface
6
6
  Author: Software Underground
@@ -45,6 +45,7 @@ Requires-Dist: pdf2image; extra == "opt"
45
45
  Requires-Dist: imagecodecs; extra == "opt"
46
46
  Requires-Dist: segyio; extra == "opt"
47
47
  Requires-Dist: segyio; extra == "opt"
48
+ Requires-Dist: segysak; extra == "opt"
48
49
  Requires-Dist: imageio; extra == "opt"
49
50
  Requires-Dist: scipy; extra == "opt"
50
51
  Requires-Dist: geopandas; extra == "opt"
@@ -85,6 +86,7 @@ Requires-Dist: pdf2image; extra == "all"
85
86
  Requires-Dist: imagecodecs; extra == "all"
86
87
  Requires-Dist: segyio; extra == "all"
87
88
  Requires-Dist: segyio; extra == "all"
89
+ Requires-Dist: segysak; extra == "all"
88
90
  Requires-Dist: imageio; extra == "all"
89
91
  Requires-Dist: scipy; extra == "all"
90
92
  Requires-Dist: geopandas; extra == "all"
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '2025.1.0rc17'
32
- __version_tuple__ = version_tuple = (2025, 1, 0, 'rc17')
31
+ __version__ = version = '2025.1.0rc19'
32
+ __version_tuple__ = version_tuple = (2025, 1, 0, 'rc19')
33
33
 
34
- __commit_id__ = commit_id = 'g55a3a27a3'
34
+ __commit_id__ = commit_id = 'ga7bce77b0'
@@ -278,15 +278,27 @@ class UnstructuredData:
278
278
  return file
279
279
 
280
280
  def _set_binary_header(self):
281
+ from subsurface.core.structs.base_structures._aux import safe_convert_to_float32
282
+
283
+ # Get the filtered dataframes (same as in _to_bytearray)
284
+ filtered_cell_attrs = safe_convert_to_float32(
285
+ self.attributes,
286
+ error_handling='drop'
287
+ )
288
+ filtered_vertex_attrs = safe_convert_to_float32(
289
+ self.points_attributes,
290
+ error_handling='drop'
291
+ )
292
+
281
293
  header = {
282
294
  "vertex_shape" : self.vertex.shape,
283
295
  "cell_shape" : self.cells.shape,
284
- "cell_attr_shape" : self.attributes.shape,
285
- "vertex_attr_shape": self.points_attributes.shape,
286
- "cell_attr_names" : self.attributes.columns.to_list(),
287
- "cell_attr_types" : self.attributes.dtypes.astype(str).to_list(),
288
- "vertex_attr_names": self.points_attributes.columns.to_list(),
289
- "vertex_attr_types": self.attributes.dtypes.astype(str).to_list(),
296
+ "cell_attr_shape" : filtered_cell_attrs.shape,
297
+ "vertex_attr_shape": filtered_vertex_attrs.shape,
298
+ "cell_attr_names" : filtered_cell_attrs.columns.to_list(),
299
+ "cell_attr_types" : filtered_cell_attrs.dtypes.astype(str).to_list(),
300
+ "vertex_attr_names": filtered_vertex_attrs.columns.to_list(),
301
+ "vertex_attr_types": filtered_vertex_attrs.dtypes.astype(str).to_list(),
290
302
  "xarray_attrs" : self.data.attrs
291
303
  }
292
304
  return header
@@ -35,7 +35,7 @@ def read_VTK_structured_grid(file_or_buffer: Union[str, BytesIO], active_scalars
35
35
  try:
36
36
  pyvista_struct: pv.ExplicitStructuredGrid = pv_cast_to_explicit_structured_grid(pyvista_obj)
37
37
  except Exception as e:
38
- raise f"The file is not a structured grid: {e}"
38
+ raise ValueError(f"The file is not a structured grid: {e}")
39
39
 
40
40
  if PLOT := False:
41
41
  pyvista_struct.set_active_scalars(active_scalars)
@@ -301,16 +301,20 @@ def __validate_rectilinear_to_explicit_conversion(rectl_grid, explicit_grid, *,
301
301
  if explicit_grid.n_cells != expected_cells:
302
302
  raise ValueError(f"Cell count mismatch: explicit {explicit_grid.n_cells} vs expected {expected_cells}")
303
303
 
304
- expected_points = nx * ny * nz
305
- if explicit_grid.n_points != expected_points:
306
- raise ValueError(f"Point count mismatch: explicit {explicit_grid.n_points} vs expected {expected_points}")
304
+ # Accept either nodes (M) or corners (N) for n_points, depending on PyVista/VTK version
305
+ M = nx * ny * nz
306
+ N = (2 * (nx - 1)) * (2 * (ny - 1)) * (2 * (nz - 1))
307
+ if explicit_grid.n_points not in (M, N):
308
+ raise ValueError(
309
+ f"Point count unexpected: explicit {explicit_grid.n_points}; expected either nodes {M} or corners {N}"
310
+ )
307
311
 
308
312
  # bounds
309
313
  if not np.allclose(explicit_grid.bounds, rectl_grid.bounds, rtol=rtol, atol=atol):
310
314
  raise ValueError(f"Bounds differ: explicit {explicit_grid.bounds} vs rect {rectl_grid.bounds}")
311
315
 
312
- # axis coordinates (order-independent)
313
- pts = explicit_grid.points # shape (M,3), M = nx*ny*nz (already deduped/sorted by unique)
316
+ # axis coordinates (order-independent, light memory use: 1D uniques per axis)
317
+ pts = explicit_grid.points # may be M×3 (unique nodes) or N×3 (corner lattice)
314
318
  x_exp = np.unique(pts[:, 0])
315
319
  y_exp = np.unique(pts[:, 1])
316
320
  z_exp = np.unique(pts[:, 2])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: subsurface_terra
3
- Version: 2025.1.0rc17
3
+ Version: 2025.1.0rc19
4
4
  Summary: Subsurface data types and utilities. This version is the one used by Terranigma Solutions. Please feel free to take anything in this repository for the original one.
5
5
  Home-page: https://softwareunderground.github.io/subsurface
6
6
  Author: Software Underground
@@ -45,6 +45,7 @@ Requires-Dist: pdf2image; extra == "opt"
45
45
  Requires-Dist: imagecodecs; extra == "opt"
46
46
  Requires-Dist: segyio; extra == "opt"
47
47
  Requires-Dist: segyio; extra == "opt"
48
+ Requires-Dist: segysak; extra == "opt"
48
49
  Requires-Dist: imageio; extra == "opt"
49
50
  Requires-Dist: scipy; extra == "opt"
50
51
  Requires-Dist: geopandas; extra == "opt"
@@ -85,6 +86,7 @@ Requires-Dist: pdf2image; extra == "all"
85
86
  Requires-Dist: imagecodecs; extra == "all"
86
87
  Requires-Dist: segyio; extra == "all"
87
88
  Requires-Dist: segyio; extra == "all"
89
+ Requires-Dist: segysak; extra == "all"
88
90
  Requires-Dist: imageio; extra == "all"
89
91
  Requires-Dist: scipy; extra == "all"
90
92
  Requires-Dist: geopandas; extra == "all"
@@ -19,6 +19,7 @@ tifffile
19
19
  pdf2image
20
20
  imagecodecs
21
21
  segyio
22
+ segysak
22
23
  scipy
23
24
  geopandas
24
25
  rasterio
@@ -63,6 +64,7 @@ tifffile
63
64
  pdf2image
64
65
  imagecodecs
65
66
  segyio
67
+ segysak
66
68
  scipy
67
69
  geopandas
68
70
  pooch