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.