|
4 | 4 | from __future__ import annotations |
5 | 5 |
|
6 | 6 | import logging |
| 7 | +import os |
7 | 8 | from datetime import datetime |
8 | 9 | from datetime import timezone |
9 | 10 | from importlib import metadata |
|
16 | 17 |
|
17 | 18 | from mdio.api.io_utils import process_url |
18 | 19 | from mdio.converters.exceptions import GridTraceCountError |
| 20 | +from mdio.converters.exceptions import GridTraceSparsityError |
19 | 21 | from mdio.core import Grid |
20 | 22 | from mdio.core.utils_write import write_attribute |
21 | 23 | from mdio.segy import blocked_io |
@@ -80,16 +82,16 @@ def grid_density_qc(grid: Grid, num_traces: int) -> None: |
80 | 82 |
|
81 | 83 | # Extreme case where the grid is very sparse (usually user error) |
82 | 84 | if grid_traces > 10 * num_traces: |
| 85 | + logger.warning("WARNING: Sparse mdio grid detected!") |
83 | 86 | for dim_name in grid.dim_names: |
84 | 87 | dim_min = grid.get_min(dim_name) |
85 | 88 | dim_max = grid.get_max(dim_name) |
86 | 89 | logger.warning(f"{dim_name} min: {dim_min} max: {dim_max}") |
87 | | - |
88 | | - msg = ( |
89 | | - f"Grid shape: {grid.shape} but SEG-Y tracecount: {num_traces}. " |
90 | | - "This grid is very sparse and most likely user error with indexing." |
91 | | - ) |
92 | | - raise GridTraceCountError(msg) |
| 90 | + if os.getenv("MDIO_IGNORE_CHECKS", False): |
| 91 | + # Do not raise an exception if MDIO_IGNORE_CHECK is False |
| 92 | + pass |
| 93 | + else: |
| 94 | + raise GridTraceSparsityError(grid.shape, num_traces) |
93 | 95 |
|
94 | 96 | # Warning if we have above 50% sparsity. |
95 | 97 | if grid_traces > 2 * num_traces: |
|
0 commit comments