查找特定长/纬度坐标的前哨瓦


11

我正在构建一个工具,可从“ Sentinel-2 on AWS”下载图像

将Long / Lat坐标转换为特定的Sentinel磁贴时遇到麻烦。我知道Sentinel 2使用MGRS,并且我尝试将Long / Lat简单地转换为MGRS,但由于精度低,我得到了S2A tile ID。它有效,但并非总是如此。

例如,Long / Lat 34.665,31.625在MGRS中解析为“ 36R XA”,但前哨瓦36RXA不存在。

使用长/纬度坐标确定前哨瓦的正确方法是什么?



是的,我看到了这个KML。那是我的最后一招,因为查询很昂贵。我希望我可以通过计算来实现
GetUsername


您可以在Google Cloud中执行此操作,因为它们在BigQuery中拥有所有元数据,例如SELECT * FROM [bigquery-public-data:cloud_storage_geo_index.sentinel_2_index] where north_lat < 50 and north_lat > 49 order by sensing_time LIMIT 10,但是您提到了AWS,所以我想这无济于事。
约翰·鲍威尔,

Answers:


4

MGRS中的S2分区在数据位于UTM区域之间且图块重叠时特别棘手,请参见下图。从左到右的图块是20_M_QE,20_M_RE,21_M_SV和21_M_TV:

通过opensearch对该区域进行的搜索返回了一个S2采集,该采集分为两个图块20_M_RE和21_M_TV:

20_M_RE

在此处输入图片说明

因此,如果您对表示的21_M_SV切片区域中的数据感兴趣,则应使用20_M_RE。注意,在示例中使用的表示形式(从NGA获得的shapefile)未表示图块之间的重叠。

获取切片的最安全方法似乎是使用opensearch搜索您的AOI,然后检索返回的切片,或使用bugmenot123提到的sentinel2-util工具。

如果您选择将经度/纬度映射到图块,我建议使用ESA提供的KML作为图块网格定义:

https://sentinel.esa.int/web/sentinel/missions/sentinel-2/data-products


4

这样的工具已经存在。它称为Sentinelsat,其源代码可在GitHub上找到。它提供了命令行界面和Python API。它与Sentinel 1和2一起使用。空间查询基于多边形而不是点,但是,这正是您所需要的。

编辑:1)您可以使用查询功能返回产品ID(或产品ID列表)。在命令行中,您可以省略-d选项以免启动下载(并使用-f选项创建每个图像的轮廓)2)关于geojson,您可以在下面看到wkt可能是直接使用。如@ThingumaBob所述,您可以根据纬度/经度坐标创建一个微小的多边形。但是实际上,我已经使用GeoJason进行了测试,并且效果还不错。因此,无需将点转换为多边形。

# search by polygon, time, and Hub query keywords
footprint = geojson_to_wkt(read_geojson('map.geojson'))
products = api.query(footprint,
                     date = ('20151219', date(2015, 12, 29)),
                     platformname = 'Sentinel-2',
                     cloudcoverpercentage = (0, 30))

可以调整为

# search by point, time, and Hub query keywords

products = api.query('POINT({0} {1})'.format(longitude,latitude),
                     date = ('20151219', date(2015, 12, 29)),
                     platformname = 'Sentinel-2',
                     cloudcoverpercentage = (0, 30))

感谢@radouxju,我知道Sentinelsat,但我的具体需求是获取相应经度/纬度的图块名称。我不知道Sentinelsat是否这么做
user1186 '19

@ user1186 在纬度/经度附近产生一个小的 bbox来填充API?似乎很愚蠢,但可能就是您所需要的...
geozelot

@ThingumaBob,我可以这样做,但是API将返回NDVI值。我只想要
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.