آموزش برنامه نویسی GIS با پایتون (2)

برنامه نویسی در GIS :آیا برای حرفه ای شدن در GIS باید نحوه کدنویسی را بدانم؟

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

دوره-آموزش-حرفه-ای-gis

از طرف دیگر، اگر شما از آن دسته افرادی هستید که دوست دارید زیر کاپوت خود را بچرخانید و به اطراف بچرخید تا ببینید اوضاع چگونه کار می کند. یا اگر از انجام مکرر همان کارهای پیش پا افتاده اذیت می شوید، مطمئناً باید به یادگیری کدنویسی فکر کنید. این کار ارزش شما را برای کارفرمایتان بسیار افزایش می دهد و شما را از سال ها ناامیدی نجات می دهد. بهترین از همه، سرگرم کننده است!!!! و همکارانتان وقتی به آنها بگویید “من می توانم آن را برای شما خودکار کنم!”

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

یک بسته GIS دسکتاپ مانند ArcGIS یا QGIS مجموعه ابزاری برای پاسخگویی به سوالات فضایی است. به همان اندازه که قدرتمند هستند، هیچ راهی وجود ندارد که توسعه‌دهندگان بتوانند هر سوالی را پیش‌بینی کنند و راه‌حل‌های ساده و خارج از جعبه را ارائه دهند. اگر به خانه نیاز دارید، می توانید یک خانه پیش ساخته را به صورت کیت سفارش دهید و با کمی دردسر آن را کنار هم قرار دهید. اگر نیازهای شما را برآورده کند خوب است. اما اکثر سازندگان به سرعت با موقعیت هایی مواجه می شوند که در آن باید تنظیمات انجام شود. ممکن است به دلیل اندازه، شکل یا توپوگرافی زمین یا به نیاز مشتری باشد. شما می توانید در ساخت خانه های پیش ساخته و نادیده گرفتن مشتریانی که چیزی فراتر از آنچه شما می خواهید انجام دهید، شغلی ایجاد کنید. با این حال، کسی قرار است یاد بگیرد که چگونه این نیازها را برآورده کند،

پایتون با GIS

چرا برنامه؟

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

  • تحلیلی
  • اتوماسیون
  • رابط های کاربری

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

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

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

بعداً این خط پرسش به یک برنامه دکترا منتهی شد که بر روش‌های آماری برای تجزیه و تحلیل الگوهای حرکت حیوانات به‌عنوان یک مسیر خطی، به جای مجموعه‌ای از نقاط غیرمرتبط تمرکز داشت. Esri به تازگی ArcGIS 8.0 را منتشر کرده بود و نیاز به یادگیری Visual Basic و ArcObjects داشت که مجموعه‌ای از ابزارهای قدرتمندتر از Avenue بود. اما هنوز فقط ابزار بود. در آن زمان هیچ کس حتی این سؤال را نپرسیده بود، چه رسد به اینکه آن را حل کند. این پروژه عنصر زمان را به عنوان مختصات 3 برای هر راس معرفی کرد که با ذخیره زمان در مختصات z توانستم این کار را انجام دهم. البته، این همچنین مستلزم نوشتن تمام کدهای خودم بود که درک می کرد چگونه مختصات z را به عنوان زمان تفسیر کند تا تجزیه و تحلیل من را انجام دهم.

پایتون با GIS

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

دوره-آموزش-حرفه-ای-gis

 

اتوماسیون

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

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

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

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

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

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

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

پایتون با GIS

من در پروژه دیگری درگیر بودم که شامل یک معدن پیشنهادی بود. بخشی از این تلاش برای ارزیابی تغییرات زیستگاه ماهی ناشی از تغییرات رژیم جریان در رودخانه های مجاور به دلیل عملیات معدنکاری بود. شرکت دیگری در حال تعیین این بود که این تغییرات چه خواهد بود. هنگامی که ما در نهایت آن اعداد را دریافت کردیم و من روی ارزیابی تأثیرات تحت یک سناریو کار کردم، متوجه شدم که می توانم محاسبات را برای هر سناریویی با مجموعه ای از داده های جریان به طور خودکار انجام دهم. رئیسم به من گفت که مزاحم نباشم زیرا اینها “اعداد نهایی” هستند و تغییر نمی کنند. من او را نادیده گرفتم زیرا ترجیح می‌دهم کد بنویسم تا محاسبات صفحه‌گسترده عادی را انجام دهم و تجربه باعث شده است که نسبت به مفهوم اعداد “نهایی” تردید داشته باشم. دو هفته بعد، او به من گفت که اشتباهی در شماره‌های جریان اصلی که دریافت کرده‌ایم وجود داشته است و از من پرسید که چقدر طول می‌کشد تا آنالیز را دوباره انجام دهیم. در ابتدا 2 هفته طول کشید و به او گفتم 30 دقیقه دوباره این کار را انجام دهم. بعداً، اعداد مجدداً چندین بار تغییر کردند زیرا پروژه مراحل NEPA را طی کرد و رئیس من بسیار خوشحال بود که می توانم مجموعه جدیدی از اعداد را به سرعت اجرا کنم.

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

