Skip to content

Commit 9b20936

Browse files
authored
Remove CalculateCable grid override (#697)
* Remove CalculateCable grid override * Re-remove ChannelWrap added back by merge resolutions * Satisfy pre-commit
1 parent 1dccbc5 commit 9b20936

File tree

3 files changed

+0
-86
lines changed

3 files changed

+0
-86
lines changed

src/mdio/commands/segy.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,6 @@ def segy_import( # noqa: PLR0913
257257
--header-names shot,cable,chan
258258
--header-types int32,None,int32
259259
--chunk-size 8,2,256,512
260-
--grid-overrides '{"CalculateCable": True}'
261260
262261
\b
263262
No grid overrides are necessary for shot gathers with channel numbers and wrapped channels.

src/mdio/segy/geometry.py

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import numpy as np
1414
from numpy.lib import recfunctions as rfn
1515

16-
from mdio.segy.exceptions import GridOverrideIncompatibleError
1716
from mdio.segy.exceptions import GridOverrideKeysError
1817
from mdio.segy.exceptions import GridOverrideMissingParameterError
1918
from mdio.segy.exceptions import GridOverrideUnknownError
@@ -371,9 +370,6 @@ class DuplicateIndex(GridOverrideCommand):
371370

372371
def validate(self, index_headers: HeaderArray, grid_overrides: dict[str, bool | int]) -> None:
373372
"""Validate if this transform should run on the type of data."""
374-
if "CalculateCable" in grid_overrides:
375-
raise GridOverrideIncompatibleError(self.name, "CalculateCable")
376-
377373
if self.required_keys is not None:
378374
self.check_required_keys(index_headers)
379375
self.check_required_params(grid_overrides)
@@ -431,9 +427,6 @@ class AutoChannelWrap(GridOverrideCommand):
431427

432428
def validate(self, index_headers: HeaderArray, grid_overrides: dict[str, bool | int]) -> None:
433429
"""Validate if this transform should run on the type of data."""
434-
if "CalculateCable" in grid_overrides:
435-
raise GridOverrideIncompatibleError(self.name, "CalculateCable")
436-
437430
self.check_required_keys(index_headers)
438431
self.check_required_params(grid_overrides)
439432

@@ -463,34 +456,6 @@ def transform(
463456
return index_headers
464457

465458

466-
class CalculateCable(GridOverrideCommand):
467-
"""Calculate cable numbers from unwrapped channels."""
468-
469-
required_keys = {"shot_point", "cable", "channel"}
470-
required_parameters = {"ChannelsPerCable"}
471-
472-
def validate(self, index_headers: HeaderArray, grid_overrides: dict[str, bool | int]) -> None:
473-
"""Validate if this transform should run on the type of data."""
474-
if "AutoChannelWrap" in grid_overrides:
475-
raise GridOverrideIncompatibleError(self.name, "AutoCableChannel")
476-
477-
self.check_required_keys(index_headers)
478-
self.check_required_params(grid_overrides)
479-
480-
def transform(
481-
self,
482-
index_headers: HeaderArray,
483-
grid_overrides: dict[str, bool | int],
484-
) -> NDArray:
485-
"""Perform the grid transform."""
486-
self.validate(index_headers, grid_overrides)
487-
488-
channels_per_cable = grid_overrides["ChannelsPerCable"]
489-
index_headers["cable"] = (index_headers["channel"] - 1) // channels_per_cable + 1
490-
491-
return index_headers
492-
493-
494459
class AutoShotWrap(GridOverrideCommand):
495460
"""Automatically determine ShotGun acquisition type."""
496461

@@ -544,7 +509,6 @@ def __init__(self) -> None:
544509
self.commands = {
545510
"AutoChannelWrap": AutoChannelWrap(),
546511
"AutoShotWrap": AutoShotWrap(),
547-
"CalculateCable": CalculateCable(),
548512
"NonBinned": NonBinned(),
549513
"HasDuplicates": DuplicateIndex(),
550514
}

tests/unit/test_segy_grid_overrides.py

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@
1414
from numpy.testing import assert_array_equal
1515

1616
from mdio.core import Dimension
17-
from mdio.segy.exceptions import GridOverrideIncompatibleError
18-
from mdio.segy.exceptions import GridOverrideMissingParameterError
1917
from mdio.segy.exceptions import GridOverrideUnknownError
2018
from mdio.segy.geometry import GridOverrider
2119

@@ -131,53 +129,6 @@ def test_non_binned(self, mock_streamer_headers: dict[str, npt.NDArray]) -> None
131129
class TestStreamerGridOverrides:
132130
"""Check grid overrides for shot data with streamer acquisition."""
133131

134-
def test_calculate_cable(
135-
self,
136-
mock_streamer_headers: dict[str, npt.NDArray],
137-
) -> None:
138-
"""Test the CalculateCable command."""
139-
index_names = ("shot_point", "cable", "channel")
140-
grid_overrides = {"CalculateCable": True, "ChannelsPerCable": len(RECEIVERS)}
141-
142-
new_headers, new_names, new_chunks = run_override(grid_overrides, index_names, mock_streamer_headers)
143-
144-
assert new_names == index_names
145-
assert new_chunks is None
146-
147-
dims = get_dims(new_headers)
148-
149-
# We need channels because unwrap isn't done here
150-
channels = unique(mock_streamer_headers["channel"])
151-
152-
# We reset the cables to start from 1.
153-
cables = arange(1, len(CABLES) + 1, dtype="uint32")
154-
155-
assert_array_equal(dims[0].coords, SHOTS)
156-
assert_array_equal(dims[1].coords, cables)
157-
assert_array_equal(dims[2].coords, channels)
158-
159-
def test_missing_param(self, mock_streamer_headers: dict[str, npt.NDArray]) -> None:
160-
"""Test missing parameters for the commands."""
161-
index_names = ("shot_point", "cable", "channel")
162-
chunksize = None
163-
overrider = GridOverrider()
164-
165-
with pytest.raises(GridOverrideMissingParameterError):
166-
overrider.run(mock_streamer_headers, index_names, {"CalculateCable": True}, chunksize)
167-
168-
def test_incompatible_overrides(
169-
self,
170-
mock_streamer_headers: dict[str, npt.NDArray],
171-
) -> None:
172-
"""Test commands that can't be run together."""
173-
index_names = ("shot_point", "cable", "channel")
174-
chunksize = None
175-
overrider = GridOverrider()
176-
177-
grid_overrides = {"CalculateCable": True, "AutoChannelWrap": True}
178-
with pytest.raises(GridOverrideIncompatibleError):
179-
overrider.run(mock_streamer_headers, index_names, grid_overrides, chunksize)
180-
181132
def test_unknown_override(
182133
self,
183134
mock_streamer_headers: dict[str, npt.NDArray],

0 commit comments

Comments
 (0)