Ajouter la couche relief orienté et une échelle d'openness fixe
Nouvelle visualisation relief_oriente : une image RGB unique qui fusionne l'openness positive locale (MNT détendancé σ 10 m, rayons 5/10/20 m, 16 directions) portée par la clarté CIELAB et l'orientation des pentes portée par la teinte. Échelle log fixe et support de 40 m sous la bande de raccord de 100 m : dalles jointives. Calcul sur grille décimée à 0,8 m, noyau dédié (CuPy RawKernel, numba parallèle, repli numpy) et colorisation par table L* × teinte : ~8 s par dalle sur CPU au lieu de ~50 s. L'openness positive et négative est normalisée par des références figées mesurées sur 15 dalles au lieu d'un z-score par dalle, qui rendait l'échelle de couleur non jointive. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@ -399,6 +399,18 @@ def xp_uniform_filter(arr, size):
|
||||
return ndimage.uniform_filter(arr, size)
|
||||
|
||||
|
||||
def xp_zoom(arr, factor, order=1):
|
||||
"""Agrandissement aligné sur les centres de pixels (grid_mode) : chaque
|
||||
pixel source couvre exactement factor×factor pixels, sans décalage."""
|
||||
if _cp is not None and isinstance(arr, _cp.ndarray):
|
||||
try:
|
||||
return _cp_ndimage.zoom(arr, factor, order=order, mode='nearest', grid_mode=True)
|
||||
except Exception as e:
|
||||
logger.warning(f"Zoom GPU échoué ({e}) — repli CPU")
|
||||
arr = to_cpu(arr)
|
||||
return ndimage.zoom(arr, factor, order=order, mode='nearest', grid_mode=True)
|
||||
|
||||
|
||||
def xp_minimum_filter(arr, footprint=None, size=None):
|
||||
if _cp is not None and isinstance(arr, _cp.ndarray):
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user