توپولوژی در آرک‌جی‌ای‌اس پرو – توپولوژی در ArcGIS Pro

در فصل قبل کیفیت توصیفی داده را با Attribute Rules و Contingent Values تضمین کردیم. اما داده‌ی مکانی خطاهای هندسی هم دارد: قطعه‌هایی که روی هم افتاده‌اند، شکاف‌های باریک بین دو مرز، خطوطی که به هم نرسیده‌اند و نقاطی که باید روی خط باشند ولی نیستند. توپولوژی در ArcGIS Pro ابزار اصلی پیدا کردن و رفع همین خطاهاست. در این آموزش ArcGIS Pro یاد می‌گیریم توپولوژی ژئودیتابیس را بسازیم، قوانین مناسب را انتخاب کنیم، آن را Validate کنیم، خطاها را با Error Inspector اصلاح کنیم و با Map Topology لبه‌های مشترک را بدون شکستن هم‌مرزی ویرایش کنیم.

📚 مسیر یادگیری: این مطلب فصل ۱۰ از مجموعه‌ی ۱۴ فصلی «کتاب‌خوانی عملی ArcGIS Pro» در گیس‌لند است؛ فهرست کامل فصل‌ها را در صفحه‌ی دوره جامع آموزش آرک‌جی‌ای‌اس پرو ببینید. این مجموعه بخشی از آموزش آرک جی آی اس پرو از صفر تا پیشرفته است. فایل‌های تمرینی را از داده های آرک جی آی اس پرو بردارید و تمرین‌های بیشتر را در تمرین های آرک جی آی اس پرو ببینید.

پیش‌نیاز این فصل، آشنایی با Feature Dataset و ساخت ژئودیتابیس است که در فصل هشتم: ساخت ژئودیتابیس در ArcGIS Pro آموزش داده شد، و همچنین مهارت‌های ویرایش فصل چهارم: ویرایش عوارض در ArcGIS Pro. توپولوژی ژئودیتابیس فقط داخل یک Feature Dataset ساخته می‌شود و برای ساخت آن لایسنس Standard یا Advanced لازم است.

🧭 فهرست مطالب این آموزش

  1. 🧭 توپولوژی چیست و چرا به آن نیاز داریم؟
  2. 🏗️ طراحی توپولوژی پیش از ساخت
  3. 🛠️ ساخت توپولوژی ژئودیتابیس در ArcGIS Pro
  4. 📜 قوانین توپولوژی: کدام قانون برای کدام داده؟
  5. ✅ اعتبارسنجی (Validate) توپولوژی
  6. 🔧 رفع خطاهای توپولوژی با Error Inspector
  7. ✏️ ویرایش با توپولوژی ژئودیتابیس
  8. 🗺️ Map Topology: ویرایش هم‌مرزی بدون ساخت توپولوژی
  9. 📤 گزارش‌گیری و پایش دوره‌ای خطاها
  10. 💼 سه سناریوی واقعی طراحی قوانین
  11. 🏢 توپولوژی در ژئودیتابیس سازمانی و کار تیمی
  12. 🧪 تمرین عملی: پاک‌سازی نقشه‌ی کاربری اراضی
  13. 🏙️ سناریوی واقعی: پاک‌سازی لایه‌ی قطعات ثبتی پیش از تحویل به اداره‌ی ثبت
  14. 🐞 خطاهای رایج و راه‌حل
  15. ❓ پرسش‌های متداول
  16. 🏁 جمع‌بندی

🧭 توپولوژی چیست و چرا به آن نیاز داریم؟

توپولوژی در GIS یعنی روابط مکانی بین عوارض: کدام عوارض هم‌مرزند، کدام یکدیگر را می‌پوشانند، کدام به هم متصل‌اند. چشم انسان روی نقشه‌ی کوچک‌مقیاس خطای چند سانتی‌متری را نمی‌بیند، اما همین خطا در محاسبه‌ی مساحت، تحلیل شبکه، صدور سند یا هم‌پوشانی لایه‌ها نتایج اشتباه می‌دهد. مثلاً اگر دو قطعه‌ی همسایه ده سانتی‌متر روی هم افتاده باشند، مجموع مساحت قطعات از مساحت بلوک بیشتر می‌شود و در Union یک چندضلعی بسیار باریک (اسلیور) ساخته می‌شود.

نوع خطا مثال واقعی پیامد
هم‌پوشانی (Overlap) دو قطعه‌ی ملکی روی هم مساحت تکراری، اختلاف ملکی
شکاف (Gap) فاصله‌ی باریک بین دو کاربری اسلیور در Union، پوشش ناقص
آویزان (Dangle) خیابانی که به تقاطع نمی‌رسد قطعی مسیر در تحلیل شبکه
عبور ناقص (Overshoot) خطی که از تقاطع رد شده گره اضافی و قطعه‌ی کوچک
خارج از پوشش نقطه‌ی شیر دور از لوله عدم اتصال در شبکه‌ی تأسیسات
خود‌تقاطعی خطی که خودش را قطع می‌کند هندسه‌ی نامعتبر
انواع خطای هندسی که با توپولوژی در ArcGIS Pro پیدا می‌شوند
رایج‌ترین خطاهای هندسی در آرک جی آی اس پرو

🧩 دو نوع توپولوژی در ArcGIS Pro

ArcGIS Pro دو مفهوم متفاوت با نام توپولوژی دارد که نباید با هم اشتباه شوند:

ویژگی توپولوژی ژئودیتابیس Map Topology
محل نگهداری ذخیره‌شده در Feature Dataset موقت، فقط در جلسه‌ی ویرایش
قوانین دارد (بیش از سی قانون) ندارد
اعتبارسنجی و خطا Validate، Error Inspector، Exception ندارد
لایسنس ساخت Standard یا Advanced همه‌ی سطوح حتی Basic
نوع داده فقط کلاس‌های یک Feature Dataset Shapefile و کلاس‌های ژئودیتابیس
کاربرد اصلی کنترل کیفیت سازمانی و دائمی ویرایش هم‌زمان لبه‌ها و رئوس مشترک

