وبلاگ انجمن شهرسازی ایران

این وبلاگ مربوط به سایت اربنیتی Urbanity.ir می باشد

این وبلاگ مربوط به سایت اربنیتی Urbanity.ir می باشد

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

پیام های کوتاه
طبقه بندی موضوعی

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

پنجشنبه, ۱۴ فروردين ۱۳۹۹، ۱۲:۲۳ ب.ظ

قبل از هر چیز باید  اول بدانیم پایتون چیست.

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

در ابتدا شما را به مشاهده این ویدیو دعوت می کنیم:

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

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

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

جایگاه پایتون در بین مهندسان شهرساز

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

تحلیل نقشه های شهرسازی با پایتون

متاسفانه آموزشگاه های ما نیز نتوانسته اند این خلا علمی-آموزشی را پر کنند و اگر در یکی از کلاس های آموزشی مثلا آموزش GIS  شرکت کنید متوجه می شوید که فقط شما را با منو های نرم افزار و روش کار با منو ها آشنا می کنند و به صورت کاربردی وارد یک پروژه شهری با تمام و مسائل و مشکلات و قوانین آن نمی شوند و هنگامی که شما جهت مصاحبه و استخدام وارد یک شرکت و یا مهندس مشاور می شوید، متاسفانه با پرسیدن چند سوال کلیدی از شما متوجه می شوند که شما فقط مدارک کلاس جی آی اس را گرفته اید و کمکی به پروژه های آن شرکت نمی توانید بکنید. به همین دلیل انجمن شهرسازی ایران (urbanity.ir) در حال برگزاری کلاس های حضوری و غیر حضوری آموزش جی آی اس GIS  و برنامه نویسی در آن می باشد. یکی از زبان های برنامه نویسی مورد استفاده در  GIS  زبان برنامه نویسی پایتون است. به همین دلیل شهرسازان باید ابتدا با زبان پایتون در سطح مقدماتی و پیشرفته آشنا شوند و سپس نرم افزار GIS  را به صورت کاربردی در شهرسازی بیاموزند و سپس پایتون را در جی آی اس به کار بگیرند.

ایجاد تمایز بین شهرساز واقعی  و شهرساز اسمی

