Додавання геореференційних даних у зображення TIFF


10

Я хочу створити .tiffфайл із геореференцією .png. Тому я перетворюю .png у звичайний .tiffфайл, використовуючи наступний командний рядок:

convert image.png image.tiff

Тут все працює добре, у мене є дійсний .tiffфайл, який відображає штраф. Потім я хочу додати в неї деякі геореференційні дані. Для цього я знайшов інструмент під назвою tiff2geotiff, я використовую його так:

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

Це дає мені чорне зображення, яке, імпортоване в QGis, добре відображає добре, за винятком того, що воно скрізь є чорним (доказ того, що дані про геореференцію були добре додані ).

Тому, коли я роблю:

gdalinfo georeferenced.tiff

Я отримую:

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

Я думаю, що перше попередження може бути проблемою ...

Чи є хтось, хто знає, чому чи іншим способом це зробити? Я шукаю рішення в командному рядку чи в PHP.

Дякую !


Рішення

Я дізнався, що gdal_translateможна додавати геореференційні дані до .tiffзображень , тому ось командний рядок, який конвертує з png та додає геореференційні дані (ви llx ury urx lly, звичайно, повинні замінити розширення ( )):

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

щодо вашого питання, чи є прив'язки gdal php, PHP в даний час не підтримується належним чином GDAL / OGR. trac.osgeo.org/gdal/wiki/GdalOgrInPhp
nickves

Відповіді:


7

Замість того, щоб використовувати convert, чи можете ви спробувати використати gdal_translateдля перетворення png у tiff, а потім геореференціювати його за допомогою gdal_warp (якщо припустити, що ви створили файл tfw для tiff)?


Ось командний рядок, який я зараз використовую:gdal_translate -scale pngfile.png tifffile.tiff
Julien Fouilhé

5

Чи знаєте ви розширення зображення? Якщо ви знаєте обмежувальні координати зображення, ви можете gdal_translate за допомогою -a_srs (це призначає проекцію) та -a_ullr (це граничні координати). Я використав це для перетворення.


1
Отже, ви говорите, що мені не потрібно використовувати tiff2geotiff для додавання розширень зображення (так, я їх маю)? :) Класно! Так, я бачу, що в документації я буду використовувати її замість tiff2geotiff, дякую!
Жульєн Фуліе

Без проблем, я радий, що це допоможе
Райан Гарнетт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.