【问题标题】:How to get latitude and longitude for a pixel of a eumetsat image using python?如何使用 python 获取 eumetsat 图像像素的纬度和经度?
【发布时间】:2012-07-01 03:29:59
【问题描述】:

我有一张 3712x3712 像素大小的地球静止 eumetsat 卫星图像。地球周围有一些黑色,所以图像看起来像这样:

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

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

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

我错过了什么?

【问题讨论】:

  • 我不熟悉 pyproj,但这是否需要根据一些已知位置“计时”地球,即实现澳大利亚相对于图片的位置? pyproj 已经这样做了吗?还是您只是指圆形的相对纬度?
  • 对不起,我不明白你在问什么。我希望能够做到这一点:对于图像中的像素:打印纬度(像素)
  • 您需要多准确?如果你能避免几公里的误差,你可以将地球近似为一个球体,做一些简单的几何,然后完全忘记 pyproj(我对 pyproj 一无所知,但我可以帮助几何)。
  • 这是为了科学,不幸的是尽可能准确。 ://
  • 很容易确定您认为卫星在 0 经度以上的假设是错误的,因为澳大利亚是可见的:-o 再试一次。

标签: python geocoding geospatial satellite-image proj


【解决方案1】:

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

在 eumetsat 网站here 上报告了典型的像素分辨率(km's per pixel) 它报告每像素大约 3 公里。

您可以通过在经线上将 lon/lat 转换为 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

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

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

分辨率可能取决于您与赤道的距离,请参阅here)。所以你可能需要在几个纬度上使用上面的例程。

【讨论】:

    【解决方案2】:

    首先,这不是 EUMETSAT 图像。您的图像显示澳大利亚,地球同步 EUMETSAT 卫星位于(大约)(0°N,0°E)和(0°N,41.5°E)上方,用于零度服务 (ZDS) 和印度洋数据覆盖 (IODC) ) 服务,分别。两种观点都看不到澳大利亚。您的卫星图像可能来自日本气象厅 (JMA) 运营的 Multifunctional Transport Satellites (MTSAT) 成像仪,直到 2015 年被 HIMAWARI 取代。

    要从 Meteosat SEVIRI、MTSAT、HIMAWARI AHI 或任何其他地球观测成像仪获取图像中像素的地理位置,您还可以考虑使用 库读取数据:

    from satpy import Scene
    from glob import glob
    filenames = glob('/path/to/your/files/*')  # for SEVIRI, can be HRIT, Native, or NetCDF
    sc = Scene(filenames=filenames)
    sc.load(["IR_108"], upper_right_corner="NE")
    print(sc["IR_108"].attrs["area"].get_lonlat_from_array_coordinates(1000, 2000))
    

    给出:

    (-24.259016114751823, -3.9842388279769465)

    对于地球静止图像,这不是最快的方法,因为答案是不变的,因此您不需要实际读取数据。但是,使用经过良好测试和广泛使用的库可以降低您出错的风险。至少,它可以作为参考。请记住,对于许多卫星成像仪,不同的通道具有不同的空间分辨率,因此答案可能取决于通道。 1 级数据也可以存储为先南后北,这样简单的阅读和显示就会在图像的上部显示南部而在下部显示北部,这与映射约定相反。因此,值得验证您的结果是否准确。

    【讨论】:

      猜你喜欢
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-22
      • 1970-01-01
      • 2013-06-30
      • 1970-01-01
      • 2011-04-16
      相关资源
      最近更新 更多