שכבת הנתונים "עוצמת השינוי בהימצאות מים" מספקת מדד לשינוי במים העיליים בין שתי תקופות: 1984-1999 ו-2000-2015. השכבה מחשבת את ממוצע השינוי בין זוגות חודשים מקבילים שנלקחו משתי התקופות. פרטים נוספים על השכבה הזו זמינים ב מדריך למשתמשים בנתונים (גרסה 2) .
בחלק הזה של המדריך נסביר:
- להוסיף שכבת מפה מסוגננת כדי להמחיש את עוצמת השינוי בתדירות הופעת המים, וגם
- לסכם את עוצמת השינוי באזור עניין מסוים באמצעות היסטוגרמה.
הצגה חזותית
בדומה לשכבת הימצאות המים, נתחיל בהוספת תצוגה חזותית בסיסית של עוצמת השינוי בהימצאות המים למפה, ואז נשפר אותה. עוצמת השינוי בהתרחשות מסופקת בשתי דרכים, גם כערכים מוחלטים וגם כערכים מנורמלים. במדריך הזה נשתמש בערכים המוחלטים. קודם כל, בוחרים את שכבת העוצמה של השינוי המוחלט בתדירות ההופעה מתמונת ה-GSW:
Code Editor (JavaScript)
var change = gsw.select("change_abs");
בקטע Constants בקוד, מוסיפים הצהרה שיוצרת משתנה חדש שמגדיר את הסגנון של השכבה. בסגנון הזה, אזורים שבהם שכיחות המים העיליים פחתה או גדלה מוצגים באדום או בירוק. אזורים שבהם כמות המים העיליים לא השתנתה כמעט מוצגים בשחור.
Code Editor (JavaScript)
var VIS_CHANGE = { min:-50, max:50, palette: ['red', 'black', 'limegreen'] };
בסוף הקטע של שכבות המפה בקוד, מוסיפים הצהרה שמוסיפה שכבה חדשה למפה.
Code Editor (JavaScript)
Map.setCenter(-74.4557, -8.4289, 11); // Ucayali River, Peru Map.addLayer({ eeObject: change, visParams: VIS_CHANGE, name: 'occurrence change intensity' });
סיכום השינויים באזור שמעניין אתכם
בקטע הזה נסכם את כמות השינויים באזור עניין מסוים. כדי לציין אזור עניין, לוחצים על כלי השרטוט של הפוליגון, שהוא אחד מ כלי הגיאומטריה. הפעולה הזו תיצור שכבה חדשה של ייבוא גיאומטריה, שנקראת geometry כברירת מחדל. כדי לשנות את השם, לוחצים על סמל גלגל השיניים שמשמאל לשם השכבה. (הערה: יכול להיות שתצטרכו להציב את הסמן על שם השכבה כדי שהיא תופיע).
משנים את שם השכבה ל-roi (אזור עניין או ROI). לאחר מכן, אפשר ללחוץ על סדרה של נקודות במפה כדי להגדיר אזור עניין בצורת פוליגון.
עכשיו, כשהאזור הרלוונטי מוגדר ומאוחסן במשתנה, אנחנו יכולים להשתמש בו כדי לחשב היסטוגרמה של עוצמת השינוי של החזר ה-ROI. מוסיפים את הקוד הבא לקטע Calculations (חישובים) בסקריפט.
Code Editor (JavaScript)
// Calculate a change intensity for the region of interest. var histogram = change.reduceRegion({ reducer: ee.Reducer.histogram(), geometry: roi, scale: 30, bestEffort: true, }); print(histogram);
ההצהרה הראשונה מחשבת היסטוגרמה של ערכי עוצמת השינוי של המופעים בתוך אזור העניין, ודוגמת בקנה מידה של 30 מטרים. השנייה מדפיסה את האובייקט שנוצר בכרטיסייה Console של עורך הקוד. אפשר להרחיב את עץ האובייקטים כדי לראות את הערכים של קטגוריות ההיסטוגרמה. הנתונים המספריים קיימים, אבל יש דרכים טובות יותר להציג את התוצאות באופן חזותי.
כדי לשפר את התרשים, אפשר ליצור במקומו תרשים היסטוגרמה. מחליפים את ההצהרה שמגדירה את אובייקט ההיסטוגרמה בהצהרות הבאות:
Code Editor (JavaScript)
// Generate a histogram object and print it to the console tab. var histogram = ui.Chart.image.histogram({ image: change, region: roi, scale: 30, minBucketWidth: 10 }); histogram.setOptions({ title: 'Histogram of surface water change intensity.' });
ההצהרות האלה יוצרות אובייקט של תרשים היסטוגרמה, שמחליף את עץ האובייקטים של ההיסטוגרמה בכרטיסייה Console בתרשים. השיטה chart מכילה כמה ארגומנטים, כולל scale שמגדיר את קנה המידה המרחבי, במטרים, שבו נדגם האזור הרלוונטי, ו-minBucketWidth שמשמש לשליטה ברוחב של קטגוריות ההיסטוגרמה.
אפשר לבחון את ערכי התרשים באופן אינטראקטיבי על ידי הצבת הסמן מעל העמודות של ההיסטוגרמה.
התסריט הסופי
התסריט המלא של הקטע הזה מופיע בהמשך. שימו לב שהסקריפט כולל הצהרות להגדרת גיאומטריה של פוליגון (roi), שדומה לגיאומטריה שיצרתם באמצעות כלי הגיאומטריה של Code Editor.
Code Editor (JavaScript)
////////////////////////////////////////////////////////////// // Asset List ////////////////////////////////////////////////////////////// var gsw = ee.Image('JRC/GSW1_0/GlobalSurfaceWater'); var occurrence = gsw.select('occurrence'); var change = gsw.select("change_abs"); var roi = /* color: 0B4A8B */ee.Geometry.Polygon( [[[-74.17213, -8.65569], [-74.17419, -8.39222], [-74.38362, -8.36980], [-74.43031, -8.61293]]]); ////////////////////////////////////////////////////////////// // Constants ////////////////////////////////////////////////////////////// var VIS_OCCURRENCE = { min:0, max:100, palette: ['red', 'blue'] }; var VIS_CHANGE = { min:-50, max:50, palette: ['red', 'black', 'limegreen'] }; var VIS_WATER_MASK = { palette: ['white', 'black'] }; ////////////////////////////////////////////////////////////// // Calculations ////////////////////////////////////////////////////////////// // Create a water mask layer, and set the image mask so that non-water areas are transparent. var water_mask = occurrence.gt(90).mask(1); // Generate a histogram object and print it to the console tab. var histogram = ui.Chart.image.histogram({ image: change, region: roi, scale: 30, minBucketWidth: 10 }); histogram.setOptions({ title: 'Histogram of surface water change intensity.' }); print(histogram); ////////////////////////////////////////////////////////////// // Initialize Map Location ////////////////////////////////////////////////////////////// // Uncomment one of the following statements to center the map on // a particular location. // Map.setCenter(-90.162, 29.8597, 10); // New Orleans, USA // Map.setCenter(-114.9774, 31.9254, 10); // Mouth of the Colorado River, Mexico // Map.setCenter(-111.1871, 37.0963, 11); // Lake Powell, USA // Map.setCenter(149.412, -35.0789, 11); // Lake George, Australia // Map.setCenter(105.26, 11.2134, 9); // Mekong River Basin, SouthEast Asia // Map.setCenter(90.6743, 22.7382, 10); // Meghna River, Bangladesh // Map.setCenter(81.2714, 16.5079, 11); // Godavari River Basin Irrigation Project, India // Map.setCenter(14.7035, 52.0985, 12); // River Oder, Germany & Poland // Map.setCenter(-59.1696, -33.8111, 9); // Buenos Aires, Argentina\ Map.setCenter(-74.4557, -8.4289, 11); // Ucayali River, Peru ////////////////////////////////////////////////////////////// // Map Layers ////////////////////////////////////////////////////////////// Map.addLayer({ eeObject: water_mask, visParams: VIS_WATER_MASK, name: '90% occurrence water mask', shown: false }); Map.addLayer({ eeObject: occurrence.updateMask(occurrence.divide(100)), name: "Water Occurrence (1984-2015)", visParams: VIS_OCCURRENCE, shown: false }); Map.addLayer({ eeObject: change, visParams: VIS_CHANGE, name: 'occurrence change intensity' });
בקטע הבא תמשיכו לבחון איך המים השתנו לאורך זמן, באמצעות עבודה עם שכבת המעבר של סיווג המים.