أكثر

ما المعلمة ونوع البيانات المطلوب تعيينهما للإسناد المكاني في أداة النص البرمجي لـ ArcGIS Python؟

ما المعلمة ونوع البيانات المطلوب تعيينهما للإسناد المكاني في أداة النص البرمجي لـ ArcGIS Python؟


لقد قمت بتطوير برنامج نصي بيثون للشبكة التي يحددها المستخدم وأريد إنشاء أداة من هذا البرنامج النصي.

المشكلة التي أواجهها هي إعداد معلمة للإشارة المكانية.

لقد استخدمت دالة GetParameterAsText للإسناد المكاني ووضعت "الإسناد المكاني" في نوع البيانات أثناء تعيين الأداة في ArcGIS 10.1. يبدو أن الوظيفة لا تعمل.

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

كيف يمكنني إعداد المرجع المكاني باستخدام وظيفة GetParameterAsText وأطلب من المستخدم اختيار نظامه المرجعي؟


انقر بزر الماوس الأيمن على مربع أدوات يمكنك تعديله (إذا لم يكن لديك & # 8217t بالفعل ، فسيتعين عليك إنشاء واحد في & # 8220My Toolboxes & # 8221 أو داخل مجلد) ، انتقل إلى & # 8216Add & # 8217 وحدد & # 8216Script & # 8230 & # 8217 ، أعطه اسمًا وتسمية ، حدد ملف البرنامج النصي ، ثم أضف المعلمات. في هذا المثال ، نحصل على فئة ميزة ، لذا أطلق عليها InputFeatureClass (أو أي شيء ذي معنى) وقم بتعيين نوع البيانات إلى فئة الميزة. انقر فوق "إنهاء". انقر نقرًا مزدوجًا فوق أداة البرنامج النصي الجديدة لاستخدامها. في الوقت الحالي ، لا يفعل شيئًا ، ولكن إذا أعطيته فئة ميزة ونقرت على موافق ، فيجب أن يعمل بسعادة ويقول إنه كان ناجحًا.

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

من المهم ملاحظة أن مسارات فئات الميزات هي مجرد سلاسل ، على سبيل المثال & # 8216C: GISData NYC 2007 Networks.gdb BusRoutes & # 8217.


برمجة فئة ToolValidator

للحصول على نظرة عامة حول فئة ToolValidator واستخدام أساليب المعلمات ، راجع تخصيص سلوك أداة البرنامج النصي.

الوصول إلى معلمات الأداة

تحتوي كل معلمة أداة على كائن معلمة مرتبط بخصائص وطرق مفيدة في التحقق من صحة الأداة. يتم تضمين المعلمات في قائمة Python. الممارسة القياسية هي إنشاء قائمة من المعلمات في طريقة ToolValidator class __init__ ، كما هو موضح في الكود أدناه.

يمكنك أيضًا الوصول إلى المعلمات في البرنامج النصي الخاص بك (على عكس فئة ToolValidator) على النحو التالي:

السبب الوحيد للوصول إلى قائمة المعلمات داخل البرنامج النصي هو تعيين خاصية الترميز.
تعرف على المزيد حول تعيين الرموز في البرامج النصية

ترتيب المعلمات

يتم تحديد معلمات الأداة وترتيبها في علامة تبويب المعلمات لخصائص الأداة ، كما هو موضح أدناه.

ملاحظة: قائمة المعلمات مستندة إلى 0 ، لذا فإن المعلمة الأولى في الموضع صفر في القائمة. لذلك ، للوصول إلى المعلمة الثالثة

أساليب

اسم الطريقة وصف الاستخدام
SetErrorMessage (رسالة: سلسلة) وضع علامة على المعلمة على أنها تحتوي على خطأ (علامة X حمراء) مع الرسالة المقدمة. لا يتم تنفيذ الأدوات في حالة وجود خطأ في أي من المعلمات.
SetWarningMessage (الرسالة: سلسلة) وضع علامة على المعلمة على أنها تحتوي على تحذير (مثلث أصفر) مع الرسالة المرفقة. على عكس الأخطاء ، يتم تنفيذ الأدوات برسائل التحذير.
SetIDMessage (messageType: string ، messageID: سلسلة ، , ) يسمح لك بتعيين رسالة النظام. الوسائط هي نفسها أسلوب AddIDMessage.
رسالة واضحة() مسح أي نص رسالة وتعيين الحالة إلى معلوماتية (لا يوجد خطأ أو تحذير).
HasError () إرجاع صحيح إذا كانت المعلمة تحتوي على خطأ.
HasWarning () إرجاع صحيح إذا كانت المعلمة تحتوي على تحذير.
IsInputValueDerived () يعود صحيحًا إذا كانت الأداة قيد التحقق داخل نموذج وكانت قيمة الإدخال ناتجة عن أداة أخرى في النموذج.

الخصائص
















اسم الخاصية قراءة و كتابة قيم) وصف
اسمخيط اسم المعلمة كما هو محدد في علامة التبويب المعلمات لخصائص الأداة.
اتجاهالسلسلة: "nput، Output اتجاه الإدخال / الإخراج للمعلمة كما هو محدد في علامة التبويب المعلمات لخصائص الأداة.
نوع البياناتخيط نوع البيانات كما هو محدد في علامة التبويب المعلمات لخصائص الأداة.
نوع المعلمةالسلسلة: مطلوبة ، اختيارية ، مشتقة اكتب كما هو محدد في علامة التبويب المعلمات لخصائص الأداة.
المعلمة قائمة بايثون قائمة الفهارس لكل معلمة تابعة.
قيمة كائن القيمة قيمة المعلمة.
اسم البيئة الافتراضيخيط البيئة كما هو محدد في علامة التبويب المعلمات لخصائص الأداة.
ممكنقيمة منطقية خطأ إذا كانت المعلمة باهتة (غير متوفرة).
تغيير قيمة منطقية صواب إذا قام المستخدم بتعديل القيمة.
تم التحقق من صحة HasBeen قيمة منطقية صواب إذا قام روتين التحقق الداخلي بالتحقق من المعلمة.
فئة خيط فئة المعلمة.
مخطط كائن مخطط GP مخطط مجموعة بيانات الإخراج.
منقي كائن عامل تصفية GP المرشح المراد تطبيقه على القيم الموجودة في المعلمة.
الترميز خيط اسم المسار لملف طبقة (.lyr) يستخدم لرسم المخرجات.
رسالةخيط الرسالة التي سيتم عرضها للمستخدم. انظر SetErrorMessage () و SetWarningMessage () أعلاه.

يتم عرض بعض أمثلة التعليمات البرمجية أدناه. للحصول على أمثلة أخرى للتشفير ، راجع تخصيص سلوك أداة البرنامج النصي.

خصائص ToolValidator مقابل خصائص أداة البرنامج النصي

يمكن تعيين القيمة الافتراضية للمعامل ، والمرشح ، والترميز ، والتبعيات في كل من علامة التبويب المعلمات في مربع حوار خصائص أداة البرنامج النصي وفي فئة ToolValidator ، كما هو موضح أدناه.

