کدنویسی در سنجش از دور – با استفاده از زبان برنامه نویسی IDL در نرم افزار ENVI

795 بازدید

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

در زمانی که بصورت حرفه ای قصد یادگیری سنجش از دور رو داشتم، تصمیم گرفتم تا یک نرم افزار و یک زبان برنامه نویسی حرفه ای و کاملا تخصصی در سنجش از دور را بصورت کامل یاد بگیرم. بررسی ها و تجزیه و تحلیل های زیادی کردم تا در نهایت به نرم افزار ENVI و زبان برنامه نویسی IDL رسیدم. البته…

در زمانی که بصورت حرفه ای قصد یادگیری سنجش از دور رو داشتم، تصمیم گرفتم تا یک نرم افزار و یک زبان برنامه نویسی حرفه ای و کاملا تخصصی در سنجش از دور را بصورت کامل یاد بگیرم. بررسی ها و تجزیه و تحلیل های زیادی کردم تا در نهایت به نرم افزار ENVI و زبان برنامه نویسی IDL رسیدم. البته در همین سایت و در بخش دانلود نرم افزار ENVI در ارتباط با قابلیت ها و ویژگی های این نرم افزار علمی بصورت کامل صحبت کردیم و یک فایل doc نیز در صفحه دانلود ضمیمه شده است. اما طی این چند سالی که در سنجش از دور فعالیت کردم کمتر دیدم که متخصصین در میان زبان های برنامه نویسی سنجش از دور به IDL متمایل باشند. بر خلاف زبان IDL، بیشتر زبان هایی چون MATLAB و به تازگی PYTHON در سنجش از دور استفاده می شود.


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

نرم افزار ENVI قدرتمندترین نرم افزار پردازش تصاویر ماهواره ای در زمینه تحلیل های طیفی است. زبان برنامه نویسی پایه این نرم افزار زبان IDL است. زبان IDL  یا (Interface Data Language) در کنار زبان MATLAB جزو قدرتمندترین زبان های پردازش داده های ماتریس مبنا هستند. حتی بررسی های تیم های متخصص و تجربه نشان داده است که از لحاظ سرعت و قدرت زبان IDL در مقایسه با زبان MATLAB درسطح بسیار بالاتری است. درصورتی که از کاربران ENVI هستید، بهترین گزینه پیش روی شما برای برنامه نویسی، IDL است چون پردازش ها، ورودی و خروجی ها و نتایج حاصل از اجرای الگوریتم ها در آن از همبستگی بسیار بالایی با نرم افزار ENVI برخوردار است.


مزیت IDL در خواندن تصاویر ماهواره ای چیست؟

امروزه تنوع داده های ماهواره ای در سنجش از دور از حیث ماهیت و ساختار بسیار زیاد شده است. برخی از داده ها با ساختار فرمت tiff و MTL_file ارائه میشوند و برخی دیگر به فرمت HDF و … .تقریبا هیچ زبان برنامه نویسی نیست (حتی PYTHON و MATLAB) که بتواند بدون هیچ دردسری برای کاربر انواع این فرمت ها به همراه اطلاعات ضمیمه شده در آن ها را بخواند. اما این در حالی است که با استفاده از زبان IDL میتوان انواع داده های ماهواره ای با هر فرمتی را فراخوانی و مورد آنالیز قرار داد و این یک مزیت بزرگ است. علاوه بر خواندن فرمت، زبان IDL قابلیت خواندن اطلاعات ضمیمه شده در MTL_File را نیز دارد. همانطور که میدانید MTL_File ها حاوی اطلاعات مبنا برای تصحیحات هندسی و رادیومتریکی تصاویر ماهواره ای هستند و بدون آنها پردازش داده های ماهواره ای امکان پذیر نخواهد بود.

