Skip To Content

استخدام تعبيرات النطاق بواسطة أدوات GeoAnalytics

تتيح لك الأدوات التالية في مربع أدوات أدوات GeoAnalytics تطبيق التعبير:

يوجد لدى أدوات GeoAnalytics التي تستخدم التعبيرات أغراض مختلفة، وكذلك قيود على التعبيرات التي يمكن تطبيقها. في ArcGIS 10.6، كل التعبيرات المستخدمة في GeoAnalytics تدعم Arcade.

تعرف على المزيد عن دوال Arcade.

إعادة إنشاء المسارات وإنشاء النطاقات

تُستخدَم تعبيرات النطاق بواسطة أدوات إعادة إنشاء المسارات وإنشاء النطاقات.

يتم إدخال أجحام النطاق المؤقت باستخدام قيم ثابتة أو قيم حقل. وعلى الرغم من ذلك، لا يُعد إدخال القيم الوسيلة الوحيدة التي يمكنك من خلالها تحديد حجم نطاق باستخدام أدوات GeoAnalytics. وقد تريد في بعض الحالات تنفيذ حساب رياضي لتعيين حجم النطاق. يتم تطبيق الحساب على كل معلم من المعالم المحللة. يتم تنفيذ الحسابات عند تشغيل التحليل على ArcGIS GeoAnalytics Server.

تتضمن الأقسام التالية أمثلة على تعبير النطاق.

أمثلة على العامل والدالة الرياضية

يمكن لتعبيرات النطاق معالجة الأرقام رياضيًا. يوضح الجدول التالي نموذجًا من العمليات المتاحة.

تعرف على المزيد عن المعاملات والدوال الرياضية المتاحة في Arcade

عامل التشغيلالتفسيرمثالالنتيجة

a + b

a زائد b.

يحتوي fieldname على قيمة 1.5

$feature["fieldname"] + 2.5

4.0

a - b

a ناقص b.

يحتوي fieldname على قيمة 3.3

$feature["fieldname"]- 2.2

1.1

a * b

a مضروبًا في b.

يحتوي fieldname على قيمة 2.0

$feature["fieldname"] * 2.2

4.4

a / b

a مقسومًا على b.

يحتوي fieldname على قيمة 4.0

$feature["fieldname"] / 1.25

3.2

abs( a )

يُرجع القيمة المطلقة (الموجبة) a.

يحتوي fieldname على قيمة -1.5

abs($feature["fieldname"])

1.5

لوغاريتم ( a )

إرجاع اللوغاريتم الطبيعي (قاعدة E) a.

يحتوي fieldname على قيمة 1

log($feature["fieldname"])

0

جيب ( a )

يُرجع جيب الزاوية المثلثية a، ويُفتَرَض أن يكون المدخل زاوية بالتقدير الدائري.

يحتوي fieldname على قيمة 1.5707

sin($feature["fieldname"])

1

جيب تمام ( a )

يُرجع جيب تمام الزاوية المثلثية a، ويُفتَرَض أن يكون المدخل زاوية بالتقدير الدائري.

يحتوي fieldname على قيمة 0

cos($feature["fieldname"])

1

tan( a )

يُرجع ظل زاوية a، ويُفتَرَض أن يكون المدخل زاوية بالتقدير الدائري.

يحتوي fieldname على قيمة 0

tan($feature["fieldname"])

0

sqrt( a )

يُرجع جذر تربيعي a.

يحتوي fieldname على قيمة 9

sqrt($feature["fieldname"])

3

الحد الأدنى ( a, b )

إرجاع الرقم الذي يتميز بأقل قيمة بين a وb.

يحتوي fieldname على قيمة 1.5 وقيمة -3

min($feature["fieldname"], -3)

-3

الحد الأقصى ( a, b )

إرجاع الرقم الذي يتميز بأعلى قيمة بين a أو b.

يحتوي fieldname1 على قيمة 1.5، كما يحتوي fieldname2 على قيمة -3

max($feature["fieldname1"], $feature["fieldname2"])

1.5

constrain(<value>,<low>,<high>)

إرجاع القيمة المدخلة إذا كانت ضمن حدود القيد. إذا كانت القيمة المدخلة أقل من القيمة المنخفضة، فإنها تُرجِع القيمة المنخفضة. إذا كانت القيمة المدخلة أكبر من القيمة المرتفعة، فإنها تُرجِع القيمة المرتفعة.

constrain($feature["distance"], 0, 10)

constrain($feature['Store dist'], 6, distance)