💡 نکته

قاعده‌ی ساده: اگر می‌خواهید خطاها را پیدا کنید، توپولوژی ژئودیتابیس بسازید؛ اگر فقط می‌خواهید مرز مشترک دو عارضه را با هم جابه‌جا کنید، Map Topology کافی است.

✅ نکات کلیدی این بخش

  • توپولوژی یعنی روابط مکانی بین عوارض
  • توپولوژی ژئودیتابیس قانون و خطا دارد و ذخیره می‌شود
  • Map Topology موقت و بدون قانون است اما در همه‌ی لایسنس‌ها هست

🏗️ طراحی توپولوژی پیش از ساخت

مستندات Esri تأکید می‌کند که توپولوژی را باید طراحی کرد، نه صرفاً ساخت. چهار تصمیم اصلی:

📏 Cluster Tolerance

Cluster Tolerance فاصله‌ای است که رئوس نزدیک‌تر از آن در هنگام Validate یکی فرض می‌شوند و روی هم «چسبانده» می‌شوند. اگر خالی یا صفر بگذارید، XY Tolerance همان Feature Dataset استفاده می‌شود که به‌طور پیش‌فرض ۰٫۰۰۱ متر (یک میلی‌متر) است. افزایش Cluster Tolerance راه‌حل خطاها نیست؛ مقدار بزرگ باعث می‌شود رئوس واقعی و مجزا هم روی هم بیفتند و شکل عوارض تغییر کند. معمولاً مقدار پیش‌فرض بهترین انتخاب است.

🥇 Rank

وقتی دو رأس از دو کلاس مختلف در محدوده‌ی Cluster Tolerance باشند، رأس کلاسی که رتبه‌ی بالاتر (عدد کوچک‌تر؛ ۱ بالاترین) دارد ثابت می‌ماند و دیگری به سمت آن حرکت می‌کند. داده‌ی دقیق‌تر را رتبه‌ی ۱ بدهید؛ مثلاً مرز قطعات برداشت‌شده با نقشه‌برداری را ۱ و کاربری اراضی رقومی‌شده از تصویر را ۲.

📐 انتخاب کلاس‌ها و قوانین

فقط کلاس‌هایی را وارد توپولوژی کنید که واقعاً بین آن‌ها رابطه‌ی مکانی مهمی وجود دارد. هر کلاس اضافی زمان Validate را بالا می‌برد. قوانین را هم بر اساس پرسش‌های واقعی کسب‌وکار انتخاب کنید؛ مثلاً «آیا قطعات نباید روی هم باشند؟» یا «آیا هر شیر باید روی لوله باشد؟».

🗂️ ساختار Feature Dataset

همه‌ی کلاس‌های توپولوژی باید در یک Feature Dataset با سیستم مختصات یکسان باشند. اگر کلاس‌ها در ریشه‌ی ژئودیتابیس هستند، ابتدا یک Feature Dataset بسازید و با Copy/Paste یا ابزار Feature Class To Feature Class آن‌ها را منتقل کنید. برای مباحث مختصات به فصل هفتم: سیستم مختصات در ArcGIS Pro مراجعه کنید.

🩺 پیش از توپولوژی: Check Geometry و Repair Geometry

توپولوژی روی هندسه‌ی معتبر کار می‌کند. اگر داده از CAD، Shapefile قدیمی یا تبدیل‌های متعدد آمده باشد، ممکن است هندسه‌های خالی، رئوس تکراری یا حلقه‌های با جهت اشتباه داشته باشد. پیش از ساخت توپولوژی:

  1. ۱ابزار Check Geometry را روی هر کلاس اجرا کنید. خروجی آن جدولی از عوارض دارای مشکل و نوع مشکل است.
  2. ۲اگر جدول خالی نبود، ابزار Repair Geometry را اجرا کنید. گزینه‌ی Delete Features with Null Geometry را آگاهانه انتخاب کنید.
  3. ۳دوباره Check Geometry بزنید تا مطمئن شوید هیچ مشکلی باقی نمانده است.

⚠️ هشدار

Repair Geometry مستقیم روی داده‌ی ورودی کار می‌کند و خروجی جداگانه نمی‌سازد. پیش از اجرا از کلاس یک نسخه‌ی پشتیبان تهیه کنید.

هندسه‌ی معتبر شرط لازم و توپولوژی شرط کافی برای داده‌ی تمیز است؛ اولی خطاهای درون هر عارضه و دومی خطاهای بین عوارض را پیدا می‌کند.

⚠️ هشدار

کلاسی که در یک توپولوژی شرکت دارد، نمی‌تواند هم‌زمان عضو توپولوژی دیگری باشد. همچنین کلاس‌های عضو شبکه‌های خاص (مثل Utility Network) محدودیت‌های جداگانه دارند.

✅ نکات کلیدی این بخش

  • Cluster Tolerance را پیش‌فرض نگه دارید
  • Rank ۱ برای داده‌ی دقیق‌تر
  • فقط کلاس‌ها و قوانین ضروری
  • همه‌ی کلاس‌ها در یک Feature Dataset

🛠️ ساخت توپولوژی ژئودیتابیس در ArcGIS Pro

دو روش برای ساخت توپولوژی ژئودیتابیس وجود دارد: Create Topology Wizard از پنجره‌ی Catalog و مجموعه ابزارهای ژئوپروسسینگ Topology. روش اول برای شروع ساده‌تر و روش دوم برای خودکارسازی و ModelBuilder مناسب‌تر است.

