Menambahkan data georeferensi ke dalam gambar tiff


10

Saya ingin membuat .tifffile georeferensi dari .pngfile. Jadi saya mengonversi .png menjadi .tifffile normal menggunakan baris perintah berikut:

convert image.png image.tiff

Di sini, semua berfungsi dengan baik, saya memiliki .tifffile yang valid , yang menampilkan baik-baik saja. Lalu, saya ingin menambahkan beberapa data georeferensi di dalamnya. Untuk melakukannya, saya menemukan alat yang disebut tiff2geotiff, saya menggunakannya seperti ini:

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

Ini memberi saya gambar hitam yang, diimpor dalam QGis, menampilkan baik-baik saja di tempat yang baik, kecuali bahwa itu hitam di mana-mana (bukti bahwa data yang di- georeferensi telah ditambahkan dengan baik ).

Karena itu, ketika saya melakukannya:

gdalinfo georeferenced.tiff

Saya mendapatkan:

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

Saya pikir peringatan pertama mungkin masalahnya ...

Apakah ada seseorang yang tahu mengapa atau cara lain untuk melakukan ini? Saya mencari solusi di baris perintah atau PHP.

Terima kasih !


Larutan

Saya menemukan gdal_translatedapat menambahkan data georeferensi menjadi .tiffgambar , jadi di sini adalah baris perintah yang mengkonversi dari png dan menambahkan data georeferensi (Anda harus mengganti luasan ( llx ury urx lly), tentu saja):

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

tentang pertanyaan Anda jika ada binding gdal php, PHP saat ini tidak didukung dengan benar oleh GDAL / OGR. trac.osgeo.org/gdal/wiki/GdalOgrInPhp
nickves

Jawaban:


7

Daripada menggunakan convert, dapatkah Anda mencoba menggunakan gdal_translateuntuk mengonversi png menjadi tiff dan kemudian melakukan georeferensi menggunakan gdal_warp (dengan asumsi Anda telah membuat file tfw untuk tiff)?


Berikut ini adalah baris perintah yang saya gunakan sekarang:gdal_translate -scale pngfile.png tifffile.tiff
Julien Fouilhé

5

Apakah Anda tahu luasan gambar? Jika Anda tahu koordinat pembatas dari gambar, Anda dapat menggunakan gdal_translate dengan -a_srs (ini memberikan proyeksi) dan -a_ullr (ini adalah koordinat pembatas). Saya telah menggunakan ini untuk mengkonversi .jpg gambar sonar dari unit sonar memancing murah ke geotiffs.


1
Jadi Anda mengatakan bahwa saya tidak perlu menggunakan tiff2geotiff untuk menambahkan luasan gambar (ya saya memilikinya)? :) Keren ! Ya saya melihat bahwa dalam dokumentasi, saya akan menggunakannya sebagai ganti tiff2geotiff, terima kasih!
Julien Fouilhé

Tidak masalah, saya senang ini akan membantu
Ryan Garnett
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.