Нахождение тайла Стража для определенной координаты долготы / широты

11

Я создаю инструмент, который загружает изображения из "Sentinel-2 на AWS"

У меня проблема с переводом координат Long / Lat в конкретную плитку Sentinel. Я знаю, что Sentinel 2 использует MGRS, и я попытался просто конвертировать Long / Lat в MGRS, и с низкой точностью я получил идентификатор плитки S2A. И это работает, но не всегда.

Например, Long / Lat 34.665,31.625 преобразуется в «36R XA» в MGRS, но плитка Sentinel 36RXA не существует.

Каков будет правильный способ определения плитки Sentinel с использованием координат Long / Lat?

GetUserName
источник
1
Пересечь с плиткой Sentinel-2 ?
user2856
Да, я видел этот KML. Это было бы моим последним средством, так как поиск дорог. Я надеюсь, что смогу сделать это с помощью вычислений
GetUsername
3
Проверьте github.com/sat-utils/sentinel2-util
bugmenot123
Вы можете сделать это в 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, поэтому, думаю, это не поможет.
Джон Пауэлл

Ответы:

4

Разделение S2 в MGRS особенно сложно, когда данные находятся между зонами 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), перекрытие между тайлами не представлено.

По-видимому, самым безопасным способом получения плиток является поиск в вашем AOI с использованием opensearch, а затем получение возвращенных плиток или использование инструмента sentinel2-util, как упомянуто bugmenot123.

Если вы решите отобразить Long / Lat на плитки, я рекомендую использовать KML, предоставленный ESA, в качестве определения сетки листов:

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

Фред Липорас
источник
4

Такой инструмент уже существует. Он называется Sentinelsat, а источник доступен на GitHub . Он предлагает интерфейс командной строки и Python API. Он работает с Sentinel 1 и 2. Пространственный запрос основан на многоугольнике, а не на точке, но в остальном это именно то, что вам нужно.

РЕДАКТИРОВАТЬ: 1) вы можете вернуть идентификатор продукта (или список идентификаторов продуктов) с помощью функции запроса. А из командной строки вы можете опустить опцию -d, чтобы не запускать загрузку (и использовать опцию -f, чтобы создать след каждого изображения). 2) Что касается геоджона, вы можете увидеть ниже, что 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
источник
спасибо @radouxju, я знаю о Sentinelsat, но моя конкретная потребность в том, чтобы получить имя плитки для соответствующего lat / lon. Я не знаю, делает ли это Sentinelsat
user1186
@ user1186 создать крошечный bbox вокруг lat / lon для подачи API? кажется глупым, но может быть все, что вам нужно ...
geozelot
@ThingumaBob, я мог бы сделать это, но API будет возвращать значения NDVI. Я хочу только идентификатор плитки, если есть способ сделать это через API, я хотел бы знать
user1186