رابط های کاربری

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

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

در بسیاری از برنامه های GIS، داده ها بر روی یک سرور مرکزی ذخیره می شوند و مشتریان مختلف می توانند به آن دسترسی داشته باشند. کلاینت‌ها می‌توانند یک نرم‌افزار GIS دسکتاپ کاملاً کاربردی مانند ArcMap یا QGIS باشند، همچنین می‌توانند صفحات وب، برنامه‌های کاربردی تلفن همراه و/یا رابط‌های سفارشی نوشته شده در پایتون، ویژوال بیسیک یا برخی از زبان‌های برنامه‌نویسی دیگر باشند. یک رابط همچنین می تواند یک افزونه سفارشی برای یک برنامه دسکتاپ GIS موجود باشد.

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

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

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

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

کار اخیر دیگر شامل توسعه داده های تالاب برای یک منطقه بزرگ از تفسیر هوایی است. من منطقه را به بیش از 60000 بخش تقسیم کردم، که هر یک از این بخش ها، ناحیه ای از تصاویر قابل مشاهده در یک صفحه کامپیوتر را در مقیاس 1:6000 نشان می دهد. به منظور اطمینان از اینکه هر قسمت از منطقه مشاهده شده است، رابطی ایجاد کردم که پس از پایان یافتن جستجوی تالاب ها، به طور خودکار از یک بخش به بخش بعدی منتقل می شود. پس از علامت‌گذاری به‌عنوان کامل، داده‌ها به‌روزرسانی شدند تا دوباره مورد بازبینی قرار نگیرند. مترجمان همچنین گزینه ای داشتند که آن را به عنوان «نامشخص» علامت گذاری کنند و سؤالی را که در مورد تفسیر خود داشتند وارد کنند. سپس مدیران پروژه می‌توانند تفاسیر مشکوک را بررسی کنند و ببینند مترجمان چه مسائلی دارند و در مورد نحوه رسیدگی به آنها تصمیم بگیرند. مدیران پروژه همچنین می توانستند بلافاصله ببینند چه مقدار از منطقه و توسط چه کسی تکمیل شده است. هر یک از این تالاب ها نیز طبقه بندی Cowardin را دریافت کردند. سیستم Cowardin یک سیستم کدگذاری سلسله مراتبی است که در آن کدهای موجود در هر سطح به آنچه در سطح قبلی کدگذاری شده است بستگی دارد. به عنوان مثال، رودخانه ها دارای مجموعه ای متفاوت از دریاچه ها هستند. به منظور کاهش خطاها، رابط کد را بر اساس مجموعه ای از منوهای کشویی ساخت و هر منو فقط شامل گزینه های معتبر بر اساس انتخاب های قبلی بود. این سیستم مقدار زیادی از خطاها و زمان را در فرآیند QA/QC حذف کرد. سیستم Cowardin یک سیستم کدگذاری سلسله مراتبی است که در آن کدهای موجود در هر سطح به آنچه در سطح قبلی کدگذاری شده است بستگی دارد. به عنوان مثال، رودخانه ها دارای مجموعه ای متفاوت از دریاچه ها هستند. به منظور کاهش خطاها، رابط کد را بر اساس مجموعه ای از منوهای کشویی ساخت و هر منو فقط شامل گزینه های معتبر بر اساس انتخاب های قبلی بود. این سیستم مقدار زیادی از خطاها و زمان را در فرآیند QA/QC حذف کرد. سیستم Cowardin یک سیستم کدگذاری سلسله مراتبی است که در آن کدهای موجود در هر سطح به آنچه در سطح قبلی کدگذاری شده است بستگی دارد. به عنوان مثال، رودخانه ها دارای مجموعه ای متفاوت از دریاچه ها هستند. به منظور کاهش خطاها، رابط کد را بر اساس مجموعه ای از منوهای کشویی ساخت و هر منو فقط شامل گزینه های معتبر بر اساس انتخاب های قبلی بود. این سیستم مقدار زیادی از خطاها و زمان را در فرآیند QA/QC حذف کرد.

