ทำงาน กับข้อมูล Hyperion จาก Earth Observing-1 (EO-1) เลยทำให้ได้ทดลองระบบ ดาวน์โหลดภาพถ่ายดาวเทียมอัตโนมัติ ซึ่งระบบนี้ผมใช้ USGS Lib เป็นหลังบ้าน
โดย USGS เป็น Lib ของทีม Mapbox API ที่ทำให้เราสามารถเข้าถึงคลังข้อมูลภาพถ่ายดาวเทียมของ USGS ได้อย่างสะดวก รองรับการค้นหา และการดาวน์โหลดข้อมูลออนไลน์ผ่าน HTTP protocol
ทั้งโหมดของ CLI และ Python ทำให้ง่ายมากในการเชื่อมระบบ กับ Image Processing Service ที่พัฒนาขึ้น
บทความนี้ผมขอสาธิตตัวอย่างการทำงานเบื้องต้น ให้ได้ชม มีขั้นตอนต่อไปนี้
- ติดตั้ง USGS Lib จะเอา source มา compile และใช้เองก็ได้ เพราะเป็น opensource เราสามารถดาวน์โหลดได้จาก Github เลยสะดวกมาก ซึ่งถ้าใครใช้ Linux ผมแนะนำวิธีนี้ง่ายและสะดวก
– กรณีถ้าใช้กับ Python ก็ทำการ ติดตั้งผ่านตัว setup.py ได้ ไม่ยากเช่นกัน - ที่ต้องมีคือ user account ของ USGS สมัครไม่ยาก ถ้าใครเคยเป็นสมาชิก หรือใช้งานอยู่แล้วก็ ใช้อันเดียวกับ web application นั้นได้เลย
โดย บริการข้อมูลภาพถ่ายดาวเทียม มีเยอะ หลากหลายมาก เช่น Landsat 1-8, ASTER, AVHRR, EOS-1 Hyperion, Earth Observing-1 ALI, MODIS, Interferometric Synthetic Aperture Radar (IFSAR) เป็นต้น ตัวอย่างผมจะเน้นไปที่โหนดของ EarthExplorer - การเรียกใช้งานทำไ้ด 2 แบบผ่าน
3.1 CLI การใช้ command line ตัวอย่างเช่นusgs search –node EE EO1_HYP_PUB –start-date 20160401 –end-date 20170501 –geojson | gist -f hyperion-20160401-20170501.geojsonผลลัพธ์ที่ได้กลับมาเป็น geojson file เป็นรายงานภาพดาวเทียมที่ค้นพบ บวกกับ geometry ของ ระวาง ของภาพถ่ายซีนต่างๆ
3.2 เรียกผ่าน USGS API
ทำได้ไม่ยาก ใช้ python เรียกฟังกช์่นหลักๆของ USGS เช่น
usgs.api.
download
(dataset, node, entityids, product)
usgs.api.
metadata
(dataset, node, sceneids, extended=False, api_key=None)
usgs.api.
search
(dataset, node, lat=None, lng=None, distance=100, ll=None, ur=None, start_date=None, end_date=None, where=None, max_results=50000, starting_number=1, sort_order=’DESC’, extended=False, api_key=None)
เบื้องต้นเรามาลอง api.search เขียนโปรแกรมเบื้องต้นดังภาพ
ผลลัพธ์ที่ได้ เป็น json file จาก USGS Server
ค้นเจอต้องการข้อมูลเพิ่ม ใช้ api.metadata เรียกดูซีนเฉพาะ ที่เราต้องการได้ ดังต่อไปนี้
ผลลัพธ์ที่ได้เป็น XML ไฟล์ ระบุข้อมูลเฉพาะ header ของภาพ ที่เราต้องการ ในตัวอย่างนี้คือ Hyperion
กรณีต่อจากนี้เมื่อเราได้ metadata และ info ของ file ภาพที่เราต้องการ ครบแล้ว เราทราบ id และ scene number ที่ต้องการจากนั้นก็เริ่มใช้ api.download มาเก็บ ในเครื่อง server ของเราได้ โดยถ้าเราสามารถเขียน batch ให้มัน check การอัพเดตภาพต้นทาง เพื่อดาวน์โหลดอัตโนมัติ จากนั้นก็มาทำ GDAL Process ต่อไปได้เลย สะดวกและมีประสิทธิภาพมาก
ตัวอย่าง Sentinel-2 ที่ใช้ python ทำการ download มา
ทดลองดาวน์โหลดมาใช้งานได้ที่
https://github.com/kapadia/usgs
ใส่ความเห็น