برنامه نویسی مطالب تخصصی

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

نوشته شده توسط Amirhossein.Ahrari@Gmail.com

در زمانی که بصورت حرفه ای قصد یادگیری سنجش از دور رو داشتم، تصمیم گرفتم تا یک نرم افزار و یک زبان برنامه نویسی حرفه ای و کاملا تخصصی در سنجش از دور را بصورت کامل یاد بگیرم. بررسی ها و تجزیه و تحلیل های زیادی کردم تا در نهایت به نرم افزار 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 مخفف Interface Data Language است

 

مزیت 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 را ارائه کردند که در آن ساختار جدیدی از کدنویسی در سنجش از دور ارائه شده است به گونه ای که هر فردی بتواند به راحتی نسبت به پردازش تصاویر ماهواره ای بصورت سلسله مراتبی و پیوسته اقدام نماید. این ساختار مخصوص دو دسته از افراد است:

۱) افرادی که با برنامه نویسی آشنایی ندارند

۲) افرادی که فرصت یادگیری برنامه نویسی را ندارند.

قابلیت 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 محیط ویندوز به آن دسترسی خواهید داشت.

 

یک پیشنهاد :

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

 

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

برای اطلاعات بیشتر و ثبت نام بر روی تصویر یا لینک زیر تصویر کلیک کنید:

اطلاعات تکمیلی – کلیک کنید


۲ دیدگاه

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