خودکارسازی گردشهای کاری پیچیده با استفاده از مدلساز پردازش (QGIS3)
گردشهای کاری GIS معمولاً شامل مراحل زیادی میشود – با هر مرحله خروجی میانی تولید میشود که در مرحله بعدی استفاده میشود. اگر دادههای ورودی را تغییر میدهید یا میخواهید پارامتری را تغییر دهید، باید کل فرآیند را دوباره به صورت دستی انجام دهید. خوشبختانه، QGIS دارای یک مدل ساز گرافیکی داخلی است که می تواند به شما کمک کند گردش کار خود را تعریف کرده و آن را با یک فراخوانی اجرا کنید. همچنین می توانید این گردش های کاری را به صورت دسته ای روی تعداد زیادی ورودی اجرا کنید.
نمای کلی کار
ما یک لایه نقطهای از حوادث دزدی دریایی را میگیریم و یک مدل پردازشی برای تولید نقشه چگالی با جمعآوری آنها روی یک شبکه شش ضلعی جهانی ایجاد میکنیم.
خواهید گرفت
- با استفاده از یک طرح جهانی مساحت مساوی و تنظیم پروژه CRS.
- اعمال نمادشناسی Graduated به لایه چند ضلعی.
دریافت داده ها
پورتال اطلاعات ایمنی دریانوردی آژانس اطلاعات جغرافیایی ملی، شکل فایلی از تمام حوادث دزدی دریایی دریایی را در قالب پیام های فعالیت ضد کشتیرانی ارائه می دهد . نسخه فایل Arc Shape پایگاه داده را دانلود کنید .
زمین طبیعی چندین لایه برداری سراسری دارد. دانلود بردار فیزیکی ۱۰ متر – زمین حاوی چند ضلعی زمین.
برای راحتی کار، می توانید یک کپی از لایه های بالا را مستقیماً از زیر دانلود کنید:
منبع داده: [NGA_MSI] [NATURALEARTH]
- در پنل مرورگر QGIS، دایرکتوری را که داده های دانلود شده خود را در آن ذخیره کرده اید پیدا کنید. را باز کرده
ne_10m_land.zip
وne_10m_land.shp
لایه را انتخاب کنید. لایه را روی بوم بکشید. بعد،ASAM_shp.zip
فایل را پیدا کنید. آن را گسترش دهید وasam_data_download/ASAM_events.shp
لایه را انتخاب کنید و آن را روی بوم بکشید.
- لایه
ASAM_events.shp
اطلاعات طرح ریزی مرتبط با آن را ندارد، بنابراین از شما خواسته می شود یک CRS را در انتخابگر سیستم مرجع مختصات انتخاب کنید . در اینجا، نقاط در مختصات Latitude و Longitude قرار دارند، بنابراین CRS را انتخاب کرده و روی OK کلیک کنید .WGS ۸۴
- پس از بارگیری لایه، می توانید نقاط منفرد را که نشان دهنده حوادث مکان های دزدی دریایی هستند، مشاهده کنید. بیایید شروع به ساخت مدل پردازش خود برای پردازش این لایه ها کنیم. به بروید … .
- در گفتگوی Processing Modeler ، پانل Model Properties را پیدا کنید . به عنوان نام مدل و به عنوان گروه ها وارد کنید . روی دکمه Save کلیک کنید .
piracy hexbin
projects
- مدل را به عنوان ذخیره کنید
piracy_hexbin
.
- اکنون می توانیم ساخت یک مدل گرافیکی از خط لوله پردازش خود را شروع کنیم. گفتگوی مدلساز پردازش شامل یک پانل سمت چپ و یک بوم اصلی است. در پانل سمت چپ، پانل ورودی ها را پیدا کنید که انواع مختلفی از انواع داده های ورودی را فهرست می کند. به پایین اسکرول کنید و ورودی + Vector Layer را انتخاب کنید . آن را روی بوم بکشید.
- به عنوان نام پارامتر و به عنوان نوع هندسه وارد کنید . این ورودی لایه نقطه حوادث دزدی دریایی را نشان می دهد.
Input Points
Point
- سپس، یک ورودی دیگر + Vector Layer را روی بوم بکشید. به عنوان نام پارامتر و به عنوان نوع هندسه وارد کنید . این ورودی لایه طبیعی زمین جهانی زمین را نشان می دهد.
Base Layer
Polygon
- از آنجایی که ما در حال تولید یک شبکه شش ضلعی جهانی هستیم، می توانیم از کاربر بخواهیم که اندازه شبکه را به عنوان ورودی به ما بدهد تا اینکه آن را به عنوان بخشی از مدل ما به صورت سخت کدگذاری کند. به این ترتیب، کاربر می تواند به سرعت با اندازه های مختلف شبکه بدون تغییر مدل، آزمایش کند. یک ورودی + عدد را انتخاب کنید و آن را به بوم بکشید. نام پارامتر را وارد کرده و روی OK کلیک کنید .
Grid Size
- اکنون که ورودی های کاربر خود را تعریف کرده ایم، آماده هستیم تا مراحل پردازش را اضافه کنیم. همه الگوریتمهای پردازش در برگه الگوریتمها در دسترس شما هستند . اولین گام در خط لوله ما این خواهد بود که لایه پایه را دوباره به پروژه CRS بازتاب دهیم. الگوریتم را جستجو کنید و آن را روی بوم بکشید.
Reproject layer
توجه داشته باشید
ضرورت این مرحله بازپرداخت به زودی مشخص خواهد شد. الگوریتم تولید شبکه از ما می خواهد که وسعت شبکه را در واحد پروژه CRS مشخص کنیم. ما می توانیم این لایه بازپرداخت شده را برای محاسبه این وسعت عرضه کنیم.
- در گفتگوی لایه Reproject ، به عنوان لایه ورودی انتخاب کنید . استفاده از پروژه CRS به عنوان CRS هدف را بررسی کنید . روی OK کلیک کنید .
Base Layer
- در بوم Processing Modeler ، متوجه خواهید شد که یک اتصال بین ورودی + Base Layer و الگوریتم لایه Reproject ظاهر می شود . این اتصال جریان خط لوله پردازش ما را نشان می دهد. مرحله بعدی ایجاد یک شبکه شش ضلعی است. الگوریتم را جستجو کنید و آن را روی بوم بکشید.
Create grid
- در گفتگوی ایجاد شبکه ، نوع شبکه را انتخاب کنید . به عنوان وسعت Grid انتخاب کنید . روی دکمه ۱۲۳ در زیر برچسب فاصله افقی کلیک کنید و ورودی مدل را انتخاب کنید .
Hexagon (polygon)
Extent of 'Reprojected' from algorithm 'Reproject Layer'
- ورودی را برای استفاده از ورودی مدل انتخاب کنید . همین روند را برای فاصله عمودی تکرار کنید . روی OK کلیک کنید .
Grid Size
- در این مرحله، ما یک شبکه شش ضلعی جهانی داریم. شبکه تمام وسعت لایه پایه را شامل مناطق زمینی و مکان هایی که هیچ نقطه ای وجود ندارد را در بر می گیرد. بیایید آن چند ضلعی های شبکه ای را که در آن نقطه ورودی وجود ندارد فیلتر کنیم. الگوریتم را جستجو کنید و آن را روی بوم بکشید.
Extract by location
- برای استخراج ویژگیها از ، را انتخاب کنید ، کجا ویژگیها (مقدم هندسی) بهعنوان و با مقایسه با ویژگیها از بهعنوان . روی OK کلیک کنید .
'Grid' from algorithm 'Generate Grid'
Intersect
Input points
- اکنون فقط آن دسته از چند ضلعی های شبکه ای را داریم که حاوی برخی از نقاط ورودی هستند. برای جمع آوری این نکات از الگوریتم استفاده می کنیم. جستجو کنید و آن را به بوم بکشید.
Count points in polygon
- به عنوان مقدار چند ضلعی انتخاب کنید . لایه Points خواهد بود . در پایین، لایه خروجی Count را به عنوان نامگذاری کنید . روی OK کلیک کنید .
'Extracted (location)' from algorithm 'Extract by location'
Input Points
Aggregated
- مدل در حال حاضر کامل است. روی دکمه Save کلیک کنید .
- به پنجره اصلی QGIS بروید. می توانید مدل جدید ایجاد شده خود را در جعبه ابزار پردازش در قسمت بیابید . حالا نوبت اجرا و تست مدل است. از آنجایی که هدف ما تجمیع نقاط ورودی بر روی شبکههای شش ضلعی است، مهم است که شبکهها با استفاده از طرح ریزی با مساحت مساوی تولید شوند. این تضمین می کند که بدون توجه به موقعیت شبکه، دقیقا همان منطقه را پوشش می دهد. مدل ما صراحتاً درخواست CRS نمی کند، اما از هر CRS که به عنوان Project CRS تنظیم شده است استفاده می کند . بیایید یک طرح جهانی مساحت مساوی را به عنوان پروژه CRS انتخاب کنیم. به بروید .
- در گفتگوی Project Properties ، به تب CRS بروید . ما از یک طرح جهانی Mollweide برای این تمرین استفاده خواهیم کرد که یک طرح مساحت مساوی است.
Mollweide
در کادر فیلتر جستجو کنید و به عنوان CRS انتخاب کنید. روی OK کلیک کنید .World_Mollweide EPSG:54009
- شما خواهید دید که لایه ها در لحظه به CRS انتخاب شده بازپخش می شوند.
piracy_hexbin
مدل را در Processing Toolbox پیدا کنید و روی آن دوبار کلیک کنید.
- لایه پایه ما لایه
ne_10m_land
و لایه Input Points استASAM_events
. اندازه شبکه باید در واحدهای CRS انتخاب شده مشخص شود. واحد World_Mollweide CRS متر است، بنابراین۱۰۰۰۰۰
m (100 کیلومتر) را به عنوان Grid Size تعیین می کنیم . روی Run کلیک کنید تا خط لوله پردازش شروع شود. پس از پایان فرآیند، روی Close کلیک کنید .
- یک لایه جدید
Aggregated
در نتیجه مدل بارگذاری شده است. همانطور که کاوش می کنید، متوجه خواهید شد که لایه دارای ویژگی به نام NUMPOINTS است که حاوی تعداد نقاط حادثه دزدی دریایی موجود در آن ویژگی شبکه است. بیایید این لایه را استایل کنیم تا این اطلاعات بهتر نمایش داده شود. روی لایه کلیک راست کردهAggregated
و Properties را انتخاب کنید .
- به تب نمادشناسی بروید .
Graduated
نماد شناسی وNUMPOINTS
به عنوان ستون را انتخاب کنید .Change..
کنار برچسب نماد کلیک کنید .
- نماد پر کردن ساده را انتخاب کنید و دکمه Stroke شفاف را در زیر Stroke color علامت بزنید . این برای شفاف کردن لبه های شش گوش است.
- روی منوی کشویی کنار Color ramp کلیک کنید و
Viridis
سطح شیب دار را انتخاب کنید. دوباره روی منوی کشویی کلیک کنید و Invert Color Ramp را انتخاب کنید تا ترتیب رنگ ها برعکس شود.
- نماد شناسی Graduated مقادیر موجود در ستون انتخاب شده را به کلاس های مجزا تقسیم می کند و رنگ متفاوتی را به هر یک از کلاس ها اختصاص می دهد. به عنوان حالت انتخاب کنید و روی طبقه بندی کلیک کنید و روی OK کلیک کنید .
Natural Breaks (Jenks)
توجه داشته باشید
برای توضیح دقیق حالتهای مختلف به استایل برداری پایه مراجعه کنید .
- به پنجره اصلی QGIS برگردید،
ASAM_events
لایه را خاموش کنید. شما تجسم خوبی از نقاط داغ دزدی دریایی در سراسر جهان خواهید دید.
اکنون که خط لوله کامل داده را در مدل کدگذاری کرده اید، بازتولید نتایج شما آسان است. یک مدل همچنین به شما امکان می دهد بدون تکرار دستی هر مرحله میانی هر بار، به سرعت آزمایش کنید. اگر ورودی های شما در طول زمان تغییر می کند، مثلاً یک پایگاه داده به روز شده دزدی دریایی پس از چند ماه منتشر می شود، می توانید مدل خود را روی آن ورودی اجرا کنید تا تصویرسازی مشابهی را بدون نیاز به یادآوری هر مرحله ایجاد کنید.
اگر می خواهید بازخورد بدهید یا تجربه خود را در مورد این آموزش به اشتراک بگذارید، لطفاً در زیر نظر دهید. (به حساب GitHub نیاز دارد)