آموزش کاربردی ابزار Spatial Join برای انتقال داده‌ها بر اساس اشتراک فضایی در عوارض لایه‌های وکتوری|گروه فناوران شهرساز

0 47

Spatial Join/Analysis Tools-Overlay

 در این مقاله نحوه اجرا، شرایط و کاربردهای ابزار Spatial Join از جعبه ابزار Overlay در مجموعه Analysis Tools آموزش داده شده است. در این ابزار داده‌ها و فیلدهای لایه Join بر اساس اشتراک مکانی یا همان وجود همپوشانی (به معنی روی هم افتادن عوارض دو لایه) به لایه Target منتقل می‌شوند و در لایه خروجی ذخیره می‌گردند. با اجرای این ابزار یک کلاس عارضه جدید (لایه جدید) ایجاد شده و تغییرات بر روی آن اعمال می‌شود (لایه‌های Join و Target در حالت اولیه خود باقی می‌مانند و تغییری در آن‌ها ایجاد نمی‌شود). لایه ایجاد شده تمامی فیلدهایی که در قسمت Field Map of Join Features تعیین می‌شوند را  در خود ذخیره خواهد کرد. این ابزار از پروژه Tilling برای هندلینگ حجم داده بسیار زیاد برای کارایی و مقیاس‌پذیری بهتر استفاده می‌کند.


