خودکار کردن پردازش ها با Model Builder و Python عنوان پستی است که تیم تحقیقاتی دکتر سعید جوی زاده با شما به اشتراک می گذارد.امیدواریم که این مطالب بتواند شما را در یادگیری نرم افزار مربوطه کمک شایانی کند.
1) منظور از Model Builder چیست؟
– قابلیتی است در ArcGIS Pro که با استفاده از آن می توان چندین ابزار موجود در ArcToolbox (که در یک تحلیل به آنها نیاز است) را با هم ترکیب کرده و ابزاری جدید با تعدادی پارامتر محدود به دست آورد که با اجرای آن به راحتی میتوان تحلیل موردنظر را انجام داد.
– محیط Model Builder به صورت گرافیکی و آسان امکان ترکیب ابزارها را فراهم کرده و هیچ نیازی به برنامه نویسی در این محیط وجود ندارد.
2) مدل پردازش مکانی چیست؟
– خروجی Model Builder را اصطلاحا مدل پردازش مکانی گویند. این مدل را می توان به صورت یک ابزار به ArcToolbox اضافه کرده و مورد استفاده قرار داد.
– مدل پردازش مکانی، شامل ابزارهای پردازش مکانی، پارامترها (ورودی ها وخروجي ها)، تنظیمات و اتصالات می باشد. برای نمونه در شکل زیر، دو ابزار Buffer و Clip به یکدیگر متصل شده اند و یک مدل که حاصل ترکیب این دو ابزار است ایجاد شده است.
شکل (12-1): نمونه ای از یک مدل پردازش مکانی در محیط Model Builder
– ابزارهای پردازش مکانی (که در ArcToolbox در دسترس هستند)، مدل های پردازش مکانی که قبلا ساخته شدهاند، اسکریپت های Python و تکرار کننده ها را می توان در یک مدل پردازش مکانی مورد استفاده قرار داد.
– مدل های پردازش مکانی می توانند ساده و یا پیچیده باشند.
– مدل پردازش مکانی در پنجره Model Builder که رابط کاربری بسیار ساده ای دارد، تهیه و تنظیم می شود.
– مدل های پردازش مکانی را می توان با نرم افزار ArcGIS Desktop (ArcMap و ArcCatalog) و یا با ArcGIS Pro تهیه کرد. این مدل ها را نمی توان خارج از این نرم افزارها اجرا نمود.
3) اسکریپت پایتون چیست؟
– کدهای نوشته شده توسط زبان برنامه نویسی Python را گویند که برخلاف مدلهای پردازش مکانی می توان آنها را در نرم افزارهای دیگر و یا به طور مستقل از نرم افزارArcGIS Desktop یا ArcGIS Pro اجرا کرد. در شکل زیر، نمونه ای از یک اسکریپ پایتون آورده شده که برای ArcGIS نوشته شده است.
شکل (12-2): نمونه ای از یک اسکریپ پایتون که برای ArcGIS نوشته شده است
– اسکریپ بالا، ابتدا با چند خط توضیح شروع می شود که اسکریپ را معرفی می کند (توضیح کلی در مورد اسکریپت، هدف و تهیه کننده اسکریپت). خط بعد، دستور ورود (Iport) اسکریپت به نرم افزار ArcGIS Pro را نشان می دهد. سپس چند خط توضیح و پس از آن متغیر Workspace معرفی می شود که مسیر فراخوانی داده ها و ذخیره نتایج را مشخص می کند. در آخر، ابزار Union در این اسکریپ اجرا میشود.
4) مزایای اسکریپت پایتون در مقایسه با مدل پردازش مکانی چیست؟
– اسکریپت های پایتون به نرم افزار ArcGIS محدود نمی شوند و در بسیاری از نرم افزارها از قبیل Excel، SharePointr، AutoCad، Photoshop، SQL Server و … می توان از آنها استفاده کرد. این بدان معناست که اسکریپت های پایتون را می توان توسط نرم افزارهای مختلف اجرا کرد.
– برای اجرای اسکریپت های پایتون که در آنها از ابزارهای ArcGIS استفاده شده است، نیازی به باز کردن نرم افزار ArcGIS نیست و فقط کافی است نرم افزار ArcGIS بر روي رایانه کاربر نصب باشد. می توان یک جدول زمانی تهیه کرد و با به رهگیری از جدول زمانبندی سیستم عامل، کاری کرد که اسکریپ موردنظر به طور خودکار در زمان های از قبل تعیین شده اجرا شود و نتایج را در مسیر موردنظر ذخیره کند.
– با استفاده از اسکریپ پایتون میتوان ابزارهای پردازش مکانی کاملا سفارشی ایجاد کرد و آنرا به محیط ArcToolbox اضافه نمود.
5) چه تفاوتهایی بین مدل پردازش مکانی، اسکریپت پایتون و فرایندها وجود دارد؟
هرچند که هر سه مورد برای استانداردسازی و خودکار کردن پردازش ها به کار میروند، اما تفاوت هایی نیز بین آنها وجود دارد که در جدول (1-12) خلاصه شده است.
– همان گونه که در این جدول مشاهده می کنید، فرایندها نوعی گردش کار متشکل از گام های مختلف هستند و در آنها میتوان از مدلهای پردازش مکانی و اسکریپت های پایتون نیز استفاده کرد. اما نمی توان در مدل های پردازش مکانی و اسکریپت های پایتون از فرایندها استفاده نمود.
6) کاربردهای مدل های پردازش مکانی کدامند؟
الف) استفاده از مدل در عملیات های تکراری: برای نمونه اگر هر روز بالغ بر 50 لایه بُرداری مربوط به خیابانهای شهرهای مختلف را بر اساس محله های شهری برش می زنید و حریم این خیابانها را تهیه می کنید، می توان مدلی ساخت که ابزارهای Select By Location، Clip و Buffer را با هم تلفیق کرده و ابزار جدیدی تهیه کرد که سریع تر و راحت تر عملیات های تکراری را ممکن سازد.
ب) انجام عملیات بر اساس یک فلوچارت: در برخی موارد لازم است یک پردازش مکانی را بر اساس فلوچارت از قبل تعیین شدهای انجام داد که توسط یک شرکت یا سازمان
جدول (12-1): تفاوت عملکرد فرایند، مدل پردازش مکانی و اسکریپ پایتون
اسکریپت پایتون | مدل پردازش مکانی | فرایند | پارامترها |
بله | بله | بله، در یک گام از فرایند میتوان به طور خودکار یک ابزار پردازش مکانی را اجرا کرد | اجرای خودکار یک ابزار پردازش مکانی |
بله | بله | بله | اجازه به کاربر برای وارد کردن داده به ابزار قبل از اجرا |
بله | بله | خیر | اجرای خودکار و متوالی چند ابزار پردازش مکانی |
خیر | بله | بله | فراهم کردن گردش کار مستند |
بله | خیر | خیر | اجرا در خارج از ArcGIS Pro |
بله | خیر | خیر | تلفیق با سایر نرم افزارها |
بله | خیر | خیر | اجرا بر اساس یک جدول زمانی از قبل تعیین شده |
بله | خیر | خیر | نیاز به دانش قبلی در رابطه با برنامه نویسی |
تهیه شده و همه کارکنان ملزم به رعایت آن میباشند. برای نمونه ابتدا از یک فایل اکسل، لایه نقطهای چاههای یک منطقه به یک کلاس عارضه ژئودیتابیسی تبدیل می شود، سپس چاه هایی که عمق بیشتر از 90 متر دارند انتخاب شده و به کلاس عارضه جدیدی تبدیل می شوند؛ در مرحله بعد نام مالک این چاهها استخراج شده و نتیجه بهصورت یک فایل با فرمت html در محیط وب منتشر می شود. در یک مدل پردازش مکانی می توان ابزارهای لازم برای این کار را پشت سرهم قرار داد و ابزار جدیدی تهیه کرد که با ورود لایه چاههای یک منطقه تمامی مراحل را پیش برده و نتیجه را در محیط وب منتشر کند. این ابزار را می توان به همراه یک دستورالعمل ساده در اختیار سایر کارکنان شرکت یا سازمان که کارکنان آن حتی دانش GIS چندان بالایی ندارند نیز قرار داد. این کار نوعی استانداردسازی در فعالیتهای GIS یک شرکت یا سازمان نیز محسوب می شود.
7) اجزای مدل پردازش مکانی کدامند؟
– هر مدل از چند پردازش (ابزار، مدل از قبل تهیه شده، اسکریپت پایتون) متوالی تشکیل شده که هر کدام شامل ابزارهای متصل به هم است. این ابزارها می توانند ابزارهای پردازش مکانی (ابزارهای موجود در ArcToolbox)، مدلهای پردازش مکانی که از قبل ساخته شده اندو یا اسکریپت های پایتون باشند. هر کدام از اینها دارای متغیرهایی هستند که به عنوان ورودی یا خروجی عمل می کنند. در شکل زیر، دو پردازش (Buffer و Union) متصل به هم نشان داده شده است.
شکل (12-3): پردازش های متوالی در یک مدل پردازش مکانی
– متغیرها با بیضی های آبی (ورودی) و سبز (خروجی) نشان داده می شوند. خروجی یک پردازش میتواند ورودی پردازش دیگر باشد. در شکل بالا، خروجی پردازش Buffer، ورودی پردازش Union است.
– اتصال دهنده ها: اجزای مختلف مدل را به یکدیگر متصل می کنند و با پیکان های کوچک نشان داده می شوند.
8) انواع متغیر در مدل پردازش مکانی کدامند؟
الف) متغیرهای داده ای: شامل لایه های مختلف (برداری، رستری، TIN و..)، جداول
مستقل و فایل های متنی میشود. این متغیرها به رنگ آبی تیره در یک مدل مشخص میشوند.
ب) متغیر عددی: شامل اطلاعات اضافی است که یک پردازش (ابزار، مدل از قبل تهیه شده، و یا اسکریپ پایتون) برای اجرا به آن نیاز دارد. برای نمونه درمورد ابزار Buffer، مقدار فاصله حریم، یک متغیر عددی محسوب میشود. این متغیرها در یک مدل به رنگ آبی روشن مشخص می شوند.
ج) متغیر مشتقی: این متغیرها درواقع خروجی هر پردازش محسوب می شوند و با توجه به نوع پردازش میتوانند یک لایه جدید، جدول، نمودار و… باشند. این متغیرها با رنگ سبز در یک مدل مشخص می شوند.
در شکل زیر، انواع متغیرهای موجود در مدل پردازش مکانی نشان داده شده است.
شکل (12-4): انواع متغیرها در یک مدل پردازش مکانی
9) برای ذخیره سازی یک مدل پردازش مکانی چه اقداماتی باید انجام داد؟
– اگر کاربر بخواهد در زمان های آتی از یک مدل استفاده کرده و یا آنرا در اختیار دیگران بگذارد بایستی آنرا در یک جعبه ابزار سفارشی ذخیره کند. مدل های پردازش مکانی را نمی توان در جعبه ابزارهای سیستمی (که همراه با نصب ArcGIS Pro نصب میشوند) ذخیره کرد.
– به هنگام ساخت یک پروژه، ArcGIS Pro یک جعبه ابزار سفارشی (با فرمت .tbx) در محل ذخیره پروژه ایجاد می شود که محل مناسبی برای ذخیره مدل پردازش مکانی است. این جعبه ابزار به طور خودکار به پروژه مربوطه متصل است و در کادر Catalog میتوان به آن دسترسی داشت (شکل 12-5).
شکل (12-5): دسترسی به جعبه ابزار سفارشی و مدل پردازش مکانی در کادر Catalog
– جعبه ابزار سفارشی را میتوان در یک ژئودیتابیس نیز ایجاد کرد و مدل پردازش مکانی، اسکریپت های پایتون، لایه هاي مختلف، جداول و… را با هم در دسترس قرار داد (شکل 12-6).
-جعبه ابزار سفارشی با فرمت .tbx و سپس مدل پردازش مکانی را میتوان در هر پوشه دلخواه ایجاد نمود. این جعبه ابزار را میتوان در پروژه هاي مختلف و یا حتی توسط کاربران مختلف مورد استفاده قرار داد (شکل 12-7). چنین جعبه ابزاری حجم کمتری در مقایسه با نوع ژئودیتابیسی دارد (چون در یک ژئودیتابیس معمولا علاوه بر جعبه ابزار سفارشی، انواع داده های دیگر نیز ذخیره شده است). جعبه ابزار .tbx را به راحتی میتوان ایمیل کرد، در پروتوکل های انتقال فایل (FTP) قرار داد و یا در اکانت ArcGIS Online گذاشت.
شکل (12-6): ایجاد جعبه ابزار سفارشی در یک ژئودیتابیس و ذخیره مدل هاي پردازش مکانی در آن
شکل (12-7): ایجاد جعبه ابزار سفارشی در یک پوشه
10) مدل پردازش مکانی را چگونه می توان اجرا کرد؟
به سه روش می توان مدل پردازش مکانی را اجرا کرد:
الف) پس از اینکه یک مدل آماده اجرا شد، براي اجرای تمامی پردازش های موجود در مدل (با مطمئن شدن از فعال بودن سربرگ Model Builder در بالای روبان)، در روبان کافی است در گروه Run، بر روي دکمه Run کلیک کنید. در این حالت، تمامی پردازش هایی که آماده اجرا هستند، اجرا می شوند.
ب) برای اجرای هر پردازش به صورت مستقل از سایر پردازش ها، کافی است در مدل، بر روي پردازش موردنظر کلیک کنید تا فعال شود، سپس کلیک راست کرده و گزینه Run را انتخاب کنید. با استفاده از این روش می توان قبل از اجرای کامل مدل، هر پردازش را جداگانه امتحان کرد و ایرادات موجود در مدل سازی را متوجه شد.
ج) اجرای مدل به صورت یک ابزار با دوبار کلیک کردن بر روي آن در کادر Catalog: در این حالت تمامی پردازش ها با هم اجرا می شوند. البته در این حالت لازم است قبل از اجرا، پارامترهای مدل را تعریف کرد (در ادامه توضیح داده میشود).
11) منظور از تعاملی ساختن مدل پردازش مکانی چیست؟
– مدلی که تا کنون در مورد آن توضیح داده شد، بهگونهای است که سایر کاربران قادر به استفاده از آن نیستند. بنابراین لازم است پارامترهای مدل (ورودی ها، خروجی ها و سایر تنظیمات لازم) تعریف شوند و مدل پردازش مکانی به صورت یک ابزار در اختیار سایر کاربران قرار گیرد.
– سایر کاربران کافی است مدل مذکور را همانند یک ابزار در محیط ArcToolbox باز کرده و با معرفی پارامترهای ورودی و خروجی و سایر تنظیمات، آنرا اجرا کنند. میتوان یک دستورالعمل کوتاه نیز برای مدل تهیه کرد و در اختیار کاربران قرار داد.
– برای اینکه پارامترهای یک مدل را تعریف کنید کافی است در پنجره Model Builder، بر روي هر کدام از متغیرهای ورودی یا خروجی کلیک راست کرده و گزینه Parameter را انتخاب کنید. با انجام این کار، حرف لاتین P در کنار متغیر موردنظر درج میشود (شکل 12-8).
شکل (12-8): تعیین پارامترهای مدل
– وقتی پارامترهای مدل مشخص شدند، تمامی کاربران میتوانند ورودی ها وخروجی های دلخواه خود را تنظیم کنند و اجباری بر مثلا ذخیره نتایج در یک مسیر خاص وجود ندارد.
تمرين 17: اجرای یک مدل سادهاهدافدر سال های اخیر، ورود فاضلاب های خانگی به برخی از چاه های تامین آب فضای سبز در شهر شیراز منجر به افت کیفیت آب این چاه ها و آلودگی آنها به باکتری هایی از قبیل کلیفرم و اشرشیاکلی شده است. در این تمرین، با در اختیار داشتن موقعیت چاه های فضای سبز وکاربریهای مسکونی قسمتی از شهر شیراز، مدل پردازش مکانی را به گونه ای تهیه خواهید کرد که با دریافت لایه های اطلاعاتی لازم، حریم 500 متری چاهها را تهیه کرده و کاربری های مسکونی که داخل و خارج از این حریم واقع می شوند را مشخص کند. مراحل حل تمرین1) باز کردن فایل پروژه و پنجره Model Builder؛ 2) اضافه کردن پردازش ها به مدل؛ 3) اجرای پردازش های دلخواه در مدل؛ 4) اجرای تمامی پردازش های مدل با ابزار Run: 5) اجرای تمامی مدل در کادر Catalog: 6) تعاملی ساختن مدل؛ 7) اجرای مدل از طريق کادر Catalog. حل تمرين1- باز کردن فایل پروژه و پنجره Model Builder:1) برنامه ArcGIS Pro را باز کرده و پروژه Ex17 را از مسیر زیر فراخوانی کنید: C:\Exercises\Ex17\Data 2) این پروژه دارای یک نقشه با عنوان «مطالعات کیفیت آب»، متشکل از چهار لایه «چاه»، «محدوده_طرح»، «فضای_سبز» و «کاربری_مسکونی» می باشد. دو نقشه پایه با عناوین «World Topographic Map» و «World Hillshade» نیز در این پروژه گنجانده شده است.
3) پروژه را با عنوان Ex17-Result، در مسیر C:\Exercises\Ex17\Result ذخیره کنید. 4) در کادر Catalog، گروه Toolboxes را باز کرده و بر روي جعبه ابزار Ex17.tbx کلیک راست کنید. گزینه New و سپس Model را انتخاب کنید تا پنجره یک مدل جدید در جعبه ابزار Ex17.tbx باز شود. بلافاصله محیط Model Builder نیز باز می شود و سربرگ جدید Model Builder به بالای روبان اضافه می شود.
2- اضافه کردن پردازش ها به مدل:1) با مطمئن شدن از فعال بودن سربرگ Model Builder، در روبان، در گروه Insert، بر روي دکمه Tools کلیک کنید تا کادر Geoprocessing در سمت راست پنجره Model Builder باز شود. 2) در کادر Geoprocessing، بر روي سربرگ Toolboxes کلیک کنید. در مجموعه ابزارها، جعبه ابزار Analysis و سپس دسته ابزار Proximity را باز کنید. ابزار Buffer را بگیرید و به پنجره Model Builder بکشید. 3) بدین ترتیب یک پردازش (Buffer) در مدل ایجاد میشود که فعلا فقط دارای یک خروجی است. پردازش ها در مدل پردازش مکانی به سه حالت دیده میشوند: «غیرآماده برای اجرا»، «آماده اجرا» و «اجرا شده». پردازشهای غیرآماده با رنگ خاکستری نشان داده میشوند و تا تمامی متغیرها و اتصالات به چنین پردازش هایی مشخص نشود، آماده اجرا نمیشود. در مورد پردازش Buffer، سه متغیر Input Feature Class، Buffer Distance و Output Feature Class را باید مشخص کرد تا آماده اجرا شود. 4) لایه «چاه» را از کادر Contents بگیرید و به پنجره مدل بکشید. بدین ترتیب متغیر ورودی Input Feature Class به پنجره مدل اضافه میشود. نشانگر موس را بر روي متغیر «چاه» قرار دهید تا علامت ظاهر شود. موس را فشرده نگه دارید و به سمت ابزار Buffer حرکت کنید و موس را رها کنید. در فهرست کوتاهی که باز میشود، بر روي گزینه Input Feature کلیک کنید تا بدین ترتیب متغیر «چاه» به عنوان ورودی به ابزار Buffer معرفی میشود.
5) در پنجره Model Builder، بر روي ابزار Buffer دوبار کلیک کنید تا پارامترهای آن نشان داده شود. در پنجره ابزار Buffer، در جعبه Outpu Feature Class مسیر ذخیره لایه خروجی نشان داده شده است که به طور پيشفرض بر روی C:\Exercises\Ex17\Data\Ex17.gdb تنظیم شده است. 6) در جعبه Distance، عدد 300 متر را تایپ کرده و در فهرست بازشونده Dissolve Type گزینه Dissolve all output features into a single feature را انتخاب کنید (با انتخاب این گزینه در لایه خروجی فقط یک عارضه ایجاد میشود که حریم 300 متری چاههای واقع در محدوده طرح را نشان می دهد. مسلما در جدول توصیفی این لایه فقط یک رکورد وجود خواهد داشت و در جاهایی که پلیگون های حریم با یکدیگر هم پوشانی دارند، ادغام صورت می گیرد). 7) بر روي دکمه Ok کلیک کنید. بدین ترتیب تمامی متغیرهای مدل، تعریف میشوند و متغیر ورودی با آبی کمرنگ، ابزار با رنگ نارنجی و متغیر خروجی با رنگ سبز مشخص می شوند. 8) در روبان، در گروه View، بر روي دکمه Auto Layout کلیک کنید تا اجزای مدل در یک راستا قرار گرفته و مرتب شوند. 9) در روبان، در گروه Model، بر روی دکمه Propertiesکلیک کنید تا پنجره Tool Properties: Model باز شود. در این پنجره، در کادر Name، عبارت «GreenSpacesProject» و در جعبه Label، عبارت «مدل آلودگی چاههای فضای سبز» را تایپ کنید (نام مدل باید به لاتین باشد و بین کلمات فاصله نباشد). 10) بر روي دکمه Ok کلیک کنید تا پنجره Tool Properties: Model بسته شود.
11) در روبان، در گروه Model، بر روي دکمه Save کلیک کنید تا تغییرات ایجاد شده در مدل ذخیره شود. 12) در بالای پنجره Model Builder، به نام مدل دقت کنید که به «مدل آلودگی چاه های فضای سبز» تغییر یافته است. 13) در کادر Geoprocessing، جعبه ابزار Analysis Tools و سپس دسته ابزار Overlay را باز کنید. 14) ابزار Union را بگیرید و به پنجره مدل بکشید. 15) غلتک وسط موس را بچرخانید تا پنجره مدل بزرگ و کوچک شود. 16) خروجی ابزار Buffer را به ابزار Union متصل کنید.
17) در مدل، بر روی ابزار Union کلیک کنید تا در پنجره Union، پارامترهای این ابزار نشان داده شود. در فهرست های بازشونده Input Features، لایه «Buffer_چاه» به عنوان اولین ورودی تعریف شده است. لایه «کاربری_مسکونی» را نیر به عنوان دومین ورودی انتخاب کنید. 18) بر روی دکمه Ok کلیک کنید تا پنجره Union بسته شود. 19) در روبان، در گروه View، بر روي دکمه Auto Layout کلیک کنید. هماکنون مدل آماده اجرا شده است. 20) بر روي علامت ضربدر در بالای پنجره Model Builder کلیک کنید تا این پنجره بسته شود.پروژه را ذخیره کنید.
3- اجرای پردازش های دلخواه در مدل:1) در بالای روبان، بر روي سربرگ View و در روبان، بر روی دکمه Catalog Pane کلیک کنید تا کادر Catalog در سمت راست پنجره نمایش باز شود. 2) در کادر Catalog، گروه Toolboxes و جعبه ابزار Ex17.tbx را باز کنید. در این جعبه ابزار، بر روی مدل «مدل آلودگی چاه های فضای سبز» کلیک راست کرده و گزینه Edit را انتخاب کنید تا پنجره Model Builder دوباره باز شود. 3) در مدل، بر روي ابزار Buffer کلیک کنید تا انتخاب شود. کلیک راست کنید و گزینه Run را انتخاب کنید تا ابزار اجرا شود. بلافاصله رنگ ابزار Buffer از نارنجی به قرمز تغییر پیدا کرده و پنجره موقتی کوچکی باز میشود که پیشرفت پردازش را نشان می دهد. پس از اتمام پردازش و مشاهده کلمه «Done» پنجره مذکور را ببندید. 4) در فضایی خالی از پنجره Model Builder کلیک کنید. در مدل به ابزار Buffer دقت کنید، یک سایه خاکستری رنگ در زیر آن ایجاد شده است. این بدان معنی است که پردازش موردنظر اجرا شده است.
5) به روش مشابه، در مدل بر روي ابزار Union کلیک راست کرده و گزينه Run را انتخاب کنید تا این ابزار اجرا شود. پس از اتمام پردازش، پنجره پیشرفت پردازش را ببندید. ملاحظه می کنید که ابزار Union نیز اجرا شده و در مدل، در زیر این ابزار، سایه های خاکستری ایجاد شده است.
4- اجرای تمامی پردازش های مدل با ابزار Run:1) در روبان، در گروه Run، بر روي دکمه Validateکلیک کنید. با انجام این کار مدل دوباره آماده اجرا می شود. در مدل به ابزارهای Buffer و Union دقت کنیدکه سایه های زیر آنها ناپدید شده است. 2) در روبان، در گروه Run، بر روي دکمه Run کلیک کنید تا تمامی پردازش های موجود در مدل یکی پس از دیگری اجرا شود. ابزار هر پردازش در زمان اجرا قرمز رنگ می شود. پس از اجرای مدل، در زیر ابزارهایی که اجرا شدهاند سایه های خاکستری رنگ ایجاد می شود. 3) پنجره مربوط به پيشرفت پردازش ها را ببندید.
4) در کادر Catalog، گروه Folder و سپس Data و ژئودیتابیس Ex17.gdb را باز کنید. ملاحظه میکنید که دو لایه با عناوین «Buffer_چاه» و «Union_Buffer_چاه» در این ژئودیتابیس ساخته شده است (درصورتی که لایه های مذکور را ندیدید، بر روي ژئودیتابیس Ex17 کلیک راست کرده و گزینه Referesh را انتخاب کنید).
5- اجرای تمامی مدل در کادر Catalog:1) در بالای پنجره Model Builder، بر روي علامت ضربدر کلیک کنید تا این پنجره بسته شود. در صورت باز شدن پیغام Model Builder، بر روي دکمه Yes کلیک کنید. 2) در کادر Catalog، گروه Toolboxes و سپس جعبه ابزار Ex17.tbx را باز کنید. بر روي مدل «مدل آلودگی چاههای فضای سبز» دوبار کلیک کنید. 3) ملاحظه می کنید که در کادر Geoprocessing، در سمت راست پنجره نمایش، مدل مذکور به صورت یک ابزار فاقد پارامتر باز میشود. در پایین کادر Geoprocessing، بر روی دکمه Run کلیک کنید تا مدل اجرا شود. 4) در بالای پنجره Geoprocessing، بر روي دکمه Close کلیک کنید تا کادر Catalog باز شود.
5) در کادر Catalog، گروه Folder و سپس Data و ژئودیتابیس Ex17.gdb را باز کنید. ملاحظه میکنید که فقط لایه «Union_Buffer_چاه» در این ژئودیتابیس ساخته شده است. بنابراین با اجرا کردن مدل از طریق کادر Geoprocessing، نتیجه نهایی مدل در مسیر ذخیره ساخته می شود. لایه «Buffer_چاه» به عنوان یک لایه حدواسط، در نظر گرفته شده و در مسیر خروجی دیده نمیشود. با اجرای مدل از طریق کادر Catalog، اگر قبلا لایه یا لایه های حدواسطی ساخته شده باشد، به طور خودکار از مسیر خروجی حذف خواهد شد. 6) فایل پروژه را ذخیره کنید. 6- تعاملی ساختن مدل:1) در کادر Catalog، گروه Toolboxes و سپس جعبه ابزار Ex17.tbx را باز کرده و بر روي «مدل آلودگی چاه های فضای سبز» کلیک راست کنید. گزینه Edit را انتخاب کنید تا پنجره Model Builder باز شود. 2) در پنجره Model Builder، بر روي خروجی ابزار Union کلیک راست کرده و گزینه Parameter را انتخاب کنید. ملاحظه می کنید که حرف لاتین P در کنار این متغیر نشان داده می شود.
3) متغیر «Union_Buffer_چاه»، خروجی ابزار Union، یک متغیر آشکاراست. متغیرهای دیگری نیز در مدل های پردازش مکانی وجود دارند که ممکن است در پنجره Model Builder دیده نشوند که آنها را متغیر پنهان گویند. برای نمونه در این تمرین، اندازه حریم چاه ها یک متغیر پنهان است که به ابزار Buffer ارتباط دارد. در پنجره مدل، بر روي ابزار Buffer کلیک راست کرده و گزینه Create Variable و سپس گزینه های From Parameter و Distance را انتخاب کنید. با انجام این کار، متغیر Distance از حالت پنهان خارج شده و در پنجره مدل نمایش داده می شود. 4) بر روي متغیر Distance کلیک راست کرده و گزینه Parameter را انتخاب کنید تا این متغیر نیز به عنوان پارامتر مدل تعریف شود.
5) در روبان، در گروه View، بر روي دکمه Auto Layout کلیک کنید تا اجزای مدل مرتب شوند.
6) در روبان، در گروه Run بر روي دکمه Validate کلیک کنید. 7) در روبان، در گروه Model بر روی دکمه Save کلیک کنید و پنجره مدل را ببندید.
7- اجرای مدل از طريق کادر Catalog:1) در کادر Catalog، بر روی «مدل آلودگی چاه های فضای سبز» دوبار کلیک کنید تا در کادر Geoprocessing، پارامترهای این مدل نشان داده شود. 2) در کادر Distance، عدد 250 را تایپ کرده و بر روي دکمه Run کلیک کنید. بدین ترتیب مدل مذکور همانند یک ابزار عمل کرده و نتیجه حاصله با عنوان «Union_Buffer_چاه» به کادر Contents اضافه میشود. پنجره مدل را ببندید (در صورت مشاهده پیغام Model Builder بر روی دکمه Save کلیک کنید) و در نقشه «مطالعات کیفیت آب» به عوارض لایه «Union_Buffer_چاه» دقت کنید. 3) پروژه را ذخیره کرده و ArcGIS Pro را ببندید. |
خودآزماییبا توجه به نتیجه حاصل از تمرین قبل، دو لایه جدید ایجاد کنید که یکی کاربری های مسکونی موجود در حریم 250 متری چاه ها و دیگری کاربری های مسکونی خارج از این حریم را نشان دهد.
|
12) کلیاتی در مورد زبان برنامه نویسی پایتون:
– پایتون یکی از زبان های برنامه نویسی است که می تواند در ArcGIS مورد استفاده قرار گیرید و تقریبا جایگزین زبان برنامه نویسی ويژوال بیسیک (VB) شده است. از ArcGIS Pro2.5 به بعد، این برنامه با نسخه پایتون 3.6.9 سازگاری دارد. این نسخه از پایتون، همراه با نصب ArcGIS Pro به طور خودکار نصب می شود.
– برنامه پایتون از طریق ماژول ArcPy با برنامه رابط برنامه نویسی (API) ArcGIS Geoprocessing ارتباط برقرار میکند. این بدان معناست که می توان از اسکریپت های پایتون در ایجاد و توسعه ابزارهای پردازش مکانی و یا خودکار کردن و جدول بندی آنها استفاده کرد.
– برخلاف Model Builder، اسکریپهای پایتون به نرمافزار ArcGIS محدود نمی شوند و میتوان آنها را در سایر نرم افزارها و حتی سیستم های عامل غیر از ویندوز نیز به کار برد.
– اسکریپت های پایتون را می توان در جعبه ابزارهای ArcGIS Pro و یا به صورت مستقل به صورت فایل هایی با فرمت .py ذخیره کرد. برخلاف زبان های برنامه نویسی از قبیل C++ یا ويژوال بیسیک، برای تهیه اسکریپت های پایتون به نرم افزار خاصی نیاز نیست و می توان آنها را در Notepad و یا Wordpad معمولی نیز نوشت. نرم افزارهای متعدد IDE (محیط توسعه یکپارچه) از قبیل PythonWin یا IDLE نیز وجود دارد که رایگان هستند و امکانات خوبی از قبیل کدها و کتابخانه ها آماده و ابزارهایی برای رفع خطاهای کدنویسی در آنها تعبیه شده است.
– پس از نصب ArcGIS Pro، برنامههای Python و IDLE به طور خودکار بر روي رایانه نصب می شوند. علاوه بر اينها، برنامه ArcGIS Pro یک پنجره خاص برای نوشتن اسکریپت های پایتون، اجرای ابزارها با کدهای پایتون و بارگذاری و مشاهده فایل های پایتون نیز در اختیار کاربر قرار می دهد.
13) یادداشت گذاری در پایتون چگونه انجام می شود؟
– در زمان نوشتن اسکریپت در پایتون بهتر است توضیحاتی در مورد کدها نوشته شود تا سایر کاربران نیز بتوانند متوجه شوند که هر کد به چه منظور نوشته شده و قرار است چه عملیاتی انجام دهد.
– در زبان پایتون، برای ایجاد یادداشت در بین کدها از علامت # استفاده میشود.
توضیحات کلی در مورد اسکریپت |
یادداشت هایی در مورد
هر بخش از اسکریپت |
شکل (12-8): یادداشتگذاری در اسکریپت پایتون
– وقتی در حین اجرا، برنامه پایتون به خطی میرسد که با# شروع میشود، این خط نادیده گرفته شده و خط بعدی اجرا می شود.
– معمولا چند خط اول اسکریپت پایتون به توضیحاتی کلی در مورد آن اسکریپ اختصاص داده میشود (از قبیل هدف، سازنده، زمان ساخت، نسخه ArcGIS Pro که قادر به اجرای اسکریپت موردنظر است و…).
– یادداشت گذاری در اسکریپت پایتون درواقع نوعی مستندسازی نیز محسوب می شود.
14) منظور از «متغیر» در اسکریپت پایتون چیست؟
– اسکریپت های پایتون نیز همانند مدل های پردازش مکانی دارای متغیر هستند.
– هر متغیر در اسکریپت پایتون دارای یک نام و یک مقدار است.
– مقادیر یک متغیر را میتوان در اسکریپت درج کرد (که اصطلاحا به آن کدگذاری سختمیگویند) و یا از سایر پردازش ها اخذ نمود. این مقادیر می توانند تابعی از ArcPy و یا ساير ماژول ها نیز باشند.
– برای نمونه می توان متغیر ورودی ابزار Buffer را به صورت زیر تعریف کرد:
In_buf_fc = “streams”
سپس می توان با ابزار Buffer، بهصورت زیر از این متغیر در اسکریپت پایتون استفاده کرد:
Buffer_analysis (In_buf_fc, “C:\Exercises\DataBases\ شهر تریپول.gdb \\Streams”,”200 Meters”, “FULL”, “ROUND”)
– زبان برنامه نویسی پایتون به حروف بزرگ و کوچک حساس است. بنابراین متغیری که به صورت Mapsize نامگذاری شده متفاوت با متغیر mapsize است.
در نامگذاری متغیرهای پایتون لازم است قواعد زیر نیز رعایت شود:
الف) نام متغیرها بایستی با حرف لاتین شروع شود و نه با عدد و رقم؛
ب) بین کلمات نیاید از فاصله یا کاراکترهای خاص استفاده کرد. تنها کاراکتر مجاز آندرلاین (_) است.
ج) در نامگذاری متغیرها نباید از کلمات کلیدی از قبیل Class، If، For، While، Return استفاده کرد.
15) محل بارگذاری و ذخیره داده ها در پایتون چگونه مشخص می شود؟
– محل ذخیره داده های ورودی و یا محل ذخیره داده های خروجی در ویندوز با کاراکتر \ مشخص میشود. برای نمونه:
C:\Exercises\DataBases
– در پایتون از کاراکتر \ برای نشان دادن ادامه یک خط دستور استفاده میشود و بنابراین نمیتوان از آن برای مشخص کردن مسیر ذخیره دادهها استفاده کرد.
– در پایتون برای مشخص کردن مسیر ذخیره از سه روش استفاده میشود:
الف) دو کاراکتر \
C:\\Exercises\\DataBases
ب) یک کاراکتر /
C:/Exercises/DataBases
ج) استفاده از \ و حرف لاتین r در ابتدای آدرس:
r”C:\Exercises\DataBases”
هرچند که می توان در یک اسکریپت از هر سه روش بالا استفاده کرد، اما بهتر است فقط از یکی از این روش ها استفاده کرد تا درصورت بروز خطاهای احتمالی در کدنویسی بتوان این خطاها را سریع تر متوجه شد و آنها را برطرف نمود.
16) ماژول ArcPy چیست؟
– ماژول ArcPy یک بسته نرم افزاری پایتون است که با استفاده از آن میتوان از پایتون در قابلیت های نرم افزار ArcGIS Pro استفاده کرد. این قابلیت ها به مجوز نصب و دسترسی (لایسنس) ArcGIS Pro و افزونه های آن بستگی دارد.
– در ماژول ArcPy علاوه بر اجرای فرایندهای پردازش مکانی (Geoprocessing) در جعبه ابزارهای سیستمی و سفارشی ArcGIS Pro میتوان توابع دیگری از قبیل فهرست کردن مجموعه داده های موجود در مسیر ذخیره موردنظر نیز اجرا کرد.
– ماژول ArcPy دارای چندین زیرماژول می باشد. این زیرماژولها درواقع کتابخانه هایی با اهداف مشخص مشتمل بر توابع و کلاس ها هستند. مهمترین این زیرماژول ها عبارتند از: ماژول Data Access (arcpy.da)، ماژول Mapping (arcpy.mp)، ماژول Spatial Analyst (arcpy.sa)، ماژول Network Analyst (arcpy.na).
– برای اینکه پایتون به قابلیت های ArcGIS Pro دسترسی پیدا کند لازم است ماژول ArcPy در اسکریپت موردنظر بارگذاری شود. این موضوع در شروع یک اسکریپت با استفاده از ترکیب (Syntax) زیر مشخص میشود:
import arcpy
خط بالا پایتون را به ابزارها و توابع ArcGIS Pro متصل می کند. ماژول های دیگر (مثلا ماژول Operating system (Os) یا ماژول سیستم (sys) را نیز می توان با ترکیب های مشابه به اسکریپت معرفی کرد.
17) ترکیب پایتون یک ابزار پردازش مکانی را چگونه می توان پیدا کرد؟
– کد پایتون مورد نیاز برای اجرای یک ابزار پردازش مکانی را میتوان در راهنمای هر
شکل (12-9): روش دسترسی به کد پایتون ابزار پردازش مکانی
ابزار مشاهده کرد. در این راهنما سینتاکس لازم و توضیحات مربوط به هر کدام از متغیرها آورده شده است. در شکل زیر، روش دسترسی به راهنمای ابزار نشان داده شده است.
– بهتر است در زمان باز کردن راهنمای ابزارها، از اتصال به اینترنت مطمئن شوید.
– از طریق آدرس زیر نیز میتوان به راهنمای ابزارهای پردازش مکانی دسترسی داشت:
http:/ / pro. arcgis. com/ en/ pro- app/ toolreference/
main/ arcgis- pro- tool- reference. htm.
– در انتهای هر راهنما، قسمتی با عنوان Parameter وجود دارد که با انتخاب سربرگ Python میتوان نام متغیرها، نوع متغیرها و توضیحات لازم را مشاهده کرد.
شکل (12-9): روش دسترسی به کد پایتون ابزار پردازش مکانی
تمرين 18: ایجاد و اجرای اسکریپت پایتوناهداف:در این تمرین با استفاده از یک اسکریپت پایتون، مساحت کاربری های زمین در شهر اهواز را برحسب هکتار محاسبه خواهید کرد. مراحل حل تمرین:1) باز کردن برنامه IDLE؛ 2) نوشتن اسکریپت؛ 3) اجرای اسکریپت. حل تمرین1) باز کردن برنامه IDLE:1) از دکمه Start ویندوز، مجموعه نرمافزاری ArcGIS و سپس برنامه IDLE (Python GUI) را باز کنید. در محیط این برنامه به راحتی می توان کدهای پايتون را نوشته و سپس در محیط ArcGIS Pro فراخوانی نمود و اجرا کرد. 2) پنجره ای که باز میشود را اصطلاحا پوسته (Shell) پایتون می گویند و نمیتوان در آن کدنویسی کرد. برای شروع کدنویسی از منوی File، زیرمنوی New File را انتخاب کنید تا پنجره جدیدی باز شود. در این پنجره، امکان نوشتن اسکریپت فراهم است.
3) از منوی Option، گزینه Configure IDLE را انتخاب کنید تا پنجره Option باز شود. در این پنجره، بر روي سربرگ General کلیک کنید و سپس در قسمت Default Source Encoding، مطمئن شوید گزینه UTF-8 فعال است (با انجام این کار امکان خوانش فونت های فارسی در اسکریپت فراهم می شود). بر روي دکمه Ok کلیک کنید تا پنجره Option بسته شود. 2) نوشتن اسکریپت:1) از منوی File، گزینه Save As را انتخاب کنید تا پنجره Save As باز شود. در این پنجره مسیر C:\Exercises\Ex18\Result را دنبال کرده و نام فایل خروجی را HectaresAreaCalc بگذارید. بر روي دکمه Save کلیک کنید. 2) در پوسته پایتون، عبارات زیر را تایپ کنید: #************************************************* #Script Title: HectaresAreaCalc.py #Script Author: DorraNinejad, Javizadeh #Script Created on: 12/16/2021 #Last Updated on: 12/16/2021 #Last Updated by: DorraniNejad, Javizadeh #Purpose: This script calculates the landuse area in hectares #Software: ArcGIS Pro 2.5 or later #************************************************** در کدهای بالا، علامت # به معنای یادداشت (توضیحات) است و خط دستوری که با # شروع میشود اجرا نمی شود. خط های دستور بهترتیب این موارد را نشان میدهند: 1) ستاره هايي برای زیبایی اسکریپت، 2) عنوان اسکریپت (Script Title)، نویسنده اسکریپت (Script Author)، 3) تاریخ ساخت اسکریپت (Script Created on)، تاریخ به روزرسانی (Last Updated on)، 4) افرادی که آخرین به روزرسانی را انجام داده اند (Last Updated by)، 5) هدف اسکریپت (Purpose)، 6) نرم افزار اجرا کننده اسکریپت (Software)، 7) ستاره هايي برای زیبایی اسکریپت. وجود هیچ کدام از خط دستورهای فوق الزامی نیست. در عین حال می توانید هر کدام از آنها را به دلخواه تغییر دهید (برای نمونه به جای نویسندگان کتاب نام خود را بنویسید). 3) در مرحله بعد لازم است با یک کددستور ماژول ArcPy را فراخوانی کنید تا اسکریپت بتواند به ابزارهای ArcGIS Pro دسترسی داشته باشد. بدین منظور کددستور زیر را در پوسته پایتون تایپ کنید: #Imports the ArcPy module for ArcGIS import arcpy 4) از منوی File، زیرمنوی Save را انتخاب کنید تا تغییرات ذخیره شوند. 5) در این مرحله لازم است تا متغیر موردنظر (لایه کاربری_زمین) را به اسکریپت معرفی کنید. متغیری که نشاندهنده این لایه است را با عنوان Landuse نامگذاری خواهید کرد. کد دستورهای زیر را در پوسته پایتون تایپ کنید: #Specifies the input variables for the script tools #If the data is moved or in a different database then these paths will need to be updated Landuse = C:\\Exercises\\Ex18\\Data\\Data.gdb\\”کاربری_زمین” سه خط اول از نوع یادداشت هستند و خط چهارم ضمن معرفی متغیر، مسیر دسترسی به آنرا نیز نشان میدهد (اگر پوشه Exercises که در لوح فشرده کتاب موجود است را در درایو C رایانهتان ریخته باشید، اسکریپت بدون مشکل اجرا خواهد شد). 6) در ادامه بایستی کد مربوط به اجرای ابزار Calculate Field (که قرار است مقادیر موجود در فیلد Shape Area را بر عدد 10000 تقسیم کرده و در فیلد Area_Hec درج کند) را در اسکریپت بنویسید. این کد بهصورت زیر است: #Calculates the area in hectares for each landuse and updates the Area_Hec field. arcpy.CalculateField_management (Landuse, “Area_Hec”, “!Shape_Area! / 10000”) 7) از منوی File، زیرمنوی Save را انتخاب کنید تا تغییرات ذخیره شوند. برنامه IDLE را ببندید. 3) اجرای اسکریپت: 1) پروژه Ex18 که فایل آن در مسیر C:\ Exercises\Ex18\Data در دسترس است را در محیط ArcGIS Pro باز کنید. این پروژه از یک نقشه با عنوان «کاربری زمین در شهر اهواز» تشکیل شده که دارای یک لایه بُرداری با عنوان «کاربری_زمین» و دو نقشه پایه با عناوین World Topographic Map و World Hillshade میباشد. 2) در کادر Catalog، گروه Toolboxes را باز کرده و بر روي جعبه ابزار Ex18.tbx کلیک راست کنید. گزینه New و Script را انتخاب کنید تا پنجره New Script باز شود. 3) در پنجره New Script، در جعبه Name، عبارت HectaresAreaCalc و در جعبه Lavel، عبارت «محاسبه گر مساحت کاربری زمین برحسب هکتار» را تایپ کنید. 4) در سمت راست جعبه Script File، بر روي دکمه Browse کلیک کنید تا پنجره Select the script file باز شود. در این پنجره مسیر C:\Exercises\Ex18\Result را دنبال کرده و فایل اسکریپت HectaresAreaCalc را به نرم افزار معرفی کنید. بر روي دکمه Ok کلیک کنید تا پنجره Select the script file بسته شود. 5) در پنجره New Script بر روی Ok کلیک کنید تا این پنجره بسته شود. 6) در کادر Catalog، بر روي جعبه ابزار Ex18.tbx کلیک راست کرده و گزینه Referesh را انتخاب کنید. سپس جعبه ابزار مذکور را باز کرده و دوبار بر روی اسکریپت «محاسبه گر مساحت کاربری زمین برحسب هکتار» کلیک کنید تا کادر مربوط به این اسکریپت در زیرمجموعه کادر Geoprocessing در سمت راست پنجره نمایش باز شود. 7) چون برای اسکریپت مذکور هیچ پارامتری تعریف نشده است، بنابراین کادر مربوط به این اسکریپت فاقد پارامتر است. بر روي دکمه Run کلیک کنید تا اسکریپت اجرا شده و پیغام سبز رنگ Complete در پایین دکمه Run ظاهر شود. 8) جدول لایه «کاربری_زمین» را باز کنید. ملاحظه میکنید که مقادیر مساحت هر کاربری برحسب هکتار محاسبه شده و در فیلد Area_Hec درج شده است. 9) جدول لایه «کاربری_زمین» را ببندید و پروژه را با عنوان Ex18-Result در مسیر C:\Exercises\Ex18\Result ذخیره کنید. 10) برنامه ArcGIS Pro را ببندید. |
20 نظرات