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

مشاهدة النسخة كاملة : تحويل خط متعدد النقاط الى خط يحوي نقطتين فقط



رسلان احمد عثمان
08-29-2009, 04:43 AM
السلام عليكم
السؤال الذي اطرحه هل يمكن تحويل مجموعة خطوط (كل خط يحوي نقاط عديدة اي اكثر من نقطتين) الى خطوط تحوي نقطتين (نقطة البداية ونقطة النهاية)

المهندس حسن الخزاعي
08-29-2009, 02:43 PM
دبل كللك على الخط سوف تضهر vertex المكونة للخط نقف على vertex و R.C نختار Delete vertex

محمد حمود
08-29-2009, 03:10 PM
في برنامج ArcGIS ومن خلال ArcToolBox يوجد عملية اسمها Simplify Line تقوم بهذا الغرض.

د. وسام محمد
08-29-2009, 04:08 PM
الأخ السائل
يستخدم الحاسوب نظام رياضي معقد لتمثيل الـ Graphics بغض النظر عن موضوع الـ Graphics نفسه هل هو خريطة في نظام معلومات جغرافي أم طبقة في برنامج GIMP. عند رسم الخطوط فإن رسم الخط الواصل بين نقطيتين مباشرة والذي يظهر في الصورة المستقيمة التقليدية يستلزم استخدام طريقة بسيطة للرسم تسمى First Order Interpolated Line، وقد يظهر الخط في صورة قوس Arc ويمر بذات النقطيتن وينظر له الحاسوب ايضاً كخط لكن يستخدك طريقة رسم أخرى هي Second Order Interpolated Line، وكلما ازادات درجة الـ Interpolation كلما زاد تعقد الشكل وزادت إمكانية مروره بأكثر من نقطة. لكن في كثير من الأحوال يعجز الـ Interpolator على المرور بكل النقط لذلك تجده يمر ببعض النقط ويمر إلى جانب بعض النقط الأخرى، وتقدر كفاءه الـ Interpolator بمدى اقتراب الخط الذي يرسمه من النقط المقدر مروره بها.
الأداة التي ذكرها الأخ حمود في ArcGIS تقوم بهذه العملية، وتستخدم interpolator ذي درجة عالية، لذلك فإن الخط الناتج عن عملية الـ Simplifying لا يمر تمام المرور بجميع النقاط للخط الأصلي.
إذا أردت الوقوف على المزيد من المعلومات بشأن تمثيل الرسوم حاسوبياً يمكنك الرجوع إلى كتاب Spatial Data Types for Database Systems لمؤلفه ماركوس شنايدر Markus Sneider وهو من أقيم الكتب في هذا المجال بالرغم أنه قد طبع منذ نحو عشرة أعوام.
تقبل تحياتي

رسلان احمد عثمان
08-29-2009, 04:33 PM
جزاكم الله خير الجزاء

عبادة مالك
08-29-2009, 06:07 PM
الدكتور وسام :أي انك لا تنصح باستخدام طريقة الاستاذ محمد حمود أليس كذلك ...
وهل اذا استخدمناها تتغير امكنه النقاط المؤلفة للخط

رسلان احمد عثمان
08-29-2009, 07:19 PM
السلام عليكم
ان الغاية من السؤال هو ان هناك طرق لتحديد الخطيات اوتوماتيكيا لكن المشكلة هي ان الخطوط الناتجة تتكون من اكثر من نقطتين وهذا يعيق الحساب الروزي فلذا يجب تحويل هذه الخطوط الى خطوط مزدوجة النقط ولكن مع الاسف جربت ما تفضل به الاخ حمود والنتيجة لم تكن كما اشار او كما تمنيت فمن كان له زيادة علم فليتحفنا وله الاجر

عبادة مالك
08-29-2009, 07:59 PM
هنالك طريقة اخرى عبر الاوتوكاد ...
حول كل عملك الخطي على شكل dxf ومن ثم ومن خلال الاوتوكاد اكتب في سطر الاوامر ped وعلم كل الخطوط ومن ثم انتر وبالتالي تصبح كل الخطوط مؤلفة من خط بداية ونهاية

او جرب واكتب الامر ايضا الأمر BPOLY واختصار هو bo
والامر الاول ped هو اختصار ل PEDIT

رسلان احمد عثمان
08-30-2009, 04:19 AM
جزاك الله كل خير ساحاول والله المستعان

