การค้นหาไทล์เนลสำหรับพิกัด Long / Lat เฉพาะ


11

ฉันกำลังสร้างเครื่องมือที่ดาวน์โหลดภาพจาก "Sentinel-2 on AWS"

ฉันมีปัญหาในการแปลพิกัด Long / Lat เป็นกระเบื้อง Sentinel ที่เฉพาะเจาะจง ฉันรู้ว่า Sentinel 2 ใช้ MGRS และฉันพยายามที่จะแปลง Long / Lat เป็น MGRS และด้วยความแม่นยำต่ำฉันจะได้รับรหัสประจำตัว S2A และใช้งานได้ แต่ไม่เสมอไป

ตัวอย่างเช่น Long / Lat 34.665,31.625 แก้ไขเป็น "36R XA" ใน MGRS แต่ไม่มี Sentinel ไทล์ 36RXA

อะไรคือวิธีที่ถูกต้องในการพิจารณาไทล์เนลโดยใช้พิกัด Long / Lat


1
ตัดกับตารางการเรียง Sentinel-2หรือไม่
2856

ใช่ฉันเห็น 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 ดังนั้นฉันเดาว่านี่จะไม่ช่วยได้
John Powell

คำตอบ:


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 โปรดทราบว่าการเป็นตัวแทนที่ใช้ในตัวอย่าง (shapefile ที่ได้รับจาก 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) คุณสามารถส่งคืน 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 แต่ความต้องการเฉพาะของฉันคือการได้รับชื่อไทล์สำหรับ lat / lon ที่เกี่ยวข้อง ฉันไม่ทราบว่า Sentinelsat ทำเช่นนั้นได้หรือไม่
1186

@ user1186 สร้าง bbox เล็ก ๆรอบ ๆ lat / lon เพื่อเลี้ยง API? ดูเหมือนโง่ แต่อาจจะเป็นสิ่งที่คุณต้องการ ...
5396

@ThingumaBob ฉันสามารถทำได้ แต่ API จะส่งคืนค่า NDVI ฉันต้องการกระเบื้อง ID เท่านั้นหากมีวิธีการทำเช่นนั้นผ่าน API ฉันจะรักที่จะรู้
user1186
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.