如何使用GDAL从TIFF文件和4个角的纬度和经度创建Geotiff

11

我有一张没有地理数据的TIFF格式图像(地图)。
我需要从我的图像获得GeoTIFF文件。我有我的地图每个角落的纬度和经度信息。如何将我的地理数据添加到我的图像中,并使用Google空间参考获取Geotiff?我知道GDAL可以帮助我完成这个操作。有人可以帮我构建一个命令吗?


你是在寻找一种编程语言库还是工具? - starbolin
也许你可以在这里找到答案:http://www.gdal.org/。GDAL是一个命令行工具,允许你转换图像、投影、指定边界等。 - Suvi Vignarajah
GDAL))). 我正在尝试使用它,但不知道如何将我的地理数据添加到图像文件中。你能帮我吗?我知道我需要使用gdal_translate,我的空间参考是Google地图(WGS84)。我的坐标是(纬度/经度)55.7234,37.555287 - 左下角 55.725406,37.551623 - 左上角 55.726058,37.553034 - 右上角 55.724892,37.556912 - 右下角。 - rowwingman
2个回答

16

你的回答有些正确,但请允许我扩展一下。你是对的,你需要使用gdal_translate工具来设置地面控制点(gcps)以进行图像地理参考。但命令行参数应该按照以下方式设置:

gdal_translate -of GTiff -a_srs EPSG:4326 -gcp [pixel line easting northing] -gcp [pixel line easting northing] -gcp [pixel line easting northing] sourcefile outpulfile

你不一定需要输出到 VRT 文件,如果你想对文件执行其他算法、向其中添加更多数据集或最终将其输出为 KML 等等(你可以在这里阅读更多信息:http://www.gdal.org/gdal_vrttut.html),VRT 文件就会很有用。但是出于这个目的,将 -of 设置为 GTiff 是理想的选择。

-a_srs EPSG:4326

接下来,在空间参考中,你是正确的,应该使用谷歌地球使用的WGS84作为参考坐标系。但是我们使用EPSG:4326进行指定——这只是测绘委员会达成一致以标识全球坐标系的编码方案(http://www.epsg.org/)。

-gcp [pixel line easting northing]

地面控制点可能是命令行参数中最棘手的部分。前两个数字表示您实际图像的像素和线坐标,例如(0,0)代表您的图像左上角。接下来应该跟随的第二组数字是您的图像应参照的相应纬度/经度坐标。现在,您只需要3个这样的-gcps,因为如果您的图像是正方形/矩形,第四个点将被确定。

sourcefile outputfile

这部分应该是不言自明的,只需记住它们都是*.tif文件。

现在,还有一件事情需要完成才能完成任务。您将需要实际将图像投影到坐标系统中以使其对齐。这是使用gdalwarp命令完成的(http://www.gdal.org/gdalwarp.html)。

gdalwarp -t_srs EPSG:4326 sourcefile outputfile

如果您需要除GeoTiff之外的其他输出文件格式,您需要指定一个-of(输出文件格式)参数 - 但默认格式为GTiff,因此您不需要指定。


1
请注意:你的 gdalwarpsourcefile 是你从 gdal_translate 工具中获得的 outputfile - Suvi Vignarajah
非常感谢您的解释。但是我不明白EPSG:4326是什么意思 - 它和WGS84是一样的吗? - rowwingman
1
是的,它们是一样的。让我给你提供一个来自 GIS StackExchange 的问题链接:http://gis.stackexchange.com/questions/3334/what-is-the-difference-between-wgs84-and-epsg4326 - Suvi Vignarajah
为什么我的图像右上角是(0;0)点? - rowwingman
我不太明白你的问题,请详细说明一下。 - Suvi Vignarajah
显示剩余2条评论

9
gdal_translate -of VRT -a_srs WGS84 -a_ullr 55.7254060 37.5516230 55.7248920 37.5569120 source image destination image 

gdal_translate -of VRT -a_srs "spacial reference" -a_ullr "left top lat/long" "right bottom lat/long" source image destination image

这对我有用,并正确设置了坐标参考系统。解释-a_ullr参数的作用和工作原理可能对其他人有用。 - Mark Williams

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接