مزیت دیگر IDL در فراخوانی داده های ماهواره ای آن است که ضمن پشتیبانی از تمامی فرمت ها به راحتی امکان حفظ سیستم مختصات داده ها را فراهم می کند. البته نرم افزار MATLAB نیز با استفاده از دستور Geotiffread و Geotiffwrite این امکان را فراهم آورده است اما این دستورات تنها برای داده هایی با فرمت tiff صادق است و برای سایر فرمت ها قابل استفاده نیست.

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



مزیت IDL در پردازش ها چیست؟

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

یکی دیگر از نقاط قوت مهم زبان برنامه نویسی IDL در حقیقت همین هست. بسیاری از دستوراتی که در نرم افزار ENVI برای پردازش تصاویر ماهواره ای فراهم آورده شده، در این زبان نیز قابل استفاده است. حتی شما میتوانید از امکانات و قابلیت هایی که در band math برای فرمول نویسی در ENVI فراهم آورده شده است نیز استفاده کنید. زبان IDL با ایجاد کردن قابلیت پردازش های بهم پیوسته امکان انجام پروژه های سنجش از دوری با سرعت بالاتر و هزینه زمانی بسیار کمتر در مقایسه با سایر زبان های برنامه نویسی ایجاد نموده است.


اخیرا طراحان زبان برنامه نویسی IDL قابلیتی با عنوان IDL/ENVI API را ارائه کردند که در آن ساختار جدیدی از کدنویسی در سنجش از دور ارائه شده است به گونه ای که هر فردی بتواند به راحتی نسبت به پردازش تصاویر ماهواره ای بصورت سلسله مراتبی و پیوسته اقدام نماید. این ساختار مخصوص دو دسته از افراد است:

  1. افرادی که با برنامه نویسی آشنایی ندارند
  2. افرادی که فرصت یادگیری برنامه نویسی را ندارند.

قابلیت IDL در ارائه پردازش ها به حدی است که شما میتوانید به راحتی نرم افزار ENVI را ویرایش کنید و دستوراتی متناسب با نیاز پروژه خود را طراحی نموده و آن را به نرم افزار ENVI اضافه کنید. اخیرا در سایت GIRS تیم متخصصین سنجش از دور ما یک افزونه کاربردی برای پیش پردازش داده های سنتینل را طراحی کردند که میتواند به راحتی نسبت به انجام پیش پردازش های مورد نیاز بریا داده های لندست ۸ اقدام کند.

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

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


زمینه های کاربردی زبان IDL

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

  • پردازش تصاویر ماهواره ای
  • پردازش تصاویر میکروسکپی
  • پردازش تصاویر ستاره شناسی تهیه شده توسط تلسکوپ ها

کتب و مراجع بادگیری

کتب و مراجع محدودی در ارتباط با زبان IDL وجود دارد، اما با این حال تجربه ما در یادگیری این زبان برنامه نویسی نشان داده است که مراجع زیر به عنوان بهترین گزینه های یادگیری هستند.

Image result for idl in remote sensing


نتیجه گیری

چرا باید از IDL استفاده کنیم؟

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

چگونه میتوان به این زبان برنامه نویسی دسترسی داشت؟

