آشنایی با کتابخانه های پایتون در GIS

پایتون در GIS و کتابخانه های محبوب آن

امروزه زبان برنامه نویسی پایتون مورد استقبال ویژه ای قرار گرفته است. دلایل مختلفی وجود دارد که این زبان نسبت به سایر زبان های برنامه نویسی مورد توجه قرار گیرد.

چرا پایتون بیشتر مورد توجه قرار گرفته؟

پایتون در gis

آری، یادگیری پایتون کار سختی نیست. با پایتون می توانید خیلی سریع برنامه های مورد نظر خود را پیاده سازی کنید. پایتون یک زبان برنامه نویسی رایگان و متن باز است. متن باز به این معنی است که برای برنامه نویسی و ساخت یک نرم افزار، نیاز به پرداخت پول برای زبان برنامه نویسی و محیط توسعه نرم افزار، ندارید. هم چنین، می توانید پایتون را تغییر دهید و بسته به نیاز خود یک پایتون دیگر ایجاد کنید. اما مهم تر از همه این ها، زبان پایتون، با پشتیبانی از کتابخانه های بسیار زیاد در حوزه های مختلف، کار ساخت یک نرم افزار و برنامه نویسی را بسیار ساده کرده است. کتابخانه ها، پکیج های آماده ای هستند که شامل مجموعه ای از توابع یا functionality در یک مبحث خاص هستند. به طور مثال، کتابخانه math، شامل توابعی برای کار در حوزه ریاضیات است.

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

پایتون در gis

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

علاوه بر کتابخانه های مذکور، در GIS نرم افزار های مختلفی برای کار با نقشه ها و داده های مکانی وجود دارند. از جمله نرم افزار های ArcGIS، QGIS در حوزه Desktop که برای استفاده حرفه ای تر از این نرم افزار های GIS، می توان از کتابخانه های حرفه ای تر پایتون نظیر ArcPy و یا PyQGIS بهرمند شد.

معرفی کتابخانه های پایتون در GIS

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

معرفی Arcpy

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

پایتون در gis

معرفی PyQGIS

نرم افزار QGIS یک نرم افزار GIS دسکتاپ قدرتمند برای پردازش و تجزیه و تحلیل داده های مکانی است. این نرم افزار دارای ابزاری برای برنامه نویسان پایتون است که می توان به کمک آن به تمام توابعی که داخل این نرم افزار استفاده شده است دسترسی داشت. این ابزار PyQGIS نام دارد. برتری این ایزار نسبت به ابزار Arcpy این است که برنامه نویس حتی می تواند توابع را دستکاری کند و الگوریتم آن ها را بهبود دهد. چرا که QGIS یک نرم افزار GIS متن باز است ولی ArcGIS یک نرم افزار تجاری و منبع بسته است.

پایتون در gis

معرفی GDAL/OGR

این کتابخانه پایتون در GIS یکی از پایه ای ترین ابزارها برای کار با فرمت های رستری و برداری می باشد که توسط بنیاد OSGeo  حمایت و معرفی می شود. سه ماژول مهم در این کتابخانه GDAL،OGR و OSR هستند که به ترتیب برای کار با داده های رستری، برداری و سیستم های مختصات مورد استفاده قرار می گیرند. این کتابخانه به عنوان هسته بسیاری از نرم افزار های GIS استفاده می شود و به عنوان یکی از اساسی ترین کتابخانه های پایتون در GIS شناخته می شود. در زبان پایتون می توان به کتابخانه GDAL دسترسی داشت و از توابع آن استفاده نمود. سایت رسمی GDAL به آدرس https://gdal.org می باشد که شامل مستندات این کتابخانه ارزشمند می شود. در بسته آموزش برنامه نویسی GIS با پایتون، نحوه استفاده از این کتابخانه، آموزش داده شده است.

پایتون در gis

ماژول Pyproj

