J'utilise gdalwarp pour manipuler des tuiles SRTM près de la ligne de données (c'est-à-dire 180 °, alias l'antiméridien). Les carreaux SRTM ont un très léger chevauchement (1/2 pixel) avec le méridien. Vous pouvez le voir en utilisant gdalinfo:
gdalinfo S16W180.hgt
Driver: SRTMHGT/SRTMHGT File Format
Files: S16W180.hgt
Size is 1201, 1201
[...]
Lower Left (-180.0004167, -16.0004167) (180d 0' 1.50"W, 16d 0' 1.50"S)
Upper Right (-178.9995833, -14.9995833) (178d59'58.50"W, 14d59'58.50"S)
[...]
La source s'étend donc sur une petite quantité de la ligne de données.
Cela provoque des problèmes avec gdalwarp, qui finit par créer d'énormes sorties couvrant l'ensemble du globe.
gdalwarp -t_srs "epsg:900913" S16W180.hgt test.tif
gdalinfo test.tif
Driver: GTiff/GeoTIFF
Files: test.tif
Size is 1703, 5
[...]
Lower Left (-20037508.330,-1806798.473) (180d 0' 0.00"W, 16d 7'13.00"S)
Upper Right (20032839.451,-1689152.120) (179d57'29.01"E, 15d 5'45.84"S)
Notez que les longitudes couvrent (presque) le globe entier, et aussi le nombre de lignes est étonnamment petit (5)
Est-ce un bug dans gdalwarp? Sinon, quelles sont les bonnes options à passer à gdalwarp pour obtenir une sortie sensible?
Réponses:
Une solution de contournement simple consisterait à spécifier le système de coordonnées "manuellement" en tant que chaîne PROJ. Cela vous permet d'utiliser le
+over
commutateur qui désactive l'habillage sur l'antiméridien:Quand je fais ça et que je fais
gdalinfo
le résultat, j'obtiens ceci:J'ai obtenu la chaîne PROJ (sans
+over
) en regardant la sortie d'origine degdalinfo
. Il a été inclus dans unEXTENSION[...]
bloc du système de coordonnées.la source
Cela fonctionne en deux étapes:
La première commande lance le demi-pixel supplémentaire du mauvais côté du méridien à 180 °. Vous obtenez un fichier de sortie de 1178P x 1222L.
Alternativement, avec gdal_translate:
Création d'un fichier de sortie de 1179P x 1223L.
la source
Comme j'étais confronté au même problème, j'ai écrit un petit script shell qui découvre si le fichier raster traverse la ligne de données. Si vrai, l'option suivante est ajoutée à gdalwarp:
Voici comment le script fonctionne pas à pas:
MISE À JOUR Meilleure version du script, nécessite GDAL 2.0+ et Python: ancienne version ci-dessous.
la source
C'est un problème dans la bibliothèque GDAL. Il semble que GDALSuggestedWarpOutput () donne une sortie étrange pour la largeur et la hauteur du fichier de sortie.
Je n'ai pas encore trouvé de moyen de contourner ce problème.
la source