إرجاع 0 إذا كانت distance أقل من 0 وإرجاع 10 إذا كانت distance أكبر من 10، وكذلك distance بخلاف ذلك.

إرجاع 6 إذا كانت Store dist أقل من 6 وdistance إذا كانت Store dist أكبر من distance، وStore dist بخلاف ذلك.

مثال على ضرب تعبير نطاق.

$feature["Distance"] * 2

أمثلة على دالة المسافة

تقوم دوال as distance بتحويل القيم الرقمية إلى مسافة رقمية، ويمكن عندئذٍ استخدامها في تعبير رياضي. يمكن لأداتي إعادة إنشاء المسارات وإنشاء النطاقات استخدام دوال as distance. إذا تم استخدام القيمة الرقمية دون دالة as distance يتم افتراض أن الوحدة بالأمتار.

دالةالتفسيرمثالالنتيجة

as_meters( <value> )

تطبيق حساب يفترض أن القيم المدخلة بالأمتار.

as_meters( $feature["fieldname"] )

as_meters(150)

يتم إنشاء نطاق حول النتائج بمحيط 150 مترًا.

as_kilometers( <value> )

تطبيق حساب يفترض أن القيم المدخلة بالكيلومتر.

as_kilometers( $feature["fieldname"] )

as_kilometers(150)

يتم إنشاء نطاق حول النتائج بمحيط 150 كيلومترًا.

as_feet( <value> )

تطبيق حساب يفترض أن القيم المدخلة بالقدم.

as_feet( $feature["fieldname"] )

as_feet(150)

يتم إنشاء نطاق حول النتائج بمحيط 150 قدمًا.

as_yards( <value> )

تطبيق حساب يفترض أن القيم المدخلة بالياردة.

as_yards( $feature["fieldname"] )

as_yards(150)

يتم إنشاء نطاق حول النتائج بمحيط 150 قدمًا.

as_nautical_miles( <value> )

تطبيق حساب يفترض أن القيم المدخلة بالميل البحري.

as_nautical_miles( $feature["fieldname"] )

as_nautical_miles(150)

يتم إنشاء نطاق حول النتائج بمحيط 150 ميلاً بحريًا.

as_miles( <value> )

تطبيق حساب يفترض أن القيم المدخلة بالميل.

as_miles( $feature["fieldname"] )

as_miles(150)

يتم إنشاء نطاق حول النتائج بمحيط 150 قدمًا.

في كل معلم، ضاعف حقل Distance على افتراض أنه بالكيلومتر، وأضف 10 أمتار في كل تعبير نطاق.

as_kilometers($feature["Distance"]) * 3 + as_meters(10)

العوامل المشروطة

يمكن للعبارات الشرطية استخدام عوامل تشغيل التالية:

عامل التشغيلالتفسيرمثالالنتائج

a > b

a < b

a أكبر من b

a أقل من b

10 > 2

خطأ

a >= b

a <= b

a أكبر من أو يساوي b

a أقل من أو يساوي b

abs(-10) >= 10

صواب

a != b

a لا يساوي b

abs(-3) != -3

صواب

a == b

a يساوي b

abs(-5) == 5

صواب

<condition1> || <condition2>

تم تلبية الشرط الأول أو الشرط الثاني.

(abs(-5) == 5) || (10 < 2)

صواب

<condition1> && <condition2>

تم تلبية الشرط الأول أو الشرط الثاني.

(abs(-5) == 5) && (10 < 2)

خطأ

مثال على تعبير نطاق يستخدم دوال وشروط متقدمة

iff(field1 > field2, iff(field2 = 0, field3, field4), 0)

مثال على ضرب شرط الضم.

iff(field1 > field2, iff(field2 = 0, field3, field4), 0) > $join["Distance"] * 2

أمثلة على العامل المنطقي

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

تعرف على المزيد عن الدوال المنطقية المتاحة في Arcade.

دالةالتفسيرمثالالنتيجة

iff(<condition>,<true value>,<false value>)

إرجاع قيمة إذا كان الشرط مقيمًا بـ trueوقيمة أخرى إذا كان ذلك الشرط مقيمًا بـ false.

<true value> و<false value> يمكن أن يكونا ما يلي:

  • حقل رقمي. إذا وجدت مسافة في اسم الحقل، استخدم الأقواس المربعة.
  • رقم.
  • دالة.

iff($feature["field1"] > $feature["field2"], $feature["field1"], 0)

iff($feature["field1"] > $feature["field2"], iff($feature["field2"] = 0, $feature["field3"], $feature["field4"]), 0)

إرجاع field1 إذا كانت field1 أكبر من field2، و0 بخلاف ذلك.