🧙 روش اول: Create Topology Wizard

  1. ۱پروژه را باز کنید و در پنجره‌ی Catalog ژئودیتابیس را باز کنید.
  2. ۲روی Feature Dataset مورد نظر راست‌کلیک کرده و New > Topology را انتخاب کنید. ویزارد ساخت توپولوژی باز می‌شود.
  3. ۳در صفحه‌ی اول نام توپولوژی را وارد کنید؛ مثلاً Parcels_Topology. این نام باید در کل ژئودیتابیس یکتا باشد.
  4. ۴Cluster Tolerance را بررسی کنید و در صورت نبود دلیل خاص، مقدار پیش‌فرض را نگه دارید.
  5. ۵کلاس‌های عارضه‌ای را که باید در توپولوژی شرکت کنند، تیک بزنید؛ مثلاً Parcels، Blocks و Buildings.
  6. ۶در صفحه‌ی Ranks، برای هر کلاس رتبه تعیین کنید.
  7. ۷در صفحه‌ی Rules با دکمه‌ی Add قوانین را اضافه کنید: کلاس اول، قانون و در صورت نیاز کلاس دوم.
  8. ۸صفحه‌ی خلاصه را مرور و Finish را بزنید.
  9. ۹پس از ساخت، پیامی می‌پرسد آیا توپولوژی Validate شود یا نه؛ برای داده‌ی بزرگ می‌توانید بعداً و برای محدوده‌ی کوچک‌تر Validate کنید.
مراحل ساخت توپولوژی در ArcGIS Pro با Create Topology Wizard
مسیر ساخت توپولوژی ژئودیتابیس در آرک جی آی اس پرو

⚙️ روش دوم: ابزارهای ژئوپروسسینگ

مجموعه ابزار Data Management > Topology شامل این ابزارهاست:

ابزار کار
Create Topology ساخت توپولوژی خالی در Feature Dataset
Add Feature Class To Topology افزودن کلاس با Rank مشخص
Add Rule To Topology افزودن قانون بین یک یا دو کلاس
Validate Topology اعتبارسنجی کل یا محدوده‌ی مشخص
Export Topology Errors خروجی گرفتن خطاها به سه کلاس نقطه، خط و چندضلعی
Remove Rule / Remove Feature Class From Topology حذف قانون یا کلاس

همان کار ویزارد با Python این‌طور خلاصه می‌شود:

import arcpy
fds = r"C:\GIS\City.gdb\Cadastre"
topo = fds + r"\Parcels_Topology"
arcpy.management.CreateTopology(fds, "Parcels_Topology")
arcpy.management.AddFeatureClassToTopology(topo, fds + r"\Parcels", 1, 1)
arcpy.management.AddRuleToTopology(topo, "Must Not Overlap (Area)", fds + r"\Parcels")
arcpy.management.AddRuleToTopology(topo, "Must Not Have Gaps (Area)", fds + r"\Parcels")
arcpy.management.ValidateTopology(topo)

💡 نکته

ساخت توپولوژی با اسکریپت، به‌ویژه در پروژه‌هایی که هر ماه داده‌ی جدید تحویل می‌گیرند، کنترل کیفیت را تکرارپذیر می‌کند. اسکریپت را در یک ابزار ModelBuilder یا Notebook ذخیره کنید.

📌 یادداشت

ابزار Create Topology لایسنس Basic ندارد؛ در سطح Basic فقط می‌توانید از Map Topology و (در برخی نسخه‌ها) مشاهده‌ی توپولوژی موجود استفاده کنید.

✅ نکات کلیدی این بخش

  • Wizard برای شروع و ابزارها برای خودکارسازی
  • نام توپولوژی در کل ژئودیتابیس یکتاست
  • پس از ساخت، Validate را فراموش نکنید

📜 قوانین توپولوژی: کدام قانون برای کدام داده؟

انتخاب قانون درست مهم‌ترین بخش کار است. قوانین در سه گروه چندضلعی، خطی و نقطه‌ای تقسیم می‌شوند و برخی با یک کلاس و برخی بین دو کلاس تعریف می‌شوند.

🟪 قوانین چندضلعی پرکاربرد

قانون معنا مثال
Must Not Overlap چندضلعی‌های یک کلاس روی هم نباشند قطعات ملکی
Must Not Have Gaps بین چندضلعی‌ها شکاف نباشد کاربری اراضی، تقسیمات کشوری
Must Not Overlap With دو کلاس روی هم نباشند دریاچه و زمین زراعی
Must Be Covered By Feature Class Of هر چندضلعی کلاس اول با کلاس دوم پوشیده شود قطعات درون بلوک
Must Be Covered By هر چندضلعی داخل یک چندضلعی کلاس دوم باشد ساختمان داخل قطعه
Boundary Must Be Covered By مرز چندضلعی روی خطوط کلاس دیگر باشد مرز بلوک روی محور خیابان
Contains Point هر چندضلعی حداقل یک نقطه داشته باشد قطعه و نقطه‌ی پلاک

〰️ قوانین خطی پرکاربرد

قانون معنا مثال
Must Not Have Dangles انتهای خط به خط دیگری وصل باشد شبکه‌ی معابر
Must Not Have Pseudo Nodes گره‌ای که فقط دو خط را به هم وصل می‌کند نباشد خطوط بیش از حد قطعه‌شده
Must Not Intersect خطوط هم را قطع نکنند یا روی هم نباشند خطوط تراز
Must Not Self-Intersect خط خودش را قطع نکند مسیرهای GPS
Must Be Single Part خط چندبخشی نباشد محور خیابان
Must Not Overlap خطوط یک کلاس روی هم نباشند لوله‌های تکراری

📍 قوانین نقطه‌ای پرکاربرد

