rasterio ford geotiff 中的坐标参考系变换
Posted
技术标签:
【中文标题】rasterio ford geotiff 中的坐标参考系变换【英文标题】:Coordinate reference system transformation in rasterio for geotif 【发布时间】:2019-09-24 18:27:20 【问题描述】:我有以下geotif file。我编写了简单的脚本将其坐标转换为谷歌地图坐标系
import rasterio
import rasterio.features
import rasterio.warp
DATA = "/Users/Desktop/TextureUSDA_23/"
def main():
with rasterio.open(DATA + 'textureUSDA_eu23.tif') as dataset:
mask = dataset.dataset_mask()
print(dataset.crs)
for geom, val in rasterio.features.shapes(mask, transform=dataset.transform):
geom = rasterio.warp.transform_geom(dataset.crs, 'EPSG:4326', geom, precision=6)
print(geom)
if __name__ == "__main__":
main()
此脚本的输出是转换后的坐标列表,即[-4.414515, 57.507086]
。但是,如果我输入这个坐标,那么它们将指向indian ocean,但它们应该放在欧洲。
你能解释一下我错过了什么吗?
关于 geotiff 的其他信息
PROJCS["GRS_1980_IUGG_1980_Lambert_Azimuthal_Equal_Area",GEOGCS["GCS_GRS_1980_IUGG_1980",DATUM["unknown",SPHEROID["GRS80",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1,AUTHORITY["EPSG","9001"]]]
【问题讨论】:
【参考方案1】:坐标按 x,y 顺序返回,即先经度后纬度。谷歌地图(和我见过的其他类似服务)期望坐标的顺序是纬度然后是经度。如果你交换坐标的顺序,你会得到一个spot near Inverness,我猜你在找什么。不同技术人员对 lon/lat 排序有一个很好的总结here。
【讨论】:
哇。我将尝试测试交换坐标。顺便说一句,我的要求太多了,但可以验证我是否走在正确的道路上?即我的代码从地理 tiff 中提取坐标是否正确? 在不确切了解您要做什么的情况下,它看起来像是一组合理的步骤,用于从图像中的特征获取位置。 我想从地理 tiff 中提取坐标并在谷歌地图中绘制它们。似乎我走在正确的道路上。感谢您的回复。以上是关于rasterio ford geotiff 中的坐标参考系变换的主要内容,如果未能解决你的问题,请参考以下文章
如何使 R 的“光栅”包区分 GeoTIFF 中的正旋转矩阵和负旋转矩阵?