UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

6 lines (5 loc) 3.24 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ import e from"./Field.js";const n="Raster.",a="Raster.Dim.",i=".Max",t={servicePixelValue:"Raster.ServicePixelValue",rawServicePixelValue:"Raster.ServicePixelValue.Raw",itemPixelValue:"Raster.ItemPixelValue",magnitude:"Raster.Magnitude",direction:"Raster.Direction",variable:"Raster.Variable"},r=new Map([["quarters","Quarter"],["months","Month"],["weeks","Week of the year"],["days","Day of the year"]]);function l(n,a){return new e({name:n,alias:a,domain:null,editable:!1,length:50,type:"string"})}function s(n,a){return new e({name:n,alias:a,domain:null,editable:!1,type:"double"})}function u(n,a){return new e({name:n,alias:a,domain:null,editable:!1,type:"date"})}function o(e){return l(t.servicePixelValue,e??"Service Pixel Value")}function c(e){return l(t.rawServicePixelValue,e??"Raw Service Pixel Value")}function m(){return l(t.itemPixelValue,"Item Pixel Value")}function f(e){return l(`${t.servicePixelValue}.${e}`,e)}function d(e){return s(`${t.magnitude}`,"Magnitude"+(e?` (${e})`:""))}function $(){return s(`${t.direction}`,"Direction (°)")}function v(e){return e.fields.filter((e=>"oid"!==e.type&&"value"!==e.name.toLowerCase())).map((e=>{const a=e.clone();return a.name=`${n}${e.name}`,a}))}function p(e){const n=new Set,r=new Set,o=new Map;e.variables.forEach((({dimensions:e})=>{e.forEach((e=>{if(e.recurring)o.set(e.name,e.unit);else{const a="ISO8601"===e.unit?.trim()?n:r;a.add(e.name),e.hasRanges&&a.add(`${e.name}${i}`)}}))}));return[l(t.variable,"Variable"),...[...n].map((e=>u(`${a}${e}`,x(e)))),...[...r].map((e=>s(`${a}${e}`,x(e)))),...[...o].map((([e,n])=>s(`${a}${e}`,h(e,n))))]}function h(e,n){return n=n?.toLowerCase(),n&&r.has(n)?r.get(n):x(e)}function x(e){const n=e.endsWith(i),a=n?e.slice(0,-4):e,t="StdTime"===a?"Standard Time":"StdZ"===a?"Standard Z":a;return n?`${t} Max`:t}function w(e,n){return n?new Date(e):e}function V(e,n,r){r?.length&&(n[t.variable]=r[0].variableName,r.forEach((({dimensionName:t,values:r})=>{if(t&&r?.length){const l=`${a}${t}`,s=e.find((({name:e})=>e===l));if(!s)return;const u="date"===s.type,o=r[0];if(Array.isArray(o)){if(n[`${a}${t}`]=w(o[0],u),null!=o[1]){const r=`${a}${t}${i}`;if(e.some((({name:e})=>e===r))){const e=w(o[1],u);n[r]=e}}}else n[`${a}${t}`]=w(o,u)}})))}function b(e,n){if(n.pixelType.startsWith("f")&&e.forEach((({format:e,fieldName:n})=>{e&&n&&/^raster\.(item|service)pixelvalue/i.test(n)&&(e.places=2)})),n.multidimensionalInfo){const t=n.multidimensionalInfo.variables.flatMap((({dimensions:e})=>e));e.forEach((({format:e,fieldName:n})=>{if(e&&n?.startsWith(a)){const r=n.slice(a.length),l=`${r}${i}`,s=t.find((({name:e})=>e===r||e===l));s?.values?.every((e=>Number.isInteger(e)))&&(e.places=0)}}))}}export{V as addMultidimensionalFieldValues,t as commonRasterFieldNames,$ as getDirectionField,m as getItemPixelValueField,d as getMagnitudeField,p as getMultidimensionalFields,f as getProcessedServicePixelValueField,v as getRasterAttributeTableFields,c as getRawServicePixelValueField,o as getServicePixelValueField,a as rasterDimensionFieldPrefix,n as rasterFieldPrefix,b as setDefaultRasterFieldFormats};