زبان برنامه نویسی پایتون و کاربرد آن در GIS

زبان برنامه نویسی پایتون و کاربرد آن در GIS

برنامه نویسی پایتون، راحت الحلقوم برنامه نویسان

با پایتون، بسیار ساده و سریع آماده برنامه نویسی GIS شوید

زبان برنامه نویسی پایتون اواخر دهه ۱۹۸۰ میلادی توسط «خودو فان روسوم» در موسسه ملی تحقیقات ریاضی و رایانه هلند، ایجاد شد. از سال ۱۹۹۱ زبان برنامه نویسی پایتون به عنوان یک زبان برنامه نویسی آسان، جهت نوشتن برنامه های ساده برای مساله های بزرگ، به کار گرفته شد.
در چند سال اخیر، زبان برنامه نویسی Python، در توسعه پیشرفته نرم افزار، مدیریت زیرساخت­ها و نیز تجزیه و تحلیل داده­ها، مورد استفاده قرار گرفته است. همچنین این زبان به دلیل سادگی و قدرت آن، در محیط های دانشگاهی و آکادمیک، در حال جایگزین شدن با زبان برنامه نویسی Mathlab می باشد. از دیگر دلایل استقبال دانشجویان از زبان برنامه نویسی پایتون، عدم نیاز به داشتن بینش جامع از دانش کامپیوتر، جهت ایجاد برنامه های کاربردی می باشد. در بازار کار نیز، زبان برنامه نویسی پایتون، به علت اینکه تولید و توسعه نرم افزار را سرعت می بخشد، مورد استقبال قرار گرفته است. بسیاری از کارها که در سایر زبان های برنامه نویسی می بایست کدهای زیادی برای آنها بنویسید، در زبان پایتون به لطف وجود Framework­ها، ماژول ها و ابزارهای آماده، به سرعت و تنها با کمتر از ۱۰ خط برنامه نویسی، قابل انجام می باشند. امروزه ایجاد برنامه‌های کاربردی تحت وب و تحت سیستم عامل و نیز کاربرد گسترده در تجزیه و تحلیل داده‌های بزرگ و هوش ماشین، به لطف استفاده از زبان برنامه نویسی پایتون، بسیار ساده شده است. این زبان، کاملا متن­باز می باشد و برنامه های نوشته شده با آن، به سادگی بر روی انواع سیستم های عامل، قابل اجرا می باشند.

پایتون و GIS

زبان برنامه نویسی پایتون، به لطف کتابخانه هایی که برای آن توسط تیم ها و برنامه نویسان خبره، توسعه داده می شوند، وارد حوزه های تخصصی رشته های مختلف نیز شده است. برای مثال برنامه نویسی GIS با پایتون یکی از این حوزه های تخصصی می باشد که علاقمندان به توسعه سامانه های GIS می توانند بدون درگیر شدن با مسایل مهندسی نرم افزار، اقدام به تولیدسامانه Web GIS و یا حتی Desktop GIS نمایند.
چارچوب کاری Django در پایتون به منظور توسعه سریع وب سایت مورد استفاده قرار می گیرد. این چارچوب دارای ماژولی به نام GeoDjango است که با استفاده از آن می توان تولید سیستم اطلاعات جغرافیایی تحت وب را به سادگی انجام داد.
کتابخانه قدرتمند GDAL توانسته استفاده از پایتون در سیستم اطلاعات جغرافیایی (Geographic Information System – GIS) را گسترش دهد و به قدرت آن بیافزاید. برنامه نویسان می توانند به آسانی بسیاری از کارها از جمله به کارگیری انواع اسکریپت نویسی برای پردازش لایه های وکتوری و رستری و نوشتن کدهای مهمی برای عملیاتی همچون تولید و تبدیل لایه های مکانی، پردازش بانک های اطلاعات مکانی و اجرای قواعد شرطی روی داده های رستری را انجام دهند.
در این آموزش می خواهیم شما را بیشتر با ابعاد، مزایا و معایب زبان برنامه نویسی پایتون آشنا سازیم. در نهایت قصد ما آموزش برنامه نویسی GIS با پایتون می باشد که در سلسله آموزش های آتی در سایت GISPlus به آن خواهیم پرداخت.

مزایای کلیدی پایتون