دائمًا ما تتجاوز الخصائص التي تقوم بتعيينها في ToolValidator تلك المعينة في مربع حوار خصائص أداة البرنامج النصي. على سبيل المثال ، إذا قمت بتعيين القيمة الافتراضية للمعلمة إلى BLUE في مربع حوار خصائص أداة البرنامج النصي وأعدت تعيينها إلى RED في initializeParameters () ، فإن القيمة الافتراضية هي RED. بمجرد استدعاء initializeParameters () ، سيعرض مربع حوار خصائص أداة البرنامج النصي RED كقيمة افتراضية. إذا دخلت (أو مستخدميك) في موقف لا يتم فيه حفظ التغييرات التي تجريها على إحدى خصائص المعلمات الأربعة هذه في مربع حوار خصائص البرنامج النصي ، فمن المحتمل أن يكون ذلك بسبب تجاوز الخاصية داخل فئة ToolValidator.

المعلمة


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

نوع بيانات الإدخال نوع البيانات المعتمد وصف
حقل أو تعبير SQL الطاولة الجدول الذي يحتوي على الحقول
عنصر INFO أو تعبير INFO جدول المعلومات يحتوي جدول INFO على العناصر
فئة ميزة التغطية تغطية التغطية تحتوي على ميزات
وحدات المساحة أو الوحدات الخطية GeoDataset مجموعة بيانات جغرافية تُستخدم لتحديد الوحدات الافتراضية
نظام الإحداثيات مساحة العمل مساحة عمل مستخدمة لتحديد نظام الإحداثيات الافتراضي
إعدادات التسلسل الهرمي لمحلل الشبكة مجموعة بيانات الشبكة مجموعة بيانات الشبكة التي تحتوي على معلومات التسلسل الهرمي
جدول القيمة الجيوإحصائية طبقة الإحصاء الجيوإحصائي طبقة التحليل التي تحتوي على جداول

عادةً ما يتم تعيين التبعيات في طريقة initializeParameters ():

قيمة


هذه هي قيمة المعلمة التي أدخلها المستخدم أو قمت بتعيينها برمجيًا. يمكنك تعيين القيمة في initializeParameters () ، وفي هذه الحالة تعمل كقيمة افتراضية أولية للمعلمة. يمكنك أيضًا تعيين القيم في updateParameters () استجابةً لإدخال المستخدم (انقر هنا للحصول على مثال).
لا تقم بتعيين قيمة معلمة في updateMessages () حيث لن يتم التحقق من صحة القيمة بواسطة روتين التحقق الداخلي.
القيمة هي كائن يحتوي على تمثيل سلسلة. يختبر مقتطف الشفرة أدناه ما إذا كانت القيمة تساوي السلسلة Get Spatial Weights From File. يعمل هذا الاختبار لأن نوع بيانات المعلمة عبارة عن سلسلة.

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

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

ملاحظة: عند استخدام طريقة وصف المعالجة الجغرافية ، لا تستخدم أبدًا تمثيل السلسلة للقيمة.

غير صحيح (تم استخدام دالة str)

يجب ألا تستخدم تمثيل السلسلة لمجموعات البيانات (الذي ينتج مسار الكتالوج إلى مجموعة البيانات) نظرًا لأن مجموعة البيانات قد لا تكون موجودة & # 8212 قد تكون متغير نموذج ، ويجب تشغيل النموذج قبل وجود مجموعة البيانات على القرص. إذا كنت تستخدم تمثيل السلسلة لمجموعة البيانات ، فقد يفشل الوصف نظرًا لأن مجموعة البيانات قد لا تكون موجودة بعد على القرص.

ملاحظة: لا تستخدم أساليب كائن المعالجة الجغرافية التي تأخذ مسار كتالوج ، مثل ListFields ، في ToolValidator. قد لا تكون مجموعة البيانات موجودة عند التحقق من أداتك في ModelBuilder ، وقد تفشل الطريقة. (في حالة ListFields ، يمكنك استخدام طريقة وصف الحقول بدلاً من ذلك.)

عندما تختبر سلاسل من أجل التكافؤ ، يجب أن تستخدم مقارنات غير حساسة لحالة الأحرف. يوضح الكود أدناه استخدام دالة Python Lower () لأحرف صغيرة لنوع شكل فئة الميزة ومقارنة السلاسل الصغيرة. (بدلاً من ذلك ، يمكنك استخدام الوظيفة upper () لمقارنة السلاسل الكبيرة.)

تغيير


يكون التغيير صحيحًا إذا قام المستخدم بتغيير قيمة المعامل & # 8212 عن طريق إدخال مسار الإخراج ، على سبيل المثال. بمجرد تغيير المعلمة ، تظل متغيرة حتى يفرغ المستخدم (يفرغ) القيمة ، وفي هذه الحالة تعود إلى حالة عدم التغيير. لا يؤدي تغيير القيمة برمجيًا باستخدام رمز التحقق إلى تغيير الحالة المعدلة. بمعنى ، إذا قمت بتعيين قيمة افتراضية للمعلمة ، فلن تتغير الحالة المعدلة للمعامل.
يستخدم Altered لتحديد ما إذا كان يمكنك تغيير قيمة المعلمة. كمثال ، افترض أن أداة تحتوي على معلمة فئة ميزة ومعلمة كلمة رئيسية. إذا كانت فئة المعلم تحتوي على نقاط أو مضلعات ، فإن الكلمات الأساسية هي الأحمر والأخضر والأزرق ، وإذا كانت الخطوط هي البرتقالي والأصفر والأرجواني والأبيض.
لنفترض أن المستخدم يدخل فئة ميزة النقطة. إذا لم يتم تغيير معلمة الكلمة الرئيسية ، يمكنك تعيين القيمة على RED ، لأنها القيمة الافتراضية.
إذا قاموا بعد ذلك بإدخال فئة سمة سطر ، فإنك تقوم بتعيين القيمة الافتراضية على ORANGE طالما أن معلمة الكلمة الأساسية لم تتغير.
ومع ذلك ، إذا تم تغيير معلمة الكلمات الرئيسية من قبل المستخدم (أي ، تم تعيين الكلمة الأساسية إلى الأخضر) ، فلا يجب عليك إعادة تعيين الكلمة الرئيسية & # 8212 قام المستخدم باختياره (أخضر) ولا تعرف نيته & # 8212 قد يغير فئة الميزة بحيث يكون اللون الأخضر صالحًا أو قد يغيرون الكلمة الأساسية (إلى PURPLE ، على سبيل المثال). نظرًا لأن GREEN ليس عضوًا في مجموعة الكلمات الرئيسية التي قمت بإنشائها للأسطر ، فإن التحقق الداخلي يشير إلى المعلمة على أنها خطأ. لدى المستخدم خياران في هذه المرحلة & # 8212 تغيير فئة ميزة الإدخال أو تغيير الكلمة الأساسية.

تم التحقق من صحة HasBeen


