نحوه نوشتن توابع و شاخص های پیچیده ریاضی در گوگل ارث انجین

271 بازدید

اخبار ، مقالات و تحقیقات گروهی را دنبال کنید.

آموزش رایگان نرم افزار ENVI

در ENVI حرفه ای شو 🦾

0 تا 100 مفاهیم سنجش از دور

کاملا رایگان شروع کن 🧩

آموزش رایگان ArcGIS pro

واقعاااااا رایگاااااانه 🤗

آموزش گوگل ارث انجین

شدیدا توصیه شده 🌏

دانلود لندیوز 10 متری ایران و …

به کمک گوگل ارث انجین 🚀

کتاب موتور پردازش مجازی

اولین کتاب آموزش گوگل ارث انجین 📗

طبقه بندی تصاویر ماهواره ای

آشنایی با انواع روش ها 😲

پیش پردازش تصاویر ماهواره ای

هندسی – رادیومتریکی – اتمسفری 🀄

دانلود داده های آلتیمتری

ترازسنجی برای دریاچه ها 🧿

پوشش اراضی 10 متری

تولید شده توسط ESRI 🧐

نمایش سه بعدی در ArcGIS

مدل رقومی ارتفاع 🗻

مطالب پربازدید

با توجه به نوع آنالیز تصاویر سنجش از دور، از توابع ریاضی متفاوتی استفاده می شود. ممکن است بخواهید یک شاخص جدید تعریف کنید یا از شاخص های معروف NDVI، NDWI و … استفاده کنید. ممکن است بخواهید از یک باند تصویر مقادیری را کم کنید یا به آن اضافه کنید و آن را در مقداری ضرب کنید. در این…

با توجه به نوع آنالیز تصاویر سنجش از دور، از توابع ریاضی متفاوتی استفاده می شود.

ممکن است بخواهید یک شاخص جدید تعریف کنید یا از شاخص های معروف NDVI، NDWI و … استفاده کنید.

ممکن است بخواهید از یک باند تصویر مقادیری را کم کنید یا به آن اضافه کنید و آن را در مقداری ضرب کنید. در این صورت نیاز دارید تا نحوه تعریف روابط ریاضی را بر روی تصویر یاد بگیرید.
اگر شاخص پیچیده باشد، نوشتن آن به صورت عادی دشوار شود، و احتمال افزایش خطا را افزایش دهد، راه حل دیگری وجود دارد. در این آموزش علاوه بر آموزش نوشتن توابع ساده، نحوه نوشت توابع پیشرفته به نحوی که مشابه فرمول های کتاب باشد، آموزش داده می شود.
در ادامه به سراغ اعمال توابع به تمام تصاویر موجود در مجموعه تصاویر (imageCollection) می رویم.

خوشبختانه نیاز به نوشتن حلقه های زمان بر وجود ندارد و با تعریف تابع به صورت مشخص می توانید تابع را به تمامی تصاویر اعمال کنید و خروجی را در یک مجموعه تصاویر داشته باشد. مجموعه تصاویر جدید آماده است تا توابع بعدی را به آن ها اعمال کنید.
در نهایت نگاهی ویژه به تابع تفاضل نرمال شده می اندازیم که مشابه نکات تستی کنکور! است و بدون درگیر شدن در نوشتن تابع، نتیجه را فراهم می کند.

اگر شاخص پیچیده باشد، نوشتن آن به صورت عادی دشوار شود، و احتمال افزایش خطا را افزایش دهد، راه حل دیگری وجود دارد. در این آموزش علاوه بر آموزش نوشتن توابع ساده، نحوه نوشتن توابع پیشرفته به نحوی که مشابه فرمول های کتاب باشد، آموزش داده می شود.

این آموزش به چه مواردی می پردازد؟

