FeatureView
הוא ייצוג מואץ של FeatureCollection
שמיועד לצפייה בלבד.
בניגוד ל-FeatureCollection
, שבו המשבצות של מפת הרסטור נוצרות בזמן אמת, המשבצות של FeatureView
מחושבוֹת מראש כדי לספק רינדור מהיר.
בנוסף לעיבוד מהיר יותר, נכסי FeatureView
מיישמים דילול של תכונות בהתאם לרמת הזום. כתוצאה מכך, מערכי נתונים צפופים עשויים להיראות חלקיים כשמרחיבים את התצוגה (תכונות קטנות לא מצוירות), אבל יותר מהנתונים יהיו גלויים כשמעמיקים את התצוגה, וכך אפשר לשפר את האסתטיקה של המפה ברמות זום נמוכות יותר. התנהגות הדילול של קבוצת נתונים נשלטת על ידי כמה פרמטרים של אופטימיזציה שמגדירים במהלך הייצוא של FeatureCollection
לנכס FeatureView
.
כנכס שמיועד לצפייה בלבד, אי אפשר לכלול אובייקטים מסוג FeatureView
בחישובים או בביטויים, אבל אפשר להציג אותם כ-FeatureViewLayer
חזותית ולבדוק אותם בכלי לעריכת קוד JavaScript ובאפליקציות של Earth Engine. אפשר גם לשלב אותם באפליקציות של Google Maps API.
יצירת FeatureView
כדי ליצור FeatureView
, צריך להכין FeatureCollection
עם הנתונים, להפעיל את הפונקציה Export.table.toFeatureView
ולהתחיל את משימה הייצוא. בדוגמה הבאה מוצג ייצוא של תצוגות של מערך הנתונים של פוליגונים ב-WDPA.
באפליקציה שלכם, תוכלו להשתמש במערך נתונים מסוג FeatureCollection
שנמצא בארכיון ב-Earth Engine Data Catalog, או ליצור מערך נתונים משלכם על ידי העלאת מערך נתונים של וקטור כנכס ב-Earth Engine.
אפשר להתאים אישית את FeatureView
באמצעות כמה פרמטרים בפונקציה Export.table.toFeatureView
.
maxFeaturesPerTile
— מגדיר את המספר המקסימלי של תכונות שיוצגו באריח מפה ברמת זום מסוימת. השתמשו בפרמטר הזה כדי לבצע אופטימיזציה למהירות או לצפיפות התכונות.thinningStrategy
– קובע אם תתבצע אופטימיזציה של דילול התכונות באריח נתון וברמת זום נתונה כדי לשפר את הצפיפות או לשמור על עקביות בצפיפות בין האריחים. חשוב לזכור שאופטימיזציה לצפיפות גבוהה יותר עלולה לגרום לגבולות המשבצות להיראות בולטים, כי צפיפות התכונות בכל משבצת היא עצמאית.thinningRanking
– הגדרת העדיפות של צמצום התכונות. לדוגמה, תוכלו לבצע אופטימיזציה של הדילול כדי לטרגט את השמירה של מאפיין ספציפי של תכונה עם ערכים גבוהים. במילים אחרות, ככל שתרחיקו את התצוגה, התכונות עם הערך הנמוך ביותר לנכס שנבחר ידלולו קודם, והתכונות החשובות ביותר (לפי הכללים שלכם) יישארו גלויות.zOrderRanking
– מגדיר את סדר z (סדר סטאק) של התכונות שמוצגות במפה. הפרמטר הזה מאפשר להגדיר כללי תעדוף על סמך מאפייני התכונות, סוג הגיאומטריה ורמת הזום, וכך לקבוע את אופן הצגת התכונות החופפות. לדוגמה, אפשר לתת עדיפות לתכונות עם ערכים גבוהים של מאפיין מסוים, כך שהן יופיעו בשכבה עליונה מעל תכונות חופפות עם ערכים נמוכים.
פרטים נוספים על הפרמטרים האלה ועל הארגומנטים הקבילים שלהם מופיעים בדף האופטימיזציה של FeatureView
.
בדוגמה הבאה, הארגומנטים שצוינו לפרמטרים האלה יוצרים FeatureView
שבו מספר התכונות המקסימלי לכל משבצת ברמת זום מסוימת הוא 1,500, הצפיפות של התכונות בכל משבצת היא עצמאית ומותר לה להגיע למספר המקסימלי של 1,500, פוליגונים קטנים יותר נדחסים קודם ופוליגונים קטנים יותר מונחים מעל פוליגונים גדולים יותר.
Code Editor (JavaScript)
// Import the WDPA feature collection. var wdpa = ee.FeatureCollection('WCMC/WDPA/current/polygons'); // Export the WDPA FeatureCollection as a FeatureView asset. Export.table.toFeatureView({ collection: wdpa, assetId: 'wdpa-featureview-demo', description: 'wdpa-featureview-demo', maxFeaturesPerTile: 1500, thinningStrategy: 'HIGHER_DENSITY', thinningRanking: ['REP_AREA DESC'], zOrderRanking: ['REP_AREA DESC'], });
הפעלת קטע הקוד שלמעלה בכלי העריכה של הקוד תיצור משימה לייצוא. מריצים את המשימה כדי להתחיל את הייצוא.
מיקומי נכסים ב-FeatureView
נכסי FeatureView
נמצאים ב-Data Catalog הציבורי ובנכסים האישיים בכרטיסייה נכסים של Code Editor. לכל נכסי ה-FeatureCollection
הרלוונטיים ב-Data Catalog יש נכס FeatureView
נלווה עם הגדרות הטמעה שחלות באופן כללי. הארכיון האישי של הנכסים יכלול את כל נכסי ה-FeatureView
שתיצרו.
ייבוא נכסים של תצוגת מפה עם תכונות לסקריפטים
אפשר לייבא נכסי FeatureView
לסקריפטים של Code Editor באמצעות לחצנים בתיבת הדו-שיח של הנכסים וברשומות של נכסים אישיים ב-Code Editor, וגם על ידי מתן מזהה נכס FeatureView
כקלט למבנה ui.Map.FeatureViewLayer
.
תיבת הדו-שיח של נכס ב-Data Catalog
בתיבת הדו-שיח של נכסי הטבלה ב-Data Catalog, שנפתחת מסרגל החיפוש של Code Editor, יש לחצן ייבוא בפינה השמאלית התחתונה עם תפריט נפתח. בתפריט הנפתח, בוחרים באפשרות 'ייבוא תצוגת מפה עם פיצ'רים'. הנכס ייכלל בקטע Imports בחלק העליון של הסקריפט.
תיבת הדו-שיח 'נכס אישי'
בתיבת הדו-שיח של נכסי FeatureView
אישיים, שנפתחת על ידי בחירה בנכס בכרטיסייה נכסים של Code Editor, יש לחצן ייבוא בפינה השמאלית העליונה.
הפעלת הלחצן תכלול את הנכס בקטע Imports בחלק העליון של הסקריפט. אפשר גם להשתמש בלחצן הקיצור של הייבוא (סמל החץ שמצביע ימינה) שמופיע כשמעבירים את העכבר מעל נכס בכרטיסייה נכסים.
מזהה נכס
לנכסי FeatureView
יש מזהה שאפשר לספק כקלט ל-constructor של ui.Map.FeatureViewLayer
, וכך לקבל גישה לנכס בסקריפט. קטעי קוד מוכנים מראש לייבוא מופיעים בדפי הנכסים של Data Catalog ובתיבות הדו-שיח של הנכסים בכלי לעריכת קוד.
איור 1. תיבת הדו-שיח של נכס ב-Data Catalog עם הדגשה של שיטות הייבוא של FeatureView
.
מטא-נתונים של FeatureView
המידע והמטא-נתונים של FeatureView
זמינים בתיבת הדו-שיח של הנכס שצוינה בקטע מיקומי הנכסים ב-FeatureView למעלה. בנוסף לתיאור ולמאפיינים שאפשר לשתף עם המקור FeatureCollection
, יש חמישה מאפיינים ייחודיים ל-FeatureView
. הן כוללות את הגדרות הפרמטרים להטמעה שמתוארות בקטע יצירת FeatureView ואת הערך של sourceVersion
, שהיא חותמת הזמן של 'השינוי האחרון' של נכס הטבלה שממנו נוצר FeatureView
. באיור 1 למעלה מוצגים נכסים ספציפיים ל-FeatureView
בתיבת הדו-שיח של נכס ב-Data Catalog. בדומה לנכסים אחרים, אפשר גם לאחזר נכסים באופן פרוגרמטי מהמילון שמוחזר על ידי ee.data.getAsset
.
הצגה חזותית של FeatureView
אפשר להציג אובייקט FeatureView
באופן חזותי בכלי לעריכת קוד, באפליקציות של Earth Engine ובמפות Google.
עורך קוד
עורך הקוד כולל את הרכיב ui.Map.FeatureViewLayer
להצגת נכסי FeatureView
במפה. בדוגמה הבאה מוגדר מזהה נכס FeatureView
, הנכס מיובא כ-FeatureViewLayer
ומוצג במפה.
Code Editor (JavaScript)
// Define the FeatureView asset ID. var assetId = 'WCMC/WDPA/current/polygons_FeatureView'; // Import the FeatureView asset as a FeatureViewLayer. var layer = ui.Map.FeatureViewLayer(assetId); // Add the FeatureViewLayer to the map. Map.add(layer);
עיצוב
אפשר להוסיף סגנון ל-FeatureViewLayer
על ידי העברת מילון סגנונות לפונקציה ui.Map.FeatureViewLayer
או הוספה לשכבה באמצעות השיטה setVisParams
. בהמשך מופיעה דוגמה שמגדירה סגנון:
- צבעי מתאר על סמך המאפיין 'MARINE' (אם האזור המוגן נמצא בסביבה הימית באופן מלא או חלקי),
- צבע המילוי על סמך המאפיין IUCN_CAT (קטגוריה של האיחוד הבינלאומי לשמירת הטבע (IUCN)), וגם
- העכירות של המילוי מבוססת על גודל האזור המוגן שמוגדר על ידי המאפיין 'REP_AREA'.
בדף עיצוב של FeatureView מפורט מידע נוסף על אפשרויות העיצוב הזמינות.
Code Editor (JavaScript)
// Set visualization properties for the defined layer. layer.setVisParams({ color: { property: 'MARINE', categories: [ ['0', 'purple'], ['1', 'green'], ['2', 'blue'], ] }, fillColor: { property: 'IUCN_CAT', defaultValue: 'd3d3d3', categories: [ ['Ia', 'a6cee3'], ['Ib', '1f78b4'], ['II', 'b2df8a'], ['III', '33a02c'], ['IV', 'fb9a99'], ['V', 'e31a1c'], ['VI', 'fdbf6f'], ] }, fillOpacity: { property: 'REP_AREA', mode: 'interval', palette: [ [0, 0.5], [80, 0.35], [2000, 0.22], [5000, 0.15], ], }, width: 1.0, pointSize: 6.0, });
סינון
אפשר להחיל כללי סינון כדי להסתיר תכונות או להגדיר להן סגנון באופן סלקטיבי על סמך המאפיינים שלהן. לדוגמה, כדי לסנן אזורים מוגנים שקטנים מאזור מסוים שצוין באמצעות ווידג'ט של פס מחליק, אפשר להשתמש בקוד הבא. מידע נוסף על השדה rules
זמין בקטע כללים ספציפיים בדף העיצוב FeatureView
.
Code Editor (JavaScript)
// Define the FeatureView asset ID. var assetId = 'WCMC/WDPA/current/polygons_FeatureView'; // Import the FeatureView asset as a FeatureViewLayer. var layer = ui.Map.FeatureViewLayer(assetId, null, 'WDPA FeatureViewLayer'); // Callback function to update FeatureViewLayer style. var updateVisParams = function() { layer.setVisParams({ color: { property: 'MARINE', categories: [ ['0', 'purple'], ['1', 'green'], ['2', 'blue'], ] }, fillColor: { property: 'IUCN_CAT', defaultValue: 'd3d3d3', categories: [ ['Ia', 'a6cee3'], ['Ib', '1f78b4'], ['II', 'b2df8a'], ['III', '33a02c'], ['IV', 'fb9a99'], ['V', 'e31a1c'], ['VI', 'fdbf6f'], ] }, fillOpacity: { property: 'REP_AREA', mode: 'interval', palette: [ [0, 0.5], [80, 0.35], [2000, 0.22], [5000, 0.15], ], }, width: 1.0, pointSize: 6.0, rules: [ { filter: ee.Filter.lt('REP_AREA', filterSlider.getValue()), isVisible: false, }, ], }); }; // Slider widget that calls the updateVisParams function on change. var filterSlider = ui.Slider({ min: 0, max: 10000, step: 10, value: 0, style: { stretch: 'horizontal'}, onChange: updateVisParams, }); var filterSliderLabel = ui.Label( 'Adjust slider to hide features less than the specified area (km²)'); // Add the slider to the map. Map.add(ui.Panel([filterSliderLabel, filterSlider])); // Initialize the FeatureViewLayer style. updateVisParams(); // Add the FeatureViewLayer to the map. Map.add(layer);
איור 2. FeatureViewLayer
תצוגה חזותית עם ווידג'ט של פס מחליק כדי להסתיר תכונות קטנות יותר מהאזור שצוין.
API של מפות Google
התהליך להצגת נכס FeatureView
באמצעות Google Maps API מורכב מארבעה חלקים: קבלת מפתח של משבצות באמצעות ee.data.getFeatureViewTilesKey
, העברה שלו למכונה של FeatureViewTileSource
, יצירה של ee.layer.ImageOverlay
והוספת שכבת-העל למכונה של google.maps.Map
. בהמשך מופיע קוד לדוגמה ליצירת ImageOverlay
ב-JavaScript.
var tilesKey = ee.data.getFeatureViewTilesKey({
assetId: 'WCMC/WDPA/current/polygons_FeatureView',
visParams: { … },
});
var tileSource = new ee.layers.FeatureViewTileSource(tilesKey);
var overlay = new ee.layers.ImageOverlay(tileSource);
לאחר מכן, אפשר להוסיף את שכבת-העל למכונה של google.maps.Map
, כפי שמתואר בהמשך.
// embeddedMap is your google.maps.Map instance.
embeddedMap.overlayMapTypes.setAt(0, overlay);
בדיקת FeatureView
אפשר לבדוק שכבת FeatureViewLayer
שנוספה למפה שמוגדרת כברירת מחדל ב-Code Editor באמצעות כלי הבדיקה.
הפונקציונליות זהה לזו של FeatureCollection
. חשוב לזכור שבתוצאות שמוחזרות עבור המיקום שבו לחצתם מוצגות רק תכונות שגלויות ברמת הזום הנוכחית. הגיאומטריות לא מוצגות בתכונות שנבדקו, כי הן פשוטות יותר בתהליך הייצוא של FeatureView
.
איור 3. בדיקה של FeatureViewLayer
. בבודק מוצגים השכבה, המאפיינים, מזהה הנכס והפרמטרים של התצוגה החזותית.