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

641 بازدید

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

پروداکت های آماده در سنجش از دور حاوی اطلاعات موضوعی هستند که در زمینه های مختلف زیست محیطی قابل استفاده است. این پروداکت ها کاملا تصحیح شده و با استفاده از الگوریتم های معتبر قبلا یک یا چند پارامتر بیوفیزیکی یا بیوشیمیایی در آن محاسبه شده و بصورت آماده در اختیار کاربران سنجش از دور قرار گرفته است. این پروداکت ها از لحاظ زمانی متفاوت هست: به عنوان مثال برخی بصورت روزانه و برخی بصورت ۸ روزه و ۱۶ روزه و یا حتی ماهیانه عرضه می شوند. آیا می دانید دلیل تولید پروداکت های چند زمانه در سنجش از دور چیست؟ مثلا مزیت داده های ۸ روزه نسبت به داده های روزانه چیست؟

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

علی رقم ارزش بالای پروداکت های چند زمانه، بسیاری از پروداکت های آماده در سنجش از دور بصورت روزانه عرضه می شوند. در صورتی که شما با تکنیک های برنامه نویسی در سامانه گوگل ارث انجین آشنایی داشته باشید براحتی می توانید نسبت به تبدیل داده های روزانه به چند زمانه اقدام کنید. به عنوان مثال پروداکت دمای سطح زمین سنجنده مادیس در سامانه ارث انجین بصورت روزانه عرضه می شود. شما می توانید با استفاده از تکنیک های برنامه نویسی چندزمانه نسبت به تولید داده های دمای سطح زمین ۸، ۱۶ و یا حتی ۳۰ روزه اقدام کنید.

در کد زیر ابتدا تصاویر دمای سطح زمین مادیس (برای بازه ۱۰ ساله) در سامانه گوگل ارث انجین فراخوانی شده است.

 

سپس با استفاده از تابع LST، باند مورد نظر انتخاب شده و سپس بر اساس مرز منطقه مورد مطالعه برش خورده است.

 

 

 

 

به منظور تبدیل داده های روزانه به چند زمانه (مثلا ۱۶ روزه) ابتدا باید تابع تبدیل زمانی آن را بنویسید که نمونه آن در عکس زیر نمایش داده شده است.

 

بعد از ایجاد تابع temporalCollection می توانید از آن برای تولید پروداکت دمای سطح زمین ۱۶ روزه استفاده کنید. 

 

 

در تابع بالا، تصاویر دمای سطح زمین مادیس فراخوانی شده و برای بازه ۱۰ ساله تصاویر میانگین دمایی با فواصل زمانی ۱۶ روزه استخراج شده است. تابع temporalCollection جزو پر کاربردترین توابع چندزمانه سنجش از دور در سامانه گوگل ارث انجین است که توسط توسعه دهندگان این سامانه طراحی و در سال ۲۰۲۰ عرضه شده است. 

این متن آموزشی برگرفته از اولین کتاب آموزش گوگل ارث انجین در ایران است. اگر علاقه مند به تهیه این کتاب هستید به لینک زیر مراجعه کنید:

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

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