يكون HasBeenValidated خطأً إذا تم تعديل قيمة المعلمة بواسطة المستخدم منذ آخر مرة تم استدعاء updateParameters والتحقق الداخلي. بمجرد استدعاء التحقق الداخلي ، تقوم المعالجة الجغرافية تلقائيًا بتعيين HasBeenValidated إلى true لكل معلمة.
يتم استخدام HasBeenValidated لتحديد ما إذا كان المستخدم قد قام بتغيير قيمة منذ آخر مكالمة إلى updateParameters (). يمكنك استخدام هذه المعلومات في تحديد ما إذا كنت تريد التحقق بنفسك من المعلمة.

فئة


يمكنك وضع معلمات في فئات مختلفة لتقليل حجم مربع حوار الأداة. تستخدم أدوات Network Analyst الفئات ، كما هو موضح أدناه.

نظرًا لأنه يمكنك تعيين الفئة مرة واحدة فقط ، قم بتعيينها في initializeParameters (). تعيين الفئات في updateParameters () ليس له أي تأثير. يوضح الكود أدناه وضع المعلمات 4 و 5 في فئة الخيارات والمعلمات 6 و 7 في فئة الخيارات المتقدمة.

تظهر الفئات دائمًا بعد المعلمات غير المصنفة. لا تضع المعلمات المطلوبة في فئات لأن المستخدم قد لا يراها.

الترميز


تربط خاصية الترميز ملف طبقة (.lyr) بمعامل إخراج.

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

  1. عند فتح مربع حوار الأداة لأول مرة ، يتم استدعاء initializeParameters (). تقوم بإعداد القواعد الثابتة (القواعد التي لا تتغير بناءً على مدخلات المستخدم) لوصف المخرجات. لم يتم إنشاء وصف للمخرجات في الوقت الحالي نظرًا لأن المستخدم لم يحدد قيمًا لأي من المعلمات (ما لم تكن قد قدمت قيمًا افتراضية).
  2. بمجرد أن يتفاعل المستخدم مع مربع حوار الأداة بأي طريقة ، يتم استدعاء updateParameters ().
  3. يمكن لـ updateParameters () تعديل كائن المخطط لمراعاة السلوك الديناميكي الذي لا يمكن تحديده من تبعيات المعلمة (مثل إضافة حقل جديد مثل إضافة حقل).
  4. بعد العودة من updateParameters () ، يتم استدعاء إجراءات التحقق الداخلية ويتم تطبيق القواعد الموجودة في كائن المخطط لتحديث وصف بيانات الإخراج.
  5. ثم يتم استدعاء updateMessages (). يمكنك فحص رسائل التحذير والخطأ التي ربما أنشأها التحقق الداخلي وتعديلها أو إضافة التحذير المخصص ورسائل الخطأ.

اسم الخاصية قيم)
يكتب السلسلة: الميزة ، الجدول ، النقطية ، الحاوية (لمساحات العمل ومجموعات البيانات المميزة). (خاصية القراءة فقط.)
استنساخ قيمة منطقية
FeatureTypeRule السلسلة: حسب التحديد ، الاعتماد الأول
نوع الخاصية السلسلة: بسيطة ، تعليق توضيحي ، البعد
GeometryTypeRule السلسلة: غير معروف ، الاعتماد الأول ، الحد الأدنى ، الحد الأقصى ، كما هو محدد
النوع السلسلة: نقطة ، نقاط متعددة ، شكل متعدد الخطوط ، مضلع
قاعدة المدى السلسلة: حسب التحديد ، الاعتماد الأول ، التقاطع ، الاتحاد ، البيئة
حد كائن المدى
الحقول السلسلة: بلا ، FirstDependency ، FirstDependencyFIDsOnly ، All ، AllNoFIDs ، AllFIDsOnly
حقول إضافية قائمة بايثون لكائنات المجال
CellSizeRule السلسلة: حسب المحدد ، الاعتماد الأول ، الحد الأدنى ، الحد الأقصى ، البيئة
حجم الخلية مزدوج
القاعدة النقطية السلسلة: الاعتماد الأول ، الحد الأدنى ، الحد الأقصى ، عدد صحيح ، عائم
RasterFormatRule السلسلة: Img، Grid
الأطفال قائمة Python لمجموعات البيانات لإضافتها إلى مخطط مساحة العمل.

باستخدام FirstDependency

يمكن تعيين العديد من القواعد على FirstDependency ، مما يعني استخدام قيمة المعلمة الأولى الموجودة في مجموعة مصفوفة تبعية المعلمة مع المعلمة. في مثال الكود أدناه ، تحتوي المعلمة 2 على معلمتين تابعتين ، 0 و 1 ، والاعتماد الأول هو المعلمة 0.

إذا كانت أي معلمة تابعة متعددة القيم (قائمة القيم) ، يتم استخدام القيمة الأولى في القائمة متعددة القيم.

حالة الأحرف

تأخذ قواعد وأساليب كائن المخطط سلاسل نصية غير حساسة لحالة الأحرف. على سبيل المثال ، "AsSpecified" و "asspecified" متكافئان.

خاصية النوع للقراءة فقط ويتم تعيينها بواسطة المعالجة الجغرافية.

استنساخ

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

مساحة العمل = E: Data TestData netcity.gdb البنية التحتية واسم القاعدة = الطرق


  • الاسم الأساسي هو نفس الاسم الأساسي لمعلمة الإدخال الأولى التي تحتوي على مجموعة بيانات (ليست التبعية الأولى ولكن المعلمة الأولى) مُلحقة باسم أداة البرنامج النصي (على سبيل المثال ، road_MyTool).
  • يتم تعيين مساحة العمل على إعداد بيئة مساحة العمل المؤقتة. إذا كان هذا فارغًا ، فسيتم استخدام إعداد بيئة مساحة العمل الحالية. إذا كانت فارغة ، فسيتم استخدام مساحة عمل معلمة الإدخال الأولى التي تحتوي على مجموعة بيانات. إذا كانت مساحة العمل هذه للقراءة فقط ، فسيتم استخدام دليل النظام المؤقت.

بعد تعيين Clone إلى true ، يتم تعيين جميع الطرق المستندة إلى القواعد ، مثل FeatureTypeRule و GeometryTypeRule و ExtentRule ، على FirstDependency.

مثالا الكود أدناه يقومان بالعمل المكافئ. يعتمد كلا المثالين على كيفية قيام أداة Clip بإنشاء مخطط الإخراج.
مثال 1: تحديد جميع القواعد صراحة


مثال 2: استخدام Clone لتعيين القواعد على FirstDependency ، ثم تجاوز قاعدة المدى

FeatureTypeRule

يحدد هذا الإعداد نوع الميزة لفئة ميزة الإخراج. لا تؤثر هذه القاعدة على البيانات النقطية أو الجداول.

قيمة وصف
كما هو محدد سيتم تحديد نوع الميزة بواسطة خاصية FeatureType.
الاعتماد الأول سيكون نوع الميزة هو نفسه المعامل الأول في التبعيات. إذا كانت المعلمة التابعة الأولى متعددة القيم (قائمة القيم) ، يتم استخدام القيمة الأولى في القائمة متعددة القيم.

نوع الخاصية

عندما تكون FeatureTypeRule هي AsSpecified ، يتم استخدام القيمة الموجودة في FeatureType لتحديد نوع ميزة الإخراج.

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

GeometryTypeRule

يحدد هذا الإعداد نوع الشكل الهندسي (مثل النقطة أو المضلع) لفئة معلم الإخراج.

قيمة وصف
مجهول هذا هو الإعداد الافتراضي. عادةً ، يجب أن تكون قادرًا على تحديد نوع الشكل الهندسي في updateParameters () بناءً على قيم المعلمات الأخرى. يمكنك فقط تعيين القاعدة إلى غير معروف إذا لم يكن لديك معلومات كافية لتحديد نوع الشكل الهندسي ، مثل في initializeParameters ().
الاعتماد الأول النوع الهندسي هو نفس المعامل الأول التابع. إذا كانت المعلمة التابعة الأولى متعددة القيم (قائمة القيم) ، يتم استخدام القيمة الأولى في القائمة متعددة القيم.
الحد الأدنى - الحد الأقصى يفحص الأشكال الهندسية لكل المعلمات التابعة ويعين نوع هندسة الإخراج إلى الحد الأدنى أو الحد الأقصى من النوع الموجود. يتم تعريف Min و Max على النحو التالي:

لذلك ، إذا كانت المعلمات التابعة عبارة عن فئة معلم نقطي ومضلع ، فسيكون الحد الأدنى هو نقطة والحد الأقصى سيكون مضلعًا.

كما هو محدد سيتم تحديد نوع الشكل الهندسي بواسطة قيمة الخاصية GeometryType.

النوع

عيّن هذا إلى نوع الشكل الهندسي المراد استخدامه (إما نقطة أو نقطة متعددة أو متعدد الخطوط أو مضلع) عندما تكون GeometryTypeRule AsSpecified.

قاعدة المدى

قيمة وصف
كما هو محدد سيتم تحديد مدى الإخراج في خاصية المدى.
الاعتماد الأول مدى الإخراج هو نفس المعلمة التابعة الأولى. إذا كانت المعلمة التابعة الأولى متعددة القيم (قائمة القيم) ، يتم استخدام القيمة الأولى في القائمة متعددة القيم.
تداخل سيكون مدى الإخراج هو التقاطع الهندسي لجميع المعلمات التابعة. (هذا ما تستخدمه أداة Clip ، كما هو موضح أدناه.)
اتحاد سيكون مدى الإخراج هو الاتحاد الهندسي لجميع المعلمات التابعة.
بيئة سيتم حساب مدى الإخراج بناءً على إعداد بيئة نطاق الإخراج.

مثال

حد

قم بتعيين هذا إلى الحد الذي يتم استخدامه عندما تكون ExtentRule هي AsSpecified. يمكنك إما تعيين المدى بسلسلة محددة بمسافات أو كائن قائمة Python بأربع قيم. التسلسل هو xmin و ymin و xmax و ymax.
مثال

الحقول

تحدد FieldsRule الحقول التي ستكون موجودة في فئة أو جدول ميزة الإخراج.

في الجدول أدناه ، يشير FID إلى معرف الميزة ، ولكنه يشير في الواقع إلى حقل معرف الكائن الموجود في كل فئة أو جدول ميزة.

قيمة وصف
لا أحد لن يتم إخراج أي حقول باستثناء معرف الكائن.
الاعتماد الأول ستكون حقول الإخراج هي نفسها المعلمة التابعة الأولى. إذا كانت المعلمة التابعة الأولى متعددة القيم (قائمة القيم) ، يتم استخدام القيمة الأولى في القائمة متعددة القيم.
FirstDependencyFIDsOnly سيتم كتابة معرف الكائن الخاص بالمدخل الأول التابع فقط إلى الإخراج.
الجميع سيتم إخراج جميع الحقول في قائمة المعلمات التابعة.
"llNoFIDs ستتم كتابة جميع الحقول باستثناء معرفات الكائنات إلى الإخراج.
"llFIDsOnly تتم كتابة جميع حقول معرف الكائن في الإخراج ، ولكن لن تتم كتابة أي حقول أخرى من المدخلات.

مثال على مقطع باستخدام FieldsRule of FirstDependency

حقول إضافية

إلى جانب الحقول التي تمت إضافتها بواسطة تطبيق FieldsRule ، يمكنك إضافة حقول إضافية إلى الإخراج. تأخذ الحقول الإضافية قائمة بايثون من كائنات الحقول.

CellSizeRule

يحدد هذا حجم خلايا البيانات النقطية أو الشبكات الناتجة.

قيمة وصف
كما هو محدد يتم تحديد حجم خلايا الإخراج في خاصية CellSize.
الاعتماد الأول يتم حساب حجم الخلية من المعلمة التابعة الأولى. إذا كانت المعلمة التابعة هي نقطية ، فسيتم استخدام حجم الخلية الخاص بها. بالنسبة للأنواع الأخرى من المعلمات التابعة ، مثل فئات المعالم أو مجموعات بيانات الميزة ، يتم استخدام مدى البيانات لحساب حجم الخلية.
إذا كانت المعلمة التابعة الأولى متعددة القيم (قائمة القيم) ، يتم استخدام القيمة الأولى في القائمة متعددة القيم.
الحد الأدنى - الحد الأقصى Min يعني أن حجم خلية الإخراج هو أصغر حجم خلية للمعلمات التابعة. ماكس يعني أنه أكبر حجم خلية للمعلمات التابعة.
"بيئة" يتم حساب حجم cel lsize الناتج بناءً على إعداد بيئة حجم الخلية.

حجم الخلية

اضبط هذا على حجم الخلية لاستخدامه عندما يكون CellSizeRule هو AsSpecified.

القاعدة النقطية

هذا يحدد نوع البيانات & # 8212 صحيح أو عائم & # 8212 محتواة في البيانات النقطية للإخراج.

قيمة وصف
الاعتماد الأول نوع البيانات (عدد صحيح أو عدد عشري) هو نفس المعامل التابع الأول. إذا كانت المعلمة التابعة الأولى متعددة القيم (قائمة القيم) ، يتم استخدام القيمة الأولى في القائمة متعددة القيم.
الحد الأدنى - الحد الأقصى يعتبر العدد الصحيح أصغر من العدد العائم. على سبيل المثال ، إذا كان هناك معلمتان تابعتان ، أحدهما يحتوي على أعداد صحيحة والآخر يحتوي على عدد عشري ، فإن Min ينشئ ناتج عدد صحيح ويخلق Max ناتجًا عائمًا.
عدد صحيح يحتوي الناتج النقطي على أعداد صحيحة (أرقام كاملة).
يطفو يحتوي الناتج النقطي على عدد عشري (أرقام كسرية).

RasterFormatRule

يحدد هذا تنسيق الناتج النقطي ، إما الشبكة أو Img. الافتراضي هو Img ، وهو تنسيق ERDAS IMAGINE. الشبكة هي تنسيق ESRI.