قانون معنا مثال
Must Be Covered By Line نقطه روی خط باشد شیر روی لوله
Point Must Be Covered By Line Endpoint نقطه روی انتهای خط باشد انشعاب در انتهای لوله
Must Be Properly Inside نقطه داخل چندضلعی باشد نقطه‌ی پلاک داخل قطعه
Must Be Disjoint نقاط روی هم نباشند نقاط تکراری

یک دام رایج: قانون Must Not Have Gaps همیشه برای مرز بیرونی کل داده یک خطا تولید می‌کند، چون بیرون از محدوده‌ی شما «شکاف» محسوب می‌شود. این خطا را با Mark as Exception علامت بزنید.

💡 نکته

برای شبکه‌ی معابر، ترکیب Must Not Have Dangles و Must Not Intersect قوی‌ترین آزمون است؛ اما بن‌بست‌های واقعی هم Dangle محسوب می‌شوند و باید Exception شوند.

✅ نکات کلیدی این بخش

  • قانون را بر اساس پرسش واقعی انتخاب کنید
  • Must Not Overlap و Must Not Have Gaps برای پوشش‌های پیوسته
  • Must Be Covered By Line برای نقطه روی شبکه
  • خطای مرز بیرونی و بن‌بست‌ها را Exception کنید

✅ اعتبارسنجی (Validate) توپولوژی

پس از ساخت یا هر ویرایش، توپولوژی باید Validate شود تا خطاها محاسبه شوند. هر ویرایش یک Dirty Area (ناحیه‌ی کثیف) ایجاد می‌کند؛ یعنی ناحیه‌ای که هنوز بررسی نشده است. Validate فقط Dirty Areaها را بررسی می‌کند.

🗺️ افزودن لایه‌ی توپولوژی به نقشه

  1. ۱در Catalog توپولوژی را به نقشه بکشید. لایه‌ی توپولوژی شامل زیرلایه‌های Dirty Areas، Point Errors، Line Errors و Polygon Errors است.
  2. ۲پیشنهاد می‌شود کلاس‌های عضو توپولوژی را هم به نقشه اضافه کنید.
  3. ۳با کلیک راست روی لایه‌ی توپولوژی و Properties می‌توانید قوانین، کلاس‌ها و آمار خطاها را ببینید.

▶️ روش‌های Validate

  1. ۱در زبانه‌ی Edit، گروه Manage Edits، از منوی کشویی Validate استفاده کنید: Validate (فقط محدوده‌ی فعلی نقشه) یا Validate All (کل داده).
  2. ۲یا ابزار Validate Topology را از ژئوپروسسینگ اجرا کنید؛ این روش برای داده‌ی بزرگ و اجرای زمان‌بندی‌شده مناسب است.
  3. ۳پس از Validate، خطاها با رنگ قرمز (Error) و Exceptionها با رنگ سبز روی نقشه نمایش داده می‌شوند.

💡 نکته

برای داده‌ی بزرگ، ابتدا روی یک منطقه‌ی کوچک زوم کنید و Validate (محدوده‌ی فعلی) را اجرا کنید. این کار به شما کمک می‌کند قبل از صرف زمان طولانی برای کل داده، درستی قوانین را بسنجید.

⚠️ هشدار

پیش از Validate همه‌ی ویرایش‌ها را Save کنید و از ژئودیتابیس نسخه‌ی پشتیبان بگیرید. Validate ممکن است رئوس نزدیک‌تر از Cluster Tolerance را جابه‌جا کند و این تغییر بدون پشتیبان برگشت‌پذیر نیست.

✅ نکات کلیدی این بخش

  • هر ویرایش یک Dirty Area می‌سازد
  • Validate فقط Dirty Areaها را بررسی می‌کند
  • ابتدا محدوده‌ی کوچک، سپس Validate All
  • پیش از Validate پشتیبان بگیرید

🔧 رفع خطاهای توپولوژی با Error Inspector

Error Inspector پنجره‌ای است که همه‌ی خطاها را در یک جدول نشان می‌دهد و ابزارهای اصلاح را در دسترس قرار می‌دهد. آن را از زبانه‌ی Edit، گروه Manage Edits با کلیک روی Error Inspector باز کنید.

🔍 کار با Error Inspector

  1. ۱در بالای پنجره، فیلتر را روی همه‌ی قوانین یا یک قانون مشخص تنظیم کنید. شروع با یک قانون تمرکز را بیشتر می‌کند.
  2. ۲گزینه‌ی Visible Extent را فقط وقتی فعال کنید که می‌خواهید خطاهای محدوده‌ی فعلی را ببینید.
  3. ۳روی هر ردیف کلیک کنید تا نقشه روی خطا زوم کند. بخش پایین پنجره توضیح قانون و عوارض درگیر را نشان می‌دهد.
  4. ۴در بخش Fixes راه‌حل‌های پیشنهادی همان قانون را ببینید و مناسب‌ترین را انتخاب کنید.
  5. ۵اگر خطا در واقع یک وضعیت درست است (مثل بن‌بست واقعی)، Mark as Exception را بزنید.
  6. ۶پس از چند اصلاح، دوباره Validate کنید تا Dirty Areaها پاک شوند و فهرست به‌روز شود.
مراحل رفع خطای توپولوژی در ArcGIS Pro با Error Inspector
گام‌های اصلاح خطای هندسی در آرک جی آی اس پرو

🩹 اصلاح‌های رایج برای هر نوع خطا

خطا Fix پیشنهادی توضیح
هم‌پوشانی چندضلعی Merge ناحیه‌ی مشترک به یکی از دو چندضلعی داده می‌شود
هم‌پوشانی چندضلعی Subtract ناحیه‌ی مشترک از هر دو حذف می‌شود و شکاف می‌سازد
هم‌پوشانی چندضلعی Create Feature ناحیه‌ی مشترک چندضلعی جداگانه می‌شود
شکاف Create Feature از شکاف چندضلعی ساخته می‌شود تا با Merge به همسایه ملحق شود
آویزان Extend / Trim / Snap خط تا خط مجاور امتداد، کوتاه یا چسبانده می‌شود
گره کاذب Merge To Largest دو خط متصل در گره یکی می‌شوند
خودتقاطعی Simplify هندسه به بخش‌های معتبر شکسته می‌شود
نقطه خارج از خط جابه‌جایی دستی با Snapping Fix خودکار ندارد