همانطور که می دانید شهرسازی و زیرمجموعه های آن مثل برنامه ریزی شهری و طراحی شهری و مدیریت شهری و ... رشته هایی هستند که ممکن است توسط سایر رشته ها به عنوان رشته دوم در مقاطع بالاتر انتخاب شود و شما شهرسازان بهتر میدانید که آموزش های در مقطع کارشناسی شهرسازی بسیار مهم و اساسی هستند و یک نفر نمی تواند بدون گذراندن مقطع کارشناسی در شهرسازی، خود را شهرساز بداند و یا بد تر از آن وقتی است که یک نفر با رشته کاملا غیر مرتبط در بخش شهرسازی شهرداری کار میکند! و جالب اینجاست که خود را شهرساز می داند ولی با همه شهرسازان دشمن است![شهرسازی علم میان رشته ایست

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

نیاز جامعه شهری به اپلیکیشن ها و نرم افزار های شهرسازی

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

 

پایتون و GIS

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

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

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

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

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

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

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

 

 

طبق تصویر زیر پایتون یکی از محبوب ترین زبان های برنامه نویسی دنیا است و طبق آخرین نظر سنجی، همه جهان در حال یادگیری پایتون هستند و بیشترین آمار مربوط به پایتون است!

Wanted Languages

 

برنامه‌هایی که کاملاً یا بخشی از آن‌ها با پایتون نوشته شده‌است:

اینستاگرام (Instagram): نرم‌افزار اشتراک‌گذاری تصاویر و ویدیوها
بیت‌تورنت (نرم‌افزار) (BitTorrent): نرم‌افزار کلاینت برای فایل‌های به اشتراک گذاشته شدهٔ (p2p) توسط پروتکل بیت‌تورنت
چندلر (Chandler): مدیر اطلاعات شخصی شامل تقویم، میل، کارهای روزانه، یادداشت‌ها و…
Civilization IV: یک گیم کامپیوتری بر مبنای پایتون که از boost.python استفاده می‌کند
میلمن (Mailman): یکی از معروفترین نرم‌افزارهای مرتبط با ایمیل
کمبیلو (Kombilo): مدیر پایگاه داده و مرورگر بازی‌های go
موین‌موین (MoinMoin): یکی از قدرتمندترین و معروفترین ویکی‌های موجود
پلون (Plone): یک ابزار مدیریتی محتوایی اپن سورس، قدرتمند و کاربر پسند
پورتاژ (Portage): قلب توزیع جنتو. یک مدیر بستهای سیستم لینوکس
زوپ (zope): یک پلتفورم شیء گرای مبتنی بر وب. زوپ شامل یک سرور نرم‌افزار به همراه پایگاه داده شیء گرا و یک رابط مدیریتی درونی مبتنی بر وب می‌باشد
اس‌پی‌ای (SPE): یک IDE رایگان، اپن سورس برای سیستم‌عامل‌های ویندوز، لینوکس، مک که از wxGlade(طراحی رابط کاربر),PyChecker (دکتر کد) (Blender(3D پشتیبانی می‌کند
یام (Yum): یک برنامه مدیریت بسته متن‌باز برای توزیع‌های سازگار با آرپی‌ام.
آباکوس(Abaqus):نرم‌افزار شبیه‌سازی با روش المان محدود که امکان اسکریپت‌نویسی به زبان پایتون را به کاربر می‌دهد.

لیست سایت هایی که از زبان پایتون در آنها استفاده شده است
لیست سایت هایی که از زبان پایتون در آنها استفاده شده است

پایتون روی هر سیستم عامل و به ویژه بیشتر سیستم عامل‌های کوچک‌تر اجرا می‌شود. بسیاری از کتابخانه‌های مهم و خدمات مبتنی بر 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 و استخراج داده از وب؛ توسط ۳۲ تا ۳۵ درصد از توسعه دهندگان مورد بررسی، استفاده می‌شوند. حدود ۴۹ درصد از توسعه دهندگان، از پایتون برای توسعه سامانه های تحت وب استفاده می کنند. سایر موارد در نمودار زیر قابل مشاهده می باشد.

پایتون در GIS

استفاده از پایتون در GIS طی دو دهه گذشته رو به افزایش نهاده است. از زمان معرفی نسخه ۲ از پایتون در سال ۲۰۰۰ تا کنون، پایتون نه تنها در نرم افزارهای تجاری GIS نظیر ArcGIS، بلکه در نرم افزارهای GIS متن باز نظیر QGIS و GRASS مورد استفاده قرار گرفته است. امروزه پایتون زبانی است که به صورت گسترده توسط کاربران GIS و برنامه نویسان GIS مورد استفاده قرار گرفته است. شرکت های بزرگ نظیر Esri خیلی سریع به سمت استفاده از این زبان در نرم افزارهای تجاری خود حرکت کرده اند تنها به این خاطر که پایتون یک زبان نسبتا ساده است که توسط کاربران زیادی مورد پذیرش قرارگرفته است.

پایتون می تواند هم به عنوان یک زبان اسکریپت نویسی و هم به عنوان یک زبان برنامه نویسی شی گرا مورد استفاده قرار گیرد. ویژگی اسکریپت نویسی آن به کاربران GIS این امکان را می دهد که در نرم افزارهای GIS نظیر ArcGIS یا QGIS به سادگی قابلیت های نرم افزار را با نوشتن یک اسکریپت پایتون، توسعه دهند. همچنین برنامه نویسان می توانند از این زبان برنامه نویسی شی گرا استفاده کنند و یک نرم افزار را از صفر پیاده سازی نمایند.

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

 

چرا پایتون آینده GIS است؟

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

 

برنامه نویسی GIS دیگر محدود به زبان خاصی نیست

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

 

پایتون فراتر از یک ابزار اسکریپت نویسی است

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

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

پایتون قوی تر از آن است که فکر می شود

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

حرکت نرم افزارهای GIS به سمت نسل سوم پایتون

نرم افزارهای GIS بزرگ فعلی، به سمت نسخه پایتون ۳ کشیده شده اند. در پایتون نسخه ۳، تغییرات اساسی رخ داده است به نحوی که کتابخانه هایی که برای نسخه ۲ آماده شده اند می بایست برای نسخه ۳ نیز آماده شوند. در وهله اول شاید این یک عامل بازدارنده برای حرکت به سمت پایتون باشد اما وقتی می بینیم که شرکت های بزرگ فعال در صنعت GIS (نظیر شرکت Esri) به سمت نسخه سوم پایتون حرکت کرده اند و به استفاده از نسخه سوم پایتون در GIS استقبال نشان داده شده است، خیالمان راحت تر می شود که آینده GIS می تواند با پایتون گره خورده باشد.

گرایش جامعه GIScience به پایتون

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

کتابخانه های مورد استفاده پایتون در gis

 

کنفرانس GeoPython

کنفرانس GeoPython، رویدادی است که از سال ۲۰۱۵ توسط موسسه ژئوماتیک دانشگاه هنر و علوم کاربردی شمال غرب سوییس و انجمن PyBasel به صورت سالانه برگزار می شود. شکل گرفتن رویداد سالانه GeoPython نشانه عزم جامعه برای استفاده از پایتون در GIS است. پنجمین کنفرانس GeoPython به دلیل وجود ویروس کرونا در سال 2021 حدود مات آگوست برگزار خواهد شد.

GeoPython 2020 and COVID-19

GeoPython 2020 and COVID-19[/caption]

 

متن باز بودن در خون پایتون است

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

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

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

موبایل GIS با پایتون

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

mobile GIS

 

کلاس آنلاین آموزش پایتون:

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

جهت ثبت نام و شرکت در دوره یا پیش ثبت نام و رزرو اینجا کلیک کنید و فرم مروبطه را تکمیل نمایید

و یا با شماره 09128989801 تماس حاصل فرمایید

ثبت نام

 

 

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی