أكثر

حساب نقاط من نوع معين داخل المضلع باستخدام ArcGIS ModelBuilder؟

حساب نقاط من نوع معين داخل المضلع باستخدام ArcGIS ModelBuilder؟


أقوم بتحليل مزارع الرياح وتوربينات الرياح في ArcGIS Desktop 10.2.

تتكون بياناتي من مواقع توربينات الرياح الفردية المرتبطة بمزرعة الرياح (دعنا نسميها "مزرعة الرياح أ"). من خلال إنشاء مخازن 5 كيلومترات حول كل مزرعة رياح ، أعلم أنه في حالات معينة تكون توربينات الرياح من مزرعة مجاورة (دعنا نسميها "مزرعة الرياح ب") جزءًا من المخزن المؤقت لمزرعة الرياح أ.

كيف يمكنني استخدام ModelBuilder لحساب عدد التوربينات داخل منطقة عازلة والتي تعد جزءًا من Wind Farm B وليست جزءًا من Wind Farm A (أي التوربينات الأجنبية داخل المخزن المؤقت A)؟

باستخدام أداة تحديد الميزات ، يمكنني حساب التوربينات يدويًا ، لكن هذا بطيء. أعلم أيضًا أنه يمكنني استخدام أداة قريب أو صلة مكانية للعد الكل النقاط في المضلع ، ولكن كيف يمكنني بعد ذلك تحديد فقط تلك التي ليست جزءًا من Wind Farm A؟

أرفق لقطة شاشة توضح التحدي الذي أواجهه بصريًا.


أريد أن أقدم حلاً بديلاً لمتابعة فقرتك الأخيرة ، والتي يمكن إنجازها بسهولة في تحليل واحد دون الحاجة إلى التكرار أو حتى Model Builder إلا إذا كنت ترغب في تكراره عدة مرات. لا يمكنك استخدام أداة "قريب" في هذه الحالة ، حيث يؤدي ذلك إلى إرجاع أقرب ميزة فقط. أنت يستطع استخدم أداة Generate Near Table بترخيص متقدم (تمامًا مثل قريب) أو ارتباط مكاني مع Basic فقط ، لكن كلتا الطريقتين تتطلبان بعض الربط الخلفي للجداول للحصول على سمات التعريف. إذا كنت تريد المسافات ، فلن يكون لديك خيار ، ولكن سيكون هذا أبسط بكثير بالنسبة للمهمات فقط.

لنبدأ بإعادة إنشائي لبياناتك. لدي ثلاثة مواقع للمشروع مع حقل معرف وعدد من 39 نقطة توربين عشوائية في فئة ميزة منفصلة تحتوي أيضًا على حقل معرف يطابق المشاريع. لقد قمت بتخزين المشاريع (حل لا شيء) للتأكد من أن لدي بعض التوربينات الأجنبية. (وإذا نظرت عن كثب ، ستلاحظ أنني أفسدت ارتباطات التوربينات B / C الخاصة بي.)

إذا فتحت جدول السمات للمخازن المؤقتة ، فسترى أنه تم نقل سمات المشاريع إلى المخازن المؤقتة ، بما في ذلك المعرف. الخطوة التالية هي تقاطع (ربط جميع سمات) المخازن المؤقتة ونقاط التوربينات. يؤدي هذا إلى إنشاء فئة معلم نقطة جديدة لها خاصيتان للملاحظة. أولاً ، يتم تضمين السمات من كل من المحاليل والتوربينات. ثانيًا ، تم تكرار كل نقطة تقع في أكثر من مخزن مؤقت واحد بحيث يكون هناك مثيل واحد لكل مخزن مؤقت - وبالتالي فإن النتيجة تحتوي على 53 نقطة بدلاً من 39 الأصلي.

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

الآن استخدم أداة ملخص الإحصائيات على النقاط المتبقية. يجب أن يكون لديك حقل إحصائيات لتشغيل الأداة ، ولكنك لست بحاجة إلى الاهتمام به كثيرًا لأن العدد الذي تريده سيتم إنشاؤه تلقائيًا كعمود تكرار في الجدول الناتج. لإجراء فحص ، يمكنك تعيين حقل stat إلى حقل معرف المشروع الخاص بك بنوع العد ويجب أن يتطابق مع حقل التردد الخاص بك. أنت بحاجة إلى تحديد حقل CASE ، ويجب أن يكون المشروع حقل المعرف - كما في السمة التي تأتي من نقاط المشروع والمخازن المؤقتة ، ليس التوربينات. قم بتشغيل الأداة وستحصل على جدول به صف واحد لكل مشروع وعدد جميع التوربينات الأجنبية في المخزن المؤقت لهذا المشروع. سيعالج هذا جميع مواقع المشروع البالغ عددها 58 موقعًا في وقت واحد ، بغض النظر عن عدد المخازن المؤقتة التي قد تقع داخل التوربين.


في لقطة الشاشة هذه ، لدي توربينات رياح وقمت بتخزينها بشكل عشوائي لمسافة 10 كم حول 4 توربينات مختلفة.

قمت يدويًا بتحديد المخزن المؤقت السفلي الأيسر ، وقمت بتشغيل النموذج وحصلت على نتيجة - يمكنك أن ترى أن 4 توربينات موجودة في هذه المنطقة المخزنة وهذه المنطقة فقط (لا يوجد تداخل مع المناطق الأخرى)

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

باختصار ، سير العمل هو:

  • حدد النقاط داخل منطقتك / المخزن المؤقت
  • احصل على مجموعة مختارة من المناطق التي لا تريدها (على سبيل المثال ، تبديل التحديد)
  • بعد ذلك ، يجب إزالة النقاط الموجودة في المناطق التي لا تريدها من التحديد الأصلي (على سبيل المثال. إزالة من التحديد)

من الممكن في باني النموذج. يمكنك عمل سلسلة من التحديدات. على سبيل المثال ، بالنسبة لـ Wind Farm A:

  • حدد أداة Layer by Location للحصول على نقاط داخل المخزن المؤقت لـ Wind Farm A.
  • حدد أداة Layer by Attribute (لتصفية تلك التي تنتمي إلى مزارع الرياح الأخرى ، بناءً على سمة "الاسم" الخاصة بها ، أو أيًا كانت). يمكنك استخدام تعبير مثل "الاسم" <> "مزرعة الرياح أ" لإرجاع جميع السجلات التي ليست من مزرعة الرياح أ.

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

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


شاهد الفيديو: Resampling Raster ArcGis. changing the cell size of Raster dataset in ArcGis