featuresetstats.js 2.2 KB

12345
  1. /*
  2. All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. See https://js.arcgis.com/4.25/esri/copyright.txt for details.
  4. */
  5. import{ArcadeExecutionError as n,ExecutionErrorCodes as t}from"../executionError.js";import{y as r,T as e,m as a,c as i,x as s,A as c}from"../../chunks/languageUtils.js";import{calculateStat as u}from"./fieldStats.js";import{WhereClause as o}from"../../core/sql/WhereClause.js";async function f(n,t,r,i,f,d){if(1===i.length){if(a(i[0]))return u(n,i[0],c(i[1],-1));if(s(i[0]))return u(n,i[0].toArray(),c(i[1],-1))}else if(2===i.length){if(a(i[0]))return u(n,i[0],c(i[1],-1));if(s(i[0]))return u(n,i[0].toArray(),c(i[1],-1));if(e(i[0])){const r=await i[0].load(),e=await l(o.create(i[1],r.getFieldsIndex()),d,f);return i[0].calculateStatistic(n,e,c(i[2],1e3),t.abortSignal)}}else if(3===i.length&&e(i[0])){const r=await i[0].load(),e=await l(o.create(i[1],r.getFieldsIndex()),d,f);return i[0].calculateStatistic(n,e,c(i[2],1e3),t.abortSignal)}return u(n,i,-1)}async function l(n,t,r){const e=n.getVariables();if(e.length>0){const a=[];for(let n=0;n<e.length;n++){const i={name:e[n]};a.push(await t.evaluateIdentifier(r,i))}const i={};for(let n=0;n<e.length;n++)i[e[n]]=a[n];return n.parameters=i,n}return n}function d(c){"async"===c.mode&&(c.functions.stdev=function(n,t){return c.standardFunctionAsync(n,t,((t,r,e)=>f("stdev",t,r,e,n,c)))},c.functions.variance=function(n,t){return c.standardFunctionAsync(n,t,((t,r,e)=>f("variance",t,r,e,n,c)))},c.functions.average=function(n,t){return c.standardFunctionAsync(n,t,((t,r,e)=>f("mean",t,r,e,n,c)))},c.functions.mean=function(n,t){return c.standardFunctionAsync(n,t,((t,r,e)=>f("mean",t,r,e,n,c)))},c.functions.sum=function(n,t){return c.standardFunctionAsync(n,t,((t,r,e)=>f("sum",t,r,e,n,c)))},c.functions.min=function(n,t){return c.standardFunctionAsync(n,t,((t,r,e)=>f("min",t,r,e,n,c)))},c.functions.max=function(n,t){return c.standardFunctionAsync(n,t,((t,r,e)=>f("max",t,r,e,n,c)))},c.functions.count=function(u,o){return c.standardFunctionAsync(u,o,((c,f,l)=>{if(r(l,1,1,u,o),e(l[0]))return l[0].count(c.abortSignal);if(a(l[0])||i(l[0]))return l[0].length;if(s(l[0]))return l[0].length();throw new n(u,t.InvalidParameter,o)}))})}export{d as registerFunctions};