Fix GPU tag: recalculate at log end so fallback shows no [GPU]

This commit is contained in:
Antoine Jacquin
2026-05-31 17:48:32 +02:00
parent 65631b18b0
commit 4193174196

View File

@ -394,6 +394,7 @@ def generate_hillshade(dem_file, basename, vis_dir, resolution, shared=None):
logger.info(f" → Hillshade multidirectionnel{gpu_tag}...")
t0 = time.time()
output = vis_dir / f"{basename}_hillshade_multi.tif"
used_gpu = _gpu_mod.HAS_GPU
try:
if shared:
@ -446,7 +447,7 @@ def generate_hillshade(dem_file, basename, vis_dir, resolution, shared=None):
combined_np = np.power(combined_np, gamma)
_save_tif(output, combined_np.astype(np.float32), transform, crs, nan_mask=nan_mask)
logger.info(f" ✓ Hillshade terminé ({time.time()-t0:.1f}s){gpu_tag}")
logger.info(f" ✓ Hillshade terminé ({time.time()-t0:.1f}s){' [GPU]' if _gpu_mod.HAS_GPU else ''}")
return output
except Exception as e:
logger.error(f" ✗ Erreur hillshade: {e}", exc_info=True)
@ -475,7 +476,7 @@ def generate_slope(dem_file, basename, vis_dir, resolution, shared=None):
slope = xp.arctan(xp.sqrt(dx**2 + dy**2)) * 180 / xp.pi
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)
logger.info(f" ✓ Pente terminée ({time.time()-t0:.1f}s){gpu_tag}")
logger.info(f" ✓ Pente terminée ({time.time()-t0:.1f}s){' [GPU]' if _gpu_mod.HAS_GPU else ''}")
return output
except Exception as e:
logger.error(f" ✗ Erreur slope: {e}", exc_info=True)
@ -520,7 +521,7 @@ def generate_svf(dem_file, basename, vis_dir, resolution, shared=None):
svf_np = to_cpu(svf_combined).astype(np.float32)
svf_np[nan_mask] = np.nan
_save_tif(output, svf_np, transform, crs)
logger.info(f" ✓ SVF terminé ({time.time()-t0:.1f}s){gpu_tag}")
logger.info(f" ✓ SVF terminé ({time.time()-t0:.1f}s){' [GPU]' if _gpu_mod.HAS_GPU else ''}")
return output
except Exception as e:
logger.error(f" ✗ Erreur SVF: {e}", exc_info=True)
@ -568,7 +569,7 @@ def generate_openness(dem_file, basename, vis_dir, resolution, positive=True, sh
openness_result = openness_result / std_val
_save_tif(output, openness_result, transform, crs)
logger.info(f" ✓ {name} terminé ({time.time()-t0:.1f}s){gpu_tag}")
logger.info(f" ✓ {name} terminé ({time.time()-t0:.1f}s){' [GPU]' if _gpu_mod.HAS_GPU else ''}")
return output
except Exception as e:
logger.error(f" ✗ Erreur openness: {e}", exc_info=True)
@ -637,7 +638,7 @@ def generate_mslrm(dem_file, basename, vis_dir, resolution, shared=None):
mslrm = np.sign(signed_mean) * rms_magnitude
mslrm[nan_mask] = np.nan
_save_tif(output, mslrm.astype(np.float32), transform, crs)
logger.info(f" ✓ MSRM terminé ({time.time()-t0:.1f}s){gpu_tag}")
logger.info(f" ✓ MSRM terminé ({time.time()-t0:.1f}s){' [GPU]' if _gpu_mod.HAS_GPU else ''}")
return output
except Exception as e:
logger.error(f" ✗ Erreur MSRM: {e}", exc_info=True)
@ -718,7 +719,7 @@ def generate_sailore(dem_file, basename, vis_dir, resolution, shared=None):
sailore[nan_mask] = np.nan
_save_tif(output, sailore.astype(np.float32), transform, crs)
logger.info(f" ✓ SAILORE terminé ({time.time()-t0:.1f}s){gpu_tag}")
logger.info(f" ✓ SAILORE terminé ({time.time()-t0:.1f}s){' [GPU]' if _gpu_mod.HAS_GPU else ''}")
return output
except Exception as e:
logger.error(f" ✗ Erreur SAILORE: {e}", exc_info=True)
@ -790,7 +791,7 @@ def generate_roughness(dem_file, basename, vis_dir, resolution, shared=None):
roughness[nan_mask] = np.nan
_save_tif(output, roughness, transform, crs)
logger.info(f" ✓ Rugosité terminée ({time.time()-t0:.1f}s){gpu_tag}")
logger.info(f" ✓ Rugosité terminée ({time.time()-t0:.1f}s){' [GPU]' if _gpu_mod.HAS_GPU else ''}")
return output
except Exception as e:
logger.error(f" ✗ Erreur rugosité: {e}", exc_info=True)
@ -922,7 +923,7 @@ def generate_wavelet(dem_file, basename, vis_dir, resolution, shared=None):
combined[nan_mask] = np.nan
_save_tif(output, combined.astype(np.float32), transform, crs)
logger.info(f" ✓ Ondelette terminée ({time.time()-t0:.1f}s){gpu_tag}")
logger.info(f" ✓ Ondelette terminée ({time.time()-t0:.1f}s){' [GPU]' if _gpu_mod.HAS_GPU else ''}")
return output
except Exception as e:
logger.error(f" ✗ Erreur ondelette: {e}", exc_info=True)
@ -1044,7 +1045,7 @@ def generate_flow_accumulation(dem_file, basename, vis_dir, resolution, shared=N
flow_result[nan_mask] = np.nan
_save_tif(output, flow_result, transform, crs)
logger.info(f" ✓ Flow accumulation terminé ({time.time()-t0:.1f}s){gpu_tag}")
logger.info(f" ✓ Flow accumulation terminé ({time.time()-t0:.1f}s){' [GPU]' if _gpu_mod.HAS_GPU else ''}")
return output
except Exception as e:
logger.error(f" ✗ Erreur flow accumulation: {e}", exc_info=True)
@ -1106,7 +1107,7 @@ def generate_aniso_open(dem_file, basename, vis_dir, resolution, shared=None):
aniso_result = aniso_result / std_val
_save_tif(output, aniso_result, transform, crs)
logger.info(f" ✓ Openness anisotropique terminé ({time.time()-t0:.1f}s){gpu_tag}")
logger.info(f" ✓ Openness anisotropique terminé ({time.time()-t0:.1f}s){' [GPU]' if _gpu_mod.HAS_GPU else ''}")
return output
except Exception as e:
logger.error(f" ✗ Erreur openness anisotropique: {e}", exc_info=True)