أكثر

إزالة المسافات الصغيرة (الشظايا) بين المضلعات؟

إزالة المسافات الصغيرة (الشظايا) بين المضلعات؟


لدي مجموعة من المضلعات تمثل المناطق الإدارية. تم رقمنة المناطق يدويًا ، وهناك مسافات صغيرة (شظايا) بين المضلعات حيث يجب أن تتلامس المضلعات.

كيف يمكنني محاذاة المضلعات معًا وإزالة المسافات؟


يستخدم القضاء (مطلوب ترخيص ArcInfo)

يزيل المضلعات بدمجها مع المضلعات المجاورة التي تحتوي على أكبر مساحة أو أطول حد مشترك. يُستخدم "الإزالة" غالبًا لإزالة المضلعات الشظية الصغيرة الناتجة عن عمليات التراكب ، مثل التقاطع أو الاتحاد.

http://help.arcgis.com/ar/arcgisdesktop/10.0/help/index.html#//00170000005p000000.htm

لاحظ مستخدمو ArcGIS 10 أن هناك ميزة جديدة في خيارات هذه الأداة.

أصبح من الممكن الآن الحفاظ على POLYGON أو POLYLINE الأصلي باستخدام الخيار> على سبيل المثال (اختياري) إدخال متعدد الخطوط أو فئة أو طبقة معلم مضلع تحدد حدود المضلع ، أو أجزاء منه ، والتي لا يجب حذفها.


للقيام بذلك يدويًا في QGIS ، انتقل إلىالإعدادات | خصائص المشروع ...على الجنرال لواءعلامة التبويب في الجزء السفليخيارات الالتقاط ...تحقق من الطبقة التي تريد التقاطها ، واضبط الوضع عليهاإلى قمة الرأسوقم بتعيين التسامح إلى قيمة ما أقل من أقصر مسافة بين نقطتين لديك. إذا لم تكن متأكدًا ، فاضبط الوحدات علىبكسلوالتسامح مع شيء مثل 5 بحيث إذا كانت هناك بعض التفاصيل الدقيقة ، يمكنك التكبير والتأكد من عدم الانجذاب إلى الرأس الخطأ.

ثم قم بتحرير طبقة المتجه ، وحدد أداة العقدة ، وانقل النقاط الضالة إلى نظيراتها.

القيام بذلك تلقائيًا أصعب قليلاً. لا يحتوي AFAIK QGIS على مكون إضافي لأتمتة ذلك ، وعلى الرغم من أن PostGIS مبني على GEOS الذي يحتوي على وظائف الانجذاب ، إلا أنه لا يتعرض لـ PostGIS. قد يكون من الممكن كتابة استعلام للتحقق من كل نقطة في المضلع للجيران ضمن مسافة الالتقاط ، ولكن هذا يتجاوز ذكاءي حاليًا للتوسع فيه.

يحتوي GRASS على v.clean.snap والذي يمكنك الوصول إليه عبر QGIS ، ولكن هناك خطوة إضافية لإنشاء مجموعة بيانات GRASS.


إذا كنت معتادًا على QGIS: في QGIS trunk 1.9 (يمكن تثبيته كـ qgis.dev عبر مثبت OSGEO ، انظر الصفحة الرئيسية لـ qgis) هي وظيفة جديدة في قائمة المتجهات تسمى "القضاء على المضلعات الشظية" ، والتي تقوم بالضبط بما تفعله يريد. يمكنك تحديد المضلعات التي بها مشكلات ودمجها في المضلعات المجاورة بناءً على حد مشترك أو عرض منطقة. حاول!


إذا كنت من مستخدمي QGIS ، فستحصل على كل قوة GRASS ، حيث إنه نظام معلومات جغرافي طوبولوجي بالكامل. داخل QGIS ، قم بتنشيط البرنامج المساعد GRASS ، وقم بإنشاء موقع / مجموعة خريطة حيث يمكنك استيراد بياناتك.

افتح مجموعة الخرائط وقم باستيراد الطبقة المتسخة باستخدام v.in.ogr: العب مع المعلمتين المتقدمتين "عتبة الانطباق للحدود" و "الحد الأدنى لحجم المنطقة المراد استيرادها".

يمكنك أيضًا استخدام الخيارات التي توفرها وحدة v.clean.


يحتوي ArcGIS على قواعد طوبولوجيا ستساعدك على تحديد الفجوات الموجودة في بياناتك وتصحيحها مثل ما تشير إليه. من أجل إنشاء قواعد الطوبولوجيا سوف تقوم بذلك تحتاج إما إلى ترخيص ArcEditor أو ArcInfo وتخزين فئة المعالم الخاصة بك في مجموعة بيانات الميزة في قاعدة بيانات جغرافية شخصية أو ملف.

