subsurface-terra 2026.1.2rc0__tar.gz → 2026.1.2rc1__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-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/PKG-INFO +1 -1
  2. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/_version.py +3 -3
  3. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/geological_formats/boreholes/_survey_to_unstruct.py +7 -4
  4. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/topography/topo_core.py +43 -17
  5. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface_terra.egg-info/PKG-INFO +1 -1
  6. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/.env.example +0 -0
  7. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/.teamcity/Subsurface/buildTypes/Subsurface_ReleaseSubsurface.xml +0 -0
  8. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/.teamcity/Subsurface/buildTypes/Subsurface_ReleaseSubsurface_2.xml +0 -0
  9. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/.teamcity/Subsurface/buildTypes/Subsurface_Testing.xml +0 -0
  10. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/.teamcity/Subsurface/project-config.xml +0 -0
  11. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/.teamcity/Subsurface/vcsRoots/Subsurface_HttpsGithubComTerranigmaSolutionsSubsurfaceRefsHeadsMain.xml +0 -0
  12. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/.teamcity/Subsurface/vcsRoots/Subsurface_HttpsGithubComTerranigmaSolutionsSubsurfaceRefsHeadsMain1.xml +0 -0
  13. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/.teamcity/Subsurface/vcsRoots/Subsurface_HttpsGithubComTerranigmaSolutionsSubsurfaceRefsHeadsMain2.xml +0 -0
  14. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/LICENSE +0 -0
  15. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/README.rst +0 -0
  16. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/requirements/requirements.txt +0 -0
  17. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/requirements/requirements_all.txt +0 -0
  18. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/requirements/requirements_dev.txt +0 -0
  19. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/requirements/requirements_geospatial.txt +0 -0
  20. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/requirements/requirements_mesh.txt +0 -0
  21. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/requirements/requirements_opt.txt +0 -0
  22. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/requirements/requirements_plot.txt +0 -0
  23. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/requirements/requirements_traces.txt +0 -0
  24. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/requirements/requirements_volume.txt +0 -0
  25. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/requirements/requirements_wells.txt +0 -0
  26. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/setup.cfg +0 -0
  27. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/setup.py +0 -0
  28. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/__init__.py +0 -0
  29. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/api/__init__.py +0 -0
  30. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/api/interfaces/README.rst +0 -0
  31. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/api/interfaces/__init__.py +0 -0
  32. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/api/interfaces/stream.py +0 -0
  33. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/api/reader/__init__.py +0 -0
  34. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/api/reader/read_wells.py +0 -0
  35. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/__init__.py +0 -0
  36. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/geological_formats/__init__.py +0 -0
  37. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/geological_formats/boreholes/__init__.py +0 -0
  38. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/geological_formats/boreholes/_combine_trajectories.py +0 -0
  39. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/geological_formats/boreholes/_map_attrs_to_survey.py +0 -0
  40. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/geological_formats/boreholes/boreholes.py +0 -0
  41. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/geological_formats/boreholes/collars.py +0 -0
  42. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/geological_formats/boreholes/survey.py +0 -0
  43. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/geological_formats/fault.py +0 -0
  44. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/reader_helpers/__init__.py +0 -0
  45. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/reader_helpers/reader_unstruct.py +0 -0
  46. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/reader_helpers/readers_data.py +0 -0
  47. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/reader_helpers/readers_wells.py +0 -0
  48. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/structs/README.rst +0 -0
  49. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/structs/__init__.py +0 -0
  50. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/structs/base_structures/__init__.py +0 -0
  51. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/structs/base_structures/_aux.py +0 -0
  52. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/structs/base_structures/_liquid_earth_mesh.py +0 -0
  53. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/structs/base_structures/_unstructured_data_constructor.py +0 -0
  54. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/structs/base_structures/base_structures_enum.py +0 -0
  55. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/structs/base_structures/structured_data.py +0 -0
  56. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/structs/base_structures/unstructured_data.py +0 -0
  57. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/structs/structured_elements/__init__.py +0 -0
  58. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/structs/structured_elements/octree_mesh.py +0 -0
  59. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/structs/structured_elements/structured_grid.py +0 -0
  60. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/structs/structured_elements/structured_mesh.py +0 -0
  61. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/structs/unstructured_elements/__init__.py +0 -0
  62. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/structs/unstructured_elements/line_set.py +0 -0
  63. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/structs/unstructured_elements/point_set.py +0 -0
  64. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/structs/unstructured_elements/tetrahedron_mesh.py +0 -0
  65. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/structs/unstructured_elements/triangular_surface.py +0 -0
  66. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/utils/__init__.py +0 -0
  67. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/core/utils/utils_core.py +0 -0
  68. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/__init__.py +0 -0
  69. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/README.rst +0 -0
  70. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/__init__.py +0 -0
  71. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/faults/__init__.py +0 -0
  72. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/faults/faults.py +0 -0
  73. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/from_binary.py +0 -0
  74. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/geo_object/__init__.py +0 -0
  75. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/mesh/NOTES.md +0 -0
  76. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/mesh/_GOCAD_mesh.py +0 -0
  77. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/mesh/__init__.py +0 -0
  78. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/mesh/_trimesh_reader.py +0 -0
  79. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/mesh/csv_mesh_reader.py +0 -0
  80. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/mesh/dxf_reader.py +0 -0
  81. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/mesh/glb_reader.py +0 -0
  82. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/mesh/mx_reader.py +0 -0
  83. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/mesh/obj_reader.py +0 -0
  84. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/mesh/omf_mesh_reader.py +0 -0
  85. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/mesh/surface_reader.py +0 -0
  86. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/mesh/surfaces_api.py +0 -0
  87. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/petrel/__init__.py +0 -0
  88. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/profiles/__init__.py +0 -0
  89. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/profiles/profiles_core.py +0 -0
  90. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/read_netcdf.py +0 -0
  91. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/topography/__init__.py +0 -0
  92. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/volume/__init__.py +0 -0
  93. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/volume/read_grav3d.py +0 -0
  94. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/volume/read_volume.py +0 -0
  95. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/volume/segy_reader.py +0 -0
  96. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/volume/seismic.py +0 -0
  97. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/volume/volume_utils.py +0 -0
  98. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/wells/DEP/__init__.py +0 -0
  99. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/wells/DEP/_well_files_reader.py +0 -0
  100. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/wells/DEP/_wells_api.py +0 -0
  101. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/wells/DEP/_welly_reader.py +0 -0
  102. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/wells/DEP/pandas_to_welly.py +0 -0
  103. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/wells/README.rst +0 -0
  104. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/wells/__init__.py +0 -0
  105. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/wells/_read_to_df.py +0 -0
  106. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/wells/read_borehole_interface.py +0 -0
  107. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/reader/wells/wells_utils.py +0 -0
  108. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/tools/__init__.py +0 -0
  109. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/tools/mocking_aux.py +0 -0
  110. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/visualization/__init__.py +0 -0
  111. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/visualization/to_pyvista.py +0 -0
  112. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/writer/__init__.py +0 -0
  113. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/writer/to_binary.py +0 -0
  114. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/writer/to_liquid_earth/__init__.py +0 -0
  115. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/writer/to_rex/__init__.py +0 -0
  116. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/writer/to_rex/common.py +0 -0
  117. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/writer/to_rex/data_struct.py +0 -0
  118. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/writer/to_rex/doc/rex-spec-v1.md +0 -0
  119. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/writer/to_rex/doc/right-handed.png +0 -0
  120. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/writer/to_rex/doc/sketchup_example.jpg +0 -0
  121. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/writer/to_rex/gempy_to_rexfile.py +0 -0
  122. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/writer/to_rex/material_encoder.py +0 -0
  123. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/writer/to_rex/mesh_encoder.py +0 -0
  124. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/writer/to_rex/to_rex.py +0 -0
  125. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/modules/writer/to_rex/utils.py +0 -0
  126. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface/optional_requirements.py +0 -0
  127. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface_terra.egg-info/SOURCES.txt +0 -0
  128. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface_terra.egg-info/dependency_links.txt +0 -0
  129. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface_terra.egg-info/not-zip-safe +0 -0
  130. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface_terra.egg-info/requires.txt +0 -0
  131. {subsurface_terra-2026.1.2rc0 → subsurface_terra-2026.1.2rc1}/subsurface_terra.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: subsurface_terra
