From 497e30da8ecad45a3e94880aa54f26c2110c72d3 Mon Sep 17 00:00:00 2001 From: paulasp Date: Tue, 21 Apr 2026 10:16:36 +0200 Subject: [PATCH] plots: allow increased contrast for hillshade --- avaframe/out3Plot/plotUtils.py | 10 +++++++++- avaframe/out3Plot/plotUtilsCfg.ini | 4 ++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/avaframe/out3Plot/plotUtils.py b/avaframe/out3Plot/plotUtils.py index 5396d361a..27664f165 100644 --- a/avaframe/out3Plot/plotUtils.py +++ b/avaframe/out3Plot/plotUtils.py @@ -104,6 +104,8 @@ elevationDegree = cfg.getfloat("elevationDegree") vertExag = cfg.getfloat("vertExag") hillshadeContLevs = cfg.getint("hillshadeContLevs") +hsContrastDiff = cfg.getfloat("hsContrastDiff") +hsContrastMult = cfg.getfloat("hsContrastMult") # define settings for colormaps creation discreteLevels = cfg.getint("discreteLevels") @@ -882,8 +884,14 @@ def addHillShadeContours( else: extentPlot = extent + hs = ls.hillshade(data, vert_exag=vertExag, dx=data.shape[1], dy=data.shape[0]) + # normalize hillshade and increase the contrast + if np.nanmin(hs) != np.nanmax(hs): + hs = (hs - np.nanmin(hs)) / (np.nanmax(hs) - np.nanmin(hs)) + hs = np.clip((hs - hsContrastDiff) * hsContrastMult, 0, 1) + im1 = ax.imshow( - ls.hillshade(data, vert_exag=vertExag, dx=data.shape[1], dy=data.shape[0]), + hs, cmap="gray", extent=extentPlot, origin="lower", diff --git a/avaframe/out3Plot/plotUtilsCfg.ini b/avaframe/out3Plot/plotUtilsCfg.ini index 5d085f30d..277bbfdd5 100644 --- a/avaframe/out3Plot/plotUtilsCfg.ini +++ b/avaframe/out3Plot/plotUtilsCfg.ini @@ -56,6 +56,10 @@ azimuthDegree = 315 elevationDegree = 15 vertExag = 10 hillshadeContLevs = 15 +# to switch off increased contrast: hsContrastDiff = 0, hsContrastMult = 1 +# to switch on increased contrast, suggested values are: hsContrastDiff = 0.25, hsContrastMult = 2.2 +hsContrastDiff = 0 +hsContrastMult = 1 [CONSTANTS]