Isoler les dalles voisines de raccord dans input/edge_neighbors/
This commit is contained in:
@ -1043,8 +1043,14 @@ def _interpolate_holes(dtm, downsample=8):
|
||||
# images finales sont recadrées sur la dalle exacte (cf. rendering.py).
|
||||
EDGE_BUFFER_TAG = "LIDAR_EDGE_BUFFER" # tag GeoTIFF : tampon utilisé (m)
|
||||
|
||||
# Sous-dossier de input/ où sont isolées les dalles voisines téléchargées
|
||||
# pour le seul raccord des bords : elles ne font pas partie du corpus de
|
||||
# tuiles à rendre (les scans globaux n'énumèrent que input/ à plat).
|
||||
EDGE_NEIGHBORS_DIRNAME = "edge_neighbors"
|
||||
|
||||
# Décalages des 8 voisines d'une dalle (col, row) en km
|
||||
_NEIGHBOR_OFFSETS = [(-1, -1), (0, -1), (1, -1), (-1, 0),
|
||||
|
||||
(1, 0), (-1, 1), (0, 1), (1, 1)]
|
||||
|
||||
|
||||
@ -1055,12 +1061,19 @@ def _tile_coords(name):
|
||||
|
||||
|
||||
def _neighbor_laz_files(source_laz):
|
||||
"""Liste les 8 fichiers LAZ/LAS adjacents à `source_laz` dans son dossier."""
|
||||
"""Liste les 8 fichiers LAZ/LAS adjacents à `source_laz`.
|
||||
|
||||
Recherche dans le dossier de la source, puis dans le sous-dossier
|
||||
edge_neighbors/ : les dalles voisines téléchargées pour le seul raccord
|
||||
des bords y sont isolées — sinon elles s'accumulent à plat dans input/ et
|
||||
chaque passe globale annexe un anneau de tuiles à rendre en plus.
|
||||
"""
|
||||
coords = _tile_coords(source_laz)
|
||||
if coords is None:
|
||||
return []
|
||||
col, row = coords
|
||||
directory = Path(source_laz).parent
|
||||
search_dirs = [directory, directory / EDGE_NEIGHBORS_DIRNAME]
|
||||
neighbors = []
|
||||
for dcol, drow in _NEIGHBOR_OFFSETS:
|
||||
nc, nr = col + dcol, row + drow
|
||||
@ -1068,9 +1081,10 @@ def _neighbor_laz_files(source_laz):
|
||||
# on accepte aussi la variante sans remplissage pour les dalles exotiques.
|
||||
names = {f"LHD_FXX_{nc:04d}_{nr:04d}", f"LHD_FXX_{nc}_{nr}"}
|
||||
matches = []
|
||||
for name in names:
|
||||
matches += list(directory.glob(f"{name}_*.las"))
|
||||
matches += list(directory.glob(f"{name}_*.laz"))
|
||||
for search_dir in search_dirs:
|
||||
for name in names:
|
||||
matches += list(search_dir.glob(f"{name}_*.las"))
|
||||
matches += list(search_dir.glob(f"{name}_*.laz"))
|
||||
if matches:
|
||||
neighbors.append(sorted(matches)[0])
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user