โลโก้เซเฟอร์เน็ต

การวิเคราะห์ข้อมูลเชิงพื้นที่ด้วย Geemap – KDnuggets

วันที่:

การวิเคราะห์ข้อมูลเชิงพื้นที่ด้วย Geemap
ภาพประกอบโดยผู้เขียน
 

การวิเคราะห์ข้อมูลเชิงพื้นที่เป็นสาขาที่จัดการ แสดงภาพ และวิเคราะห์ข้อมูลประเภทพิเศษที่เรียกว่าข้อมูลเชิงพื้นที่ เมื่อเปรียบเทียบกับข้อมูลปกติ เรามีข้อมูลแบบตารางพร้อมคอลัมน์เพิ่มเติม ข้อมูลตำแหน่ง เช่น ละติจูดและลองจิจูด 

ข้อมูลมีสองประเภทหลัก: ข้อมูลเวกเตอร์และข้อมูลแรสเตอร์ เมื่อต้องจัดการกับข้อมูลเวกเตอร์ คุณยังคงมีชุดข้อมูลแบบตาราง ในขณะที่ข้อมูลแรสเตอร์จะคล้ายกับรูปภาพมากกว่า เช่น ภาพถ่ายดาวเทียมและภาพถ่ายทางอากาศ 

ในบทความนี้ ฉันจะมุ่งเน้นไปที่ข้อมูลแรสเตอร์ที่ได้รับจาก Google Earth Engine ซึ่งเป็นแพลตฟอร์มการประมวลผลแบบคลาวด์ที่ให้ข้อมูลแคตตาล็อกภาพถ่ายดาวเทียมจำนวนมาก ข้อมูลประเภทนี้สามารถเข้าใจได้ง่ายจาก Jupyter Notebook ของคุณโดยใช้แพ็คเกจ Python ช่วยชีวิตที่เรียกว่า Geemap มาเริ่มกันเลย!

Google Earth Engine คืออะไร

การวิเคราะห์ข้อมูลเชิงพื้นที่ด้วย Geemap
ภาพหน้าจอโดยผู้เขียน หน้าแรกของ Google Earth Engine
 

ก่อนที่จะเริ่มต้นกับ Python Library เราต้องเข้าใจถึงศักยภาพของ เครื่องยนต์ Google Earth- แพลตฟอร์มบนคลาวด์นี้ขับเคลื่อนโดยแพลตฟอร์ม Google Cloud โฮสต์ชุดข้อมูลเชิงพื้นที่สาธารณะและฟรีเพื่อวัตถุประสงค์ทางวิชาการ องค์กรไม่แสวงผลกำไร และธุรกิจ

 

การวิเคราะห์ข้อมูลเชิงพื้นที่ด้วย Geemap
ภาพหน้าจอโดยผู้เขียน ภาพรวมของแคตตาล็อกข้อมูล Earth Engine 
 

ข้อดีของแพลตฟอร์มนี้คือมีแค็ตตาล็อกข้อมูลแรสเตอร์และเวกเตอร์หลายเพตะไบต์ ซึ่งจัดเก็บไว้ในเซิร์ฟเวอร์ Earth Engine คุณสามารถมีภาพรวมที่รวดเร็วได้จากสิ่งนี้ ลิงค์- นอกจากนี้ยังมี API เพื่ออำนวยความสะดวกในการวิเคราะห์ชุดข้อมูลแรสเตอร์ 

Geemap คืออะไร?

การวิเคราะห์ข้อมูลเชิงพื้นที่ด้วย 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 ที่ส่งคืนโดยบรรทัดโค้ดนี้ ซึ่งจะสร้างรหัสการให้สิทธิ์ ขั้นแรก เลือกโปรเจ็กต์บนคลาวด์ จากนั้นคลิกปุ่ม "สร้างโทเค็น"

 

การวิเคราะห์ข้อมูลเชิงพื้นที่ด้วย Geemap
ภาพหน้าจอโดยผู้เขียน ตัวรับรองความถูกต้องของโน้ตบุ๊ก
 