إرجاع نتيجة دالة iff الثانية إذا كانت field1 أكبر من field2، و0 بخلاف ذلك.

when(<expression1> , <result1> , <expression2> , <result2> , ... , <expressionN> , <resultN>, <default>)

تقييم سلسلة تعبيرات بالترتيب، حتى يتم تقييم أحدها إلى true.

  • expression- تعبير.
  • result- نتيجة التعبير. يمكن أن تكون رقمًا أو حقلاً.
  • default- قيمة اختيارية في حالة عدم مطابقة أيّ من التعبيرات.

when(($feature["field1"] + 10) > 1, 1,($feature["field2"] + 10) > 2 , 2, $feature["field3"])

إذا كانت field1 + 10 أكبر من 1، فإنها تُرجع 1. وإذا لم تكن أكبر من 1، تأكد مما إذا كانت field2 + 10 أكبر من 2. إذا كانت أكبر من 2، فإنها ترجع 2. وإذا لم تكن أكبر من 2، فإنها ترجع field3.

decode(<conditional val> , <case1> , <result1>, <case2>, <result2>, ... <caseN>, <resultN>, <defaultValue> )

تقييم تعبير ومقارنة قيمته مع معلماتها التابعة. إذا تطابق التعبير، فإنه يُرجع قيمة المعلمة التالية. إذا لم يتطابق أي منها، يوجد خيار للمعلمة الأخيرة لتكون قيمة إرجاع افتراضية.

  • conditional val- القيمة الشرطية. يمكن أن تكون رقمًا أو حقلاً.
  • case- قيمة لمقارنتها بـ conditional val.
  • result- النتيجة إذا تطابقت الحالة المتوافقة مع conditional val.
  • defaultValue- قيمة افتراضية إذا لم تكن القيم الأخرى true.

decode($feature["field1"] + 3 , $feature["field1"], 1, $feature["field2"], 2, 0)

مقارنة المساواة بين القيمة الشرطية field1 + 3 وcase1 field1. إذا كانت true، فإنها ترجع 1. إذا كانت false، فإنها تقارن المساواة بين field1 + 3 وfield2. إذا كانت true، فإنها ترجع 2، وبخلاف ذلك، تُرجع 0.

أمثلة متوافقة مع المسار

في ArcGIS 10.6.1، يمكن لأداة إعادة إنشاء المسارات استخدام المعادلات الممكنة للمسار في Arcade كما هو معروض في الجدول التالي:

دالةالتفسيرمثالالنتيجة

$track.field["fieldname"].history(<value1>)

إرجاع مصفوفة قيم في الحقل المحدد لفهرس الوقت المحدد.

  • رقم إيجابي يقوم بإرجاع مصفوفة تبدأ من الفهرس المحدد حتى المعلم الحالي.
  • رقم سلبي يقوم بإرجاع الخطوة الزمنية الحالية، وقيم الخطوة الزمنية <value1> - 1 السابقة.

قام MyField بطلب قيم [10, 20, 30, 40, 50, 60, 70, 80] بشكل متسلسل. القيمة 10 عند فهرس 0، والقيمة 80 عند الفهرس 7. يتم تقييم التعبيرات في كل فهرس، وتقوم الأمثلة بتحديد الفهرس المستخدم في الأمثلة. n يمثل عدد المعالم المتتالية، كما يمثل k الفهرس الذي يتم تقييمه.

مثال 1:$track.field["MyField"].history(3))

مثال 2:$track.field["MyField"].history(-3)

مثال 3:mean($track.field["MyField"].history(-2))

مثال 4:$track.field["MyField"].history(-3)[0]

عند تقييم مثال 1 في فهرس k، سيقوم بإرجاع صفيف القيم في فهرس 3 خلال k. إذا قمت بالتقييم عند فهرس 6 (70)، فسيتم إرجاع صفيف القيم في الفهرس [3, 4, 5, 6] حتى يكون الصفيف [40, 50, 60, 70].

يقوم مثال 2 بإرجاع صفيف من القيم المحسوبة على أنها فهرس kناقص القيمة المحددة ناقص 1 (k-2). إذا تم تقييم ذلك عند الفهرس 6 (value = 70)، فإنه يتم إرجاع قيم k-2 وk-1 وk [50، 60، 70].

يقوم مثال 3 بإرجاع متوسط القيم في فهرس k-1 وk. إذا كنت بتقييم ذلك في فهرس 4 (value = 50)، فستجد متوسط value 50 (فهرس 3) وvalue 60 (فهرس 4) الذي يساوي 65. إذا كنت بتقييم ذلك عند فهرس 7، فإن النتيجة ستكون بمتوسط 70 و80، والذي يساوي 75.

