Agregar datos de georreferenciación a la imagen tiff

10

Quiero crear un .tiffarchivo georreferenciado a partir de un .pngarchivo. Así que convierto el .png en un .tiffarchivo normal usando la siguiente línea de comando:

convert image.png image.tiff

Aquí, todo funciona bien, tengo un .tiffarchivo válido , que se muestra bien. Entonces, quiero agregar algunos datos de georreferenciación en él. Para hacerlo, encontré una herramienta llamada tiff2geotiff, la estoy usando así:

tiff2geotiff -4 "+proj=latlong +ellps=WGS84 +datum=WGS84 +no_defs" -c none -n "-122.5575664 38.5818201 -122.5449425 38.5896175" notgeoreferenced.tiff georeferenced.tiff

Esto me da una imagen en negro que, importada en QGis, se muestra bien en el buen lugar, excepto que es negra en todas partes (prueba de que los datos georreferenciados se han agregado bien ).

Por lo tanto, cuando hago:

gdalinfo georeferenced.tiff

Yo obtengo :

Warning 1: TIFFReadDirectory:Bogus "StripByteCounts" field, ignoring and calculating from imagelength
Driver: GTiff/GeoTIFF
Files: araujo_tmp.tiff
Size is 1585, 979
Coordinate System is:
GEOGCS["WGS 84",
    DATUM["WGS_1984",
        SPHEROID["WGS 84",6378137,298.257223563,
            AUTHORITY["EPSG","7030"]],
        AUTHORITY["EPSG","6326"]],
    PRIMEM["Greenwich",0],
    UNIT["degree",0.0174532925199433],
    AUTHORITY["EPSG","4326"]]
Origin = (-122.557563781738281,38.589618682861328)
Pixel Size = (0.000007966552118,-0.000007972639275)
Metadata:
  AREA_OR_POINT=Area
  TIFFTAG_DOCUMENTNAME=georeferenced.tiff
Image Structure Metadata:
  INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left  (-122.5575638,  38.5896187) (122d33'27.23"W, 38d35'22.63"N)
Lower Left  (-122.5575638,  38.5818135) (122d33'27.23"W, 38d34'54.53"N)
Upper Right (-122.5449368,  38.5896187) (122d32'41.77"W, 38d35'22.63"N)
Lower Right (-122.5449368,  38.5818135) (122d32'41.77"W, 38d34'54.53"N)
Center      (-122.5512503,  38.5857161) (122d33' 4.50"W, 38d35' 8.58"N)
Band 1 Block=1585x1 Type=Byte, ColorInterp=Red
Band 2 Block=1585x1 Type=Byte, ColorInterp=Green
Band 3 Block=1585x1 Type=Byte, ColorInterp=Blue

Creo que la primera advertencia puede ser el problema ...

¿Hay alguien que sepa por qué u otra forma de hacer esto? Estoy buscando soluciones en línea de comando o en PHP.

Gracias !


Solución

Descubrí que gdal_translatepuede agregar datos de georreferenciación en .tiffimágenes , así que aquí está la línea de comando que convierte de png y agrega datos de georreferenciación (debe reemplazar las extensiones ( llx ury urx lly), por supuesto):

gdal_translate -a_nodata 0 -of GTiff -a_srs EPSG:4326 -a_ullr llx ury urx lly pngfile.png tifffile.tiff
Julien Fouilhé
fuente
acerca de su pregunta si hay enlaces gdal php, PHP no es compatible actualmente con GDAL / OGR. trac.osgeo.org/gdal/wiki/GdalOgrInPhp
nickves

Respuestas:

7

En lugar de usar convert, ¿podría intentar usar gdal_translatepara convertir png a tiff y luego georreferenciarlo usando gdal_warp (suponiendo que haya creado un archivo tfw para el tiff)?

dmci
fuente
Aquí está la línea de comando que uso ahora:gdal_translate -scale pngfile.png tifffile.tiff
Julien Fouilhé
5

¿Conoces la extensión de la imagen? Si conoce las coordenadas delimitadoras de la imagen, puede usar gdal_translate con -a_srs (esto asigna la proyección) y -a_ullr (estas son las coordenadas delimitadoras). He usado esto para convertir .jpg de imágenes de sonda de una unidad de sonda de pesca de bajo costo a geotiffs.

Ryan Garnett
fuente
1
Entonces, ¿estás diciendo que no necesito usar tiff2geotiff para agregar las extensiones de la imagen (sí, las tengo)? :) Frio ! Sí, veo que en la documentación, lo usaré en lugar de tiff2geotiff, ¡gracias!
Julien Fouilhé
No hay problema, me alegra que esto ayude
Ryan Garnett