หลังจากนั้นระบบจะขอให้คุณเลือกบัญชี ฉันขอแนะนำให้ใช้บัญชีเดียวกันกับ Google Colab หากคุณใช้งานอยู่

 

การวิเคราะห์ข้อมูลเชิงพื้นที่ด้วย Geemap
ภาพหน้าจอโดยผู้เขียน เลือกบัญชี
 

จากนั้นคลิกช่องทำเครื่องหมายถัดจากเลือกทั้งหมดแล้วกดปุ่ม "ดำเนินการต่อ" โดยสรุป ขั้นตอนนี้จะทำให้ Notebook Client สามารถเข้าถึงบัญชี Earth Engine ได้

 

การวิเคราะห์ข้อมูลเชิงพื้นที่ด้วย Geemap
ภาพหน้าจอโดยผู้เขียน อนุญาตให้ Notebook Client เข้าถึงบัญชี Earth Engine ของคุณ
 

หลังจากการดำเนินการนี้ รหัสการรับรองความถูกต้องจะถูกสร้างขึ้น และคุณสามารถวางลงในเซลล์สมุดบันทึกได้

 

การวิเคราะห์ข้อมูลเชิงพื้นที่ด้วย Geemap
ภาพหน้าจอโดยผู้เขียน คัดลอกรหัสยืนยันตัวตน
 

เมื่อป้อนรหัสยืนยันแล้ว คุณจะสามารถสร้างและแสดงภาพแผนที่เชิงโต้ตอบนี้ได้ในที่สุด:

m = geemap.Map()
m

 

การวิเคราะห์ข้อมูลเชิงพื้นที่ด้วย Geemap
 

ในตอนนี้ คุณเพียงแค่สังเกตแผนที่ฐานที่ด้านบนของ ipyleaflet ซึ่งเป็นแพ็คเกจ Python ที่ช่วยให้สามารถสร้างภาพแผนที่เชิงโต้ตอบภายใน Jupyter Notebook 

สร้างแผนที่เชิงโต้ตอบ

ก่อนหน้านี้ เราได้เห็นวิธีการตรวจสอบและแสดงภาพแผนที่เชิงโต้ตอบโดยใช้โค้ดเพียงบรรทัดเดียว ตอนนี้ เราสามารถปรับแต่งแผนที่เริ่มต้นได้โดยการระบุละติจูดและลองจิจูดของเซนทรอยด์ ระดับการซูม และความสูง ฉันได้เลือกพิกัดของกรุงโรมเพื่อให้ศูนย์กลางมุ่งเน้นไปที่แผนที่ของยุโรป 

m = geemap.Map(center=[41, 12], zoom=6, height=600)
m

 

การวิเคราะห์ข้อมูลเชิงพื้นที่ด้วย Geemap

 

หากเราต้องการเปลี่ยนแผนที่ฐาน มีสองวิธีที่เป็นไปได้ วิธีแรกประกอบด้วยการเขียนและเรียกใช้บรรทัดโค้ดต่อไปนี้:

m.add_basemap("ROADMAP")
m

 

การวิเคราะห์ข้อมูลเชิงพื้นที่ด้วย Geemap
 

หรือคุณสามารถเปลี่ยนแผนที่ฐานได้ด้วยตนเองโดยคลิกไอคอนประแจแหวนที่อยู่ทางด้านขวา 

 

การวิเคราะห์ข้อมูลเชิงพื้นที่ด้วย Geemap
 

นอกจากนี้ เรายังเห็นรายการแผนที่ฐานที่ 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 .

 

การวิเคราะห์ข้อมูลเชิงพื้นที่ด้วย Geemap
ภาพประกอบโดยผู้เขียน ตัวอย่างประเภทข้อมูลเวกเตอร์: เรขาคณิต คุณลักษณะ และการรวบรวมคุณลักษณะ
 

