نویسنده: دکتر سعید جوی زاده | مشاوره و آموزش تخصصی GIS: ۰۹۱۲۰۴۳۸۸۷۴
آموزش ModelBuilder برای هر کاربری که بیش از چند بار یک زنجیره از ابزارهای GIS را پشت سر هم اجرا کرده، یک ضرورت است. فرض کنید باید برای ده شهرستان، لایه رودخانه را برش دهید، حریم بزنید، با کاربری اراضی همپوشانی کنید و مساحت را حساب کنید. انجام دستی این کار ساعتها زمان میبرد و احتمال خطا در آن زیاد است. ModelBuilder در ArcGIS Pro به شما اجازه میدهد این زنجیره را یک بار به شکل نمودار رسم کنید و هر بار فقط با یک کلیک اجرا کنید.
ModelBuilder چیست و چرا باید آن را یاد بگیریم؟
ModelBuilder یک زبان برنامهنویسی بصری در نرمافزار ArcGIS است. در این محیط به جای نوشتن کد، ابزارهای ژئوپراسسینگ و دادهها را به شکل جعبه و بیضی روی صفحه میچینید و با خط به هم وصل میکنید. نتیجه یک گردشکار (Workflow) است که هم قابل اجراست و هم مستندی تصویری از روش کار شما به شمار میرود. به همین دلیل ModelBuilder پلی میان کاربر عادی نرمافزار و برنامهنویس پایتون محسوب میشود.
سه مزیت اصلی این ابزار عبارتاند از صرفهجویی در زمان، تکرارپذیری و کاهش خطا. وقتی مدل یک بار درست ساخته شود، هر بار همان مراحل را با همان تنظیمات اجرا میکند و دیگر نگران فراموش کردن یک مرحله یا وارد کردن عدد اشتباه نخواهید بود. افزون بر این، میتوانید مدل را در اختیار همکاران قرار دهید تا آنها نیز بدون دانستن جزئیات، همان تحلیل را روی داده خودشان اجرا کنند.
آشنایی با اجزای یک مدل
پیش از ساخت اولین مدل باید با چهار جزء اصلی آن آشنا شوید. شناخت این اجزا و رنگبندی آنها خواندن هر مدلی را ساده میکند و در خطایابی نیز به کار میآید.
- متغیر داده ورودی: بیضی آبیرنگ که به یک لایه یا جدول موجود اشاره دارد.
- ابزار: مستطیل زردرنگ که یکی از ابزارهای ژئوپراسسینگ مانند Buffer یا Clip است.
- داده خروجی (مشتقشده): بیضی سبزرنگ که نتیجه اجرای ابزار است و میتواند ورودی ابزار بعدی باشد.
- متغیر مقدار: بیضیای که یک عدد، متن یا عبارت مانند فاصله بافر را نگه میدارد.
هر عنصر تا زمانی که ورودیهای لازم را نداشته باشد خاکستری میماند. رنگی شدن عناصر یعنی مدل آماده اجراست. پس از اجرا نیز سایهای پشت ابزارها و خروجیها ظاهر میشود که نشان میدهد آن بخش اجرا شده است.
ساخت اولین مدل: گامبهگام
برای تمرین، مدلی میسازیم که مناطق مسکونی واقع در حریم ۵۰۰ متری رودخانهها را پیدا میکند. این مثال ساده سه ابزار پرکاربرد را کنار هم قرار میدهد و منطق کلی کار را روشن میکند.
گام ۱: ایجاد مدل جدید
در ArcGIS Pro از زبانه Analysis روی ModelBuilder کلیک کنید. یک مدل خالی درون جعبهابزار پیشفرض پروژه ساخته میشود. بهتر است همان ابتدا از بخش Properties نام و برچسب مناسبی برای مدل انتخاب کنید؛ نام نباید فاصله داشته باشد، اما برچسب میتواند توصیفی باشد.
گام ۲: افزودن داده و ابزار
لایه رودخانه را از پنل Contents به صفحه مدل بکشید. سپس از پنل Geoprocessing ابزار Buffer را جستوجو و به مدل اضافه کنید. با کشیدن خط از بیضی رودخانه به ابزار Buffer و انتخاب گزینه Input Features، این دو به هم متصل میشوند. روی ابزار دوبار کلیک کنید و فاصله را ۵۰۰ متر تعیین کنید.
گام ۳: زنجیره کردن ابزارها
اکنون ابزار Clip را اضافه کنید. لایه کاربری مسکونی را بهعنوان Input Features و خروجی سبزرنگ Buffer را بهعنوان Clip Features به آن وصل کنید. در پایان میتوانید ابزار Calculate Geometry Attributes را نیز اضافه کنید تا مساحت هر عارضه محاسبه شود. به همین سادگی سه مرحله تحلیل در یک نمودار قرار گرفت.
گام ۴: اعتبارسنجی و اجرا
پیش از اجرا روی دکمه Validate کلیک کنید تا نرمافزار مسیر دادهها و تنظیمات را بررسی کند. سپس Run را بزنید. پنجره پیامها زمان اجرای هر ابزار و خطاهای احتمالی را نشان میدهد. برای افزودن خروجی نهایی به نقشه، روی بیضی آخر راستکلیک و گزینه Add To Display را فعال کنید.
تبدیل مدل به ابزار قابل استفاده با پارامترها
مدلی که ساختیم فقط روی همان لایهها و با همان فاصله کار میکند. برای آنکه مدل به یک ابزار واقعی تبدیل شود، باید ورودیهای مهم را پارامتر کنید. روی بیضی لایه رودخانه، بیضی فاصله بافر و خروجی نهایی راستکلیک کنید و گزینه Parameter را بزنید؛ حرف P کنار آنها ظاهر میشود. حالا اگر مدل را از درون جعبهابزار باز کنید، مانند هر ابزار دیگر ArcGIS پنجرهای با فیلدهای ورودی خواهید دید.
برای آنکه فاصله بافر به شکل متغیر مستقل دیده شود، روی ابزار Buffer راستکلیک کنید و از بخش Create Variable گزینه From Parameter و سپس Distance را انتخاب کنید. نامگذاری روشن پارامترها اهمیت زیادی دارد، چون همین نامها در پنجره ابزار به کاربر نمایش داده میشود. ترتیب پارامترها را نیز میتوانید از بخش Properties مدل تغییر دهید.
تکرارگرها (Iterators): قلب خودکارسازی
قدرت واقعی ModelBuilder در تکرارگرهاست. تکرارگر باعث میشود یک زنجیره از ابزارها برای مجموعهای از ورودیها پشت سر هم اجرا شود. در هر مدل تنها میتوان یک تکرارگر قرار داد، اما با تودرتو کردن مدلها میتوان این محدودیت را دور زد.
- Iterate Feature Classes: اجرای مدل روی همه فیچرکلاسهای یک ژئودیتابیس یا پوشه.
- Iterate Rasters: پردازش دستهای رسترها، مثلاً برش دهها تصویر ماهوارهای به مرز محدوده.
- Iterate Feature Selection: اجرای مدل برای تکتک عوارض یک لایه، مانند هر شهرستان بهصورت جداگانه.
- Iterate Field Values: تکرار بر اساس مقادیر یکتای یک فیلد.
- For و While: تکرار به تعداد مشخص یا تا برقرار بودن یک شرط.
هنگام استفاده از تکرارگر باید نام خروجیها در هر دور متفاوت باشد، وگرنه هر خروجی روی قبلی بازنویسی میشود. راهحل، جایگزینی درونخطی متغیر است: نام متغیر را میان دو علامت درصد قرار میدهید، برای نمونه خروجی را Clip_%Name% بنامید تا نام هر ورودی بهطور خودکار در نام خروجی قرار گیرد. این ترفند ساده یکی از مهمترین نکات در آموزش ModelBuilder است.
ابزارهای کمکی و منطق شرطی
در بخش Utilities ابزارهایی وجود دارد که فقط درون مدل کار میکنند. Collect Values خروجی همه دورهای یک تکرارگر را جمع میکند تا بتوانید در پایان، آنها را با Merge یکی کنید. Parse Path نام فایل یا مسیر پوشه را از یک آدرس جدا میکند و Calculate Value یک عبارت پایتون کوتاه را اجرا میکند. با ابزارهای منطقی مانند If Data Exists یا If Field Exists نیز میتوانید مدل را شاخهشاخه کنید تا در شرایط مختلف مسیر متفاوتی را برود.
پیششرط (Precondition) هم مفهوم مهمی است. با تعریف پیششرط مشخص میکنید یک ابزار تنها پس از پایان ابزار دیگر یا درست بودن یک شرط اجرا شود. برای نمونه، ساخت ژئودیتابیس خروجی باید پیش از ذخیره لایهها در آن انجام شود. بدون پیششرط، ترتیب اجرا ممکن است با آنچه انتظار دارید متفاوت باشد.
خطایابی و رفع مشکلات رایج
بیشتر خطاهای مدل به سه دسته برمیگردند: مسیر نادرست داده، قفل بودن فایل خروجی و ناسازگاری نوع داده. اگر ابزاری خاکستری مانده، یکی از ورودیهای اجباری آن خالی است. اگر مدل روی سیستم همکار شما کار نمیکند، به احتمال زیاد مسیرها مطلق ذخیره شدهاند؛ دادهها و جعبهابزار را در پوشه پروژه نگه دارید تا مسیرها نسبی بمانند. همچنین گزینه بازنویسی خروجیها را در تنظیمات ژئوپراسسینگ فعال کنید تا اجرای دوباره مدل با خطای موجود بودن فایل متوقف نشود.
دادههای میانی حجم زیادی اشغال میکنند. خروجیهایی را که فقط واسطه هستند بهعنوان Intermediate علامت بزنید یا آنها را در فضای کاری حافظه (memory) بنویسید تا هم سرعت بالا برود و هم دیسک پر نشود. اجرای مرحلهبهمرحله مدل، یعنی راستکلیک روی هر ابزار و انتخاب Run، بهترین روش برای پیدا کردن نقطه دقیق خطاست.
از ModelBuilder تا پایتون
وقتی مدل شما پیچیده شد، میتوانید آن را به اسکریپت پایتون تبدیل کنید. در ArcGIS Pro از منوی Export گزینه Export To Python File یا Send To Python Window این کار را انجام میدهد. کد تولیدشده با کتابخانه ArcPy نوشته میشود و نقطه شروع بسیار خوبی برای یادگیری برنامهنویسی در GIS است، چون منطق آن را از قبل میشناسید. بسیاری از متخصصان، مسیر یادگیری پایتون را دقیقاً از همینجا آغاز کردهاند.
مستندات رسمی این ابزار در وبسایت راهنمای ArcGIS Pro در دسترس است. اگر هنوز با محیط نرمافزار آشنا نیستید، پیشنهاد میکنیم ابتدا صفحه آموزش ArcGIS Pro را ببینید و سپس به سراغ مدلسازی بیایید.
نمونه کاربردهای ModelBuilder در پروژههای واقعی
در پروژههای مکانیابی، مدل میتواند همه لایههای معیار را به رستر تبدیل کند، فاصله اقلیدسی بگیرد، طبقهبندی مجدد انجام دهد و در پایان با Weighted Overlay نقشه نهایی را بسازد. در مطالعات هیدرولوژی، زنجیره Fill، Flow Direction، Flow Accumulation و استخراج آبراهه و حوضه را میتوان در یک مدل قرار داد و برای هر DEM جدید دوباره اجرا کرد. در سازمانها نیز بهروزرسانی ماهانه نقشهها، تبدیل قالب دادهها و کنترل کیفیت لایهها از جمله کارهایی است که با مدلسازی به چند دقیقه کاهش مییابد.
مزیت دیگر مدل برای دانشجویان، استفاده از تصویر آن در پایاننامه است. نمودار مدل را میتوان بهصورت تصویر خروجی گرفت و در فصل روش تحقیق قرار داد؛ این کار روش پژوهش را شفاف و قابل تکرار نشان میدهد. برای طراحی مدل اختصاصی پروژه یا پایاننامه خود میتوانید با ۰۹۱۲۰۴۳۸۸۷۴ تماس بگیرید.
ده توصیه برای ساخت مدل حرفهای
- پیش از شروع، گردشکار را روی کاغذ رسم کنید.
- برای عناصر مدل نامهای معنادار انتخاب کنید.
- با ابزار Group بخشهای مرتبط را دستهبندی و رنگبندی کنید.
- با Label توضیح هر مرحله را روی مدل بنویسید.
- مدل را ابتدا روی نمونه کوچکی از داده آزمایش کنید.
- از مسیرهای نسبی و ژئودیتابیس پروژه استفاده کنید.
- دادههای میانی را در حافظه ذخیره کنید.
- مدلهای بزرگ را به چند زیرمدل تقسیم کنید.
- پس از هر تغییر مهم، مدل را ذخیره و اعتبارسنجی کنید.
- در بخش توضیحات مدل، هدف، ورودیها و تاریخ ساخت را بنویسید.
زمانبندی اجرای خودکار مدل
وقتی مدل شما پایدار شد، میتوانید اجرای آن را زمانبندی کنید تا بدون حضور شما تکرار شود. در ArcGIS Pro برای ابزارهای ژئوپراسسینگ، از جمله مدلها، گزینه Schedule در دسترس است که اجرای روزانه، هفتگی یا ماهانه را ممکن میکند. این قابلیت برای کارهایی مانند بهروزرسانی شبانه یک لایه از روی فایل دریافتی، تهیه نسخه پشتیبان از ژئودیتابیس یا تولید خروجی هفتگی برای مدیران بسیار مفید است. پیش از زمانبندی، مطمئن شوید مدل پیام خطای روشنی ثبت میکند و مسیر دادهها حتی زمانی که نرمافزار باز نیست در دسترس است. توصیه میشود مدل را چند بار بهصورت دستی با دادههای متفاوت بیازمایید و نتیجه را بررسی کنید و سپس آن را به اجرای خودکار بسپارید. ثبت تاریخ اجرا در نام خروجی نیز کمک میکند نسخههای مختلف از هم تفکیک شوند و در صورت بروز مشکل، بتوانید به خروجی سالم قبلی بازگردید. به این ترتیب مدل از یک ابزار کمکی به بخشی از گردشکار روزانه سازمان تبدیل میشود.
پرسشهای متداول
آیا مدلهای ArcMap در ArcGIS Pro کار میکنند؟
بیشتر مدلهای ساختهشده در ArcMap در ArcGIS Pro باز و اجرا میشوند، اما اگر مدل را در نسخه Pro ذخیره کنید ممکن است دیگر در ArcMap قابل ویرایش نباشد. بهتر است پیش از انتقال، یک نسخه پشتیبان از جعبهابزار نگه دارید و ابزارهایی را که در نسخه جدید تغییر کردهاند بررسی کنید.
برای یادگیری ModelBuilder باید برنامهنویسی بلد باشیم؟
خیر. آشنایی با ابزارهای پایه ژئوپراسسینگ کافی است. البته دانستن چند عبارت ساده پایتون در بخشهایی مانند Calculate Value و Calculate Field دست شما را بازتر میکند.
ModelBuilder در QGIS هم وجود دارد؟
بله، QGIS ابزار مشابهی به نام Model Designer (مدلساز گرافیکی) دارد که منطق آن بسیار نزدیک است. مفاهیمی که اینجا یاد میگیرید در آن محیط نیز قابل استفاده است.
جمعبندی
ModelBuilder سادهترین راه برای خودکارسازی تحلیلهای مکانی است. با یادگیری اجزای مدل، پارامترها، تکرارگرها و جایگزینی درونخطی متغیرها میتوانید کارهای تکراری چندساعته را به چند دقیقه برسانید و روش کار خود را مستند و قابل تکرار کنید. اگر میخواهید این مهارت را بهصورت پروژهمحور و زیر نظر مدرس یاد بگیرید، برای ثبتنام در دوره آموزش ModelBuilder با شماره ۰۹۱۲۰۴۳۸۸۷۴ تماس بگیرید.
مطالب مرتبط در GISLand
- دوره آموزش کاربردی ArcGIS Pro
- آموزش کاربردی QGIS؛ راهنمای گامبهگام
- GeoAI چیست؟ پیوند هوش مصنوعی و دادههای مکانی
- نقشه راه یادگیری GIS و RS
- ۱۰ اشتباه رایج در یادگیری GIS
- آموزش تبدیل اکسل به نقشه در GIS
- کنترل کیفیت داده GIS؛ چکلیست کامل
درباره نویسنده
این مقاله را دکتر سعید جوی زاده، مدرس و مشاور سیستم اطلاعات جغرافیایی در www.gisland.org نوشته است. برای دریافت مشاوره GIS، ثبتنام در دورههای آموزش GIS یا سفارش پروژه، همین حالا با شماره ۰۹۱۲۰۴۳۸۸۷۴ تماس بگیرید.


بدون دیدگاه