جستجوی مکانی و طبقه بندی مجدد
جستجوی مکانی
به پرسش مکانی گاهی اوقات انتخاب مکانی نیز گفته میشود. اساساً دو نوع پرسش مکانی وجود دارد: جستجو بر اساس ویژگی و جستجو بر اساس مکان. از آنجا که سیستمهای GIS فعلی از دادههای بردار و رستری به روشهای مختلف جستجو میکنند و توانایی جستجو از دادههای رستری بر اساس مکان (یعنی بر اساس محدودیتهای مکانی) را ندارند، این بخش در مورد پرسش مکانی فقط در دادههای بردار بحث میکند. جستجو از دادههای راستگر عمدتا از طریق جبر نقشه پیاده سازی میشود که در بخش ۴-۴ مورد بحث قرار میگیرد.
جستجو بر اساس ویژگی
جستجو بر اساس ویژگی برای بازیابی همه ویژگیها با مقادیر مشخصه خاص از یک لایه داده یا کلاس ویژگی در پایگاه داده مکانی و نمایش مکان آنها در نقشه استفاده میشود. به عنوان مثال ، جستجو زیر را در نظر بگیرید: “همه لولههای آب نصب شده قبل از ۲۰۱۰ با قطر کمتر از ۳۰ سانتی متر را بازیابی کنید.” در اینجا خطوط اصلی آب ویژگیهایی هستند که در یک لایه داده نشان داده شدهاند و سال نصب و قطر دو ویژگی هستند. پس از پیاده سازی جستجو در GIS ، تمام شبکههای آب با مقادیر مشخصه مشخص انتخاب شده و در نقشه نمایش داده میشوند.
با این حال هنگام ایجاد جستجو با استفاده از ویژگی در GIS، به طور کلی از کاربر خواسته میشود ابتدا جستجو با استفاده از زبان جستار پایگاه داده خاص ایجاد کند، سپس عبارت درخواست را برای پیاده سازی ارسال کند. سیستمهای مختلف GIS ممکن است از زبانهای مختلف جستجو استفاده کنند. ArcGIS از SQL استاندارد (Structured Query Language) پشتیبانی میکند. برای مثال جستجوی فوق، فرض کنید لایه اصلی داده آب w_mains نام دارد و سالهای نصب و قطر (بر حسب سانتی متر) در دو فیلد در جدول ویژگیهای مربوطه به ترتیب سال و قطر ذخیره میشوند. هر دو فیلد از نوع عددی هستند. در SQL ، جستجو را میتوان به صورت زیر بیان کرد:
SELECT * FROM w_mains
WHERE ″year″ < 2010 AND ″diameter″ < 30
در اینجا * نشان دهنده همه ویژگیهایی است که معیارها را برآورده میکند یا شرط بیان شده در بند WHERE و AND عملگرها هستند. در شکل کلی عبارت SQL برای جستجو با ویژگی را میتوان به صورت زیر نوشت:
SELECT * FROM <Layer or dataset>
WHERE <Field name> <Operator> <Value> <Connector> <Field name> <Operator> <Value> …
بیان معیارهای جستجو در WHERE clause ویژگیهای بازیابی را مشخص میکند. ممکن است شامل ویژگیها (زمینه ها)، عملگرها و توابع باشد. سه نوع عملگر وجود دارد: عملگرهای حسابی، منطقی و مقایسه ای. عملگرهای حسابی برای جمع، تفریق، ضرب و تقسیم مقادیر عددی، عملگرهای منطقی عمدتاً به عنوان رابط برای ترکیب دو معیار با هم و عملگرهای مقایسه برای مقایسI عبارتی با عبارت دیگر استفاده میشوند. توابع دستورات یک کلمه ای هستند که یک مقدار محاسبه شده از مقادیر یک فیلد را برمی گردانند. جدول ۴-۲ لیست اپراتورهای اصلی SQL و جدول ۴-۳ برخی از توابع انتخاب شده SQL را برای جستجو بر اساس ویژگی موجود در ArcGIS فهرست میکند. کادر ۴-۱ نشان میدهد که جستجو توسط ویژگی چگونه پیاده سازی میشود. قوانین ارزیابی عبارت جستجو شامل موارد زیر است :
- عبارت از چپ به راست ارزیابی میشود.
- عبارات داخل پرانتز بیشترین اولویت را دارند.
- اگر پرانتز تو در تو باشد، ارزیابی با داخلی ترین پرانتز آغاز میشود.
- AND قبل از OR ارزیابی میشود.
- NOT قبل از AND و OR ارزیابی میشود.
جدول ۴-۲ اپراتورهای اصلی SQL برای جستجو در ArcGIS
جدول ۴-۳ مثال توابع SQL برای جستجو در ArcGIS
کادر ۴-۱ جستجو بر اساس ویژگی در ArcGIS
کاربردی |
برای پیروی از این مثال ArcMap را شروع کنید و کلاس ویژگی خاک و جدول خصوصیات خاک را از مسیر دانلود کنید. |
C:\Databases\GIS4EnvSci\VirtualCatchment\Geodata.gdb. |
جستجوی خاکهای آلپ |
۱) در نوار منوی اصلی ArcMap، روی Selection > Select By Attributes کلیک کنید. گفتگوی Select By Attributes ظاهر میشود. تمام فیلدها یا ویژگیهای مرتبط با لایه در کادر محاوره ای فهرست شده اند. |
۲) در کادر محاوره ای Select By Attributes، عبارت جستجو را با انجام مراحل ۱ الی ۶ زیر وارد کنید. |
الف) خاکهای لایه را برای انجام جستجو انتخاب کنید. |
ب) روش ایجاد یک انتخاب جدید را انتخاب کنید. |
ج) روی «Soil_order» در پنجره فهرست فیلد دوبار کلیک کنید. این فیلد نام نوع خاک را ذخیره میکند. |
د) برای مشاهده مقادیر فیلد انتخابی روی دکمه Get Unique Values کلیک کنید. |
ه) عملگر = را کلیک کنید. |
و) روی مقدار Alpine ground دوبار کلیک کنید. اکنون عبارت جستجو Soil_order″ = ′Alpine soil وارد شده است، همانطور که در شکل نشان داده شده است. |
۴-۱- توجه داشته باشید که SELECT * FROM اولین قسمت عبارت SQL را تشکیل میدهد و به طور خودکار همراه با نام لایه ارائه میشود. کاربر فقط باید عبارت WHERE را وارد کند. |
ز) عبارت جستجو را با کلیک بر روی دکمه Verify اعتبار سنجی کنید. |
ح) روی OK کلیک کنید. ویژگیهای انتخاب شده در نمای داده هایلایت میشوند. |
۳) روی خاکهای لایه در فهرست مطالب کلیک راست کنید، به Selection اشاره کنید، سپس روی Create Layer from Selected Features کلیک کنید. یک لایه جدید، انتخاب خاک، ایجاد میشود. این لایه نتایج جستجو را نشان میدهد که در این مورد خاکهای آلپی هستند. |
خاکهای با مقدار pH در محدوده ۶ تا ۷ را جستجو کنید |
۴) در فهرست مطالب، تیک خاک انتخاب را بردارید. |
۵) روی دکمه Clear Selected Features در نوار ابزار Tools کلیک کنید تا ویژگیهای انتخاب شده در حال حاضر در خاکها لغو انتخاب شوند. |
۶) روی خاکها در فهرست مطالب کلیک راست کنید، به Joins و Relates اشاره کرده و Join را انتخاب کنید. |
شکل ۴-۱ گفتگوی Select By Attributes
۷) در کادر محاوره ای Join Data |
الف) مطمئن شوید که ویژگیهای Join از جدول انتخاب شده است. |
ب) PatchID را به عنوان فیلدی در لایه ای که Join بر اساس آن است انتخاب کنید. |
ج) خواص خاک باید به طور خودکار به عنوان جدول برای پیوستن به این لایه تنظیم شود. اگر اینطور نیست، آن را انتخاب کنید. |
د ) PatchID را به عنوان فیلد در جدول انتخاب کنید تا اتصال را بر اساس آن انجام دهید. |
ه) گزینه Keep all records را به عنوان گزینه join تیک بزنید. |
و) روی OK کلیک کنید. جدول earthProperties با جدول ویژگیهای مرتبط با خاکها از طریق PatchID پیوند داده میشود. |
۸) روی خاکها در فهرست مطالب کلیک راست کرده و Open Attribute Table را کلیک کنید. جدول ویژگیها را بررسی کنید. تمام خصوصیات خاک و مقادیر آنها از ویژگیهای خاک، از جمله عمق، بافت و pH خاک، باید به هر ویژگی در لایه مرتبط باشد. |
۹) جدول ویژگی را ببندید و کادر محاوره Select By Attributes را باز کنید. |
۱۰) در کادر محاوره ای Select By Attributes، عبارت query زیر را با دنبال کردن مرحله ۲ بالا وارد و اعتبارسنجی کنید : |
soilProperties.pH >= 6 AND soilProperties.pH <= 7 |
۱۱) برای ایجاد یک لایه جدید که نتایج جستجو را نشان میدهد، مرحله ۳ را دنبال کنید : ویژگیهای بازیابی شده با مقدار Ph ۶-۷٫ |
جستجو براساس مکان
جستجو بر اساس مکان برای یافتن ویژگیهای یک یا چند لایه داده بر اساس موقعیت آنها نسبت به ویژگیهای لایه دیگر در پایگاه داده مکانی مشابه یا شناسایی مقادیر ویژگی مرتبط با ویژگیها در مکانهای خاص استفاده میشود. یک نمونه جستجو میتواند عبارت “یافتن همه زمینههای محصول در دشتهای سیلاب” باشد. در اینجا زمینهای زراعی مجموعه ای از ویژگیها هستند و دشتهای سیلاب مجموعه ای دیگر از ویژگیها هستند. آنها معمولاً در دو لایه داده جداگانه نشان داده میشوند. “درون” محل کشتزارها را نسبت به دشتهای سیل نشان میدهد. در برخی از سیستمهای GIS، عملگرهای مکانی در جستجو برای بازیابی ویژگیها با توجه به رابطه مکانی (موقعیت نسبی) که تعریف میکنند، استفاده میشود. در استاندارد پیاده سازی OpenGIS برای اطلاعات جغرافیایی، OGC یازده عملگر مکانی یا محمولات ارتباط مکانی را برای SQL تعریف کرد. آنها شامل موارد زیر میباشند :
Equals, Disjoint, Intersects, Touches, Crosses, Within,Contains, Overlaps, Relate, LocateAlong and LocateBetween
برای توضیحات دقیق این عملگرهای مکانی لطفاً به OGC (2011) مراجعه کنید. این استاندارد توسط چندین سیستم نرم افزار مدیریت پایگاه داده یا GIS از جمله ArcGIS، DB2 Spatial Extender، Informix Spatial Datablade، PostgreSQL، SQL Server و Oracle Spatial پذیرفته شده است. اما انتخاب عملگرهای مکانی ، نام و نحو آنها ممکن است از سیستمی به سیستم دیگر متفاوت باشد. ArcGIS سیزده عملگر مکانی را برای جستجو بر اساس مکان ارائه میدهد (جدول ۴-۴). برخی از آنها در مثالهای ارائه شده در کادر ۴-۲ استفاده شده است.
جدول ۴-۴ عملگرهای مکانی برای جستجو در ArcGIS
جستجو بر اساس مکان به طور کلی شامل دو یا چند لایه داده است. لایههایی که باید از آنها ویژگیها جستجو یا انتخاب شوند لایههای هدف نامیده میشوند. لایه ای که هندسه ویژگی آن برای انتخاب ویژگیها از لایههای هدف استفاده میشود، لایه منبع نامیده میشود. مورد دیگری از جستجو بر اساس مکان شامل بازیابی مقادیر ویژگی مرتبط با یک ویژگی یا ویژگیها در یک مکان خاص است که در کادر ۴-۲ نیز نشان داده شده است.
بدون دیدگاه