موفقیت پایتون حول چندین مزیتی است که برای تازه‌کاران و متخصصان به صورت یکسان ارایه می دهد.

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

پایتون به صورت گسترده‌ای پذیرفته شده و پشتیبانی می‌شود

بر اساس رتبه‌‌های بالا در نظرسنجی‌هایی نظیر شاخص Tiobe و تعداد زیاد پروژه‌هایی که در GitHub از پایتون استفاده می‌کنند؛ زبان پایتون هم مشهور است و هم به صورت گسترده استفاده می‌شود.

 

پایتون روی هر سیستم عامل و به ویژه بیشتر سیستم عامل‌های کوچک‌تر اجرا می‌شود. بسیاری از کتابخانه‌های مهم و خدمات مبتنی بر API دارای bindingsها یا wrappersهای پایتون هستند، که به پایتون این امکان را می‌دهد تا آزادانه با آن سرویس‌ها تعامل داشته باشد یا مستقیما از آن کتابخانه‌ها استفاده کند. زبان برنامه نویسی پایتون ممکن است که سریع‌ترین زبان برنامه نویسی نباشد اما آن چه که باعث می‌شود تا فقدان سرعت داشته باشد به تطبیق‌پذیری آن منجر می‌شود.

برنامه‌نویسی برنامه‌های کاربردی عمومی با پایتون

شما می توانید برنامه‌های کاربردی خط فرمان و رابط گرافیکی بدون وابستگی به سیستم عامل را با پایتون ایجاد کنید و آن‌ها را به عنوان فایل‌های قابل‌اجرای جداگانه قرار دهید. برنامه های نوشته شده به زبان پایتون قابل کامپایل شدن و تولید یک فایل باینری مستقل را ندارد، اما بسته‌هایی مانند cx_Freeze و PyInstaller می‌توانند برای انجام این کار استفاده شوند و برنامه های نوشته شده توسط شما را ایمن کرده تا دیگران به سورس کدهای نوشته شده توسط شما، دسترسی نداشته باشند.

علم داده و یادگیری ماشین با پایتون

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

سرویس‌های وب و API های RESTful در پایتون

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

معایب پایتون

پایتون زبان سطح بالایی است لذا برای برنامه‌نویسی در سطح سخت افزار یا برنامه‌نویسی سطح سیستم یا هسته سیستم عامل، مناسب نیست.
زمانی که سرعت، اولویت مطلق در برنامه های محاسباتی باشد، پایتون بهترین انتخاب نیست. به همین دلیل بهتر است از زبان‌هایی نظیر C/C++ یا دیگر زبان‌های مناسب آن استفاده کنید.

پایتون چگونه برنامه نویسی را ساده می‌کند؟

ساختار برنامه نویسی با پایتون بسیار ساده و قابل فهم است. یک برنامه بسیار ساده با نام «Hello World» در پایتون ۳٫x چیزی جز شکل زیر نیست. فقط یک خط!

 print(“Hello world!”)

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

with open(‘myfile.txt’) as my_file:
file_lines = [x.strip(‘\n’) for x in my_file]

حتما متوجه شدید که چه کاری انجام می دهید. با دو کد به سادگی یک فایل متنی را باز کردیم و محتویات آن را در یک لیست قرار دادیم!
شما می‌توانستید چنین چیزی را به فرم قدیمی خود یعنی حلقه for در پایتون بنویسید درست همانند چیزی که در دیگر زبان‌‌ها وجود دارد.

پایتون ۲ در برابر پایتون ۳

زبان برنامه نویسی پایتون در دو نسخه وجود دارد که به اندازه کافی با یکدیگر تفاوت دارند تا جایی که برخی از کاربران دچار اشتباه می‌شوند. پایتون ۲٫x نسخه قدیمی‌تر می باشد و تا سال ۲۰۲۰ پشتیبانی می‌شود (یعنی بروزرسانی‌های رسمی دریافت می‌کند) و امکان دارد بعد از آن به صورت غیر رسمی بروزرسانی ادامه داشته باشد.
پایتون نسخه ۳٫x تجسم کنونی و آینده زبان پایتون، دارای بسیاری از ویژگی‌های مفید و مهم مانند کنترل‌های هم‌زمان و مفسرهای کارآمدتر است که در نسخه ۲٫x یافت نمی‌شود.
پذیرش نسخه ۳ پایتون به دلیل ضعف نسبی در پشتیبانی از کتابخانه‌های کاربردی، مدت زیادی کند شد. بسیاری از کتابخانه‌های پایتون که تنها از پایتون نسخه ۲ پشتیبانی می‌کردند، کار خود را برای انتقال از نسخه ۲ به ۳ سخت دیدند. اما طی چند سال گذشته، تعداد کتابخانه‌هایی که تنها از پایتون ۲ پشتیبانی می‌کنند، کاهش یافته‌اند و بیشترشان از هر دو نسخه، پشتیبانی می‌کنند.