دوره-آموزش-حرفه-ای-gis

چه زبانی را باید یاد بگیرید؟

اگر تصمیم گرفته‌اید که کدنویسی برای شما مناسب است و می‌خواهید چگونه یاد بگیرید، گام بعدی این است که تصمیم بگیرید که کدام زبان را یاد بگیرید. اگر 5 سال پیش از من می پرسیدید، ویژوال بیسیک را توصیه می کردم تا بتوانید افزونه هایی را برای ArcGIS توسعه دهید. اگرچه ESRI برخی از API ها را از طریق پایتون در کتابخانه های داده و مکانی خود منتشر کرده بود، من آنها را محدود می دانستم. ArcGIS از ArcObjects ساخته شده است و رابط‌های موجود برای ArcObjects از طریق Visual Basic اساساً به شما این امکان را می‌دهد که کل ArcGIS را بازسازی کنید و بنابراین شما تقریباً در کاری که می‌توانید انجام دهید نامحدود بودید. به طور خاص، Visual Basic و ArcObjects به شما این امکان را می‌دهند که فرم‌های ورود داده‌های خود را ایجاد کنید، چیزی که در پایتون در دسترس نبود، به جز از طریق رابط ابزار geoprocessing تا حدودی بد.

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

پایتون

با این حال، از آن زمان چندین چیز تغییر کرده است. به نظر می رسید ESRI برای مدتی از ArcObjects دور شده و به سمت ArcPy Python API خود می رود، اما ArcGIS هنوز از ArcObjects ساخته شده بود. انتشار ArcGIS Pro این حرکت را یک قدم جلوتر برد. ArcGIS Pro فقط از Python پشتیبانی می کرد و به نظر می رسد ArcObjects را به طور کلی رها کرده است. علاوه بر این، در طول این مدت، مزایای بسیاری از QGIS را کشف کردم و شروع به استفاده از آن در بسیاری از پروژه‌ها کردم. QGIS همچنین امکان اسکریپت و پلاگین های پایتون را بدون پشتیبانی از VisualBasic می دهد.

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

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

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

امروز، توصیه من این است که … بستگی دارد. من احتمالاً VisualBasic یا ArcObjects را دیگر به کسی توصیه نمی کنم. اگر در زمینه تحقیق کار می کنید و داده های مکانی خود را با اعداد پرقدرت انجام می دهید، من Python را توصیه می کنم. پایتون به شما این امکان را می‌دهد که از قابلیت‌های 64 بیتی و چند رشته‌ای پردازنده‌های خود بهره کامل ببرید و حتی در صورت نیاز به قدرت محاسباتی عظیم، رایانه‌ها را با هم خوشه‌بندی کنید. اگر اصول اولیه پایتون را بدانید، می توانید پلاگین هایی برای ArcGIS، ArcGIS Pro و QGIS بنویسید. شما همچنین می توانید برنامه های کاربردی وب را با استفاده از چارچوب جنگو بنویسید، اگرچه هنوز باید HTML، CSS و جاوا اسکریپت را برای قسمت جلویی بدانید.

اگر عمدتاً علاقه مند به ایجاد رابط برای داده های GIS خود برای کاربران راه دور از طریق اینترنت هستید، من بر جاوا اسکریپت تمرکز می کنم. چندین API نگاشت جاوا اسکریپت منبع باز عالی مانند Leaflet و OpenLayers موجود است. Google maps API منبع باز نیست اما چندین مزیت نیز دارد. اگر قرار است با اکوسیستم ESRI سروکار داشته باشید، JavaScript API آنها همچنین دسترسی به داده های ذخیره شده در فرمت های سازگار با ESRI را فراهم می کند. کتابخانه Turf.js و چندین کتابخانه دیگر به جاوا اسکریپت توانایی انجام تحلیل فضایی روی کلاینت را می دهند.

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

