gpt4 book ai didi

python - 如何使用 python 获取 eumetsat 图像像素的纬度和经度?

转载 作者:太空狗 更新时间:2023-10-30 01:29:59 25 4
gpt4 key购买 nike

我有一个 3712x3712 像素大小的地球同步 eumetsat 卫星图像。地球周围有一些黑色,因此图像看起来像这样:

Example image that is not an eumetsat image

对于地球上的每个像素,我想得到它的纬度和经度。我知道有 pyproj,我能够像这样实例化一个投影:

sat = pyproj.Proj('+proj=geos +lon_0 +h=035785831.0 +x_0=0 +y_0=0')

但获取像素的纬度(使用 sat(x,y,inverse=True) 其中 xy 是像素的坐标图像)显然是不可能的,因为投影不知道我图像的尺寸(3712x3712)。

我错过了什么?

最佳答案

我认为您使用的是正确的投影库和设置。

eumetsat 网站上报告了典型的像素分辨率(每像素千米)here它报告每个像素约 3 公里。

您可以通过对子午线上的 x、y 进行经/纬度转换并将其除以像素数来检查它(-81 度,81 度是最大范围,请参阅 eumetsat 站点以获取引用,http://www.eumetsat.int/ ):

import pyproj
sat = pyproj.Proj('+proj=geos +lon_0 +h=035785831.0 +x_0=0 +y_0=0')
x,y = sat( 81.299, 0, radians = False, errcheck = True)
print (x * 2.0 / 3712.0 ) / 1000.0

将为您提供 2.927 的值,这符合 eumetsat 提供的信息。

接下来,您可以通过定义一组众所周知的 map 点(例如海岸特征)、确定它们的 x/y 位置并在线查找它们的纬度/经度坐标来进一步校准。您可以尝试一系列像素分辨率并检查哪一个最适合或使用更精细的例程。

分辨率可能取决于您与赤道的距离,请参阅 here ).因此,您可能需要在多个纬度使用上述例程。

关于python - 如何使用 python 获取 eumetsat 图像像素的纬度和经度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11264508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com