특정 Long / Lat 좌표에 대한 Sentinel 타일 찾기


11

"Sentinel-2 on AWS"에서 이미지를 다운로드하는 도구를 만들고 있습니다

Long / Lat 좌표를 특정 Sentinel 타일로 변환하는 데 문제가 있습니다. Sentinel 2는 MGRS를 사용하고 Long / Lat을 MGRS로 간단히 변환하려고 시도했으며 정밀도가 낮 으면 S2A 타일 ID를 얻습니다. 그리고 항상 작동하는 것은 아닙니다.

예를 들어 Long / Lat 34.665,31.625는 MGRS에서 "36R XA"로 해석되지만 Sentinel 타일 36RXA는 존재하지 않습니다.

Long / Lat 좌표를 사용하여 Sentinel 타일을 결정하는 올바른 방법은 무엇입니까?


1
Sentinel-2 타일링 그리드 와 교차 합니까?
user2856

예,이 KML을 보았습니다. 조회 비용이 비싸기 때문에 그것이 나의 마지막 수단이 될 것입니다. 나는 계산으로 그것을 할 수 있기를 바랍니다
GetUsername


예를 들어 BigQuery에 모든 메타 데이터가 있으므로 Google Cloud에서이 작업을 수행 할 수 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

MGRS에서 S2 파티셔닝은 데이터가 UTM 영역 사이에 있고 타일이 겹칠 때 특히 까다 롭습니다 (아래 그림 참조). 왼쪽에서 오른쪽으로 타일은 20_M_QE, 20_M_RE, 21_M_SV 및 21_M_TV입니다.

지역에 대한 opensearch를 통해 검색하면 20_M_RE 및 21_M_TV의 두 타일에서 깨진 하나의 S2 획득이 반환됩니다.

20_M_RE

여기에 이미지 설명을 입력하십시오

따라서 표시된 21_M_SV 타일 영역의 데이터에 관심이있는 경우 20_M_RE를 사용해야합니다. 예에서 사용 된 표현 (NGA에서 얻은 쉐이프 파일)은 타일 간 겹침을 나타내지 않습니다.

타일을 얻는 가장 안전한 방법은 opensearch를 사용하여 AOI를 검색 한 다음 반환 된 타일을 검색하거나 bugmenot123에서 언급 한 sentinel2-util 도구를 사용하는 것 같습니다.

Long / Lat을 타일에 매핑하기로 선택한 경우 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

@ user1186 은 API를 공급하기 위해 위도 / 경 주위에 작은 bbox를 생성 합니까? 바보처럼 보이지만 당신이 필요로 할 수있는 모든 것입니다 ...
geozelot

@ThingumaBob, 그렇게 할 수 있지만 API는 NDVI 값을 반환합니다. 타일 ​​ID 만 원합니다. API를 통해이를 수행 할 수있는 방법이 있다면 알고 싶습니다.
user1186
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.