پایش سطح آب سدها از طریق تصاویر ماهواره
در شکل بالا سطح آب جاری سد استرکفونتین (98.3٪)، سد براندولی (59.9٪) و هاکسکین پان (0٪) در آفریقای جنوبی با استفاده از تصاویر Sentinel-2 تهیه شده توسط ESA تعیین شد. همه ما از طریق مستندهای تلویزیونی، اخبار در رسانه های رسمی یا بسترهای رسانه های اجتماعی بیشتر و بیشتر در آگاهی از تصاویر ماهواره ای قرار می گیریم. دلیل اصلی همه اینها، سیاست داده های باز است که ابتدا توسط ناسا و بعد از آن توسط برنامه کوپرنیک اتحادیه اروپا اتخاذ شده است، که تصاویر ماهواره ای را تقریباً برای همه قابل دسترسی کرده است. قادر بودن به دیدن سیاره ما از راه دور، دیدگاه های ما در مورد کره زمین و چگونگی تغییر آن را تغییر می دهد. ما می توانیم تغییرات فصلی، ویرانی های ناشی از بلایای طبیعی یا پیامدهای تغییرات آب و هوایی را مشاهده کنیم.
در طول روز جهانی آب در 22 مارس، همه ما از اهمیت آب در زندگی خود یادآوری شدیم - آب نه تنها برای رفع تشنگی یا محافظت از سلامتی بلکه برای ایجاد شغل و حمایت از اقتصاد، اجتماع و... نیز ضروری است. با وجود توسعه انسانی، امروز بیش از 600 میلیون نفر بدون تامین آب سالم زندگی می کنند. آسیب های زیست محیطی، همراه با تغییرات آب و هوایی، بحران های مربوط به آب را که در سراسر جهان شاهد آن هستیم، به دنبال دارد. کیپ تاون، شهری با جمعیت تقریبا 4 میلیون نفر، ممکن است تبدیل به اولین شهر بزرگی شود که در نتیجه خشکسالی چند ساله از آب خارج شده است. آب در شهر به طور عمده از سدهایی در مناطق کوهستانی نزدیک شهر تأمین می شود. تجسم در زیر میزان آب سدها در نزدیکی کیپ تاون را از اواخر سال 2015 نشان می دهد که مخازن تقریباً پر و از چند هفته به زمان بازگشت سد Theewaterskloof تقریباً خالی بود.
تجسم شاخص تفاوت آب طبیعی (NDWI) در تصاویر Sentinel-2 از سدهای مهم در نزدیکی کیپ تاون، آفریقای جنوبی، در دو تاریخ مختلف گرفته شده است. NDWI توسط متخصصان رصد زمین برای تقویت آب در تصاویر ماهواره ای استفاده می شود (در تصاویر فوق به رنگ آبی نشان داده شده است). گاهی اوقات سایه های توپوگرافی، مانند منطقه فوق بین سدهای Wmmershoek و Brandvlei، به اشتباه در تصاویر NDWI به نظر می رسد. پیوند به تصویر رنگی واقعی این منطقه.
چنین تجسمات ساده اما در عین حال قوی تأثیر عمیقی بر روی هر یک از ما دارد. آنها به عنوان یک کمک بینایی در انتقال پیام یا شدت بروز یک مشکل به روشی متفاوت عمل می کنند. با این حال، اگر بیشتر به دنبال محور بودن داده ها هستید، مانند من ارزیابی های کمی را بیش از کیفیت ترجیح می دهید، پس نمی توانید کمک کنید اما حس تعجب دارید:
آیا سطح آب موجود در مخازن قابل کنترل از فضا است؟
جواب سؤال فوق البته است: بله آنها می توانند. برخی سالها این کار را انجام می دادند. بنابراین سوال واقعی این است:
چگونه می توان سطح آب در مخازن را از فضا کنترل کرد؟
هنگامی که ما پاسخ سوال فوق را می دانیم، سوال بعدی به طور طبیعی دنبال می شود:
آیا با استفاده از منابع بسیار محدود می توان سطح آب همه مخازن روی زمین را کنترل کرد؟
دو سؤال آخر باعث شد که من یک پروژه جانبی را شروع کنم که سطح آب از فضا را پایش کند. به عنوان یک تازه کار در زمینه های مشاهده زمین و سنجش از دور، هنوز چیزهای زیادی برای یادگیری دارم و انجام چنین پروژه ای باعث می شود روند یادگیری لذت بخش شود. هر پروژه جانبی با چند محدودیت همراه است:
- مقدار محدودی از زمان: با هدف نتایج خوب به دست آمده به سرعت. رسیدن به نتایج عالی ممکن است مدت زمان پروژه را طولانی کند و خطر عدم اتمام آن را افزایش می دهد.
- منابع محدود: راه حل باید روی لپ تاپ من اجرا شود و هزینه های ناچیز را تحمیل کند. نمی توانم تصور کنم که اگر نتوانم به صورت تعاملی به مشکل نزدیک شوم، یک منحنی یادگیری شیب دار دارم.
بقیه داستان شما را از طریق راه حل من راهنمایی می کند که محدودیت های زمانی را نیز برآورده می کند. این مبتنی بر اکوسیستم کد برنامه نویسی پایتون برای انجام علم داده است. کد موجود در مخزن GitHub موجود است.
نظارت بر سطح آب از فضا - از ایده گرفته تا نمونه اولیه
هدف از پروژه مانیتورینگ سطح آب، تخمین سطح آب سدها، دریاچه ها یا هر نوع مخزن بزرگ آب طبیعی ساخته شده یا طبیعی با استفاده از تصاویر ماهواره ای باز و آزاد است. در مرحله نمونه اولیه، ما فقط به تصویربرداری از ماهواره های Sentinel-2 که توسط ESA اداره می شود، محدود خواهیم شد. قبل از اینکه حتی به یک مانیتور سطح آب فکر کنیم که در سطح جهان به وجود بیاید، باید دریابیم که چگونه سطح آب یک مخزن واحد را تعیین کنیم. اگرچه ممکن است در مخازن خاص تخمین مقدار آب موجود در آنها امکان پذیر باشد، اما به طور کلی چنین نیست. بنابراین سطح آب را با اندازه گیری سطح آب فعلی مخزن تخمین می زنیم و در صورت پر شدن آن را با سطح آب مقایسه خواهیم کرد:
سطح آب = (سطح فعلی سطح آب) / (سطح سطح آب در هنگام کامل).
ما از سد Theewaterskloof برای نمونه سازی استفاده خواهیم کرد. همانطور که از زمان افت فراتر از سطح آب در این سد مشاهده می شود طی دو سال گذشته تقریباً به صورت خالی تغییر یافته است.
گذشت زمان سد Theewaterskloof در آفریقای جنوبی از بین 40 تصویر Sentinel-2 به دست آمده بین ژوئیه 2015 و ژانویه 2018 ایجاد شده است.
مرحله 1: از تصویر ماهواره ای تا سطح مخزن سطح زمین
سطح های آب را می توان در تصاویر ماهواره ای به روش های مختلفی شناسایی کرد. از روش های بسیار دقیق و پیچیده ای که با استفاده از پیشرفت های اخیر در بینایی رایانه، مانند شبکه عصبی حلقوی عمیق، گرفته تا روشهای بسیار ساده ای که مدتها پیش توسط متخصصین دامنه ابداع شده اند - آستانه زدن به یک تصویر مقیاس خاکستری نرمال تفاوت آب شاخص (NDWI) است. در حین نمونه سازی ما قطعاً دومی را انتخاب می کنیم. ماهواره های نوری مانند Sentinel-2 یا Landsat 8 از سنسورهایی برای تشخیص نور منعکس شده از سطح زمین نه تنها در باندهای مرئی (قرمز، سبز و آبی) بلکه در سایر قسمت های طیف EM: در نزدیکی مادون قرمز (NIR)، مادون قرمز موج کوتاه (SWIR) و دیگر موارد استفاده می کنند. آب در قسمت مادون قرمز طیف منعکس کننده نور بسیار کم یا بدون نور است که بر خلاف پوشش گیاهی یا خاک است. NDWI، تعریف شده به صورت (GREEN-NIR) / (GREEN + NIR)، بنابراین دارای مقادیر بالاتری برای سطوح آب و برای سایرین کمتر خواهد بود. شکل زیر تصویر NDWI از سد Theewaterskloof در بالا و در پایین ماسک آب باینری حاصل به دست آمده با روش Otsu را نشان می دهد.
(اول) تصویر NDWI سد Theewaterskloof از 25 فوریه 2018. (وسط) هیستوگرام مقادیر NDWI تصویر سمت اول. خط شکسته عمودی مقدار آستانه تعیین شده با روش Otsu را نشان می دهد. پیکسل هایی با ارزش NDWI بالاتر از این آستانه به عنوان آب و بقیه به عنوان آب شناخته نمی شوند. (پایین) ماسک آب باینری پس از آستانه گرفتن از تصویر اول. تمام پیکسل های غیر سیاه به عنوان آب مشخص می شوند.
از ماسک آب باینری می توان سطح فعلی آب سد Theewaterskloof را که برای ارزیابی سطح آب نیاز داریم استخراج کرد. تنها مشکل این است که ما نمی توانیم به سادگی نواحی سطحی از تمام ساختار آبی که در ماسک آب باینری دیده می شوند را جمع کنیم. اجسام آب کوچکتر که در قسمت پایین سمت چپ تصویر دیده می شود بخشی از سد نیستند. آنها نماینده حوضچه های کوچکتر برای آبیاری مزارع همجوار هستند و باید از محاسبه ما خارج شوند. این کار بسیار ساده ای خواهد بود، تنها درصورتی می توانیم که بدانیم پیکسل ها در مرزهای سد قرار دارند (میزان آب سد در هنگام پر شدن). خب، ما می توانیم این کار را با دست انجام دهیم - بر اساس تصویر رنگی واقعی، چند ضلعی را در اطراف سد بکشیم. اما اگر این مسیر را طی کنیم، می توانیم از یک مانیتور جهانی آب خداحافظی کنیم. باید راه دیگری وجود داشته باشد. و وجود دارد! به جای اتکا به نقشه برداری از مرزهای سدها توسط خودمان، نتیجه بیش از یک میلیون مشارکت کننده را که نقشه برداری از ساختار، جنگل ها، جاده ها، خیابان ها، کافه ها، و بسیاری موارد دیگر را نقشه برداری می کنند، انجام می شود که به پرکاربردترین نقشه جهان - OpenStreetMap منتهی می شود. OpenStreetMap فراهم می کند Overpass API که به ما اجازه می دهد داده های OSM را بر اساس نام، مکان، نوع و سایر ویژگی ها پرس و جو کنیم. پس از مشخص شدن حدود، سرانجام می توانیم همه چیز را با هم در یک تصویر واحد ترکیب کنیم:
تصویر رنگی واقعی سد Theewaterskloof از 25 فوریه 2018، گرفته شده توسط ماهواره Sentinel-2. خط قرمز مرز سد را نشان می دهد (میزان آب در هنگام پر شدن سد) همانطور که در OpenStreetMap آورده شده است. مناطقی که از خطوط آبی رنگ شده اند پر از آب هستند.
از اینجا تا سطح آب سد Theewaterskloof در 25 فوریه 2018، فقط یک خط کد وجود دارد: (سطح منطقه آبی در داخل قرمز) / (سطح منطقه قرمز) که 23.5٪ بازده دارد.
مرحله 2: سطح تاریخی آب
توانایی برآورد سطح آب یک مخزن از یک تصویر NDWI تنها بدان معنی است که می توانیم به راحتی الگوریتم خود را بر روی تمام تصاویر گذشته موجود در بایگانی اجرا کنیم. ماهواره های ESA Sentinel-2 بین 10 آگوست 2015 و 22 مارس 2018 104 بار از سد Theewaterskloof عکس گرفته اند. میزان تخمین سطح آب در این دوره در زیر نشان داده شده است.
سطح تخمین زده شده از سطح آب سد تئاترکلوف را با استفاده از تمام تمایلات موجود در Sentinel-2. دو نمونه از آنها، یک حالت ابر و یک بی ابری، برای نشان دادن تأثیر ابرها بر مقدار سطح آب استخراج شده نمایش داده می شوند.
در ابتدای پروژه، نوار خود را به خوبی و مناسب کامل تنظیم نکردیم. اما در تمام مراحل، با این وجود ممکن است سعی کنیم آن را بچرخانیم، نتایج فوق هیچکدام کافی نیست - به بیان ساده. تصاویر رنگی درج شده، که فقط چند روز از هم فاصله دارند، نشان می دهد که وجود ابرها در تصویر منجر به دست کم گرفتن سطح آب می شود. این قابل درک است زیرا مقدار NDWI ابرها کوچک هستند و ردیاب آب ساده ما آنها را همانطور که باید شناسایی می کند - همانطور که آب نیست. واضح است که ما باید مواردی را که ابرها نمای مخزن را گم می کنند، از آن جمع کنیم. خوشبختانه ابزاری وجود دارد که به دنبال وجود ابرها در تصاویر Sentinel-2 است و ما به راحتی می توانیم آن را در گردش کار خود گنجانیم. سرانجام، همانطور که در شکل زیر مشاهده می شود، ما تحول بسیار واقعی تری از سطح آب سد Theewaterskloof می گیریم.
سطح آب سد Theewaterskloof تخمین زده می شود که فقط با استفاده از به دست آوردن تصاویر Sentinel-2 ابری به رنگ آبی و همه آنها به رنگ قرمز تخمین زده می شود. خطوط خاکستری متراکم عمودی نشانگر مشاهداتی است که توسط ردیاب ابر پوشانده شده است. به وضوح دیده می شود که ردیاب ابر با موفقیت تمام تصاویر ابری را که پوشش می دهد سطح آب را تخمین زده است.
امکان مشاهده تکامل سطح آب سد در طی زمان به جای جستجوی یک شماره واحد - سطح فعلی آب - می تواند به ما در درک بهتر وضعیت فعلی کمک کند. سدهای نزدیک کیپ تاون به بارندگی در ماه های زمستان از ماه مه تا آگوست بارگیری می شوند و سطح سدها در ماه های خشک تابستان از دسامبر تا فوریه کاهش می یابد که در طی آن میزان مصرف آب شهری و کشاورزی افزایش می یابد. از نقشه بالا می توانیم ببینیم که چطور سد Theewaterskloof تقریبا در پایان فصل مرطوب در اوت 2015 تقریباً پر بود، سپس سطح آب آن در طول فصل خشک کاهش یافت، دوباره در طول فصل مرطوب 2016 افزایش یافت، اما کافی نیست. این حتی برای سال آینده - 2017 واقعی تر است. این مطالعه بارندگی سالانه همچنین نشان می دهد که دو تا چهار سال گذشته خشک ترین سال ها از اواسط دهه 1920 در استان کیپ غربی است. جدیدترین اخبار کیپ تاون گزارش می دهد که ممکن است روز صفر به دلیل اقدامات صرفه جویی در مصرف آب و افزایش تأمین آب به تعویق بیفتد. امیدوارم امسال حداقل مقادیر عادی بارندگی در فصل مرطوب را آغاز کند تا بحران آب در سال آینده تکرار نشود.
مرحله 3: جهانی شدن
خب، قبل از اینکه مانیتور سطح آب را در سطح جهان اجرا کنید، باید منطقی باشد که آن را در مقیاس متوسط تست کنید. در مورد تمام بساخت های آب در آفریقای جنوبی چطور؟ به نظر منطقی است. ما الگوریتم موجود داریم که سطح آب یک مخزن واحد را استخراج می کند. اکنون ما باید لیستی از تمام مخازن آب آفریقای جنوبی ایجاد کنیم، جعبه محدوده ای را که هر کس را احاطه کرده است، تعیین کنیم و از OSM پرس و جو کنید تا در صورت پر شدن از آب، مخزن را به دست آورد. من در مورد شما نمی دانم، اما من انگیزه را از دست داده ام:
لیستی از تمام مخازن آب ایجاد کنید.
باز هم، اگر ما یک سرویس جهانی را هدف قرار دهیم، نمی توانیم به ورودی دستی اعتماد کنیم. تمام اطلاعات باید به روش خودکار از منابع موجود استخراج شود. مانند گذشته، OSM به نجات ما می آید. اما این بار نه در قالب API Overpass که قبلاً از آن استفاده کرده ایم. احتمالاً این مشکل من است، اما استخراج چند ضلعی از ساختار مختلف در منطقه خاص، به استثنای رودخانه ها و غیره، با استفاده از Overpass API دشوار است. خوشبختانه، شرکتهایی مانند Geofabrik وجود دارند که گزیده ای از داده های OSM را تهیه می کنند. برای ما مهمترین گزیده ای است که همه مناطق آب را در خود دارد (به شکل چند ضلعی در یک به اصطلاح shapefile که به راحتی با بسته ژئوپاندا پایتون قابل دستکاری است). بعد از تمیز کردن اضافی (از بین بردن چند ضلعی بخش هایی از رودخانه ها، آبهای خیلی کوچک، و...) ما به 349 ساختار آب می رسیم - دریاچه ها، سدها، مخازن، .... - در آفریقای جنوبی. اکنون می توانیم ردیاب آب خود را بر روی تمام مخازن موجود در لیست خود اجرا کنیم و نتایج را جمع آوری کنیم. و در ضمن، در حالی که منتظر نتایج هستیم، فقط باید چگونگی تجسم نتایج را بفهمیم. بعد از چندین گزینه مختلف، Mapbox GL را در ساده ترین حالت استفاده قرار دادم. بدون آزار و اذیت بیشتر در اینجا میزان آب جاری (از ابتدای ماه مارس) در تمام ساختار آب در آفریقای جنوبی وجود دارد.
سطح آب کلیه آبهای اصلی آفریقای جنوبی از ابتدای ماه مارس با استفاده از داده های باز ارائه شده توسط ماهواره های EU / Copernicus Sentinel-2 تخمین زده شده است. اندازه هر نقطه نشانگر بدنه آب با سطح آبی نامی آن مربوط است و رنگ سطح آب آن را نشان می دهد - از خالی (قرمز تیره) و پر (آبی تیره).
خلاصه
قبل از نتیجه گیری باید پشته فناوری و منابع داده ای که این پروژه را ممکن ساختند ذکر کنم:
من از پایتون 3.6 با همه علوم معمول داده و بسته های مربوط به بینایی رایانه استفاده می کنم (NumPy، SciPy، scikit-image، matplotlib، geopandas و شکل دهنده در این پروژه خاص).
تمام توسعه و آزمایش در آزمایشگاه Jupyter انجام می شود.
کلیه تصاویر Sentinel-2 با استفاده از Sentinel Hub (بسته پایتون) بازیابی می شود. امکان بارگیری و پردازش داده ها فقط برای منطقه مورد علاقه باعث می شود اجرای این پروژه بر روی لپ تاپ امکان پذیر باشد.
با استفاده از ردیاب ابر Sentinel Hub (بسته پایتون)، تشخیص و پوشاندن ابر در منطقه مورد علاقه شما انجام می شود. این قسمت در واقع فشرده ترین پردازنده است و همچنین به بارگیری قابل توجهی از داده ها نیاز دارد (از نظر این پروژه قابل توجه است). اگر این ماسک ها از قبل محاسبه می شدند... خب، می توانید مانیتور جهانی آب را بر روی تلفن همراه خود اجرا کنید.
شناسایی مناطق مورد علاقه و میزان آب مخازن کامل به OpenStreetMap بستگی دارد.
موارد فوق تقریباً با زحمت و با استفاده از توضیحات Geofabrik از داده های OSM انجام می شود.
آخر، یک تصویر ارزش هزار کلمه دارد. همین مورد را می توان برای تجسم Mapbox (با استفاده از نسخه mabpoxgl-jupyter) گفت.
حالا نوبت شماست
این پست در اینجا به شما نشان می دهد که همه راه حل ها یا برنامه هایی که از تصاویر ماهواره ای استفاده می کنند، به منابع رایانه ای عظیمی نیاز ندارند. موارد بسیار زیادی در موارد استفاده وجود دارد که با استفاده از منابعی مشابه با لپ تاپ شما، می توان از نمونه سازی یا حتی در تولید استفاده کرد. البته آشنایی با مناسب ترین ابزار و خدمات کمک می کند. امیدوارم این پست شما را در مسیر صحیح قرار داده و شما را برای شروع آزمایش به تصاویر ماهواره ای انگیزه دهد. به خصوص، اگر قبلاً با اکوسیستم Python برای انجام تجزیه و تحلیل داده ها و یا بینایی رایانه، الگوریتم های یادگیری ماشین یا هر آنچه اطلاعات ارزشمند را از تصاویر استخراج می کنید، آشنا نیستید.
شناسه تلگرام مدیر سایت: SubBasin@
نشانی ایمیل: behzadsarhadi@gmail.com
(سوالات تخصصی را در گروه تلگرام ارسال کنید)
_______________________________________________________
پروژه تخصصی در لینکدین
نظرات (۰)