Adicionando dados de georreferenciamento à imagem tiff

10

Eu quero criar um .tiffarquivo georreferenciado a partir de um .pngarquivo. Então, eu converto o .png em um .tiffarquivo normal usando a seguinte linha de comando:

convert image.png image.tiff

Aqui, tudo funciona bem, eu tenho um .tiffarquivo válido , que exibe bem. Quero adicionar alguns dados de georreferenciamento. Para fazer isso, encontrei uma ferramenta chamada tiff2geotiff, estou usando-a assim:

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

Isso me dá uma imagem em preto que, importada no QGis, é exibida em boas condições, exceto que é preta em todos os lugares (prova de que os dados georreferenciados foram bem adicionados ).

Portanto, quando eu faço:

gdalinfo georeferenced.tiff

Eu obtenho :

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

Eu acho que o primeiro aviso pode ser o problema ...

Existe alguém que sabe por que ou outra maneira de fazer isso? Estou procurando soluções em linha de comando ou em PHP.

Obrigado !


Solução

Descobri que gdal_translatepode adicionar dados de georreferenciamento em .tiffimagens , então aqui está a linha de comando que converte de png e adiciona dados de georreferenciamento (é necessário substituir as extensões ( llx ury urx lly), é claro):

gdal_translate -a_nodata 0 -of GTiff -a_srs EPSG:4326 -a_ullr llx ury urx lly pngfile.png tifffile.tiff
Julien Fouilhé
fonte
sobre sua pergunta, se houver ligações gdal php, o PHP atualmente não é suportado corretamente pelo GDAL / OGR. trac.osgeo.org/gdal/wiki/GdalOgrInPhp
nickves

Respostas:

7

Em vez de usar convert, você poderia tentar gdal_translateconverter o png em tiff e georreferenciar usando gdal_warp (supondo que você tenha criado um arquivo tfw para o tiff)?

dmci
fonte
Aqui está a linha de comando que eu uso agora:gdal_translate -scale pngfile.png tifffile.tiff
Julien Fouilhé
5

Você conhece a extensão da imagem? Se você conhece as coordenadas delimitadoras da imagem, pode-se gdal_translate com -a_srs (isso atribui a projeção) e -a_ullr (estas são as coordenadas delimitadoras). Eu usei isso para converter .jpg de imagens de sonar de uma unidade de sonar de pesca de baixo custo em geotiffs.

Ryan Garnett
fonte
11
Então você está dizendo que não preciso usar o tiff2geotiff para adicionar as extensões da imagem (sim, eu as tenho)? :) Legal ! Sim, vejo que na documentação, vou usá-lo em vez de tiff2geotiff, obrigado!
Julien Fouilhé
Não tem problema, eu estou contente isso vai ajudar
Ryan Garnett