Skip to content

Commit e6dd1ea

Browse files
committed
Remove CalculateCable grid override
1 parent b48fece commit e6dd1ea

File tree

3 files changed

+1
-94
lines changed

3 files changed

+1
-94
lines changed

src/mdio/commands/segy.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,8 +257,7 @@ 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 '{"ChannelWrap": True, "ChannelsPerCable": 800,
261-
"CalculateCable": True}'
260+
--grid-overrides '{"ChannelWrap": True, "ChannelsPerCable": 800}'
262261
263262
\b
264263
If we do have cable numbers in the headers, but channels are still sequential (aka.

src/mdio/segy/geometry.py

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -374,9 +374,6 @@ def validate(self, index_headers: HeaderArray, grid_overrides: dict[str, bool |
374374
if "ChannelWrap" in grid_overrides:
375375
raise GridOverrideIncompatibleError(self.name, "ChannelWrap")
376376

377-
if "CalculateCable" in grid_overrides:
378-
raise GridOverrideIncompatibleError(self.name, "CalculateCable")
379-
380377
if self.required_keys is not None:
381378
self.check_required_keys(index_headers)
382379
self.check_required_params(grid_overrides)
@@ -437,9 +434,6 @@ def validate(self, index_headers: HeaderArray, grid_overrides: dict[str, bool |
437434
if "ChannelWrap" in grid_overrides:
438435
raise GridOverrideIncompatibleError(self.name, "ChannelWrap")
439436

440-
if "CalculateCable" in grid_overrides:
441-
raise GridOverrideIncompatibleError(self.name, "CalculateCable")
442-
443437
self.check_required_keys(index_headers)
444438
self.check_required_params(grid_overrides)
445439

@@ -493,34 +487,6 @@ def transform(self, index_headers: HeaderArray, grid_overrides: dict[str, bool |
493487
return index_headers
494488

495489

496-
class CalculateCable(GridOverrideCommand):
497-
"""Calculate cable numbers from unwrapped channels."""
498-
499-
required_keys = {"shot_point", "cable", "channel"}
500-
required_parameters = {"ChannelsPerCable"}
501-
502-
def validate(self, index_headers: HeaderArray, grid_overrides: dict[str, bool | int]) -> None:
503-
"""Validate if this transform should run on the type of data."""
504-
if "AutoChannelWrap" in grid_overrides:
505-
raise GridOverrideIncompatibleError(self.name, "AutoCableChannel")
506-
507-
self.check_required_keys(index_headers)
508-
self.check_required_params(grid_overrides)
509-
510-
def transform(
511-
self,
512-
index_headers: HeaderArray,
513-
grid_overrides: dict[str, bool | int],
514-
) -> NDArray:
515-
"""Perform the grid transform."""
516-
self.validate(index_headers, grid_overrides)
517-
518-
channels_per_cable = grid_overrides["ChannelsPerCable"]
519-
index_headers["cable"] = (index_headers["channel"] - 1) // channels_per_cable + 1
520-
521-
return index_headers
522-
523-
524490
class AutoShotWrap(GridOverrideCommand):
525491
"""Automatically determine ShotGun acquisition type."""
526492

@@ -574,7 +540,6 @@ def __init__(self) -> None:
574540
self.commands = {
575541
"AutoChannelWrap": AutoChannelWrap(),
576542
"AutoShotWrap": AutoShotWrap(),
577-
"CalculateCable": CalculateCable(),
578543
"ChannelWrap": ChannelWrap(),
579544
"NonBinned": NonBinned(),
580545
"HasDuplicates": DuplicateIndex(),

tests/unit/test_segy_grid_overrides.py

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -147,56 +147,6 @@ def test_channel_wrap(self, mock_streamer_headers: dict[str, npt.NDArray]) -> No
147147
assert_array_equal(dims[1].coords, CABLES)
148148
assert_array_equal(dims[2].coords, RECEIVERS)
149149

150-
def test_calculate_cable(
151-
self,
152-
mock_streamer_headers: dict[str, npt.NDArray],
153-
) -> None:
154-
"""Test the CalculateCable command."""
155-
index_names = ("shot_point", "cable", "channel")
156-
grid_overrides = {"CalculateCable": True, "ChannelsPerCable": len(RECEIVERS)}
157-
158-
new_headers, new_names, new_chunks = run_override(grid_overrides, index_names, mock_streamer_headers)
159-
160-
assert new_names == index_names
161-
assert new_chunks is None
162-
163-
dims = get_dims(new_headers)
164-
165-
# We need channels because unwrap isn't done here
166-
channels = unique(mock_streamer_headers["channel"])
167-
168-
# We reset the cables to start from 1.
169-
cables = arange(1, len(CABLES) + 1, dtype="uint32")
170-
171-
assert_array_equal(dims[0].coords, SHOTS)
172-
assert_array_equal(dims[1].coords, cables)
173-
assert_array_equal(dims[2].coords, channels)
174-
175-
def test_wrap_and_calc_cable(
176-
self,
177-
mock_streamer_headers: dict[str, npt.NDArray],
178-
) -> None:
179-
"""Test the combined ChannelWrap and CalculateCable commands."""
180-
index_names = ("shot_point", "cable", "channel")
181-
grid_overrides = {
182-
"CalculateCable": True,
183-
"ChannelWrap": True,
184-
"ChannelsPerCable": len(RECEIVERS),
185-
}
186-
187-
new_headers, new_names, new_chunks = run_override(grid_overrides, index_names, mock_streamer_headers)
188-
189-
assert new_names == index_names
190-
assert new_chunks is None
191-
192-
dims = get_dims(new_headers)
193-
# We reset the cables to start from 1.
194-
cables = arange(1, len(CABLES) + 1, dtype="uint32")
195-
196-
assert_array_equal(dims[0].coords, SHOTS)
197-
assert_array_equal(dims[1].coords, cables)
198-
assert_array_equal(dims[2].coords, RECEIVERS)
199-
200150
def test_missing_param(self, mock_streamer_headers: dict[str, npt.NDArray]) -> None:
201151
"""Test missing parameters for the commands."""
202152
index_names = ("shot_point", "cable", "channel")
@@ -206,9 +156,6 @@ def test_missing_param(self, mock_streamer_headers: dict[str, npt.NDArray]) -> N
206156
with pytest.raises(GridOverrideMissingParameterError):
207157
overrider.run(mock_streamer_headers, index_names, {"ChannelWrap": True}, chunksize)
208158

209-
with pytest.raises(GridOverrideMissingParameterError):
210-
overrider.run(mock_streamer_headers, index_names, {"CalculateCable": True}, chunksize)
211-
212159
def test_incompatible_overrides(
213160
self,
214161
mock_streamer_headers: dict[str, npt.NDArray],
@@ -222,10 +169,6 @@ def test_incompatible_overrides(
222169
with pytest.raises(GridOverrideIncompatibleError):
223170
overrider.run(mock_streamer_headers, index_names, grid_overrides, chunksize)
224171

225-
grid_overrides = {"CalculateCable": True, "AutoChannelWrap": True}
226-
with pytest.raises(GridOverrideIncompatibleError):
227-
overrider.run(mock_streamer_headers, index_names, grid_overrides, chunksize)
228-
229172
def test_unknown_override(
230173
self,
231174
mock_streamer_headers: dict[str, npt.NDArray],

0 commit comments

Comments
 (0)