การเพิ่มข้อมูลการอ้างอิงทางภูมิศาสตร์ลงในภาพ 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 แล้วใช้ georeference โดยใช้ gdal_warp (สมมติว่าคุณสร้างไฟล์ tfw สำหรับ tiff) หรือไม่?


นี่คือบรรทัดคำสั่งที่ฉันใช้ตอนนี้:gdal_translate -scale pngfile.png tifffile.tiff
Julien Fouilhé

5

คุณรู้ขอบเขตของภาพหรือไม่? หากคุณรู้พิกัดขอบเขตของภาพคุณสามารถให้เรา gdal_translate ด้วย -a_srs (นี่เป็นการกำหนดการฉายภาพ) และ -a_ullr (นี่คือพิกัดขอบเขต) ฉันใช้สิ่งนี้เพื่อแปลง. jpg ของภาพโซนาร์จากหน่วยโซนาร์แบบตกปลาราคาถูกเป็นแบบ Geotiffs


1
คุณกำลังบอกว่าฉันไม่จำเป็นต้องใช้ tiff2geotiff เพื่อเพิ่มส่วนขยายของภาพ (ใช่ฉันมีแล้ว) :) เจ๋ง! ใช่ฉันเห็นว่าในเอกสารฉันจะใช้มันแทน tiff2geotiff ขอบคุณ!
Julien Fouilhé

ไม่มีปัญหาฉันดีใจที่สิ่งนี้จะช่วยได้
Ryan Garnett
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.