دوره ی GIS چیست ؟

 دوره ی GIS مروری بر زبان های برنامه نویسی برای یک عنصر ضروری در طراحی بسیاری از سیستم‌های مکانی، انتخاب زبان برنامه‌نویسی (یا زبان‌ها) است. اکثر پروژه های هیجان انگیزی که می توانیم تصور کنیم حداقل شامل برنامه نویسی برای سفارشی کردن ابزارهای موجود یا توسعه ابزارهای کاملاً جدید است.

تنوع شگفت انگیزی از زبان های برنامه نویسی وجود دارد که امروزه برای متخصصان زمین فضایی مفید است. ویکی پدیا بیش از 600 زبان را فهرست می کند(لینک خارجی است)، که تنوع لهجه های بیزانسی BASIC را حذف می کند(لینک خارجی است)گذشته و حال.

معرفی دوره ی GIS و مشخص کردن زبان های برنامه نویسی

یکی از ابزارهای مهم برای مشخص کردن زبان برنامه نویسی بر اساس نوع سیستم آنها است، یعنی قوانینی که به وسیله آنها می توان به متغیرها یا اشیا معنا داد. یک تقسیم اساسی بین تایپ استاتیک و پویا است. زبان هایی که به صورت ایستا تایپ می شوند مانند C، C++، C# و جاوا اطلاعات نوع را در زمان کامپایل ارزیابی می کنند و کدهایی را که به خوبی شکل نمی گیرند رد می کنند.

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

زبان های برنامه نویسی رایج مورد استفاده با GIS

امروزه تعداد زیادی زبان برنامه نویسی در حال استفاده هستند و واقعاً هیچ گزینه “بهترین” وجود ندارد. ما در اینجا بر مواردی تمرکز می‌کنیم که بیشترین ارتباط را با سیستم‌های زمین فضایی معاصر دارند. جدول زیر چندین فهرست اخیر از زبان‌ها را در سال‌های 2019 و 2018 گردآوری می‌کند.

3 ستون اول بر اساس نظرسنجی از استفاده/کاربران است و اساس ترتیب برای 3 ستون آخر صریح نبود. فقط یکی از لیست ها (از GoGeomatics)، مختص GIS است و آن یکی بیانگر نظر یک توسعه دهنده است. مهمترین نکات این جدول این است که: (1) زبان های محبوب زیادی وجود دارد و نظرات مختلفی در مورد شایستگی های نسبی آنها وجود دارد، و (2) پایتون، جاوا و جاوا اسکریپت در 5 لیست برتر هر لیست قرار دارند، با C++ و C# 5 از 6 لیست، PHP در 4 از 6، و C، R، Ruby، Rust، Shell، SQL، و TypeScript هر کدام با 2 لیست دنبال بقیه هستند.جدول زمانی فهرست انجمن برنامه نویسی TIOBE از 2002 تا کنون(لینک خارجی است).

در زیر، توضیح مختصری از زبان های برنامه نویسی که در دو یا چند لیست نشان داده می شوند، ارائه می دهیم. گروه اول (به ترتیب حروف الفبا) آنهایی هستند که در 5 لیست یا بیشتر نشان داده می شوند، بنابراین آنهایی که عموماً در بین توسعه دهندگان محبوبیت بیشتری دارند.

سپس (همچنین به ترتیب حروف الفبا) ویژگی‌های کلیدی لیست‌هایی را که در لیست‌های کمتر (اما حداقل 2) نشان داده می‌شوند، تشریح می‌کنیم. این توصیفات با دیدگاهی در مورد انتخاب زبان‌های خاص برنامه کاربردی دنبال می‌شوند که به خوبی برای وظایف توسعه GIS (و سایر وظایف جغرافیایی) مناسب هستند.

اگر زبان‌هایی را می‌بینید که فکر می‌کنید مربوط به GIS هستند، اما در اینجا گم شده‌اند، یا نمونه‌های خوبی از یک برنامه کاربردی زمین‌فضایی مؤثر دارید که از هر یک از زبان‌ها استفاده می‌کند .