PostGIS رایج ترین پایگاه داده ای است که از نظر فضایی فعال در دنیای منبع باز است. پسوند ArcSDE ESRI با چندین پایگاه داده تجاری رایج و منبع باز کار می کند. اکثر پایگاه‌های داده دارای سطحی از قابلیت فضایی هستند، اگرچه در سطح PostGIS یا ArcSDE نیستند. اگر نیازهای شما ساده است، حتی می توانید داده های مکانی را در یک فیلد متنی به عنوان GeoJSON ذخیره کنید. NoSQL یا پایگاه های داده اسنادی مانند MongoDB و CouchDB می توانند GeoJSON را به صورت بومی ذخیره کنند.

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

توصیه من

با این حال، برای 100٪ موارد پاسخ درستی وجود ندارد. من کدی را برای تجزیه و تحلیل در جاوا اسکریپت نوشته امزیرا می‌خواستم آن را از طریق وب برای بسیاری از مردم در دسترس قرار دهم، و تجزیه و تحلیل آن خیلی محاسباتی فشرده نبود. من هیچ رابط کاربری در پایتون ننوشته ام، اما می توانید از pyQt یا wxPython استفاده کنید. با این حال، اگر امروز از صفر شروع می کردم، با فناوری های مبتنی بر وب جاوا اسکریپت و PostGIS شروع می کردم. مگر اینکه واقعاً اعداد را فشرده انجام دهید، این پشته فناوری بیشترین سود را برای شما به ارمغان می آورد و بیشترین سود را برای کارفرمای شما فراهم می کند. اگر به توانایی بیشتری نسبت به آنچه که از طریق اینترنت ارائه می شود نیاز دارید، همچنین می توانید یک افزونه Python برای QGIS بنویسید که به همان داده ها دسترسی خواهد داشت. و از آنجایی که QGIS رایگان است، هرکسی می‌تواند نرم‌افزار را دانلود کند، افزونه شما را نصب کند و حتی در صورت لزوم به داده‌های PostGIS شما متصل شود.

یک مزیت اضافی نوشتن پلاگین در QGIS این است که اگر افزونه هایی را برای محصولات ESRI بنویسید، تقریباً به ناچار متوجه خواهید شد که کد شما در نسخه های بعدی اجرا نخواهد شد. هنگامی که این اتفاق می افتد، شما باید نرم افزار خود را ارتقا دهید تا افزونه خود را ارتقا دهید و هنگامی که این کار را انجام دادید، فقط برای پشتیبانی از کلاینت هایی که هنوز ارتقاء نداده اند و ممکن است با آن مواجه شوید، به یک رایانه جداگانه با نسخه قدیمی تر ArcGIS نیاز دارید. محدودیت‌های مجوز و غیره. و مشتریان به ندرت می‌خواهند برای ارتقای نرم‌افزاری که 3 سال پیش برایشان نوشته‌اید، به شما پول پرداخت کنند. همانطور که هر کسی که افزونه های ESRI را نوشته است می تواند به شما بگوید این یک سردرد بزرگ می شود. اگر افزونه‌های QGIS بنویسید، همه این مشکلات به سادگی برطرف می‌شوند، زیرا پلاگین‌های QGIS عموماً سازگار هستند.

دوره-آموزش-حرفه-ای-gis

چه طور باید شروع کرد

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

هنگامی که اصول اولیه را دارید، گام بعدی این است که تصمیم بگیرید به کدام کتابخانه های مکانی نیاز دارید و/یا استفاده می کنید. اگر مسیر پایتون را انتخاب کنید، به این معنی است که باید بین ArcPy، pyQGIS یا GeoDjango (اگر می‌خواهید از پایتون برای دسترسی به وب استفاده کنید) یکی را انتخاب کنید. اگر مسیر جاوا اسکریپت مبتنی بر وب را انتخاب کنید، باید انتخاب کنید که از کدام API نقشه برداری استفاده کنید (Leaflet، OpenLayers، Google Maps یا ESRI)، آیا باید از Turf.js برای تجزیه و تحلیل فضایی استفاده کنید، و اینکه آیا برنامه شما این کار را انجام خواهد داد. نیاز به سرور پایگاه داده اگر به سرور پایگاه داده نیاز دارید، باید انتخاب کنید که از کدام پایگاه داده و پسوند فضایی و همچنین زبان برنامه نویسی سمت سرور استفاده کنید. برای ساده نگه داشتن کارها، توصیه می کنم قبل از حرکت به سمت فناوری های دیگر، اصول اولیه را با PHP و PostGIS یاد بگیرید.

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

7 نظرات

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