Skip to content

Commit 3d37747

Browse files
committed
ensure non-dim coordinates are compressed
1 parent 4d32b51 commit 3d37747

File tree

5 files changed

+20
-7
lines changed

5 files changed

+20
-7
lines changed

src/mdio/builder/templates/abstract_dataset_template.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -160,22 +160,17 @@ def _add_coordinates(self) -> None:
160160
)
161161

162162
# Add non-dimension coordinates
163-
# TODO(Dmitriy Repin): do chunked write for non-dimensional coordinates and trace_mask
164-
# https://github.com/TGSAI/mdio-python/issues/587
165-
# The chunk size used for trace mask will be different from the _var_chunk_shape
166163
for i in range(len(self._coord_names)):
167164
self._builder.add_coordinate(
168165
self._coord_names[i],
169166
dimensions=self._coord_dim_names,
170167
data_type=ScalarType.FLOAT64,
168+
compressor=compressors.Blosc(cname=compressors.BloscCname.zstd),
171169
metadata=CoordinateMetadata(units_v1=self._horizontal_coord_unit),
172170
)
173171

174172
def _add_trace_mask(self) -> None:
175173
"""Add trace mask variables."""
176-
# TODO(Dmitriy Repin): do chunked write for non-dimensional coordinates and trace_mask
177-
# https://github.com/TGSAI/mdio-python/issues/587
178-
# The chunk size used for trace mask will be different from the _var_chunk_shape
179174
self._builder.add_variable(
180175
name="trace_mask",
181176
dimensions=self._dim_names[:-1], # All dimensions except vertical (the last one)

src/mdio/builder/templates/seismic_2d_prestack_shot.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from typing import Any
44

5+
from mdio.builder.schemas import compressors
56
from mdio.builder.schemas.dtype import ScalarType
67
from mdio.builder.schemas.v1.variable import CoordinateMetadata
78
from mdio.builder.templates.abstract_dataset_template import AbstractDatasetTemplate
@@ -32,33 +33,39 @@ def _add_coordinates(self) -> None:
3233
self._builder.add_coordinate(name, dimensions=(name,), data_type=ScalarType.INT32)
3334

3435
# Add non-dimension coordinates
36+
compressor = compressors.Blosc(cname=compressors.BloscCname.zstd)
3537
coordinate_metadata = CoordinateMetadata(units_v1=self._horizontal_coord_unit)
3638
self._builder.add_coordinate(
3739
"gun",
3840
dimensions=("shot_point",),
3941
data_type=ScalarType.UINT8,
42+
compressor=compressor,
4043
)
4144
self._builder.add_coordinate(
4245
"source_coord_x",
4346
dimensions=("shot_point",),
4447
data_type=ScalarType.FLOAT64,
48+
compressor=compressor,
4549
metadata=coordinate_metadata,
4650
)
4751
self._builder.add_coordinate(
4852
"source_coord_y",
4953
dimensions=("shot_point",),
5054
data_type=ScalarType.FLOAT64,
55+
compressor=compressor,
5156
metadata=coordinate_metadata,
5257
)
5358
self._builder.add_coordinate(
5459
"group_coord_x",
5560
dimensions=("shot_point", "channel"),
5661
data_type=ScalarType.FLOAT64,
62+
compressor=compressor,
5763
metadata=coordinate_metadata,
5864
)
5965
self._builder.add_coordinate(
6066
"group_coord_y",
6167
dimensions=("shot_point", "channel"),
6268
data_type=ScalarType.FLOAT64,
69+
compressor=compressor,
6370
metadata=coordinate_metadata,
6471
)

src/mdio/builder/templates/seismic_3d_prestack_coca.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from typing import Any
44

5+
from mdio.builder.schemas import compressors
56
from mdio.builder.schemas.dtype import ScalarType
67
from mdio.builder.schemas.v1.units import AngleUnitModel
78
from mdio.builder.schemas.v1.variable import CoordinateMetadata
@@ -59,15 +60,18 @@ def _add_coordinates(self) -> None:
5960
)
6061

6162
# Add non-dimension coordinates
63+
compressor = compressors.Blosc(cname=compressors.BloscCname.zstd)
6264
self._builder.add_coordinate(
6365
"cdp_x",
6466
dimensions=("inline", "crossline"),
6567
data_type=ScalarType.FLOAT64,
68+
compressor=compressor,
6669
metadata=CoordinateMetadata(units_v1=self._horizontal_coord_unit),
6770
)
6871
self._builder.add_coordinate(
6972
"cdp_y",
7073
dimensions=("inline", "crossline"),
7174
data_type=ScalarType.FLOAT64,
75+
compressor=compressor,
7276
metadata=CoordinateMetadata(units_v1=self._horizontal_coord_unit),
7377
)

src/mdio/builder/templates/seismic_3d_prestack_shot.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from typing import Any
44

5+
from mdio.builder.schemas import compressors
56
from mdio.builder.schemas.dtype import ScalarType
67
from mdio.builder.schemas.v1.variable import CoordinateMetadata
78
from mdio.builder.templates.abstract_dataset_template import AbstractDatasetTemplate
@@ -32,32 +33,38 @@ def _add_coordinates(self) -> None:
3233
self._builder.add_coordinate(name, dimensions=(name,), data_type=ScalarType.INT32)
3334

3435
# Add non-dimension coordinates
36+
compressor = compressors.Blosc(cname=compressors.BloscCname.zstd)
3537
self._builder.add_coordinate(
3638
"gun",
3739
dimensions=("shot_point",),
3840
data_type=ScalarType.UINT8,
41+
compressor=compressor,
3942
)
4043
self._builder.add_coordinate(
4144
"source_coord_x",
4245
dimensions=("shot_point",),
4346
data_type=ScalarType.FLOAT64,
47+
compressor=compressor,
4448
metadata=CoordinateMetadata(units_v1=self._horizontal_coord_unit),
4549
)
4650
self._builder.add_coordinate(
4751
"source_coord_y",
4852
dimensions=("shot_point",),
4953
data_type=ScalarType.FLOAT64,
54+
compressor=compressor,
5055
metadata=CoordinateMetadata(units_v1=self._horizontal_coord_unit),
5156
)
5257
self._builder.add_coordinate(
5358
"group_coord_x",
5459
dimensions=("shot_point", "cable", "channel"),
5560
data_type=ScalarType.FLOAT64,
61+
compressor=compressor,
5662
metadata=CoordinateMetadata(units_v1=self._horizontal_coord_unit),
5763
)
5864
self._builder.add_coordinate(
5965
"group_coord_y",
6066
dimensions=("shot_point", "cable", "channel"),
6167
data_type=ScalarType.FLOAT64,
68+
compressor=compressor,
6269
metadata=CoordinateMetadata(units_v1=self._horizontal_coord_unit),
6370
)

src/mdio/core/utils_write.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111

1212
MAX_SIZE_LIVE_MASK = 128 * 1024**2
13-
MAX_COORDINATES_BYTES = 16 * 1024**2
13+
MAX_COORDINATES_BYTES = 8 * 1024**2
1414

1515

1616
def get_constrained_chunksize(

0 commit comments

Comments
 (0)