לוגו זפירנט

ניתוח נתונים גיאו-מרחבי עם Geemap - KDnuggets

תאריך:

ניתוח נתונים גיאו-מרחבי עם Geemap
איור מאת מחבר
 

ניתוח נתונים גיאו-מרחבי הוא תחום שמתייחס להתמודדות עם, להמחיש ולנתח סוג מיוחד של נתונים, הנקראים נתונים גיאו-מרחביים. בהשוואה לנתונים הרגילים, יש לנו נתונים טבלאיים עם עמודה נוספת, פרטי המיקום, כגון קו רוחב וקו אורך. 

ישנם שני סוגים עיקריים של נתונים: נתונים וקטוריים ונתוני רסטר. כאשר עוסקים בנתונים וקטוריים, עדיין יש לך מערך נתונים טבלאי, בעוד שנתוני רסטר דומים יותר לתמונות, כגון תמונות לוויין ותצלומי אוויר. 

במאמר זה, אני הולך להתמקד בנתוני רסטר המסופקים על ידי Google Earth Engine, פלטפורמת מחשוב ענן המספקת קטלוג נתונים ענק של תמונות לוויין. ניתן לשלוט בסוג זה של נתונים בקלות ממחברת Jupyter שלך באמצעות חבילת Python מצילת חיים, הנקראת Geemap. בואו נתחיל!

מהו Google Earth Engine?

ניתוח נתונים גיאו-מרחבי עם Geemap
צילום מסך מאת מחבר. דף הבית של Google Earth Engine.
 

לפני שנתחיל עם ספריית Python, עלינו להבין את הפוטנציאל של Google Earth Engine. פלטפורמה מבוססת ענן זו, המופעלת על ידי פלטפורמת Google Cloud, מארחת מערכי נתונים גיאו-מרחביים ציבוריים וחינמיים למטרות אקדמיות, ללא מטרות רווח ועסקיות.

 

ניתוח נתונים גיאו-מרחבי עם Geemap
צילום מסך מאת מחבר. סקירה כללית של קטלוג הנתונים של Earth Engine. 
 

היופי של פלטפורמה זו הוא שהיא מספקת קטלוג מרובה פטה-בייט של נתוני רסטר וויקטור, המאוחסנים בשרתי Earth Engine. אתה יכול לקבל סקירה מהירה מכאן קישור. יתר על כן, הוא מספק ממשקי API כדי להקל על הניתוח של מערכי נתונים רסטר. 

מה זה Geemap?

ניתוח נתונים גיאו-מרחבי עם Geemap
איור מאת מחבר. ספריית Geemap.
 

Geemap היא ספריית Python המאפשרת לנתח ולהמחיש כמויות אדירות של נתונים גיאו-מרחביים מ-Google Earth Engine. 

לפני החבילה הזו, כבר ניתן היה לבצע בקשות חישוביות באמצעות JavaScript ו-API של Python, אך ל-Python APIs היו פונקציונליות מוגבלת וחסרו תיעוד. 

כדי למלא את הפער הזה, Geemap נוצרה כדי לאפשר למשתמשים לגשת למשאבים של Google Earth Engine עם כמה שורות קוד. על Geemap בנויה artengine-api, ipyleaflet ו פוליום.

כדי להתקין את הספרייה, אתה רק צריך את הפקודה הבאה:

pip install geemap

 

אני ממליץ לך להתנסות בחבילה המדהימה הזו בגוגל קולאב כדי להבין את מלוא הפוטנציאל שלה. הבט ב הספר החינמי הזה נכתב על ידי פרופסור ד"ר 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

 

עליך ללחוץ על כתובת האתר המוחזרת על ידי שורת קוד זו, שתיצור את קוד ההרשאה. ראשית, בחר את פרויקט הענן ולאחר מכן לחץ על כפתור "הפק אסימון".

 

ניתוח נתונים גיאו-מרחבי עם Geemap
צילום מסך מאת מחבר. מאמת מחברת.
 

לאחר מכן, הוא יבקש ממך לבחור את החשבון. אני ממליץ לקחת את אותו חשבון של Google Colab אם אתה משתמש בו.

 

ניתוח נתונים גיאו-מרחבי עם Geemap
צילום מסך מאת מחבר. בחר חשבון.
 

לאחר מכן, לחץ על תיבת הסימון שליד בחר הכל ולחץ על כפתור "המשך". בקיצור, שלב זה מאפשר ללקוח Notebook לגשת לחשבון Earth Engine.

 

ניתוח נתונים גיאו-מרחבי עם Geemap
צילום מסך מאת מחבר. אפשר ללקוח Notebook לגשת לחשבון 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, חשוב להכיר שני סוגי נתונים עיקריים ב-Earth Engine. תסתכל על התיעוד של Google Earth Engine לקבלת פרטים נוספים.

 

ניתוח נתונים גיאו-מרחבי עם Geemap
איור מאת מחבר. דוגמה לסוגי נתונים וקטוריים: Geometry, Feature ו- FeatureCollection.
 

בטיפול בנתונים וקטוריים, אנו משתמשים בעיקר בשלושה סוגי נתונים:

  • גיאומטריה מאחסן את הקואורדינטות הדרושות כדי לצייר את הנתונים הוקטוריים על מפה. שלושה סוגים עיקריים של גיאומטריות נתמכים על ידי Earth Engine: Point, LineString ו-Polygon.
  • מאפיין היא בעצם שורה המשלבת גיאומטריה ותכונות לא גיאוגרפיות. זה דומה מאוד למחלקת GeoSeries של GeoPandas.
  • FeatureCollection הוא מבנה נתונים טבלאי המכיל קבוצה של תכונות. FeatureCollection ו-GeoDataFrame כמעט זהים מבחינה רעיונית.

 

ניתוח נתונים גיאו-מרחבי עם Geemap
צילום מסך מאת מחבר. דוגמה לסוג נתוני תמונה. זה מציג את דגם הגובה הדיגיטלי המוחלק האוסטרלי (DEM-S)
 

בעולם של נתוני רסטר, אנו מתמקדים ב תמונה חפצים. התמונות של Google Earth Engine מורכבות ממותג אחד או יותר, כאשר לכל להקה יש שם ספציפי, מינימום ומקסימום משוער ותיאור.

אם יש לנו אוסף או סדרת זמן של תמונות, ImageCollection מתאים יותר כסוג נתונים.

 

ניתוח נתונים גיאו-מרחבי עם Geemap
צילום מסך מאת מחבר. Copernicus CORINE כיסוי קרקע.
 

אנו מדמיינים את תמונות הלוויין המציגות את מפת כיסוי הקרקע של אירופה. מערך נתונים זה מספק את השינויים בין 1986 ל-2018.

ראשית, אנו טוענים את התמונה באמצעות ee.Image ולאחר מכן, בחר את הלהקה "כריכת קרקע". לבסוף, בואו נראה את התמונה על ידי הוספת מערך הנתונים הטעון למפה כשכבה באמצעות 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 השלמה ביותר להמחשה ולנתח סוג זה של נתונים. 

אם אתה רוצה להעמיק בחבילה זו, אתה יכול להסתכל על המשאבים שהצעתי להלן. 

את הקוד ניתן למצוא כאן. אני מקווה שמצאת את המאמר שימושי. שיהיה לך יום נעים!

משאבים שימושיים:

 
 

יוגניה אנלו כיום הוא עמית מחקר במחלקה להנדסת מידע של אוניברסיטת פדובה, איטליה. פרויקט המחקר שלה מתמקד בלמידה מתמשכת בשילוב עם איתור אנומליות.

ספוט_ימג

המודיעין האחרון

ספוט_ימג