Qgis/gdal无法识别来自无人机图像的元数据/空间参考

2024-06-10 18:15:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将无人机图像摄取到QGIS/googleearth引擎,但两者都无法识别图像的空间引用,也就是说,QGIS/GDAL没有从文件中提取元数据

问题: 当我将jpeg文件导入QGIS或ArcGIS时,这两个文件都告诉我图像没有参考系(例如WARNING CRS was undefined : defaulting to CRS EPSG:4326 - WGS 84;但是,从元数据中我知道图像有我可以提取的纬度/经度值。没有CRS我就不能继续我的分析。此时我对投影图像不感兴趣,我只需要一个地理参考系统

我试过了:

  • 使用exiftool.exe作为子例程从.jpeg文件提取元数据。这很好,我可以修改元数据,但我不知道如何更改它,以便QGIS/ArcGIS识别Lat/Lon值,并将图像定位到它应该位于的位置
  • 使用GDAL将jpeg文件导出为geotiff文件,如下所示:
gdal.Translate(outfile, infile, format = 'GTiff')

但是GeoTIFF与jpeg具有完全相同的元数据

  • 我也尝试过手动设置SRS
gdal.Translate(outfile, infile, format = 'GTiff', outputSRS='EPSG:4326')
  • 我还尝试使用众所周知的文本(wkt)手动创建投影文件(*.prj),如下所示:
with open(basename+'.prj', 'w') as file:
        file.write('PROJCS["WGS 84 / UTM zone 56S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","32756"]]')
  • SetMetadata()也不起作用。我试过:
ras = gdal.Open(input_file)
ras.SetMetadata({'Latitude': 'lat_from_metadata', 'Longitude':'lon_from_metadata'})

这些方法都没有帮助我在图像文件上设置CRS,无论是jpeg还是TIFF

如何在图像文件上设置SRS,以便QGIS/ArcGIS识别图像的位置? 任何提示都非常感谢


Tags: 文件数据图像parameterepsgtranslatefilejpeg