قد ترغب على الأرجح في تنفيذ قاعدة "يجب ألا يكون لديك فجوات". بمجرد إنشاء قاعدة القواعد مع جميع القواعد التي تعتقد أنها ضرورية ، قد ترغب في التحقق من صحة الهيكل الذي سيحدد جميع الأخطاء في بياناتك.

بعد ذلك ، باستخدام مراقب الأخطاء وأداة Fix Topology Errors Tool ، يمكنك إما بشكل فردي أو جماعي تحديد الأخطاء التي تريد إصلاحها وكيف تريد إصلاحها (على سبيل المثال - إنشاء مضلعات جديدة لملء الفراغات أو الدمج مع المضلعات الأكبر القريبة) .


توجد وظيفة "القضاء على المضلعات الشظية" في صندوق أدوات QGIS 2.12 (ليون). أنا متأكد من أنه موجود أيضًا في بعض الإصدارات السابقة.


حسنًا ، لقد كنت أستخدم وظيفة PostGIS (أستخدمها في QGIS الخاص بي مباشرةً) والتي تنفذ لقطة متكررة لحل هذه المشكلة. النتائج جيدة جدًا ، إنها تتطلب فقط قدرًا جيدًا من قيم التسامح للحصول على أفضل النتائج. إذا كنت على استعداد للمحاولة ، فتحقق منه (في حالتي ، تكون الأشكال الهندسية كلها متعددة ، ومن ثم فإن st_multi في تنفيذي):

إنشاء أو استبدال وظيفة dsgsnap (نص تابيلا ، تعويم سريع) يعيد باطل كـ $ BODY $ DECLARE id int ؛ ابدأ في تنفيذ المعرف ('حدد معرف من' || تابيلا) LOOP EXECUTE 'تحديث' || تابيلا || ' مثل classe set geom = st_multi (res.geom) من (حدد st_snap (a.geom ، st_collect (b.geom) ، '|| snap ||') كـ geom ، a.id كـ id من '|| tabela || 'a،' || tabela || 'b حيث a.id! = b.id و a.id =' || id || 'تجميع بواسطة a.id، a.geom) كـ res حيث res.id = classe .هوية شخصية'؛ نهاية الحلقة ؛ إرجاع؛ END $ BODY $ LANGUAGE plpgsql؛

واجهت نفس المشكلة ، والتي من خلال استكشاف الأدوات استقرت بسهولة تامة على الرغم من أنني لا أعرف المنطق. ! [في الأدوات ، انتقل إلى مربع أدوات إدارة البيانات ، وانتقل إلى فئة الميزات وقم بتشغيل البرنامج النصي المدمج بالنقر المزدوج] [1]

في نافذة البرنامج النصي ، حدد فئة الميزة التي بها مشكلة وفي التسامح XY ، أضف الوادي عن طريق قياس المسافة بمساعدة أداة القياس في نقاط متعددة واحصل على وادي متوسط ​​ضع هذه القيمة في بيئة التسامح وقم بتطبيق المشكلة التي أفعلها ليس الآن كيف ولكن تم حلها بدقة تصل إلى 90٪. ! [أدخل وصف الصورة هنا] [2]

لقد جربت جميع الطرق الأخرى الموضحة في الإجابات أعلاه ولكن كان من الصعب والمرهق الحصول على التصحيحات الآلية للفجوات بين المضلعات المجاورة.


ليس حلاً مثاليًا ، ولكن أحد هذين الأمرين يناسبني في معظم الحالات:

  1. في QGIS ، احفظ الطبقة بتنسيق GEOJSON. ولكن قبل الحفظ ، في مربع الحوار "حفظ الطبقة باسم" ، اضبط دقة الإحداثيات على 3 (15 هو الإعداد الافتراضي). سيكون لهذا تأثير توحيد القمم القريبة جدًا من بعضها البعض.

  2. انتقل إلى Mapshaper ، وقم بتحميل الملف ، واضغط على "تبسيط". في الزاوية العلوية اليسرى ، سيخبرك بعدد تقاطعات الخطوط التي يعثر عليها ، وسيمنحك خيار إصلاحها. أجد أن هذا الإصلاح يعمل حوالي نصف الوقت.


لم أستخدمها ، لكن ET Geowizards ، التي تجلب العديد من أدوات المعالجة ArcEditor و ArcInfo فقط إلى ترخيص مستوى ArcView (المعروف أيضًا باسم ArcGIS Standard) لديها معالج إزالة الذي "يزيل المضلعات غير المرغوب فيها (الشظايا) بدمجها في المضلعات المجاورة أو حذفها". ستعيدك مجموعة أدوات المعالج إلى 250 دولارًا أمريكيًا (قائمة الأسعار).


شاهد الفيديو: معادلات النصوص ـ 19 ـ ازالة الفراغات الزائدة من الأرقام بالمعادلات VALUE TRIM