חישוב אובדן היערות השנתי
בקטע הקודם למדתם איך לחשב את השטח הכולל של היער שאבד באזור העניין הנתון באמצעות השיטה reduceRegion. במקום לחשב את ההפסד הכולל, כדאי לחשב את ההפסד בכל שנה. כדי לעשות את זה ב-Earth Engine, משתמשים ב-Grouped Reducer.
כדי לקבץ את הפלט של reduceRegion(), אפשר לציין רצועת קיבוץ שמגדירה קבוצות לפי ערכי פיקסלים שלמים. בדוגמה הבאה, אנחנו משנים קצת את הקוד הקודם ומוסיפים את הרצועה lossYear לתמונה המקורית. כל פיקסל ברצועה lossYear מכיל ערכים מ-0 עד 14, שמציינים את השנה שבה אירע האובדן. אנחנו גם משנים את המפחית למפחית מקובץ, ומציינים את אינדקס הרצועה של רצועת הקיבוץ (1) כדי ששטחי הפיקסלים יסוכמו ויקובצו לפי הערך ברצועה lossYear.
Code Editor (JavaScript)
// Load country boundaries from LSIB. var countries = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017'); // Get a feature collection with just the Congo feature. var congo = countries.filter(ee.Filter.eq('country_co', 'CF')); // Get the loss image. // This dataset is updated yearly, so we get the latest version. var gfc2017 = ee.Image('UMD/hansen/global_forest_change_2017_v1_5'); var lossImage = gfc2017.select(['loss']); var lossAreaImage = lossImage.multiply(ee.Image.pixelArea()); var lossYear = gfc2017.select(['lossyear']); var lossByYear = lossAreaImage.addBands(lossYear).reduceRegion({ reducer: ee.Reducer.sum().group({ groupField: 1 }), geometry: congo, scale: 30, maxPixels: 1e9 }); print(lossByYear);
אחרי שתריצו את הקוד שלמעלה, תראו את שטח היערות שאבדו מדי שנה מודפס ברשימה מקוננת בשם groups. אנחנו יכולים לעצב קצת את הפלט כדי שהתוצאה תהיה מילון, שבו השנה היא המפתח ואזור האובדן הוא הערך. שימו לב שאנחנו משתמשים בשיטה format() כדי להמיר את ערכי השנים מ-0-14 ל-2000-2014.
Code Editor (JavaScript)
var statsFormatted = ee.List(lossByYear.get('groups')) .map(function(el) { var d = ee.Dictionary(el); return [ee.Number(d.get('group')).format("20%02d"), d.get('sum')]; }); var statsDictionary = ee.Dictionary(statsFormatted.flatten()); print(statsDictionary);
יוצר תרשים
עכשיו, כשיש לנו את נתוני ההפסדים השנתיים, אנחנו מוכנים להכין תרשים. נשתמש בשיטה
ui.Chart.array.values(). השיטה הזו מקבלת מערך (או רשימה) של ערכי קלט ומערך (או רשימה) של תוויות לציר ה-X.
Code Editor (JavaScript)
var chart = ui.Chart.array.values({ array: statsDictionary.values(), axis: 0, xLabels: statsDictionary.keys() }).setChartType('ColumnChart') .setOptions({ title: 'Yearly Forest Loss', hAxis: {title: 'Year', format: '####'}, vAxis: {title: 'Area (square meters)'}, legend: { position: "none" }, lineWidth: 1, pointSize: 3 }); print(chart);
התוצאה אמורה להיראות כמו בתרשים הבא.
בקטע הבא, תלמדו על מערך נתונים נוסף לניטור כריתת יערות, FORMA, ותשוו אותו לנתונים של Hansen et al. .