این کتابخانه یک سکو برای کتابخانه proj در زبان پایتون است. PyProj شامل سیستم های تصویر و مختصات مختلفی است و برای تبدیل انواع این سیستم ها به یک دیگر مورد استفاده قرار می گیرد. Proj یک کتابخانه بسیار معروف در حوزه مکانی است که بی شک به عنوان جزو جدایی ناپذیر در بسیاری از نرم افزارهای GIS می باشد. در زبان پایتون با استفاده از ماژول Pyproj می توانید از تمامی قابلیت های Proj بهره مند شوید. اگر یک سامانه وب GIS توسعه می دهید و می خواهید در آن از سیستم های مختصات مختلف استفاده نمایید، حتما گذارتان به استفاده از این ماژول می افتد.

کتابخانه Geos

 کتابخانه Geos، برای انجام عملیات روی لایه های برداری دو بعدی است. Geos به عنوان یک درگاه برای کتابخانه JTS ( در زبان برنامه نویسی جاوا)، محسوب می شود. Geos به زبان C++ نوشته شده است اما در پایتون می توان به توابع و اشیای آن دسترسی داشت و از قابلیت های این کتابخانه محبوب پایتون در GIS استفاده نمود.

در بسته آموزش برنامه نویسی GIS با پایتون، نحوه استفاده از این کتابخانه، آموزش داده شده است.

کتابخانه Geopandas

این کتابخانه برای کار ساده تر با داده های مکانی است. کتابخانه Geopandas، کار با داده های مکانی را راحت تر کرده و اشیای کتابخانه pandas که برای تحلیل داده مورد استفاده قرار می گیرد را توسعه داده است. قابلیت هایی نظیر عملیات های فضایی روی داده های مکانی فراهم می کند. برای دسترسی و خواندن داده های مکانی از Fiona استفاده می کند. همچنین از matplotlib و Descartes برای نمایش بهره مند می شود.

معرفی Shapely

یک بسته Python برای تجزیه و تحلیل مجموعه ای و دستکاری عوارض مسطح با استفاده از توابع شناخته شده و موجود در کتابخانه GEOS است. فرض Shapely این است که برنامه نویسان Python بتوانند عملیات هندسی و توابع مکانی (همانند توابع مکانی PostGIS) را در خارج از پایگاه داده مکانی، انجام دهند و چنین توابعی را فراهم کرده است.

کتابخانه Rasterio

همان گونه که از نام آن پیداست، این کتابخانه برای کار با داده های مکانی از نوع Raster، استفاده می شود.

Raster چیست؟

عکس های هوایی و تصاویر ماهواره ای، از جمله اطلاعات جغرافیایی از نوع تصویری یا Raster می باشند.

قبل از Rasterio کتابخانه های دیگری نظیر GDAL/OGR برای دسترسی به داده های رستری نظیر داده های سنجش از دور(تصاویر ماهواره ای) استفاده می شدند. کتابخانه GDAL با زبان c نوشته شده است و برای دسترسی به آن در پایتون از binding ها یا اتصال دهنده ها استفاده می شود. اما در کتابخانه Rasterio، همه چیز با پایتون نوشته شده است. این کتابخانه علاوه بر خواندن داده های رستری،  قابلیت نوشتن این فایل ها و همچنین زمین مرجع کردن (Georeference)، شاخص گذاری گذاری مکانی و قابلیت هایی نظیر این را هم دارد.

معرفی Fiona

Fiona برای نوشتن و خواندن داده های مکانی، مورد استفاده قرار می گیرد. تمرکز Fiona به استفاده از اشیای پایتونی نظیر دیکشنری و Iterator ها به جای اشیای OGR است. Fiona می تواند داده های مکانی را با استفاده از فرمت های GIS چند لایه و سیستم های فایل مجازی فشرده شده بخواند و بنویسد و به راحتی با سایر کتابخانه های پایتون در GIS مانند pyproj ، Rtree و Shapely ادغام کند.

معرفی Pysal

PySAL مخفف Python Spatial Analysis Library است. یک پروژه متن باز است که برای آنالیز داده های مکانی طراحی شده است. Pysal بیشتر بر داده های برداری تاکید دارد.

پایتون در gis

معرفی Geopy