زبان های برنامه نویسی محبوب

  • Python – Python امروزه بسیار محبوب است و زبان برنامه نویسی اصلی است که هم در ArcGIS و هم در QGIS استفاده می شود. پایتون اغلب به عنوان یک زبان “چسب” خوب در نظر گرفته می شود، و به طور کلی کار با آن آسان است. این برنامه پسوندهای زیادی مانند SciPython و Numerical Python دارد.
  • جاوا اسکریپت – جاوا اسکریپت یک رهبر فعلی برای رابط های کاربری در برنامه های کاربردی وب است. Google Maps کاربر جدی جاوا اسکریپت است، ArcGIS API برای جاوا اسکریپت Esri از توسعه نقشه وب پشتیبانی می کند، و مشتریان نقشه وب منبع باز پیشرو (OpenLayers، Mapbox GL JS) نیز بر اساس جاوا اسکریپت هستند. D3(لینک خارجی است) یک کتابخانه تجسم وب بسیار محبوب است که زیربنای بسیاری از نقشه های وب تعاملی است که امروزه می بینید.
  • سی شارپ – سی شارپ پاسخ مایکروسافت به جاوا بود (به زیر مراجعه کنید)، و زبان برنامه نویسی شاخص برای دات نت است. بنابراین، اگر شروع به نوشتن یک افزونه جدید برای ArcGIS با استفاده از NET SDK کرده اید.(لینک خارجی است)، شما در سی شارپ کار می کنید.
  • C++ – C++ یک زبان برنامه نویسی همه منظوره (برگرفته از C) با ویژگی های رویه ای و شی گرا است که اغلب در سیستم های تعبیه شده استفاده می شود. که در سال 1985 توسعه یافت، محبوبیت آن از حدود سال 2004 به طور کلی کاهش یافته است (احتمالاً به دلیل منحنی یادگیری شیب دار و پیچیدگی کلی)، اما به هر حال سهم قابل توجهی از پروژه ها را حفظ کرده است.
  •  بسیاری از برنامه‌های نرم‌افزاری که هر روز استفاده می‌کنید به زبان C++ نوشته شده‌اند یا حداقل برای بخشی از پیاده‌سازی از C++ استفاده می‌کنند (ArcGIS، سیستم‌عامل ویندوز، فایرفاکس، MS Office و غیره، و غیره)، بنابراین به این زودی‌ها از بین نمی‌روند.
  • جاوا – جاوا همچنان یک انتخاب محبوب باقی مانده است، اگرچه محبوبیت آن در اکثر معیارها سال به سال کاهش می یابد. جاوا در GeoServer استفاده می شود(لینک خارجی است)و مجموعه توپولوژی جاوا ( JTS(لینک خارجی است)) پروژه ها، به عنوان مثال.

