Skip to content

Commit 1153d88

Browse files
sbryngelsonclaude
andcommitted
Guard LogNorm against non-positive data in log-scale rendering
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent ebe4ff9 commit 1153d88

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

toolchain/mfc/viz/renderer.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ def render_2d(x_cc, y_cc, data, varname, step, output, **opts): # pylint: disab
4747
if log_scale:
4848
lo = vmin if vmin is not None else np.nanmin(data[data > 0]) if np.any(data > 0) else 1e-10
4949
hi = vmax if vmax is not None else np.nanmax(data)
50+
if hi <= 0:
51+
hi = 1.0
52+
if lo <= 0 or lo >= hi:
53+
lo = hi * 1e-10
5054
norm = LogNorm(vmin=lo, vmax=hi)
5155
vmin = None
5256
vmax = None
@@ -109,6 +113,10 @@ def render_3d_slice(assembled, varname, step, output, slice_axis='z', # pylint:
109113
if log_scale:
110114
lo = vmin if vmin is not None else np.nanmin(sliced[sliced > 0]) if np.any(sliced > 0) else 1e-10
111115
hi = vmax if vmax is not None else np.nanmax(sliced)
116+
if hi <= 0:
117+
hi = 1.0
118+
if lo <= 0 or lo >= hi:
119+
lo = hi * 1e-10
112120
norm = LogNorm(vmin=lo, vmax=hi)
113121
vmin = None
114122
vmax = None

0 commit comments

Comments
 (0)