الأطفال

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

استمارة وصف
كائن قيمة المعالجة الجغرافية فئة المعلم أو الجدول أو البيانات النقطية أو البعد أو قيمة التعليق التوضيحي ، كما تم إرجاعها بواسطة طريقة القيمة على سبيل المثال

كائن قائمة Python من النموذج [النوع ، الاسم ، الحقول ، المدى ، الإسناد المكاني] قائمة بايثون تحتوي على وصف للطفل المراد إضافته. مطلوب إدخال أول إدخالين فقط في القائمة ، النوع والاسم. الحجج المتبقية اختيارية.

عند إضافة أكثر من طفل ، فإنك تقدم قائمة بأوصاف الطفل. إذا كنت تضيف الأطفال باستخدام نموذج كائن قائمة Python ، فستقوم بإنشاء قائمة قوائم لـ AdditionalChildren.
اعرض أمثلة على استخدام قوائم Python وقائمة القوائم

يحتوي نموذج قائمة Python على خمس وسيطات ، كما هو موضح في الجدول التالي.

فيما يلي بعض الأمثلة لإعداد مخطط مساحة العمل. تستند الأمثلة إلى أداة البرنامج النصي التي تحتوي على الوسيطات التالية:


اسم المعلمة الخصائص
0 فئة ميزة الإدخال فئة الميزة & # 8212Input
1 جدول الإدخال إدخال & # 8212
2 مساحة عمل الإدخال Workspace & # 8212Input (مساحة عمل موجودة تحتوي على نتائج الأداة).
3 مساحة العمل المشتقة مساحة العمل & # 8212 الإخراج المشتق ، الذي تم الحصول عليه من Input_workspace. تم تعديل مخطط مساحة العمل هذه لتحتوي على توابع إضافية.

تأخذ الأداة فئة معلم الإدخال والجدول ، وتنسخ كلاهما إلى مساحة العمل ، وتضيف حقلاً جديدًا إلى فئة المعالم ، ثم تنشئ فئة معلم مضلع جديدة في مساحة العمل. (العمل الفعلي للأداة ليس مهمًا لأنه يخدم فقط لتوضيح إعداد مخطط مساحة العمل.) أمثلة التعليمات البرمجية أدناه مبنية على بعضها البعض ، بدءًا من الاستخدام البسيط لـ AdditionalChildren. إذا اخترت تنفيذ واختبار بعض أمثلة التعليمات البرمجية أدناه ، فيمكنك اختبار الكود باستخدام النموذج الموضح أدناه.

في initializeParameters () ، يتم استنساخ مساحة العمل الناتجة من المعلمة التابعة لها (المعلمة 2). يتم تعيين هذه التبعية في خصائص الأداة ولكن يمكن أيضًا تعيينها في initializeParameters () للحماية من قيام شخص ما بإزالة التبعية في خصائص الأداة.

مثال: انسخ المُدخلين (بدون تعديلات) إلى مساحة عمل الإخراج:


مثال: تقوم الأداة بإنشاء فئة معالم مضلع جديدة. الخصائص الوحيدة المعروفة عن فئة الميزة الجديدة هذه (عند التحقق) هي الاسم (SummaryPolygon) والنوع (polygon).

مثال: أضف حقلاً إلى فئة معالم الإدخال.

لإنشاء حقول لـ SummaryPolygon (فئة معلم المضلع الجديدة) ، قم بإنشاء قائمة من كائنات الحقول المشابهة للنمط الموضح في المثال أعلاه.

مثال: إدخال متعدد القيم.
في هذا المثال ، تكون المعلمة الأولى هي قيمة متعددة لفئات الميزات. يتم نسخ كل فئة معلم في متعدد القيم إلى مساحة العمل المشتقة. تتم إضافة حقل جديد ، ProjectID ، إلى كل فئة من فئات المعالم المنسوخة.

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

هناك طريقتان لتحديد المرشحات.

  • في علامة التبويب المعلمات في مربع حوار خصائص الأداة ، انقر على المعلمة ، ثم انقر على الخلية المجاورة للتصفية واختر نوع الفلتر من القائمة المنسدلة. بعد اختيار نوع المرشح ، يفتح مربع حوار حيث تحدد قيم المرشح.

  • يمكنك تعيين القيم برمجيًا في ToolValidator (توجد أمثلة أدناه). تنشئ المعالجة الجغرافية عوامل تصفية تلقائيًا لمعلمات سلسلة النوع ، والطويل ، والمزدوج ، وفئة المعالم ، والملف ، والحقل ، ومساحة العمل. حتى إذا لم تختر مرشحًا في مربع حوار خصائص الأداة ، فلا يزال هناك عامل تصفية مرتبط بالمعامل & # 8212 إنه فارغ فقط. الفلتر الفارغ يماثل عدم وجود مرشح. بإضافة القيم إلى عامل التصفية الفارغ ، يمكنك تنشيط المرشح وتقتصر خيارات المستخدم على محتويات المرشح.

توجد ستة أنواع من المرشحات ، كما هو موضح في الجدول أدناه.

نوع فلتر قيم
قائمة القيم قائمة سلاسل أو قيم رقمية. تُستخدم مع أنواع البيانات String و Long و Double و Boolean.
نطاق الحد الأدنى والحد الأقصى للقيمة. تستخدم مع أنواع البيانات الطويلة والمزدوجة.
الميزة قائمة بأنواع فئات المعالم المسموح بها ، والمحددة بالقيم Point ، Multipoint ، Polyline ، Polygon ، MultiPatch ، Sphere ، Annotation ، Dimension. يمكن توفير أكثر من قيمة للفلتر.
ملف قائمة بملحقات الملف. مثال txt ، e00 ، ditamap.
مجال قائمة بأنواع الحقول المسموح بها والمحددة بالقيم Short، Long، Single، Double، Text، Date، OID، Geometry، Blob، Raster، GUID، GlobalID، XML. يمكن توفير أكثر من قيمة للفلتر.
مساحة العمل قائمة بأنواع مساحات العمل المسموح بها والمحددة بقيم FileSystem و LocalDatabase و RemoteDatabase. يمكن توفير أكثر من قيمة.

الخصائص

ملكية وصف
يكتب نوع المرشح (ValueList و Range و FeatureClass و File و Field و Workspace). يمكنك ضبط نوع المرشح عند التعامل مع البارامترات الطويلة والمزدوجة (انظر الملاحظة أدناه). بالنسبة للأنواع الأخرى من المعلمات ، يوجد نوع واحد فقط صالح من عوامل التصفية ، لذلك يتم تجاهل تعيين النوع على هذه المعلمات. إذا كنت لا تريد تصفية القيم ، فقم بتعيين خاصية القائمة إلى قائمة فارغة.
قائمة قائمة بايثون لقيم المرشح. إذا كنت لا تريد تصفية القيم ، فقم بتعيين خاصية القائمة إلى قائمة فارغة.

قائمة القيم