مهم‌ترین اصل: اصلاح خودکار همیشه درست نیست. مثلاً Merge در هم‌پوشانی دو قطعه‌ی ملکی، ناحیه‌ی مشترک را به یکی می‌دهد؛ اما کدام قطعه حق دارد؟ پاسخ در سند است، نه در نرم‌افزار. برای داده‌ی حقوقی، خطا را بررسی و با سند تطبیق دهید.

🐞 خطای رایج و راه‌حل

اگر پس از Fix خطا هنوز در فهرست است، احتمالاً Validate نکرده‌اید. Error Inspector خطاها را فقط پس از Validate به‌روز می‌کند.

💡 نکته

برای شکاف‌های بسیار زیاد و ریز، ابتدا همه را با Create Feature به چندضلعی تبدیل کنید، سپس با Select By Attributes آن‌هایی که مساحتشان زیر یک حد است انتخاب و با ابزار Eliminate (در لایسنس Advanced) به همسایه‌ی با بیشترین مرز مشترک ملحق کنید.

✅ نکات کلیدی این بخش

  • Error Inspector مرکز کار با خطاهاست
  • Fix را بر اساس منطق داده انتخاب کنید
  • Exception برای وضعیت‌های درست
  • پس از هر دور اصلاح Validate کنید

✏️ ویرایش با توپولوژی ژئودیتابیس

وقتی توپولوژی ژئودیتابیس در نقشه است، می‌توانید آن را به‌عنوان توپولوژی فعال ویرایش انتخاب کنید. در زبانه‌ی Edit، گروه Manage Edits، منوی کشویی Topology را باز کنید و توپولوژی مورد نظر را انتخاب کنید. از این لحظه، ابزارهای ویرایش لبه‌ها و گره‌های مشترک را می‌شناسند.

🧰 ابزارهای ویرایش توپولوژیک

ابزار کاربرد
Modify Edge جابه‌جایی رئوس یک لبه‌ی مشترک؛ همه‌ی عوارض متصل با هم تغییر می‌کنند
Reshape Edge تغییر شکل لبه‌ی مشترک با رسم یک خط جدید
Align Edge هم‌مرز کردن لبه‌ی یک عارضه با لبه‌ی دیگر
Show Shared Features دیدن اینکه یک لبه یا گره بین کدام عوارض مشترک است

این ابزارها در پنجره‌ی Modify Features در گروه Reshape قرار دارند. ابتدا روی لبه کلیک کنید تا انتخاب شود (لبه به رنگ متفاوت نمایش داده می‌شود)، سپس تغییر را اعمال و با Finish یا F2 تأیید کنید.

📌 یادداشت

ویرایش لبه‌ی مشترک یعنی یک تغییر، چند عارضه. اگر می‌خواهید فقط مرز یک قطعه را تغییر دهید و همسایه ثابت بماند، توپولوژی را روی No Topology بگذارید و از Reshape معمولی استفاده کنید؛ اما بدانید این کار ممکن است شکاف یا هم‌پوشانی جدید بسازد.

✅ نکات کلیدی این بخش

  • توپولوژی فعال را از منوی Topology زبانه‌ی Edit انتخاب کنید
  • Modify Edge و Reshape Edge لبه‌ی مشترک را با هم تغییر می‌دهند
  • Show Shared Features عوارض متصل را نشان می‌دهد

🗺️ Map Topology: ویرایش هم‌مرزی بدون ساخت توپولوژی

Map Topology یک توپولوژی سبک و موقت است که از لایه‌های قابل ویرایش و قابل مشاهده‌ی نقشه ساخته می‌شود. قانون، Validate و جدول خطا ندارد؛ فقط تشخیص می‌دهد کدام لبه‌ها و گره‌ها بین عوارض مشترک‌اند. بزرگ‌ترین مزیتش این است که در لایسنس Basic و حتی روی Shapefile کار می‌کند.

🛠️ مراحل استفاده از Map Topology

  1. ۱لایه‌هایی را که هم‌مرزند (مثلاً Parcels و Blocks) به نقشه اضافه کنید و مطمئن شوید هر دو قابل ویرایش‌اند.
  2. ۲در زبانه‌ی Edit، گروه Manage Edits، از منوی کشویی Topology گزینه‌ی Map Topology را انتخاب کنید.
  3. ۳در صورت نیاز، از همان منو Map Topology Options یا تنظیمات Edit Options را باز کنید تا لایه‌های شرکت‌کننده و Tolerance را تنظیم کنید.
  4. ۴پنجره‌ی Modify Features را باز و ابزار Modify Edge را انتخاب کنید.
  5. ۵روی مرز مشترک کلیک کنید. با کشیدن رئوس، مرز هر دو لایه هم‌زمان تغییر می‌کند.
  6. ۶برای تغییر شکل بزرگ‌تر، از Reshape Edge استفاده کنید و مسیر جدید را رسم کنید.
  7. ۷تغییرات را Save کنید و با Map Topology روی No Topology برگردید.
مقایسه Map Topology و توپولوژی ژئودیتابیس در ArcGIS Pro
انتخاب بین دو نوع توپولوژی در آرک جی آی اس پرو

💡 نکته

وقتی Map Topology فعال است، Tolerance آن تعیین می‌کند چه رئوسی «مشترک» فرض شوند. اگر دو مرز ظاهراً منطبق با هم حرکت نمی‌کنند، یعنی رئوسشان دقیقاً منطبق نیستند؛ ابتدا با توپولوژی ژئودیتابیس یا Snapping آن‌ها را هم‌مرز کنید.