سایر زبان های برنامه نویسی مهم

  • ج – ج بزرگتر خانواده است. هنگامی که به عملکرد عالی نیاز دارید، از C استفاده می کنید، زیرا “نزدیک به فلز” است. اگر نیاز به کدنویسی درایور دستگاه دارید، این عالی است، اما اگر نیاز به ایجاد یک برنامه وب داشته باشید، چندان عالی نیست. بسیاری از پروژه های متن باز GIS به زبان C نوشته شده اند. برای مثال، GDAL(لینک خارجی است) (Geospatial Data Abstraction Library) به صورت ترکیبی از C و C++ نوشته شده است.

  • PHP – PHP یکی از بهترین راه‌ها برای راه‌اندازی یک وب‌سایت تعاملی است و بنابراین، بسیار محبوب است.
  • R و S — R و S زبان‌های آماری اسکریپت‌نویسی با تعداد زیادی آمار فضایی بسیار پیچیده هستند که می‌توانند از برخی از خروجی‌های ArcGIS استفاده کنند. بعلاوه، به خودی خود، افزونه های فضایی زیادی برای R وجود دارد که از طیف وسیعی از قابلیت های مکانی پشتیبانی می کند (به عنوان مثال، نگاه کنید به: CRAN Task View: Analysis of Spatial Data(لینک خارجی است)،  علم داده های مکانی با R(لینک خارجی است)، و r فضایی(لینک خارجی است).
  • روبی – زبان روبی یک زبان قدیمی است که اخیراً محبوبیت بیشتری پیدا کرده است. Ruby به دلیل Ruby on Rails که راه‌اندازی یک برنامه مبتنی بر پایگاه داده را آسان می‌کرد، جذابیت زیادی پیدا کرد. این به نقشه های وب توسط GeoCommons گسترش یافته است. برخی دیگر از سایت‌های جدید جغرافیایی جالب مانند OpenStreetMap و WeoGeo از Ruby استفاده می‌کنند.
  • Rust – Rust یک زبان متن باز است که توسط توسعه دهندگان با بنیاد موزیلا پشتیبانی می شود. از نظر مفهومی با C++ مرتبط است، اما برای ایمن تر بودن در رابطه با تهدیدات امنیتی طراحی شده است. زنانی که کدنویسی می کنند(لینک خارجی است) Rust برای موتورهای بازی، موتورهای شبیه‌سازی VR، کنترل‌کننده‌های واقعیت مجازی بسیار نوید دارد، بنابراین با توسعه بیشتر VR مبتنی بر GIS، Rust ممکن است در جامعه ما محبوب‌تر شود.
  • Shell – Shell یک زبان برنامه نویسی برای استفاده در محیط های یونیکس (و Linux و Mac OS) است. این به کاربر اجازه می دهد تا دستورات یونیکس را به هم متصل کند و سیستم آنها را به عنوان یک رویداد اجرا کند. برای نمونه ای از استفاده از Shell با GIS، به این راهنما برای اسکریپت نویسی Shell با GRASS GIS مراجعه کنید(لینک خارجی است).
  • SQL – SQL به عنوان یک زبان دسترسی و کنترل پایگاه داده استفاده می شود. SQL در قلب بسیاری از عملیات GIS قرار دارد. SQL یک مثال عالی از زبانی است که برای مدت طولانی زنده مانده است. این مدت طولانی باقی مانده است، زیرا به جای رویه، اظهاری است. به این معنا که عبارات SQL به شما می گویند که چه چیزی می خواهید اتفاق بیفتد، نه اینکه چگونه می خواهید اتفاق بیفتد. بنابراین، جزئیات پیاده سازی پنهان هستند و می توانند در طول زمان تغییر کنند. این بدان معناست که SQL قرار است در دنیای رایانش ابری مرتبط باقی بماند، که در روند فناوری این هفته به آن خواهیم پرداخت.
  • TypeScript – TypeScript یک زبان برنامه نویسی شی گرا است که ابر مجموعه ای از جاوا اسکریپت است. این به عنوان ” جاوا اسکریپت که مقیاس می شود” توصیف شده است(لینک خارجی است)”. مانند جاوا اسکریپت، پشتیبانی برای استفاده از TypeScript با ArcGIS برای JavaScript API و Google Maps JavaScript API وجود دارد. همچنین پشتیبانی از TypeScript با Bing Maps SDK و استفاده از Leaflet در TypeScript و غیره وجود دارد.

معرفی دوره GIS و ایجاد انتخاب های وابسته به برنامه :

بسیاری از پروژه های GIS از بیش از یکی از زبان هایی که در بالا توضیح داده شد استفاده می کنند. این به این دلیل است که وظایف مختلف در GIS توسط برخی از زبان ها بهتر از سایرین پشتیبانی می شود. در حالی که توسعه دهندگان مختلف نظرات متفاوتی در مورد بهترین تطابق زبان ها با وظایف دارند، یک لیست Task-Language(لینک خارجی است)ارزش یک نگاه (ویژه کارهای مرتبط با GIS) در سال 2016 توسط Florin-Daniel Cioloboc تولید شده است.

  • اسکریپت GIS و برنامه های کاربردی (Python, R)
  • پردازش، تحلیل و مدل سازی داده ها (Python, R)
  • نقشه برداری وب (جاوا اسکریپت، پایتون)
  • پایگاه داده های جغرافیایی (SQL)
  • MapServers (جاوا، C#.NET، C++)
  • توسعه GIS سنگین وزن (جاوا، C/C++، C#)
  • توسعه موبایل (اندروید، iOS، جاوا اسکریپت)
  • کتابخانه های جغرافیایی (جاوا اسکریپت، پایتون، جاوا، R، C/C++)

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