کتابخانه‌های پایتون

موفقیت زبان برنامه نویسی پایتون، مرهون یک اکوسیستم غنی از برنامه نویسان است. پایتون از یک کتابخانه استاندارد قوی و یک مجموعه قوی از کتابخانه‌هایی بهرمند است که توسط سایر برنامه نویسان خبره تولید می شوند. این کتابخانه ها معمولا توسط سایر برنامه نویسان، مورد استفاده قرار می گیرند. پایتون طی دهه‌ها توسعه، غنی شده است.
کتابخانه استاندارد پایتون، ماژول هایی برای فعالیت‌های معمول برنامه‌نویسی شامل کارهای ریاضی، مدیریت داده، دسترسی به فایل و دایرکتوری، کارهای تحت شبکه، عملیات غیرهمزمان، threading، مدیریت چندپردازشی، کار با GIS در پایتون و… ارایه داده‌اند. هم‌چنین شامل ماژول‌هایی است که فعالیت‌های رایج برنامه نویسی سطح بالا را که موردنیاز برنامه‌های پیشرفته است، مدیریت می‌کند. خواندن و نوشتن فرمت‌های فایل ساختاری مانند JSON و XML، دست‌کاری فایل‌های فشرده، کار با پروتکل‌های اینترنتی و ساختار‌های داده (صفحات وب، URL ها، ایمیل) از موارد دیگری از این دست می باشند.
توزیع پیش فرض پایتون، شامل یک کتابخانه GUI ابتدایی اما مفید است که بدون وابستگی به سیستم عامل بوده و به صورت توکار، یک کپی از پایگاه دادهSQLite نسخه ۳ را نیز در بر دارد.
هزاران کتابخانه کاربردی دیگر که در Python Package Index (PyPI) در دسترس هستند، قوی‌ترین جلوه محبوبیت و تطبیق‌پذیری پایتون را تشکیل می‌دهند. به عنوان مثال:

  • کتابخانه BeautifulSoup مجموعه ای از ابزارهای همه جانبه را برای دست‌کاری HTML، حتی HTML خرابکارانه و استخراج داده ها از آن فراهم می‌کند.
  •  فریم وورک‌هایی نظیر Flask و Django، اجازه توسعه سریع سرویس‌های وب را می دهند.
  • چندین سرویس ابری را می توان از طریق مدل شی پایتون با استفاده از Apache Libcloud مدیریت کرد.
  •  NumPy، Pandas، و Matplotlib سرعت بخشیدن به ریاضیات و عملیات آماری را فراهم می‌کنند و ترسیم داده ها و به نمودار درآوردن داده‌ها را آسان می‌کنند.

آیا پایتون خیلی کند است؟

یکی از نکات رایج در مورد زبان برنامه نویسی پایتون این است که آهسته است. به لحاظ عینی، این مساله درست است. برنامه های پایتون عموما بسیار کندتر از برنامه‌های C/C++ یا Java اجرا می‌شوند.
چرا آنقدر کند؟
یکی از دلایل کندی برنامه های نوشته شده به زبان پایتون، این است که برنامه پایتون با استفاده از مفسر زبان، ترجمه می شود و زبان های مفسری عموما کندتر از زبان های کامپایلری هستند. در زبان های مفسری، برنامه نوشته شده به صورت خط به خط اجرا می شود. اما در زبان های کامپایلری، ابتدا کل برنامه نوشته شده به زبان رایانه ترجمه می شود و سپس برنامه اجرا می شود. لذا زبان های کامپایلری دارای سرعت اجرای بالاتری هستند.
از دیگر دلایل کند بودن برنامه های پایتون، پویایی ذاتی و فرم‌پذیری اشیا در پایتون است. اما به صورت کلی ترس از سرعت پایین نداشته باشید چراکه ممکن است سرعت پایتون به اندازه‌ای که ممکن است تصور گردد، مشکل‌ساز نشود و راه‌هایی برای کاهش آن وجود دارد.

 راه‏های افزایش سرعت برنامه های پایتون