قائمة القيم لمعلمات السلسلة
بالنسبة لمعلمة سلسلة ، يمكن أن تحتوي القائمة على أي عدد من السلاسل. يوجد أدناه مثال لتعيين قائمة قيم السلسلة في initializeParameters. تحتوي المعلمة على خيارين ، NEW_FORMAT و OLD_FORMAT.

في المثال أعلاه ، يمكن أن يكون لديك بنفس السهولة تعيين قائمة القيم في علامة التبويب المعلمة في مربع حوار خصائص الأداة. في الواقع ، إذا قمت بتعيين قائمة القيم إلى شيء آخر (مثل OLD و NEW) في خصائص الأداة ، فسيتم استبدال هذه القيم بـ OLD_FORMAT و NEW_FORMAT عند استدعاء initializeParameters (). وينطبق الشيء نفسه على القيمة الافتراضية & # 8212 يمكن تعيينها في مربع حوار خصائص الأداة ثم إعادة تعيينها في ToolValidator.

ملاحظة: قائمة القيم التي تقدمها في ToolValidator تستبدل دائمًا القيم المعينة في مربع حوار خصائص الأداة. يتيح لك هذا السلوك تحديث القيم بناءً على معلمات أخرى.

بالاستمرار في هذا المثال ، يُظهر الرمز أدناه updateParameters () يغير قائمة القيم في معلمة أخرى بناءً على ما إذا كان المستخدم قد اختار OLD_FORMAT أو NEW_FORMAT:

ValueList للمعلمات الطويلة والمزدوجة
يمكن أن تحتوي المعلمة الطويلة أو المزدوجة على قائمة من القيم الرقمية. يمكن للمستخدم فقط اختيار أو إدخال القيم الموجودة في القائمة.

ValueList للمعلمات المنطقية
هناك قيمتان للمعلمة المنطقية: القيمة الحقيقية والقيمة الخاطئة. القيمة الحقيقية هي دائمًا القيمة الأولى في القائمة.

نطاق

يمكن أن تحتوي المعلمة الطويلة أو المزدوجة على مرشح نطاق. تحتوي مرشحات النطاق على قيمتين ، الحد الأدنى والحد الأقصى. القيمة الأولى في القائمة هي الحد الأدنى. النطاق شامل ، مما يعني أن الحد الأدنى والحد الأقصى من الاختيارات الصالحة.

ضبط نوع المرشح على البارامترات الطويلة والمزدوجة

بالنسبة للمعلمات الطويلة والمزدوجة ، يكون نوع المرشح الافتراضي هو قائمة القيم. إذا كنت تريد أن يكون عامل تصفية نطاق ، فاضبط نوع عامل التصفية في initializeParameters () ، على النحو التالي:

يمكنك فقط تعيين نوع المرشح للمعلمات الطويلة والمزدوجة.

الميزة

يوضح المثال أدناه تعيين نوع الميزة لمعلمة إدخال واحدة بناءً على نوع الميزة لمعلمة إدخال أخرى.

يحتوي عامل تصفية الملف على قائمة من لاحقات الملف التي يمكن أن يحتوي عليها الملف ، مثل txt (ملف نصي بسيط) و csv (قيمة مفصولة بفاصلة). يمكنك توفير أي نص لاحقة & # 8212 لا يجب أن تكون لاحقة يتعرف عليها ArcGIS. يمكن أن تكون اللاحقة بأي طول ولا تتضمن النقطة. يوضح المثال أدناه تعيين عامل التصفية لمعلمة ملف الإدخال.

مجال

يحدد عامل التصفية الميداني أنواع الحقول المسموح بها. يمكن أن تكون القيم قصيرة وطويلة ومفردة ومزدوجة ونصية وتاريخ و OID و Geometry و Blob و Raster و GUID و GlobalID و XML.

عرض مقابل الاسم الداخلي
هناك أربعة أنواع من الحقول لها اسم داخلي ، موضحة في الجدول أدناه.

اسم العرض اسم الداخلي
قصير القامة SmallInteger
طويل Integer
Float Single
Text String

When specifying a field filter, you can use either the display or internal name. That is, the following two lines of code are equivalent:

If you supply the display name, such as "short", it is converted and stored in the filter as "SmallInteger." You should rarely need to access values in the field filter, but if you do, be aware that the internal name is stored. The code snippet below shows how to account for this:

Setting a default field value

You may want to provide a default value for a field parameter. The way you do this is to loop through the fields on the input table and pick the first field that satisfies the filter, as follows:

NOTE: Do not use the geoprocessing ListFields method in ToolValidator. Instead, use the Describe method as shown above.

Workspace

The workspace filter specifies the types of input workspaces that are permissible. There are three values:


    FileSystem
    A system folder used to store shapefiles, ArcInfo coverages, INFO tables, and grids


SAGA GIS

مرحبا!
I downloaded SAGA 2.2.2, including ArcSAGA Toolboxes. When I loaded Terrain Analysis - Hidrology in ArcMap, all the tools had an red x on their icon and the name was just "tool_1", "tool_2", . , "tool_25". I edited the toolbox Terrain Analysis - Hydrology.pyt and replaced the parameters datatype keyword (like "GPRasterLayer") with the data type (like "Raster Layer") according to http://pro.arcgis.com/en/pro-app/arcpy/geoprocessing_and_python/defining-parameter-data-types-in-a-python-toolbox.htm.
After this step the red x from the tools icons disappeared, the name of the tools was properly displayed and I was able to run them. I runned Upslope area because I want to integrate it in a geoprocessing model but it failed. I runned it in saga and qgis and I obtained the desired result. Than I used the same input rasters (like in qgis) in ArcMap but the tool still failed.
Here is the log from arcmap:
Executing: tool_4 targetRaster.tif 0 0 elevationRaster.tif # G:Doctoratupslope_areawgs esultRaster.tif "Multiple Flow Direction" 1.1
Start Time: Tue Dec 08 18:21:30 2015
Running script tool_4.

saga_cmd ta_hydrology 4 -TARGET targetRaster.tif -TARGET_PT_X 0 -TARGET_PT_Y 0 -ELEVATION elevationRaster.tif -AREA C:Usersuser2AppDataLocalTemparc55DDarc_saga_12.sgrd -METHOD Multiple Flow Direction -CONVERGE 1.1
. failed to run SAGA tool!
Completed script tool_4.
Failed to execute (tool_4).
Failed at Tue Dec 08 18:21:30 2015 (Elapsed Time: 0.00 seconds)

All the other tools from this toolbox (Terrain Analysis - Hydrology.pyt) failed in the same way.

Can you, please, tell me what should I do in order to be able to run Upslope area in ArcMap?
Thank you in advance!

the ArcSAGA toolboxes are still in an early state of development and - because I don't work that much with ArcGIS - I am very glad to get this feedback from you.