زمانی که نرم افزار ENVI را بر روی سیستم خود نصب کنید، بلافاصله کنسول زبان IDL نیز بر روی سیستم شما نصب خواهد شد بطوریکه با تایپ کردن عبارت idl در منوی start محیط ویندوز به آن دسترسی خواهید داشت.


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

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

  • سلام وقتتون بخیر براتون مقدور هست ک تایم کلاس برنامه نویسی idl رو سه شنبه ها ۱۲ تا ۴ بزارین ؟

    پاسخ
    • با عرض سلام
      ساعت کلاس برنامه ریزی شده. اگر میتونید حتما برنامه ریزی کنید و شرکن کنید. حدود ۵ جلسه یا در واقع یکماه طول میکشه و کلاسش کاملا کاربردی و پروژه محور برگزار میشه.

      پاسخ
  • سلام وقتتون بخیر. ممنون از اطلاعات خیلی خوبتون. فیلم اموزش ویدوی این نرم افزار را در سایت نمیذارید؟

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

      پاسخ
  • سلام
    وقتتون بخیر

    ببخشید امکانش هست یک فایل یا کتاب آموزشی قابل دانلود برای آموزش ایجاد extension ها در IDL معرفی کنید
    ممنون میشم

    پاسخ
  • ممنون که پاسخ دادید
    ببخشید یک سوال دیگه هم داشتم
    فیوژن کردن باند پانکروماتیک با باندهای محدوده مرئی تصاویر لندست ۸
    تاثیری در استخراج خطوط ساحلی دارد؟
    با توجه به اینگه برای استخراج خطوط ساحلی از یک سری شاخص طیفی استفاده میشه
    به نظر شما فیوژن کردن، دقت را افزایش میده؟
    ممنون از راهنمایی هاتون

    پاسخ
  • با سلام و عرض ادب
    ببخشید من دیتای indian pine رو بدون تصحیح و بدون هیچ گونه دستکاری لازم دارم
    البته بصورتی که تو انوی بتونم ازش استفاده کنم
    داده هایی که بصورت mat فایل هستن (و همه سایت ها گذاشتن) رو نمیخوام
    هر چی گشتم نتونستم تو نت پیداش کنم
    شما نمیدونین از کدوم سایت میشه دانلود کرد؟

    ممنون از پاسخ شما

    پاسخ
  • سلام
    وقتتون بخیر

    ببخشید من یه مشکلی تو انوی داشتم
    ممنون میشم کمکم کنید
    خیلی لازمش دارم

    یک تصویر هایپریون رو در محیط انوی باز کردم
    با توحه به نوع تصویر برداری، عکس بصورت کج ظاهر میشه در محیط انوی

    من میخوام این تصویر بصورت قائم نمایش داده بشه
    این حالتو لازم دارم

    ولی نمیدونم چه جوری باید این کارو انجام بدم
    ممنون میشم راهنماییم کنید

    در ایمیل یه عکس فرستادم تا منظورم از کج بودن تصویر رو برسونم

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

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

      موفق باشید

      پاسخ
      • سلام
        بله می دونم مشکلی نداره
        ولی من میخوام این تصویر رو خیلی دقیق برش بزنم (یک محدوده بصورت متوازی الاضلاع)
        واسه همین لازم دارم که بصورت قائم باشه (در این صورت اون محدوده مستطیلی میشه)
        چون در حالتی که کج هست و واسه برش زدن از ROI استفاده میکنم محدوده هایی که لازم ندارم هم برش زد میشن

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

          موفق باشید

          پاسخ
  • سلام. ضمن تشکر از مطالب ارزشمندتان.هیچ کدام از بخشهای زبان idl فعال نیست

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

    پاسخ
  • با سلام و وقت بخیر خدمت‌شما

    لینک قرار داده شده جهت اطلاعات تکمیلی و ثبت نام دارای مشکل میباشد..‌ پیج قرار داده شده با ارور ۴۰۴ مواجه میشود.
    لطفا رسیدگی فرمایید

    پاسخ
  • سلام وقت بخیر و ممنون
    چرا در اموزش محاسبه LST در IDL جای سوال و نظر دادن وجود ندارد

    در ویدئو عنوان کردید که یک اموزش دیگری به همراه اموزش خریداری شده برای idl مقدماتی ارسال میکنید ولی همجین چیزی برای من ارسال نشده

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

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

      موفق باشید

      پاسخ
      • خب الان باید چکار کرد

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

          موفق باشید

          پاسخ
  • با سلام و خسته نباشید خدمت شما. عذر میخوام شما پروژه در زمینه نمایش تصویر سه بعدی از داده های ماهواره MODIS و همزمان داده های زمین محور مانند لایدار در رابطه با آلودگی هوا انجام میدهید؟ ممنون میشم بهم اطلاع بدید.

    پاسخ

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

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

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

keyboard_arrow_up