เมื่อจัดการข้อมูลเวกเตอร์ เราจะใช้ประเภทข้อมูลหลักสามประเภท:

  • เรขาคณิต เก็บพิกัดที่จำเป็นในการวาดข้อมูลเวกเตอร์บนแผนที่ Earth Engine รองรับรูปทรงหลักสามประเภท: Point, LineString และ Polygon
  • ลักษณะ โดยพื้นฐานแล้วคือแถวที่รวมเอารูปทรงเรขาคณิตและคุณลักษณะที่ไม่ใช่ทางภูมิศาสตร์เข้าด้วยกัน มันคล้ายกับคลาส GeoSeries ของ GeoPandas มาก
  • ฟีเจอร์คอลเลกชัน เป็นโครงสร้างข้อมูลแบบตารางที่มีชุดคุณลักษณะ FeatureCollection และ GeoDataFrame มีแนวคิดที่เกือบจะเหมือนกัน

 

การวิเคราะห์ข้อมูลเชิงพื้นที่ด้วย Geemap
ภาพหน้าจอโดยผู้เขียน ตัวอย่างประเภทข้อมูลรูปภาพ มันแสดงแบบจำลองระดับความสูงดิจิตอลเรียบของออสเตรเลีย (DEM-S)
 

ในโลกของข้อมูลแรสเตอร์ เรามุ่งเน้นที่ ภาพ วัตถุ รูปภาพของ Google Earth Engine ประกอบด้วยหนึ่งแบรนด์ขึ้นไป โดยแต่ละแบนด์มีชื่อเฉพาะ ค่าต่ำสุดและสูงสุดโดยประมาณ และคำอธิบาย

หากเรามีคอลเลกชันหรือลำดับเวลาของรูปภาพ คอลเลกชันรูปภาพ มีความเหมาะสมเป็นประเภทข้อมูลมากกว่า

 

การวิเคราะห์ข้อมูลเชิงพื้นที่ด้วย Geemap
ภาพหน้าจอโดยผู้เขียน โคเปอร์นิคัส 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

 

การวิเคราะห์ข้อมูลเชิงพื้นที่ด้วย Geemap
ภาพหน้าจอโดยผู้เขียน
 

ในทำนองเดียวกัน เราสามารถทำสิ่งเดียวกันเพื่อโหลดและแสดงภาพภาพถ่ายดาวเทียมที่แสดงแผนที่ปกคลุมดินของยุโรป ชุดข้อมูลนี้มีการเปลี่ยนแปลงระหว่างปี 1986 ถึง 2018

 

การวิเคราะห์ข้อมูลเชิงพื้นที่ด้วย Geemap
ภาพหน้าจอโดยผู้เขียน ภาพความละเอียดสูงแบบออฟไลน์ของความเข้มข้นของมีเทน.

 

หากต้องการแสดงภาพ 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

 

การวิเคราะห์ข้อมูลเชิงพื้นที่ด้วย Geemap
ภาพหน้าจอโดยผู้เขียน
 

เยี่ยมมาก! จากแผนที่นี้ เราสังเกตว่ามีเทนซึ่งเป็นหนึ่งในตัวก่อให้เกิดปรากฏการณ์เรือนกระจกที่สำคัญที่สุดถูกกระจายไปทั่วโลกอย่างไร 

ข้อคิด

นี่เป็นคำแนะนำเบื้องต้นที่สามารถช่วยคุณทำงานกับข้อมูล Google Earth Engine โดยใช้ Python Geemap เป็นไลบรารี Python ที่สมบูรณ์แบบที่สุดในการแสดงภาพและวิเคราะห์ข้อมูลประเภทนี้ 

หากคุณต้องการเจาะลึกเกี่ยวกับแพ็คเกจนี้ คุณสามารถดูแหล่งข้อมูลที่ฉันแนะนำด้านล่าง 

รหัสสามารถพบได้ โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม- ฉันหวังว่าคุณจะพบว่าบทความนี้มีประโยชน์ ขอให้เป็นวันที่ดี!

ทรัพยากรที่มีประโยชน์:

 
 

ชมพู่ อเนลโล่ ปัจจุบันเป็นนักวิจัยที่ภาควิชาวิศวกรรมสารสนเทศของมหาวิทยาลัยปาโดวา ประเทศอิตาลี โครงการวิจัยของเธอมุ่งเน้นไปที่การเรียนรู้อย่างต่อเนื่องร่วมกับการตรวจจับความผิดปกติ

จุด_img

ข่าวกรองล่าสุด

จุด_img