I started to develop the toolboxes using ArcGIS v10.3.1 and following the documentation for this version data types should be named like 'GPRasterLayer' or 'GPTableView'. As you already figured out version 10.1 uses slightly different namings. Therefore I included in the SAGA installation folder two subdirectories, 'ArcSAGA Toolboxes' following the current naming convention and 'ArcSAGA Toolboxes 10.1' for compatibility with the older one (ArcPython toolboxes have been introduced by ESRI with this version). The toolboxes in the latter should have worked for you without any code changes (please check if this is true).

The next problem seems to be a bit more serious and the error message is not really helpful. To obtain more information about the error you can create log files. To enable logging for ArcSAGA calls you have to edit the 'ArcSAGA.py' file in the 'ArcSAGA Toolboxes' folder. Here you have to remove the leading '#' in line 9:

By default log files are stored in the same folder as the 'ArcSAGA.py' file, but you might direct it to another destination:

You might need to restart ArcGIS before changes take effect. But this might give essential information for solving your problem.


Sample data

Locate and make a copy of the Brays Bayou, TX sample data that is provided online at http://apps.vieuxinc.com/sampleData/Example_GIS.zip . The sample data files will be named as shown at right. The sample data is to be used as a learning tool as the user follows the tutorial instructions. The sample parameter data are useful for demonstrating how to prepare parameter maps for use in V flo ™ when V flo ™ parameters are set up for other watersheds, however, parameter information that is representative of the particular watershed being modeled must be used.


Which parameter and Data Type to set for spatial reference in ArcGIS Python script tool? - نظم المعلومات الجغرافية

The submitJob operation is performed on an asynchronous GP task resource. The result of this operation is a GP job resource. You can provide arguments to the submitJob operation as query parameters defined in the parameters table below.

المعلمات

Parameter Details
F Description : The response format. The default response format is html.

The spatial reference can be specified as either a well-known ID or as a spatial reference json object.

The spatial reference can be specified as either a well-known ID or as a spatial reference json object.

Example Usage

With this operation, the majority of the parameters that you include in your request are dependent on the input parameter types of the geoprocessing task that you are submitting. Note that the GP execute and submit job operations share the same syntax for all input parameter types and examples of all input parameter types are discussed below.

Example 1: Submit a job to the Mailing List task for Parcel ID '1N1E34CC -06600' within a search distance of 100 feet:

Example 2: Submit a job to the task similar to Example 1 but request the output spatial reference to be Web Mercator (102113):

JSON Response Syntax and Example

See the JSON Response Syntax and Examples for the GP job resource.

Input Parameter Values

As discussed above, the values provided for the input parameters are dependent on the data type of the parameter. The following examples show the input parameter syntax based on the parameter data type.

GPBoolean, GPDouble, GPLong and GPString

For the simple data types and the parameter values GPBoolean, GPDouble, GPLong and GPString, use their literal values.

GPLinearUnit

The parameter value for GPLinearUnit is a JSON structure with the following fields.

  • distance : a double value.
  • units : a string with unit values such as "esriMeters" or "esriMiles" .

GPFeatureRecordSetLayer and GPRecordSet

The parameter value for GPFeatureRecordSetLayer and GPRecordSet is a JSON structure containing either the field "features" or the field "url".

The "features" field is an array of features. Each feature in turn contains the following fields.

  • "geometry" : can be points, lines or polygons. The structure for the geometries is same as the structure of the json geometry objects returned by the ArcGIS REST API.
  • "attributes" : key-value pairs where the key is a field name in the list of fields of the record set, and the value is the value for the corresponding field.

Note that values for GPFeatureRecordSetLayer contain the "geometry" field while values for GPRecordSet do not.

For "schema-less" input features, those feature sets where the geometry type or spatial reference is not specified by the model publisher, you must provide the geometry type and the spatial reference in addition to the features as specified below:

The geometryType can be esriGeometryPoint, esriGeometryPolyline, or esriGeometryPolygon. If the geometry type is not specified, it is assumed to be esriGeometryPoint. If the spatialReference is not specified, it is defaulted to an unknown coordinate system.

For a large set of geometries, you can specify a URL to the input geometries stored in a JSON structure in a file on a public server.

GPDate

The parameter value for GPDate is a number that represents the number of milliseconds since epoch (January 1, 1970) in UTC.

Note that the alternate JSON structure representation specified below has been deprecated at 10.

The parameter value for GPDate is a JSON structure with the following fields.

  • "date" : a string value representing the date.
  • "format" : a string specifying the format for the date.

GPDataFile

The parameter value for GPDataFile is a JSON structure with a "url" field. The value of the "url" field is a URL to the location of the input data file.

GPRasterData and GPRasterDataLayer

The parameter value for GPRasterData and GPRasterDataLayer data types is a JSON structure with the the following fields.

  • "url" : URL to the location of the input raster data file.
  • "format" : the format of the raster data such as "jpg", "tif", etc.

GPMultiValue

Note that support for the GPMultiValue parameter type was added at 10

The fully-qualified data type for a GPMultiValue parameter is GPMultiValue:<memberDataType> , where memberDataType is one of the data types defined above. For ex. GPMultiValue:GPString , GPMultiValue:GPLong , etc.

Note that at 10 only GPMultiValue:GPString data type is supported

The parameter value for GPMultiValue data types is a JSON array. Each element in this array is of the data type as defined by the memberDataType suffix of the fully-qualified GPMultiValue data type name.


Working with Geoprocessing Tools in Scripts - PowerPoint PPT Presentation

PowerShow.com is a leading presentation/slideshow sharing website. Whether your application is business, how-to, education, medicine, school, church, sales, marketing, online training or just for fun, PowerShow.com is a great resource. And, best of all, most of its cool features are free and easy to use.

You can use PowerShow.com to find and download example online PowerPoint ppt presentations on just about any topic you can imagine so you can learn how to improve your own slides and presentations for free. Or use it to find and download high-quality how-to PowerPoint ppt presentations with illustrated or animated slides that will teach you how to do something new, also for free. Or use it to upload your own PowerPoint slides so you can share them with your teachers, class, students, bosses, employees, customers, potential investors or the world. Or use it to create really cool photo slideshows - with 2D and 3D transitions, animation, and your choice of music - that you can share with your Facebook friends or Google+ circles. That's all free as well!

For a small fee you can get the industry's best online privacy or publicly promote your presentations and slide shows with top rankings. But aside from that it's free. We'll even convert your presentations and slide shows into the universal Flash format with all their original multimedia glory, including animation, 2D and 3D transition effects, embedded music or other audio, or even video embedded in slides. All for free. Most of the presentations and slideshows on PowerShow.com are free to view, many are even free to download. (You can choose whether to allow people to download your original PowerPoint presentations and photo slideshows for a fee or free or not at all.) Check out PowerShow.com today - for FREE. There is truly something for everyone!

presentations for free. Or use it to find and download high-quality how-to PowerPoint ppt presentations with illustrated or animated slides that will teach you how to do something new, also for free. Or use it to upload your own PowerPoint slides so you can share them with your teachers, class, students, bosses, employees, customers, potential investors or the world. Or use it to create really cool photo slideshows - with 2D and 3D transitions, animation, and your choice of music - that you can share with your Facebook friends or Google+ circles. That's all free as well!


