این محصول آموزشی در ارتباط با محاسبه انواع روش های محاسبه شاخص NDVI ماهواره لندست 8 در Google Earth Engine و کاربرد آن در پایش مکانی و زمانی خشکسالی می باشد.
در این آموزش، علاوه بر روش محاسبه نرمال سازی شاخص NDVI با دو روش دیگر آشنا می شوید،زیرا همه معادلات بین باندی لزوماً نرمال سازی نیستند و ما می توانیم از دستورات به کار برده شده برای محاسبه شاخص هایی که نرمال شده نیستند، استفاده کنیم.
توضیحات محصول:
روش انتخاب منطقه مورد مطالعه در این آموزش با استفاده از برش تصاویر بر اساس لایه پلی گونی می باشد که این روش برای انتخاب منطقه ای محدود بسیار کاربرد دارد. سپس چگونگی فراخوانی تصاویر ماهواره ای لندست 8 تصحیح اتمسفری شده توضیح داده می شود، همچنین، با نحوه ذخیره سازی و دانلود تصاویر فراخوانی شده در سامانه گوگل ارث انجین با فرمت TIFF آشنا می شوید.
در انتها برای درک بیشتر مخاطبین از کاربرد این شاخص، پروژه ای کاربردی مورد بررسی قرار می گیرد.
از کاربردهای اصلی این محصول آموزشی، مطالعه رفتار زمانی پوشش گیاهی، مدل سازی آب و هوایی، طبقه بندی پوشش گیاهی، پایش محصولات کشاورزی، مطالعات بیابان زدایی و خشکسالی، حفاظت محیط زیست می باشد.
عناوین آموزشی:
عناوین آموزشی به شرح زیر می باشند:
- بخش اول: روش فراخوانی تصاویر تصحیح اتمسفری شده ماهواره لندست 8 در Google Earth Engine
- بخش دوم: انتخاب منطقه مورد مطالعه بر اساس برش لایه پلی گونی در Google Earth Engine
- بخش سوم: 3 روش محاسبه شاخص طیفی NDVI در Google Earth Engine
- بخش چهارم: روش بصری سازی تصویر با ترکیبات رنگی در Google Earth Engine
- بخش پنجم: روش ذخیره سازی تصاویر و بارگذاری آن در Google Drive
- بخش ششم: روش دانلود تصاویر ذخیره شده در Google Drive
- بخش هفتم: تشریح یک پروژه کاربردی در زمینه پایش مکانی و زمانی خشکسالی
Mohammad Husain Mohammadi –
سلام و خسته نباشید
ممنون از اینکه درین قسمت خدمات شایان را انجام میدهد
Mohammad Husain Mohammadi –
تاریخ انتشار:۱۲ اردیبهشت ۱۴۰۰
این محصول آموزشی در ارتباط با محاسبه انواع روش های محاسبه شاخص NDVI ماهواره لندست ۸ در Google Earth Engine و کاربرد آن در پایش مکانی و زمانی خشکسالی می باشد. در این آموزش، علاوه بر روش محاسبه نرمال سازی شاخص NDVI با دو روش دیگر آشنا می شوید،زیرا همه معادلات بین باندی لزوماً نرمال سازی نیستند و ما می
سلام به ویدیو یی آموزش فوق نیاز دارم ازنیکه فعلا دسترسی به پست الکترونی ندارم ان را از سایت خریداری نمیتوانم
لطف نموده رهنمائئ نماید که چگونه آن را بدست آورده میتوانم در صورت امکان لطف نموده لنگ دونلود آن را با بنده شریک سازید ممنون
امیرحسین احراری –
با سلام و احترام
می توانید یک پست الکترونیکی جدید بسازید و سپس خرید نمایید. اگر بازهم امکان خرید نداشتید با بخش پشتیبانی سایت در این رابطه مکاتبه بفرمایید.
girs.academy@gmail.com
موفق باشید
مسعود –
با سلام آیا کدی برای طبقه بندی ndvi در گوگل ارث انجین موجود هست که برای هر تصویر این اقدام را انجام دهد؟ برای هر طبقه نیز مساحت ان بدست آید؟
امیرحسین احراری –
با سلام و احترام
در حال حاضر بنده در این زمینه کدی ندارم. با عرض پوزش از خدمت شما.
موفق باشید
نگار –
با سلام
جناب احرار من میخوام سرز زمانی NDVI را در طول 30 سال گذشته به دست بیارم. کد زیر را خدممتتون میفرستم و چندتا سوال داشتم . ممنون میشم راهنمایی بفرمایید:
1- چرا منطقه مورد مطالعه را روی تصویر ماهواره نمیاره؟ با اینکه از دستور Map.centerObject استفاده کردم؟
2- من هم از تصاویر لندست 5 و هم 8 استفاده کردم.برای خروجی گرفتن چطوری باید خروجی بگیرم تا میانگین را در طول 30 سال مشخص کند؟
3- چرا جدول مقادیر ndvi را برای سالهای مختلف نمیاره؟
https://code.earthengine.google.com/d6f837bffb438b535b7bddbc994610a0
امیرحسین احراری –
با سلام و احترام
من شیپ فایل منطقه مورد مطالعه شما رو ندارم. اما من تست کردم دستور مشکلی نداشت.
در لینک زیر من بصورت دستی یک منطقه رو انتخاب کردم و کد ران شد. البته اشتباهاتی در کدتون داشتید. مثلا پلات رو نباید وارد دستور اکسپورت کنید. من ایرادات رو اصلاح و کد درست رو ضمیمه کرذم.
https://code.earthengine.google.com/97cedd3afc17b4e7988e686f98decc6e
موفق باشید
نگار –
با سلام
ممنونم از لطفتون. اما من شیپ فایل را ایمپورت میکنم و سوالم همینه چرا حوضه را نشون نمیده؟
https://code.earthengine.google.com/efc135607f547dec644be19d5b97341b
امیرحسین احراری –
با سلام و احترام
باید از دستور map.addlayer استفاده شود. در لینک زیر من براتون نوشتم
https://code.earthengine.google.com/02fea271b744c80acf6cc44c62f69f55
موفق باشید
نگار –
ممنونم جناب احراری. من اینکار رو انجام دادم اما چرا در جدول خروجی در دوره زمانی که انتخاب کردم بعضی ماهها عدد ndvi نداره و خالی هست؟
امیرحسین احراری –
با سلام و احترام
با استفاده از گزینه getlink در ارث انجین لینک کدتون رو کپی کرده و در اینجا برای من بزارید تا بتونم بررسی کنم.
موفق باشید
نسترن –
سلام
سری زمانی ndvi
نگار –
باسلام
کد را خدمتتون ارسال کردم. اگه جدول خروجی ndvi5 که مربوط به لندست 5 هست را ببینید بعضی ماهها عدد ndvi ندارند.
https://code.earthengine.google.com/ea08ff1cc9ff7ecdcdcdfffb463cfa7e
نگار –
با سلام
جناب احراری کد را خدمتتون ارسال کردم
boali68 –
سلام استاد احراری وقتتون بخیر
سوالی داشتم خدمتتون
بزرگوار من وقتی تصاویر ndvi رو خروجی میگیرم بازه خارج از مثبت یک تا منفی یک نشون داده میشه علت چیست؟
و اینکه من نیاز به 10 سال داده ماهانه ndvi دارم. کدی هست که با استفاده از آن بشه همه 120 تصاویر رو یک جا دانلود کرد؟
امیرحسین احراری –
با سلام و احترام
با فرض بر اینکه معادله را به درستی نوشتید اگر تعداد پیکسل های خارج از رنج انگشت شمار و ناچیز هستند مشکلی ندارد. مهم این است که قالب مقادیر تصویر در دامنه درستی قرار گرفته باشند. با استفاده از تابع temporalCollection می توانید یک تابع برای تولید داده های ماهیانه بنویسید. در کتاب گوگل ارث انجین من یک نمونه کد در این زمینه آموزش دادم.
موفق باشید
boali68 –
ممنون استاد
انجام شد.
تشکر
K.A –
با سلام و تشکر بابت اموزشها، برای دسترسی به سامانه گوگل ارث انجین چه فیلترشکنی را استفاده میکنید؟ مدتی است هیچ کدام از سه فیلترشکنی که استفاده میکردم، کار نمیده
امیرحسین احراری –
با سلام و احترام
برای من فیترشکن هایی چون lantern و freegate معمولا خوب کار میکرد. می توانید از این ها استفاده کنید.
منوفق باشید
امیرحسین احراری –
با سلام و احترام
برای من فیترشکن هایی چون lantern و freegate معمولا خوب کار میکرد. می توانید از این ها استفاده کنید.
موفق باشید
K.A –
با سپاس از پاسخگویی شما، متاسفانه این دو فیلترشکن (ورژن 7.97 freegate) حدود ده روزه که وصل نمیشه. امکان دارد اگر ورژن جدیدی هست برای بنده ایمیل کنید؟
امیرحسین احراری –
راستش بنده ایران نیستم و اطلاعات زیادی در ارتباط با فیلتر شکن ها ندارم. اخیرا از یکی از کاربران شنیده بودم که مرورگر کروم هم فیلتر شکن داره و برای گوگل ارث انجین نیز مناسب است. پیشنهاد میکنم در این زمینه سرچ کنید.
موفق باشید
Faezeh Khalifeh Soltanian –
سلام وقت بخیر استاد،من فایزه سلطانیان هستم . یه سوال از خدمتتون داشتم در مورد به دست اوردن شاخص گیاهی MSR در گوگل ارث انجین، برای محاسبه ی این شاخص باید از جذر استفاده کنیم و من هرگونه فرمول را مینویسم متاسفانه با ارور مواجهه میشم. خیلی عذر میخوام استاد امکان داره فرمول بنده را یه نگاهی بندازید. خیلی خیلی ممنونم.
https://code.earthengine.google.com/436c1ba0865d3ad5d1bde46907996b35
امیرحسین احراری –
با سلام و احترام
من با فرمول کارتون آشنایی ندارم اما الان داخل کد شما عبارت جزر رو با عنوان sqrt داخل کد اضافه کردم کد به درستی ران شد. کد رو متناسب با کارتون بروز کنید. چون من فرمول رو همینطوری نوشتم.
https://code.earthengine.google.com/c2d18deb3fbef4c274b35783ec44255b
موفق باشید
Faezeh Khalifeh Soltanian –
سلام ببخشید پیامای من پاک میشن.
امیرحسین احراری –
با سلام و احترام
خیر پیام ها بعد از تایید ما نمایش داده می شود.
موفق باشید
نسترن –
باسلام
جناب احراری بنده فیلترشکن های کروم هم استفاده کردم یا ارث انجین باز نمیشه، چراا؟
امیرحسین احراری –
با سلام و احترام
جديدا گوگل اقدام به شناسایی فیلتر شکن ها کرده به همین دلیل بهتر است که فیلتر شکن خود را تغییر بدید. تا جایی که اطلاع دارم فیلتر شکن lantern و freegate برای کار با ارث انجین مناسب هست.
موفق باشید
نسترن –
باسلام جناب احراری
برای استفاده از داده های رفلکتنس لندست 8 و 5 از کدام کالکشن در گوگل ارث انجین باید استفاده کرد؟ داده های خام را نمیشه.
ممنون میشم راهنمایی بفرمایید
امیرحسین احراری –
با سلام و احترام
در حال حاضر داده های بازتاب سطحی لندست در ارث انجین با عنوان collection 2 level2 در دسترس است.
https://developers.google.com/earth-engine/datasets/catalog/landsat
موفق باشید
نسترن –
سپاسگزارم. پس داده های LANDSAT/LC08/C01/T1_TOA از چه نوعی هستن؟ رفلکتنس؟
امیرحسین احراری –
با سلام و احترام
داده های بازتاب TOA حاوی بازتاب های سطح زمین و اتمسفر بوده و نیاز به تصحیح اتمسفری دارد.
موفق باشید
نسترن –
با سلام.
جناب احراری برای محاسبه ndvi ، من فایل شیپ که به صورت zip هست را داخل گوگل ارث انجین اد کردم. این فایل شیب به صورت وکتوری است که داخل محدوده پلیگونهای زیادی است که در آرک هر پلی گون از شماره 1 تا 6 شماره گذاری شده. اگه من بخوام مقادیر میاگین ndvi را برای کلیه پلیگون های شماره 1 تا6 به صورت جدا بدهد باید چیکار کنم؟ مثلا کد 1 یک مقدار میانگین برای کد 2 مقادیر میانگین و… بدهد
https://code.earthengine.google.com/41335d8360f63aabe66fe0cb241c0fb9
امیرحسین احراری –
با سلام و احترام
متاسفانه روزهای اخیر من به سیستم دسترسی نداشتم و الان هم به دلیل مشکل فیلترینگ دسترسی به ارث انجین ندارم. اگر هنوز مشکل حل نشده دوشنبه آینده مجددا سوالتون رو مطرح کنید.
موفق باشید
نسترن –
سپاسگزارم. زودتر نمیشه یا اینکه کدشو برام اینجا بنویسید که در قسمت chart واسه هر کلاس چگونه مقادیر ndvi استخراج بشن؟
ممنون میشم
امیرحسین احراری –
به نظرم دستور زیر مناسب هست.
https://developers.google.com/earth-engine/apidocs/ui-chart-image-seriesbyregion
موفق باشید
نسترن –
سلام جناب احراری، کدی که نوشتم در زیر ارسال میکنم. چطوری باید برای یک حوضه با کلاس های مختلف که از شماره 2 نا6 نامگذاری شده، مقادیر ndvi را بدست بیارم:
var landsat5=ee.ImageCollection(“LANDSAT/LT05/C01/T1_TOA”)
.filterBounds(table)
.filterDate(‘1988-03-20′,’2013-02-28’)
.filter(ee.Filter.lessThan(‘CLOUD_COVER’, 20));
print(landsat5);
//Calculating NDVIs from the landsat collection Data prior to image classification
var ndvil5= landsat5.map(function(img){
var indexl5= img.normalizedDifference([‘B4′,’B3’]);
return indexl5.rename (‘NDVIl5’)
.copyProperties(img,[‘system:time_start’,’system:time_end’]);});
///calculating chart of ndvi variations
var plot3= ui.Chart.image.seriesByRegion(ndvil5,table, ee.Reducer.mean(),’NDVIl5′,30,’system:time_start’);
print(plot3);
امیرحسین احراری –
با سلام و احترام
من به شیپ فایل شما دسترسی نداشتم. اما قبلا در یک کلاس برای داده های بارش این کار رو انجام دادیم که در لینک زیر کد کامل آن را می توانید مشاهده کنید.
https://code.earthengine.google.com/18873af5ef53c1c1a6c0ab87ce470c78
موفق باشید
نسترن –
سلام. لطف میکنید چک کنید الان حدوده دو هفته بیشتره منتظرم
امیرحسین احراری –
با سلام و احترام
من به شیپ فایل شما دسترسی نداشتم. اما قبلا در یک کلاس برای داده های بارش این کار رو انجام دادیم که در لینک زیر کد کامل آن را می توانید مشاهده کنید.
https://code.earthengine.google.com/18873af5ef53c1c1a6c0ab87ce470c78
موفق باشید
نسترن –
سلام جناب احراری. کد را اینجا ارسال کردم. ترو خدا کمک کنید
امیرحسین احراری –
با سلام و احترام
همه سوالات رو بررسی میکنم و پاسخ میدم. مشغله های کاری زیاد باعث میشه بعضی مواقع تاخیرهایی در پاسخ گویی ایجاد شود. با عرض پوزش
سایت زیر هم برای پرسیدن سوالات و مشکلات مربوط به ارث انجین خیلی مناسبه. همزمان در این سایت هم مطرح کنید سرعت رسیدن به پاسخ ها بیشتر میشه.
https://gis.stackexchange.com/
موفق باشید
نسترن –
جناب لحراری میشه سوالمو پاسخ بدین. خیلی فرصت ندارم. ممنون
امیرحسین احراری –
با سلام و احترام
روزهای اخیر به سیستم دسترسی نداشتم و الان متاسفانه فیلترشکن ها کار نمیکنه که بتونم به ارث انجین وصل بشم.
موفق باشید
نسترن –
باسلام. بنده یک شیپ فایل لز منطیه که شامل تیپ های مختلف گیاهی است از کلاس ۲ تا ۶ گروه بندی شده و میخوام متوسط ndvi را برای هر کلاس به صورت جداگانه برای هر بازه زملنی استهراج کنم. میشه بفرمایید در فرمولی که در بالا ارسال کردم چطوری باید اصلاح کنم؟ ممنون میشم
نسترن –
جرا کسی پاسخگو نیس؟
امیرحسین احراری –
با سلام و احترام
بنده چند روزی به سیستم دسترسی نداشتم و پاسخ گویی سوالات با مشکل مواجه شده است. ضمن عرض پوزش بدلیل مشکل ایجاد شده در حال بررسی و پاسخ دادن سوالات طی 24 ساعت آینده هستیم.
موفق باشید
نسترن –
باسلام
آقای احراری یک هفته است سوالی پرسیدم اما پاسخی داده نشد. من یک شیپ فایل که حاوی ۶ تیپ گیاهی هست به ارث انجین ایمپورت کردم که با کدهای ۱ تا ۶ نامگذاری شده. میخوام متوسط ndvi را برای هر تیپ به صورت جداکانه به دست بیارم . کد را خدمتتون میفزستم چرا ndvi را برای کل حوضه میدا؟ من برای هر تیپ به صورت جدا میخوام. لطفا راهنمایی کنید
نسترن –
https://code.earthengine.google.com/d6f837bffb438b535b7bddbc994610a0
کد به اینصورته
امیرحسین احراری –
با سلام و احترام
متاسفانه بدلیل مشکل اینترنت الان دسترسی به ارث انجین ندارم. اگر مشکل هنوز حل نشده دوشنبه آینده سوال به همراه کد را داخل سایت بزارید تا بررسی کنم.
موفق باشید
نسترن –
باسلام
جناب احراری کدی که فرستادین انجام دادم اما همش ارور میده، چطوری برای کلاس 2 تا 6 میانگین ndvi را استخراج کنم؟ کد را خدمتتون ارسال میکنم. نمیدونم چرا شیپ فایل برای شما نشان داده نمیشه. دوباره کد را ارسال میکنم امیدوارم شیپ فایل ارسال شده باشه، خواهشا کمک کنید.
https://code.earthengine.google.com/ac7ccb7c5b16e02badfd4f1d99e39834
امیرحسین احراری –
یه زحمتی بکشید روی شیپ فایلتون کلیک کرده و سپس تیک گزینه share رو بزنید تا من بتونم داخل کد چک کنم.
موفق باشید
نسترن –
باسلام
تیک share را زدم الان ببینید سیپ فایل را میتونید مشاهده کنید
https://code.earthengine.google.com/0d45a3ebdfda262c85d35ac7c1626652
ممنون
امیرحسین احراری –
بله الان دسترسی دارم. الان داره خطای ۵۰۰۰ متغير رو میده. درسته که ۱۵۵ تصویر فراخوانی شده اما برای این محاسبه بیش از ۵۰۰۰ پیکسل داره وارد محاسبه میشه. من الان بازه زمانی رو به ۲ سال کاهش دادم مشکل حل شد. لینک کد اصلاح شده ضمیمه شده است.
https://code.earthengine.google.com/c4d21156f6dcbaab29bce526845bae60
نسترن –
ممنونم لطف کردین. بله خودمم دیشب به دو یا سه سال کاهش دادم انجام میشد. ولی خب اینطوری خیلی سخت میشد که سال به سال دانلود کنم خواستم ببینم راه حلی داره یا نه
سپاسگزارم
امیرحسین احراری –
برای داده های لندست که توان تفکیک مکانی بالایی دارند تعداد پیکسل ها بیشتر هست و این مشکل رو ایجاد میکنه. شاید راهکار دیگری باشد اما بنده فعلا اطلاع ندارم. در سایت stackchange که براتون ارسال کردم هم میشه سوال رو مطرح کنید. معمولا اونجا راهکارهای خوبی ارائه میدن.
موفق باشید
نسترن –
سلام وقت بخیر. آقای احراری چرا خروجی csv که میده، دقیقا برای یه تاریخ مثلا ۶ ژانویه برای دو کلاس مقدار ndvi را میده ولی دو کلاس دیگه مقداری ندارن؟ خب اگه منطقه داخل یه شیت بیفته که نباید اینطوری باشه مثلا واسه دو تا تیپ یا کلاس مقدار رو بده و بقزه را نه، چون کلاس یا تیپ های گیاهی نزدیک بهم هستن
چنین چیزی منطقیه؟ علتش چیه؟
ممنون
امیرحسین احراری –
با سلام و احترام
ببخشید تعداد آموزش ها بسیار زیاد هست و من حضور ذهن ندارم که دقیقا چه چیزی در محصول گفتم. بی زحمت کمی واضح تر توضیح بدید تا بتونم راهنمایی کنم.
موفق باشید
نسترن –
آقای دکتر تو این کد که فرمودید چون تعداد پیکسل ها زیاده ارور 5000 میده و به فیلتر زمان را به دوسال کاهش دادیم، الان در خروجی فایل csv که من 5 کلاس گیاهی دارم. چرا برای یک تاریخ مشخص مثلا 6 ژانویه برای کلاس 1 و 2 مقادیر ndvi را داده اما برای دوکلاس دیگه نمیده؟ آخه کل منطقه تو یک شیت میفته دلیل اینکه ndvi را برای بعضی کلاسا نمیده چی هست؟
https://code.earthengine.google.com/c4d21156f6dcbaab29bce526845bae60
امیرحسین احراری –
با سلام و احترام
این کدی که ارسال کردید رو من باز کردم مشکلی نداشت. لینک اون تاریجی که میفرمایید مشکل داره رو برای من ارسال کنید.
موفق باشید
احمدنجفی –
سلام خدمت شما
البته سوالتون رو در زیر آموزشی مطرح کردید که مدرسش ایشون نیستند. در زیر یکی از محصولاتی بنویسید که مربوط به آقای احراری باشه
نسترن –
ایشون که بقیه سوالارو جواب دادن. یا حداقل مدرس این آموزش جواب میدادن
امیرحسین احراری –
با سلام و احترام
بنده چند روزی نرسیدم سوالات رو پاسخ بدم. امروز و فردا همه سوالات بررسی و پاسخ داده خواهد شد.
موفق باشید
امیرحسین احراری –
با سلام و احترام
بنده چند روزی هست نرسیدم سوالات رو بررسی کنم. الان متاسفانه فیلترشکن برای باز کردن کدها کار نمیکنه. به محض برظرف شدن مشکل کدتون رو بررسی میکنم.
موفق باشید
ویدا –
باسلام
من یک حوضه دارم که داخل آن حوضه 900 تا پلیگون که با لیبل 1 تا 5 نامگذاری شده، مثلا 400 تا کد 2 و 100 تا کد 3 و…. دارم. چرا وقتی فایل را داخل ارث انجین اد میکنم و در قسمت feature فقط 10 تا عدد نشان میده، و در قسمت chart که میخوام مقادیر ndvi برای هر کد را استخراج کنه ارور میده. دلیلش چی هست؟
امیرحسین احراری –
با سلام و احترام
معمولا داده رو وقتی داخل ارث انجین فراخوانی میکنید نباید تغییری داشته باشه. برای من تا کنون چنین مشکلی ایجاد نشده. پیشنهاد میکنم یک داده دیگر را نیز تست کنید. شاید مشکل از داده شماست.
موفق باشید
ویدا –
سلام. چرا دو روزه نمیشه وارد گدنویسی ارث انجین شد؟ و ارور ۴۰۳ میده؟ کسی چنین مشکلی داشته؟
سوال بعدی اینکه ایا مقادیر پیکسل داده هدی رفلکتنس با TOA L1 فرق دارن؟
امیرحسین احراری –
با سلام و احترام
احتمالا مشکل از فیلترشکن و سرعت اینترنت شما هست. در ساعت های با ترافیک کمتر تست کنید.
در ارتباط با سوال دوم منظورتون رو در ارتباط با داده هدی رفلکتنس متوجه نمیشم.
موفق باشید
ویدا –
سلام
عذر میخوام اشتباه تایپی بود. منظورم داده های رفلکتنس هست. که آیا مقادیر ndi در داده های لندست از نوع رفلکتنس با TOA L1 فرق دارن؟
امیرحسین احراری –
با سلام و احترام
ببخشید منظورتون از ndi چی هست؟
موفق باشید
ویدا –
منظور ndvi هست،
احمد –
با سلام
محاسبه شاخص NDVI در گوگل ارث انجین با تصاوير سنتينل 2 نيز امكان پذير هست؟
در اين مورد، آيا نياز به آموزش جداگانه اي هست؟
امیرحسین احراری –
با سلام و احترام
بله امکان پذیر هست. اگر با روش کدنویسی در ارث انجین آشنایی داشته باشید نیاز به آموزش جداگانه ای نخواهید داشت.
موفق باشید