subsurface-terra 2025.1.0rc8__tar.gz → 2025.1.0rc10__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 (118) hide show
  1. {subsurface_terra-2025.1.0rc8/subsurface_terra.egg-info → subsurface_terra-2025.1.0rc10}/PKG-INFO +1 -1
  2. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/_version.py +1 -1
  3. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/mesh/mx_reader.py +2 -1
  4. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/volume/read_volume.py +70 -1
  5. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10/subsurface_terra.egg-info}/PKG-INFO +1 -1
  6. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/.env.example +0 -0
  7. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/LICENSE +0 -0
  8. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/README.rst +0 -0
  9. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/requirements/requirements.txt +0 -0
  10. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/requirements/requirements_all.txt +0 -0
  11. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/requirements/requirements_dev.txt +0 -0
  12. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/requirements/requirements_geospatial.txt +0 -0
  13. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/requirements/requirements_mesh.txt +0 -0
  14. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/requirements/requirements_opt.txt +0 -0
  15. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/requirements/requirements_plot.txt +0 -0
  16. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/requirements/requirements_traces.txt +0 -0
  17. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/requirements/requirements_volume.txt +0 -0
  18. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/requirements/requirements_wells.txt +0 -0
  19. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/setup.cfg +0 -0
  20. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/setup.py +0 -0
  21. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/__init__.py +0 -0
  22. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/api/__init__.py +0 -0
  23. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/api/interfaces/README.rst +0 -0
  24. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/api/interfaces/__init__.py +0 -0
  25. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/api/interfaces/stream.py +0 -0
  26. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/api/reader/__init__.py +0 -0
  27. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/api/reader/read_wells.py +0 -0
  28. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/__init__.py +0 -0
  29. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/geological_formats/__init__.py +0 -0
  30. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/geological_formats/boreholes/__init__.py +0 -0
  31. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/geological_formats/boreholes/_combine_trajectories.py +0 -0
  32. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/geological_formats/boreholes/boreholes.py +0 -0
  33. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/geological_formats/boreholes/collars.py +0 -0
  34. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/geological_formats/boreholes/survey.py +0 -0
  35. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/geological_formats/fault.py +0 -0
  36. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/reader_helpers/__init__.py +0 -0
  37. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/reader_helpers/reader_unstruct.py +0 -0
  38. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/reader_helpers/readers_data.py +0 -0
  39. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/reader_helpers/readers_wells.py +0 -0
  40. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/structs/README.rst +0 -0
  41. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/structs/__init__.py +0 -0
  42. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/structs/base_structures/__init__.py +0 -0
  43. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/structs/base_structures/_liquid_earth_mesh.py +0 -0
  44. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/structs/base_structures/_unstructured_data_constructor.py +0 -0
  45. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/structs/base_structures/base_structures_enum.py +0 -0
  46. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/structs/base_structures/structured_data.py +0 -0
  47. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/structs/base_structures/unstructured_data.py +0 -0
  48. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/structs/structured_elements/__init__.py +0 -0
  49. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/structs/structured_elements/octree_mesh.py +0 -0
  50. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/structs/structured_elements/structured_grid.py +0 -0
  51. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/structs/structured_elements/structured_mesh.py +0 -0
  52. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/structs/unstructured_elements/__init__.py +0 -0
  53. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/structs/unstructured_elements/line_set.py +0 -0
  54. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/structs/unstructured_elements/point_set.py +0 -0
  55. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/structs/unstructured_elements/tetrahedron_mesh.py +0 -0
  56. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/structs/unstructured_elements/triangular_surface.py +0 -0
  57. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/utils/__init__.py +0 -0
  58. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/core/utils/utils_core.py +0 -0
  59. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/__init__.py +0 -0
  60. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/README.rst +0 -0
  61. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/__init__.py +0 -0
  62. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/faults/__init__.py +0 -0
  63. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/faults/faults.py +0 -0
  64. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/from_binary.py +0 -0
  65. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/geo_object/__init__.py +0 -0
  66. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/mesh/NOTES.md +0 -0
  67. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/mesh/_GOCAD_mesh.py +0 -0
  68. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/mesh/__init__.py +0 -0
  69. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/mesh/_trimesh_reader.py +0 -0
  70. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/mesh/csv_mesh_reader.py +0 -0
  71. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/mesh/dxf_reader.py +0 -0
  72. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/mesh/glb_reader.py +0 -0
  73. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/mesh/obj_reader.py +0 -0
  74. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/mesh/omf_mesh_reader.py +0 -0
  75. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/mesh/surface_reader.py +0 -0
  76. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/mesh/surfaces_api.py +0 -0
  77. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/petrel/__init__.py +0 -0
  78. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/profiles/__init__.py +0 -0
  79. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/profiles/profiles_core.py +0 -0
  80. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/read_netcdf.py +0 -0
  81. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/topography/__init__.py +0 -0
  82. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/topography/topo_core.py +0 -0
  83. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/volume/__init__.py +0 -0
  84. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/volume/segy_reader.py +0 -0
  85. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/volume/seismic.py +0 -0
  86. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/volume/volume_utils.py +0 -0
  87. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/wells/DEP/__init__.py +0 -0
  88. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/wells/DEP/_well_files_reader.py +0 -0
  89. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/wells/DEP/_wells_api.py +0 -0
  90. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/wells/DEP/_welly_reader.py +0 -0
  91. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/wells/DEP/pandas_to_welly.py +0 -0
  92. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/wells/README.rst +0 -0
  93. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/wells/__init__.py +0 -0
  94. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/wells/_read_to_df.py +0 -0
  95. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/wells/read_borehole_interface.py +0 -0
  96. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/reader/wells/wells_utils.py +0 -0
  97. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/visualization/__init__.py +0 -0
  98. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/visualization/to_pyvista.py +0 -0
  99. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/writer/__init__.py +0 -0
  100. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/writer/to_binary.py +0 -0
  101. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/writer/to_liquid_earth/__init__.py +0 -0
  102. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/writer/to_rex/__init__.py +0 -0
  103. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/writer/to_rex/common.py +0 -0
  104. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/writer/to_rex/data_struct.py +0 -0
  105. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/writer/to_rex/doc/rex-spec-v1.md +0 -0
  106. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/writer/to_rex/doc/right-handed.png +0 -0
  107. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/writer/to_rex/doc/sketchup_example.jpg +0 -0
  108. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/writer/to_rex/gempy_to_rexfile.py +0 -0
  109. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/writer/to_rex/material_encoder.py +0 -0
  110. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/writer/to_rex/mesh_encoder.py +0 -0
  111. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/writer/to_rex/to_rex.py +0 -0
  112. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/modules/writer/to_rex/utils.py +0 -0
  113. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface/optional_requirements.py +0 -0
  114. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface_terra.egg-info/SOURCES.txt +0 -0
  115. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface_terra.egg-info/dependency_links.txt +0 -0
  116. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface_terra.egg-info/not-zip-safe +0 -0
  117. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/subsurface_terra.egg-info/requires.txt +0 -0
  118. {subsurface_terra-2025.1.0rc8 → subsurface_terra-2025.1.0rc10}/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: 2025.1.0rc8
