Suchen der Sentinel-Kachel für eine bestimmte Long / Lat-Koordinate

11

Ich baue ein Tool, das Bilder von "Sentinel-2 on AWS" herunterlädt.

Ich habe Probleme beim Übersetzen von Long / Lat-Koordinaten in eine bestimmte Sentinel-Kachel. Ich weiß, dass Sentinel 2 MGRS verwendet, und ich habe versucht, Long / Lat einfach in MGRS zu konvertieren. Mit geringer Genauigkeit erhalte ich die S2A-Kachel-ID. Und es funktioniert, aber nicht immer.

Beispielsweise wird Long / Lat 34.665,31.625 in MGRS in "36R XA" aufgelöst, aber die Sentinel-Kachel 36RXA ist nicht vorhanden.

Was wäre der richtige Weg, um Sentinel-Kacheln anhand von Long / Lat-Koordinaten zu bestimmen?

GetUsername
quelle
1
Mit dem Sentinel-2-Kachelgitter schneiden ?
user2856
Ja, ich habe diese KML gesehen. Das wäre mein letzter Ausweg, da Suchvorgänge teuer sind. Ich hoffe, ich kann es mit Berechnung tun
GetUsername
3
Überprüfen Sie heraus github.com/sat-utils/sentinel2-util
bugmenot123
Sie können dies in Google Cloud tun, da alle Metadaten in BigQuery enthalten sind, z. B. 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 10aber Sie erwähnen AWS. Ich denke, dies wird nicht helfen.
John Powell

Antworten:

4

Die S2-Partitionierung in MGRS ist schwierig, insbesondere wenn sich die Daten zwischen UTM-Zonen befinden und sich die Kacheln überlappen (siehe Abbildung unten). Die Kacheln von links nach rechts sind 20_M_QE, 20_M_RE, 21_M_SV und 21_M_TV:

Eine Suche durch OpenSearch für die Region gibt eine S2-Erfassung zurück, die in zwei Kacheln unterteilt ist: 20_M_RE und 21_M_TV:

20_M_RE

Geben Sie hier die Bildbeschreibung ein

Wenn Sie also an Daten in der dargestellten Kachelregion 21_M_SV interessiert sind, sollten Sie 20_M_RE verwenden. Beachten Sie, dass die in den Beispielen verwendete Darstellung (Shapefile von NGA) die Überlappung zwischen Kacheln nicht darstellt.

Der sicherste Weg, um die Kacheln zu erhalten, scheint darin zu bestehen, Ihre AOI mithilfe von opensearch zu durchsuchen und dann die zurückgegebenen Kacheln abzurufen oder das von bugmenot123 erwähnte Tool sentinel2-util zu verwenden.

Wenn Sie Long / Lat Kacheln zuordnen möchten, empfehle ich die Verwendung der von der ESA bereitgestellten KML als Kachelrasterdefinition:

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

Fred Liporace
quelle
4

Ein solches Tool gibt es bereits. Es heißt Sentinelsat und die Quelle ist auf GitHub verfügbar . Es bietet eine Befehlszeilenschnittstelle und eine Python-API. Es funktioniert mit Sentinel 1 und 2. Die räumliche Abfrage basiert auf einem Polygon und nicht auf einem Punkt, ansonsten ist dies genau das, was Sie benötigen.

BEARBEITEN: 1) Sie können die Produkt-ID (oder Produkt-ID-Liste) über die Abfragefunktion zurückgeben. In der Befehlszeile können Sie die Option -d weglassen, um den Download nicht zu starten (und die Option -f verwenden, um den Footprint jedes Bilds zu erstellen). 2) In Bezug auf den Geojson sehen Sie unten, dass ein wkt sein könnte stattdessen direkt verwendet. Wie von @ThingumaBob erwähnt, können Sie basierend auf Ihren Lat / Long-Koordinaten ein winziges Polygon erstellen. Aber tatsächlich habe ich es mit einem Punkt GeoJason getestet und es hat auch gut funktioniert. Sie müssen Ihren Punkt also nicht in ein Polygon konvertieren.

# 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))

das könnte angepasst werden in

# 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
quelle
danke @radouxju, mir ist Sentinelsat bekannt, aber mein spezifisches Bedürfnis ist es, den Kachelnamen für einen entsprechenden Lat / Lon zu erhalten. Ich weiß nicht, ob Sentinelsat das tut
user1186
@ user1186 eine winzige bbox um das lat / lon produzieren, um die API zu füttern? scheint albern, könnte aber alles sein, was Sie brauchen ...
Geozelot
@ThingumaBob, ich könnte das tun, aber die API gibt NDVI-Werte zurück. Ich möchte nur die Kachel-ID, wenn es eine Möglichkeit gibt, dies über die API zu tun, würde ich gerne wissen
user1186