Thêm dữ liệu hội nghị địa lý vào hình ảnh tiff


10

Tôi muốn tạo một .tifftệp tham chiếu địa lý từ một .pngtệp. Vì vậy, tôi chuyển đổi .png thành một .tifftệp bình thường bằng dòng lệnh sau:

convert image.png image.tiff

Ở đây, tất cả đều hoạt động tốt, tôi có một .tifftập tin hợp lệ , hiển thị tốt. Sau đó, tôi muốn thêm một số dữ liệu hội nghị địa lý trong đó. Để làm như vậy, tôi tìm thấy một công cụ có tên tiff2geotiff, tôi đang sử dụng nó như thế này:

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

Điều này mang lại cho tôi một hình ảnh màu đen , được nhập vào QGis, hiển thị tốt ở vị trí tốt, ngoại trừ màu đen ở mọi nơi (bằng chứng là dữ liệu tham chiếu địa lý đã được thêm vào ).

Vì vậy, khi tôi làm:

gdalinfo georeferenced.tiff

Tôi có được :

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

Tôi nghĩ rằng cảnh báo đầu tiên có thể là vấn đề ...

Có ai đó biết tại sao hoặc cách khác để làm điều này? Tôi đang tìm giải pháp trong dòng lệnh hoặc trong PHP.

Cảm ơn bạn !


Giải pháp

Tôi phát hiện ra gdal_translatecó thể thêm dữ liệu hội nghị địa lý vào .tiffhình ảnh , vì vậy đây là dòng lệnh chuyển đổi từ png và thêm dữ liệu hội nghị địa lý (tất nhiên bạn phải thay thế phạm vi ( 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

về câu hỏi của bạn nếu có các ràng buộc php gdal, PHP hiện không được hỗ trợ đúng bởi GDAL / OGR. trac.osgeo.org/gdal/wiki/GdalOgrInPhp
biệt danh

Câu trả lời:


7

Thay vì sử dụng convert, bạn có thể thử sử dụng gdal_translateđể chuyển đổi png thành tiff và sau đó tham chiếu địa lý bằng gdal_warp (giả sử bạn đã tạo tệp tfw cho tiff)?


Đây là dòng lệnh tôi sử dụng bây giờ:gdal_translate -scale pngfile.png tifffile.tiff
Julien Fouilhé

5

Bạn có biết phạm vi của hình ảnh? Nếu bạn biết tọa độ giới hạn của hình ảnh, bạn có thể sử dụng gdal_translate với -a_srs (cái này gán phép chiếu) và -a_ullr (đây là tọa độ giới hạn). Tôi đã sử dụng điều này để chuyển đổi .jpg hình ảnh sonar từ một đơn vị sonar câu cá chi phí thấp sang geotiff.


1
Vì vậy, bạn đang nói rằng tôi không cần sử dụng tiff2geotiff để thêm phạm vi của hình ảnh (vâng tôi có chúng)? :) Mát mẻ ! Có tôi thấy rằng trong tài liệu, tôi sẽ sử dụng nó thay vì tiff2geotiff, cảm ơn bạn!
Julien Fouilhé

Không có vấn đề gì, tôi rất vui vì điều này sẽ giúp ích
Ryan Garnett
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.