3
+ Version: 2025.1.0rc10
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
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '2025.1.0rc8'
20
+ __version__ = version = '2025.1.0rc10'
21
21
  __version_tuple__ = version_tuple = (2025, 1, 0)
@@ -157,7 +157,7 @@ def _process_mesh(mesh_lines) -> Optional[GOCADMesh]:
157
157
  continue
158
158
 
159
159
  if in_tface:
160
- if line.startswith('VRTX'):
160
+ if line.startswith('VRTX') or line.startswith('PVRTX'):
161
161
  # Parse vertex line
162
162
  parts = line.split()
163
163
  if len(parts) >= 5:
@@ -167,6 +167,7 @@ def _process_mesh(mesh_lines) -> Optional[GOCADMesh]:
167
167
  vertex_indices.append(vid)
168
168
  vertex_list.append([x, y, z])
169
169
  vid_to_index[vid] = len(vertex_list) - 1
170
+ # If PVRTX then there could be more columns with property values. For now, we are just parsing the vertex coordinates.
170
171
  continue
171
172
  elif line.startswith('ATOM'):
172
173
  # Parse ATOM line
@@ -7,6 +7,7 @@ from subsurface.core.structs import StructuredData
7
7
  from .... import optional_requirements
8
8
  from ....core.structs import UnstructuredData
