Skip To Content

استخدم تعبيرات Arcade مع اكتشاف الحوادث

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

يوجد لدى أدوات GeoAnalytics التي تستخدم التعبيرات استخدامات مختلفة وكذلك قيود على التعبيرات التي يمكن تطبيقها. في الإصدار 10.7.1, جميع التعبيرات المستخدمة في ArcGIS GeoAnalytics Server تدعم Arcade.

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

التعبيرات في اكتشاف الحوادث

تستخدم التعبيرات في أداة اكتشاف الحوادث لتحديد شروط بداية ونهاية الحوادث. يجب أن يؤدي شرط اكتشاف الحوادث إلى true أو false. استخدم أحد الشروط للتحقق مما إذا ينبغي تضمين المعلم في حادثة أم لا. يتم اختبار الشروط مقابل كل معلم لتحديد المعالم التي تمثل حوادث. يتم تنفيذ الحسابات عند تشغيل التحليل على 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 > 50

أمثلة على الدالة النصية

يمكن لتعبيرات اكتشاف الحوادث معالجة النص. يوضح الجدول التالي نموذجًا من العمليات المتاحة.

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

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

concatenate( <values>, <separator>)

تسلسل القيمة معًا وإرجاع سلسلة.

  • values- مصفوفة قيم السلسلة المطلوب تسلسلها.
  • separator (اختياري) - فاصل لاستخدامه للتسلسل إذا كانت معلمة values عبارة عن مصفوفة أو سلسلة لتسلسلها إذا تم توفير قيمة واحدة للمعلمة الأولى. وإذا لم تتوفر، ستكون فارغة.

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

تسلسل ([$features["fieldname"], "is", "great!"], ' ')

إن GeoAnalytics رائع!

find(<searchText>, <text>, <startPos>)

بحث عن سلسلة ضمن سلسلة. أحرف البدل غير مدعومة.

  • searchText- السلسلة الفرعية المطلوب البحث عنها.
  • text- النص المطلوب البحث عنه.
  • startPos (اختياري)- فهرس على أساس صفري للموقع في السلسلة والذي سيتم البحث منه.

يحتوي fieldname1 على قيمة 14NorthStreet فيما يحتوي fieldname2 على قيمة North

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

2

lower(<value>)

إنشاء أحرف صغيرة لسلسلة.

  • value- السلسلة المطلوب جعلها أحرف صغيرة.

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

lower($feature["fieldname"])

التحليلات الجغرافية

مثال نصي يستخدم find وlower.

find(("north"), lower("146NorthStreet")) == 2

أمثلة على دالة التاريخ

يمكنك استخدام اكتشاف الحوادث من التعبيرات التي تستخدم تواريخ. يوضح الجدول التالي نموذجًا من العمليات المتاحة.

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

في Arcade، تتراوح قيم الشهر من 0 (يناير) إلى 11 (ديسمبر)، وتتراح الأيام من 1 إلى 31، وتتراوح الساعات من 0 (12:00 صباحًا) إلى 23 (11:00 مساءً)، وتتراوح الدقائق والثوان من 0 إلى 59، كما تتراوح الملي ثانية من 0 إلى 999. تقوم تواريخ Arcade بإرجاع قيم الوقت في موقع GeoAnalytics Server.

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

date( <value>, <month>, <day>, <hour>, <minute>)

تحليل قيمة أو مجموعة قيم في سلسلة تاريخ.

  • value(اختياري) - إما عدد وحدات الملي ثانية منذ 1 يناير 1970 بالتوقيت العالمي المنسق أو عددًا يمثل عامًا. إذا تم تحديد عام، يجب أيضًا توفير اليوم والشهر في معلمات متتابعة. وقد تكون هذه القيمة أيضًا سلسلة تاريخ أو سلسلة ISO 8601 لتحويلها إلى تاريخ.
  • month (اختياري) - الشهر (0-11) حيث يكون 0 هو يناير و11 هو ديسمبر.
  • day (اختياري) - أيام الشهر (1-31).
  • hour (اختياري) - ساعات اليوم (0-23).
  • minute (اختياري) - دقائق الساعة (0-59).
  • second (اختياري) - ثوان الدقيقة (0-59).
  • millisecond (اختياري) - وحدات الملي ثانية في الثانية (0-999).

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