د. وسام محمد
08-30-2009, 09:38 AM
لم اقل أنني لا أنصح باستخدام طريقة الآستاذ حمود
فهذه الأداة Simplify Line إلى جانب الأداة Smooth Line لها الكثير من الاستخدامات المفيدة، على سبيل المثال استخدمها شخصياً كي أجعل خطوط الكونتور المتولدة من نموذج ارتفاعات رقمي ذات شكل أفضل.

رسلان احمد عثمان
08-30-2009, 06:21 PM
السلام عليكم
ارجو ان يتفضل احد الاساتذة باععانتي في تحويل الخط المتعدد النقاط الى خط ذو نقطتين باستخدام الارك جي اي اس علما ان النصيحة التي افادني فيها الاخ محمد حمود لم تعني في عملي مع امتناني لكل من اعان وابدى رأيه

د. وسام محمد
08-30-2009, 08:31 PM
أخي العزيز رسلان
لا يتيح ArcGIS إلا الطريقة التي ذكرها الأخ حمود وطريق أخرى هي Line Smoothing، وإذا كان الخط حاصتك كثير التعريج لن يمكنك أبدا أن تحوله إلى خط ذي نقطتين وتحافظ على شكله.

عبادة مالك
08-30-2009, 11:32 PM
السلام عليكم الدكتور وسام
اذا ..اذا لم يكن هنالك اي طريقة من خلال arcgis ..فالطريقة الوحيدة هي اعادة تحميل طبقة الخطوط وذلك بعد اجراء تحويل الخطوط عبر برنامج الاوتوكاد ..ومهما كان الخط يحوي عدة قمم vertex ومهما كان يحوي انحناءات فان طريقتي من خلال الاوتوكاد هي عالية الدقة ويبقى الخط محافظا على علاقات التوبولوجي

د. وسام محمد
08-31-2009, 01:18 AM
سؤال: ماذا لو أن هناك بيانات وصفية Atrributes لهذه الطبقة؟ إذا ذهبت إلى AutoCad ضاعت كل الـ Attributes...

د. علي الغامدي
08-31-2009, 01:53 AM
بعد انقطاع عن المشاركة يسعدني البدء هنا في هذا المجال بحكم تخصصي في التعميم الخرائطي الآلي

فأولا تحية للجميع وتقبل الله طاعتكم وغفر لنا ولكم

طريقة تبسيط الخطوط في ArcGIS هي طريقة دوكلاس وبويكر وتعد أفضل الطرق تقريبا لحد الآن وهي معنية بحذف النقاط غير المهمة
والإبقاء على المهم منها من وجهة نظر هندسية، وهي طريقة لا تعتمد على معادلة تعدد الحدود ولا علاقة لها بذلك، وإنما تعتمد على فترة معينة Tolerance يحددها المستخدم وكلما زادت الفترة (قيمة بالوحدات الأرضية) زاد التبسيط.
وهذه الطريقة كل هدفها أن تحاول الإبقاء على الشكل الرئيس للخط (للظاهرة الخطية) وحذف الأجزاء غير المهمة من وجهة نظر هندسية.

وهي مقنعة من وجهة النظر الخرائطية -وهذا أهم شيء في عملية التعميم الخرائطي.
أما طريقة التبسيط بالصقل Smoothing فهي تستخدم معادلات متعددة الحدود وهي تقلل النقاط في بعض الأجزاء وتزيدها في أماكن أخرى، لذا فهي طريقة مفيدة لتحسين المظهر العام للشكل خاصة بعد عملية الترقيم بطريقة Point Mode وتستخدم في تحسين مظهر خط الكنتور أو المجرى المائي.
فائدة الطريقة الأولى أنها تقلل البيانات بدرجة كبيرة إلى درجة أن النقص يصل إلى 70 % ولا تستطيع أن تميز بالعين بين الخط الأصلي والخط المبسط، وفي هذه الحالة نستخدم فترة مدى قليلة للتخلص من أخطاء الترقيم بالذات ثم نستخدم مرة أخرى طريقة الصقل للخط الناتج المبسط لصقله ثم نستخدم طريقة التبسيط الأولى (دوغلاس-بويكر) لكن بفترة اقل للتخلص من الزيادة في النقاط التي احدثتها طريقة الصقل. بهذه الطريقة ننتج عمل خرائطي احترافي وليس الاقتصار على الترقيم فقط واعتبار ان قاعدة البيانات جاهزة.
هذا التطبيق المركب حسب هذا التسلسل يطبق على الخطوط المتعرجة فقط.
ارجو ان أكون أفدت ولا استعرضت !! كما قيل، لأن ما يهمني هو أن نعمل الخرائط على أسس صحيحة وأن اقدم معلومة يستفيد منها الجميع وليس السائل فقط.