تعریف روابط ریاضی و شاخص و نحوه اعمال به تمامی تصاویر collection
نحوه تعریف شاخص های های مختلف از قبیل vegetation و water
تعریف تابع
اعمال تابع به تمام تصاویر موجود در Imagecollection
عدم نیاز به حلقه در اعمال یک تابع به یک مجموعه تصاویر
محاسبه ماکزیمم، مینیمم، میانه و میانگین سبزینگی در داده های سری زمانی
نحوه نوشتن شاخص های پیچیده ریاضی
استفاده از تابع تفاضل نرمال شده برای سادگی محاسبات

 


ویدئوی معرفی:


مدرس دوره کیست؟

محمد کاکوئی

  • دانشجوی دکترای الکترونیک سیستم دیجیتال
  • برنامه نویس متلب، C، GPU ، اندروید و سخت افزار
  • تخصص در پردازش تصویر، بینایی ماشین و شناسایی آماری الگو
  • متخصص پردازش تصاویر سنجش از دور در محیط Google Earth Engine

 


شاخص های گیاهی در گوگل ارث انجین

شاخص های گیاهی در گوگل ارث انجین


مشخصات آموزش کار با گوگل ارث انجین

مدرس: محمد کاکوئی
فرمت: ویدئوی MP4
حجم: ۱۵۶ مگابایت
مدت: ۳۸ دقیقه
محصول دانلودی


تهیه آموزش:

برای خرید، بر روی دکمه زیر کلیک کنید.


لینک های کاربردی:

استفاده از مجموعه داده های ماهواره ای مختلف در گوگل ارث انجین – رایگان

کاربردهای گوگل ارث انجین در سنجش از دور


نوشته های مرتبط :

آموزش های رایگان پیشنهادی :

