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

log( a )

A의 자연 로그(밑 E)를 반환합니다.

fieldname에 값으로 1 포함

log($feature["fieldname"])

0

sin( a )

a의 사인값을 반환합니다. 입력은 라디안의 각도로 간주됩니다.

fieldname에 값으로 1.5707 포함

sin($feature["fieldname"])

1

cos( 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

min( a, b )

a와 b 중 가장 낮은 숫자 값을 반환합니다.

fieldname에 값으로 1.5 및 -3 포함

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

-3

max( 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)

distance이(가) 0보다 작은 경우 0을 반환하며 distance이(가) 10보다 작은 경우 10을 반환하고, 그 외에는 distance입니다.

Store dist이(가) 6보다 작은 경우 6을 반환하며 distance이(가) Store dist보다 작은 경우 distance을(를) 반환하고, 그 외에는 Store dist입니다.

버퍼 식의 곱셈 예시

$feature["Distance"] * 2

거리 함수 예시

as distance 기능은 수학 식에서 사용할 수 있는 숫자 값을 선형 거리에 보냅니다. 추적 재생성버퍼 생성 도구는 as distance 기능을 사용할 수 있습니다. as distance 기능 없이 숫자 값을 사용한 경우 단위는 미터(m)로 가정됩니다.

기능설명사례결과

as_meters( <값> )

입력 값이 미터라고 가정하여 계산을 적용합니다.

as_meters( $feature["fieldname"] )

as_meters(150)

결과가 150미터로 버퍼됩니다.

as_kilometers( <값> )

입력 값이 킬로미터라고 가정하여 계산을 적용합니다.

as_kilometers( $feature["fieldname"] )

as_kilometers(150)

결과가 150킬로미터로 버퍼됩니다.

as_feet( <값> )

입력 값이 피트라고 가정하여 계산을 적용합니다.

as_feet( $feature["fieldname"] )

as_feet(150)

결과가 150피트로 버퍼됩니다.

as_yards( <값> )

입력 값이 야드라고 가정하여 계산을 적용합니다.

as_yards( $feature["fieldname"] )

as_yards(150)

결과가 150야드로 버퍼됩니다.

as_nautical_miles( <값> )

입력 값이 해리라고 가정하여 계산을 적용합니다.

as_nautical_miles( $feature["fieldname"] )

as_nautical_miles(150)

결과가 150해리로 버퍼됩니다.

as_miles( <값> )

입력 값이 마일이라고 가정하여 계산을 적용합니다.

as_miles( $feature["fieldname"] )

as_miles(150)

결과가 150마일로 버퍼됩니다.

각 피처에 대해 킬로미터(km)라고 가정하여 필드 Distance를 곱한 다음, 버퍼 식에 대해 10미터(m)를 더합니다.

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

조건 연산자

조건문은 다음 연산자를 사용할 수 있습니다.

연산자설명사례결과

a > b

a < b

a가 b보다 큼

a가 b보다 작음

10 > 2

False

a >= b

a <= b

a가 b보다 크거나 동일함

a가 b보다 작거나 동일함

abs(-10) >= 10

True

a != b

a가 b와 같지 않음

abs(-3) != -3

True

a == b

a가 b와 같음

abs(-5) == 5

True

<조건1> || <조건2>

조건 1 또는 조건 2가 충족됨

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

True

<조건1> && <조건2>

조건 1 및 조건 2가 충족됨

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

False

고급 기능 및 조건을 사용하는 버퍼 식의 예시

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

조인 조건의 곱셈 예시

iff(field1 > field2, iff(field2 = 0, field3, field4), 0) > $join["Distance"] * 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을 반환합니다. 그렇지 않은 경우 field2 + 10이(가) 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)

conditionl val field1 + 3 및 case1 field1의 동등을 비교합니다. true인 경우 1을 반환합니다. false인 경우 field1 + 3field2의 동등을 비교합니다. true인 경우 2를 반환합니다. 그 외의 경우 0을 반환합니다.

추적 인식 예시

추적 재생성은 다음 표에 표시된 것처럼 아케이드의 추적 인식 방정식을 사용할 수 있습니다.

기능설명사례결과

TrackStartTime()

추적 시작 시간을 에포크 시간부터 밀리초 단위로 계산합니다.

추적이 2017년 1월 2일에 시작된 경우

TrackStartTime()

1483315200000

TrackDuration()

추적이 시작된 때부터 현재 시간 단계까지의 추적 기간을 밀리초 단위로 계산합니다.

2017년 1월 2일에 추적이 시작되었고 현재 시간은 2017년 1월 4일인 경우

TrackDuration()

172800000

TrackCurrentTime()

추적의 현재 시간을 계산합니다.

2017년 1월 3일 오전 9시에 발생된 피처를 사용하는 경우

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 objectID, globalID[10, 20, 30, 40, 50] 필드 외에도 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