بسیاری از برنامه های پایتون آهسته هستند، زیرا آن‌ها به درستی از قابلیت های پایتون یا کتابخانه استاندارد خود استفاده نمی‌کنند. با استفاده از کتابخانه‌هایی مانند NumPy و Pandas می‌توان عملیات ریاضی و آمار را به شدت ارتقا داد و همچنین نسخه دیگر از پایتون تحت عنوان PyPy می تواند سرعت برنامه های نوشته شده به زبان پایتون را افزایش دهد.
یک قاعده کلی در توسعه نرم افزار این است که ۹۰ درصد از فعالیت برنامه، در ۱۰ درصد از کد قرار دارد، بنابراین بهینه سازی این ۱۰ درصد می تواند منجر به پیشرفت‌های عمده ای شود. با پروژه‌هایی نظیر Cython یا Numba شما می‌توانید به انتخاب خود آن ۱۰ درصد را به C یا حتی اسمبلی تبدیل کنید. نتیجه اغلب یک برنامه است که در فاصله قابل توجهی از یک همتای خود که کاملا به زبان C نوشته شده است، اجرا می‌شود.

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

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

موارد استفاده از پایتون در دنیا

توسط بنیاد نرم‌افزاری پایتون از ۹۵۰۰ توسعه‌دهنده پایتون در ۱۵۰ کشور دنیا نظرسنجی صورت گرفت که با پایتون، چه کاری انجام می دهید؟
نتایج نشان می دهد که موارد استفاده که مدت‌ها پیش برای پایتون وجود داشته است نظیر اسکریپت‌های پایتون، خودکارسازی، Devop و استخراج داده از وب؛ توسط ۳۲ تا ۳۵ درصد از توسعه دهندگان مورد بررسی، استفاده می‌شوند. حدود ۴۹ درصد از توسعه دهندگان، از پایتون برای توسعه سامانه های تحت وب استفاده می کنند. سایر موارد در نمودار زیر قابل مشاهده می باشد.
داده‌ها: JetBrains و بنیاد نرم افزار پایتون
طی بررسی انجام شده، یکی دیگر از معیارهای قابل توجه، پیشرفت استفاده از زبان برنامه نویسی پایتون ۳ به عنوان نسخه پیش فرض پایتون است: ۷۵ درصد از توسعه دهندگان از نسخه ۳ به عنوان نسخه پیش فرض خود استفاده می‌کنند، با ۷۰ درصد از توسعه دهندگان وب و ۸۰ درصد از دانشمندان داده به طور خاص از این نسخه استفاده می‌کنند.
پشتیبانی رسمی از پایتون ۲ هنوز تا پایان سال ۲۰۲۰ ادامه دارد، اما تقریبا همه بسته‌های معمول پایتون در Package Index Python از پایتون۳ پشتیبانی می‌کنند.

استفاده از چارچوب‌های ویژه پایتون نیز با رتبه‌بندی کلی انواع توسعه مطابقت دارد. چارچوب وب Django (بخوانید جنگو) معمول‌ترین چارچوب مورد استفاده پایتون باقی می‌ماند. فلاسک، یکی دیگر از سیستم‌های توسعه وب محبوب و سبک وزن، ۳۲ درصد را به خود اختصاص داده است.

سخن پایانی

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

 

منصور ادیبی نزدیک به یک دهه است که در زمینه WebGIS و MobileGIS فعالیت می‌نماید. از جمله فعالیت‌های وی، مشاوره و آموزش در زمینه پیاده‌سازی GIS با تمرکز بر استفاده از ابزارهای متن-باز می‌باشد. او فعالیت در پیاده‌سازی پروژه‌های بزرگ کشور را در پیشنه خود دارد. برای آشنایی بیشتر با منصور ادیبی، به وبگاه شخصی او به نشانی http://mansour.adibi.info مراجعه نمایید.

برو بریم

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

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

۷۰۳

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

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

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