3
- Version: 2026.1.2rc0
3
+ Version: 2026.1.2rc1
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
@@ -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 = '2026.1.2rc0'
32
- __version_tuple__ = version_tuple = (2026, 1, 2, 'rc0')
31
+ __version__ = version = '2026.1.2rc1'
32
+ __version_tuple__ = version_tuple = (2026, 1, 2, 'rc1')
33
33
 
34
- __commit_id__ = commit_id = 'g4cf8ada86'
34
+ __commit_id__ = commit_id = 'g7216f7b42'
@@ -47,7 +47,10 @@ def data_frame_to_unstructured_data(survey_df: 'pd.DataFrame', number_nodes: int
47
47
 
48
48
  this_well_vertex = np.vstack([pos.easting, pos.northing, pos.depth]).T
49
49
  cum_vertex = np.vstack([cum_vertex, this_well_vertex])
50
- measured_depths = _calculate_distances(array_of_vertices=this_well_vertex)
50
+ measured_depths = _calculate_distances(
51
+ array_of_vertices=this_well_vertex,
52
+ start_md = depths[0]
53
+ )
51
54
 
52
55
  n_vertex_shift_0 = np.arange(0, len(pos.depth) - 1, dtype=np.int_)
53
56
  n_vertex_shift_1 = np.arange(1, len(pos.depth), dtype=np.int_)
@@ -152,12 +155,12 @@ def _grab_depths_from_attr(
152
155
  return attr_depths
153
156
 
154
157
 
155
- def _calculate_distances(array_of_vertices: np.ndarray) -> np.ndarray:
158
+ def _calculate_distances(array_of_vertices: np.ndarray, start_md: float = 0) -> np.ndarray:
156
159
  # Calculate the differences between consecutive points
157
160
  differences = np.diff(array_of_vertices, axis=0)
158
161
 
159
162
  # Calculate the Euclidean distance for each pair of consecutive points
160
163
  distances = np.linalg.norm(differences, axis=1)
161
- # Insert a 0 at the beginning to represent the starting point at the surface
162
- measured_depths = np.insert(np.cumsum(distances), 0, 0)
164
+ # Start from start_md instead of 0
165
+ measured_depths = np.insert(np.cumsum(distances) + start_md, 0, start_md)
163
166
  return measured_depths
@@ -11,7 +11,7 @@ from ....core.reader_helpers.reader_unstruct import ReaderUnstructuredHelper
11
11
  from ..mesh.surfaces_api import read_2d_mesh_to_unstruct
12
12
 
13
13
 
14
- def read_structured_topography(path, crop_to_extent: Optional[Sequence]=None) -> StructuredData:
14
+ def read_structured_topography(path, crop_to_extent: Optional[Sequence] = None) -> StructuredData:
15
15
  rasterio = require_rasterio()
16
16
 
17
17
  extension = get_extension(path)
@@ -31,8 +31,34 @@ def read_structured_topography_to_unstructured(path) -> UnstructuredData:
31
31
  return topography_to_unstructured_data(structured_data)
32
32
 
33
33
 
34
- def rasterio_dataset_to_structured_data(dataset, crop_to_extent: Optional[Sequence]=None):
35
- if crop_to_extent is not None:
34
+ def rasterio_dataset_to_structured_data(dataset, crop_to_extent: Optional[Sequence] = None):
35
+ rasterio = require_rasterio()
36
+
37
+ if crop_to_extent is not None:
38
+ window = _get_raster_window(crop_to_extent, dataset)
39
+ else:
40
+ window = None
41
+
42
+ data = dataset.read(1, window=window)
43
+ data = np.fliplr(data.T)
44
+ shape = data.shape
45
+
46
+ # Use window bounds if cropping, otherwise use full dataset bounds
47
+ if window is not None:
48
+ left, bottom, right, top = rasterio.windows.bounds(window, dataset.transform)
49
+ else:
50
+ left, bottom, right, top = dataset.bounds.left, dataset.bounds.bottom, dataset.bounds.right, dataset.bounds.top
51
+
52
+ coords = {
53
+ 'x': np.linspace(left, right, shape[0]),
54
+ 'y': np.linspace(bottom, top, shape[1])
55
+ }
56
+ structured_data = StructuredData.from_numpy(data, data_array_name='topography', coords=coords)
57
+ return structured_data
58
+
59
+
60
+ def rasterio_dataset_to_structured_data_(dataset, crop_to_extent: Optional[Sequence] = None):
61
+ if crop_to_extent is not None:
36
62
  window = _get_raster_window(crop_to_extent, dataset)
37
63
  else:
38
64
  window = None
@@ -40,30 +66,30 @@ def rasterio_dataset_to_structured_data(dataset, crop_to_extent: Optional[Sequen
40
66
  data = dataset.read(1, window=window)
41
67
  data = np.fliplr(data.T)
42
68
  shape = data.shape
43
-
69
+
44
70
  # TODO: ===================
45
71
  # TODO: Add the option to crop
46
72
  # TODO: Resample
47
-
73
+
48
74
  coords = {
49
- 'x': np.linspace(
50
- dataset.bounds.left,
51
- dataset.bounds.right,
52
- shape[0]
53
- ),
54
- 'y': np.linspace(
55
- dataset.bounds.bottom,
56
- dataset.bounds.top,
57
- shape[1]
58
- )
75
+ 'x': np.linspace(
76
+ dataset.bounds.left,
77
+ dataset.bounds.right,
78
+ shape[0]
79
+ ),
80
+ 'y': np.linspace(
81
+ dataset.bounds.bottom,
82
+ dataset.bounds.top,
83
+ shape[1]
84
+ )
59
85
  }
60
86
  structured_data = StructuredData.from_numpy(data, data_array_name='topography', coords=coords)
61
87
  return structured_data
62
88
 
63
89
 
64
- def read_unstructured_topography(path, additional_reader_kwargs: Optional[dict]=None) -> UnstructuredData:
90
+ def read_unstructured_topography(path, additional_reader_kwargs: Optional[dict] = None) -> UnstructuredData:
65
91
  """For example, a dxf file"""
66
-
92
+
67
93
  additional_reader_kwargs = additional_reader_kwargs or {}
68
94
  helper = GenericReaderFilesHelper(
69
95
  file_or_buffer=path,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: subsurface_terra
3
- Version: 2026.1.2rc0
3
+ Version: 2026.1.2rc1
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