المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : سؤال في (البفر buffer)



سعاد الدرة
02-23-2007, 06:30 PM
بسم الله الرحمن الرحيم


سأقوم بشرح طلبي وسؤالي واتمنى ان اجد حل لتساؤلي

اعمل في مشروع وهو يتضمن وضع لوحات ارشادية للشوارع وبعد الانتهاء تم اخبارنا بأن لابد ان لايكون هناك لوحتين اعلانيتين تقل المسافة بينهما عن 5 متر وان كان فلابد من ازالة احدهما

ونظرا لأن المشروع يتظمن اكثر من 16000 لوحة اعلانية فالمهمة مجهدة فأنا قمت بتحديد buffer لكل لوحة بمسافة 5 متر ليتم معرفة اللوحات المتقاربة من خلال تداخل حدود البفر للوحات المتقاربة
وبالفعل تم تحديد اكثر من 9000 لوحة

ولكن سؤالي هل هناك امر في الآرك جي اي اس يمكنني من ازالة لوحة واحدة عند كل تقاطع الbuffer بين لوحتين اي ازالت احدهما (اوتوماتيكي ) لصعوبة عمل الامر يدويا نظرا لضيق الوقت لدي

فأنا لدي خبرة متواضعة في البرنامج ولا اعلم ان كان هناك امر كهذا ام لابد ان اقوم بأمر الإزالة واحدة تلو الاخرى

وان كان هناك حل فأرجوا كتابته بالتفصيل علما بأنني استخدم arcgis 9.1
ولكم مني جزيل الشكر

فهد الأحمدي
02-23-2007, 08:41 PM
تفكير منطقي سليم وجيد، طالما أنك تستخدمين إصدار 9.1 فأحد الحلول هو استخدام منشيء النماذج (Model Builder) والموجود في صندوق الادوات (ArcToolbox) ويمكن الرجوع إلى ملف المساعدة (Help File) للتعرف على طريقة إنشاء نماذج
الخيار الثاني الأصعب نسبياً هو استخدام الأكواد البرمجية
والله أعلم

علي سرحان
02-24-2007, 11:20 AM
مرحبا

لم اجرب ولكن اعتقد انه يمكن اختيار اللوحات بسهولة باستخدام Select by location
بوضع الشروط المناسبة ثم عمل Delet بعد عمل start Editor
والله اعلم

سعاد الدرة
02-24-2007, 02:11 PM
تفكير منطقي سليم وجيد، طالما أنك تستخدمين إصدار 9.1 فأحد الحلول هو استخدام منشيء النماذج (Model Builder) والموجود في صندوق الادوات (ArcToolbox) ويمكن الرجوع إلى ملف المساعدة (Help File) للتعرف على طريقة إنشاء نماذج
الخيار الثاني الأصعب نسبياً هو استخدام الأكواد البرمجية
والله أعلم


بداية شكرا لسرعة الرد وبإذن الله سأقوم بمحاولة استخدام Model Builder وسأخبركم بالنتائج

وان كان لأحد معرفة بالأكواد التي تمكنني من ذلك فأتمنى اخباري



مرحبا

لم اجرب ولكن اعتقد انه يمكن اختيار اللوحات بسهولة باستخدام Select by location
بوضع الشروط المناسبة ثم عمل Delet بعد عمل start Editor
والله اعلم

اخي الكريم يمكنني اختيار اللوحات بسهولة ولكن مهمتي تقوم على ازالة واحدة وترك الأخرى اي ان اضافة الشروط ستشمل الـ9000 لوحة المتداخلة ولكن ما يجب علي فعله حذف لـ 4500 لوحة وترك الـ4500 الأخرى وهو امر مجهد ويحتاج لوقت انا لا املكة نظرا لكثر الانشغال

د. علي الغامدي
02-24-2007, 10:32 PM
يوجد تحليل مهم في النظم لمثل هذه المشاكل والمتطلبات، يسمى تحليل أحداث المسار سواء كانت أحداث نقطية أو خطية. Route Events - Line events or Point Events. وفي حالتك، هذه أحداث نقطية. فيجب أولاً أن تنشئي مسار Route للخط الذي تقع فيه اللوحات. ثم لك أن تعالجي، تحللي ما شئت، ولك أن تدمجي الأحداث وهكذا. المهم أن البرنامج يشرح ذلك في ملفات المساعدة. ويمكن الاستعانة بالإنترنت تحت عنوان: Merging point events in network analysis, GIS, ArcGIS.

يمكن بطريقة "أقل حضارية" أو "أكثر فهلوة" بعمل حزام (Buffer) بمسافة 10 متر وليس خمسة، ثم جعل حدود الحزام متصلة وهو الخيار الأول في ArcGIS ثم انظري في مساحة الحزام الواحد الذي كانت مسافته 10 أمتار فقط (أي أنظري الحزام الذي على شكل دائرة منتظمة كاملة) ، ثم استعلمي بالصفات عن الأحزمة التي تساوي هذه المساحة. ثم احتفظي بالنتيجة في طبقة منفصلة ولنسميها (أ). بعد ذلك اعكسي الاختيار للمساحات الباقية واحفظيها في طبقة ثانية منفصلة ولنسميها (ب). هذه الطبقة الثانية هي التي فيها تداخل. ثم حولي طبقة (ب) إلى طبقة في شكل تغطية (Cover) ثم اجري لها مراكز Centroid من ArcTool Box. ثم استخرجي هذه المراكز فيما بعد في شكل طبقة وادمجيها مع طبقة (أ). لاحظي أن المراكز الجديدة قد تمثل أكثر من لوحة اعلان وقد يكون موقع المركز خارج الخط، فيمكن عنئذ استخدام أداة التحديث والتصحيح لضبط المواقع. أنظري في كيفية حساب المساحة وحساب احداثيات المراكز في ملف مساعدة المستخدم، وهنا طريقة استخراج احداثيات المركز ووضعه في حقل يممكن أن تسميه X:
Adding the x,y coordinates of the centroid of a polygon layer to a new field
Optionally, start an edit session in ArcMap. Calculating a field is faster outside of an edit session, but you won't be able to undo the calculation.
Open the attribute table of the layer of the layer you want to edit.
Right-click the field heading for the X field (if there is no X field you can add a new field by clicking the options button and selecting the new field option).
Click Calculate Values.
Check Advanced.
Type the following VBA statement in the first text box.

Dim dblX As Double
Dim pArea As IArea
Set pArea = [Shape]
dblX = pArea.Centroid.X

Type the variable dblX in the text box directly under the X field name.
Click OK.
الفكرة هنا هو أن نقرأ في النظم الامكانيات وتطبق عليها كثيراً خاصة في مجال العمل، لأن هذا هو الذي سيبقى معنا أما أخذ حل جاهز فقد لا يفيدنا في العملية التعليمية والتطبيقية. هذا والله أعلم

ابراهيم نواصرة
02-25-2007, 06:02 PM
الرجاء من الاخت ان تبعث لي بطريقة الرسم ليتسنى لي فهم الموضوع والذي من الممكن افادتها بطريقة برمجية

علي أحمد
03-11-2007, 10:02 PM
الشباب ما بيقصروا إن شاء الله