نحوه-اجرا-spatial-join

  • نحوه اجرای ابزار Spatial Join

 پنجره مربوط به این ابزار دارای نه گزینه به ترتیب زیر است:

  1. Target Features: لایه‌ای که می‌خواهیم داده‌های لایه Join به آن اضافه شوند.
  2. Join Features: لایه‌ای که می‌خواهیم داده‌های آن به لایه Target اضافه شوند.
  3. Output Feature Class: نام و محل ذخیره لایه جدید
  4. (Join Operation (optional: چگونگی Join داده‌ها را بین دو لایه Target و Join تعیین می‌کند. در حال Join One to One، اگر در لایه Target یکی از عوارض دارای همسایگی با چند عارضه در لایه Join باشد، یکی از آن‌ها بر اساس قوانین Merge در لایه خروجی انتخاب خواهد شد (در این صورت در لایه خروجی فیلدی با نام Join_Count ایجاد خواهد شد و در آن عوارضی از لایه Target که دارای همسایگی با یک یا چند عارضه از لایه Join باشند را نشان خواهد داد). اما در حالت Join One to Many، تمامی رکوردهای عوارض موجود در همسایگی عارضه Target، به لایه خروجی اضافه خواهند شد؛ به عبارتی اگر یک خط، یک نقطه یا یک چندضلعی در لایه Target با 3 عارضه در لایه Join همسایه باشد، رکوردهای هر سه عارضه را به لایه خروجی اضافه خواهد کرد.
  5. (Join Type (optional: تعیین می‌کند که تمامی عوارض لایه Target در لایه خروجی حفظ شوند یا فقط آن‌هایی که دارای اشتراک فضایی هستند بمانند. در حالتی که تیک گزینه Keep All Target Features انتخاب شود، تمامی عوارض موجود در لایه Target در لایه خروجی حفظ خواهند شد؛ اما در غیر این‌صورت فقط عوارضی که دارای همپوشانی هستند در لایه خروجی باقی خواهند ماند.
  6. (Field Map of Join Features (optional: تعیین می‌کند کدام فیلدها در لایه خروجی باشند. لیست اولیه شامل مجموع فیلدهای دو لایه Target و Join است. اما می‌توان در این قسمت فیلدی را حذف، اضافه، تغییر نام و … کرد. در این قسمت با کلیک راست روی نام هر فیلد، می‌توانید تنظیمات مربوط به آن از جمله اسم، نوع و … را تغییر داد و همچنین می‌توان دو یا چند فیلد از لایه Join را با همدیگر ترکیب کرد (این مورد با نام Merge Rule در گزینه شش از قسمت شرایط اجرای دستور به طور کامل توضیح داده شده است). در قسمت Merge Rule گزینه‌های مختلفی وجود دارد که بسته به هدف از انجام دستور، بایستی یکی از آن‌ها انتخاب شود. این گزینه‌ها به ترتیب زیر هستند:
  • First: مقادیر اولین فیلد را انتخاب می‌کند.
  • Last: مقادیر آخرین فیلد را انتخاب می‌کند.
  • Join: مقادیر فیلدها را با هم ترکیب می‌کند.
  • Sum: مقادیر فیلدها را با هم جمع می‌کند.
  • Mean: از مقادیر فیلدها میانگین‌گیری می‌کند.
  • Median: میانه مقادیر فیلدها را انتخاب می‌کند.
  • Mode: مد مقادیر فیلدها را انتخاب می‌کند.
  • Min: حداقل مقدار موجود در فیلدها را انتخاب می‌کند.
  • Max: حداکثر مقدار موجود در فیلدها را انتخاب می‌کند.
  • Standard deviation: از روش طبقه‌بندی انحراف معیار در مقادیر فیلدها استفاده می‌کند.
  • Count: تعداد فیلدهای مشارکت کننده را نشان می‌دهد.
  1. (Match Option (optional: انواع حالات و شرایط مختلف Join کردن لایه‌ها (این شرایط بایستی بسته به هدف Join انتخاب گردند):
  • INTERSECT: عوارض لایه Join زمانی پیوند می‌خورند که با عوارض لایه Target دارای همپوشانی در فضای دوبعدی باشند (این گزینه به عنوان گزینه پیش‌فرض می‌باشد).
  • INTERSECT_3D: عوارض لایه Join زمانی پیوند می‌خورند که با عوارض لایه Target دارای همپوشانی در فضای سه‌بعدی باشند.
  • WITHIN_A_DISTANCE: عوارض لایه Join زمانی پیوند می‌خورند که با عوارض لایه Target، در فاصله تعیین شده قرار داشته باشند. فاصله را در قسمت (Search Radius (optional وارد می‌کنیم.
  • WITHIN_A_DISTANCE_GEODESIC: مانند گزینه فوق عمل می‌کند با این تفاوت که از فاصله جغرافیایی به جای فاصله مسطح استفاده می‌کند. از این گزینه زمانی که داده‌های شما در وسعت جغرافیایی زیادی قرار دارند و یا سیستم مختصات آن‌ها جهت محاسبه فاصله مناسب نیست استفاده کنید.
  • WITHIN_A_DISTANCE_3D: عوارض لایه Join زمانی پیوند می‌خورند که با عوارض لایه Target، در فاصله تعیین شده در فضای سه بعدی قرار داشته باشند. فاصله را در قسمت (Search Radius (optional وارد می‌کنیم.
  • CONTAINS: عوارض لایه Join زمانی پیوند می‌خورند که عوارض لایه Target آن‌ها را در بر داشته باشند. در این گزینه لایه Target نمی‌تواند از نوع Point باشد. زمانی لایه Join می‌تواند از نوع Polygon باشد که لایه Target نیز از نوع Polygon باشد.
  • COMPLETELY_CONTAINS: عوارض لایه Join زمانی پیوند می‌خورند که عوارض لایه Target به طور کامل آن‌ها را در بر داشته باشند. Polygon تمامی عوارض دیگر را در بر می‌گیرد؛ Point نمی‌تواند عارضه‌ای را به طور کامل دربر بگیرد، حتی خود Point را؛ و Polyline می‌تواند به طور کامل Polyline و Point را دربر گیرد.
  • CONTAINS_CLEMENTINI: دارای نتیجه مشابه با گزینه فوق است، با این تفاوت که در مواردی که عوارض لایه Join به طور کامل بر روی مرز عوارض لایه Target قرار گیرند (هیچ بخشی از آن‌ها به طور کامل در داخل یا خارج از عوارض لایه Target نباشد و مشخص نباشد که داخل هست یا خارج)، داده‌ها با یکدیگر Join نخواهند شد. در این حالت در عوارض چندضلعی مرز جداکننده داخل و خارج به وسیله خط بیرونی Polygonها و در عوارض خطی، مرز جداکننده به وسیله نقاط انتهایی آن‌ها تعیین می‌شوند. عوارض نقطه‌ای نیز فاقد مرز هستند.
  • WITHIN: این گزینه برعکس حالت Contains است. عوارض لایه Join زمانی پیوند می‌خورند که عوارض لایه Target داخل آن قرار داشته باشند. در این گزینه زمانی که لایه Join از نوع Polygon است، لایه Target فقط می‌تواند Polygon باشد. نوع Point نیز زمانی می‌تواند Join باشد که لایه Target از نوع Point باشد.
  • COMPLETELY_WITHIN: این گزینه نیز برعکس Completely Contains است. یعنی عوارض لایه Join زمانی پیوند می‌خورند که عوارض لایه Target به طور کامل داخل آن قرار داشته باشند.
  • WITHIN_CLEMENTINI: نتایج یکسانی با گزینه Within دارد با این تفاوت که اگر عوارض لایه Join به طور کامل روی مرز عوارض لایه Target باشند، داده‌ها با یکدیگر Join نخواهند شد. در این حالت در عوارض چندضلعی مرز جداکننده داخل و خارج به وسیله خط بیرونی Polygonها و در عوارض خطی، مرز جداکننده به وسیله نقاط انتهایی آن‌ها تعیین می‌شوند. عوارض نقطه‌ای نیز فاقد مرز هستند.
  • ARE_IDENTICAL_TO: این گزینه وقتی استفاده می‌شود که عوارض هر دو لایه همسان باشند. Ploygon با Polygon، Polyline با Polyline و Point با Point.
  • BOUNDARY_TOUCHES: عوارض لایه Join زمانی پیوند می‌خورند که با عوارض لایه Target دارای مرز مشترک باشند. لایه‌های Join و Target باید از نوع Polygon یا Poyline باشد. علاوه بر این عوارض لایه Join یا باید خارج از لایه Target باشد و یا باید کاملاً داخل آن باشد.
  • SHARE_A_LINE_SEGMENT_WITH: لایه Join زمانی با لایه Target پیوند خواهد خورد که عوارض دو لایه حتی در بخشی از یک خطر باهم اشتراک داشته باشند. عوارض لایه‌های Join و Target باید از نوع Polygon یا Polyline باشند.
  • CROSSED_BY_THE_OUTLINE_OF: لایه Join زمانی پیوند خواهد خورد که یک عارضه Target از آن‌ها گذشته باشد. عوارض لایه‌های Join و Target باید از نوع Polygon یا Polyline باشند. اگر Polygon به عنوان لایه Join یا Target قرار گیرد، مرزهای Polygon مبنا قرار خواهند گرفت. خطوطی هم که از یک نقطه عبور می‌کنند پیوند خواهند خورد، نه خطوطی که با هم مشترک بوده و دقیقاً از روی هم بگذرند.
  • HAVE_THEIR_CENTER_IN: عوارضی از لایه Join پیوند خواهند خورد که مرکز عوارض لایه Target داخل آن‌ها افتاده باشد. مرکز عوارض بر این اساس محاسبه خواهند شد: برای Polygon و چند نقطه (Multipoint) مرکز هندسی لحاظ خواهد شد و برای خط نیز نقطه میانی مورد لحاظ قرار خواهد گرفت.
  • CLOSEST: عوارضی در لایه Join پیوند خواهند خورد که در نزدیکی یکی از عوارض لایه Target قرار داشته باشند.
  • CLOSEST_GEODESIC: مانند گزینه فوق عمل می‌کند با این تفاوت که از فاصله جغرافیایی به جای فاصله مسطح استفاده می‌کند. از این گزینه زمانی که داده‌های شما در وسعت جغرافیایی زیادی قرار دارند و یا سیستم مختصات آن‌ها جهت محاسبه فاصله مناسب نیست استفاده کنید.
  1. (Search Radius (optional: حداکثر فاصله قابل قبول برای Join کردن عوارض دو لایه در این قسمت تعیین می‌شود. این گزینه وقتی استفاده خواهد شد که در قسمت Match Option، گزینه‌های Intersect، Within a Distance، Within a Distance Geodesic، Have Their Center In، Closet و Closet Geodesic انتخاب شوند. اگر در این قسمت فاصله تعیین نشود، مقدار صفر به عنوان پیش‌فرض در نظر گرفته خواهد شد.
  2. (Distance Field Name (optional: اگر از گزینه Search Radius استفاده کنیم، در این قسمت می‌توانم نام یک فیلد جدید را اضافه کنیم تا فاصله بین عوارض Join و Target را در آن نشان دهد. این بخش فقط در صورتی قابل استفاده است که در بخش Match Option از گزینه‌های Closet یا Closet Geodesic استفاده شود. اگر هیچ عارضه‌ای در فاصله تعیین شده پیوند نخورد، ارزش این فیلد 1- خواهد شد. اگر در این قسمت نام فیلد تعیین نشود، این فیلد در لایه خروجی ایجاد نخواهد شد.

شرایط-اجرا-spatial-join

  • شرایط اجرای ابزار Spatial Join
  1. لایه‌های مورد استفاده در این ابزار بایستی از نوع وکتور باشند. به عبارتی امکان Join کردن لایه‌های رستری با این ابزار وجود ندارد.
  2. این Shape fileها می‌توانند از نوع نقطه (Point)، خط (Polyline) و چند ضلعی (Polygon) باشند.
  3. با این ابزار دو فیلد جدید در لایه خرجی با نام‌های Join_Count و Target_FID ایجاد خواهد شد. فیلد Join_Count تعداد عوارض Join شده از لایه Join به هر یک از عوارض لایه Target را نشان می‌دهد.
  4. در صورتی که در قسمت Join Operation گزینه Join One To Many انتخاب شود، ممکن است برای هر عارضه لایه Target، بیش از یک رکورد اضافه شود. در این حالت فیلد دیگری با نام Join_FID ایجاد می‌شود و نشان می‌دهد که هر عارضه لایه Target به چند عارضه از لایه Join پیوند خورده است. در صورتی که ارزش هر عارضه در این فیلد برابر با 1- باشد، یعنی هیچ عارضه‌ای از لایه Join با آن پیوند نخورده است.
  5. تمامی عوارض لایه Target در دو حالت به لایه خروجی منتقل خواهند شد: الف) از قسمت Join Operation گزینه Join One To Many انتخاب شود و ب) تیک گزینه Keep All Target Features انتخاب شود.
  6. Merge rules فقط بر روی فیلدهای لایه Join قابل اجرا بوده و تنها زمانی قابل استفاده است که بیش از یک عارضه لایه Join به یک عارضه از لایه Target پیوند بخورد؛ بدین صورت که به عنوان مثال اگر سه عارضه از لایه Join دارای اطلاعات عمق برابر با 15، 8 و 10 باشد و این سه عارضه با یک عارضه از لایه Target پبوند بخورند، در صورتی که نوع Merge rule را Mean (میانگین) انتخاب کنیم، ارزش آن عارضه در لایه Target، میانگین سه عدد فوق خواهد بود که مساوی با 11 است. در شرایطی که ارزش یکی از سه عارضه مذکور در لایه Join برابر <null> باشد، آن عارضه در نظر گرفته نمی‌شود. به عنوان نمونه اگر در مثال فوق داده‌های عمق این عوارض برابر با 15، null و 10 باشند، نتیجه میانگین برابر با 5/12 خواهد بود.
  7. اگر در قسمت Match Option گزینه‌های Closet یا Closet Geodesic انتخاب شوند، ممکن است دو یا چند عارضه از لایه Join دارای فواصل یکسانی باشند؛ در چنین شرایطی یکی از این عوارض به صورت تصادفی برای Join شدن انتخاب خواهد شد.
  8. اگر یک عارضه از لایه Join با چند عارضه از لایه Target دارای ارتباط مکانی یا همان همپوشانی باشد، به ازای هر عارضه Target یک رکود اضافه خواهد شد. به عنوان مثال اگر یک نقطه از لایه Join بر روی سه Polygon از لایه Target افتاده باشد، این نقطه سه بار احتساب خواهد شد.

کاربرد-spatial-join

  • نمونه‌ای از کاربردهای ابزار Spatial Join

 تمامی ابزارهای نرم افزار Arc GIS می‌توانند کاربردهای مختلفی داشته باشند که بسته به نیاز باید از آن‌ها استفاده کرد. اما در این بخش بنا به تجربه، چند مورد از مهم‌ترین کاربرد‌های این ابزار را ذکر می‌کنیم.

  1. انتقال داده‌های لایه عرصه قطعات به لایه اعیانی
  2. استخراج میزان آسیب‌‌پذیری نقاط شهری و روستایی در برابر مخاطرات محیطی
  3. برآورد طول آبراهه‌ها به تفکیک استان، شهرستان و ...

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.

20 + 9 =