مثال 1: Date($features["fieldname"])

مثال 2: Date(2017,0,14,0)

مثال 3: Date()

مثال 1: 20 أكتوبر 2016 الساعة 11:23:03 صباحًا

مثال 2: 14 يناير 2017 الساعة 12:00:00 صباحًا

مثال 3: إرجاع الوقت الحالي

DateDiff(<date1>, <date2>, <units>)

يقوم باستنتاج التاريخين ويعود بالفرق في الوحدات المحددة.

  • date1- قيمة التاريخ التي يتم استنتاج تاريخ ثاني منها.
  • date2- قيمة التاريخ التي يتم استنتاج قيمة التاريخ المحدد الأول منها.
  • startpos (اختياري) - وحدات إرجاع الاختلاف بين تاريخين محددين اثنين. تشمل أنواع الوحدة المدعومة milliseconds وseconds وminutes وhours وdays وmonths وyears. القيمة الافتراضية بالملي ثانية.

مثال 1: DateDiff(Date(2017,1,14,0), Date())

مثال 2: DateDiff(Date(2017,1,14,0), Date(), "Years")

تتنوع النتيجة بحسب موعد تشغيل هذا الأمر.

مثال 1: -20532129137

مثال 2: -0.6546783768647119

Year(<dateValue>)

يعود بسنة التاريخ المتوفر.

  • value- قيمة التاريخ التي يتم الحصول على العام منها.

مثال 1: يعد fieldname هو حقل نوع Date بقيمة 09 Oct 2017 04:30:43 pm

Year($feature["fieldname"])

مثال 2: إن fieldname هو حقل سلسل بتنسيق سلسلة ISO 8601 بقيمة 2012-09-27

مثال 1: 2017

مثال 2: 2012

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

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

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

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)

خطأ

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

بالإضافة إلى العوامل المشروطة، يمكن استخدام مزيد من العوامل المنطقية المتقدمة مع اكتشاف الحوادث.

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

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

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

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

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

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

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

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

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

إرجاع نتيجة دالة iif الثانية إذا كانت 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، فإنها ترجع field3.

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

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

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

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

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

أمثلة متعلقة بالمسارات

بالإضافة إلى ذلك، يمكن لبعض أدوات GeoAnalytics, مثل اكتشاف الحوادث واحتساب الحقل، استخدام أسئلة متوافقة مع المسار في Arcade.

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

TrackStartTime()

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

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

TrackStartTime()

1483315200000

TrackDuration()

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

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

TrackDuration()

172800000

TrackCurrentTime()

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

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

TrackCurrentTime()

1483434000000

TrackIndex

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

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

TrackIndex

0

TrackFieldWindow(<fieldName>, <startIndex>, <endIndex>)

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

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

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

مثال 1:TrackFieldWindow("MyField,-1,2)

مثال 2:TrackFieldWindow("MyField,-2,0)[0]

مثال 3:TrackFieldWindow("MyField,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.

TrackGeometryWindow(<startIndex>, <endIndex>)

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

  • المعلم الحالي في فهرس 0.
  • تمثل القيم الموجبة المعالم التي تحدث مستقبلاً، بعد القيمة الحالية. على سبيل المثال، الموضع 1 هو القيمة التالية في الصفيف.
  • تمثل الأرقام السالبة المعالم التي حدثت في الماضي، قبل المعلم السابق. على سبيل المثال، يعد -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:TrackGeometryWindow(-1,2)

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

مثال 3: TrackGeometryWindow(0,1)[0] على مجموعة بيانات لخطوط متصلة

مثال 4: ابحث عن قيمة X للنقطة السابقة TrackGeometryWindow(-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 (القيمة هي 30): 2.

TrackWindow(<value1>, <value2>)

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

  • المعلم الحالي في فهرس 0.
  • تمثل القيم الموجبة المعالم التي تحدث مستقبلاً، بعد القيمة الحالية. على سبيل المثال، الموضع 1 هو القيمة التالية في الصفيف.
  • تمثل الأرقام السالبة المعالم التي حدثت في الماضي، قبل المعلم السابق. على سبيل المثال، يعد -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:TrackWindow(-1,0)[0]

مثال 2:geometry(TrackWindow(-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 (القيمة هي 30): 2.