geopy این امکان را برای توسعه دهندگان Python فراهم می کند که مختصات آدرس ها ، شهرها ، کشورها و نقاط دیدنی را در سراسر جهان با استفاده از geocoders های شخص ثالث و سایر منابع داده ها پیدا کنند.

پایتون در gis

معرفی GeoViews

این کتابخانه، برای نمایش داده های جغرافیایی، هواشناسی و اقیانوس شناسی به کار می رود. این داده ها  از طریق هواشناسی و یا سنجش از دور بدست می آیند. این کتابخانه از matplotlib و bokeh برای نمایش استفاده می کند.

معرفی NetworkX

مسیریابی یکی از مهمترین تحلیل ها در GIS است و امروزه یکی از ضروریات در ناوبری نیز به شمار می رود که در بیشتر اپلیکیشن های مکان محور، به چشم می خورد. در پایتون برای مسیر یابی از کتابخانه ای به اسم NetworkX استفاده می شود. این کتابخانه شامل الگوریتم های مسیر یابی نظیر Dijkstras و A* نیز می باشد که برای پیدا کردن کوتاه ترین مسیر مورد استفاده قرار می گیرد.

بسته Cartopy

Cartopy یک بسته Python است که به منظور تهیه نقشه ها و دیگر تجزیه و تحلیل داده های مکانی مورد استفاده برای پردازش داده های جغرافیایی است. Cartopy از کتابخانه های قدرتمند PROJ.4 ، NumPy و Shapely استفاده می کند. یکی از ویژگی های اصلی این کتابخانه پایتون در GIS، تعریف شی گرا از سیستم های مختصات و تصویر و همچنین تبدیل سیستم مختضات در نقطه، خط و چندضلعی است.

ماژول Scipy.spatial

این ماژول بخشی از کتابخانه scipy است. scipy برای انجام محاسبات علمی استفاده می شود. الگوریتم هایی این کتابخانه در حوزه مکانی هم موجود هستند که در ماژول scipy.spatial قرار دارند.

پایتون در gis

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

  1. تبدیل سیستم های مختصات
  2. الگوریتم های Nearest-neighbor نظیر: KDTree، cKDTree، Rectangle
  3. مثلث بندی Delaunay، Convex Hull، دیاگرام Voronoi
  4. توابع ترسیمی

کتابخانه Rtree

این کتابخانه برای شاخص گذاری مکانی (Spatial Indexing) بر روی داده های مکانی استفاده می شود.

پایتون در gis

شاخص گذاری یا Indexing

شاخص گذاری، یکی از تکنیک هایی است که برای افزایش سرعت کار با داده ها و جستجوی داده مورد نظر در بین انبوهی از داده ها، مورد استفاده قرار می گیرد. همان طور که در کتابخانه ها از شاخص برای یافتن کتاب ها در بین انبوهی از کتاب ها استفاده می شود.

کتابخانه PDAL

این کتابخانه برای خواندن و نوشتن و پردازش روی ابرنقاط یا Point cloud است. فرقی ندارد این Point Cloud از چه طریقی ایجاد شده است. از طریق LIDAR، یا حتی از طریق نقشه برداری هوایی با پهپاد، PDAL قابلیت کار بر روی این داده ها را به برنامه نویسان پایتون می دهد. علاوه بر PDAL کتابخانه های دیگری نیز برای کار با Point Cloud  استفاده می شوند. نظیر libLAS، Cloud Compare، Fusion و OrpheoToolbox.

برنامه نویسی GIS با پایتون

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

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

برو بریم

اگر می‌خواهید از آخرین و محبوب‌ترین مقالات ما در ایمیل خود مطلع شوید، همین الان ایمیل خود را در کادر زیر وارد کنید

[mailpoet_form id="1"]

تعداد علاقه‌مندانی که تاکنون عضو خبرنامه ما شده‌اند

۱۸۱۴

مقاله های مرتبط :

دیدگاه خود را بیان کنید :

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

۱ دیدگاه برای این مطلب ثبت شده است

  1. کیوان قلی زاده
    11:00 2020/01/13

    سلام
    بسیار ممنون از نویسنده ی مقاله . واقعا مطلب مفیدی هست.
    با تشکر