عبادة مالك
08-31-2009, 01:58 AM
اشكرك دكتور وسام ...
ولكن لا يمكن بناء بيانات وصفية على اساس خاطئ .لان صاحب الموضوع تكلم انه يريد جعل الخط المستقل بذاته عبارة عن عنصر feature , واحد ..فعلى سبيل المثال الخط المسقيم المشاهد عبر شاشة arcmap قد تظنه عنصر واحد ولكن بالضغط عليه عبر اداة identify تجد انه قد يتألف من عشرات features وبالتالي كل عنصر feature له بيانات وصفيه خاصه به ..
وعندما نحول ونصحح الخطوط فان قاعدة البيانات الوصفية اصبحت مشوشة وتحتاج الى ادخال يدوي من جديد ...
...........
واعرض مثالا على ذلك ..في قانون رسم الشوارع فان الشارع يرسم كمضلع مغلق وذلك لانه يعتبر عنصر واحد له اسم واحد ورمز وتاريخ بناءه وغير ذلك ...ولقلة خبرة الرسام يقوم رسم الشارع عبر الاوتوكاد مثلا على شكل خطوط بتعليمة line وبالتالي كل قفزة عبر الماوس تعبر عن عنصر منفصل عن الاخر ...
وبالتالي لا يمكن بناء قاعدة بيانات وصفية تصف هذه الشارع الا اذا حولناه الى عنصر واحد

رسلان احمد عثمان
08-31-2009, 04:41 AM
السلام عليكم
اولا احب ان اتقدم بخالص الامتنان على جوابكم المكرم وعلى سعة صدركم
ثم اود ان اقول ان العمل الذي اقوم به هو تحديد الخطيات باستخدام برنامج الايرداس اوتوماتيكيا والغاية هو توفير في الوقت والكلف حيث ان التحديد اليدوي يتطلب اياما او شهور وان شاء الله ينشر هذا البحث في المنتدى بعد نشره في احد المجلات الرصينة
ان النتائج التي توصلت اليها هي خطوط تصل الى 21200 خط كل خط يحوي اكثر من نقطتين والغاية هو تحويل هذه الخطوط الى خطوط ثنائية النقط لغرض معاملتها ببرنامج الروك وير الذي يعتمد في عمل المخطط الروزي على خطوط ثنائية النقط ثم ان الاتربيوت الخاص سيعمل اوتوماتيكيا بعد عملية المعالجة المرام التوصل اليها وتشمل زاوية الخط مع الشمال وطول الخط واحداثيات بداية ونهاية ومنتصف الخط
المطلوب هو تحويل الخطوط متعددة النقط الى خطوط ثنائية النقط ان امكن باستخدام الارك جي اي اس والا فساضطر الى استخدام الاوتوكاد كما اشار متفضلا الاخ عبادة والله المستعان

د. علي الغامدي
09-01-2009, 12:45 AM
الأخ رسلان

يمكنك استخدام طريقة Simplify (طريقة دوكلاس -بويكر) لكن ضع الفترة Tolerance كبيرة جدا وسوف يبقى نقطتين (البداية والنهاية. لكن لاحظ، إذا كان الخط الواحد مكون من أكثر من عقدتين Node فإن التبسيط في هذه الحالة سوف يقتصر على كل خط مكون من عقدتين، أي إذا كان الخط فيه ثلاث عقد وعدد من النقاط فإن التبسيط الكبير سوف يبقي على الثلاث عقد ويحذف باقي النقاط البينية. وفي هذه الحالة عليك أن تحول يدويا العقد إلى نقاط vertecies -أمر لابد منه. وتأكد من أن كل خط يحمل رمز تعريفي واحد بصفاته الخاصة به.
أما إذا كان كل خط مكون من عقدتين فقط فيمكن الاطمئنان بأن التبسيط بهذه الطريقة سيفي بالمطلوب.

رسلان احمد عثمان
09-02-2009, 04:56 AM
جزيت خيرا
اللهم بارك لكم في علمكم