עוצמת השינוי של אירועי שיטפון

שכבת הנתונים Water Occurrence Change Intensity (שינוי בעוצמת התרחשות המים) מספקת מדד לשינויים שחלו במים על פני השטח בין שתי תקופות: 1984-1999 ו-2000-2015. שכבת המפה מחשבת את השינוי הממוצע בין זוגות חודשים מקבילים שנלקחו משתי התקופות. פרטים נוספים על השכבה הזו זמינים ב מדריך למשתמש בנושא נתונים (גרסה 2) .

בקטע הזה של המדריך נסביר:

  1. להוסיף שכבת מפה עם סגנון כדי להמחיש את עוצמת השינוי בהימצאות מים, וגם
  2. לסכם את עוצמת השינוי באזור מסוים באמצעות היסטוגרמה.

הצגה חזותית

בדומה לשכבת המידע על הימצאות מים, נתחיל בהוספת הדמיה בסיסית של עוצמת השינוי בהימצאות למפה, ואז נשפר אותה. השינוי בעוצמת ההתרחשות מוצג בשתי דרכים, גם כערכים אבסולוטיים וגם כערכים מנורמלים. במדריך הזה נשתמש בערכים מוחלטים. מתחילים בבחירת שכבת העוצמה של השינוי המוחלט בשכיחות מהתמונה של GSW:

עורך הקוד (JavaScript)

var change = gsw.select("change_abs");

בקטע Constants בקוד, מוסיפים הצהרה שיוצרת משתנה חדש שמגדיר את הסגנון של השכבה. הסגנון הזה מראה אזורים שבהם התדירות של מים על פני השטח ירדה (באדום) או עלתה (בירוק). אזורים שבהם לא חל שינוי משמעותי במאגר המים העיליים מוצגים בשחור.

עורך הקוד (JavaScript)

var VIS_CHANGE = {
    min:-50,
    max:50,
    palette: ['red', 'black', 'limegreen']
};

בסוף הקטע Map Layers (שכבות מפה) בקוד, מוסיפים הצהרה שמוסיפה שכבה חדשה למפה.

עורך הקוד (JavaScript)

Map.setCenter(-74.4557, -8.4289, 11);  // Ucayali River, Peru
Map.addLayer({
  eeObject: change,
  visParams: VIS_CHANGE,
  name: 'occurrence change intensity'
});
שינוי העוצמה
איור 6. צילום מסך של עוצמת השינוי במים העיליים של נהר אוקיאלי ליד פוקאלפה, עיר ביער הגשם באמזונס במזרח פרו. הצבעים אדום/ירוק מציינים ירידה/עלייה בהימצאות של מים עיליים בין התקופות.

סיכום השינוי באזור שמעניין אתכם

בקטע הזה נסכם את היקף השינוי באזור ספציפי שמעניין אתכם. כדי לציין אזור עניין, לוחצים על כלי שרטוט הפוליגון, שהוא אחד מ כלי הגיאומטריה. הפעולה הזו תיצור שכבה חדשה של ייבוא גיאומטריה, שנקראת 'גיאומטריה' כברירת מחדל. כדי לשנות את השם, לוחצים על סמל גלגל השיניים שמופיע משמאל לשם השכבה. (שימו לב: יכול להיות שתצטרכו להציב את הסמן על שם השכבה כדי שהוא יופיע).

משנים את שם השכבה ל-roi (לציון אזור שמעניין אתכם או ROI). אחר כך אפשר ללחוץ על סדרה של נקודות במפה כדי להגדיר אזור פוליגוני של עניין.

אזור עניין
איור 7. צילום מסך של נהר אוקיאלי ליד פוקאלפה, פרו, עם אזור עניין שנוצר באמצעות הכלי לציור מצולעים.

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

עורך הקוד (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);

ההצהרה הראשונה מחשבת היסטוגרמה של ערכי עוצמת השינוי של המופעים בתוך ה-ROI, עם דגימה בקנה מידה של 30 דקות. השורה השנייה מדפיסה את האובייקט שמתקבל בכרטיסייה Console (מסוף) בכלי לעריכת קוד. אפשר להרחיב את עץ האובייקטים כדי לראות את הערכים של משבצות ההיסטוגרמה. הנתונים המספריים קיימים, אבל יש דרכים טובות יותר להציג את התוצאות.

ערכי היסטוגרמה
איור 8. תוצאות בכרטיסייה Console, שבהן מוצגים ערכים של היסטוגרמה של עוצמת השינוי במים עיליים.

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

עורך הקוד (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 בתרשים. שיטת התרשים מכילה כמה ארגומנטים, כולל: scale שמגדיר את קנה המידה המרחבי, במטרים, שבו מתבצעת הדגימה של האזור שמעניין אתכם. minBucketWidth שמשמש לשליטה ברוחב של משבצות ההיסטוגרמה.

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

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

הסקריפט הסופי

התסריט המלא של הקטע הזה מופיע בהמשך. שימו לב שהסקריפט כולל הצהרות להגדרת גיאומטריית מצולע (roi), שדומה לגיאומטריה שיצרתם באמצעות כלי הגיאומטריה של עורך הקוד.

עורך הקוד (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'
});

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