يقوم مثال 4 بإرجاع العنصر الأول (فهرس 0) للمصفوفة المنشأة في مثال 2، الذي يساوي 50.

$track.field["fieldname"].history(<value1>, <value2>)

إرجاع مصفوفة قيم تبدأ من index1 (<value1>) حتى index2 (<value2>).

لقد طلب MyField قيم [10, 20, 30, 40, 50, 60, 70, 80] بشكل تسلسلي، حيث أن 10 في فهرس 0، و80 في فهرس 7. في هذا المثال، يتم تقييم التعبيرات في فهرس 7 (80).

مثال 1:$track.field["MyField"].history(-3, -2))

مثال 2:$track.field["MyField"].history(-5, -2))

مثال 1: [60]

مثال 2: [40, 50, 60]

$track.time.start

حساب وقت بدء المسار بالملي ثانية من التاريخ.

استخدام مسار يبدأ في 2 يناير 2017

$track.time.start

1483315200000

$track.time.duration

حساب مدة مسار بالملي ثانية من البداية حتى الخطوة الزمنية الحالية.

استخدام مسار يبدأ في 2 يناير 2017 والوقت الحالي في 4 يناير 2017.

$track.time.duration

172800000

$track.time.current

حساب الوقت الحالي في مسار.

استخدام معلم يحدث في 3 يناير 2017 الساعة 09:00 ص.

$track.time.current

1483434000000

$track.index

إرجاع فهرس وقت المعلم الذي يتم حسابه.

حساب هذه القيمة في المعلم الأول في مسار ما.

$track.index

0

$track.T(<value>, "<units>")

إرجاع وقت المعلم مضافًا إليه الوقت المنشأ باستخدام <value> الرقمية و<units> المحددة.

  • value- القيمة الرقمية المطلوب إضافتها إلى وقت المعلم.
  • units- وحدات <value> الرقمية. أنواع الوحدة المدعومة هي الملي ثانية والثوان والدقائق والساعات والأيام والشهور والسنوات. القيمة الافتراضية بالملي ثانية.

استخدام معلم في 2 يناير 2017 الساعة 2 مساءً.

مثال 1: $track.T(1, "hours")

مثال 2: $track.T(-2, "days")

مثال 1: إرجاع 2 يناير الساعة 3 مساءً: 1483369200000

مثال 2: إرجاع 31 ديسمبر الساعة 2 مساءً: 1483192800000

$track.field["fieldname"].window(<value1>, <value2>)

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

  • المعلم الحالي في فهرس 0.
  • تمثل القيم الموجبة المعالم التي تحدث مستقبلاً، بعد القيمة الحالية. على سبيل المثال، الموضع 1 هو القيمة التالية في الصفيف.
  • تمثل الأرقام السالبة المعالم التي حدثت في الماضي، قبل المعلم السابق. على سبيل المثال، يعد -1 القيمة السابقة في الصفيف.

تتوفر وظيفة النافذة في ArcGIS Enterprise 10.6.1.

قام MyField بطلب قيم [10, 20, 30, 40, 50] بشكل متسلسل. يتم تقييم التعبير في كل معلم في المسار. يتم إرجاع النتائج لتشمل معلم البداية، وتستثني معلم النهاية.

على سبيل المثال 1:$track.field["MyField"].window(-1,2)

على سبيل المثال 2:$track.field["MyField"].window(-2,0)[0]

على سبيل المثال 3:$track.field["MyField"].window(0,3)[2]

مثال 1: عند التقييم عند كل معلم، فإن الجدول يعرض النتائج التالية.

المعلم المُقيَّم

النتيجة

10

[10,20]

20

[10, 20, 30]

30

[20,30,40]

40

[30,40,50]

50

[40, 50]

مثال 2: عند التقييم عند فهرس 2 (القيمة هي 30)، فإنها تقوم بإرجاع: 10.

مثال 3: عند التقييم عند فهرس 2 (القيمة هي 30)، فإنها تقوم بإرجاع: 50.

$track.geometry.window(<value1>, <value2>)

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

  • المعلم الحالي في فهرس 0.
  • تمثل القيم الموجبة المعالم التي تحدث مستقبلاً، بعد القيمة الحالية. على سبيل المثال، الموضع 1 هو القيمة التالية في الصفيف.
  • تمثل الأرقام السالبة المعالم التي حدثت في الماضي، قبل المعلم السابق. على سبيل المثال، يعد -1 القيمة السابقة في الصفيف.