✅ نکات کلیدی این بخش

  • Map Topology موقت و بدون قانون است
  • در Basic و برای Shapefile هم کار می‌کند
  • Modify Edge و Reshape Edge اصلی‌ترین ابزارها هستند

📤 گزارش‌گیری و پایش دوره‌ای خطاها

در سازمان‌ها، کنترل کیفیت یک بار انجام نمی‌شود؛ باید دوره‌ای تکرار و گزارش شود. ابزار Export Topology Errors خطاها را در سه کلاس نقطه، خط و چندضلعی خروجی می‌دهد که شامل نام قانون، کلاس‌های درگیر و وضعیت Exception است. با این کلاس‌ها می‌توانید:

  • با Summary Statistics تعداد خطاها را بر اساس قانون شمارش و در گزارش ماهانه ارائه کنید.
  • خطاها را در یک نقشه‌ی وب منتشر کنید تا ویرایشگران میدانی بدانند کجا باید بازبینی شود.
  • روند کاهش خطاها را در طول پروژه با نمودار نمایش دهید.
  • خطاها را بر اساس منطقه یا پیمانکار با Spatial Join تفکیک کنید.

💡 نکته

یک جدول «سطح قابل قبول» تعریف کنید: مثلاً صفر هم‌پوشانی در قطعات، کمتر از ۱٪ آویزان غیرواقعی در معابر. تحویل داده از پیمانکار را منوط به رسیدن به این سطح کنید.

✅ نکات کلیدی این بخش

  • Export Topology Errors برای گزارش
  • شمارش خطا بر اساس قانون
  • سطح قابل قبول برای تحویل داده تعریف کنید

💼 سه سناریوی واقعی طراحی قوانین

قوانین توپولوژی وقتی معنا پیدا می‌کنند که از نیاز واقعی پروژه بیایند. سه طراحی رایج را مرور می‌کنیم که می‌توانید با کمی تغییر در کار خودتان به کار ببرید.

🏘️ سناریو ۱: کاداستر و قطعات ملکی

در کاداستر، قطعات یک پوشش پیوسته‌اند: نه باید روی هم باشند و نه باید بینشان فضای خالی باشد. همچنین هر قطعه باید داخل یک بلوک باشد و هر قطعه یک نقطه‌ی پلاک داشته باشد.

کلاس قانون کلاس دوم
Parcels Must Not Overlap –
Parcels Must Not Have Gaps –
Parcels Must Be Covered By Blocks
Parcels Contains Point ParcelPoints
ParcelPoints Must Be Properly Inside Parcels

در این طراحی، Blocks رتبه‌ی ۱ می‌گیرد، چون مرز بلوک‌ها معمولاً با دقت بالاتری از محور خیابان برداشت شده است. نتیجه‌ی کنترل کیفیت کاداستر باید صفر خطای فعال باشد؛ هر هم‌پوشانی باقی‌مانده یک اختلاف ملکی بالقوه است.

🛣️ سناریو ۲: شبکه‌ی معابر برای تحلیل مسیر

برای تحلیل شبکه، خطوط معابر باید در تقاطع‌ها شکسته و به هم متصل باشند. قوانین پیشنهادی:

کلاس قانون هدف
Roads Must Not Have Dangles یافتن خیابان‌های نرسیده به تقاطع
Roads Must Not Intersect یافتن تقاطع‌هایی که خطوط در آن شکسته نشده‌اند
Roads Must Not Self-Overlap حذف قطعه‌های تکراری روی هم
Roads Must Be Single Part جلوگیری از خطوط چندبخشی

پس از Validate، بن‌بست‌های واقعی (کوچه‌های بن‌بست) را Exception کنید و Dangleهای ناشی از Undershoot را با Extend و Overshootها را با Trim اصلاح کنید. برای تقاطع‌های شکسته‌نشده، ابزار Planarize Lines در زبانه‌ی Edit کمک می‌کند خطوط انتخاب‌شده در محل تقاطع شکسته شوند. توجه کنید که پل‌ها و زیرگذرها تقاطع واقعی نیستند و باید Exception شوند.

💧 سناریو ۳: شبکه‌ی آب و تأسیسات

در شبکه‌ی آب، شیرها و انشعاب‌ها باید دقیقاً روی لوله باشند و لوله‌ها نباید آویزان رها شوند:

کلاس قانون کلاس دوم
Valves Must Be Covered By Line Pipes
Hydrants Point Must Be Covered By Line Endpoint Pipes
Pipes Must Not Have Dangles –
Pipes Must Not Overlap –

خطای Must Be Covered By Line اصلاح خودکار ندارد؛ نقاط را با Snapping روی لوله منتقل کنید. اگر تعداد زیاد است، ابزار Snap در ژئوپروسسینگ (Editing toolset) می‌تواند نقاط را تا فاصله‌ی مشخص به نزدیک‌ترین لوله بچسباند؛ اما پیش از اجرا حتماً پشتیبان بگیرید، چون این ابزار داده‌ی ورودی را مستقیم تغییر می‌دهد.

💡 نکته

برای شبکه‌های تأسیساتی پیچیده، Esri مدل Utility Network را پیشنهاد می‌کند که قوانین اتصال خودش را دارد. توپولوژی ژئودیتابیس برای پروژه‌های کوچک‌تر و پاک‌سازی داده پیش از انتقال به Utility Network بسیار مناسب است.

✅ نکات کلیدی این بخش

  • قوانین را از نیاز پروژه استخراج کنید
  • کاداستر: Overlap و Gap صفر
  • معابر: Dangle، Intersect و Exception برای بن‌بست و پل
  • تأسیسات: نقطه روی خط و ابزار Snap با احتیاط

