@oceanum/layers 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.js +34 -34
- package/dist/oceanum-base-layer.d.ts.map +1 -1
- package/package.json +11 -11
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("@oceanum/deck-gl-grid"),R=require("@deck.gl/core"),B=require("@oceanum/datamesh");function E(a,e){const n={x:a.x,y:a.y};return e.xvector&&e.yvector?(n.u=e.xvector,n.v=e.yvector):n.c=e.magnitude,n}function q(a,e){const n={x:a.x,y:a.y};return e.xvector&&e.yvector?(n.u=e.xvector,n.v=e.yvector):(n.m=e.magnitude,n.d=e.direction),n}function $(a){const e=[];return a.magnitude&&e.push(a.magnitude),a.xvector&&e.push(a.xvector),a.yvector&&e.push(a.yvector),a.direction&&e.push(a.direction),e}function C(a,e){if(!a||a.length===0)return 0;const n=e instanceof Date?e.getTime()/1e3:new Date(e).getTime()/1e3;let t=0,l=a.length-1;for(;t<l;){const o=t+l>>1;a[o]<n?t=o+1:l=o}return t>0&&Math.abs(a[t-1]-n)<Math.abs(a[t]-n)?t-1:t}function M(a,e){return e<=0?0:Math.max(0,Math.min(a,e-1))}function S(a,e,n){if(!a||a.length===0)return[0,0];const t=a.length<2||a[1]>=a[0];let l=0,o=a.length-1;if(t){let r=0,s=a.length-1;for(;r<s;){const i=r+s>>1;a[i]<e?r=i+1:s=i}for(l=Math.max(0,r-1),r=l,s=a.length-1;r<s;){const i=r+s+1>>1;a[i]>n?s=i-1:r=i}o=Math.min(a.length-1,r+1)}else{let r=0,s=a.length-1;for(;r<s;){const i=r+s>>1;a[i]>n?r=i+1:s=i}for(l=Math.max(0,r-1),r=l,s=a.length-1;r<s;){const i=r+s+1>>1;a[i]<e?s=i-1:r=i}o=Math.min(a.length-1,r+1)}return[l,o]}function P(a,e){return{start:a,stop:e,step:null}}async function T(a,e,n,t,l,o,r){const s={},i={},c=a.variables[e.x],y=a.variables[e.y],[h,m]=await Promise.all([c.get([P(r[0],r[1]+1)]),y.get([P(o[0],o[1]+1)])]);s[e.x]={data:h},s[e.y]={data:m};const v=n.map(async b=>{const p=a.variables[b];if(!p)return;const x=p.dimensions.map(f=>e.t&&f===e.t?t:e.z&&f===e.z?l:f===e.y?P(o[0],o[1]+1):f===e.x?P(r[0],r[1]+1):null),D=await p.get(x);i[b]={data:D}});return await Promise.all(v),{coords:s,data_vars:i}}function V(a,e=.1){const n=a.getBounds(),t=n[0][0],l=n[0][1],o=n[1][0],r=n[1][1],s=o-t,i=r-l,c=s*e,y=i*e;return{west:t-c,south:Math.max(-90,l-y),east:o+c,north:Math.min(90,r+y)}}function j(a,e){return e?a.west>=e.west&&a.south>=e.south&&a.east<=e.east&&a.north<=e.north:!1}function W(a,e){let n=null;const t=((...l)=>{n&&clearTimeout(n),n=setTimeout(()=>{n=null,a(...l)},e)});return t.cancel=()=>{n&&(clearTimeout(n),n=null)},t}const A={onMetadataError:a=>console.warn(`[OceanumLayer] ${a.message}`),onChunkError:a=>console.warn(`[OceanumLayer] ${a.message}`),onVariableError:a=>console.warn(`[OceanumLayer] ${a.message}`),onValidationError:a=>console.error(`[OceanumLayer] ${a.message}`)},U={serviceUrl:{type:"string",value:"https://layers.app.oceanum.io"},authHeaders:{type:"object",value:{}},layerId:{type:"string",value:null},instance:{type:"string",value:null},time:{type:"string",value:null},level:{type:"number",value:0},colormap:{type:"object",value:null},opacity:{type:"number",value:1},altitude:{type:"number",value:0},globalWrap:{type:"boolean",value:!1},scale:{type:"number",value:1},offset:{type:"number",value:0},pickable:{type:"boolean",value:!1},visible:{type:"boolean",value:!0},viewportPadding:{type:"number",value:.1},debounceWait:{type:"number",value:100},onDataLoad:{type:"function",value:null},errorHandlers:{type:"object",value:null},xvector:{type:"string",value:null},yvector:{type:"string",value:null},magnitude:{type:"string",value:null},direction:{type:"string",value:null},directionConvention:{type:"string",value:"NAUTICAL_FROM"}};function g(a){return a.props}function w(a){return a.state}function _(a){return a.context}class d extends R.CompositeLayer{static layerName="OceanumBaseLayer";static defaultProps=U;initializeState(){this.setState({dataset:null,loading:!1,slicing:!1,error:null,instance:null,coordNames:null,times:null,nlevels:0,lats:null,lons:null,timeIndex:0,levelIndex:0,latRange:[0,0],lonRange:[0,0],fetchedBbox:null,slicedData:null,datakeys:null,debouncedSlice:W(()=>this._requestSlice(),g(this).debounceWait)}),this._openDataset()}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({props:e,oldProps:n,changeFlags:t}){const l=e,o=n,r=w(this);if(l.debounceWait!==o.debounceWait&&(r.debouncedSlice&&r.debouncedSlice.cancel(),this.setState({debouncedSlice:W(()=>this._requestSlice(),l.debounceWait)})),l.layerId!==o.layerId||l.instance!==o.instance||l.serviceUrl!==o.serviceUrl||this._variablePropsChanged(l,o)){this._openDataset();return}if(!r.dataset)return;let s=!1;if(l.time!==o.time&&r.times){const i=l.time?C(r.times,l.time):0;i!==r.timeIndex&&(this.setState({timeIndex:i}),s=!0)}if(l.level!==o.level){const i=M(l.level||0,r.nlevels);i!==r.levelIndex&&(this.setState({levelIndex:i}),s=!0)}if(s){this._requestSlice();return}if(t.viewportChanged&&_(this).viewport){const i=V(_(this).viewport,l.viewportPadding);if(!j(i,r.fetchedBbox)){const c=S(r.lons,i.west,i.east),y=S(r.lats,i.south,i.north);this.setState({latRange:y,lonRange:c,fetchedBbox:i}),r.debouncedSlice&&r.debouncedSlice()}}}finalizeState(){const e=w(this);e.debouncedSlice&&e.debouncedSlice.cancel()}_variablePropsChanged(e,n){return e.magnitude!==n.magnitude||e.direction!==n.direction||e.xvector!==n.xvector||e.yvector!==n.yvector||e.directionConvention!==n.directionConvention}_validateVariableProps(e){return null}_buildDatakeys(e){return{x:e.x,y:e.y}}_createInnerLayer(e,n){return null}_fireError(e,n){const t={type:e,...n};this.setState({error:t});const l=g(this).errorHandlers||{},o=`on${e.charAt(0).toUpperCase()+e.slice(1)}Error`,r=l[o]||A[o];r&&r(t)}async _openDataset(){const e=g(this),{serviceUrl:n,layerId:t,authHeaders:l}=e;if(!n||!t)return;const o=this._validateVariableProps(e);if(o){this._fireError("validation",{message:o});return}this.setState({loading:!0,error:null});try{let r=`${n}/zarr/${t}`,s=e.instance;if(!s){const u=await this._discoverInstances(r,l||{});u.length>0&&(u.sort(),s=u[u.length-1])}s&&(r=`${r}/${s}`);const i=await B.Dataset.zarr(r,l||{}),c=i.coordkeys;if(!c||!c.x||!c.y)throw new Error("Dataset is missing required coordinate mappings (x, y) in _coordinates");const y=$(e);for(const u of y)if(!i.variables[u]){const L=Object.keys(i.variables);this._fireError("variable",{layerId:t,variable:u,availableVariables:L,message:`Variable "${u}" not found in dataset. Available: ${L.join(", ")}`}),this.setState({loading:!1});return}const[h,m,v]=await Promise.all([i.variables[c.x]?.get(),i.variables[c.y]?.get(),c.t&&i.variables[c.t]?i.variables[c.t].get():null]),b=c.z&&i.dimensions[c.z]?i.dimensions[c.z]:0,p=e.time&&v?C(v,e.time):0,O=M(e.level||0,b),x={x:c.x,y:c.y,t:c.t,z:c.z},D=this._buildDatakeys(x);let f=[0,m?m.length-1:0],I=[0,h?h.length-1:0],z=null;if(_(this).viewport){const u=V(_(this).viewport,e.viewportPadding);h&&(I=S(h,u.west,u.east)),m&&(f=S(m,u.south,u.north)),z=u}if(this.setState({dataset:i,loading:!1,instance:s,coordNames:x,times:v,nlevels:b,lats:m,lons:h,timeIndex:p,levelIndex:O,latRange:f,lonRange:I,fetchedBbox:z,datakeys:D}),e.onDataLoad){const u=v?Array.from(v,L=>new Date(L*1e3)):[];e.onDataLoad({dataset:i,times:u,nlevels:b,instance:s})}this._requestSlice()}catch(r){this._fireError("metadata",{layerId:t,message:`Failed to open dataset: ${r.message}`,cause:r}),this.setState({loading:!1})}}async _discoverInstances(e,n){try{const t=await fetch(`${e}/.zmetadata`,{headers:n});if(!t.ok)return[];const l=await t.json();if(!l.metadata)return[];const o=new Set;for(const r of Object.keys(l.metadata)){const s=r.split("/");s.length===2&&s[1]===".zgroup"&&o.add(s[0])}return Array.from(o)}catch{return[]}}async _requestSlice(){const e=w(this),{dataset:n,coordNames:t,timeIndex:l,levelIndex:o,latRange:r,lonRange:s}=e;if(!n||!t)return;const i=$(g(this));if(i.length!==0){this.setState({slicing:!0});try{const c=await T(n,t,i,l,o,r,s);this.setState({slicedData:c,slicing:!1,error:null})}catch(c){this._fireError("chunk",{layerId:g(this).layerId,time:e.times?new Date(e.times[l]*1e3):null,level:o,message:`Chunk fetch failed: ${c.message}`,cause:c}),this.setState({slicing:!1})}}}renderLayers(){const e=w(this);return!e.slicedData||!e.datakeys?[]:this._createInnerLayer(e.slicedData,e.datakeys)}}const H={...d.defaultProps,color:{type:"array",value:[200,200,200]},material:!1};class X extends d{static layerName="OceanumPcolorLayer";static defaultProps=H;_validateVariableProps(e){const n=!!e.magnitude,t=e.xvector&&e.yvector;return!n&&!t?'OceanumPcolorLayer requires "magnitude" or "xvector" + "yvector"':null}_buildDatakeys(e){return E(e,this.props)}_createInnerLayer(e,n){const t=this.props;return new k.PcolorLayer({id:`${t.id}-inner`,data:e,datakeys:n,opacity:t.opacity,altitude:t.altitude,globalWrap:t.globalWrap,colormap:t.colormap,scale:t.scale,offset:t.offset,color:t.color,material:t.material,pickable:t.pickable,visible:t.visible})}}const Y={...d.defaultProps,speed:{type:"number",value:1},npart:{type:"number",value:1e3},size:{type:"number",value:3},length:{type:"number",value:12},color:{type:"array",value:[200,200,200]}};class F extends d{static layerName="OceanumParticleLayer";static defaultProps=Y;_validateVariableProps(e){const n=e.xvector&&e.yvector,t=e.magnitude&&e.direction;return!n&&!t?'OceanumParticleLayer requires "xvector" + "yvector" or "magnitude" + "direction"':n&&t?'OceanumParticleLayer: provide "xvector" + "yvector" or "magnitude" + "direction", not both':null}_buildDatakeys(e){return q(e,this.props)}_createInnerLayer(e,n){const t=this.props;return new k.ParticleLayer({id:`${t.id}-inner`,data:e,datakeys:n,opacity:t.opacity,altitude:t.altitude,globalWrap:t.globalWrap,colormap:t.colormap,scale:t.scale,offset:t.offset,color:t.color,direction:t.directionConvention,speed:t.speed,npart:t.npart,size:t.size,length:t.length,pickable:t.pickable,visible:t.visible})}}const N={...d.defaultProps,speed:{type:"number",value:1},size:{type:"number",value:3},color:{type:"array",value:[200,200,200]},meshShape:{type:"string",value:"cone"},meshLength:{type:"number",value:4},meshWidth:{type:"number",value:1},meshSize:{type:"number",value:1}};class G extends d{static layerName="OceanumPartmeshLayer";static defaultProps=N;_validateVariableProps(e){const n=e.xvector&&e.yvector,t=e.magnitude&&e.direction;return!n&&!t?'OceanumPartmeshLayer requires "xvector" + "yvector" or "magnitude" + "direction"':n&&t?'OceanumPartmeshLayer: provide "xvector" + "yvector" or "magnitude" + "direction", not both':null}_buildDatakeys(e){return q(e,this.props)}_createInnerLayer(e,n){const t=this.props;return new k.PartmeshLayer({id:`${t.id}-inner`,data:e,datakeys:n,opacity:t.opacity,altitude:t.altitude,globalWrap:t.globalWrap,colormap:t.colormap,scale:t.scale,offset:t.offset,color:t.color,direction:t.directionConvention,speed:t.speed,size:t.size,mesh:{shape:t.meshShape,length:t.meshLength,width:t.meshWidth,size:t.meshSize},pickable:t.pickable,visible:t.visible})}}const J={...d.defaultProps,levels:{type:"array",value:[]},labelSize:{type:"number",value:12},labelColor:{type:"array",value:[255,255,255,255]},smoothing:{type:"boolean",value:!1},numLabels:{type:"number",value:1},color:{type:"array",value:[200,200,200]}};class K extends d{static layerName="OceanumContourLayer";static defaultProps=J;_validateVariableProps(e){const n=!!e.magnitude,t=e.xvector&&e.yvector;return!n&&!t?'OceanumContourLayer requires "magnitude" or "xvector" + "yvector"':null}_buildDatakeys(e){return E(e,this.props)}_createInnerLayer(e,n){const t=this.props;return new k.ContourLayer({id:`${t.id}-inner`,data:e,datakeys:n,opacity:t.opacity,altitude:t.altitude,globalWrap:t.globalWrap,colormap:t.colormap,scale:t.scale,offset:t.offset,color:t.color,levels:t.levels,labelSize:t.labelSize,labelColor:t.labelColor,smoothing:t.smoothing,numLabels:t.numLabels,pickable:t.pickable,visible:t.visible})}}exports.OceanumBaseLayer=d;exports.OceanumContourLayer=K;exports.OceanumParticleLayer=F;exports.OceanumPartmeshLayer=G;exports.OceanumPcolorLayer=X;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("@oceanum/deck-gl-grid"),R=require("@deck.gl/core"),B=require("@oceanum/datamesh");function E(a,e){const n={x:a.x,y:a.y};return e.xvector&&e.yvector?(n.u=e.xvector,n.v=e.yvector):n.c=e.magnitude,n}function q(a,e){const n={x:a.x,y:a.y};return e.xvector&&e.yvector?(n.u=e.xvector,n.v=e.yvector):(n.m=e.magnitude,n.d=e.direction),n}function $(a){const e=[];return a.magnitude&&e.push(a.magnitude),a.xvector&&e.push(a.xvector),a.yvector&&e.push(a.yvector),a.direction&&e.push(a.direction),e}function C(a,e){if(!a||a.length===0)return 0;const n=e instanceof Date?e.getTime()/1e3:new Date(e).getTime()/1e3;let t=0,l=a.length-1;for(;t<l;){const o=t+l>>1;a[o]<n?t=o+1:l=o}return t>0&&Math.abs(a[t-1]-n)<Math.abs(a[t]-n)?t-1:t}function M(a,e){return e<=0?0:Math.max(0,Math.min(a,e-1))}function S(a,e,n){if(!a||a.length===0)return[0,0];const t=a.length<2||a[1]>=a[0];let l=0,o=a.length-1;if(t){let r=0,s=a.length-1;for(;r<s;){const i=r+s>>1;a[i]<e?r=i+1:s=i}for(l=Math.max(0,r-1),r=l,s=a.length-1;r<s;){const i=r+s+1>>1;a[i]>n?s=i-1:r=i}o=Math.min(a.length-1,r+1)}else{let r=0,s=a.length-1;for(;r<s;){const i=r+s>>1;a[i]>n?r=i+1:s=i}for(l=Math.max(0,r-1),r=l,s=a.length-1;r<s;){const i=r+s+1>>1;a[i]<e?s=i-1:r=i}o=Math.min(a.length-1,r+1)}return[l,o]}function P(a,e){return{start:a,stop:e,step:null}}async function T(a,e,n,t,l,o,r){const s={},i={},c=a.variables[e.x],y=a.variables[e.y],[h,m]=await Promise.all([c.get([P(r[0],r[1]+1)]),y.get([P(o[0],o[1]+1)])]);s[e.x]={data:h},s[e.y]={data:m};const v=n.map(async b=>{const p=a.variables[b];if(!p)return;const x=p.dimensions.map(f=>e.t&&f===e.t?t:e.z&&f===e.z?l:f===e.y?P(o[0],o[1]+1):f===e.x?P(r[0],r[1]+1):null),D=await p.get(x);i[b]={data:D}});return await Promise.all(v),{coords:s,data_vars:i}}function V(a,e=.1){const n=a.getBounds(),t=n[0][0],l=n[0][1],o=n[1][0],r=n[1][1],s=o-t,i=r-l,c=s*e,y=i*e;return{west:t-c,south:Math.max(-90,l-y),east:o+c,north:Math.min(90,r+y)}}function j(a,e){return e?a.west>=e.west&&a.south>=e.south&&a.east<=e.east&&a.north<=e.north:!1}function W(a,e){let n=null;const t=((...l)=>{n&&clearTimeout(n),n=setTimeout(()=>{n=null,a(...l)},e)});return t.cancel=()=>{n&&(clearTimeout(n),n=null)},t}const A={onMetadataError:a=>console.warn(`[OceanumLayer] ${a.message}`),onChunkError:a=>console.warn(`[OceanumLayer] ${a.message}`),onVariableError:a=>console.warn(`[OceanumLayer] ${a.message}`),onValidationError:a=>console.error(`[OceanumLayer] ${a.message}`)},U={serviceUrl:{type:"string",value:"https://layers.app.oceanum.io"},authHeaders:{type:"object",value:{}},layerId:{type:"string",value:null},instance:{type:"string",value:null},time:{type:"string",value:null},level:{type:"number",value:0},colormap:{type:"object",value:null},opacity:{type:"number",value:1},altitude:{type:"number",value:0},globalWrap:{type:"boolean",value:!1},scale:{type:"number",value:1},offset:{type:"number",value:0},pickable:{type:"boolean",value:!1},visible:{type:"boolean",value:!0},viewportPadding:{type:"number",value:.1},debounceWait:{type:"number",value:100},onDataLoad:{type:"function",value:null},errorHandlers:{type:"object",value:null},xvector:{type:"string",value:null},yvector:{type:"string",value:null},magnitude:{type:"string",value:null},direction:{type:"string",value:null},directionConvention:{type:"string",value:"NAUTICAL_FROM"}};function g(a){return a.props}function w(a){return a.state}function _(a){return a.context}class d extends R.CompositeLayer{static layerName="OceanumBaseLayer";static defaultProps=U;initializeState(){this.setState({dataset:null,loading:!1,slicing:!1,error:null,instance:null,coordNames:null,times:null,nlevels:0,lats:null,lons:null,timeIndex:0,levelIndex:0,latRange:[0,0],lonRange:[0,0],fetchedBbox:null,slicedData:null,datakeys:null,debouncedSlice:W(()=>this._requestSlice(),g(this).debounceWait)}),this._openDataset()}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({props:e,oldProps:n,changeFlags:t}){const l=e,o=n,r=w(this);if(l.debounceWait!==o.debounceWait&&(r.debouncedSlice&&r.debouncedSlice.cancel(),this.setState({debouncedSlice:W(()=>this._requestSlice(),l.debounceWait)})),l.layerId!==o.layerId||l.instance!==o.instance||l.serviceUrl!==o.serviceUrl||this._variablePropsChanged(l,o)){this._openDataset();return}if(!r.dataset)return;let s=!1;if(l.time!==o.time&&r.times){const i=l.time?C(r.times,l.time):0;i!==r.timeIndex&&(this.setState({timeIndex:i}),s=!0)}if(l.level!==o.level){const i=M(l.level||0,r.nlevels);i!==r.levelIndex&&(this.setState({levelIndex:i}),s=!0)}if(s){this._requestSlice();return}if(t.viewportChanged&&_(this).viewport){const i=V(_(this).viewport,l.viewportPadding);if(!j(i,r.fetchedBbox)){const c=S(r.lons,i.west,i.east),y=S(r.lats,i.south,i.north);this.setState({latRange:y,lonRange:c,fetchedBbox:i}),r.debouncedSlice&&r.debouncedSlice()}}}finalizeState(){const e=w(this);e.debouncedSlice&&e.debouncedSlice.cancel()}_variablePropsChanged(e,n){return e.magnitude!==n.magnitude||e.direction!==n.direction||e.xvector!==n.xvector||e.yvector!==n.yvector||e.directionConvention!==n.directionConvention}_validateVariableProps(e){return null}_buildDatakeys(e){return{x:e.x,y:e.y}}_createInnerLayer(e,n){return null}_fireError(e,n){const t={type:e,...n};this.setState({error:t});const l=g(this).errorHandlers||{},o=`on${e.charAt(0).toUpperCase()+e.slice(1)}Error`,r=l[o]||A[o];r&&r(t)}async _openDataset(){const e=g(this),{serviceUrl:n,layerId:t,authHeaders:l}=e;if(!n||!t)return;const o=this._validateVariableProps(e);if(o){this._fireError("validation",{message:o});return}this.setState({loading:!0,error:null});try{let r=`${n}/zarr/${t}`,s=e.instance;if(!s){const u=await this._discoverInstances(r,l||{});u.length>0&&(u.sort(),s=u[u.length-1])}s&&(r=`${r}/${s}`);const i=await B.Dataset.zarr(r,l||{}),c=i.coordkeys;if(!c||!c.x||!c.y)throw new Error("Dataset is missing required coordinate mappings (x, y) in _coordinates");const y=$(e);for(const u of y)if(!i.variables[u]){const L=Object.keys(i.variables);this._fireError("variable",{layerId:t,variable:u,availableVariables:L,message:`Variable "${u}" not found in dataset. Available: ${L.join(", ")}`}),this.setState({loading:!1});return}const[h,m,v]=await Promise.all([i.variables[c.x]?.get(),i.variables[c.y]?.get(),c.t&&i.variables[c.t]?i.variables[c.t].get():null]),b=c.z&&i.dimensions[c.z]?i.dimensions[c.z]:0,p=e.time&&v?C(v,e.time):0,O=M(e.level||0,b),x={x:c.x,y:c.y,t:c.t,z:c.z},D=this._buildDatakeys(x);let f=[0,m?m.length-1:0],I=[0,h?h.length-1:0],z=null;if(_(this).viewport){const u=V(_(this).viewport,e.viewportPadding);h&&(I=S(h,u.west,u.east)),m&&(f=S(m,u.south,u.north)),z=u}if(this.setState({dataset:i,loading:!1,instance:s,coordNames:x,times:v,nlevels:b,lats:m,lons:h,timeIndex:p,levelIndex:O,latRange:f,lonRange:I,fetchedBbox:z,datakeys:D}),e.onDataLoad){const u=v?Array.from(v,L=>new Date(L*1e3)):[];e.onDataLoad({dataset:i,times:u,nlevels:b,instance:s})}this._requestSlice()}catch(r){this._fireError("metadata",{layerId:t,message:`Failed to open dataset: ${r.message}`,cause:r}),this.setState({loading:!1})}}async _discoverInstances(e,n){try{const t=await fetch(`${e}/.zmetadata`,{headers:n});if(!t.ok)return[];const l=await t.json();if(!l.metadata)return[];const o=new Set;for(const r of Object.keys(l.metadata)){const s=r.split("/");s.length===2&&s[1]===".zgroup"&&o.add(s[0])}return Array.from(o)}catch{return[]}}async _requestSlice(){const e=w(this),{dataset:n,coordNames:t,timeIndex:l,levelIndex:o,latRange:r,lonRange:s}=e;if(!n||!t)return;const i=$(g(this));if(i.length!==0){this.setState({slicing:!0});try{const c=await T(n,t,i,l,o,r,s);this.setState({slicedData:c,slicing:!1,error:null}),this.setNeedsRedraw()}catch(c){this._fireError("chunk",{layerId:g(this).layerId,time:e.times?new Date(e.times[l]*1e3):null,level:o,message:`Chunk fetch failed: ${c.message}`,cause:c}),this.setState({slicing:!1})}}}renderLayers(){const e=w(this);return!e.slicedData||!e.datakeys?[]:this._createInnerLayer(e.slicedData,e.datakeys)}}const H={...d.defaultProps,color:{type:"array",value:[200,200,200]},material:!1};class N extends d{static layerName="OceanumPcolorLayer";static defaultProps=H;_validateVariableProps(e){const n=!!e.magnitude,t=e.xvector&&e.yvector;return!n&&!t?'OceanumPcolorLayer requires "magnitude" or "xvector" + "yvector"':null}_buildDatakeys(e){return E(e,this.props)}_createInnerLayer(e,n){const t=this.props;return new k.PcolorLayer({id:`${t.id}-inner`,data:e,datakeys:n,opacity:t.opacity,altitude:t.altitude,globalWrap:t.globalWrap,colormap:t.colormap,scale:t.scale,offset:t.offset,color:t.color,material:t.material,pickable:t.pickable,visible:t.visible})}}const X={...d.defaultProps,speed:{type:"number",value:1},npart:{type:"number",value:1e3},size:{type:"number",value:3},length:{type:"number",value:12},color:{type:"array",value:[200,200,200]}};class Y extends d{static layerName="OceanumParticleLayer";static defaultProps=X;_validateVariableProps(e){const n=e.xvector&&e.yvector,t=e.magnitude&&e.direction;return!n&&!t?'OceanumParticleLayer requires "xvector" + "yvector" or "magnitude" + "direction"':n&&t?'OceanumParticleLayer: provide "xvector" + "yvector" or "magnitude" + "direction", not both':null}_buildDatakeys(e){return q(e,this.props)}_createInnerLayer(e,n){const t=this.props;return new k.ParticleLayer({id:`${t.id}-inner`,data:e,datakeys:n,opacity:t.opacity,altitude:t.altitude,globalWrap:t.globalWrap,colormap:t.colormap,scale:t.scale,offset:t.offset,color:t.color,direction:t.directionConvention,speed:t.speed,npart:t.npart,size:t.size,length:t.length,pickable:t.pickable,visible:t.visible})}}const F={...d.defaultProps,speed:{type:"number",value:1},size:{type:"number",value:3},color:{type:"array",value:[200,200,200]},meshShape:{type:"string",value:"cone"},meshLength:{type:"number",value:4},meshWidth:{type:"number",value:1},meshSize:{type:"number",value:1}};class G extends d{static layerName="OceanumPartmeshLayer";static defaultProps=F;_validateVariableProps(e){const n=e.xvector&&e.yvector,t=e.magnitude&&e.direction;return!n&&!t?'OceanumPartmeshLayer requires "xvector" + "yvector" or "magnitude" + "direction"':n&&t?'OceanumPartmeshLayer: provide "xvector" + "yvector" or "magnitude" + "direction", not both':null}_buildDatakeys(e){return q(e,this.props)}_createInnerLayer(e,n){const t=this.props;return new k.PartmeshLayer({id:`${t.id}-inner`,data:e,datakeys:n,opacity:t.opacity,altitude:t.altitude,globalWrap:t.globalWrap,colormap:t.colormap,scale:t.scale,offset:t.offset,color:t.color,direction:t.directionConvention,speed:t.speed,size:t.size,mesh:{shape:t.meshShape,length:t.meshLength,width:t.meshWidth,size:t.meshSize},pickable:t.pickable,visible:t.visible})}}const J={...d.defaultProps,levels:{type:"array",value:[]},labelSize:{type:"number",value:12},labelColor:{type:"array",value:[255,255,255,255]},smoothing:{type:"boolean",value:!1},numLabels:{type:"number",value:1},color:{type:"array",value:[200,200,200]}};class K extends d{static layerName="OceanumContourLayer";static defaultProps=J;_validateVariableProps(e){const n=!!e.magnitude,t=e.xvector&&e.yvector;return!n&&!t?'OceanumContourLayer requires "magnitude" or "xvector" + "yvector"':null}_buildDatakeys(e){return E(e,this.props)}_createInnerLayer(e,n){const t=this.props;return new k.ContourLayer({id:`${t.id}-inner`,data:e,datakeys:n,opacity:t.opacity,altitude:t.altitude,globalWrap:t.globalWrap,colormap:t.colormap,scale:t.scale,offset:t.offset,color:t.color,levels:t.levels,labelSize:t.labelSize,labelColor:t.labelColor,smoothing:t.smoothing,numLabels:t.numLabels,pickable:t.pickable,visible:t.visible})}}exports.OceanumBaseLayer=d;exports.OceanumContourLayer=K;exports.OceanumParticleLayer=Y;exports.OceanumPartmeshLayer=G;exports.OceanumPcolorLayer=N;
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PcolorLayer as
|
|
1
|
+
import { PcolorLayer as R, ParticleLayer as q, PartmeshLayer as A, ContourLayer as B } from "@oceanum/deck-gl-grid";
|
|
2
2
|
import { CompositeLayer as T } from "@deck.gl/core";
|
|
3
3
|
import { Dataset as U } from "@oceanum/datamesh";
|
|
4
4
|
function W(a, e) {
|
|
@@ -26,7 +26,7 @@ function $(a, e) {
|
|
|
26
26
|
function C(a, e) {
|
|
27
27
|
return e <= 0 ? 0 : Math.max(0, Math.min(a, e - 1));
|
|
28
28
|
}
|
|
29
|
-
function
|
|
29
|
+
function w(a, e, n) {
|
|
30
30
|
if (!a || a.length === 0) return [0, 0];
|
|
31
31
|
const t = a.length < 2 || a[1] >= a[0];
|
|
32
32
|
let l = 0, o = a.length - 1;
|
|
@@ -55,19 +55,19 @@ function L(a, e, n) {
|
|
|
55
55
|
}
|
|
56
56
|
return [l, o];
|
|
57
57
|
}
|
|
58
|
-
function
|
|
58
|
+
function L(a, e) {
|
|
59
59
|
return { start: a, stop: e, step: null };
|
|
60
60
|
}
|
|
61
61
|
async function j(a, e, n, t, l, o, r) {
|
|
62
|
-
const s = {}, i = {}, c = a.variables[e.x], d = a.variables[e.y], [
|
|
63
|
-
c.get([
|
|
64
|
-
d.get([
|
|
62
|
+
const s = {}, i = {}, c = a.variables[e.x], d = a.variables[e.y], [y, m] = await Promise.all([
|
|
63
|
+
c.get([L(r[0], r[1] + 1)]),
|
|
64
|
+
d.get([L(o[0], o[1] + 1)])
|
|
65
65
|
]);
|
|
66
|
-
s[e.x] = { data:
|
|
66
|
+
s[e.x] = { data: y }, s[e.y] = { data: m };
|
|
67
67
|
const v = n.map(async (b) => {
|
|
68
68
|
const p = a.variables[b];
|
|
69
69
|
if (!p) return;
|
|
70
|
-
const x = p.dimensions.map((f) => e.t && f === e.t ? t : e.z && f === e.z ? l : f === e.y ?
|
|
70
|
+
const x = p.dimensions.map((f) => e.t && f === e.t ? t : e.z && f === e.z ? l : f === e.y ? L(o[0], o[1] + 1) : f === e.x ? L(r[0], r[1] + 1) : null), k = await p.get(x);
|
|
71
71
|
i[b] = { data: k };
|
|
72
72
|
});
|
|
73
73
|
return await Promise.all(v), { coords: s, data_vars: i };
|
|
@@ -95,12 +95,12 @@ function V(a, e) {
|
|
|
95
95
|
n && (clearTimeout(n), n = null);
|
|
96
96
|
}, t;
|
|
97
97
|
}
|
|
98
|
-
const
|
|
98
|
+
const N = {
|
|
99
99
|
onMetadataError: (a) => console.warn(`[OceanumLayer] ${a.message}`),
|
|
100
100
|
onChunkError: (a) => console.warn(`[OceanumLayer] ${a.message}`),
|
|
101
101
|
onVariableError: (a) => console.warn(`[OceanumLayer] ${a.message}`),
|
|
102
102
|
onValidationError: (a) => console.error(`[OceanumLayer] ${a.message}`)
|
|
103
|
-
},
|
|
103
|
+
}, X = {
|
|
104
104
|
serviceUrl: { type: "string", value: "https://layers.app.oceanum.io" },
|
|
105
105
|
authHeaders: { type: "object", value: {} },
|
|
106
106
|
layerId: { type: "string", value: null },
|
|
@@ -134,9 +134,9 @@ function _(a) {
|
|
|
134
134
|
function P(a) {
|
|
135
135
|
return a.context;
|
|
136
136
|
}
|
|
137
|
-
class
|
|
137
|
+
class h extends T {
|
|
138
138
|
static layerName = "OceanumBaseLayer";
|
|
139
|
-
static defaultProps =
|
|
139
|
+
static defaultProps = X;
|
|
140
140
|
initializeState() {
|
|
141
141
|
this.setState({
|
|
142
142
|
dataset: null,
|
|
@@ -193,7 +193,7 @@ class y extends T {
|
|
|
193
193
|
l.viewportPadding
|
|
194
194
|
);
|
|
195
195
|
if (!H(i, r.fetchedBbox)) {
|
|
196
|
-
const c =
|
|
196
|
+
const c = w(r.lons, i.west, i.east), d = w(r.lats, i.south, i.north);
|
|
197
197
|
this.setState({ latRange: d, lonRange: c, fetchedBbox: i }), r.debouncedSlice && r.debouncedSlice();
|
|
198
198
|
}
|
|
199
199
|
}
|
|
@@ -219,7 +219,7 @@ class y extends T {
|
|
|
219
219
|
_fireError(e, n) {
|
|
220
220
|
const t = { type: e, ...n };
|
|
221
221
|
this.setState({ error: t });
|
|
222
|
-
const l = g(this).errorHandlers || {}, o = `on${e.charAt(0).toUpperCase() + e.slice(1)}Error`, r = l[o] ||
|
|
222
|
+
const l = g(this).errorHandlers || {}, o = `on${e.charAt(0).toUpperCase() + e.slice(1)}Error`, r = l[o] || N[o];
|
|
223
223
|
r && r(t);
|
|
224
224
|
}
|
|
225
225
|
async _openDataset() {
|
|
@@ -255,7 +255,7 @@ class y extends T {
|
|
|
255
255
|
}), this.setState({ loading: !1 });
|
|
256
256
|
return;
|
|
257
257
|
}
|
|
258
|
-
const [
|
|
258
|
+
const [y, m, v] = await Promise.all([
|
|
259
259
|
i.variables[c.x]?.get(),
|
|
260
260
|
i.variables[c.y]?.get(),
|
|
261
261
|
c.t && i.variables[c.t] ? i.variables[c.t].get() : null
|
|
@@ -270,14 +270,14 @@ class y extends T {
|
|
|
270
270
|
m ? m.length - 1 : 0
|
|
271
271
|
], I = [
|
|
272
272
|
0,
|
|
273
|
-
|
|
273
|
+
y ? y.length - 1 : 0
|
|
274
274
|
], z = null;
|
|
275
275
|
if (P(this).viewport) {
|
|
276
276
|
const u = M(
|
|
277
277
|
P(this).viewport,
|
|
278
278
|
e.viewportPadding
|
|
279
279
|
);
|
|
280
|
-
|
|
280
|
+
y && (I = w(y, u.west, u.east)), m && (f = w(m, u.south, u.north)), z = u;
|
|
281
281
|
}
|
|
282
282
|
if (this.setState({
|
|
283
283
|
dataset: i,
|
|
@@ -287,7 +287,7 @@ class y extends T {
|
|
|
287
287
|
times: v,
|
|
288
288
|
nlevels: b,
|
|
289
289
|
lats: m,
|
|
290
|
-
lons:
|
|
290
|
+
lons: y,
|
|
291
291
|
timeIndex: p,
|
|
292
292
|
levelIndex: D,
|
|
293
293
|
latRange: f,
|
|
@@ -349,7 +349,7 @@ class y extends T {
|
|
|
349
349
|
r,
|
|
350
350
|
s
|
|
351
351
|
);
|
|
352
|
-
this.setState({ slicedData: c, slicing: !1, error: null });
|
|
352
|
+
this.setState({ slicedData: c, slicing: !1, error: null }), this.setNeedsRedraw();
|
|
353
353
|
} catch (c) {
|
|
354
354
|
this._fireError("chunk", {
|
|
355
355
|
layerId: g(this).layerId,
|
|
@@ -366,14 +366,14 @@ class y extends T {
|
|
|
366
366
|
return !e.slicedData || !e.datakeys ? [] : this._createInnerLayer(e.slicedData, e.datakeys);
|
|
367
367
|
}
|
|
368
368
|
}
|
|
369
|
-
const
|
|
370
|
-
...
|
|
369
|
+
const Y = {
|
|
370
|
+
...h.defaultProps,
|
|
371
371
|
color: { type: "array", value: [200, 200, 200] },
|
|
372
372
|
material: !1
|
|
373
373
|
};
|
|
374
|
-
class ee extends
|
|
374
|
+
class ee extends h {
|
|
375
375
|
static layerName = "OceanumPcolorLayer";
|
|
376
|
-
static defaultProps =
|
|
376
|
+
static defaultProps = Y;
|
|
377
377
|
_validateVariableProps(e) {
|
|
378
378
|
const n = !!e.magnitude, t = e.xvector && e.yvector;
|
|
379
379
|
return !n && !t ? 'OceanumPcolorLayer requires "magnitude" or "xvector" + "yvector"' : null;
|
|
@@ -383,7 +383,7 @@ class ee extends y {
|
|
|
383
383
|
}
|
|
384
384
|
_createInnerLayer(e, n) {
|
|
385
385
|
const t = this.props;
|
|
386
|
-
return new
|
|
386
|
+
return new R({
|
|
387
387
|
id: `${t.id}-inner`,
|
|
388
388
|
data: e,
|
|
389
389
|
datakeys: n,
|
|
@@ -400,17 +400,17 @@ class ee extends y {
|
|
|
400
400
|
});
|
|
401
401
|
}
|
|
402
402
|
}
|
|
403
|
-
const
|
|
404
|
-
...
|
|
403
|
+
const F = {
|
|
404
|
+
...h.defaultProps,
|
|
405
405
|
speed: { type: "number", value: 1 },
|
|
406
406
|
npart: { type: "number", value: 1e3 },
|
|
407
407
|
size: { type: "number", value: 3 },
|
|
408
408
|
length: { type: "number", value: 12 },
|
|
409
409
|
color: { type: "array", value: [200, 200, 200] }
|
|
410
410
|
};
|
|
411
|
-
class te extends
|
|
411
|
+
class te extends h {
|
|
412
412
|
static layerName = "OceanumParticleLayer";
|
|
413
|
-
static defaultProps =
|
|
413
|
+
static defaultProps = F;
|
|
414
414
|
_validateVariableProps(e) {
|
|
415
415
|
const n = e.xvector && e.yvector, t = e.magnitude && e.direction;
|
|
416
416
|
return !n && !t ? 'OceanumParticleLayer requires "xvector" + "yvector" or "magnitude" + "direction"' : n && t ? 'OceanumParticleLayer: provide "xvector" + "yvector" or "magnitude" + "direction", not both' : null;
|
|
@@ -420,7 +420,7 @@ class te extends y {
|
|
|
420
420
|
}
|
|
421
421
|
_createInnerLayer(e, n) {
|
|
422
422
|
const t = this.props;
|
|
423
|
-
return new
|
|
423
|
+
return new q({
|
|
424
424
|
id: `${t.id}-inner`,
|
|
425
425
|
data: e,
|
|
426
426
|
datakeys: n,
|
|
@@ -442,7 +442,7 @@ class te extends y {
|
|
|
442
442
|
}
|
|
443
443
|
}
|
|
444
444
|
const G = {
|
|
445
|
-
...
|
|
445
|
+
...h.defaultProps,
|
|
446
446
|
speed: { type: "number", value: 1 },
|
|
447
447
|
size: { type: "number", value: 3 },
|
|
448
448
|
color: { type: "array", value: [200, 200, 200] },
|
|
@@ -451,7 +451,7 @@ const G = {
|
|
|
451
451
|
meshWidth: { type: "number", value: 1 },
|
|
452
452
|
meshSize: { type: "number", value: 1 }
|
|
453
453
|
};
|
|
454
|
-
class ae extends
|
|
454
|
+
class ae extends h {
|
|
455
455
|
static layerName = "OceanumPartmeshLayer";
|
|
456
456
|
static defaultProps = G;
|
|
457
457
|
_validateVariableProps(e) {
|
|
@@ -489,7 +489,7 @@ class ae extends y {
|
|
|
489
489
|
}
|
|
490
490
|
}
|
|
491
491
|
const J = {
|
|
492
|
-
...
|
|
492
|
+
...h.defaultProps,
|
|
493
493
|
levels: { type: "array", value: [] },
|
|
494
494
|
labelSize: { type: "number", value: 12 },
|
|
495
495
|
labelColor: { type: "array", value: [255, 255, 255, 255] },
|
|
@@ -497,7 +497,7 @@ const J = {
|
|
|
497
497
|
numLabels: { type: "number", value: 1 },
|
|
498
498
|
color: { type: "array", value: [200, 200, 200] }
|
|
499
499
|
};
|
|
500
|
-
class ne extends
|
|
500
|
+
class ne extends h {
|
|
501
501
|
static layerName = "OceanumContourLayer";
|
|
502
502
|
static defaultProps = J;
|
|
503
503
|
_validateVariableProps(e) {
|
|
@@ -531,7 +531,7 @@ class ne extends y {
|
|
|
531
531
|
}
|
|
532
532
|
}
|
|
533
533
|
export {
|
|
534
|
-
|
|
534
|
+
h as OceanumBaseLayer,
|
|
535
535
|
ne as OceanumContourLayer,
|
|
536
536
|
te as OceanumParticleLayer,
|
|
537
537
|
ae as OceanumPartmeshLayer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oceanum-base-layer.d.ts","sourceRoot":"","sources":["../src/oceanum-base-layer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"oceanum-base-layer.d.ts","sourceRoot":"","sources":["../src/oceanum-base-layer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oceanum/layers",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "deck.gl layers for visualising gridded data from Oceanum datamesh zarr datasets",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "vite build",
|
|
@@ -13,20 +13,20 @@
|
|
|
13
13
|
"dist"
|
|
14
14
|
],
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@oceanum/datamesh": "^0.8.
|
|
17
|
-
"@oceanum/deck-gl-grid": "^9.2.
|
|
16
|
+
"@oceanum/datamesh": "^0.8.1",
|
|
17
|
+
"@oceanum/deck-gl-grid": "^9.2.4"
|
|
18
18
|
},
|
|
19
19
|
"peerDependencies": {
|
|
20
|
-
"@deck.gl/core": "^9.2.
|
|
21
|
-
"@deck.gl/layers": "^9.2.
|
|
22
|
-
"@deck.gl/geo-layers": "^9.2.
|
|
23
|
-
"@luma.gl/core": "^9.2.
|
|
20
|
+
"@deck.gl/core": "^9.2.6",
|
|
21
|
+
"@deck.gl/layers": "^9.2.6",
|
|
22
|
+
"@deck.gl/geo-layers": "^9.2.6",
|
|
23
|
+
"@luma.gl/core": "^9.2.6"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@deck.gl/core": "^9.2.
|
|
27
|
-
"@deck.gl/layers": "^9.2.
|
|
28
|
-
"@deck.gl/geo-layers": "^9.2.
|
|
29
|
-
"@luma.gl/core": "^9.2.
|
|
26
|
+
"@deck.gl/core": "^9.2.6",
|
|
27
|
+
"@deck.gl/layers": "^9.2.6",
|
|
28
|
+
"@deck.gl/geo-layers": "^9.2.6",
|
|
29
|
+
"@luma.gl/core": "^9.2.6"
|
|
30
30
|
},
|
|
31
31
|
"type": "module",
|
|
32
32
|
"main": "./dist/index.js",
|