تتوفر وظيفة النافذة في ArcGIS Enterprise 10.6.1.

قام MyField بطلب قيم [10, 20, 30, 40, 50] بشكل متسلسل. الشكل الهندسي للمعالم هو [{x: 1, y: 1},{x: 2, y: 2} ,{x: null, y: null},{x: 4, y: 4}, {x: 5, y: 5}] يتم تقييم التعبير في كل معلم في المسار. يتم إرجاع النتائج لتشمل معلم البداية، وتستثني معلم النهاية.

مثال 1:$track.geometry.window(-1,2)

مثال 2: $track.geometry.window(0,1)[0] على مجموعة بيانات لخطوط متصلة

مثال 3: $track.geometry.window(0,1)[0] على مجموعة بيانات مضلع

مثال 4: ابحث عن قيمة X للنقطة السابقة $track.geometry.window(-1,0)[0]["x"]

مثال 1: عند التقييم عند كل معلم، فإن الجدول يعرض النتائج التالية.

المعلم المُقيَّم

النتيجة

10

[{x: 1, y: 1},{x: 2, y: 2}]

20

[{x: 1, y: 1},{x: 2, y: 2} ,{x: null, y: null}]

30

[{x: 2, y: 2} ,{x: null, y: null},{x: 4, y: 4}]

40

[{x: null, y: null},{x: 4, y: 4}, {x: 5, y: 5}]

50

[{x: 4, y: 4}, {x: 5, y: 5}]

مثال 2: يتم إرجاع خطوط متصلة بالتنسيق التالي: [{"paths":[[[-180,-22.88],[-177.6,-23.6]],[[180,-18.099999999999994],[179.7,-18.4],[179.4,-18.7],[178.9,-18.9],[178.5,-19.3],[178.2,-19.7],[178.4,-20],[178.8,-20.2],[178.9,-21.8],[179,-22.2],[179.4,-22.7],[180,-22.88]],[[-178,-17],[-178.8,-17.3],[-179.2,-17.5],[-179.6,-17.8],[-179.9,-18],[-180,-18.099999999999994]]]}]

مثال 3: يتم إرجاع مضلعات متصلة بالتنسيق التالي: [{"rings":[[[-7882559.1197999995,6376090.883500002],[-7893142.474300001,6042715.216800004],[-8544018.775999999,6045361.0554000065],[-8544018.775999999,6376090.883500002],[-7882559.1197999995,6376090.883500002]]]}]

مثال 4: تم التقييم عند فهرس 2 (القيمة هي 20): 1.

$track.window(<value1>, <value2>)

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

  • المعلم الحالي في فهرس 0.
  • تمثل القيم الموجبة المعالم التي تحدث مستقبلاً، بعد القيمة الحالية. على سبيل المثال، الموضع 1 هو القيمة التالية في الصفيف.
  • تمثل الأرقام السالبة المعالم التي حدثت في الماضي، قبل المعلم السابق. على سبيل المثال، يعد -1 القيمة السابقة في الصفيف.

تتوفر وظيفة النافذة في ArcGIS Enterprise 10.6.1.

قام MyField بترتيب قيم [10, 20, 30, 40, 50] بالتعاقب، إضافةً إلى حقول objectID وglobalID وinstant_datetime. الشكل الهندسي للمعالم هو [{x: 1, y: 1},{x: 2, y: 2} ,{x: null, y: null},{x: 4, y: 4}, {x: 5, y: 5}] يتم تقييم التعبير في كل معلم في المسار. يتم إرجاع النتائج لتشمل معلم البداية، وتستثني معلم النهاية.

مثال 1:$track.window(-1,0)[0]

مثال 2:geometry($track.window(-1,0)[0]["x"]

مثال 1: عند التقييم عند كل معلم، فإن الجدول يعرض النتائج التالية.

المعلم المُقيَّم

النتيجة

10

20

[{"geometry": {x: 1, y: 1}},{"attributes": {"MyField" : 10, "trackName":"ExampleTrack1"}}]

30

[{"geometry": {x: 2, y: 2}},{"attributes": {"MyField" : 20, "trackName":"ExampleTrack1"}}]

40

[{"geometry": {x: null, y: null}},{"attributes": {"MyField" : 30, "trackName":"ExampleTrack1"}}]

50

[{"geometry": {x: 4, y: 4}},{"attributes": {"MyField" : 40, "trackName":"ExampleTrack1"}}]

مثال 2: تم التقييم عند فهرس 2 (القيمة هي 20): 1.