۳۴ دیدگاه. ارسال دیدگاه جدید

  • سلام
    سوالی داشتم از خدمتتون
    من یکسری شاخص شوری(فرمول ها جذر و توان دارند) را میخواستم روی ماهواره لندست۸ توی گوگل ارث انجین اجرا کنم به نظرتون این محصول میتونه به من کمک کنه تا بتونم فرمول ها رو در گوگل ارث انجین بنویسم.
    خیلی ممنونم

    پاسخ
    • سلام
      در این اموزش نحوه نوشتن توابع پیچیده به صورت expression توضیح داده می شود. به به کارگیری این تکنیک می توان پیچیده ترین روابط و فرمول ها را هم اعمال کرد.
      موفق باشید

      پاسخ
  • سلام وققتتون بخیر
    واقعا عذر میخوام من مجدد مزاحمتون شدم.
    من محصول رو خریداری کردم اما فرمول که من میخواستم توی گوگل ارث انجین وارد کنم توان و جذر داشت و خیلی ارور گرفتم . میخواستم اززتون خواهش کنم اگر براتون مقدور هست این کد رو یه نگاهی بندازید البته ارور نداد و تصویرو تونستم دانلود کنم اما این تصویرگوگل ارث انجین با تصویری که من توی نرم افزار انجام میدم خیلی متفاوت هست.
    https://code.earthengine.google.com/2905bc8256a2c25f351641fb51efc620

    پاسخ
    • سلام
      اولا برای اینکه من بتونم کد رو اجرا کنم Table را share کنید.
      دوما به نظرم رابطه شما اشتباه است. شاید باید سه مولفه با هم جمع شوند. این که سه مولفه به توان برسند و در هم ضرب شوند و زیر رادیکال بروند، مشابه ضرب سه مولفه است، یعنی:
      SI = b3*b4*b5
      برای ایندکس یک رفرنس بدهید تا ببینم.
      سوما اینکه برا export کردن بهتر است crs را مشخص کنید.
      موفق باشید

      پاسخ
  • سلام مجدد
    ببخشید دوباره مزاحمتون شدم و خیلی ممنون از راهنمایتون و وقتی که گذاشتید.
    من از ژئومتری برای برش منطقه ام استفاده میکنم و تیبل رو حواسم نبود از کدم پاک کنم.
    واقعا ببخشید درست گفتید من شاخص رو اشتباه نوشتم و درستش اینطوری بود (SI2= √(G^2+R^2+NIR^2 )

    پاسخ
  • رفرنس شاخص (SI2= √(G^2+R^2+NIR^2

    https://doi.org/10.1016/j.geoderma.2005.10.009

    پاسخ
  • روناک قنبری
    ۱۳۹۸-۱۰-۰۱ ۱۱:۵۳ ق٫ظ

    سلام و عرض ادب
    من دو گوگل ارث اینجین قصد دارم بین دو تا تصویر از لندست هشت که یکیش برای دما و دیگری پوشش زمین و کاربری زمین است رکرسیون خطی و غیر خطی بزنم
    میشه منو تو این زمینه راهنمایی کنید
    لازم به ذکر است که تصاویر سری زمانی دما و پوشش زمین و‌ کاربری رو به دست آوردم فقط رگرسیون رو مشکل دارم
    سپاس فراوان

    پاسخ
  • سلام و وقت بخیر
    با توجه به نوع رگرسیونی که نیاز دارید، در GEE از بخش ee.Reducer به موارد زیر دسترسی دارید
    ee.Reducer.linearFit
    ee.Reducer.linearRegression
    ee.Reducer.ridgeRegression
    ee.Reducer.robustLinearRegression
    موفق باشید

    پاسخ
    • روناک قنبری
      ۱۳۹۸-۱۰-۰۷ ۱۰:۵۲ ق٫ظ

      سلام و عرض ادب خدمت شما بزرگوار
      ممنون از راهنماییتون 🙏
      آقای مهندس من چون تصاویرم سری زمانی هستن آیا این امر امکان پذیر هست (منظورم رگرسیون بین دو مجموعه تصویر سری زمانی )؟یا باید تصویر هامو از image collection خارج کنم و به صورت د‌و تا تصویر باشه به جای مجموعه تصویر ؟

      سوال دومم اینه که من چون سری زمانی کار کردم الان میخوام از بین تاریخ های به دست آمده از تصاویر فقط چند تاییش رو بررسی کنم مثلا بین صدتا تصویری که از سری زمانی حاصل شده ،پنجاه تاشو لازم دارم ،چه طور میتونم این تصاویرم رو جدا کنم و دانلود کنم .
      ممنون میشم از پاسخگوییتون 🙏

      پاسخ
      • سلام
        سوال اولتون از نظر تئوری ریاضی برای من مبهمه. متغیر مستقل و وابسته شما چیست که میخواهید بین دو imageCollection انجام دهید. وقتی این کار را بین دو تصویر انجام می دهیم، پیکسل های دو تصویر مورد بررسی نقش متغیر مستقل و وابسته را بازی می کنند که در نتیجه، value و offset به دست میاد.
        برای سوال دوم راه حل های زیادی وجود داره. میتونید با فیلتر گذاری زمانی، تعدادی از او تصاویر را انتخاب کنید. می توانید به List تبدیک کنید و با انتخاب تصاویر دلخواه، دوباره لیست رو به imageCollection تبدیل کنید. وابسته به استراتژی انتخاب شما داره

        پاسخ
        • روناک قنبری
          ۱۳۹۸-۱۰-۰۸ ۱۰:۲۲ ق٫ظ

          ممنون از پاسخگوییتون واقعا
          در مورد سوال اول منظور من اینه که من میتونم با توجه به اینکه دمای سطح زمین و لندیوز لندکاور رو به صورت سری زمانی کار کردم
          بین این دو رگرسیون بزنم؟

          پاسخ
          • خواهش میکنم
            متغیرهاتون رو به صورت واضح مشخص کنید، این طور که من متوجه شدم
            یک باند دما
            یک باند لندیوز لندکاور
            و متغیر زمان
            پیشنهاد من اینه که یکی از دو کار زیر رو انجام بدهید
            ۱- از دما و LULC به صورت جداگانه میانگین بگیرید و از دو تصویر موجود رگرسیون بگیرید. روش ساده است ولی اطلاعات زمانی حذف میشه
            ۲- جفت تصویرهای دما و LULC بسازید. مثلا ۲۰ جفت تصویر زمانی که هر کدوم یک باند دما و یک باند LULC دارند و به هر کدام رگرسیون رو اعمال کنید. در نتیجه میتوانید با تصاویر سری زمانی تولید شده، آنالیز زمانی انجام بدهید.
            موفق باشید

  • روناک قنبری
    ۱۳۹۸-۱۰-۱۰ ۱۲:۲۵ ب٫ظ

    سپاس فراوان 🙏

    پاسخ
  • سلام
    من اموزش شمارو تهیه کردم. یه سوال دارم ممنون میشم راهنماییم کنید.
    اگه بخواهم یک باند (مثلا باند قرمز) نرمالیزه کنم (بین ۰ و ۱) قرار بدم باید چطوری انجامش بدم؟

    پاسخ
    • سلام
      ابتدا باید با reducer مقدار ماکزیمم و مینیمم را در geometry مد نظر پیدا کنید
      سپس از رابطه (مین – ماکس)/(مین – پیکسل) استفاده کنید.

      پاسخ
  • با سلام و خسته نباشید
    من این محصول آموزشی رو تهیه کردم
    میخواستم بعد از محاسبات ریاضی شاخص جای ارزش های پایین و بالا رو برعکس کنم یعنی مقادیر کم برای من ارزش بالا ثبت بشن باید از چه تکنیکی استفاده کرد؟ ممنون میشم راهنمایی کنین.

    پاسخ
  • سلام
    وقتتون بخیر
    جناب دکتر ی سوال داشتم
    میخاستم روی مجموعه ای از تصاویر NDVI ی کد بنویسم که زمانی که مقدار ndvi دو یا سه روز پشت سر هم از مقدار ۰٫۹۲ بیشتر شد رو بصورت ی نقشه خروجی بهم بده
    در واقع توالی روزهای پشت سر هم برام مهمه
    اینکه مثلا در فلان ماه سه روز پشت سر هم میزان ndvi بیشتر از ۰٫۹۵ بوده
    ممنون میشم در این مورد راهنمایی بفرمایید
    و اینکه آیا در این محصول اینجور چیزی رو توضیح دادین
    ممنون میشم جواب رو به ایملیم ارسال کنین
    سپاس
    Hesmaeili19@yahoo.com

    پاسخ
    • سلام
      خیر، در این محصول وجود نداره
      موارد زیر را در نظر داشته باشید
      ابتدا موزاییک های سری زمانی از NDVI را در یک کالکشن تشکیل دهید
      سپس با تبدیل آن به باندهای یک تصویر میتوانید و آستانه گذاری میتوانید توالی یک ها را بررسی کنید.
      موفق باشید

      پاسخ
      • متوجه نشدم متاسفانه
        اگه ممکنه رو ی پروداکت اعمال کنین و لینک بدین بهم تا جایگذاری کنم
        متاسفانه از چندین نفر پرسیدم هیچکس نتونست توالی چند روز پشت سر هم رو تولید کنه
        ممنونم

        پاسخ
        • متاسفانه محدودیت های زمانی و کاری، این امکان را فراهم نمیکند.
          کدنویسی به عهده دانشجو است و در صورت مواجه با مشکل میتوانید سوال بپرسید
          موفق باشید

          پاسخ
  • مریم غلامی
    ۱۴۰۰-۰۱-۲۵ ۹:۱۰ ب٫ظ

    سلام وقتتون بخیر
    من این محصول تهیه کردم اما متاسفانه فرمول نویسی شاخص msavi توضیح داده نشده بود
    من با این فرمول مینویسم اما ارور میده میشه کمکم کنید ببینم اشکالم در کجاست؟
    MSAVI2 = (1/2)*(2*NIR+1-sqrt ((2*NIR+1)^2-8*(NIR-red)))
    موقع نشان دادن نقشه این پیغام خطا Image (Error)
    Image.bitwiseXor: Bitwise operands must be integer only.
    میدهد.
    واقعا نمیدونم اشکالم کجاست ممنون میشم کمکم کنید

    پاسخ
    • سلام
      علامت ^ به صورت XOR تعبیر میشه
      برای توان ۲ عبارت x از pow(x,2) استفاده کنید
      موفق باشید

      پاسخ
  • یگانه قمری قلعه
    ۱۴۰۰-۰۸-۰۳ ۱۱:۲۸ ق٫ظ

    سلام وقت شما بخیر
    ببخشید جناب دکتر من یک کدنوشتم که هنگام خروجی گرفتن با این خطا مواجه شده ام. و عبارت خطا به این صورت هستش.
    Image (Error)
    Image.parseExpression: Expression parse error at character 15:
    ‘۲۶.۹۰۱* (mtvi2)² – ۳۰.۶۶۹(mtvi2)+10.648’
    البته کد تلفیقی از دو شاخص هست که قسمت قسمت هم کد رو اجرا میکنم دوباره خطا میده من این فیلم اموزشی رو هم تهیه کردم ولی نتیجه ای ازش در این زمینه نگرفتم .
    من لینک کد رو خدمت شما ارسال میکنم ممنون میشم راهنماییم کنید که مشکل کارم کجاست.
    https://code.earthengine.google.com/0822f22c72a1f3828bc276b4ab2a08ff
    با تشکر

    پاسخ
    • سلام
      جدای از اینکه روابط را به شکل صحیح ننوشتید، واقعا تعجب کردن که چگونه خود توان ۲ و رادیکال را وارد رابطه نویسی کردید؟!
      توان را به شکل ** بنویسید، یعنی
      توان ۲ به شکل ۲**
      رادیکال ۲ به شکل ۰.۵**

      موفق باشید

      پاسخ
      • یگانه قمری قلعه
        ۱۴۰۰-۰۸-۰۴ ۱:۳۶ ب٫ظ

        سلام خسته نیاشید. ببخشید جناب دکتر اگر اشتباه جایگذاری نکرده باشم توضیحات شما رو وارد کد کردم ولی بازم خطا داد و اینکه شما فرمودین روابط رو اشتباه نوشتم من متوجه نشدم کدوم قسمت از روابط اشتباهه. ممنون میشم بیشتر راهنماییم کنید. تا به نتیجه درستی برسم. لینک کد رو خدمتتون ارسال میکنم و همچنیین رفرنس مقاله ای که شاخص رو استفاده کردم.
        https://code.earthengine.google.com/a20c60d49bca5dbd862b59bf2059c776

        multispectral remote sensing for site specific nitrogen fertilizer management
        با تشکر از پیگیری های شما

        پاسخ
  • یگانه قمری قلعه
    ۱۴۰۰-۰۸-۰۹ ۴:۱۳ ب٫ظ

    سلام وقت شما بخیر.
    ببخشید جناب دکتر شما فرمودین روابط رو صحیح ننوشتم ممنون میشم راهنمایی کنید کدوم قسمت از کد رو اشتباه نوشتم تا اصلاحش کنم و به خروجی برسم. لینک کد رو خدممتون ارسال کردم.
    https://code.earthengine.google.com/a20c60d49bca5dbd862b59bf2059c776
    دقیقا نمیدونم مشکل کار کجاست که خطا میده؟
    ممنون از شما

    پاسخ
    • سلام
      وضعیت کد شما از قبلی بهتر شده است.
      ایراد اصلی کد فعلی در ضرب ها است که حتما باید به صورت * نوشته شود. مثلا در موارد زیر ضریب پشت پرانتز و متغیر قرار دارد و علامت ضرب استفاده نشده است!
      ۱.۸(NIR – Green)
      ۳.۷۵(Red – Green)
      ۲NIR
      و تعداد بیشتری موارد مشابه وجود دارد

      موفق باشید

      پاسخ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست