Exemple n ° 2: desservant un grand nombre de fichiers de DTM ASCII Grid¶
Dans cet exemple, il y a un groupe d’images DTM en format ASCII Grid. Le but de cette section est de décrire comment les commandes GDAL peuvent être utilisés pour fusionner les fichiers d’entrée fournis. Ces données sont tirées de « portail de données ouvertes Regione Calabria <http: pr5sit.regione.calabria.it/web/pr5sit/sezione-opendata1;jsessionid=”D37F21C541E793075AF90E3B0A3AAFBD”>’ _ à la “ASCII - GRID’ section.</http:>
Note
Les données ont la même résolution de pixels et le même système de référence de coordonner * EPSG:3003 *.
Avertissement
Cet exemple requiert GDAL avec Python bindings.
Naviguez vers le répertoire de l’atelier : file:’${TRAINING_ROOT}/data/user_data/gdal_processing_data’ (sous Windows : file:’%TRAINING_ROOT%\data\user_data\gdal_processing_data’) et le * DTM_data * répertoire.
Naviguer à l’intérieur de la * DTM_data * répertoire avec le SDKshell.
Note
Les opérations suivantes doivent être exécutées de la coquille à l’intérieur du répertoire sélectionné. Dans Windows, si elle n’est pas déjà lancé, executer setenv.bat.
Appelant le ** gdalinfo ** commande sur une image pour récupérer les informations associées:
gdalinfo 521150.asc
Cela se traduira par une description GML des granules, comme suit :
Driver: AAIGrid/Arc/Info ASCII Grid Files: 521150.asc Size is 193, 154 Coordinate System is `' Origin = (2590740.000000000000000,4433860.000000000000000) Pixel Size = (40.000000000000000,-40.000000000000000) Metadata: AREA_OR_POINT=Point Corner Coordinates: Upper Left ( 2590740.000, 4433860.000) Lower Left ( 2590740.000, 4427700.000) Upper Right ( 2598460.000, 4433860.000) Lower Right ( 2598460.000, 4427700.000) Center ( 2594600.000, 4430780.000) Band 1 Block=193x1 Type=Float32, ColorInterp=Undefined NoData Value=-9999
De ** gdalinfo ** il est possible de noter :
Aucune définition de CRS. Impossible d’afficher une image sans CRS sur GeoServer.
Carreaux rayé (193 x 1).
Pas de compression
Liste de toutes les images dans une liste de texte unique avec la commande suivante:
ls *.asc > list.txt (Linux) or dir /b *.asc > list.txt (Windows)
Fusion de tous les fichiers d’entrée avec la commande gdal_merge.py:
gdal_merge.py -o merged.tif -co "TILED=YES" -co "BLOCKXSIZE=512" -co "BLOCKYSIZE=512" -co "COMPRESS=DEFLATE" -co "ZLEVEL=9" -co "BIGTIFF=YES" -init -9999 -a_nodata -9999 -n -9999 -ot Float32 --optfile list.txt
Note
Cette commande doit être exécutée avec python pour éviter les erreurs d’importation.
Paramètres utilisés :
** - o merged.tif** : définition du nom du fichier de sortie.
** - co “sol CARRELÉ = YES” -co » BLOCKXSIZE = 512” -co » BLOCKYSIZE = 512” **: définition des dimensions de la mosaïque.
** - co “compresser = de DEFLATE” -co « ZLEVEL = 9” -co » BIGTIFF = YES” **: définition du mode compression.
Note
** - co » BIGTIFF = YES “** est utilisé parce que GDAL n’est pas automatiquement capable de convertir l’image GeoTiff dans un BigTiff si la compression est définie.
** - init-9999 **: initialisation de l’image en pixels sur NO DATA.
** - a_nodata-9999 **: définition de la valeur de sortie pour aucune donnée.
** - n-9999 **: définition de la valeur des pixels d’entrée à ignorer lors de la fusion.
** - ot Float32 **: définition de l’image type de sortie.
–optfile list.txt : définition de la liste de fichier d’entrée.
Le ** gdalinfo ** sortie sur l’image fusionnée est:
Driver: GTiff/GeoTIFF Files: merged.tif Size is 3613, 6284 Coordinate System is `' Origin = (2570700.000000000000000,4445900.000000000000000) Pixel Size = (40.000000000000000,-40.000000000000000) Image Structure Metadata: COMPRESSION=DEFLATE INTERLEAVE=BAND Corner Coordinates: Upper Left ( 2570700.000, 4445900.000) Lower Left ( 2570700.000, 4194540.000) Upper Right ( 2715220.000, 4445900.000) Lower Right ( 2715220.000, 4194540.000) Center ( 2642960.000, 4320220.000) Band 1 Block=512x512 Type=Float32, ColorInterp=Gray NoData Value=-9999
L’image fusionnée a une bonne tiling(512x512) et la compression, mais les CRS n’est toujours pas défini.
Réglage de l’image CRS avec ** gdal_translate **:
gdal_translate -a_srs "EPSG:3003" -co "TILED=YES" -co "BLOCKXSIZE=512" -co "BLOCKYSIZE=512" -co "COMPRESS=DEFLATE" -co "ZLEVEL=9" -co "BIGTIFF=YES" merged.tif merged_CRS.tif
Les différents paramètres d’entrée sont maintenues car par défaut GDAL ne pas compresser l’image d’entrée et définissez un mauvais pavage.
De ** gdalinfo **:
Driver: GTiff/GeoTIFF Files: merged_CRS.tif Size is 3613, 6284 Coordinate System is: PROJCS["Monte Mario / Italy zone 1", GEOGCS["Monte Mario", DATUM["Monte_Mario", SPHEROID["International 1924",6378388,297.0000000000014, AUTHORITY["EPSG","7022"]], TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68], AUTHORITY["EPSG","6265"]], PRIMEM["Greenwich",0], UNIT["degree",0.0174532925199433], AUTHORITY["EPSG","4265"]], PROJECTION["Transverse_Mercator"], PARAMETER["latitude_of_origin",0], PARAMETER["central_meridian",9], PARAMETER["scale_factor",0.9996], PARAMETER["false_easting",1500000], PARAMETER["false_northing",0], UNIT["metre",1, AUTHORITY["EPSG","9001"]], AUTHORITY["EPSG","3003"]] Origin = (2570700.000000000000000,4445900.000000000000000) Pixel Size = (40.000000000000000,-40.000000000000000) Metadata: AREA_OR_POINT=Area Image Structure Metadata: COMPRESSION=DEFLATE INTERLEAVE=BAND Corner Coordinates: Upper Left ( 2570700.000, 4445900.000) ( 21d25'57.43"E, 39d29'28.80"N) Lower Left ( 2570700.000, 4194540.000) ( 21d 3'12.94"E, 37d16'39.68"N) Upper Right ( 2715220.000, 4445900.000) ( 23d 3'58.08"E, 39d18' 6.80"N) Lower Right ( 2715220.000, 4194540.000) ( 22d38'27.42"E, 37d 6' 9.29"N) Center ( 2642960.000, 4320220.000) ( 22d 2'40.73"E, 38d17'47.75"N) Band 1 Block=512x512 Type=Float32, ColorInterp=Gray NoData Value=-9999
Cette image peut être affichée sur GeoServer, mais une nouvelle étape d’optimisation pourrait apporter de meilleures performances.
(** En option **) Création de la ** aperçus ** associé à l’image fusionnée pour avoir le meilleur débit:
gdaladdo -r nearest --config COMPRESS_OVERVIEW DEFLATE --config GDAL_TIFF_OVR_BLOCKSIZE 512 merged_CRS.tif 2 4 8 16
Vues d’ensemble sont vues réduites de l’image d’entrée utilisée par GeoServer permettant d’afficher l’image à une résolution inférieure.
Paramètres utilisés :
Et ** gdalinfo **:
Driver: GTiff/GeoTIFF Files: merged_CRS.tif Size is 3613, 6284 Coordinate System is: PROJCS["Monte Mario / Italy zone 1", GEOGCS["Monte Mario", DATUM["Monte_Mario", SPHEROID["International 1924",6378388,297.0000000000014, AUTHORITY["EPSG","7022"]], TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68], AUTHORITY["EPSG","6265"]], PRIMEM["Greenwich",0], UNIT["degree",0.0174532925199433], AUTHORITY["EPSG","4265"]], PROJECTION["Transverse_Mercator"], PARAMETER["latitude_of_origin",0], PARAMETER["central_meridian",9], PARAMETER["scale_factor",0.9996], PARAMETER["false_easting",1500000], PARAMETER["false_northing",0], UNIT["metre",1, AUTHORITY["EPSG","9001"]], AUTHORITY["EPSG","3003"]] Origin = (2570700.000000000000000,4445900.000000000000000) Pixel Size = (40.000000000000000,-40.000000000000000) Metadata: AREA_OR_POINT=Area Image Structure Metadata: COMPRESSION=DEFLATE INTERLEAVE=BAND Corner Coordinates: Upper Left ( 2570700.000, 4445900.000) ( 21d25'57.43"E, 39d29'28.80"N) Lower Left ( 2570700.000, 4194540.000) ( 21d 3'12.94"E, 37d16'39.68"N) Upper Right ( 2715220.000, 4445900.000) ( 23d 3'58.08"E, 39d18' 6.80"N) Lower Right ( 2715220.000, 4194540.000) ( 22d38'27.42"E, 37d 6' 9.29"N) Center ( 2642960.000, 4320220.000) ( 22d 2'40.73"E, 38d17'47.75"N) Band 1 Block=512x512 Type=Float32, ColorInterp=Gray NoData Value=-9999 Overviews: 1807x3142, 904x1571, 452x786, 226x393
Puis le résultat peut être affiché dans GeoServer en configurant l’image comme un GeoTiff (voir : Réf:’ ajouter un GeoTiff <geoserver.add_geotiff>’ section).</geoserver.add_geotiff>
Affichage du résultat sur GeoServer :