48 دیدگاه. ارسال دیدگاه جدید

  • امین فتحی
    1399-12-03 12:12 ق.ظ

    سلام آقای احراری خسته نباشید،
    من برای کارم از پروداکت های ۱۶ روزه مادیس برای کارم استفاده می کنم. میخواهم تصاویر میانگین ماهانه تولید کنم. اما مشکلی که هست اینه که تصاویر اول هر ماه مقداری از ماه قبل و تاثیر می پذیرند. برای مثال تصاویر NDVI برای ماه جولای، یک تصویر در روز ۴م و تصویر بعد در روز ۲۰ می افتد. که در حالت عادی با میانگین گیری، خطای بسیار زیادی ایجاد می شود. این قضیه برای تمام پروداکت ها، ۱۶ و ۸ روزه وجود دارد وقتی بخواهیم از آنها میانگین مااهانه بگیریم. آیا کد یا روشی هست که بتوان میانگین وزنی گرفت؟ و روی image collection اعمال کرد؟

    پاسخ
    • با سلام و احترام

      در تابع مورد نظرتون به جای واحد days از month استفاده کنید. به جای عدد ۳۰ روز از ۱ ماه استفاده کنید. با این روش داده های ماهیانه از ماه قبل تاثیری نمی پذیرند.

      موفق باشید

      پاسخ
  • سلام جناب احراری
    سایت Planet داده های ارزشمندی داره و متاسفانه به خاطر تحریم های آمریکا به ما اجازه دسترسی نمیده ولی داده هاش رو میشه تو سامانه GEE هم اورد(نه فقط تا ۲۰۱۶) . شما تجربه ای در این مورد ندارین؟

    پاسخ
  • مرضیه عیادپور
    1400-03-05 7:32 ب.ظ

    سلام و وقت بخیر
    جناب احراری بنده در زمینه گپ فیلینگ دارم کار میکنم و حالا کدهای متلب از من تصاویر باینری میخواد((raw)ENVI binary images) امکانش هست راهنمایی کنین؟
    از دستورات فراخوانی دیگه هم استفاده کردم ولی خب درنهایت با همون پیام که تصاویر با فرمت rawمیخواد دریاافت میکنم.
    ممنونم از شما بابت وقتی که میگذارین.

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

    پاسخ
    • با سلام و احترام

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

      موفق باشید

      پاسخ
  • با سلام و خسته نباشید.
    ممنون میشم بفرمایید عدد 229 چطور محاسبه شده است؟
    همچنین لطفا بفرمایید:
    اگر بخواهیم از داده های 3 روزه یک پروداکت طی سالهای 2010 تا 2020 داده های ماهانه ی آن پروداکت را برای این دوره زمانی بدست آوریم علاوه بر تغییر day به month و عدد 16به 1 چه تغییرات دیگری لازم است در کد جنابعالی ایجاد شود؟
    و نیز اگر پروداکت منظوره بدون scale باشد می توان به جای مقدار 0.02 در کد شما از مقدار 1 استفاده کرد؟

    پاسخ
    • با سلام و احترام

      ببخشید تعداد آموزش ها زیاد هست حضور ذهن ندارم. ممنون میشم لینک کد آموزش رو در اینجا بزارید تا بتونم دلیل عدد 229 رو عرض کنم. البته قطعا در فیلم آموزشی توضیح داده شده است.
      داده های ماهیانه را نمیتوانید به 3 یا یک روز تبدیل کنید. حداقل این روشی که بنده توضیح دادم برای تبدیل مقیاس زمانی از پایین به بالا کاربرد دارد. مثلا روزانه به هفتگی و …
      در صورتی که پروداکت مورد استفاده scale نداشته باشد هیچ عددی نباید وارد کنید و هیچ ضربی انجام نمی شود.

      موفق باشید

      پاسخ
  • سپاس از پاسخ جنابعالی

    عنوان آموزش تولید “پروداکت های ماهواره ای چند زمانه در سنجش از دور با استفاده از سامانه گوگل ارث انجین” است که به صورت فیلم نمی باشد و لینک آن https://girs.ir/gee-multi-temporal-function/ است.

    فرمایش شما متین است و منظور بنده هم تبدیل از پایین به بالا است یعنی تبدیل داده های 3 روزه به داده های ماهانه.

    پروداکت مورد نظر بدون scale است بنابراین حذف عبارت multiply(0.02) از قسمت var bands=img.select(‘LST_DAY_1km’).multiply(0.02).clip(table): 0 مشکلی در کدهای بعدی ایجاد نمی نماید؟

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

    از بذل توجه شما سپاسگزارم

    پاسخ
    • با سلام و احترام

      ببخشید که دیر پاسخ دادم. متاسفانه مشغله های کاری بنده بسیار زیاد هست و کمی تاخیر در پاسخ گویی ایجاد کرده.
      مشکلی ایجاد نمی کند. اول داده خود را اصلاح کنید و سپس داده اصلاح شده را وارد تابع temporal collection نمایید.

      موفق باشید

      پاسخ
  • سپاس
    عدد 229 رو نفرمودید در آموزش پروداکت های ماهواره ای چند زمانه در سنجش از دور با استفاده از سامانه گوگل ارث انجین” است که به صورت فیلم نمی باشد و لینک آن https://girs.ir/gee-multi-temporal-function/ است از کجا آمده و چطور محاسبه شده است؟

    پاسخ
    • با سلام و احترام

      عدد 229 جای count بر اساس تعداد تصاویر مورد نیاز با فواصل مورد نظر ما تعیین شده. اگر لینک کد رو با استفاده از گزینه getlink د رارث انجین کپی کرده و در اینجا برای من بفرستید میتونم بهتر راهنمایی تون کنم. چون باید کد رو ببینم که در چه بازه زمانی چه تعداد تصاویر را میخواستم خروجی بگیرم. البته در فیلم محصول قطعا اشاره کردم. اما اگر لینک کد رو بفرستید بهتر میتونم راهنمایی تون کنم.

      موفق باشید

      پاسخ
  • با سلام و خداقوت مجدد و سپاس از توجه جنابعالی
    آموزش شما برای تولید پروداکت چند زمانه در قالب عکس است نه فیلم به همین دلیل براساس آن کدها رو خود نوشتم که لینک آن تقدیم می شود تا راهنمایی فرمایید عدد 229 از کجا آمده است.
    و اگر بخواهیم برای یک دوره ی 10 ساله پروداکت را از 3 روزه به ماهانه تبدیل کنیم به جای عدد 229 از چه عددی باید استفاده کنیم و چطور محاسبه می شود؟

    https://code.earthengine.google.com/3b3a3ff25159393b1d3ce330d649642b

    پاسخ
    • یک بازه زمانی 10 ساله شامل 3650 تصویر است. اگر بخواهیم برای همین بازه زمانی تصاویر را با فواصل میانگین 16 روزه دانلود کنیم شامل 229 تصویر می شود که حاصل تقسیم تعداد روزهای 10 سال (3650) به عدد 16 هست.

      موفق باشید

      پاسخ
  • سلمانی
    1401-02-17 11:22 ق.ظ

    با سلام و وقت بخیر.

    تصویری که در نهایت ایجاد میشه برای یک دوره زمانی چندساله، به صورت شماره باند ذخیره میشه! میشه بفرمایید چطور بفهمیم هر شماره باند مال چه تاریخی هست؟

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

    پاسخ
    • با سلام و احترام

      تابع همان است فقط باید واحد رو به year تغییر بدید. تعداد تصاویر هم بر اساس تعداد سال های مورد نظرتون تعیین میشه.

      موفق باشید

      پاسخ
  • سلام و درود
    در خصوص تبدیل داده 8روز مادیس به یکماه از کد زیر استفاده می کنم ولی مراحل پایانی جهت خروجی یا نمایش دچار خطا می شود؟
    آیا روش تبدیل من درست هست ممنونم از وقتی که میزارید؟ و مشکل از کجاست؟
    https://code.earthengine.google.com/?scriptPath=users%2Ftahanim61%2Fproj%3Amaghaleh_modis_lst%20(copy)

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

    پاسخ
    • با سلام و احترام

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

      موفق باشید

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

        پاسخ
        • پروژه هایی که کار کردم مبتنی بر سری زمانی شمسی تا حالا نبوده به همین دلیل این موضوع را بررسی نکردم.
          در حال حاضر در پروژه ها بیشتر ما از سال هیدرولوژیکی و ماه های آن استفاده میکنیم.

          موفق باشید

          پاسخ
  • ghobadi_fatemeh@yahoo.com
    1401-11-03 11:43 ق.ظ

    سلام وقت بخیر…یه سوال داشتم راجب سنجنده مادیس و پروداکت روزانه گردوغبار…من یه منطقه مطالعاتی دارم ک محدوده خیلی بزرگی هستش…من داده هارو بصورت روزانه میگیرم. وقتی خروجی میخام بگیرم تعداد عکسایی ک روزانه بهم داده بصورت میانگین خروجی میگیرم که یک عکس واحد بهم بده…ب دلیل اینکه منطقه من خیلی وسعت داره و این محدوده توی یک سین عکسی قرار ندارن. وقتی که میانگین یک عکس خروجی بهم میده باعث شده از محدوده منطقه من بصورت گپ ظاهر بشن…علتش بررسی کردم در لحظه ای ک دیسندینگ ماهواره قرار داره و لحظه ای اسندینگ ماهواره هس میتونه علت این باشه چون دقیقا حالت مورب عکسام نمایش میده ک در یک محل تلاقی دارن..راه حلی هس که من فقط یا اسندینگ دانلود کنم یا دیسندیگ؟اخه طبق بررسی ک کردم ماهواره ترا از شمال به جنوب حرکتش و اکوا از جنوب به شمال..توی گوگل ارث انجین همون پروداکت روزانه میزنم واسه منطقه همچین حالتی میشه…میشه کاری کرد ک فقط اکوا یا ترا گرفته بشه ازگوگل ارث انجین

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

    پاسخ
    • با سلام و احترام

      می توانید با استفاده از فیلترها داده های یک ماهواره و یک زمان خاص رو انتخاب کنید. اینکه میانگین گیری باعث کاهش مقادیر می شود درست است.

      موفق باشید

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

    پاسخ
    • با سلام و احترام

      می توانید با استفاده از فیلترها داده های یک ماهواره و یک زمان خاص رو انتخاب کنید. اینکه میانگین گیری باعث کاهش مقادیر می شود درست است.

      موفق باشید

      پاسخ
  • ghobadi_fatemeh@yahoo.com
    1401-11-03 3:25 ب.ظ

    سلام وقت بخیر، یک سوال داشتم…در سامانه گوگل ارث انجین فیلتر ساعتی وجود داره…میخام دیتا فقط واسه ساعت خاصی توی روز خروجی بگیرم…از سنجنده مادیس و پروداکت روزانه aod که استفاده میکنم میخام فقط واسه ساعت خاصی خروجی بهم بده

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

    پاسخ
  • یک سوال دیگه …وقتی فیلتر کنم یک ماهواره خاص رو در یک زمان خاص
    اون aod 055 فرقی نمیکنه همون خروجی بهم میده یعنی؟

    پاسخ
  • سلام استاد من میخواهم دادهای روزانه lst تبدیل به ماهانه کنم.بعد چارت max,minانتخاب کنم….ترسیم.الان در فرمول تبدیل روزانه به ماهانه در فرمول یکجا،mean.clip(),داره این واسه همه جا ثابته و mean,…در فرمول تکرار میشه در هر صورت و اگه max,min….بخواهم بگیرم در چارت .اون قسمت mean در هر صورت تغییر نمیکنه؟

    پاسخ
    • با سلام و احترام

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

      موفق باشید

      پاسخ
      • سلام یعنی در هر صورت برای یافتن بیشنه و مینمم دما ماهانه به روی دیتا روزانه ، meanباید در هر صورت در این فرمول روزانه به ماهانه ثابت باشه و برای ماکس دما و مینیم از تابع ماکس و مینم در چارت تنها استفاده کنیم؟

        پاسخ
        • اگر هدف این هست که برای هر ماه در هر پیکسل ماکسیموم رو داشته باشید در تابع temporal collection باید از max استفاده کنید و برعکس.
          اگر هدف میانگین ماهیانه هست از mean استفاده کنید.

          فرض کنید شما کالکشن تصاویر میانگین ماهیانه رو برای یک استان در هر پیکسل با استفاده از temporal collection محاسبه کردید. حال با استفاده از تابع reducer در چارت میتوانید برای کل استان میانگین، ماکسیموم و یا میتیموم رو بدست آورید.

          موفق باشید

          پاسخ
  • سلام دکتر جان برای محاسبه میانگین دما حداقل ماهانه در کد کتبدیل روزانه به ماهانه بجای mean بایدmin گذاشت؟این قسمت که***گذاشتم منظورمه.
    var temporalCollection = function(collection, start, count, interval, units){

    var sequence = ee.List.sequence(0, ee.Number(count).subtract(1.0));
    var originDate = ee.Date(start);

    return ee.ImageCollection(sequence.map(function(i){

    var startDate = originDate.advance(ee.Number(interval).multiply(i), units);
    var endDate = originDate.advance(ee.Number(interval).multiply(ee.Number(i).add(1)), units);

    return collection
    .filterDate(startDate, endDate)****.mean().clip(table)
    .set(‘system:time_start’, startDate.millis())
    .set(‘system:time_end’, endDate.millis());
    }));
    };

    پاسخ
  • پاسخ

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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

keyboard_arrow_up