🏢 توپولوژی در ژئودیتابیس سازمانی و کار تیمی

در ژئودیتابیس فایلی، یک نفر در هر زمان ویرایش می‌کند و Validate ساده است. در ژئودیتابیس سازمانی با چند ویرایشگر هم‌زمان، چند نکته‌ی مهم وجود دارد:

  • در ویرایش نسخه‌دار (Versioned)، هر ویرایشگر در نسخه‌ی خودش Validate می‌کند و Dirty Areaهای او هنگام Reconcile و Post به نسخه‌ی والد منتقل می‌شوند.
  • پیش از Post، همه‌ی Dirty Areaهای نسخه را Validate کنید تا خطای بررسی‌نشده وارد نسخه‌ی اصلی نشود.
  • مدیر داده می‌تواند با یک اسکریپت شبانه Validate Topology را روی نسخه‌ی اصلی اجرا و گزارش خطاها را ایمیل کند.
  • توپولوژی را می‌توان همراه کلاس‌ها به‌صورت سرویس عارضه منتشر کرد تا در برنامه‌های وب هم خطاها قابل مشاهده باشند؛ این قابلیت به ArcGIS Enterprise و نسخه‌ی مناسب ژئودیتابیس نیاز دارد.

در کار تیمی، توپولوژی فقط ابزار فنی نیست؛ قرارداد کیفیت بین اعضای تیم است. قوانین و Exceptionها را مستند و با همه‌ی ویرایشگران به اشتراک بگذارید.

✅ نکات کلیدی این بخش

  • هر نسخه Dirty Area خودش را دارد
  • پیش از Post، Validate کنید
  • Validate شبانه و گزارش خودکار
  • قوانین را مستند کنید

🧪 تمرین عملی: پاک‌سازی نقشه‌ی کاربری اراضی

  1. ۱یک ژئودیتابیس فایلی Topo_Lab.gdb بسازید و در آن Feature Dataset با نام LandUse و یک سیستم مختصات متریک (مثل UTM منطقه‌ی خودتان) ایجاد کنید.
  2. ۲یک کلاس چندضلعی Parcels و یک کلاس خطی Roads در آن بسازید.
  3. ۳ده قطعه‌ی همسایه رسم کنید و عمداً دو هم‌پوشانی و دو شکاف کوچک ایجاد کنید. چند خیابان هم رسم کنید که یکی به تقاطع نرسد.
  4. ۴با Create Topology Wizard توپولوژی LandUse_Topology را بسازید؛ Parcels رتبه ۱ و Roads رتبه ۲.
  5. ۵قوانین Must Not Overlap و Must Not Have Gaps را برای Parcels و Must Not Have Dangles را برای Roads اضافه کنید.
  6. ۶Validate All را اجرا و با Error Inspector خطاها را بشمارید: باید دو هم‌پوشانی، دو شکاف به‌علاوه‌ی خطای مرز بیرونی و چند Dangle ببینید.
  7. ۷هم‌پوشانی‌ها را با Merge، شکاف‌ها را با Create Feature و سپس Merge و Dangle را با Extend اصلاح کنید.
  8. ۸خطای مرز بیرونی و بن‌بست‌های واقعی را Exception کنید و دوباره Validate کنید تا هیچ خطای قرمزی باقی نماند.
  9. ۹در نهایت Map Topology را فعال کنید و مرز مشترک دو قطعه را با Modify Edge جابه‌جا کنید.

💡 نکته

چک‌لیست موفقیت: Error Inspector بدون خطای فعال است، Exceptionها فقط موارد درست‌اند، مجموع مساحت قطعات با مساحت محدوده برابر است و ویرایش لبه‌ی مشترک هیچ شکاف جدیدی نساخته است. داده‌ی تمرینی آماده در داده های آرک جی آی اس پرو و تمرین‌های بیشتر در تمرین های آرک جی آی اس پرو.

🏙️ سناریوی واقعی: پاک‌سازی لایه‌ی قطعات ثبتی پیش از تحویل به اداره‌ی ثبت

یک دفتر نقشه‌برداری باید لایه‌ی حدود ۲۰۰۰ قطعه‌ی ثبتی را تحویل دهد و کارفرما شرط کرده است که هیچ هم‌پوشانی یا شکافی بین قطعات نباشد. بررسی چشمی چنین لایه‌ای ممکن نیست، اما توپولوژی ژئودیتابیس این کار را نظام‌مند می‌کند:

  1. ۱قطعات را در یک Feature Dataset قرار دهید و توپولوژی با قوانین Must Not Overlap و Must Not Have Gaps بسازید.
  2. ۲توپولوژی را Validate کنید و در پنجره‌ی Error Inspector تعداد خطاها را به تفکیک قانون ببینید.
  3. ۳خطای شکاف دور مرز بیرونی منطقه را که طبیعی است، به‌صورت Exception علامت بزنید.
  4. ۴هم‌پوشانی‌ها را با Subtract یا Merge و شکاف‌ها را با Create Feature از داخل Error Inspector رفع کنید و دوباره Validate کنید تا خطا صفر شود.

💡 نکته

پیش از رفع خطاها، تعداد آن‌ها را به تفکیک قانون یادداشت کنید و همراه لایه‌ی نهایی گزارش دهید. گزارش «۱۸۷ هم‌پوشانی و ۴۳ شکاف شناسایی و رفع شد» برای کارفرما سند کیفیت کار شماست.

🐞 خطاهای رایج و راه‌حل

