Diviser le gradient par la résolution hors chemin partagé (pentes fausses)
This commit is contained in:
@ -470,7 +470,8 @@ def generate_hillshade(dem_file, basename, vis_dir, resolution, shared=None):
|
|||||||
else:
|
else:
|
||||||
dem_np, transform, crs = _read_dem(dem_file)
|
dem_np, transform, crs = _read_dem(dem_file)
|
||||||
dem = to_gpu(dem_np)
|
dem = to_gpu(dem_np)
|
||||||
dy, dx = xp.gradient(dem)
|
# Espacement = résolution (m/px) : sans lui la pente est fausse
|
||||||
|
dy, dx = xp.gradient(dem, float(resolution) if resolution else 1.0)
|
||||||
slope = xp.arctan(xp.sqrt(dx**2 + dy**2))
|
slope = xp.arctan(xp.sqrt(dx**2 + dy**2))
|
||||||
aspect = xp.arctan2(dy, dx)
|
aspect = xp.arctan2(dy, dx)
|
||||||
sin_slope = xp.sin(slope)
|
sin_slope = xp.sin(slope)
|
||||||
@ -532,7 +533,8 @@ def generate_slope(dem_file, basename, vis_dir, resolution, shared=None):
|
|||||||
else:
|
else:
|
||||||
dem_np, transform, crs = _read_dem(dem_file)
|
dem_np, transform, crs = _read_dem(dem_file)
|
||||||
dem = to_gpu(dem_np)
|
dem = to_gpu(dem_np)
|
||||||
dy, dx = xp.gradient(dem)
|
# Espacement = résolution (m/px) : sans lui la pente est fausse
|
||||||
|
dy, dx = xp.gradient(dem, float(resolution) if resolution else 1.0)
|
||||||
slope = xp.arctan(xp.sqrt(dx**2 + dy**2)) * 180 / xp.pi
|
slope = xp.arctan(xp.sqrt(dx**2 + dy**2)) * 180 / xp.pi
|
||||||
nan_mask = np.isnan(dem_np)
|
nan_mask = np.isnan(dem_np)
|
||||||
_save_tif(output, to_cpu(slope) if _gpu_mod.HAS_GPU else slope, transform, crs, nan_mask=nan_mask)
|
_save_tif(output, to_cpu(slope) if _gpu_mod.HAS_GPU else slope, transform, crs, nan_mask=nan_mask)
|
||||||
@ -567,7 +569,8 @@ def generate_aspect(dem_file, basename, vis_dir, resolution, shared=None):
|
|||||||
else:
|
else:
|
||||||
dem_np, transform, crs = _read_dem(dem_file)
|
dem_np, transform, crs = _read_dem(dem_file)
|
||||||
dem = to_gpu(dem_np)
|
dem = to_gpu(dem_np)
|
||||||
dy, dx = xp.gradient(dem)
|
# Espacement = résolution (m/px) : sans lui la pente est fausse
|
||||||
|
dy, dx = xp.gradient(dem, float(resolution) if resolution else 1.0)
|
||||||
nan_mask = np.isnan(dem_np)
|
nan_mask = np.isnan(dem_np)
|
||||||
aspect = xp.arctan2(dy, dx) * 180 / xp.pi
|
aspect = xp.arctan2(dy, dx) * 180 / xp.pi
|
||||||
aspect = xp.mod(aspect, 360)
|
aspect = xp.mod(aspect, 360)
|
||||||
|
|||||||
Reference in New Issue
Block a user