اخبار ، مقالات و تحقیقات گروهی را دنبال کنید.
مقاله کاربردی روش محاسبه مساحت پوشش گیاهی در گوگل ارث انجین
در این مقاله آموزشی روش محاسبه مساحت سطحی پوشش گیاهی با استفاده از تکنیک حدآستانه گزاری در سامانه گوگل ارث انجین بصورت رایگان توسط امیرحسین احراری تدریس شده است.
برای استمرار انتشار رایگان چنین مقالاتی از کاربران درخواست می شود تا در صورت استفاده از این محتوای آموزشی جهت حمایت از ناشر حتما به لینک این صفحه از سایت ارجاع دهند. هرگونه استفاده از این مطالب بدون ارجاع به سایت www.girs.ir خلاف رضایت نویسنده است.
گام اول: فراخوانی تصویر ماهواره ای
منطقه مورد مطالعه از طریق ترسیم دستی با استفاده از ابزار drawing در گوگل ارث انجین و یا از طریق بارگزاری شیپ فایل و فراخوانی آن داخل کد انجام می شود. در اینجا برای ساده سازی هرچه بیشتر کد یک منطقه دارای پوشش گیاهی با استفاده از ابزار drawing انتخاب شده و سپس با استفاده از دستور centerObject موقعیت نقشه ارث انجین بر مبنای آن تنظیم شد.
Map.centerObject(geometry)
سپس پروداکت NDVI سنجنده مادیس به عنوان داده اصلی محاسبه مساحت پوشش گیاهی به داخل کد اضافه می شود. شاخص NDVI که بیانگر میزان تراکم گیاه است امکان جداسازی آن از سایر کاربری ها و پوشش های سطح زمین را فراهم می کند. در کد زیر کالکشن تصاویر ۱۶ روزه NDVI سنجنده مادیس برای بازه ۲۰ ساله فراخوانی شده است.
var modis_ndvi = ee.ImageCollection(“MODIS/061/MOD13Q1”).filterDate(‘2001’,‘2021’)
گام دوم: آماده سازی داده ها
آماده سازی داده ها در گوگل ارث انجین معمولا شامل اعمال کد scale factor برای اصلاح دامنه مقادیر پروداکت استفاده می شود. برای همین منظور در اینجا عدد ۰/۰۰۰۱ باید بر روی تک تک تصاویر NDVI سنجنده مادیس اعمال شده تا دامنه مقادیر هر تصویر بین ۱- تا ۱+ تنظیم شود. دستور map امکان ایجاد یک حلقه برای اعمال محاسبه مشخص بر روی تک تک تصاویر موجود در کالکشن ها فراهم می کند.
}var ndvi_prepare = modis_ndvi.map(function(img)
return img.select(‘NDVI’).multiply(0.0001)
{( copyProperties(img, img.propertyNames()).
گام سوم: محاسبه مساحت هر پیکسل
در گام سوم نوبت به شناسایی و جداسازی پیکسل هایی است که حاوی پوشش گیاهی هستند. برای این کار ابتدا از روش حدآستانه گذاری مقادیر بزرگتر از ۰.۳ را به عنوان پوشش گیاهی انتخاب کرده و سایر پیکسل ها حذف می شود. سپس مساحت پیکسل های انتخاب شده (باقی مانده) برای تک تک تصاویر داخل کالکشن برآورد می شود.
}var ndvi_area = ndvi_prepare.map(function(img)
var thr = img.gte(0.3)
var mask = thr.updateMask(thr)
var area = mask.multiply(ee.Image.pixelArea().divide(1e6))
return area
{( copyProperties(img, img.propertyNames()).
گام چهارم: سری زمانی مساحت گیاهان
پس از محاسبه مساحت پیکسل های گیاهی در گام سوم، با استفاده از دستور chart و تابع reducer.sum امکان محاسبه مجموع مساحت پوشش گیاهی در هر تاریخ و ترسیم آن بر روی نمودار فراهم می شود.
)print
ui.Chart.image.series(ndvi_area, geometry, ee.Reducer.sum(), 250, ‘system:time_start’)
setChartType(‘ColumnChart’).
})setOptions.
,‘title: ‘Vegetation Cover Area
( ({ vAxis: {title: ‘Area km2’}
18 دیدگاه. ارسال دیدگاه جدید
سلام و خسته نباشید
استاد گرامی آیا مقالهای را می توانید به من معرفی کنید که با استفاده از شاخص lai و همین تکنیک به کتر رفته شما مساحت پوشش رو محاسبه کنه؟برای رفرنسدهی در رساله ایراد میگیرن اگر رفرنس مشخصب نباشه
با سلام و احترام
نه متاسفانه در این رابطه مقاله ای را نمیشناسم. این روش های بیشتر تکنیک های پایه ای هستند و شاید در مقالات خیلی به اینطور موضوعات با جزییات اشاره نشده باشد.
موفق باشید
با سلام من نمیتونم مطالب رو دریافت کنم
یعنی مطالبی که ارسال میشه به ایمیل یک سالی هست به هر شکل هم که ایمیل رو وارد میکنم و بعدش ایمیلی برام میاد تاید میکنم اما مطالب رو دریافت نمیکنم؟ تو اسپم هم چیزی ندیدم
سلام
چه آموزش هایی را نیاز دارید؟
لطفا همینجا بنویسید که بررسی کنیم.
چه طور میشه نقشه حد استانه رو خروجی گرفت فقط گراف میشه ازاش استخراج کرد؟
با سلام و احترام
با استفاده از دستور tobands لایه استک رو تولید کرده و سپس با استفاده از دستور export image to drive آن را ذخیره سازی کنید.
موفق باشید
سلام
هرچی این کد را می نویسم ارور می ده.
ممنونم میشوم اگر کد را بصورت لینک قرار دهید.
با تشکر
با سلام و احترام
لینک کدتون رو با استفاده از گزینه getlink کپی کرده و در اینجا بزارید تا بررسی کنم.
موفق باشید
با سلام
من می خواستم این شاخص را به چند طبقه تقسیم کنم. چه دستورهایی باید بهش اضافه کنم.
با تشکر
با سلام و احترام
با استفاده از تابع where قابل دسته بندی بر اساس حد آستانه های مختلف هست.
موفق باشید
با سلام و احترام
کدی که اجرا نمیشه :
https://code.earthengine.google.com/9796b4b1a16f11d18c0f1dd215a31a19
با تشکر
با سلام و احترام
لینک کد اصلاح شده:
https://code.earthengine.google.com/ae10e7259cfd810671e054e96ccbc425
فقط چون بنده لینک داده شما رو نداشتم با استفاده از یک منطقه مورد مطالعه فرضی کد رو تست کردم.
موفق باشید
با سلام
اگر امکانش هست خواسته دوست عزیز منصور را نیز بر روی کد بالا اعمال نمایید.
با تشکر
با سلام و احترام
لطفا سوالتون به همراه لینک کدتون رو اینجا بزارید تا بتونم بررسی کنم. متاسفانه در پنلی که من پاسخ میدم اون سوال نمایش داده نشده است.
موفق باشید
سلام جناب مهندس
کدی که ارور میده:
https://code.earthengine.google.com/dfec64f86041128b512b9169e703d8d5
ممنون می شوم اصلاح فرمایید.
با تشکر
با سلام و احترام
لینک کد اصلاح شده ضمیمه است.
https://code.earthengine.google.com/58be4ea66068ee10685379e97fc3f886
موفق باشید
با عرض سلام و تشکر بابت پاسخگویی
من شاخص NDVI را با استفاده از تابع WHERE به 5 طبقه تقسیم کردم و لی خروجی فقط یک عدد می دهد ولی مساحت هر طبقه را نشان نمی دهد. ممنون می شوم کد زیر را اصلاح فرمایید.
https://code.earthengine.google.com/5bbd8979768eec564e4164ed815e5e64
با تشکر
با سلام و احترام
بنده شیپ فایل شما رو ندارم و کد برای بنده اجرا نمیشه. با کد آموزشی بنده مقایسه کنید تا مشکل مشخص شود. اگر کد رو ندارید لطفا بفرمایید اسم کد کدام example هست تا لینک آن برای شما ارسال شود.
موفق باشید