Aggiunta di dati di georeferenziazione nell'immagine tiff


10

Voglio creare un .tifffile georeferenziato da un .pngfile. Quindi converto .png in un .tifffile normale usando la seguente riga di comando:

convert image.png image.tiff

Qui, tutto funziona bene, ho un .tifffile valido , che visualizza bene. Quindi, voglio aggiungere alcuni dati di georeferenziazione in esso. Per fare ciò, ho trovato uno strumento chiamato tiff2geotiff, lo sto usando in questo modo:

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

Questo mi dà un'immagine nera che, importata in QGis, viene visualizzata bene al posto giusto, tranne per il fatto che è nera dappertutto (prova che i dati georeferenziati sono stati ben aggiunti ).

Pertanto, quando lo faccio:

gdalinfo georeferenced.tiff

Io ottengo :

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

Penso che il primo avvertimento possa essere il problema ...

C'è qualcuno che sa perché o un altro modo per farlo? Sto cercando soluzioni nella riga di comando o in PHP.

Grazie !


Soluzione

Ho scoperto che gdal_translatepuoi aggiungere dati di georeferenziazione in .tiffimmagini , quindi ecco la riga di comando che converte da png e aggiunge dati di georeferenziazione (devi llx ury urx llyovviamente sostituire le estensioni ( )):

gdal_translate -a_nodata 0 -of GTiff -a_srs EPSG:4326 -a_ullr llx ury urx lly pngfile.png tifffile.tiff

sulla tua domanda se ci sono collegamenti php gdal, PHP non è attualmente supportato correttamente da GDAL / OGR. trac.osgeo.org/gdal/wiki/GdalOgrInPhp
nickves

Risposte:


7

Invece di usare convert, potresti provare a usare gdal_translateper convertire il png in tiff e poi georeferenziarlo usando gdal_warp (supponendo che tu abbia creato un file tfw per il tiff)?


Ecco la riga di comando che uso ora:gdal_translate -scale pngfile.png tifffile.tiff
Julien Fouilhé,

5

Conosci le dimensioni dell'immagine? Se conosci le coordinate di delimitazione dell'immagine puoi usarci gdal_translate con -a_srs (questo assegna la proiezione) e -a_ullr (queste sono le coordinate di delimitazione). Ho usato questo per convertire .jpg di immagini sonar da un'unità sonar di pesca a basso costo in geotiff.


1
Quindi stai dicendo che non ho bisogno di usare tiff2geotiff per aggiungere le estensioni dell'immagine (sì, le ho)? :) Freddo ! Sì, vedo che nella documentazione lo userò al posto di tiff2geotiff, grazie!
Julien Fouilhé,

Nessun problema, sono felice che questo possa aiutare
Ryan Garnett,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.