ภาพประกอบโดยผู้เขียน
การวิเคราะห์ข้อมูลเชิงพื้นที่เป็นสาขาที่จัดการ แสดงภาพ และวิเคราะห์ข้อมูลประเภทพิเศษที่เรียกว่าข้อมูลเชิงพื้นที่ เมื่อเปรียบเทียบกับข้อมูลปกติ เรามีข้อมูลแบบตารางพร้อมคอลัมน์เพิ่มเติม ข้อมูลตำแหน่ง เช่น ละติจูดและลองจิจูด
ข้อมูลมีสองประเภทหลัก: ข้อมูลเวกเตอร์และข้อมูลแรสเตอร์ เมื่อต้องจัดการกับข้อมูลเวกเตอร์ คุณยังคงมีชุดข้อมูลแบบตาราง ในขณะที่ข้อมูลแรสเตอร์จะคล้ายกับรูปภาพมากกว่า เช่น ภาพถ่ายดาวเทียมและภาพถ่ายทางอากาศ
ในบทความนี้ ฉันจะมุ่งเน้นไปที่ข้อมูลแรสเตอร์ที่ได้รับจาก Google Earth Engine ซึ่งเป็นแพลตฟอร์มการประมวลผลแบบคลาวด์ที่ให้ข้อมูลแคตตาล็อกภาพถ่ายดาวเทียมจำนวนมาก ข้อมูลประเภทนี้สามารถเข้าใจได้ง่ายจาก Jupyter Notebook ของคุณโดยใช้แพ็คเกจ Python ช่วยชีวิตที่เรียกว่า Geemap มาเริ่มกันเลย!
Google Earth Engine คืออะไร
ภาพหน้าจอโดยผู้เขียน หน้าแรกของ Google Earth Engine
ก่อนที่จะเริ่มต้นกับ Python Library เราต้องเข้าใจถึงศักยภาพของ เครื่องยนต์ Google Earth- แพลตฟอร์มบนคลาวด์นี้ขับเคลื่อนโดยแพลตฟอร์ม Google Cloud โฮสต์ชุดข้อมูลเชิงพื้นที่สาธารณะและฟรีเพื่อวัตถุประสงค์ทางวิชาการ องค์กรไม่แสวงผลกำไร และธุรกิจ
ภาพหน้าจอโดยผู้เขียน ภาพรวมของแคตตาล็อกข้อมูล Earth Engine
ข้อดีของแพลตฟอร์มนี้คือมีแค็ตตาล็อกข้อมูลแรสเตอร์และเวกเตอร์หลายเพตะไบต์ ซึ่งจัดเก็บไว้ในเซิร์ฟเวอร์ Earth Engine คุณสามารถมีภาพรวมที่รวดเร็วได้จากสิ่งนี้ ลิงค์- นอกจากนี้ยังมี API เพื่ออำนวยความสะดวกในการวิเคราะห์ชุดข้อมูลแรสเตอร์
Geemap คืออะไร?
ภาพประกอบโดยผู้เขียน ห้องสมุดจีแมป
จีแมป เป็นห้องสมุด Python ที่ช่วยให้วิเคราะห์และแสดงภาพข้อมูลเชิงพื้นที่จำนวนมหาศาลจาก Google Earth Engine
ก่อนแพ็คเกจนี้ เป็นไปได้ที่จะส่งคำขอการคำนวณผ่าน JavaScript และ Python API แล้ว แต่ Python API มีฟังก์ชันที่จำกัดและขาดเอกสารประกอบ
เพื่อเติมเต็มช่องว่างนี้ Geemap ถูกสร้างขึ้นเพื่อให้ผู้ใช้สามารถเข้าถึงทรัพยากรของ Google Earth Engine โดยใช้โค้ดเพียงไม่กี่บรรทัด Gemap ถูกสร้างขึ้นบน Eartengine-API, ipyleaflet และ โฟเลี่ยม.
ในการติดตั้งไลบรารี่ คุณเพียงแค่ต้องมีคำสั่งต่อไปนี้:
pip install geemap
ฉันขอแนะนำให้คุณทดลองใช้แพ็คเกจที่น่าทึ่งนี้ใน Google Colab เพื่อทำความเข้าใจถึงศักยภาพสูงสุดของแพ็คเกจ ลองดูที่ หนังสือฟรีเล่มนี้ เขียนโดยศาสตราจารย์ ดร. Qiusheng Wu สำหรับการเริ่มต้นใช้งาน Geemap และ Google Earth Engine
จะเข้าถึง Earth Engine ได้อย่างไร?
ขั้นแรก เราต้องนำเข้าไลบรารี Python สองไลบรารีที่จะใช้ในบทช่วยสอน:
import ee
import geemap
นอกจาก geemap แล้ว เรายังนำเข้าไลบรารีไคลเอ็นต์ Earth Engine Python ที่เรียกว่า ee อีกด้วย
ไลบรารี Python นี้ใช้สำหรับการตรวจสอบสิทธิ์บน Earth Engine ได้ แต่จะเร็วกว่านี้ได้โดยใช้ไลบรารี Geemap โดยตรง:
m = geemap.Map()
m
คุณต้องคลิก URL ที่ส่งคืนโดยบรรทัดโค้ดนี้ ซึ่งจะสร้างรหัสการให้สิทธิ์ ขั้นแรก เลือกโปรเจ็กต์บนคลาวด์ จากนั้นคลิกปุ่ม "สร้างโทเค็น"
ภาพหน้าจอโดยผู้เขียน ตัวรับรองความถูกต้องของโน้ตบุ๊ก
หลังจากนั้นระบบจะขอให้คุณเลือกบัญชี ฉันขอแนะนำให้ใช้บัญชีเดียวกันกับ Google Colab หากคุณใช้งานอยู่
ภาพหน้าจอโดยผู้เขียน เลือกบัญชี
จากนั้นคลิกช่องทำเครื่องหมายถัดจากเลือกทั้งหมดแล้วกดปุ่ม "ดำเนินการต่อ" โดยสรุป ขั้นตอนนี้จะทำให้ Notebook Client สามารถเข้าถึงบัญชี Earth Engine ได้
ภาพหน้าจอโดยผู้เขียน อนุญาตให้ Notebook Client เข้าถึงบัญชี Earth Engine ของคุณ
หลังจากการดำเนินการนี้ รหัสการรับรองความถูกต้องจะถูกสร้างขึ้น และคุณสามารถวางลงในเซลล์สมุดบันทึกได้
ภาพหน้าจอโดยผู้เขียน คัดลอกรหัสยืนยันตัวตน
เมื่อป้อนรหัสยืนยันแล้ว คุณจะสามารถสร้างและแสดงภาพแผนที่เชิงโต้ตอบนี้ได้ในที่สุด:
m = geemap.Map()
m
ในตอนนี้ คุณเพียงแค่สังเกตแผนที่ฐานที่ด้านบนของ ipyleaflet ซึ่งเป็นแพ็คเกจ Python ที่ช่วยให้สามารถสร้างภาพแผนที่เชิงโต้ตอบภายใน Jupyter Notebook
สร้างแผนที่เชิงโต้ตอบ
ก่อนหน้านี้ เราได้เห็นวิธีการตรวจสอบและแสดงภาพแผนที่เชิงโต้ตอบโดยใช้โค้ดเพียงบรรทัดเดียว ตอนนี้ เราสามารถปรับแต่งแผนที่เริ่มต้นได้โดยการระบุละติจูดและลองจิจูดของเซนทรอยด์ ระดับการซูม และความสูง ฉันได้เลือกพิกัดของกรุงโรมเพื่อให้ศูนย์กลางมุ่งเน้นไปที่แผนที่ของยุโรป
m = geemap.Map(center=[41, 12], zoom=6, height=600)
m
หากเราต้องการเปลี่ยนแผนที่ฐาน มีสองวิธีที่เป็นไปได้ วิธีแรกประกอบด้วยการเขียนและเรียกใช้บรรทัดโค้ดต่อไปนี้:
m.add_basemap("ROADMAP")
m
หรือคุณสามารถเปลี่ยนแผนที่ฐานได้ด้วยตนเองโดยคลิกไอคอนประแจแหวนที่อยู่ทางด้านขวา
นอกจากนี้ เรายังเห็นรายการแผนที่ฐานที่ Geemap จัดเตรียมไว้:
basemaps = geemap.basemaps.keys()
for bm in basemaps:
print(bm)
นี่คือผลลัพธ์:
OpenStreetMap
Esri.WorldStreetMap
Esri.WorldImagery
Esri.WorldTopoMap
FWS NWI Wetlands
FWS NWI Wetlands Raster
NLCD 2021 CONUS Land Cover
NLCD 2019 CONUS Land Cover
...
ดังที่คุณสังเกตเห็นว่า มีแผนที่ฐานจำนวนมาก ซึ่งส่วนใหญ่มีให้ใช้งานด้วย OpenStreetMap, ESRI และ USGS
ประเภทข้อมูล Earth Engine
ก่อนที่จะแสดงศักยภาพสูงสุดของ Geemap สิ่งสำคัญคือต้องทราบประเภทข้อมูลหลัก 2 ประเภทใน Earth Engine ลองดูที่ เอกสารประกอบของ Google Earth Engine .
ภาพประกอบโดยผู้เขียน ตัวอย่างประเภทข้อมูลเวกเตอร์: เรขาคณิต คุณลักษณะ และการรวบรวมคุณลักษณะ
เมื่อจัดการข้อมูลเวกเตอร์ เราจะใช้ประเภทข้อมูลหลักสามประเภท:
- เรขาคณิต เก็บพิกัดที่จำเป็นในการวาดข้อมูลเวกเตอร์บนแผนที่ Earth Engine รองรับรูปทรงหลักสามประเภท: Point, LineString และ Polygon
- ลักษณะ โดยพื้นฐานแล้วคือแถวที่รวมเอารูปทรงเรขาคณิตและคุณลักษณะที่ไม่ใช่ทางภูมิศาสตร์เข้าด้วยกัน มันคล้ายกับคลาส GeoSeries ของ GeoPandas มาก
- ฟีเจอร์คอลเลกชัน เป็นโครงสร้างข้อมูลแบบตารางที่มีชุดคุณลักษณะ FeatureCollection และ GeoDataFrame มีแนวคิดที่เกือบจะเหมือนกัน
ภาพหน้าจอโดยผู้เขียน ตัวอย่างประเภทข้อมูลรูปภาพ มันแสดงแบบจำลองระดับความสูงดิจิตอลเรียบของออสเตรเลีย (DEM-S)
ในโลกของข้อมูลแรสเตอร์ เรามุ่งเน้นที่ ภาพ วัตถุ รูปภาพของ Google Earth Engine ประกอบด้วยหนึ่งแบรนด์ขึ้นไป โดยแต่ละแบนด์มีชื่อเฉพาะ ค่าต่ำสุดและสูงสุดโดยประมาณ และคำอธิบาย
หากเรามีคอลเลกชันหรือลำดับเวลาของรูปภาพ คอลเลกชันรูปภาพ มีความเหมาะสมเป็นประเภทข้อมูลมากกว่า
ภาพหน้าจอโดยผู้เขียน โคเปอร์นิคัส CORINE ปกคลุมที่ดิน.
เราเห็นภาพภาพถ่ายดาวเทียมที่แสดงแผนที่ปกคลุมดินของยุโรป ชุดข้อมูลนี้มีการเปลี่ยนแปลงระหว่างปี 1986 ถึง 2018
ขั้นแรก เราโหลดภาพโดยใช้ ee.Image จากนั้นเลือกแบนด์ “landcover” สุดท้ายนี้ มาแสดงภาพด้วยการเพิ่มชุดข้อมูลที่โหลดลงในแผนที่เป็นเลเยอร์โดยใช้ Map.addLayer
Map = geemap.Map()
dataset = ee.Image('COPERNICUS/CORINE/V20/100m/2012')
landCover = dataset.select('landcover')
Map.setCenter(16.436, 39.825, 6)
Map.addLayer(landCover, {}, 'Land Cover')
Map
ภาพหน้าจอโดยผู้เขียน
ในทำนองเดียวกัน เราสามารถทำสิ่งเดียวกันเพื่อโหลดและแสดงภาพภาพถ่ายดาวเทียมที่แสดงแผนที่ปกคลุมดินของยุโรป ชุดข้อมูลนี้มีการเปลี่ยนแปลงระหว่างปี 1986 ถึง 2018
ภาพหน้าจอโดยผู้เขียน ภาพความละเอียดสูงแบบออฟไลน์ของความเข้มข้นของมีเทน.
หากต้องการแสดงภาพ Earth Engine ImageCollection บรรทัดของโค้ดจะคล้ายกัน ยกเว้น ee.ImageCollection
Map = geemap.Map()
collection = ee.ImageCollection('COPERNICUS/S5P/OFFL/L3_CH4').select('CH4_column_volume_mixing_ratio_dry_air').filterDate('2019-06-01', '2019-07-16')
band_viz = {
'min': 1750,
'max': 1900,
'palette': ['black', 'blue', 'purple', 'cyan', 'green', 'yellow', 'red']
}
Map.addLayer(collection.mean(), band_viz, 'S5P CH4')
Map.setCenter(0.0, 0.0, 2)
Map
ภาพหน้าจอโดยผู้เขียน
เยี่ยมมาก! จากแผนที่นี้ เราสังเกตว่ามีเทนซึ่งเป็นหนึ่งในตัวก่อให้เกิดปรากฏการณ์เรือนกระจกที่สำคัญที่สุดถูกกระจายไปทั่วโลกอย่างไร
ข้อคิด
นี่เป็นคำแนะนำเบื้องต้นที่สามารถช่วยคุณทำงานกับข้อมูล Google Earth Engine โดยใช้ Python Geemap เป็นไลบรารี Python ที่สมบูรณ์แบบที่สุดในการแสดงภาพและวิเคราะห์ข้อมูลประเภทนี้
หากคุณต้องการเจาะลึกเกี่ยวกับแพ็คเกจนี้ คุณสามารถดูแหล่งข้อมูลที่ฉันแนะนำด้านล่าง
รหัสสามารถพบได้ โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม- ฉันหวังว่าคุณจะพบว่าบทความนี้มีประโยชน์ ขอให้เป็นวันที่ดี!
ทรัพยากรที่มีประโยชน์:
ชมพู่ อเนลโล่ ปัจจุบันเป็นนักวิจัยที่ภาควิชาวิศวกรรมสารสนเทศของมหาวิทยาลัยปาโดวา ประเทศอิตาลี โครงการวิจัยของเธอมุ่งเน้นไปที่การเรียนรู้อย่างต่อเนื่องร่วมกับการตรวจจับความผิดปกติ
- เนื้อหาที่ขับเคลื่อนด้วย SEO และการเผยแพร่ประชาสัมพันธ์ รับการขยายวันนี้
- PlatoData.Network Vertical Generative Ai เพิ่มพลังให้กับตัวเอง เข้าถึงได้ที่นี่.
- เพลโตไอสตรีม. Web3 อัจฉริยะ ขยายความรู้ เข้าถึงได้ที่นี่.
- เพลโตESG. คาร์บอน, คลีนเทค, พลังงาน, สิ่งแวดล้อม แสงอาทิตย์, การจัดการของเสีย. เข้าถึงได้ที่นี่.
- เพลโตสุขภาพ เทคโนโลยีชีวภาพและข่าวกรองการทดลองทางคลินิก เข้าถึงได้ที่นี่.
- ที่มา: https://www.kdnuggets.com/geospatial-data-analysis-with-geemap?utm_source=rss&utm_medium=rss&utm_campaign=geospatial-data-analysis-with-geemap