Tiff görüntüsüne coğrafi referans verileri ekleme


10

.tiffBir .pngdosyadan coğrafi referanslı bir dosya oluşturmak istiyorum . Bu yüzden .tiffaşağıdaki komut satırını kullanarak .png dosyasını normal bir dosyaya dönüştürürüm :

convert image.png image.tiff

Burada, tüm iyi çalışıyor, iyi .tiffgörüntüler geçerli bir dosya var . Ardından, içine bazı coğrafi referans verileri eklemek istiyorum. Bunu yapmak için şöyle bir araç buldum tiff2geotiff, şu şekilde kullanıyorum:

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

Bu, QGis'e aktarılan, her yerde siyah olması dışında iyi bir yerde iyi görüntülenen siyah bir görüntü veriyor ( coğrafi referanslı verilerin iyi eklendiğinin kanıtı ).

Bu nedenle, yaptığımda:

gdalinfo georeferenced.tiff

Ben elde ederim:

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

İlk uyarının sorun olabileceğini düşünüyorum ...

Bunu yapmanın nedenini veya başka bir yolunu bilen biri var mı? Komut satırında veya içinde çözümler arıyorum PHP.

Teşekkür ederim !


Çözüm

Resimlere gdal_translategeoreferencing verileri ekleyebileceğimi öğrendim.tiff , bu yüzden png'den dönüştüren ve georeferencing verilerini ekleyen komut satırı llx ury urx lly(elbette extents ( ) öğesini değiştirmeniz gerekir ):

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

gdal php bağlamaları varsa sorunuz hakkında, PHP şu anda GDAL / OGR tarafından düzgün bir şekilde desteklenmemektedir. trac.osgeo.org/gdal/wiki/GdalOgrInPhp
nickves

Yanıtlar:


7

Kullanmak yerine convert, gdal_translatepng'yi tiff'e dönüştürmek ve sonra gdal_warp (tiff için bir tfw dosyası oluşturduğunuzu varsayarak) kullanarak coğrafi referans vermek için kullanmayı deneyebilir misiniz?


İşte şimdi kullandığım komut satırı:gdal_translate -scale pngfile.png tifffile.tiff
Julien Fouilhé

5

Görüntünün kapsamını biliyor musunuz? Eğer görüntünün sınırlayıcı koordinatlarını biliyorsanız -a_srs (bu projeksiyonu atar) ve -a_ullr (bu sınırlayıcı koordinatlardır) ile gdal_translate yapabilirsiniz. Bunu sonar görüntülerinin .jpg'sini düşük maliyetli bir balıkçılık sonar ünitesinden geotifflere dönüştürmek için kullandım.


1
Yani görüntünün boyutlarını eklemek için tiff2geotiff kullanmam gerekmediğini söylüyorsunuz (evet bende var)? :) Güzel ! Evet, belgelerde tiff2geotiff yerine kullanacağımı görüyorum, teşekkürler!
Julien Fouilhé

Sorun değil, bunun yardımcı olacağına sevindim
Ryan Garnett
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.