Accessing ArcObjects in Python

If you have used arcpy in ArcGIS for some time, you might have noticed that not all of those operations that are accessible to you via the user interface in ArcMap are exposed as functions and methods in arcpy.

It was not designed to be a complete replacement for ArcObjects or an attempt at creating a function, method, or property for every conceivable button, dialog box, menu choice, or context item in the ArcMap interface (that is what ArcObjects provides).

So, there are no plans to make the whole ArcGIS platform available via arcpy which is why it is sometimes referred to as coarse-grained API into ArcGIS. For those situations when you need to have a finer control over the GIS data management and maintenance, Esri recommends using ArcObjects. It is usually related to advanced data management operations where support in arcpy is very limited such as LIDAR data management, network dataset generation, write-access to the properties of workspaces and data repositories, or metadata management. All of this can be done in ArcObjects, and hence, the name – fine-grained API into ArcGIS.

Here are just a few of the things you cannot do in arcpy.

  • You cannot create a new network dataset with arcpy and neither do you have any geoprocessing tools for that this can be done solely by using the New Network Dataset wizard.
  • You cannot create a new empty ArcMap map document with arcpy. This means if your workflows rely on generating map documents and adding layers into it, you need to pre-create an empty map document which will be used as a template.
  • You cannot create new bookmarks in a map document and neither can you import existing bookmarks into a map document. This can be done manually from the ArcMap user interface only.

However, if you do need to automate some of those workflows, either for one-time job when you need to process some data really quickly or when building a script that will be run on a regular basis, the only option you have is to use ArcObjects.

Learning ArcObjects can be hard due to its complexity. You would also need to learn Java or .NET (C# or VB) if you want to write ArcGIS add-ins or develop stand-alone applications. If you are not comfortable with those languages and have most of the workflows written in Python, I have good news for you. It is possible to access ArcObjects from Python.

This means that you can write your Python code using arcpy and other packages and incorporate some of the ArcObjects-based operations right into your code. This comes very handy when you lack just some minor operations in arcpy and need to use ArcObjects without getting out of your existing Python code.

To get started, please review this GIS.SE post: How do I access ArcObjects from Python? It has enough information to let you set up everything needed.

  1. Install comtypes package (I recommend using pip, see How to install pip on Windows? on how to get it)
  2. Download the snippets.py file to get examples and some helper functions.
  3. Change the “10.2” in the snippets file to “10.3” and installation paths of ArcGIS accordingly.
  4. You are ready to access the ArcObjects from your Python code! Look here for a sample that will create a new map document.

There is no need to install the ArcObjects SDK the only thing you need to have installed is ArcGIS Desktop.

You will need to play around with ArcObjects reference to find out what assembly and what interface you need to import. Here is the place you can start exploring the object model diagrams. Here is the section I recommend reviewing, Learning ArcObjects. Skip those parts you find irrelevant for you, though, as it covers nearly all ArcGIS Desktop operations.

In the API Reference part of the Help, you will find detailed information about the namespaces used in ArcObjects. Reading through this and visiting this often is an excellent way to lean ArcObjects. Here is an example of the Carto namespace.

Even though you do not need to know C#, VB, or Java, it is still worth to be able to read the code, as there are tons of useful snippets and code samples available in the Help system. Those will help you find out what interface should be used, any data type casting needed, and many more.

To learn more about the ArcObjects, listen to a recorded live-training seminar from Esri. Please share in comments what kind of operations you are missing in arcpy and would need to use ArcObjects to implement them.

Rate this:


ArcREST: Python package for administering ArcGIS Server and ArcGIS Online/Portal

ArcREST is a great toolset I have found some time ago. It is for anyone who administers ArcGIS Online, ArcGIS Portal or ArcGIS Server. In short, it is a Python wrapper for the Esri REST API. I had to write many Python scripts that allowed me to update the properties of ArcGIS Server services in batch, but now I don’t need to write anything like this anymore. This is because now I can do everything I did on my own just by using ArcREST. If you are an ArcGIS Online / Portal admin, you should definitely take a look at this module since it can save you a lot of time, and you won’t need to author your own scripts for managing the ArcGIS Online content and organization settings with the scripting techniques.

This Python package is authored by Esri Solutions team and is available in public access on GitHub. You can download the source code, optionally install the package, and then use it on your local machine just like any Python package. If you don’t want to install the package, you can just add the path to arcrest and arcresthelper folders to the Python path by adding this into your Python file:

import sys
sys.path.append(r”path to arcrest folder”) #C:GISTools

Provided that you have a folder named arcrest in the example Tools folder, when you run the Python file, it will be able to import the arcrest package and access its modules.

To get an overview of this Python package, take a look at this excellent DevSummit 2015 video where developers of ArcREST talked about it.

Even though this is not a full implementation of the Esri REST API, it covers most of it and Esri developers update the code to include latest changes in the REST API. It is a good idea to clone the repository and pull the changes now and then to get the latest code if you will use on the daily basis.

I felt kind of sad first that all the Python code I wrote for administering ArcGIS Server won’t be used any longer, but at the same time so glad the ArcREST was developed. It is a great piece of software that will let you get started in no time at all and access all your server/online resources with Python.

Caveat: it does have some dependencies on أركبي package which is used for converting feature sets into JSON and back, but apart from that you should be able to run the tools on a machine with no ArcGIS software installed whatsoever.

Rate this:


8 إجابات 8

My guess is that you want to estimate the shape parameter and the scale of the Weibull distribution while keeping the location fixed. Fixing loc assumes that the values of your data and of the distribution are positive with lower bound at zero.

floc=0 keeps the location fixed at zero, f0=1 keeps the first shape parameter of the exponential weibull fixed at one.

The fit compared to the histogram looks ok, but not very good. The parameter estimates are a bit higher than the ones you mention are from R and matlab.

The closest I can get to the plot that is now available is with unrestricted fit, but using starting values. The plot is still less peaked. Note values in fit that don't have an f in front are used as starting values.

It is easy to verify which result is the true MLE, just need a simple function to calculate log likelihood:

The result from fit method of exponweib and R fitdistr (@Warren) is better and has higher log likelihood. It is more likely to be the true MLE. It is not surprising that the result from GAMLSS is different. It is a complete different statistic model: Generalized Additive Model.

Still not convinced? We can draw a 2D confidence limit plot around MLE, see Meeker and Escobar's book for detail).

Again this verifies that array([6.8820748596850905, 1.8553346917584836]) is the right answer as loglikelihood is lower that any other point in the parameter space. ملحوظة:

BTW1, MLE fit may not appears to fit the distribution histogram tightly. An easy way to think about MLE is that MLE is the parameter estimate most probable given the observed data. It doesn't need to visually fit the histogram well, that will be something minimizing mean square error.

BTW2, your data appears to be leptokurtic and left-skewed, which means Weibull distribution may not fit your data well. Try, e.g. Gompertz-Logistic, which improves log-likelihood by another about 100. Cheers!


شاهد الفيديو: Creando scripts.py para ArcGis