特定の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 10AWSについて言及しているので、これは役に立たないと思います。
ジョンパウエル

回答:


4

データがUTMゾーンの間にあり、タイルがオーバーラップしている場合、MGRSでのS2パーティショニングは特に注意が必要です。下の図を参照してください。左から右へのタイルは、20_M_QE、20_M_RE、21_M_SV、および21_M_TVです。

領域のopensearchを介した検索では、20_M_REと21_M_TVの2つのタイルで分割された1つの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 は、lat / lonの周りに小さな bboxを作成してAPIにフィードしますか?ばかげているように見えますが、必要なものはすべて
...-ジオゼロット

@ThingumaBob、それはできましたが、APIはNDVI値を返します。APIを介してそれを行う方法があれば、タイルIDのみが必要です。私は知りたいです
user1186
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.