مشکل علت راه‌حل
گزینه‌ی New > Topology دیده نمی‌شود کلاس‌ها در Feature Dataset نیستند یا لایسنس Basic است ساخت Feature Dataset؛ بررسی لایسنس
کلاس در فهرست ویزارد نیست کلاس در توپولوژی دیگر عضو است یا نوع آن پشتیبانی نمی‌شود حذف از توپولوژی قبلی
پس از Validate شکل عوارض کمی تغییر کرد Cluster Tolerance بزرگ مقدار پیش‌فرض و بازگردانی از پشتیبان
خطاها پس از اصلاح باقی‌اند Validate اجرا نشده Validate دوباره
Validate بسیار طولانی است کلاس‌ها و قوانین زیاد، داده‌ی بزرگ Validate محدوده‌ای، حذف قوانین غیرضروری
Modify Edge کار نمی‌کند توپولوژی فعال انتخاب نشده انتخاب توپولوژی یا Map Topology در زبانه‌ی Edit
مرزها با Map Topology با هم حرکت نمی‌کنند رئوس دقیقاً منطبق نیستند هم‌مرزسازی با Snapping یا Align Edge

❓ پرسش‌های متداول درباره توپولوژی در ArcGIS Pro

🔹 توپولوژی در ArcGIS Pro به چه لایسنسی نیاز دارد؟

ساخت و مدیریت توپولوژی ژئودیتابیس به لایسنس Standard یا Advanced نیاز دارد. Map Topology برای ویرایش لبه‌های مشترک در همه‌ی سطوح لایسنس، از جمله Basic، در دسترس است.

🔹 آیا می‌توان برای Shapefile توپولوژی ساخت؟

توپولوژی ژئودیتابیس خیر؛ ابتدا باید Shapefile را به کلاس عارضه در یک Feature Dataset منتقل کنید. اما Map Topology روی Shapefile هم کار می‌کند.

🔹 Cluster Tolerance را چقدر بگذارم؟

در بیشتر موارد مقدار پیش‌فرض که برابر XY Tolerance دیتاست است (معمولاً یک میلی‌متر) بهترین است. افزایش آن برای پاک کردن خطاها توصیه نمی‌شود، چون شکل عوارض را تغییر می‌دهد.

🔹 چرا Must Not Have Gaps همیشه یک خطا دارد؟

چون مرز بیرونی کل داده هم از نظر نرم‌افزار کنار یک «شکاف» قرار دارد. این خطا را با Mark as Exception علامت بزنید.

🔹 Dirty Area چیست؟

ناحیه‌ای است که پس از ساخت توپولوژی یا ویرایش عوارض هنوز Validate نشده است. Validate فقط همین نواحی را بررسی می‌کند و پس از آن پاک می‌شوند.

🔹 Exception با پاک کردن خطا چه فرقی دارد؟

Exception یعنی پذیرفتن آگاهانه‌ی یک حالت به‌عنوان درست؛ خطا در توپولوژی باقی می‌ماند اما با رنگ متفاوت و جدا از خطاهای فعال نمایش داده می‌شود و در Validateهای بعدی دوباره خطا گزارش نمی‌شود.

🔹 Map Topology و توپولوژی ژئودیتابیس را می‌توان هم‌زمان استفاده کرد؟

در هر لحظه یک توپولوژی فعال ویرایش دارید؛ اما می‌توانید بین آن‌ها از منوی Topology در زبانه‌ی Edit جابه‌جا شوید.

🔹 بهترین زمان Validate کردن چه موقع است؟

پس از هر دور ویرایش منطقی، پیش از تحویل داده و پیش از هر تحلیل مهم مثل محاسبه‌ی مساحت یا Union. برای داده‌ی بزرگ، Validate زمان‌بندی‌شده با اسکریپت هم مفید است.

🔹 فرق خطای واقعی توپولوژی با Exception چیست؟

خطا نقض یک قانون است که باید رفع شود. Exception حالتی است که قانون نقض شده اما این نقض در واقعیت درست است؛ مثلاً شکاف بیرونی دور کل منطقه. با علامت‌گذاری به‌عنوان Exception، آن مورد در اعتبارسنجی‌های بعدی دیگر خطا شمرده نمی‌شود.

🏁 جمع‌بندی

در این فصل یاد گرفتیم توپولوژی در ArcGIS Pro چگونه روابط مکانی را کنترل می‌کند: توپولوژی ژئودیتابیس را طراحی و با ویزارد یا Python ساختیم، قوانین مناسب چندضلعی، خطی و نقطه‌ای را انتخاب کردیم، Validate کردیم، خطاها را با Error Inspector اصلاح یا Exception کردیم و با Map Topology لبه‌های مشترک را بدون شکستن هم‌مرزی ویرایش کردیم. حالا داده‌ی ما هم از نظر توصیفی و هم از نظر هندسی تمیز است. در فصل بعد یاد می‌گیریم داده‌ها را بین قالب‌های مختلف جابه‌جا کنیم: فصل یازدهم: تبدیل داده در ArcGIS Pro.

✅ نکات کلیدی این بخش

  • توپولوژی ژئودیتابیس برای یافتن خطا، Map Topology برای ویرایش هم‌مرز
  • قانون را از پرسش واقعی استخراج کنید
  • Validate، اصلاح، Exception، دوباره Validate
  • پیش از هر کار سنگین پشتیبان بگیرید

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

🔗 مطالب پایه‌ی مرتبط: آشنایی با رابط کاربری ArcGIS Pro، ساخت پروژه در ArcGIS Pro، افزودن داده در ArcGIS Pro و پیمایش نقشه و بوکمارک در ArcGIS Pro.

📖 منابع: مستندات رسمی Esri: Topology in ArcGIS Pro و Create Topology tool.

📕 مطالعه‌ی بیشتر: موضوع‌بندی این مطلب از فصل ۱۰ کتاب ArcGIS Pro 3.x Cookbook (ویرایش دوم)، نوشته‌ی Tripp Corbin، انتشارات Packt، ۲۰۲۴ الهام گرفته است؛ متن، مراحل و مثال‌ها نوشته‌ی اختصاصی گیس‌لند هستند.

بدون دیدگاه

دیدگاهتان را بنویسید