9
9
  from subsurface.core.reader_helpers.readers_data import GenericReaderFilesHelper
10
+ import numpy as np
10
11
  import pandas as pd
11
12
 
12
13
 
@@ -32,7 +33,7 @@ def read_VTK_structured_grid(file_or_buffer: Union[str, BytesIO], active_scalars
32
33
  # If it's a file path, read directly
33
34
  pyvista_obj = pv.read(file_or_buffer)
34
35
  try:
35
- pyvista_struct: pv.ExplicitStructuredGrid = pyvista_obj.cast_to_explicit_structured_grid()
36
+ pyvista_struct: pv.ExplicitStructuredGrid = pv_cast_to_explicit_structured_grid(pyvista_obj)
36
37
  except Exception as e:
37
38
  raise f"The file is not a structured grid: {e}"
38
39
 
@@ -99,3 +100,71 @@ def read_volumetric_mesh_attr_file(reader_helper: GenericReaderFilesHelper) -> p
99
100
  df = pd.read_table(reader_helper.file_or_buffer, **reader_helper.pandas_reader_kwargs)
100
101
  df.columns = df.columns.astype(str).str.strip()
101
102
  return df
103
+
104
+
105
+ def pv_cast_to_explicit_structured_grid(pyvista_object):
106
+
107
+ pv = optional_requirements.require_pyvista()
108
+
109
+ match pyvista_object:
110
+
111
+ case pv.RectilinearGrid() as rectl_grid:
112
+
113
+ return __pv_convert_rectilinear_to_explicit(rectl_grid)
114
+
115
+ case _:
116
+
117
+ return pyvista_object.cast_to_explicit_structured_grid()
118
+
119
+
120
+ def __pv_convert_rectilinear_to_explicit(rectl_grid):
121
+
122
+ pv = optional_requirements.require_pyvista()
123
+
124
+ # Extract the coordinate arrays from the input RectilinearGrid.
125
+ x = np.asarray(rectl_grid.x)
126
+ y = np.asarray(rectl_grid.y)
127
+ z = np.asarray(rectl_grid.z)
128
+
129
+ # Helper function: "double" the coordinates to produce an expanded set
130
+ # that, when processed internally via np.unique, returns the original nodal values.
131
+ def doubled_coords(arr):
132
+ return np.repeat(arr, 2)[1:-1]
133
+
134
+ # Double the coordinate arrays.
135
+ xcorn = doubled_coords(x)
136
+ ycorn = doubled_coords(y)
137
+ zcorn = doubled_coords(z)
138
+
139
+ # Build a complete grid of corner points via meshgrid. Fortran ('F') order ensures
140
+ # the connectivity ordering aligns with VTK's expectations.
141
+ xx, yy, zz = np.meshgrid(xcorn, ycorn, zcorn, indexing='ij')
142
+ corners = np.column_stack((xx.ravel(order='F'),
143
+ yy.ravel(order='F'),
144
+ zz.ravel(order='F')))
145
+
146
+ # The dimensions to pass to the ExplicitStructuredGrid constructor should be
147
+ # the counts of unique coordinates in each direction.
148
+ dims = (len(np.unique(xcorn)),
149
+ len(np.unique(ycorn)),
150
+ len(np.unique(zcorn)))
151
+
152
+ # Create the ExplicitStructuredGrid.
153
+ explicit_grid = pv.ExplicitStructuredGrid(dims, corners)
154
+ explicit_grid.compute_connectivity()
155
+
156
+ # --- Copy associated data arrays ---
157
+
158
+ # Transfer all cell data arrays.
159
+ for name, array in rectl_grid.cell_data.items():
160
+ explicit_grid.cell_data[name] = array.copy()
161
+
162
+ # Transfer all point data arrays.
163
+ for name, array in rectl_grid.point_data.items():
164
+ explicit_grid.point_data[name] = array.copy()
165
+
166
+ # (Optional) Transfer field data as well.
167
+ for name, array in rectl_grid.field_data.items():
168
+ explicit_grid.field_data[name] = array.copy()
169
+
170
+ return explicit_grid
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: subsurface_terra
3
- Version: 2025.1.0rc8
3
+ Version: 2025.1.0rc10
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