将地理配准数据添加到TIFF图像中


10

我想.tiff.png文件创建地理参考文件。因此,我.tiff使用以下命令行将.png转换为普通文件:

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绑定,则GDAL / OGR当前不正确支持PHP。 trac.osgeo.org/gdal/wiki/GdalOgrInPhp
尼克斯2012年

Answers:


7

而不是使用convert,您可以尝试使用gdal_translatepng将png转换为tiff,然后使用gdal_warp对其进行地理定位(假设您已经为tiff创建了tfw文件)吗?


这是我现在使用的命令行:gdal_translate -scale pngfile.png tifffile.tiff
JulienFouilhé2012年

5

您知道图片的范围吗?如果您知道图像的边界坐标,则可以使用-a_srs(这将分配投影)和-a_ullr(这是边界坐标)进行gdal_translate。我已经使用它来将声纳图像的.jpg从低成本的捕鱼声纳单元转换为Geotiffs。


1
所以您是说我不需要使用tiff2geotiff添加图像范围(是的,我拥有它们)?:)太酷了!是的,我在文档中看到,我将用它代替tiff2geotiff,谢谢!
JulienFouilhé2012年

没问题,我很高兴这会有所帮助
Ryan Garnett 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.