@opengeoweb/webmap-react 12.10.0 → 12.11.0
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/index.esm.js +3379 -858
- package/package.json +7 -4
- package/src/lib/components/LayerInfo/LayerInfoDialog.stories.d.ts +1 -1
- package/src/lib/components/Legend/Legend.stories.d.ts +1 -1
- package/src/lib/components/MapDimensionSelect/DimensionSelectDialog.stories.d.ts +1 -1
- package/src/lib/components/MapDimensionSelect/MapDimensionSelect.stories.d.ts +1 -1
- package/src/lib/components/MapDraw/storyComponents/storyUtils.d.ts +0 -1
- package/src/lib/components/MapDrawTool/MapDrawTool.stories.d.ts +1 -1
- package/src/lib/components/MapDrawTool/MapDrawToolMultipleDrawTools.stories.d.ts +1 -1
- package/src/lib/components/MapDrawTool/storyExamplesMapDrawToolMultipleDrawTools.d.ts +1 -1
- package/src/lib/components/MapDrawTool/utils.d.ts +2 -2
- package/src/lib/components/OpenLayers/OpenLayers.BaseLayer.stories.d.ts +1 -1
- package/src/lib/components/OpenLayers/OpenLayersMapView.Error.stories.d.ts +1 -1
- package/src/lib/components/OpenLayers/OpenLayersMapView.MapPin.stories.d.ts +1 -1
- package/src/lib/components/OpenLayers/OpenLayersMapView.Passive.stories.d.ts +1 -1
- package/src/lib/components/OpenLayers/OpenLayersMapView.RadarAnimation.stories.d.ts +1 -1
- package/src/lib/components/OpenLayers/OpenLayersMapView.RadarData.stories.d.ts +1 -1
- package/src/lib/components/OpenLayers/OpenLayersMapView.SetProjectionBBox.stories.d.ts +1 -1
- package/src/lib/components/OpenLayers/OpenLayersMapView.SetProjectionBBoxLocalState.stories.d.ts +1 -1
- package/src/lib/components/OpenLayers/OpenLayersMapView.ShiftToZoom.stories.d.ts +1 -1
- package/src/lib/components/OpenLayers/OpenLayersMapView.ShowLayerInfo.stories.d.ts +1 -1
- package/src/lib/components/OpenLayers/OpenLayersMapView.TiledBaseLayers.stories.d.ts +1 -1
- package/src/lib/components/OpenLayers/OpenLayersMapView.VFXData.stories.d.ts +1 -1
- package/src/lib/components/OpenLayers/context/MapContext.d.ts +0 -1
- package/src/lib/components/OpenLayers/context/TimeContext.d.ts +0 -1
- package/src/lib/components/OpenLayers/controls/OpenLayersGetFeatureInfo.d.ts +0 -1
- package/src/lib/components/OpenLayers/controls/OpenLayersZoomControl.d.ts +0 -1
- package/src/lib/components/OpenLayers/draw/OpenLayersMapDraw.stories.d.ts +1 -1
- package/src/lib/components/OpenLayers/layers/FeatureLayer.d.ts +0 -1
- package/src/lib/components/OpenLayers/layers/OpenLayersFeatureLayer.d.ts +1 -2
- package/src/lib/components/OpenLayers/layers/TiledWMSLayer.d.ts +0 -1
- package/src/lib/components/OpenLayers/layers/TimeAwareEDRLocationLayer.d.ts +6 -3
- package/src/lib/components/OpenLayers/layers/TimeawareImageSourceWMSLayer.d.ts +0 -1
- package/src/lib/components/OpenLayers/layers/WMSLayer.d.ts +0 -1
- package/src/lib/components/OpenLayers/layers/WMTSLayer.d.ts +0 -1
- package/src/lib/components/OpenLayers/layers/XYZLayer.d.ts +0 -1
- package/src/lib/components/OpenLayers/tools/ClickOnMapTool.d.ts +0 -1
- package/src/lib/components/OpenLayers/utils/ShowTimeAwareLayerInfo.d.ts +0 -1
- package/src/lib/components/OpenLayers/utils/constants.d.ts +2 -0
- package/src/lib/components/OpenLayers/utils/makeDimValuesToPrefetch.d.ts +9 -1
- package/src/lib/components/TanStackDemo/EDRLayerApi.stories.d.ts +2 -2
- package/src/lib/edr-layer-api/api.d.ts +4 -0
- package/src/lib/edr-layer-api/colormaps/colormaps.d.ts +6 -3
- package/src/lib/edr-layer-api/colormaps/edrOlLegendUtils.d.ts +2 -1
- package/src/lib/edr-layer-api/hooks.d.ts +6 -5
- package/src/lib/edr-layer-api/hooks.spec.d.ts +1 -0
- package/src/lib/edr-layer-api/index.d.ts +1 -0
- package/src/lib/edr-layer-api/utils/useGetEDRLayerInstance.d.ts +11 -0
- package/src/lib/edr-layer-api/utils/useGetEDRLayerInstance.spec.d.ts +1 -0
- package/src/lib/hooks/useHooksGetCapabilities.d.ts +1 -1
- package/src/lib/utils/i18n.d.ts +1 -1
package/index.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { WMImageStore, legendImageStore, WMImageEventType, webmapUtils, getLegendGraphicURLForLayer, WEBMAP_NAMESPACE, WMProj4Defs, privateWebMapUtils, WMLayer, LayerType, WMInvalidDateValues, getCorrectWMSDimName, tilesettings } from '@opengeoweb/webmap';
|
|
1
|
+
import { WMImageStore, legendImageStore, WMImageEventType, webmapUtils, getLegendGraphicURLForLayer, WEBMAP_NAMESPACE, WMProj4Defs, privateWebMapUtils, WMLayer, LayerType, WMInvalidDateValues, getCorrectWMSDimName, WMJSDimension, tilesettings } from '@opengeoweb/webmap';
|
|
2
2
|
export { WEBMAP_NAMESPACE, webmapTranslations } from '@opengeoweb/webmap';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import React__default, { createContext, useRef, useState, useEffect, useCallback, useContext, useMemo, useLayoutEffect } from 'react';
|
|
@@ -37,11 +37,11 @@ import TileLayer from 'ol/layer/Tile';
|
|
|
37
37
|
import { WMTS, XYZ, TileWMS } from 'ol/source';
|
|
38
38
|
import WMTSCapabilities from 'ol/format/WMTSCapabilities';
|
|
39
39
|
import { optionsFromCapabilities } from 'ol/source/WMTS';
|
|
40
|
-
import { Vector } from 'ol/layer';
|
|
41
|
-
import VectorSource from 'ol/source/Vector';
|
|
42
|
-
import GeoJSON from 'ol/format/GeoJSON';
|
|
43
40
|
import { Circle, Stroke, Fill, Style, Text, Icon as Icon$2 } from 'ol/style';
|
|
44
41
|
import { http, HttpResponse } from 'msw';
|
|
42
|
+
import GeoJSON from 'ol/format/GeoJSON';
|
|
43
|
+
import { Vector } from 'ol/layer';
|
|
44
|
+
import VectorSource from 'ol/source/Vector';
|
|
45
45
|
import VectorLayer from 'ol/layer/Vector';
|
|
46
46
|
import { createBox } from 'ol/interaction/Draw';
|
|
47
47
|
import Style$1 from 'ol/style/Style';
|
|
@@ -253,6 +253,9 @@ var webmapReactTranslations = {
|
|
|
253
253
|
* */
|
|
254
254
|
var TimeContext = /*#__PURE__*/createContext({});
|
|
255
255
|
|
|
256
|
+
function _OverloadYield(e, d) {
|
|
257
|
+
this.v = e, this.k = d;
|
|
258
|
+
}
|
|
256
259
|
function _arrayLikeToArray(r, a) {
|
|
257
260
|
(null == a || a > r.length) && (a = r.length);
|
|
258
261
|
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
|
|
@@ -310,6 +313,54 @@ function _createClass(e, r, t) {
|
|
|
310
313
|
writable: false
|
|
311
314
|
}), e;
|
|
312
315
|
}
|
|
316
|
+
function _createForOfIteratorHelper(r, e) {
|
|
317
|
+
var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
318
|
+
if (!t) {
|
|
319
|
+
if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) {
|
|
320
|
+
t && (r = t);
|
|
321
|
+
var n = 0,
|
|
322
|
+
F = function () {};
|
|
323
|
+
return {
|
|
324
|
+
s: F,
|
|
325
|
+
n: function () {
|
|
326
|
+
return n >= r.length ? {
|
|
327
|
+
done: true
|
|
328
|
+
} : {
|
|
329
|
+
done: false,
|
|
330
|
+
value: r[n++]
|
|
331
|
+
};
|
|
332
|
+
},
|
|
333
|
+
e: function (r) {
|
|
334
|
+
throw r;
|
|
335
|
+
},
|
|
336
|
+
f: F
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
340
|
+
}
|
|
341
|
+
var o,
|
|
342
|
+
a = true,
|
|
343
|
+
u = false;
|
|
344
|
+
return {
|
|
345
|
+
s: function () {
|
|
346
|
+
t = t.call(r);
|
|
347
|
+
},
|
|
348
|
+
n: function () {
|
|
349
|
+
var r = t.next();
|
|
350
|
+
return a = r.done, r;
|
|
351
|
+
},
|
|
352
|
+
e: function (r) {
|
|
353
|
+
u = true, o = r;
|
|
354
|
+
},
|
|
355
|
+
f: function () {
|
|
356
|
+
try {
|
|
357
|
+
a || null == t.return || t.return();
|
|
358
|
+
} finally {
|
|
359
|
+
if (u) throw o;
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
};
|
|
363
|
+
}
|
|
313
364
|
function _defineProperty(e, r, t) {
|
|
314
365
|
return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
315
366
|
value: t,
|
|
@@ -425,306 +476,180 @@ function _possibleConstructorReturn(t, e) {
|
|
|
425
476
|
if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
|
|
426
477
|
return _assertThisInitialized(t);
|
|
427
478
|
}
|
|
428
|
-
function
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
479
|
+
function _regenerator() {
|
|
480
|
+
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
481
|
+
var e,
|
|
482
|
+
t,
|
|
483
|
+
r = "function" == typeof Symbol ? Symbol : {},
|
|
484
|
+
n = r.iterator || "@@iterator",
|
|
485
|
+
o = r.toStringTag || "@@toStringTag";
|
|
486
|
+
function i(r, n, o, i) {
|
|
487
|
+
var c = n && n.prototype instanceof Generator ? n : Generator,
|
|
488
|
+
u = Object.create(c.prototype);
|
|
489
|
+
return _regeneratorDefine(u, "_invoke", function (r, n, o) {
|
|
490
|
+
var i,
|
|
491
|
+
c,
|
|
492
|
+
u,
|
|
493
|
+
f = 0,
|
|
494
|
+
p = o || [],
|
|
495
|
+
y = false,
|
|
496
|
+
G = {
|
|
497
|
+
p: 0,
|
|
498
|
+
n: 0,
|
|
499
|
+
v: e,
|
|
500
|
+
a: d,
|
|
501
|
+
f: d.bind(e, 4),
|
|
502
|
+
d: function (t, r) {
|
|
503
|
+
return i = t, c = 0, u = e, G.n = r, a;
|
|
504
|
+
}
|
|
505
|
+
};
|
|
506
|
+
function d(r, n) {
|
|
507
|
+
for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
|
|
508
|
+
var o,
|
|
509
|
+
i = p[t],
|
|
510
|
+
d = G.p,
|
|
511
|
+
l = i[2];
|
|
512
|
+
r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
|
|
513
|
+
}
|
|
514
|
+
if (o || r > 1) return a;
|
|
515
|
+
throw y = true, n;
|
|
516
|
+
}
|
|
517
|
+
return function (o, p, l) {
|
|
518
|
+
if (f > 1) throw TypeError("Generator is already running");
|
|
519
|
+
for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
|
|
520
|
+
i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
|
|
521
|
+
try {
|
|
522
|
+
if (f = 2, i) {
|
|
523
|
+
if (c || (o = "next"), t = i[o]) {
|
|
524
|
+
if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
|
|
525
|
+
if (!t.done) return t;
|
|
526
|
+
u = t.value, c < 2 && (c = 0);
|
|
527
|
+
} else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
|
|
528
|
+
i = e;
|
|
529
|
+
} else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
|
|
530
|
+
} catch (t) {
|
|
531
|
+
i = e, c = 1, u = t;
|
|
532
|
+
} finally {
|
|
533
|
+
f = 1;
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
return {
|
|
537
|
+
value: t,
|
|
538
|
+
done: y
|
|
539
|
+
};
|
|
476
540
|
};
|
|
477
|
-
}
|
|
541
|
+
}(r, o, i), true), u;
|
|
478
542
|
}
|
|
479
|
-
|
|
480
|
-
var h = "suspendedStart",
|
|
481
|
-
l = "suspendedYield",
|
|
482
|
-
f = "executing",
|
|
483
|
-
s = "completed",
|
|
484
|
-
y = {};
|
|
543
|
+
var a = {};
|
|
485
544
|
function Generator() {}
|
|
486
545
|
function GeneratorFunction() {}
|
|
487
546
|
function GeneratorFunctionPrototype() {}
|
|
488
|
-
|
|
489
|
-
|
|
547
|
+
t = Object.getPrototypeOf;
|
|
548
|
+
var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function () {
|
|
549
|
+
return this;
|
|
550
|
+
}), t),
|
|
551
|
+
u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
|
|
552
|
+
function f(e) {
|
|
553
|
+
return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
|
|
554
|
+
}
|
|
555
|
+
return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine(u), _regeneratorDefine(u, o, "Generator"), _regeneratorDefine(u, n, function () {
|
|
490
556
|
return this;
|
|
557
|
+
}), _regeneratorDefine(u, "toString", function () {
|
|
558
|
+
return "[object Generator]";
|
|
559
|
+
}), (_regenerator = function () {
|
|
560
|
+
return {
|
|
561
|
+
w: i,
|
|
562
|
+
m: f
|
|
563
|
+
};
|
|
564
|
+
})();
|
|
565
|
+
}
|
|
566
|
+
function _regeneratorAsync(n, e, r, t, o) {
|
|
567
|
+
var a = _regeneratorAsyncGen(n, e, r, t, o);
|
|
568
|
+
return a.next().then(function (n) {
|
|
569
|
+
return n.done ? n.value : a.next();
|
|
491
570
|
});
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
571
|
+
}
|
|
572
|
+
function _regeneratorAsyncGen(r, e, t, o, n) {
|
|
573
|
+
return new _regeneratorAsyncIterator(_regenerator().w(r, e, t, o), n || Promise);
|
|
574
|
+
}
|
|
575
|
+
function _regeneratorAsyncIterator(t, e) {
|
|
576
|
+
function n(r, o, i, f) {
|
|
577
|
+
try {
|
|
578
|
+
var c = t[r](o),
|
|
579
|
+
u = c.value;
|
|
580
|
+
return u instanceof _OverloadYield ? e.resolve(u.v).then(function (t) {
|
|
581
|
+
n("next", t, i, f);
|
|
582
|
+
}, function (t) {
|
|
583
|
+
n("throw", t, i, f);
|
|
584
|
+
}) : e.resolve(u).then(function (t) {
|
|
585
|
+
c.value = t, i(c);
|
|
586
|
+
}, function (t) {
|
|
587
|
+
return n("throw", t, i, f);
|
|
500
588
|
});
|
|
501
|
-
})
|
|
589
|
+
} catch (t) {
|
|
590
|
+
f(t);
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
var r;
|
|
594
|
+
this.next || (_regeneratorDefine(_regeneratorAsyncIterator.prototype), _regeneratorDefine(_regeneratorAsyncIterator.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function () {
|
|
595
|
+
return this;
|
|
596
|
+
})), _regeneratorDefine(this, "_invoke", function (t, o, i) {
|
|
597
|
+
function f() {
|
|
598
|
+
return new e(function (e, r) {
|
|
599
|
+
n(t, i, e, r);
|
|
600
|
+
});
|
|
601
|
+
}
|
|
602
|
+
return r = r ? r.then(f, f) : f();
|
|
603
|
+
}, true);
|
|
604
|
+
}
|
|
605
|
+
function _regeneratorDefine(e, r, n, t) {
|
|
606
|
+
var i = Object.defineProperty;
|
|
607
|
+
try {
|
|
608
|
+
i({}, "", {});
|
|
609
|
+
} catch (e) {
|
|
610
|
+
i = 0;
|
|
502
611
|
}
|
|
503
|
-
function
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
}) : e.resolve(h).then(function (t) {
|
|
514
|
-
u.value = t, i(u);
|
|
515
|
-
}, function (t) {
|
|
516
|
-
return invoke("throw", t, i, a);
|
|
612
|
+
_regeneratorDefine = function (e, r, n, t) {
|
|
613
|
+
if (r) i ? i(e, r, {
|
|
614
|
+
value: n,
|
|
615
|
+
enumerable: !t,
|
|
616
|
+
configurable: !t,
|
|
617
|
+
writable: !t
|
|
618
|
+
}) : e[r] = n;else {
|
|
619
|
+
function o(r, n) {
|
|
620
|
+
_regeneratorDefine(e, r, function (e) {
|
|
621
|
+
return this._invoke(r, n, e);
|
|
517
622
|
});
|
|
518
623
|
}
|
|
519
|
-
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
var
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
624
|
+
o("next", 0), o("throw", 1), o("return", 2);
|
|
625
|
+
}
|
|
626
|
+
}, _regeneratorDefine(e, r, n, t);
|
|
627
|
+
}
|
|
628
|
+
function _regeneratorKeys(e) {
|
|
629
|
+
var n = Object(e),
|
|
630
|
+
r = [];
|
|
631
|
+
for (var t in n) r.unshift(t);
|
|
632
|
+
return function e() {
|
|
633
|
+
for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = false, e;
|
|
634
|
+
return e.done = true, e;
|
|
635
|
+
};
|
|
636
|
+
}
|
|
637
|
+
function _regeneratorValues(e) {
|
|
638
|
+
if (null != e) {
|
|
639
|
+
var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"],
|
|
640
|
+
r = 0;
|
|
641
|
+
if (t) return t.call(e);
|
|
642
|
+
if ("function" == typeof e.next) return e;
|
|
643
|
+
if (!isNaN(e.length)) return {
|
|
644
|
+
next: function () {
|
|
645
|
+
return e && r >= e.length && (e = void 0), {
|
|
646
|
+
value: e && e[r++],
|
|
647
|
+
done: !e
|
|
542
648
|
};
|
|
543
649
|
}
|
|
544
|
-
for (n.method = i, n.arg = a;;) {
|
|
545
|
-
var c = n.delegate;
|
|
546
|
-
if (c) {
|
|
547
|
-
var u = maybeInvokeDelegate(c, n);
|
|
548
|
-
if (u) {
|
|
549
|
-
if (u === y) continue;
|
|
550
|
-
return u;
|
|
551
|
-
}
|
|
552
|
-
}
|
|
553
|
-
if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {
|
|
554
|
-
if (o === h) throw o = s, n.arg;
|
|
555
|
-
n.dispatchException(n.arg);
|
|
556
|
-
} else "return" === n.method && n.abrupt("return", n.arg);
|
|
557
|
-
o = f;
|
|
558
|
-
var p = tryCatch(e, r, n);
|
|
559
|
-
if ("normal" === p.type) {
|
|
560
|
-
if (o = n.done ? s : l, p.arg === y) continue;
|
|
561
|
-
return {
|
|
562
|
-
value: p.arg,
|
|
563
|
-
done: n.done
|
|
564
|
-
};
|
|
565
|
-
}
|
|
566
|
-
"throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);
|
|
567
|
-
}
|
|
568
|
-
};
|
|
569
|
-
}
|
|
570
|
-
function maybeInvokeDelegate(e, r) {
|
|
571
|
-
var n = r.method,
|
|
572
|
-
o = e.iterator[n];
|
|
573
|
-
if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y;
|
|
574
|
-
var i = tryCatch(o, e.iterator, r.arg);
|
|
575
|
-
if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;
|
|
576
|
-
var a = i.arg;
|
|
577
|
-
return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);
|
|
578
|
-
}
|
|
579
|
-
function pushTryEntry(t) {
|
|
580
|
-
var e = {
|
|
581
|
-
tryLoc: t[0]
|
|
582
650
|
};
|
|
583
|
-
1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);
|
|
584
|
-
}
|
|
585
|
-
function resetTryEntry(t) {
|
|
586
|
-
var e = t.completion || {};
|
|
587
|
-
e.type = "normal", delete e.arg, t.completion = e;
|
|
588
|
-
}
|
|
589
|
-
function Context(t) {
|
|
590
|
-
this.tryEntries = [{
|
|
591
|
-
tryLoc: "root"
|
|
592
|
-
}], t.forEach(pushTryEntry, this), this.reset(true);
|
|
593
|
-
}
|
|
594
|
-
function values(e) {
|
|
595
|
-
if (e || "" === e) {
|
|
596
|
-
var r = e[a];
|
|
597
|
-
if (r) return r.call(e);
|
|
598
|
-
if ("function" == typeof e.next) return e;
|
|
599
|
-
if (!isNaN(e.length)) {
|
|
600
|
-
var o = -1,
|
|
601
|
-
i = function next() {
|
|
602
|
-
for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = false, next;
|
|
603
|
-
return next.value = t, next.done = true, next;
|
|
604
|
-
};
|
|
605
|
-
return i.next = i;
|
|
606
|
-
}
|
|
607
|
-
}
|
|
608
|
-
throw new TypeError(typeof e + " is not iterable");
|
|
609
651
|
}
|
|
610
|
-
|
|
611
|
-
value: GeneratorFunctionPrototype,
|
|
612
|
-
configurable: true
|
|
613
|
-
}), o(GeneratorFunctionPrototype, "constructor", {
|
|
614
|
-
value: GeneratorFunction,
|
|
615
|
-
configurable: true
|
|
616
|
-
}), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {
|
|
617
|
-
var e = "function" == typeof t && t.constructor;
|
|
618
|
-
return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));
|
|
619
|
-
}, e.mark = function (t) {
|
|
620
|
-
return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;
|
|
621
|
-
}, e.awrap = function (t) {
|
|
622
|
-
return {
|
|
623
|
-
__await: t
|
|
624
|
-
};
|
|
625
|
-
}, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {
|
|
626
|
-
return this;
|
|
627
|
-
}), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {
|
|
628
|
-
void 0 === i && (i = Promise);
|
|
629
|
-
var a = new AsyncIterator(wrap(t, r, n, o), i);
|
|
630
|
-
return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {
|
|
631
|
-
return t.done ? t.value : a.next();
|
|
632
|
-
});
|
|
633
|
-
}, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {
|
|
634
|
-
return this;
|
|
635
|
-
}), define(g, "toString", function () {
|
|
636
|
-
return "[object Generator]";
|
|
637
|
-
}), e.keys = function (t) {
|
|
638
|
-
var e = Object(t),
|
|
639
|
-
r = [];
|
|
640
|
-
for (var n in e) r.push(n);
|
|
641
|
-
return r.reverse(), function next() {
|
|
642
|
-
for (; r.length;) {
|
|
643
|
-
var t = r.pop();
|
|
644
|
-
if (t in e) return next.value = t, next.done = false, next;
|
|
645
|
-
}
|
|
646
|
-
return next.done = true, next;
|
|
647
|
-
};
|
|
648
|
-
}, e.values = values, Context.prototype = {
|
|
649
|
-
constructor: Context,
|
|
650
|
-
reset: function (e) {
|
|
651
|
-
if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = false, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);
|
|
652
|
-
},
|
|
653
|
-
stop: function () {
|
|
654
|
-
this.done = true;
|
|
655
|
-
var t = this.tryEntries[0].completion;
|
|
656
|
-
if ("throw" === t.type) throw t.arg;
|
|
657
|
-
return this.rval;
|
|
658
|
-
},
|
|
659
|
-
dispatchException: function (e) {
|
|
660
|
-
if (this.done) throw e;
|
|
661
|
-
var r = this;
|
|
662
|
-
function handle(n, o) {
|
|
663
|
-
return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;
|
|
664
|
-
}
|
|
665
|
-
for (var o = this.tryEntries.length - 1; o >= 0; --o) {
|
|
666
|
-
var i = this.tryEntries[o],
|
|
667
|
-
a = i.completion;
|
|
668
|
-
if ("root" === i.tryLoc) return handle("end");
|
|
669
|
-
if (i.tryLoc <= this.prev) {
|
|
670
|
-
var c = n.call(i, "catchLoc"),
|
|
671
|
-
u = n.call(i, "finallyLoc");
|
|
672
|
-
if (c && u) {
|
|
673
|
-
if (this.prev < i.catchLoc) return handle(i.catchLoc, true);
|
|
674
|
-
if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
|
|
675
|
-
} else if (c) {
|
|
676
|
-
if (this.prev < i.catchLoc) return handle(i.catchLoc, true);
|
|
677
|
-
} else {
|
|
678
|
-
if (!u) throw Error("try statement without catch or finally");
|
|
679
|
-
if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
|
|
680
|
-
}
|
|
681
|
-
}
|
|
682
|
-
}
|
|
683
|
-
},
|
|
684
|
-
abrupt: function (t, e) {
|
|
685
|
-
for (var r = this.tryEntries.length - 1; r >= 0; --r) {
|
|
686
|
-
var o = this.tryEntries[r];
|
|
687
|
-
if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
|
|
688
|
-
var i = o;
|
|
689
|
-
break;
|
|
690
|
-
}
|
|
691
|
-
}
|
|
692
|
-
i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);
|
|
693
|
-
var a = i ? i.completion : {};
|
|
694
|
-
return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);
|
|
695
|
-
},
|
|
696
|
-
complete: function (t, e) {
|
|
697
|
-
if ("throw" === t.type) throw t.arg;
|
|
698
|
-
return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y;
|
|
699
|
-
},
|
|
700
|
-
finish: function (t) {
|
|
701
|
-
for (var e = this.tryEntries.length - 1; e >= 0; --e) {
|
|
702
|
-
var r = this.tryEntries[e];
|
|
703
|
-
if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;
|
|
704
|
-
}
|
|
705
|
-
},
|
|
706
|
-
catch: function (t) {
|
|
707
|
-
for (var e = this.tryEntries.length - 1; e >= 0; --e) {
|
|
708
|
-
var r = this.tryEntries[e];
|
|
709
|
-
if (r.tryLoc === t) {
|
|
710
|
-
var n = r.completion;
|
|
711
|
-
if ("throw" === n.type) {
|
|
712
|
-
var o = n.arg;
|
|
713
|
-
resetTryEntry(r);
|
|
714
|
-
}
|
|
715
|
-
return o;
|
|
716
|
-
}
|
|
717
|
-
}
|
|
718
|
-
throw Error("illegal catch attempt");
|
|
719
|
-
},
|
|
720
|
-
delegateYield: function (e, r, n) {
|
|
721
|
-
return this.delegate = {
|
|
722
|
-
iterator: values(e),
|
|
723
|
-
resultName: r,
|
|
724
|
-
nextLoc: n
|
|
725
|
-
}, "next" === this.method && (this.arg = t), y;
|
|
726
|
-
}
|
|
727
|
-
}, e;
|
|
652
|
+
throw new TypeError(typeof e + " is not iterable");
|
|
728
653
|
}
|
|
729
654
|
function _setPrototypeOf(t, e) {
|
|
730
655
|
return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
|
|
@@ -767,6 +692,74 @@ function _unsupportedIterableToArray(r, a) {
|
|
|
767
692
|
return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
|
|
768
693
|
}
|
|
769
694
|
}
|
|
695
|
+
function _regeneratorRuntime() {
|
|
696
|
+
|
|
697
|
+
var r = _regenerator(),
|
|
698
|
+
e = r.m(_regeneratorRuntime),
|
|
699
|
+
t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;
|
|
700
|
+
function n(r) {
|
|
701
|
+
var e = "function" == typeof r && r.constructor;
|
|
702
|
+
return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name));
|
|
703
|
+
}
|
|
704
|
+
var o = {
|
|
705
|
+
throw: 1,
|
|
706
|
+
return: 2,
|
|
707
|
+
break: 3,
|
|
708
|
+
continue: 3
|
|
709
|
+
};
|
|
710
|
+
function a(r) {
|
|
711
|
+
var e, t;
|
|
712
|
+
return function (n) {
|
|
713
|
+
e || (e = {
|
|
714
|
+
stop: function () {
|
|
715
|
+
return t(n.a, 2);
|
|
716
|
+
},
|
|
717
|
+
catch: function () {
|
|
718
|
+
return n.v;
|
|
719
|
+
},
|
|
720
|
+
abrupt: function (r, e) {
|
|
721
|
+
return t(n.a, o[r], e);
|
|
722
|
+
},
|
|
723
|
+
delegateYield: function (r, o, a) {
|
|
724
|
+
return e.resultName = o, t(n.d, _regeneratorValues(r), a);
|
|
725
|
+
},
|
|
726
|
+
finish: function (r) {
|
|
727
|
+
return t(n.f, r);
|
|
728
|
+
}
|
|
729
|
+
}, t = function (r, t, o) {
|
|
730
|
+
n.p = e.prev, n.n = e.next;
|
|
731
|
+
try {
|
|
732
|
+
return r(t, o);
|
|
733
|
+
} finally {
|
|
734
|
+
e.next = n.n;
|
|
735
|
+
}
|
|
736
|
+
}), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;
|
|
737
|
+
try {
|
|
738
|
+
return r.call(this, e);
|
|
739
|
+
} finally {
|
|
740
|
+
n.p = e.prev, n.n = e.next;
|
|
741
|
+
}
|
|
742
|
+
};
|
|
743
|
+
}
|
|
744
|
+
return (_regeneratorRuntime = function () {
|
|
745
|
+
return {
|
|
746
|
+
wrap: function (e, t, n, o) {
|
|
747
|
+
return r.w(a(e), t, n, o && o.reverse());
|
|
748
|
+
},
|
|
749
|
+
isGeneratorFunction: n,
|
|
750
|
+
mark: r.m,
|
|
751
|
+
awrap: function (r, e) {
|
|
752
|
+
return new _OverloadYield(r, e);
|
|
753
|
+
},
|
|
754
|
+
AsyncIterator: _regeneratorAsyncIterator,
|
|
755
|
+
async: function (r, e, t, o, u) {
|
|
756
|
+
return (n(e) ? _regeneratorAsyncGen : _regeneratorAsync)(a(r), e, t, o, u);
|
|
757
|
+
},
|
|
758
|
+
keys: _regeneratorKeys,
|
|
759
|
+
values: _regeneratorValues
|
|
760
|
+
};
|
|
761
|
+
})();
|
|
762
|
+
}
|
|
770
763
|
|
|
771
764
|
var WorkerQueue = /*#__PURE__*/function () {
|
|
772
765
|
function WorkerQueue(concurrency) {
|
|
@@ -859,6 +852,10 @@ var NUMBER_PREFETCH_WORKERS = 4;
|
|
|
859
852
|
var NUM_IMAGES_TO_CACHE = 10000;
|
|
860
853
|
var WMS_EXTENT_RATIO_TO_VIEWPORT = 1.2;
|
|
861
854
|
var TIMEAWAREIMAGEWRAPPER_IMAGEDIDNOTLOADSUCCESFULLY = 'Image did not load succesfully';
|
|
855
|
+
// // To debug what dimensions are actually being used in the map, use:
|
|
856
|
+
// export const ADD_SHOW_DIMS_OPTION = true;
|
|
857
|
+
// export const WMS_EXTENT_RATIO_TO_VIEWPORT = 1.0;
|
|
858
|
+
// export const ENABLE_PREFETCH = false;
|
|
862
859
|
|
|
863
860
|
var openLayersGetMapImageStore = new WMImageStore(NUM_IMAGES_TO_CACHE, {
|
|
864
861
|
id: 'ol'
|
|
@@ -2340,9 +2337,9 @@ var useGeoJSON = function useGeoJSON() {
|
|
|
2340
2337
|
drawMode = _useState8[0],
|
|
2341
2338
|
setDrawMode = _useState8[1];
|
|
2342
2339
|
var _useState9 = useState(0),
|
|
2343
|
-
|
|
2344
|
-
currentFeatureNrToEdit =
|
|
2345
|
-
setCurrentFeatureNrToEdit =
|
|
2340
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
2341
|
+
currentFeatureNrToEdit = _useState0[0],
|
|
2342
|
+
setCurrentFeatureNrToEdit = _useState0[1];
|
|
2346
2343
|
var changeDrawMode = function changeDrawMode(selectedKey) {
|
|
2347
2344
|
setDrawMode(selectedKey);
|
|
2348
2345
|
if (selectedKey === 'POLYGON') {
|
|
@@ -2955,21 +2952,21 @@ var useMapDrawTool = function useMapDrawTool(_ref) {
|
|
|
2955
2952
|
drawModes = _React$useState8[0],
|
|
2956
2953
|
setDrawModes = _React$useState8[1];
|
|
2957
2954
|
var _React$useState9 = React__default.useState(''),
|
|
2958
|
-
_React$
|
|
2959
|
-
activeTool = _React$
|
|
2960
|
-
setActiveTool = _React$
|
|
2961
|
-
var _React$
|
|
2955
|
+
_React$useState0 = _slicedToArray(_React$useState9, 2),
|
|
2956
|
+
activeTool = _React$useState0[0],
|
|
2957
|
+
setActiveTool = _React$useState0[1];
|
|
2958
|
+
var _React$useState1 = React__default.useState(''),
|
|
2959
|
+
_React$useState10 = _slicedToArray(_React$useState1, 2),
|
|
2960
|
+
drawMode = _React$useState10[0],
|
|
2961
|
+
setDrawMode = _React$useState10[1];
|
|
2962
|
+
var _React$useState11 = React__default.useState(false),
|
|
2962
2963
|
_React$useState12 = _slicedToArray(_React$useState11, 2),
|
|
2963
|
-
|
|
2964
|
-
|
|
2965
|
-
var _React$useState13 = React__default.useState(
|
|
2964
|
+
isInEditMode = _React$useState12[0],
|
|
2965
|
+
setEditMode = _React$useState12[1];
|
|
2966
|
+
var _React$useState13 = React__default.useState(0),
|
|
2966
2967
|
_React$useState14 = _slicedToArray(_React$useState13, 2),
|
|
2967
|
-
|
|
2968
|
-
|
|
2969
|
-
var _React$useState15 = React__default.useState(0),
|
|
2970
|
-
_React$useState16 = _slicedToArray(_React$useState15, 2),
|
|
2971
|
-
featureLayerIndex = _React$useState16[0],
|
|
2972
|
-
setFeatureLayerIndex = _React$useState16[1];
|
|
2968
|
+
featureLayerIndex = _React$useState14[0],
|
|
2969
|
+
setFeatureLayerIndex = _React$useState14[1];
|
|
2973
2970
|
var changeProperties = function changeProperties(styleProperties) {
|
|
2974
2971
|
// update all modes with new properties
|
|
2975
2972
|
var newModes = drawModes.map(function (mode) {
|
|
@@ -4378,15 +4375,19 @@ var MapMousePosition = function MapMousePosition() {
|
|
|
4378
4375
|
sx: {
|
|
4379
4376
|
zIndex: 10,
|
|
4380
4377
|
justifySelf: 'center',
|
|
4381
|
-
bottom: '
|
|
4382
|
-
left: '
|
|
4378
|
+
bottom: '36px',
|
|
4379
|
+
left: '6px',
|
|
4383
4380
|
position: 'absolute'
|
|
4384
4381
|
},
|
|
4385
4382
|
children: jsxs(Typography, {
|
|
4386
4383
|
"data-testid": "map-mouse-position-typography",
|
|
4387
4384
|
sx: {
|
|
4388
4385
|
fontSize: 9,
|
|
4389
|
-
|
|
4386
|
+
color: '#051039',
|
|
4387
|
+
backgroundColor: 'rgba(236, 237, 238, 0.7)',
|
|
4388
|
+
borderRadius: 1,
|
|
4389
|
+
px: 0.5,
|
|
4390
|
+
py: 0.25
|
|
4390
4391
|
},
|
|
4391
4392
|
children: [mousePosition === null || mousePosition === void 0 ? void 0 : mousePosition.projection, ": ", mousePosition === null || mousePosition === void 0 ? void 0 : mousePosition.mousePosition, jsx("br", {}), "lonlat: ".concat(mousePosition === null || mousePosition === void 0 ? void 0 : mousePosition.mousePositionLatLon)]
|
|
4392
4393
|
})
|
|
@@ -4827,9 +4828,9 @@ var useGetWMSLayerStyleList = function useGetWMSLayerStyleList(serviceUrl, name)
|
|
|
4827
4828
|
*/
|
|
4828
4829
|
var useGetWMLayerInstance = function useGetWMLayerInstance(serviceUrl, name, id, onLayerError) {
|
|
4829
4830
|
var _React$useState9 = React__default.useState(null),
|
|
4830
|
-
_React$
|
|
4831
|
-
layer = _React$
|
|
4832
|
-
setLayer = _React$
|
|
4831
|
+
_React$useState0 = _slicedToArray(_React$useState9, 2),
|
|
4832
|
+
layer = _React$useState0[0],
|
|
4833
|
+
setLayer = _React$useState0[1];
|
|
4833
4834
|
var refId = useRef(undefined);
|
|
4834
4835
|
React__default.useEffect(function () {
|
|
4835
4836
|
var layerId = refId.current || id || webmapUtils.generateLayerId();
|
|
@@ -4862,7 +4863,7 @@ var useGetWMLayerInstance = function useGetWMLayerInstance(serviceUrl, name, id,
|
|
|
4862
4863
|
/**
|
|
4863
4864
|
* Used for querying WMTS GetCapabilities documents
|
|
4864
4865
|
* @param serviceUrl
|
|
4865
|
-
* @returns
|
|
4866
|
+
* @returns
|
|
4866
4867
|
*/
|
|
4867
4868
|
var useQueryWMTSGetCapabilities = function useQueryWMTSGetCapabilities(serviceUrl) {
|
|
4868
4869
|
var uriKey = new URLSearchParams(serviceUrl).toString();
|
|
@@ -4918,21 +4919,54 @@ var makeDimValuesToPrefetch = function makeDimValuesToPrefetch(wmTimeDim, stepsT
|
|
|
4918
4919
|
}
|
|
4919
4920
|
return [];
|
|
4920
4921
|
};
|
|
4922
|
+
/**
|
|
4923
|
+
* We use the WMLayer dimension logic to obtain the dimension value to use in the WMS GetMap request. The input is the dimensions array which is typically the properties set for the layer component.
|
|
4924
|
+
* The input time is descretized to the closest value which is available in the WMS layer.
|
|
4925
|
+
*
|
|
4926
|
+
* @param dimensions Array of dimension key/values to use as input
|
|
4927
|
+
* @param wmLayer The layer for which we would like to do the request
|
|
4928
|
+
* @returns A map which returns a key/value to use
|
|
4929
|
+
*/
|
|
4921
4930
|
var getDimensionParamsForWMS = function getDimensionParamsForWMS(dimensions, wmLayer) {
|
|
4922
|
-
//
|
|
4931
|
+
// Check if pre-requisites are OK. Possibly still fetching WMS GetCapabilities.
|
|
4932
|
+
if (!dimensions || !(wmLayer !== null && wmLayer !== void 0 && wmLayer.isConfigured)) {
|
|
4933
|
+
return undefined;
|
|
4934
|
+
}
|
|
4923
4935
|
var dimProps = {};
|
|
4924
|
-
dimensions === null || dimensions === void 0 || dimensions.
|
|
4925
|
-
|
|
4926
|
-
|
|
4927
|
-
|
|
4928
|
-
|
|
4929
|
-
|
|
4930
|
-
|
|
4931
|
-
|
|
4932
|
-
|
|
4936
|
+
if ((dimensions === null || dimensions === void 0 ? void 0 : dimensions.length) === 0 && (wmLayer === null || wmLayer === void 0 ? void 0 : wmLayer.dimensions.length) === 0 && (wmLayer === null || wmLayer === void 0 ? void 0 : wmLayer.isConfigured) === true) {
|
|
4937
|
+
// It is possible that a layer has no dimensions. In that case return a map without any key values.
|
|
4938
|
+
return dimProps;
|
|
4939
|
+
}
|
|
4940
|
+
// Loop without forEach so we can exit and return.
|
|
4941
|
+
var _iterator = _createForOfIteratorHelper(dimensions),
|
|
4942
|
+
_step;
|
|
4943
|
+
try {
|
|
4944
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
4945
|
+
var dimension = _step.value;
|
|
4946
|
+
var wmLayerDimension = dimension.name && (wmLayer === null || wmLayer === void 0 ? void 0 : wmLayer.getDimension(dimension === null || dimension === void 0 ? void 0 : dimension.name));
|
|
4947
|
+
if (!wmLayerDimension) {
|
|
4948
|
+
return undefined;
|
|
4949
|
+
}
|
|
4950
|
+
// Take the closest WMLayer dimension value
|
|
4951
|
+
var closestValue = wmLayerDimension.getClosestValue(dimension.currentValue);
|
|
4952
|
+
if (!WMInvalidDateValues.has(closestValue)) {
|
|
4953
|
+
wmLayerDimension.setValue(closestValue);
|
|
4954
|
+
dimProps[getCorrectWMSDimName(dimension.name)] = closestValue;
|
|
4955
|
+
} else {
|
|
4956
|
+
// The dimension name does not occur in the layer, or the requested value is not in the range of the dimension
|
|
4957
|
+
return undefined;
|
|
4958
|
+
}
|
|
4933
4959
|
}
|
|
4934
|
-
|
|
4935
|
-
|
|
4960
|
+
// Check if all dims where used which occur in the WMLayer
|
|
4961
|
+
} catch (err) {
|
|
4962
|
+
_iterator.e(err);
|
|
4963
|
+
} finally {
|
|
4964
|
+
_iterator.f();
|
|
4965
|
+
}
|
|
4966
|
+
return wmLayer !== null && wmLayer !== void 0 && wmLayer.dimensions.every(function (wmLayerDim) {
|
|
4967
|
+
var wmsName = getCorrectWMSDimName(wmLayerDim.name);
|
|
4968
|
+
return wmsName in dimProps;
|
|
4969
|
+
}) ? dimProps : undefined;
|
|
4936
4970
|
};
|
|
4937
4971
|
/**
|
|
4938
4972
|
* Calculates number of timesteps for given timespan
|
|
@@ -5106,16 +5140,14 @@ var TimeawareImageSourceWMSLayer = function TimeawareImageSourceWMSLayer(_ref) {
|
|
|
5106
5140
|
// get a wmLayer instance
|
|
5107
5141
|
var wmLayer = useGetWMLayerInstance(getCapsURL, layerName, layerId, onLayerError);
|
|
5108
5142
|
// dimensionsValues is a key/value dictionary with dimension names specifically for WMS GetMap requests
|
|
5109
|
-
var dimensionsValues =
|
|
5110
|
-
return getDimensionParamsForWMS(dimensions, wmLayer);
|
|
5111
|
-
}, [dimensions, wmLayer]);
|
|
5143
|
+
var dimensionsValues = getDimensionParamsForWMS(dimensions, wmLayer);
|
|
5112
5144
|
// This string can be used safely in a useEffect or other React hook to check if the contents changed
|
|
5113
|
-
var dimensionsValuesEffectCheck = Object.entries(dimensionsValues).map(function (dimensionNameAndCurrentValue) {
|
|
5145
|
+
var dimensionsValuesEffectCheck = dimensionsValues && Object.entries(dimensionsValues).map(function (dimensionNameAndCurrentValue) {
|
|
5114
5146
|
return "".concat(dimensionNameAndCurrentValue[0], ":").concat(dimensionNameAndCurrentValue[1]);
|
|
5115
5147
|
}).join(',');
|
|
5116
|
-
// Make a TimeawareImageSource and add it to the map, add and remove should only be done when the map, layer id
|
|
5148
|
+
// Make a TimeawareImageSource and add it to the map, add and remove should only be done when the map changes, layer id changes, visibility changes or dimensionsValues get defined.
|
|
5117
5149
|
useEffect(function () {
|
|
5118
|
-
if (!map || !wmLayer || visible === false) {
|
|
5150
|
+
if (!map || !wmLayer || visible === false || !dimensionsValues) {
|
|
5119
5151
|
return function () {};
|
|
5120
5152
|
}
|
|
5121
5153
|
// When this component mounts, an ImageLayer is added to the map. Once it unmounts, this layer is removed from the map.
|
|
@@ -5138,16 +5170,16 @@ var TimeawareImageSourceWMSLayer = function TimeawareImageSourceWMSLayer(_ref) {
|
|
|
5138
5170
|
map.removeLayer(olLayer);
|
|
5139
5171
|
olLayer.dispose();
|
|
5140
5172
|
};
|
|
5141
|
-
// The dependency list should only contain the map and
|
|
5173
|
+
// The dependency list should only contain the map, wmLayer, visible and dimensionValues. Other prop changes are handled by other effects.
|
|
5142
5174
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5143
|
-
}, [map, wmLayer, visible]);
|
|
5175
|
+
}, [map, wmLayer, visible, dimensionsValues === undefined]);
|
|
5144
5176
|
useEffect(function () {
|
|
5145
5177
|
onLayerReady && wmLayer && layerId && onLayerReady(layerId);
|
|
5146
5178
|
}, [layerId, wmLayer, onLayerReady]);
|
|
5147
5179
|
// Initialize layer for GeoWeb, call onInitializeLayer
|
|
5148
5180
|
useEffect(function () {
|
|
5149
5181
|
var initializeLayer = /*#__PURE__*/function () {
|
|
5150
|
-
var _ref2 = _asyncToGenerator(
|
|
5182
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
5151
5183
|
var _wmLayer$dimensions, _wmLayer$dimensions2, wmTimeDim, layerPropsTimeDim, timeValueToInitialize, refTimeDim, layerPropsRefTimeDim, refTimeToFind, firstRefTime;
|
|
5152
5184
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
5153
5185
|
while (1) switch (_context.prev = _context.next) {
|
|
@@ -5245,15 +5277,9 @@ var TimeawareImageSourceWMSLayer = function TimeawareImageSourceWMSLayer(_ref) {
|
|
|
5245
5277
|
// Layer dim values useEffect,
|
|
5246
5278
|
useEffect(function () {
|
|
5247
5279
|
var _layer$getSource3;
|
|
5248
|
-
layer === null || layer === void 0 || (_layer$getSource3 = layer.getSource()) === null || _layer$getSource3 === void 0
|
|
5249
|
-
dimensions === null || dimensions === void 0 || dimensions.forEach(function (dim) {
|
|
5250
|
-
if (dim.name && dim.currentValue) {
|
|
5251
|
-
var layerDim = wmLayer === null || wmLayer === void 0 ? void 0 : wmLayer.getDimension(dim.name);
|
|
5252
|
-
layerDim === null || layerDim === void 0 || layerDim.setClosestValue(dim.currentValue);
|
|
5253
|
-
}
|
|
5254
|
-
});
|
|
5280
|
+
dimensionsValues && (layer === null || layer === void 0 || (_layer$getSource3 = layer.getSource()) === null || _layer$getSource3 === void 0 ? void 0 : _layer$getSource3.setDimProps(dimensionsValues));
|
|
5255
5281
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5256
|
-
}, [layer, dimensionsValuesEffectCheck
|
|
5282
|
+
}, [layer, dimensionsValuesEffectCheck]);
|
|
5257
5283
|
// Prefetch useEffect
|
|
5258
5284
|
useEffect(function () {
|
|
5259
5285
|
var _wmLayer$dimensions3;
|
|
@@ -5666,7 +5692,7 @@ var useAnimationForLayer = function useAnimationForLayer(layerProps, intervalInM
|
|
|
5666
5692
|
useEffect(function () {
|
|
5667
5693
|
calculateTimeSpan();
|
|
5668
5694
|
}, [calculateTimeSpan, wmLayer]);
|
|
5669
|
-
var refetchLayer = React__default.useCallback(
|
|
5695
|
+
var refetchLayer = React__default.useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
5670
5696
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
5671
5697
|
while (1) switch (_context.prev = _context.next) {
|
|
5672
5698
|
case 0:
|
|
@@ -6357,296 +6383,105 @@ var publicLayers = /*#__PURE__*/Object.freeze({
|
|
|
6357
6383
|
veiligheidsRegiosGebiedsIndelingenLabels: veiligheidsRegiosGebiedsIndelingenLabels
|
|
6358
6384
|
});
|
|
6359
6385
|
|
|
6360
|
-
|
|
6361
|
-
|
|
6362
|
-
|
|
6363
|
-
|
|
6364
|
-
|
|
6365
|
-
|
|
6366
|
-
|
|
6367
|
-
|
|
6368
|
-
|
|
6369
|
-
|
|
6370
|
-
|
|
6371
|
-
|
|
6372
|
-
|
|
6373
|
-
|
|
6374
|
-
|
|
6375
|
-
|
|
6376
|
-
|
|
6377
|
-
|
|
6378
|
-
|
|
6379
|
-
return
|
|
6380
|
-
|
|
6381
|
-
|
|
6382
|
-
|
|
6383
|
-
|
|
6384
|
-
|
|
6385
|
-
|
|
6386
|
-
|
|
6387
|
-
|
|
6388
|
-
|
|
6389
|
-
|
|
6390
|
-
|
|
6391
|
-
|
|
6392
|
-
|
|
6393
|
-
|
|
6394
|
-
|
|
6395
|
-
|
|
6396
|
-
|
|
6397
|
-
|
|
6398
|
-
|
|
6399
|
-
|
|
6400
|
-
});
|
|
6401
|
-
}
|
|
6402
|
-
// Check the other layers
|
|
6403
|
-
if (isBaseLayer || isOverlay) {
|
|
6404
|
-
var type = layerProps.type,
|
|
6405
|
-
_name = layerProps.name,
|
|
6406
|
-
_service = layerProps.service,
|
|
6407
|
-
tileServer = layerProps.tileServer;
|
|
6408
|
-
if (type === 'twms' && _name) {
|
|
6409
|
-
var _map$getView;
|
|
6410
|
-
var tileSettingByName = tileServerSettings[_name] || tileServer && tileServer[_name];
|
|
6411
|
-
if (!tileSettingByName) {
|
|
6412
|
-
console.warn("Tilesetting with name ".concat(_name, " not found in "), tileServerSettings, tileServer);
|
|
6413
|
-
}
|
|
6414
|
-
var projectionName = map === null || map === void 0 || (_map$getView = map.getView()) === null || _map$getView === void 0 || (_map$getView = _map$getView.getProjection()) === null || _map$getView === void 0 ? void 0 : _map$getView.getCode();
|
|
6415
|
-
var projectionUsedFromTileServer = tileSettingByName[projectionName] ? projectionName : 'EPSG:3857';
|
|
6416
|
-
var tileSettingForCRS = tileSettingByName && projectionName && tileSettingByName[projectionUsedFromTileServer];
|
|
6417
|
-
if (tileSettingForCRS) {
|
|
6418
|
-
var home = tileSettingForCRS.home,
|
|
6419
|
-
tileServerType = tileSettingForCRS.tileServerType,
|
|
6420
|
-
urlTemplateOverride = tileSettingForCRS.urlTemplate;
|
|
6421
|
-
var urlTemplate = (urlTemplateOverride === null || urlTemplateOverride === void 0 ? void 0 : urlTemplateOverride(home)) || '';
|
|
6422
|
-
if (!urlTemplateOverride) {
|
|
6423
|
-
switch (tileServerType) {
|
|
6424
|
-
case 'arcgisonline':
|
|
6425
|
-
urlTemplate = "".concat(home, "{z}/{y}/{x}.png");
|
|
6426
|
-
break;
|
|
6427
|
-
case 'osm':
|
|
6428
|
-
urlTemplate = "".concat(home, "{z}/{x}/{y}.png");
|
|
6429
|
-
break;
|
|
6430
|
-
case 'wmst':
|
|
6431
|
-
urlTemplate = "".concat(home, "{z}/{y}/{x}");
|
|
6432
|
-
break;
|
|
6433
|
-
}
|
|
6434
|
-
}
|
|
6435
|
-
if (!urlTemplate) {
|
|
6436
|
-
console.warn("Tile server type ".concat(tileServerType, " not supported"), tileServerSettings, tileServer);
|
|
6437
|
-
}
|
|
6438
|
-
return jsx(XYZLayer, {
|
|
6439
|
-
urlTemplate: urlTemplate,
|
|
6440
|
-
layerOptions: layerOptions,
|
|
6441
|
-
layerProps: _objectSpread2(_objectSpread2({}, layerProps), {}, {
|
|
6442
|
-
enabled: true
|
|
6443
|
-
}),
|
|
6444
|
-
tileProjectionCode: projectionUsedFromTileServer
|
|
6445
|
-
});
|
|
6386
|
+
/* *
|
|
6387
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6388
|
+
* you may not use this file except in compliance with the License.
|
|
6389
|
+
* You may obtain a copy of the License at
|
|
6390
|
+
*
|
|
6391
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
6392
|
+
*
|
|
6393
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
6394
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
6395
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
6396
|
+
* See the License for the specific language governing permissions and
|
|
6397
|
+
* limitations under the License.
|
|
6398
|
+
*
|
|
6399
|
+
* Copyright 2025 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
6400
|
+
* Copyright 2025 - Finnish Meteorological Institute (FMI)
|
|
6401
|
+
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
6402
|
+
* */
|
|
6403
|
+
var joinUrlParams = function joinUrlParams(params) {
|
|
6404
|
+
return params.filter(function (x) {
|
|
6405
|
+
return x !== undefined && x.length > 0;
|
|
6406
|
+
}).join('/');
|
|
6407
|
+
};
|
|
6408
|
+
var fetchEDRLayerCollection = /*#__PURE__*/function () {
|
|
6409
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(edrBaseUrlWithCollection) {
|
|
6410
|
+
var instanceId,
|
|
6411
|
+
_args = arguments;
|
|
6412
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
6413
|
+
while (1) switch (_context.prev = _context.next) {
|
|
6414
|
+
case 0:
|
|
6415
|
+
instanceId = _args.length > 1 && _args[1] !== undefined ? _args[1] : '';
|
|
6416
|
+
_context.next = 3;
|
|
6417
|
+
return fetch(joinUrlParams([edrBaseUrlWithCollection, instanceId]));
|
|
6418
|
+
case 3:
|
|
6419
|
+
_context.next = 5;
|
|
6420
|
+
return _context.sent.json();
|
|
6421
|
+
case 5:
|
|
6422
|
+
return _context.abrupt("return", _context.sent);
|
|
6423
|
+
case 6:
|
|
6424
|
+
case "end":
|
|
6425
|
+
return _context.stop();
|
|
6446
6426
|
}
|
|
6447
|
-
}
|
|
6448
|
-
|
|
6449
|
-
|
|
6450
|
-
|
|
6451
|
-
|
|
6452
|
-
|
|
6453
|
-
|
|
6454
|
-
|
|
6455
|
-
|
|
6456
|
-
|
|
6457
|
-
|
|
6458
|
-
|
|
6459
|
-
|
|
6460
|
-
|
|
6461
|
-
|
|
6462
|
-
|
|
6463
|
-
|
|
6464
|
-
|
|
6465
|
-
|
|
6466
|
-
|
|
6467
|
-
|
|
6468
|
-
|
|
6469
|
-
|
|
6470
|
-
|
|
6471
|
-
|
|
6472
|
-
|
|
6473
|
-
|
|
6474
|
-
|
|
6475
|
-
|
|
6476
|
-
|
|
6477
|
-
|
|
6478
|
-
|
|
6479
|
-
|
|
6480
|
-
|
|
6481
|
-
|
|
6482
|
-
|
|
6483
|
-
|
|
6484
|
-
var layer = new Vector({
|
|
6485
|
-
source: source,
|
|
6486
|
-
zIndex: zIndex,
|
|
6487
|
-
style: style,
|
|
6488
|
-
properties: {
|
|
6489
|
-
testId: testId
|
|
6490
|
-
},
|
|
6491
|
-
opacity: opacity
|
|
6492
|
-
});
|
|
6493
|
-
layerRef.current = layer;
|
|
6494
|
-
layer.set('layerType', 'FeatureLayer');
|
|
6495
|
-
setSource(source);
|
|
6496
|
-
map.addLayer(layer);
|
|
6497
|
-
return function () {
|
|
6498
|
-
setSource(undefined);
|
|
6499
|
-
source.clear();
|
|
6500
|
-
map.removeLayer(layer);
|
|
6501
|
-
};
|
|
6502
|
-
// NOTE: style should not be part of this effect, as it changes always, causing the layer to be add/removed continuousely.
|
|
6503
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
6504
|
-
}, [map, zIndex, testId]);
|
|
6505
|
-
useEffect(function () {
|
|
6506
|
-
// Handle style function:
|
|
6507
|
-
if (layerRef.current && style) {
|
|
6508
|
-
var _layerRef$current;
|
|
6509
|
-
(_layerRef$current = layerRef.current) === null || _layerRef$current === void 0 || _layerRef$current.setStyle(style);
|
|
6510
|
-
}
|
|
6511
|
-
}, [style]);
|
|
6512
|
-
useEffect(function () {
|
|
6513
|
-
// Handle opacity:
|
|
6514
|
-
if (layerRef.current && opacity) {
|
|
6515
|
-
var _layerRef$current2;
|
|
6516
|
-
(_layerRef$current2 = layerRef.current) === null || _layerRef$current2 === void 0 || _layerRef$current2.setOpacity(opacity);
|
|
6517
|
-
}
|
|
6518
|
-
}, [opacity]);
|
|
6519
|
-
useEffect(function () {
|
|
6520
|
-
if (!source) {
|
|
6521
|
-
return;
|
|
6522
|
-
}
|
|
6523
|
-
source.clear();
|
|
6524
|
-
if (features && features.length > 0) {
|
|
6525
|
-
source.addFeatures(features);
|
|
6526
|
-
}
|
|
6527
|
-
}, [source, features]);
|
|
6528
|
-
useEffect(function () {
|
|
6529
|
-
if (!map || !source || !hoverSelect || !hoverSelect.active) {
|
|
6530
|
-
return function () {};
|
|
6531
|
-
}
|
|
6532
|
-
var previousHover = [];
|
|
6533
|
-
var pointerMoveFunction = debounce(function (evt) {
|
|
6534
|
-
var hoveredFeature = map.forEachFeatureAtPixel(evt.pixel, function (feature, layer) {
|
|
6535
|
-
if (!layer || layer.getSource() !== source) {
|
|
6536
|
-
return false;
|
|
6537
|
-
}
|
|
6538
|
-
return feature;
|
|
6539
|
-
});
|
|
6540
|
-
if (hoveredFeature && previousHover.includes(hoveredFeature)) {
|
|
6541
|
-
return;
|
|
6542
|
-
}
|
|
6543
|
-
var unhovered = previousHover.length > 0;
|
|
6544
|
-
previousHover.forEach(function (feature) {
|
|
6545
|
-
feature.set('hover', false);
|
|
6546
|
-
});
|
|
6547
|
-
previousHover.splice(0);
|
|
6548
|
-
if (hoveredFeature) {
|
|
6549
|
-
previousHover.push(hoveredFeature);
|
|
6550
|
-
hoveredFeature.set('hover', true);
|
|
6551
|
-
hoverSelect.onHover && hoverSelect.onHover(hoveredFeature);
|
|
6552
|
-
} else if (unhovered) {
|
|
6553
|
-
hoverSelect.onHover && hoverSelect.onHover(undefined);
|
|
6427
|
+
}, _callee);
|
|
6428
|
+
}));
|
|
6429
|
+
return function fetchEDRLayerCollection(_x) {
|
|
6430
|
+
return _ref.apply(this, arguments);
|
|
6431
|
+
};
|
|
6432
|
+
}();
|
|
6433
|
+
var fetchEDRLayerCollectionCube = /*#__PURE__*/function () {
|
|
6434
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(edrBaseUrlWithCollection, parameterName) {
|
|
6435
|
+
var datetime,
|
|
6436
|
+
instanceId,
|
|
6437
|
+
bbox,
|
|
6438
|
+
queryParams,
|
|
6439
|
+
url,
|
|
6440
|
+
response,
|
|
6441
|
+
_args2 = arguments;
|
|
6442
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
6443
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
6444
|
+
case 0:
|
|
6445
|
+
datetime = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : '';
|
|
6446
|
+
instanceId = _args2.length > 3 && _args2[3] !== undefined ? _args2[3] : '';
|
|
6447
|
+
bbox = _args2.length > 4 && _args2[4] !== undefined ? _args2[4] : '-180,-90,180,90';
|
|
6448
|
+
queryParams = new URLSearchParams();
|
|
6449
|
+
queryParams.append('bbox', bbox);
|
|
6450
|
+
queryParams.append('parameter-name', parameterName);
|
|
6451
|
+
datetime && queryParams.append('datetime', datetime);
|
|
6452
|
+
url = "".concat(joinUrlParams([edrBaseUrlWithCollection, instanceId, 'cube']), "?").concat(queryParams.toString());
|
|
6453
|
+
_context2.next = 10;
|
|
6454
|
+
return fetch(url);
|
|
6455
|
+
case 10:
|
|
6456
|
+
response = _context2.sent;
|
|
6457
|
+
_context2.next = 13;
|
|
6458
|
+
return response.json();
|
|
6459
|
+
case 13:
|
|
6460
|
+
return _context2.abrupt("return", _context2.sent);
|
|
6461
|
+
case 14:
|
|
6462
|
+
case "end":
|
|
6463
|
+
return _context2.stop();
|
|
6554
6464
|
}
|
|
6555
|
-
},
|
|
6556
|
-
|
|
6557
|
-
|
|
6558
|
-
|
|
6559
|
-
|
|
6560
|
-
|
|
6561
|
-
});
|
|
6562
|
-
unByKey(eventKey);
|
|
6563
|
-
hoverSelect.onHover && hoverSelect.onHover(undefined);
|
|
6564
|
-
};
|
|
6565
|
-
}, [map, source, hoverSelect]);
|
|
6566
|
-
useEffect(function () {
|
|
6567
|
-
if (!map || !source || !clickOnFeature) {
|
|
6568
|
-
return function () {};
|
|
6569
|
-
}
|
|
6570
|
-
var clickFunction = function clickFunction(evt) {
|
|
6571
|
-
var features = [];
|
|
6572
|
-
map.forEachFeatureAtPixel(evt.pixel, function (feature) {
|
|
6573
|
-
features.push(feature);
|
|
6574
|
-
}, {
|
|
6575
|
-
hitTolerance: clickOnFeature.hitTolerance
|
|
6576
|
-
});
|
|
6577
|
-
clickOnFeature.onClick(features);
|
|
6578
|
-
};
|
|
6579
|
-
var eventKey = map.on('click', clickFunction);
|
|
6580
|
-
return function () {
|
|
6581
|
-
unByKey(eventKey);
|
|
6582
|
-
};
|
|
6583
|
-
}, [map, source, clickOnFeature]);
|
|
6584
|
-
return null;
|
|
6585
|
-
};
|
|
6586
|
-
|
|
6587
|
-
var OpenLayersFeatureLayer = function OpenLayersFeatureLayer(_ref) {
|
|
6588
|
-
var featureCollection = _ref.featureCollection,
|
|
6589
|
-
style = _ref.style,
|
|
6590
|
-
zIndex = _ref.zIndex,
|
|
6591
|
-
hoverSelect = _ref.hoverSelect,
|
|
6592
|
-
clickOnFeature = _ref.clickOnFeature,
|
|
6593
|
-
testId = _ref.testId,
|
|
6594
|
-
opacity = _ref.opacity;
|
|
6595
|
-
var projection = useProjection();
|
|
6596
|
-
var featureCollectionRef = useRef();
|
|
6597
|
-
var features = useRef([]);
|
|
6598
|
-
var featureCollectionHasChanges = featureCollectionRef.current !== featureCollection;
|
|
6599
|
-
if (featureCollectionHasChanges) {
|
|
6600
|
-
if (projection && featureCollection) {
|
|
6601
|
-
// eslint-disable-next-line no-console
|
|
6602
|
-
featureCollectionRef.current = featureCollection;
|
|
6603
|
-
var formatter = new GeoJSON({
|
|
6604
|
-
featureProjection: projection
|
|
6605
|
-
});
|
|
6606
|
-
features.current = formatter.readFeatures(featureCollection);
|
|
6607
|
-
}
|
|
6608
|
-
}
|
|
6609
|
-
// If no featureCollection is given, e.g. in edit mode of a polygon, the feature should not be displayed.
|
|
6610
|
-
if (!featureCollection) {
|
|
6611
|
-
return null;
|
|
6612
|
-
}
|
|
6613
|
-
return jsx(FeatureLayer, {
|
|
6614
|
-
features: features.current,
|
|
6615
|
-
style: style,
|
|
6616
|
-
zIndex: zIndex,
|
|
6617
|
-
hoverSelect: hoverSelect,
|
|
6618
|
-
clickOnFeature: clickOnFeature,
|
|
6619
|
-
testId: testId,
|
|
6620
|
-
opacity: opacity
|
|
6621
|
-
});
|
|
6622
|
-
};
|
|
6465
|
+
}, _callee2);
|
|
6466
|
+
}));
|
|
6467
|
+
return function fetchEDRLayerCollectionCube(_x2, _x3) {
|
|
6468
|
+
return _ref2.apply(this, arguments);
|
|
6469
|
+
};
|
|
6470
|
+
}();
|
|
6623
6471
|
|
|
6624
|
-
var
|
|
6625
|
-
|
|
6626
|
-
|
|
6627
|
-
}).join('/');
|
|
6628
|
-
};
|
|
6629
|
-
var useEDRCollection = function useEDRCollection(edrBaseUrl, collectionId) {
|
|
6630
|
-
var instanceId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
6631
|
-
var params = [edrBaseUrl, collectionId, instanceId];
|
|
6472
|
+
var DEFAULT_STALE_TIME = 60000; // One minute
|
|
6473
|
+
var useEDRLayerCollection = function useEDRLayerCollection(edrBaseUrlWithCollection) {
|
|
6474
|
+
var instanceId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
6632
6475
|
return useQuery({
|
|
6633
|
-
|
|
6476
|
+
staleTime: DEFAULT_STALE_TIME,
|
|
6477
|
+
queryKey: [edrBaseUrlWithCollection, instanceId, 'useEDRLayerCollection'],
|
|
6634
6478
|
queryFn: function () {
|
|
6635
|
-
var _queryFn = _asyncToGenerator(
|
|
6636
|
-
var url, response;
|
|
6479
|
+
var _queryFn = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
6637
6480
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
6638
6481
|
while (1) switch (_context.prev = _context.next) {
|
|
6639
6482
|
case 0:
|
|
6640
|
-
|
|
6641
|
-
|
|
6642
|
-
return fetch(url);
|
|
6643
|
-
case 3:
|
|
6644
|
-
response = _context.sent;
|
|
6645
|
-
_context.next = 6;
|
|
6646
|
-
return response.json();
|
|
6647
|
-
case 6:
|
|
6648
|
-
return _context.abrupt("return", _context.sent);
|
|
6649
|
-
case 7:
|
|
6483
|
+
return _context.abrupt("return", fetchEDRLayerCollection(edrBaseUrlWithCollection, instanceId));
|
|
6484
|
+
case 1:
|
|
6650
6485
|
case "end":
|
|
6651
6486
|
return _context.stop();
|
|
6652
6487
|
}
|
|
@@ -6656,30 +6491,26 @@ var useEDRCollection = function useEDRCollection(edrBaseUrl, collectionId) {
|
|
|
6656
6491
|
return _queryFn.apply(this, arguments);
|
|
6657
6492
|
}
|
|
6658
6493
|
return queryFn;
|
|
6659
|
-
}()
|
|
6494
|
+
}(),
|
|
6495
|
+
enabled: edrBaseUrlWithCollection.length > 0
|
|
6660
6496
|
});
|
|
6661
6497
|
};
|
|
6662
|
-
var
|
|
6663
|
-
var
|
|
6664
|
-
var
|
|
6498
|
+
var useEDRLayerCollectionCube = function useEDRLayerCollectionCube(edrBaseUrlWithCollection, parameterName) {
|
|
6499
|
+
var datetime = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
6500
|
+
var instanceId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
|
|
6501
|
+
var bbox = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : '-180,-90,180,90';
|
|
6502
|
+
var params = [edrBaseUrlWithCollection, instanceId, 'cube'];
|
|
6503
|
+
var queryKey = [].concat(params, [bbox, parameterName, datetime]);
|
|
6665
6504
|
return useQuery({
|
|
6666
|
-
|
|
6505
|
+
staleTime: DEFAULT_STALE_TIME,
|
|
6506
|
+
queryKey: queryKey,
|
|
6667
6507
|
queryFn: function () {
|
|
6668
|
-
var _queryFn2 = _asyncToGenerator(
|
|
6669
|
-
var url, response;
|
|
6508
|
+
var _queryFn2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
6670
6509
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
6671
6510
|
while (1) switch (_context2.prev = _context2.next) {
|
|
6672
6511
|
case 0:
|
|
6673
|
-
|
|
6674
|
-
|
|
6675
|
-
return fetch(url);
|
|
6676
|
-
case 3:
|
|
6677
|
-
response = _context2.sent;
|
|
6678
|
-
_context2.next = 6;
|
|
6679
|
-
return response.json();
|
|
6680
|
-
case 6:
|
|
6681
|
-
return _context2.abrupt("return", _context2.sent);
|
|
6682
|
-
case 7:
|
|
6512
|
+
return _context2.abrupt("return", fetchEDRLayerCollectionCube(edrBaseUrlWithCollection, parameterName, datetime, instanceId, bbox));
|
|
6513
|
+
case 1:
|
|
6683
6514
|
case "end":
|
|
6684
6515
|
return _context2.stop();
|
|
6685
6516
|
}
|
|
@@ -6689,54 +6520,8 @@ var useEDRCollectionLocation = function useEDRCollectionLocation(edrBaseUrl, col
|
|
|
6689
6520
|
return _queryFn2.apply(this, arguments);
|
|
6690
6521
|
}
|
|
6691
6522
|
return queryFn;
|
|
6692
|
-
}()
|
|
6693
|
-
|
|
6694
|
-
};
|
|
6695
|
-
var useEDRCollectionCube = function useEDRCollectionCube(edrBaseUrl, collectionId, parameterName) {
|
|
6696
|
-
var datetime = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
|
|
6697
|
-
var instanceId = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : '';
|
|
6698
|
-
var bbox = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : '-180,-90,180,90';
|
|
6699
|
-
var params = [edrBaseUrl, collectionId, instanceId, 'cube'];
|
|
6700
|
-
var queryKey = [].concat(params, [bbox, parameterName, datetime]);
|
|
6701
|
-
return useQuery({
|
|
6702
|
-
staleTime: 5 * 60 * 1000,
|
|
6703
|
-
queryKey: queryKey,
|
|
6704
|
-
queryFn: function () {
|
|
6705
|
-
var _queryFn3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
6706
|
-
var queryParams, url, response;
|
|
6707
|
-
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
6708
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
6709
|
-
case 0:
|
|
6710
|
-
if (parameterName.length) {
|
|
6711
|
-
_context3.next = 2;
|
|
6712
|
-
break;
|
|
6713
|
-
}
|
|
6714
|
-
throw new Error('parameterName must be defined');
|
|
6715
|
-
case 2:
|
|
6716
|
-
queryParams = new URLSearchParams();
|
|
6717
|
-
queryParams.append('bbox', bbox);
|
|
6718
|
-
queryParams.append('parameter-name', parameterName);
|
|
6719
|
-
queryParams.append('datetime', datetime);
|
|
6720
|
-
url = "".concat(makeUrlFromParams(params), "?").concat(queryParams.toString());
|
|
6721
|
-
_context3.next = 9;
|
|
6722
|
-
return fetch(url);
|
|
6723
|
-
case 9:
|
|
6724
|
-
response = _context3.sent;
|
|
6725
|
-
_context3.next = 12;
|
|
6726
|
-
return response.json();
|
|
6727
|
-
case 12:
|
|
6728
|
-
return _context3.abrupt("return", _context3.sent);
|
|
6729
|
-
case 13:
|
|
6730
|
-
case "end":
|
|
6731
|
-
return _context3.stop();
|
|
6732
|
-
}
|
|
6733
|
-
}, _callee3);
|
|
6734
|
-
}));
|
|
6735
|
-
function queryFn() {
|
|
6736
|
-
return _queryFn3.apply(this, arguments);
|
|
6737
|
-
}
|
|
6738
|
-
return queryFn;
|
|
6739
|
-
}()
|
|
6523
|
+
}(),
|
|
6524
|
+
enabled: parameterName.length > 0
|
|
6740
6525
|
});
|
|
6741
6526
|
};
|
|
6742
6527
|
|
|
@@ -6757,9 +6542,12 @@ var useEDRCollectionCube = function useEDRCollectionCube(edrBaseUrl, collectionI
|
|
|
6757
6542
|
* Copyright 2025 - Finnish Meteorological Institute (FMI)
|
|
6758
6543
|
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
6759
6544
|
* */
|
|
6760
|
-
var
|
|
6545
|
+
var temperatureLegendColorsWoW = ['#2E2E73', '#282898', '#201FBB', '#1A1ADC', '#3654DE', '#548EDC', '#72CADE', '#6DD8DF', '#55CDE2', '#38BBDC', '#20B0DC', '#19BAA6', '#1CCE6A', '#1BDF22', '#82C319', '#DCA819', '#DD921A', '#DE7C1A', '#DF671A', '#DE501A', '#DD3819', '#DD2319', '#D21A1E', '#C31927', '#AD1A30', '#9A1A3B', '#871A44', '#871A44'];
|
|
6546
|
+
var precipitationMMLegendColorsWoW = ['#BACDCB', '#A3C3C9', '#8BBCC8', '#6AAEC1', '#42A1C0', '#377EAF', '#46669C', '#56528D', '#86008D', '#610066'];
|
|
6547
|
+
var temperatureLegendColorsCWK = ['#BFB1FF', '#8E7EE4', '#6450CC', '#422BB1', '#260E99', '#B1E4FF', '#7EC3E4', '#50A3CC', '#2B85B1', '#0E6B99', '#E4FFB1', '#C3E47E', '#A3CC50', '#85B12B', '#6B990E', '#FFD8B1', '#E4B17E', '#CC8E50', '#B16E2B', '#99540E', '#FFB1B1', '#E47E7E', '#CC5050', '#B12B2B', '#990E0E', '#BFB1FF', '#8E7EE4', '#6450CC', '#422BB1', '#260E99', '#B1E4FF', '#7EC3E4', '#50A3CC', '#2B85B1', '#0E6B99', '#E4FFB1', '#C3E47E', '#A3CC50', '#85B12B', '#6B990E', '#FFD8B1', '#E4B17E', '#CC8E50', '#B16E2B', '#99540E', '#FFB1B1', '#E47E7E', '#CC5050', '#B12B2B', '#990E0E', '#BFB1FF', '#8E7EE4', '#6450CC', '#422BB1', '#260E99', '#B1E4FF', '#7EC3E4', '#50A3CC', '#2B85B1', '#0E6B99', '#E4FFB1', '#C3E47E', '#A3CC50', '#85B12B', '#6B990E', '#FFD8B1', '#E4B17E', '#CC8E50', '#B16E2B', '#99540E', '#FFB1B1', '#E47E7E', '#CC5050', '#B12B2B', '#990E0E'];
|
|
6761
6548
|
var colorMaps = {
|
|
6762
|
-
|
|
6549
|
+
temperatureLegendColorsWoW: temperatureLegendColorsWoW,
|
|
6550
|
+
temperatureLegendColorsCWK: temperatureLegendColorsCWK
|
|
6763
6551
|
};
|
|
6764
6552
|
|
|
6765
6553
|
/* *
|
|
@@ -6866,43 +6654,212 @@ var makeFeatureStyleLoading = function makeFeatureStyleLoading(feature) {
|
|
|
6866
6654
|
})
|
|
6867
6655
|
});
|
|
6868
6656
|
};
|
|
6657
|
+
var defaultLegend$1 = makeLegendFromColorMap({
|
|
6658
|
+
colors: colorMaps.temperatureLegendColorsWoW,
|
|
6659
|
+
min: -18,
|
|
6660
|
+
max: 38
|
|
6661
|
+
});
|
|
6662
|
+
var defaultStyle$1 = function defaultStyle(feature) {
|
|
6663
|
+
return makeFeatureStyleDisc(feature, defaultLegend$1);
|
|
6664
|
+
};
|
|
6665
|
+
/**
|
|
6666
|
+
* Converts a stylename to openlayers style for features
|
|
6667
|
+
* @param styleName Strings like temperatureLegendColorsWoW:0,20 will get the legend temperatureLegendColorsWoW with a range from 0,20. This makes it flexible to adjust the colorrange via the stylename.
|
|
6668
|
+
* @returns StyleLike
|
|
6669
|
+
*/
|
|
6670
|
+
var styleNameToStyleLikeNotMemoed = function styleNameToStyleLikeNotMemoed(styleName) {
|
|
6671
|
+
var minMaxPartFromNumericIndex = styleName.indexOf(':');
|
|
6672
|
+
var legMinMax = minMaxPartFromNumericIndex > 0 ? styleName.substring(minMaxPartFromNumericIndex + 1).split(',').map(function (stringValue) {
|
|
6673
|
+
return parseFloat(stringValue);
|
|
6674
|
+
}) : [undefined, undefined];
|
|
6675
|
+
var min = legMinMax.length === 2 ? legMinMax[0] : undefined;
|
|
6676
|
+
var max = legMinMax.length === 2 ? legMinMax[1] : undefined;
|
|
6677
|
+
var legendName = styleName === null || styleName === void 0 ? void 0 : styleName.split(':')[0];
|
|
6678
|
+
if (legendName === 'temperatureLegendColorsWoW') {
|
|
6679
|
+
return function (feature) {
|
|
6680
|
+
return makeFeatureStyleDisc(feature, makeLegendFromColorMap({
|
|
6681
|
+
colors: colorMaps.temperatureLegendColorsWoW,
|
|
6682
|
+
min: min !== undefined ? min : -18,
|
|
6683
|
+
max: max !== undefined ? max : 38
|
|
6684
|
+
}));
|
|
6685
|
+
};
|
|
6686
|
+
}
|
|
6687
|
+
if (legendName === 'temperatureLegendColorsCWK') {
|
|
6688
|
+
return function (feature) {
|
|
6689
|
+
return makeFeatureStyleDisc(feature, makeLegendFromColorMap({
|
|
6690
|
+
colors: colorMaps.temperatureLegendColorsCWK,
|
|
6691
|
+
min: min !== undefined ? min : -18,
|
|
6692
|
+
max: max !== undefined ? max : 38
|
|
6693
|
+
}));
|
|
6694
|
+
};
|
|
6695
|
+
}
|
|
6696
|
+
if (legendName === 'precipitationMMLegendColorsWoW') {
|
|
6697
|
+
return function (feature) {
|
|
6698
|
+
return makeFeatureStyleDisc(feature, makeLegendFromColorMap({
|
|
6699
|
+
colors: colorMaps.temperatureLegendColorsCWK,
|
|
6700
|
+
min: min !== undefined ? min : 0,
|
|
6701
|
+
max: max !== undefined ? max : 30
|
|
6702
|
+
}));
|
|
6703
|
+
};
|
|
6704
|
+
}
|
|
6705
|
+
return defaultStyle$1;
|
|
6706
|
+
};
|
|
6707
|
+
var styleNameToStyleLike = memoize(styleNameToStyleLikeNotMemoed);
|
|
6869
6708
|
|
|
6870
|
-
|
|
6871
|
-
|
|
6872
|
-
|
|
6873
|
-
|
|
6874
|
-
|
|
6875
|
-
|
|
6876
|
-
|
|
6877
|
-
|
|
6878
|
-
|
|
6879
|
-
|
|
6880
|
-
|
|
6881
|
-
|
|
6882
|
-
|
|
6883
|
-
|
|
6884
|
-
|
|
6885
|
-
|
|
6886
|
-
|
|
6887
|
-
|
|
6888
|
-
|
|
6889
|
-
|
|
6890
|
-
|
|
6891
|
-
|
|
6892
|
-
|
|
6893
|
-
|
|
6894
|
-
|
|
6895
|
-
|
|
6896
|
-
|
|
6897
|
-
|
|
6898
|
-
|
|
6899
|
-
|
|
6900
|
-
|
|
6901
|
-
|
|
6902
|
-
|
|
6903
|
-
|
|
6904
|
-
|
|
6905
|
-
|
|
6709
|
+
/**
|
|
6710
|
+
* Returns WMLayer instance in EDR mode. The layer will contains parsed dimensions and styles and keeps a state for these properties.
|
|
6711
|
+
*
|
|
6712
|
+
* @param {string} serviceUrl
|
|
6713
|
+
* @param {string} name
|
|
6714
|
+
* @returns {(WMLayer | null)}
|
|
6715
|
+
*/
|
|
6716
|
+
var useGetEDRWMLayerInstance = function useGetEDRWMLayerInstance(serviceUrl, name, id, onLayerError) {
|
|
6717
|
+
var _React$useState = React__default.useState(null),
|
|
6718
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
6719
|
+
layer = _React$useState2[0],
|
|
6720
|
+
setLayer = _React$useState2[1];
|
|
6721
|
+
var refId = useRef(id || webmapUtils.generateLayerId());
|
|
6722
|
+
React__default.useEffect(function () {
|
|
6723
|
+
var layerId = refId.current;
|
|
6724
|
+
// Check if the layer is already registered
|
|
6725
|
+
var tmpWMLayer = webmapUtils.getWMLayerById(layerId);
|
|
6726
|
+
if (!tmpWMLayer || tmpWMLayer.service !== serviceUrl && name.length > 0) {
|
|
6727
|
+
// Make a new layer if the serviceUrl changes. (But not when the name changes)
|
|
6728
|
+
var _wmLayer = new WMLayer({
|
|
6729
|
+
name: name,
|
|
6730
|
+
service: serviceUrl,
|
|
6731
|
+
layerType: LayerType.edrLayer,
|
|
6732
|
+
id: layerId
|
|
6733
|
+
});
|
|
6734
|
+
webmapUtils.registerWMLayer(_wmLayer, layerId);
|
|
6735
|
+
}
|
|
6736
|
+
// Set the name and parse the layer
|
|
6737
|
+
var wmLayer = webmapUtils.getWMLayerById(layerId);
|
|
6738
|
+
wmLayer.setName(name).then(function () {
|
|
6739
|
+
setLayer(wmLayer);
|
|
6740
|
+
})["catch"](function (e) {
|
|
6741
|
+
setLayer(wmLayer);
|
|
6742
|
+
});
|
|
6743
|
+
}, [name, onLayerError, serviceUrl]);
|
|
6744
|
+
return layer;
|
|
6745
|
+
};
|
|
6746
|
+
var useGetEDRLayerInstance = function useGetEDRLayerInstance(edrBaseUrl, parameter, layerId, onInitializeLayer) {
|
|
6747
|
+
var wmLayer = useGetEDRWMLayerInstance(edrBaseUrl, parameter, layerId);
|
|
6748
|
+
var collectionInfo = useEDRLayerCollection(edrBaseUrl);
|
|
6749
|
+
var _React$useState3 = React__default.useState(undefined),
|
|
6750
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
6751
|
+
timeRangeDuration = _React$useState4[0],
|
|
6752
|
+
setTimeRangeDuration = _React$useState4[1];
|
|
6753
|
+
React__default.useEffect(function () {
|
|
6754
|
+
if (wmLayer && collectionInfo.data && collectionInfo.isFetched) {
|
|
6755
|
+
var _collectionInfo$data, _collectionInfo$data2;
|
|
6756
|
+
// TODO: Extract PT10M from the EDR service: https://gitlab.com/opengeoweb/geoweb-assets/-/issues/4139
|
|
6757
|
+
var timeRangeDurationFromEdrCollection = "".concat((_collectionInfo$data = collectionInfo.data) === null || _collectionInfo$data === void 0 || (_collectionInfo$data = _collectionInfo$data.extent) === null || _collectionInfo$data === void 0 || (_collectionInfo$data = _collectionInfo$data.temporal) === null || _collectionInfo$data === void 0 ? void 0 : _collectionInfo$data.interval[0][0], "/").concat((_collectionInfo$data2 = collectionInfo.data) === null || _collectionInfo$data2 === void 0 || (_collectionInfo$data2 = _collectionInfo$data2.extent) === null || _collectionInfo$data2 === void 0 || (_collectionInfo$data2 = _collectionInfo$data2.temporal) === null || _collectionInfo$data2 === void 0 ? void 0 : _collectionInfo$data2.interval[0][1], "/PT10M");
|
|
6758
|
+
if (!wmLayer.getDimension('time')) {
|
|
6759
|
+
var _collectionInfo$data3;
|
|
6760
|
+
var dim = new WMJSDimension({
|
|
6761
|
+
name: 'time',
|
|
6762
|
+
currentValue: (_collectionInfo$data3 = collectionInfo.data) === null || _collectionInfo$data3 === void 0 || (_collectionInfo$data3 = _collectionInfo$data3.extent) === null || _collectionInfo$data3 === void 0 || (_collectionInfo$data3 = _collectionInfo$data3.temporal) === null || _collectionInfo$data3 === void 0 ? void 0 : _collectionInfo$data3.interval[0][1],
|
|
6763
|
+
units: 'ISO8601',
|
|
6764
|
+
values: timeRangeDurationFromEdrCollection
|
|
6765
|
+
});
|
|
6766
|
+
dim.initialize();
|
|
6767
|
+
wmLayer.dimensions.push(dim);
|
|
6768
|
+
} else {
|
|
6769
|
+
var _wmLayer$getDimension;
|
|
6770
|
+
(_wmLayer$getDimension = wmLayer.getDimension('time')) === null || _wmLayer$getDimension === void 0 || _wmLayer$getDimension.reInitializeValues(timeRangeDurationFromEdrCollection);
|
|
6771
|
+
}
|
|
6772
|
+
setTimeRangeDuration(timeRangeDurationFromEdrCollection);
|
|
6773
|
+
wmLayer.isConfigured = true;
|
|
6774
|
+
}
|
|
6775
|
+
}, [collectionInfo.data, collectionInfo.isFetched, wmLayer]);
|
|
6776
|
+
React__default.useEffect(function () {
|
|
6777
|
+
var initializeLayer = /*#__PURE__*/function () {
|
|
6778
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
6779
|
+
var _wmLayer$dimensions, wmTimeDim, timeValueToInitialize, layerProps;
|
|
6780
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
6781
|
+
while (1) switch (_context.prev = _context.next) {
|
|
6782
|
+
case 0:
|
|
6783
|
+
if (wmLayer) {
|
|
6784
|
+
// Set time dimension current value based on layerprops dimension value
|
|
6785
|
+
wmTimeDim = wmLayer === null || wmLayer === void 0 || (_wmLayer$dimensions = wmLayer.dimensions) === null || _wmLayer$dimensions === void 0 ? void 0 : _wmLayer$dimensions.find(function (wmDimension) {
|
|
6786
|
+
return wmDimension.name === 'time';
|
|
6787
|
+
});
|
|
6788
|
+
timeValueToInitialize = wmTimeDim === null || wmTimeDim === void 0 ? void 0 : wmTimeDim.getValue();
|
|
6789
|
+
wmTimeDim && timeValueToInitialize && wmTimeDim.setValue(timeValueToInitialize);
|
|
6790
|
+
layerProps = {
|
|
6791
|
+
layerId: wmLayer.id,
|
|
6792
|
+
dimensions: wmLayer.dimensions.map(function (dimension) {
|
|
6793
|
+
return {
|
|
6794
|
+
name: dimension.name,
|
|
6795
|
+
units: dimension.units,
|
|
6796
|
+
currentValue: dimension.currentValue,
|
|
6797
|
+
maxValue: dimension.getLastValue(),
|
|
6798
|
+
minValue: dimension.getFirstValue(),
|
|
6799
|
+
synced: dimension.synced,
|
|
6800
|
+
values: dimension.values,
|
|
6801
|
+
unitSymbol: dimension.unitSymbol
|
|
6802
|
+
};
|
|
6803
|
+
}),
|
|
6804
|
+
style: ''
|
|
6805
|
+
};
|
|
6806
|
+
onInitializeLayer && onInitializeLayer(layerProps);
|
|
6807
|
+
}
|
|
6808
|
+
case 1:
|
|
6809
|
+
case "end":
|
|
6810
|
+
return _context.stop();
|
|
6811
|
+
}
|
|
6812
|
+
}, _callee);
|
|
6813
|
+
}));
|
|
6814
|
+
return function initializeLayer() {
|
|
6815
|
+
return _ref.apply(this, arguments);
|
|
6816
|
+
};
|
|
6817
|
+
}();
|
|
6818
|
+
timeRangeDuration && initializeLayer()["catch"](function (e) {
|
|
6819
|
+
return window.console.error(e);
|
|
6820
|
+
});
|
|
6821
|
+
return function () {};
|
|
6822
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
6823
|
+
}, [wmLayer, parameter, timeRangeDuration]);
|
|
6824
|
+
return wmLayer;
|
|
6825
|
+
};
|
|
6826
|
+
|
|
6827
|
+
var id$1 = "10-minute-in-situ-meteorological-observations";
|
|
6828
|
+
var title$1 = "[PRE-RELEASE] Meteo data - near real-time automatic ground-based meteorological in-situ surface observations of the Netherlands, per 10 minutes";
|
|
6829
|
+
var description$1 = "KNMI collects meteorological surface observations from automatic weather stations\n(in-situ) situated in the Netherlands and BES islands. The network consists of sea and land-based locations,\nincluding wind poles and sites at airports. The weather stations report every 10 minutes meteorological variables\nsuch as temperature, relative humidity, wind, air pressure, visibility, precipitation and cloud cover.\nThe number of available variables differs per station. The data for the past 10-minutes interval is available\na few minutes later and contains a timestamp denoting the end of the observation interval in UTC.\nIt is possible that a station's observations may not be immediately available. The dataset can be updated with\nmissing data up to seven days later.";
|
|
6830
|
+
var links$1 = [
|
|
6831
|
+
{
|
|
6832
|
+
href: "https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations",
|
|
6833
|
+
rel: "self"
|
|
6834
|
+
}
|
|
6835
|
+
];
|
|
6836
|
+
var extent$1 = {
|
|
6837
|
+
spatial: {
|
|
6838
|
+
bbox: [
|
|
6839
|
+
[
|
|
6840
|
+
-68.2758,
|
|
6841
|
+
12.13,
|
|
6842
|
+
7.1492,
|
|
6843
|
+
55.3992
|
|
6844
|
+
]
|
|
6845
|
+
],
|
|
6846
|
+
crs: "EPSG:4326"
|
|
6847
|
+
},
|
|
6848
|
+
temporal: {
|
|
6849
|
+
interval: [
|
|
6850
|
+
[
|
|
6851
|
+
"2012-01-01T00:00:00Z",
|
|
6852
|
+
"2025-05-26T12:00:00Z"
|
|
6853
|
+
]
|
|
6854
|
+
],
|
|
6855
|
+
values: [
|
|
6856
|
+
"2012-01-01T00:00:00Z/2025-05-26T12:00:00Z"
|
|
6857
|
+
],
|
|
6858
|
+
trs: "datetime"
|
|
6859
|
+
},
|
|
6860
|
+
custom: [
|
|
6861
|
+
{
|
|
6862
|
+
id: "duration",
|
|
6906
6863
|
interval: [
|
|
6907
6864
|
[
|
|
6908
6865
|
"-PT10M",
|
|
@@ -6991,7 +6948,7 @@ var extent = {
|
|
|
6991
6948
|
}
|
|
6992
6949
|
]
|
|
6993
6950
|
};
|
|
6994
|
-
var data_queries = {
|
|
6951
|
+
var data_queries$1 = {
|
|
6995
6952
|
position: {
|
|
6996
6953
|
link: {
|
|
6997
6954
|
href: "https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations/position",
|
|
@@ -7053,14 +7010,14 @@ var data_queries = {
|
|
|
7053
7010
|
}
|
|
7054
7011
|
}
|
|
7055
7012
|
};
|
|
7056
|
-
var crs = [
|
|
7013
|
+
var crs$1 = [
|
|
7057
7014
|
"WGS84"
|
|
7058
7015
|
];
|
|
7059
|
-
var output_formats = [
|
|
7016
|
+
var output_formats$1 = [
|
|
7060
7017
|
"CoverageJSON",
|
|
7061
7018
|
"netCDF4"
|
|
7062
7019
|
];
|
|
7063
|
-
var parameter_names = {
|
|
7020
|
+
var parameter_names$1 = {
|
|
7064
7021
|
D1H: {
|
|
7065
7022
|
type: "Parameter",
|
|
7066
7023
|
label: "Rainfall Duration in last Hour",
|
|
@@ -9117,86 +9074,2347 @@ var parameter_names = {
|
|
|
9117
9074
|
}
|
|
9118
9075
|
};
|
|
9119
9076
|
var knmi_kdp_edr_collections_10_minute_in_situ_meteorological_observations = {
|
|
9120
|
-
id: id,
|
|
9121
|
-
title: title,
|
|
9122
|
-
description: description,
|
|
9123
|
-
links: links,
|
|
9124
|
-
extent: extent,
|
|
9125
|
-
data_queries: data_queries,
|
|
9126
|
-
crs: crs,
|
|
9127
|
-
output_formats: output_formats,
|
|
9128
|
-
parameter_names: parameter_names
|
|
9077
|
+
id: id$1,
|
|
9078
|
+
title: title$1,
|
|
9079
|
+
description: description$1,
|
|
9080
|
+
links: links$1,
|
|
9081
|
+
extent: extent$1,
|
|
9082
|
+
data_queries: data_queries$1,
|
|
9083
|
+
crs: crs$1,
|
|
9084
|
+
output_formats: output_formats$1,
|
|
9085
|
+
parameter_names: parameter_names$1
|
|
9129
9086
|
};
|
|
9130
9087
|
|
|
9131
|
-
var
|
|
9132
|
-
var
|
|
9088
|
+
var id = "10-minute-in-situ-meteorological-observations";
|
|
9089
|
+
var title = "[PRE-RELEASE] Meteo data - near real-time automatic ground-based meteorological in-situ surface observations of the Netherlands, per 10 minutes";
|
|
9090
|
+
var description = "KNMI collects meteorological surface observations from automatic weather stations\n(in-situ) situated in the Netherlands and BES islands. The network consists of sea and land-based locations,\nincluding wind poles and sites at airports. The weather stations report every 10 minutes meteorological variables\nsuch as temperature, relative humidity, wind, air pressure, visibility, precipitation and cloud cover.\nThe number of available variables differs per station. The data for the past 10-minutes interval is available\na few minutes later and contains a timestamp denoting the end of the observation interval in UTC.\nIt is possible that a station's observations may not be immediately available. The dataset can be updated with\nmissing data up to seven days later.";
|
|
9091
|
+
var links = [
|
|
9133
9092
|
{
|
|
9134
|
-
|
|
9135
|
-
|
|
9136
|
-
|
|
9137
|
-
|
|
9138
|
-
|
|
9139
|
-
|
|
9140
|
-
|
|
9093
|
+
href: "https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations",
|
|
9094
|
+
rel: "self"
|
|
9095
|
+
}
|
|
9096
|
+
];
|
|
9097
|
+
var extent = {
|
|
9098
|
+
spatial: {
|
|
9099
|
+
bbox: [
|
|
9100
|
+
[
|
|
9101
|
+
-68.2758,
|
|
9102
|
+
12.13,
|
|
9103
|
+
7.1492,
|
|
9104
|
+
55.3992
|
|
9141
9105
|
]
|
|
9142
|
-
|
|
9143
|
-
|
|
9144
|
-
name: "D15-FA-1",
|
|
9145
|
-
wmoId: "06201"
|
|
9146
|
-
},
|
|
9147
|
-
id: "0-20000-0-06201"
|
|
9106
|
+
],
|
|
9107
|
+
crs: "EPSG:4326"
|
|
9148
9108
|
},
|
|
9149
|
-
{
|
|
9150
|
-
|
|
9151
|
-
|
|
9152
|
-
|
|
9153
|
-
|
|
9154
|
-
3.3417,
|
|
9155
|
-
52.36,
|
|
9156
|
-
41.84
|
|
9109
|
+
temporal: {
|
|
9110
|
+
interval: [
|
|
9111
|
+
[
|
|
9112
|
+
"2012-01-01T00:00:00Z",
|
|
9113
|
+
"2025-05-26T12:10:00Z"
|
|
9157
9114
|
]
|
|
9158
|
-
|
|
9159
|
-
|
|
9160
|
-
|
|
9161
|
-
|
|
9162
|
-
|
|
9163
|
-
id: "0-20000-0-06203"
|
|
9115
|
+
],
|
|
9116
|
+
values: [
|
|
9117
|
+
"2012-01-01T00:00:00Z/2025-05-26T12:10:00Z"
|
|
9118
|
+
],
|
|
9119
|
+
trs: "datetime"
|
|
9164
9120
|
},
|
|
9165
|
-
|
|
9166
|
-
|
|
9167
|
-
|
|
9168
|
-
|
|
9169
|
-
|
|
9170
|
-
|
|
9171
|
-
|
|
9172
|
-
|
|
9173
|
-
]
|
|
9174
|
-
|
|
9175
|
-
|
|
9176
|
-
|
|
9177
|
-
|
|
9121
|
+
custom: [
|
|
9122
|
+
{
|
|
9123
|
+
id: "duration",
|
|
9124
|
+
interval: [
|
|
9125
|
+
[
|
|
9126
|
+
"-PT10M",
|
|
9127
|
+
"N/A"
|
|
9128
|
+
]
|
|
9129
|
+
],
|
|
9130
|
+
values: [
|
|
9131
|
+
"-PT10M",
|
|
9132
|
+
"-PT12H",
|
|
9133
|
+
"-PT14H",
|
|
9134
|
+
"-PT19M",
|
|
9135
|
+
"-PT1H",
|
|
9136
|
+
"-PT1M",
|
|
9137
|
+
"-PT24H",
|
|
9138
|
+
"-PT3H",
|
|
9139
|
+
"-PT6H",
|
|
9140
|
+
"N/A"
|
|
9141
|
+
],
|
|
9142
|
+
reference: "https://en.wikipedia.org/wiki/ISO_8601#Durations"
|
|
9178
9143
|
},
|
|
9179
|
-
|
|
9180
|
-
|
|
9181
|
-
|
|
9182
|
-
|
|
9183
|
-
|
|
9184
|
-
|
|
9185
|
-
|
|
9186
|
-
|
|
9187
|
-
|
|
9188
|
-
|
|
9189
|
-
|
|
9144
|
+
{
|
|
9145
|
+
id: "level",
|
|
9146
|
+
interval: [
|
|
9147
|
+
[
|
|
9148
|
+
-1,
|
|
9149
|
+
10
|
|
9150
|
+
]
|
|
9151
|
+
],
|
|
9152
|
+
values: [
|
|
9153
|
+
-1,
|
|
9154
|
+
-0.5,
|
|
9155
|
+
-0.2,
|
|
9156
|
+
-0.1,
|
|
9157
|
+
-0.05,
|
|
9158
|
+
0.1,
|
|
9159
|
+
1.5,
|
|
9160
|
+
10
|
|
9161
|
+
],
|
|
9162
|
+
reference: "Height of measurement above ground level in meters"
|
|
9190
9163
|
},
|
|
9191
|
-
|
|
9192
|
-
|
|
9193
|
-
|
|
9164
|
+
{
|
|
9165
|
+
id: "method",
|
|
9166
|
+
interval: [
|
|
9167
|
+
[
|
|
9168
|
+
"maximum",
|
|
9169
|
+
"sum"
|
|
9170
|
+
]
|
|
9171
|
+
],
|
|
9172
|
+
values: [
|
|
9173
|
+
"maximum",
|
|
9174
|
+
"mean",
|
|
9175
|
+
"minimum",
|
|
9176
|
+
"stddev",
|
|
9177
|
+
"sum"
|
|
9178
|
+
],
|
|
9179
|
+
reference: "Time aggregation functions"
|
|
9194
9180
|
},
|
|
9195
|
-
|
|
9196
|
-
|
|
9197
|
-
|
|
9198
|
-
|
|
9199
|
-
|
|
9181
|
+
{
|
|
9182
|
+
id: "standard_name",
|
|
9183
|
+
interval: [
|
|
9184
|
+
[
|
|
9185
|
+
"air_pressure",
|
|
9186
|
+
"wind_speed_of_gust"
|
|
9187
|
+
]
|
|
9188
|
+
],
|
|
9189
|
+
values: [
|
|
9190
|
+
"air_pressure",
|
|
9191
|
+
"air_pressure_at_mean_sea_level",
|
|
9192
|
+
"air_temperature",
|
|
9193
|
+
"cloud_area_fraction",
|
|
9194
|
+
"cloud_base_altitude",
|
|
9195
|
+
"dew_point_temperature",
|
|
9196
|
+
"integral_wrt_time_of_surface_downwelling_shortwave_flux_in_air",
|
|
9197
|
+
"lwe_precipitation_rate",
|
|
9198
|
+
"predominant_precipitation_type_at_surface",
|
|
9199
|
+
"rainfall_amount",
|
|
9200
|
+
"relative_humidity",
|
|
9201
|
+
"soil_temperature",
|
|
9202
|
+
"surface_downwelling_shortwave_flux_in_air",
|
|
9203
|
+
"visibility_in_air",
|
|
9204
|
+
"wind_from_direction",
|
|
9205
|
+
"wind_speed",
|
|
9206
|
+
"wind_speed_of_gust"
|
|
9207
|
+
],
|
|
9208
|
+
reference: "https://vocab.nerc.ac.uk/standard_name/"
|
|
9209
|
+
}
|
|
9210
|
+
]
|
|
9211
|
+
};
|
|
9212
|
+
var data_queries = {
|
|
9213
|
+
position: {
|
|
9214
|
+
link: {
|
|
9215
|
+
href: "https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations/position",
|
|
9216
|
+
rel: "data",
|
|
9217
|
+
variables: {
|
|
9218
|
+
query_type: "position",
|
|
9219
|
+
output_formats: [
|
|
9220
|
+
"CoverageJSON",
|
|
9221
|
+
"netCDF4"
|
|
9222
|
+
],
|
|
9223
|
+
output_format: [
|
|
9224
|
+
"CoverageJSON"
|
|
9225
|
+
]
|
|
9226
|
+
}
|
|
9227
|
+
}
|
|
9228
|
+
},
|
|
9229
|
+
area: {
|
|
9230
|
+
link: {
|
|
9231
|
+
href: "https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations/area",
|
|
9232
|
+
rel: "data",
|
|
9233
|
+
variables: {
|
|
9234
|
+
query_type: "area",
|
|
9235
|
+
output_format: [
|
|
9236
|
+
"CoverageJSON"
|
|
9237
|
+
]
|
|
9238
|
+
}
|
|
9239
|
+
}
|
|
9240
|
+
},
|
|
9241
|
+
cube: {
|
|
9242
|
+
link: {
|
|
9243
|
+
href: "https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations/cube",
|
|
9244
|
+
rel: "data",
|
|
9245
|
+
variables: {
|
|
9246
|
+
query_type: "cube",
|
|
9247
|
+
output_formats: [
|
|
9248
|
+
"CoverageJSON",
|
|
9249
|
+
"netCDF4"
|
|
9250
|
+
],
|
|
9251
|
+
output_format: [
|
|
9252
|
+
"CoverageJSON"
|
|
9253
|
+
]
|
|
9254
|
+
}
|
|
9255
|
+
}
|
|
9256
|
+
},
|
|
9257
|
+
locations: {
|
|
9258
|
+
link: {
|
|
9259
|
+
href: "https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations/locations",
|
|
9260
|
+
rel: "data",
|
|
9261
|
+
variables: {
|
|
9262
|
+
query_type: "locations",
|
|
9263
|
+
output_formats: [
|
|
9264
|
+
"CoverageJSON",
|
|
9265
|
+
"netCDF4"
|
|
9266
|
+
],
|
|
9267
|
+
output_format: [
|
|
9268
|
+
"CoverageJSON"
|
|
9269
|
+
]
|
|
9270
|
+
}
|
|
9271
|
+
}
|
|
9272
|
+
}
|
|
9273
|
+
};
|
|
9274
|
+
var crs = [
|
|
9275
|
+
"WGS84"
|
|
9276
|
+
];
|
|
9277
|
+
var output_formats = [
|
|
9278
|
+
"CoverageJSON",
|
|
9279
|
+
"netCDF4"
|
|
9280
|
+
];
|
|
9281
|
+
var parameter_names = {
|
|
9282
|
+
D1H: {
|
|
9283
|
+
type: "Parameter",
|
|
9284
|
+
label: "Rainfall Duration in last Hour",
|
|
9285
|
+
description: "Past hour rainfall duration in minutes",
|
|
9286
|
+
"data-type": "float",
|
|
9287
|
+
unit: {
|
|
9288
|
+
label: "minute",
|
|
9289
|
+
symbol: {
|
|
9290
|
+
value: "min",
|
|
9291
|
+
type: "https://qudt.org/vocab/unit/MIN"
|
|
9292
|
+
}
|
|
9293
|
+
},
|
|
9294
|
+
observedProperty: {
|
|
9295
|
+
label: "Precipitation Duration",
|
|
9296
|
+
description: "Period during which more than 0.05 mm of precipitation was measured."
|
|
9297
|
+
},
|
|
9298
|
+
measurementType: {
|
|
9299
|
+
method: "sum",
|
|
9300
|
+
duration: "-PT1H"
|
|
9301
|
+
}
|
|
9302
|
+
},
|
|
9303
|
+
dd: {
|
|
9304
|
+
type: "Parameter",
|
|
9305
|
+
label: "Wind Direction Mean with MD",
|
|
9306
|
+
description: "Past 10 minute mean wind direction in degrees, measured at sensor height, with Marked Discontinuity (MD)",
|
|
9307
|
+
"data-type": "float",
|
|
9308
|
+
unit: {
|
|
9309
|
+
label: "degree",
|
|
9310
|
+
symbol: {
|
|
9311
|
+
value: "°",
|
|
9312
|
+
type: "https://qudt.org/vocab/unit/DEG"
|
|
9313
|
+
}
|
|
9314
|
+
},
|
|
9315
|
+
observedProperty: {
|
|
9316
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_from_direction/",
|
|
9317
|
+
label: "Wind from direction"
|
|
9318
|
+
},
|
|
9319
|
+
measurementType: {
|
|
9320
|
+
method: "mean",
|
|
9321
|
+
duration: "-PT10M"
|
|
9322
|
+
},
|
|
9323
|
+
"eumetnet:standard_name": "wind_from_direction"
|
|
9324
|
+
},
|
|
9325
|
+
dn: {
|
|
9326
|
+
type: "Parameter",
|
|
9327
|
+
label: "Wind Direction Minimum with MD",
|
|
9328
|
+
description: "Past 10 minute minimum wind direction in degrees, measured at sensor height, with Marked Discontinuity (MD)",
|
|
9329
|
+
"data-type": "float",
|
|
9330
|
+
unit: {
|
|
9331
|
+
label: "degree",
|
|
9332
|
+
symbol: {
|
|
9333
|
+
value: "°",
|
|
9334
|
+
type: "https://qudt.org/vocab/unit/DEG"
|
|
9335
|
+
}
|
|
9336
|
+
},
|
|
9337
|
+
observedProperty: {
|
|
9338
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_from_direction/",
|
|
9339
|
+
label: "Wind from direction"
|
|
9340
|
+
},
|
|
9341
|
+
measurementType: {
|
|
9342
|
+
method: "minimum",
|
|
9343
|
+
duration: "-PT10M"
|
|
9344
|
+
},
|
|
9345
|
+
"eumetnet:standard_name": "wind_from_direction"
|
|
9346
|
+
},
|
|
9347
|
+
dr: {
|
|
9348
|
+
type: "Parameter",
|
|
9349
|
+
label: "Precipitation Duration (Rain Gauge)",
|
|
9350
|
+
description: "Past 10 minute duration of precipitation in seconds, measured by rain gauge",
|
|
9351
|
+
"data-type": "float",
|
|
9352
|
+
unit: {
|
|
9353
|
+
label: "second",
|
|
9354
|
+
symbol: {
|
|
9355
|
+
value: "s",
|
|
9356
|
+
type: "https://qudt.org/vocab/unit/SEC"
|
|
9357
|
+
}
|
|
9358
|
+
},
|
|
9359
|
+
observedProperty: {
|
|
9360
|
+
label: "Precipitation Duration",
|
|
9361
|
+
description: "Period during which more than 0.05 mm of precipitation was measured."
|
|
9362
|
+
},
|
|
9363
|
+
measurementType: {
|
|
9364
|
+
method: "N/A",
|
|
9365
|
+
duration: "-PT10M"
|
|
9366
|
+
}
|
|
9367
|
+
},
|
|
9368
|
+
dsd: {
|
|
9369
|
+
type: "Parameter",
|
|
9370
|
+
label: "Wind Direction Std Dev with MD",
|
|
9371
|
+
description: "Past 10 minute standard deviation of wind direction in degrees, measured at sensor height, with Marked Discontinuity (MD)",
|
|
9372
|
+
"data-type": "float",
|
|
9373
|
+
unit: {
|
|
9374
|
+
label: "degree",
|
|
9375
|
+
symbol: {
|
|
9376
|
+
value: "°",
|
|
9377
|
+
type: "https://qudt.org/vocab/unit/DEG"
|
|
9378
|
+
}
|
|
9379
|
+
},
|
|
9380
|
+
observedProperty: {
|
|
9381
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_from_direction/",
|
|
9382
|
+
label: "Wind from direction"
|
|
9383
|
+
},
|
|
9384
|
+
measurementType: {
|
|
9385
|
+
method: "stddev",
|
|
9386
|
+
duration: "-PT10M"
|
|
9387
|
+
},
|
|
9388
|
+
"eumetnet:standard_name": "wind_from_direction"
|
|
9389
|
+
},
|
|
9390
|
+
dx: {
|
|
9391
|
+
type: "Parameter",
|
|
9392
|
+
label: "Wind Direction Maximum with MD",
|
|
9393
|
+
description: "Past 10 minute maximum wind direction in degrees, measured at sensor height, with Marked Discontinuity (MD)",
|
|
9394
|
+
"data-type": "float",
|
|
9395
|
+
unit: {
|
|
9396
|
+
label: "degree",
|
|
9397
|
+
symbol: {
|
|
9398
|
+
value: "°",
|
|
9399
|
+
type: "https://qudt.org/vocab/unit/DEG"
|
|
9400
|
+
}
|
|
9401
|
+
},
|
|
9402
|
+
observedProperty: {
|
|
9403
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_from_direction/",
|
|
9404
|
+
label: "Wind from direction"
|
|
9405
|
+
},
|
|
9406
|
+
measurementType: {
|
|
9407
|
+
method: "maximum",
|
|
9408
|
+
duration: "-PT10M"
|
|
9409
|
+
},
|
|
9410
|
+
"eumetnet:standard_name": "wind_from_direction"
|
|
9411
|
+
},
|
|
9412
|
+
ff: {
|
|
9413
|
+
type: "Parameter",
|
|
9414
|
+
label: "Wind Speed at 10 m Mean with MD",
|
|
9415
|
+
description: "Past 10 minute mean wind speed, representative for 10 meters, in meters per second, with Marked Discontinuity (MD)",
|
|
9416
|
+
"data-type": "float",
|
|
9417
|
+
unit: {
|
|
9418
|
+
label: "meter per second",
|
|
9419
|
+
symbol: {
|
|
9420
|
+
value: "m/s",
|
|
9421
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
9422
|
+
}
|
|
9423
|
+
},
|
|
9424
|
+
observedProperty: {
|
|
9425
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed/",
|
|
9426
|
+
label: "Wind speed"
|
|
9427
|
+
},
|
|
9428
|
+
measurementType: {
|
|
9429
|
+
method: "mean",
|
|
9430
|
+
duration: "-PT10M"
|
|
9431
|
+
},
|
|
9432
|
+
"eumetnet:standard_name": "wind_speed",
|
|
9433
|
+
"eumetnet:level": 10
|
|
9434
|
+
},
|
|
9435
|
+
ffs: {
|
|
9436
|
+
type: "Parameter",
|
|
9437
|
+
label: "Wind Speed Sensor Mean with MD",
|
|
9438
|
+
description: "Past 10 minute mean wind speed, measured at sensor height, in meters per second, with Marked Discontinuity (MD)",
|
|
9439
|
+
"data-type": "float",
|
|
9440
|
+
unit: {
|
|
9441
|
+
label: "meter per second",
|
|
9442
|
+
symbol: {
|
|
9443
|
+
value: "m/s",
|
|
9444
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
9445
|
+
}
|
|
9446
|
+
},
|
|
9447
|
+
observedProperty: {
|
|
9448
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed/",
|
|
9449
|
+
label: "Wind speed"
|
|
9450
|
+
},
|
|
9451
|
+
measurementType: {
|
|
9452
|
+
method: "mean",
|
|
9453
|
+
duration: "-PT10M"
|
|
9454
|
+
},
|
|
9455
|
+
"eumetnet:standard_name": "wind_speed"
|
|
9456
|
+
},
|
|
9457
|
+
fsd: {
|
|
9458
|
+
type: "Parameter",
|
|
9459
|
+
label: "Wind Speed Std Dev with MD",
|
|
9460
|
+
description: "Past 10 minute standard deviation of wind speed, measured at sensor height, in meters per second, with Marked Discontinuity (MD)",
|
|
9461
|
+
"data-type": "float",
|
|
9462
|
+
unit: {
|
|
9463
|
+
label: "meter per second",
|
|
9464
|
+
symbol: {
|
|
9465
|
+
value: "m/s",
|
|
9466
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
9467
|
+
}
|
|
9468
|
+
},
|
|
9469
|
+
observedProperty: {
|
|
9470
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed/",
|
|
9471
|
+
label: "Wind speed"
|
|
9472
|
+
},
|
|
9473
|
+
measurementType: {
|
|
9474
|
+
method: "stddev",
|
|
9475
|
+
duration: "-PT10M"
|
|
9476
|
+
},
|
|
9477
|
+
"eumetnet:standard_name": "wind_speed"
|
|
9478
|
+
},
|
|
9479
|
+
fx: {
|
|
9480
|
+
type: "Parameter",
|
|
9481
|
+
label: "Wind Gust at 10 m Maximum last Interval",
|
|
9482
|
+
description: "Past 19 minute maximum wind gust, representative for 10 meters, in meters per second",
|
|
9483
|
+
"data-type": "float",
|
|
9484
|
+
unit: {
|
|
9485
|
+
label: "meter per second",
|
|
9486
|
+
symbol: {
|
|
9487
|
+
value: "m/s",
|
|
9488
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
9489
|
+
}
|
|
9490
|
+
},
|
|
9491
|
+
observedProperty: {
|
|
9492
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed_of_gust/",
|
|
9493
|
+
label: "Wind speed of gust"
|
|
9494
|
+
},
|
|
9495
|
+
measurementType: {
|
|
9496
|
+
method: "maximum",
|
|
9497
|
+
duration: "-PT19M"
|
|
9498
|
+
},
|
|
9499
|
+
"eumetnet:standard_name": "wind_speed_of_gust",
|
|
9500
|
+
"eumetnet:level": 10
|
|
9501
|
+
},
|
|
9502
|
+
fxs: {
|
|
9503
|
+
type: "Parameter",
|
|
9504
|
+
label: "Wind Gust Sensor Maximum last Interval",
|
|
9505
|
+
description: "Past 19 minute maximum wind gust, measured at sensor height, in meters per second",
|
|
9506
|
+
"data-type": "float",
|
|
9507
|
+
unit: {
|
|
9508
|
+
label: "meter per second",
|
|
9509
|
+
symbol: {
|
|
9510
|
+
value: "m/s",
|
|
9511
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
9512
|
+
}
|
|
9513
|
+
},
|
|
9514
|
+
observedProperty: {
|
|
9515
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed_of_gust/",
|
|
9516
|
+
label: "Wind speed of gust"
|
|
9517
|
+
},
|
|
9518
|
+
measurementType: {
|
|
9519
|
+
method: "maximum",
|
|
9520
|
+
duration: "-PT19M"
|
|
9521
|
+
},
|
|
9522
|
+
"eumetnet:standard_name": "wind_speed_of_gust"
|
|
9523
|
+
},
|
|
9524
|
+
gff: {
|
|
9525
|
+
type: "Parameter",
|
|
9526
|
+
label: "Wind Gust at 10 m Maximum with MD",
|
|
9527
|
+
description: "Past 10 minute maximum wind gust, representative for 10 meters, in meters per second, with Marked Discontinuity (MD)",
|
|
9528
|
+
"data-type": "float",
|
|
9529
|
+
unit: {
|
|
9530
|
+
label: "meter per second",
|
|
9531
|
+
symbol: {
|
|
9532
|
+
value: "m/s",
|
|
9533
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
9534
|
+
}
|
|
9535
|
+
},
|
|
9536
|
+
observedProperty: {
|
|
9537
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed_of_gust/",
|
|
9538
|
+
label: "Wind speed of gust"
|
|
9539
|
+
},
|
|
9540
|
+
measurementType: {
|
|
9541
|
+
method: "maximum",
|
|
9542
|
+
duration: "-PT10M"
|
|
9543
|
+
},
|
|
9544
|
+
"eumetnet:standard_name": "wind_speed_of_gust",
|
|
9545
|
+
"eumetnet:level": 10
|
|
9546
|
+
},
|
|
9547
|
+
gffs: {
|
|
9548
|
+
type: "Parameter",
|
|
9549
|
+
label: "Wind Gust Sensor Maximum with MD",
|
|
9550
|
+
description: "Past 10 minute maximum wind gust, measured at sensor height, in meters per second, with Marked Discontinuity (MD)",
|
|
9551
|
+
"data-type": "float",
|
|
9552
|
+
unit: {
|
|
9553
|
+
label: "meter per second",
|
|
9554
|
+
symbol: {
|
|
9555
|
+
value: "m/s",
|
|
9556
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
9557
|
+
}
|
|
9558
|
+
},
|
|
9559
|
+
observedProperty: {
|
|
9560
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed_of_gust/",
|
|
9561
|
+
label: "Wind speed of gust"
|
|
9562
|
+
},
|
|
9563
|
+
measurementType: {
|
|
9564
|
+
method: "maximum",
|
|
9565
|
+
duration: "-PT10M"
|
|
9566
|
+
},
|
|
9567
|
+
"eumetnet:standard_name": "wind_speed_of_gust"
|
|
9568
|
+
},
|
|
9569
|
+
h: {
|
|
9570
|
+
type: "Parameter",
|
|
9571
|
+
label: "Cloud Base",
|
|
9572
|
+
description: "Past 10 minute cloud base altitude, in feet",
|
|
9573
|
+
"data-type": "float",
|
|
9574
|
+
unit: {
|
|
9575
|
+
label: "foot",
|
|
9576
|
+
symbol: {
|
|
9577
|
+
value: "ft",
|
|
9578
|
+
type: "https://qudt.org/vocab/unit/FT"
|
|
9579
|
+
}
|
|
9580
|
+
},
|
|
9581
|
+
observedProperty: {
|
|
9582
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_base_altitude/",
|
|
9583
|
+
label: "Cloud base altitude"
|
|
9584
|
+
},
|
|
9585
|
+
measurementType: {
|
|
9586
|
+
method: "N/A",
|
|
9587
|
+
duration: "-PT10M"
|
|
9588
|
+
},
|
|
9589
|
+
"eumetnet:standard_name": "cloud_base_altitude"
|
|
9590
|
+
},
|
|
9591
|
+
h1: {
|
|
9592
|
+
type: "Parameter",
|
|
9593
|
+
label: "Cloud Base First Layer",
|
|
9594
|
+
description: "Past 10 minute first layer cloud base altitude, in feet",
|
|
9595
|
+
"data-type": "float",
|
|
9596
|
+
unit: {
|
|
9597
|
+
label: "foot",
|
|
9598
|
+
symbol: {
|
|
9599
|
+
value: "ft",
|
|
9600
|
+
type: "https://qudt.org/vocab/unit/FT"
|
|
9601
|
+
}
|
|
9602
|
+
},
|
|
9603
|
+
observedProperty: {
|
|
9604
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_base_altitude/",
|
|
9605
|
+
label: "Cloud base altitude"
|
|
9606
|
+
},
|
|
9607
|
+
measurementType: {
|
|
9608
|
+
method: "N/A",
|
|
9609
|
+
duration: "-PT10M"
|
|
9610
|
+
},
|
|
9611
|
+
"eumetnet:standard_name": "cloud_base_altitude"
|
|
9612
|
+
},
|
|
9613
|
+
h2: {
|
|
9614
|
+
type: "Parameter",
|
|
9615
|
+
label: "Cloud Base Second Layer",
|
|
9616
|
+
description: "Past 10 minute second layer cloud base altitude, in feet",
|
|
9617
|
+
"data-type": "float",
|
|
9618
|
+
unit: {
|
|
9619
|
+
label: "foot",
|
|
9620
|
+
symbol: {
|
|
9621
|
+
value: "ft",
|
|
9622
|
+
type: "https://qudt.org/vocab/unit/FT"
|
|
9623
|
+
}
|
|
9624
|
+
},
|
|
9625
|
+
observedProperty: {
|
|
9626
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_base_altitude/",
|
|
9627
|
+
label: "Cloud base altitude"
|
|
9628
|
+
},
|
|
9629
|
+
measurementType: {
|
|
9630
|
+
method: "N/A",
|
|
9631
|
+
duration: "-PT10M"
|
|
9632
|
+
},
|
|
9633
|
+
"eumetnet:standard_name": "cloud_base_altitude"
|
|
9634
|
+
},
|
|
9635
|
+
h3: {
|
|
9636
|
+
type: "Parameter",
|
|
9637
|
+
label: "Cloud Base Third Layer",
|
|
9638
|
+
description: "Past 10 minute third layer cloud base altitude, in feet",
|
|
9639
|
+
"data-type": "float",
|
|
9640
|
+
unit: {
|
|
9641
|
+
label: "foot",
|
|
9642
|
+
symbol: {
|
|
9643
|
+
value: "ft",
|
|
9644
|
+
type: "https://qudt.org/vocab/unit/FT"
|
|
9645
|
+
}
|
|
9646
|
+
},
|
|
9647
|
+
observedProperty: {
|
|
9648
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_base_altitude/",
|
|
9649
|
+
label: "Cloud base altitude"
|
|
9650
|
+
},
|
|
9651
|
+
measurementType: {
|
|
9652
|
+
method: "N/A",
|
|
9653
|
+
duration: "-PT10M"
|
|
9654
|
+
},
|
|
9655
|
+
"eumetnet:standard_name": "cloud_base_altitude"
|
|
9656
|
+
},
|
|
9657
|
+
hc: {
|
|
9658
|
+
type: "Parameter",
|
|
9659
|
+
label: "Cloud Base Ceilometer",
|
|
9660
|
+
description: "Past 10 minute cloud base ceilometer, in feet",
|
|
9661
|
+
"data-type": "float",
|
|
9662
|
+
unit: {
|
|
9663
|
+
label: "foot",
|
|
9664
|
+
symbol: {
|
|
9665
|
+
value: "ft",
|
|
9666
|
+
type: "https://qudt.org/vocab/unit/FT"
|
|
9667
|
+
}
|
|
9668
|
+
},
|
|
9669
|
+
observedProperty: {
|
|
9670
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_base_altitude/",
|
|
9671
|
+
label: "Cloud base altitude"
|
|
9672
|
+
},
|
|
9673
|
+
measurementType: {
|
|
9674
|
+
method: "N/A",
|
|
9675
|
+
duration: "-PT10M"
|
|
9676
|
+
},
|
|
9677
|
+
"eumetnet:standard_name": "cloud_base_altitude"
|
|
9678
|
+
},
|
|
9679
|
+
hc1: {
|
|
9680
|
+
type: "Parameter",
|
|
9681
|
+
label: "Cloud Base Ceilometer First Layer",
|
|
9682
|
+
description: "Past 10 minute first layer cloud base ceilometer, in feet",
|
|
9683
|
+
"data-type": "float",
|
|
9684
|
+
unit: {
|
|
9685
|
+
label: "foot",
|
|
9686
|
+
symbol: {
|
|
9687
|
+
value: "ft",
|
|
9688
|
+
type: "https://qudt.org/vocab/unit/FT"
|
|
9689
|
+
}
|
|
9690
|
+
},
|
|
9691
|
+
observedProperty: {
|
|
9692
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_base_altitude/",
|
|
9693
|
+
label: "Cloud base altitude"
|
|
9694
|
+
},
|
|
9695
|
+
measurementType: {
|
|
9696
|
+
method: "N/A",
|
|
9697
|
+
duration: "-PT10M"
|
|
9698
|
+
},
|
|
9699
|
+
"eumetnet:standard_name": "cloud_base_altitude"
|
|
9700
|
+
},
|
|
9701
|
+
hc2: {
|
|
9702
|
+
type: "Parameter",
|
|
9703
|
+
label: "Cloud Base Ceilometer Second Layer",
|
|
9704
|
+
description: "Past 10 minute second layer cloud base ceilometer, in feet",
|
|
9705
|
+
"data-type": "float",
|
|
9706
|
+
unit: {
|
|
9707
|
+
label: "foot",
|
|
9708
|
+
symbol: {
|
|
9709
|
+
value: "ft",
|
|
9710
|
+
type: "https://qudt.org/vocab/unit/FT"
|
|
9711
|
+
}
|
|
9712
|
+
},
|
|
9713
|
+
observedProperty: {
|
|
9714
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_base_altitude/",
|
|
9715
|
+
label: "Cloud base altitude"
|
|
9716
|
+
},
|
|
9717
|
+
measurementType: {
|
|
9718
|
+
method: "N/A",
|
|
9719
|
+
duration: "-PT10M"
|
|
9720
|
+
},
|
|
9721
|
+
"eumetnet:standard_name": "cloud_base_altitude"
|
|
9722
|
+
},
|
|
9723
|
+
hc3: {
|
|
9724
|
+
type: "Parameter",
|
|
9725
|
+
label: "Cloud Base Ceilometer Third Layer",
|
|
9726
|
+
description: "Past 10 minute third layer cloud base ceilometer, in feet",
|
|
9727
|
+
"data-type": "float",
|
|
9728
|
+
unit: {
|
|
9729
|
+
label: "foot",
|
|
9730
|
+
symbol: {
|
|
9731
|
+
value: "ft",
|
|
9732
|
+
type: "https://qudt.org/vocab/unit/FT"
|
|
9733
|
+
}
|
|
9734
|
+
},
|
|
9735
|
+
observedProperty: {
|
|
9736
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_base_altitude/",
|
|
9737
|
+
label: "Cloud base altitude"
|
|
9738
|
+
},
|
|
9739
|
+
measurementType: {
|
|
9740
|
+
method: "N/A",
|
|
9741
|
+
duration: "-PT10M"
|
|
9742
|
+
},
|
|
9743
|
+
"eumetnet:standard_name": "cloud_base_altitude"
|
|
9744
|
+
},
|
|
9745
|
+
n: {
|
|
9746
|
+
type: "Parameter",
|
|
9747
|
+
label: "Total Cloud Cover",
|
|
9748
|
+
description: "Past 10 minute total cloud cover, in okta",
|
|
9749
|
+
"data-type": "float",
|
|
9750
|
+
unit: {
|
|
9751
|
+
label: "okta",
|
|
9752
|
+
symbol: {
|
|
9753
|
+
value: "okta",
|
|
9754
|
+
type: "https://qudt.org/vocab/unit/OKTA"
|
|
9755
|
+
}
|
|
9756
|
+
},
|
|
9757
|
+
observedProperty: {
|
|
9758
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_area_fraction/",
|
|
9759
|
+
label: "Cloud area fraction"
|
|
9760
|
+
},
|
|
9761
|
+
measurementType: {
|
|
9762
|
+
method: "N/A",
|
|
9763
|
+
duration: "-PT10M"
|
|
9764
|
+
},
|
|
9765
|
+
"eumetnet:standard_name": "cloud_area_fraction"
|
|
9766
|
+
},
|
|
9767
|
+
n1: {
|
|
9768
|
+
type: "Parameter",
|
|
9769
|
+
label: "Cloud Amount First Layer",
|
|
9770
|
+
description: "Past 10 minute first layer cloud amount, in okta",
|
|
9771
|
+
"data-type": "float",
|
|
9772
|
+
unit: {
|
|
9773
|
+
label: "okta",
|
|
9774
|
+
symbol: {
|
|
9775
|
+
value: "okta",
|
|
9776
|
+
type: "https://qudt.org/vocab/unit/OKTA"
|
|
9777
|
+
}
|
|
9778
|
+
},
|
|
9779
|
+
observedProperty: {
|
|
9780
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_area_fraction/",
|
|
9781
|
+
label: "Cloud area fraction"
|
|
9782
|
+
},
|
|
9783
|
+
measurementType: {
|
|
9784
|
+
method: "N/A",
|
|
9785
|
+
duration: "-PT10M"
|
|
9786
|
+
},
|
|
9787
|
+
"eumetnet:standard_name": "cloud_area_fraction"
|
|
9788
|
+
},
|
|
9789
|
+
n2: {
|
|
9790
|
+
type: "Parameter",
|
|
9791
|
+
label: "Cloud Amount Second Layer",
|
|
9792
|
+
description: "Past 10 minute second layer cloud amount, in okta",
|
|
9793
|
+
"data-type": "float",
|
|
9794
|
+
unit: {
|
|
9795
|
+
label: "okta",
|
|
9796
|
+
symbol: {
|
|
9797
|
+
value: "okta",
|
|
9798
|
+
type: "https://qudt.org/vocab/unit/OKTA"
|
|
9799
|
+
}
|
|
9800
|
+
},
|
|
9801
|
+
observedProperty: {
|
|
9802
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_area_fraction/",
|
|
9803
|
+
label: "Cloud area fraction"
|
|
9804
|
+
},
|
|
9805
|
+
measurementType: {
|
|
9806
|
+
method: "N/A",
|
|
9807
|
+
duration: "-PT10M"
|
|
9808
|
+
},
|
|
9809
|
+
"eumetnet:standard_name": "cloud_area_fraction"
|
|
9810
|
+
},
|
|
9811
|
+
n3: {
|
|
9812
|
+
type: "Parameter",
|
|
9813
|
+
label: "Cloud Amount Third Layer",
|
|
9814
|
+
description: "Past 10 minute third layer cloud amount, in okta",
|
|
9815
|
+
"data-type": "float",
|
|
9816
|
+
unit: {
|
|
9817
|
+
label: "okta",
|
|
9818
|
+
symbol: {
|
|
9819
|
+
value: "okta",
|
|
9820
|
+
type: "https://qudt.org/vocab/unit/OKTA"
|
|
9821
|
+
}
|
|
9822
|
+
},
|
|
9823
|
+
observedProperty: {
|
|
9824
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_area_fraction/",
|
|
9825
|
+
label: "Cloud area fraction"
|
|
9826
|
+
},
|
|
9827
|
+
measurementType: {
|
|
9828
|
+
method: "N/A",
|
|
9829
|
+
duration: "-PT10M"
|
|
9830
|
+
},
|
|
9831
|
+
"eumetnet:standard_name": "cloud_area_fraction"
|
|
9832
|
+
},
|
|
9833
|
+
nc: {
|
|
9834
|
+
type: "Parameter",
|
|
9835
|
+
label: "Total Cloud Cover Ceilometer",
|
|
9836
|
+
description: "Past 10 minute total cloud cover ceilometer, in okta",
|
|
9837
|
+
"data-type": "float",
|
|
9838
|
+
unit: {
|
|
9839
|
+
label: "okta",
|
|
9840
|
+
symbol: {
|
|
9841
|
+
value: "okta",
|
|
9842
|
+
type: "https://qudt.org/vocab/unit/OKTA"
|
|
9843
|
+
}
|
|
9844
|
+
},
|
|
9845
|
+
observedProperty: {
|
|
9846
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_area_fraction/",
|
|
9847
|
+
label: "Cloud area fraction"
|
|
9848
|
+
},
|
|
9849
|
+
measurementType: {
|
|
9850
|
+
method: "N/A",
|
|
9851
|
+
duration: "-PT10M"
|
|
9852
|
+
},
|
|
9853
|
+
"eumetnet:standard_name": "cloud_area_fraction"
|
|
9854
|
+
},
|
|
9855
|
+
nc1: {
|
|
9856
|
+
type: "Parameter",
|
|
9857
|
+
label: "Cloud Amount Ceilometer First Layer",
|
|
9858
|
+
description: "Past 10 minute first layer cloud amount ceilometer, in okta",
|
|
9859
|
+
"data-type": "float",
|
|
9860
|
+
unit: {
|
|
9861
|
+
label: "okta",
|
|
9862
|
+
symbol: {
|
|
9863
|
+
value: "okta",
|
|
9864
|
+
type: "https://qudt.org/vocab/unit/OKTA"
|
|
9865
|
+
}
|
|
9866
|
+
},
|
|
9867
|
+
observedProperty: {
|
|
9868
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_area_fraction/",
|
|
9869
|
+
label: "Cloud area fraction"
|
|
9870
|
+
},
|
|
9871
|
+
measurementType: {
|
|
9872
|
+
method: "N/A",
|
|
9873
|
+
duration: "-PT10M"
|
|
9874
|
+
},
|
|
9875
|
+
"eumetnet:standard_name": "cloud_area_fraction"
|
|
9876
|
+
},
|
|
9877
|
+
nc2: {
|
|
9878
|
+
type: "Parameter",
|
|
9879
|
+
label: "Cloud Amount Ceilometer Second Layer",
|
|
9880
|
+
description: "Past 10 minute second layer cloud amount ceilometer, in okta",
|
|
9881
|
+
"data-type": "float",
|
|
9882
|
+
unit: {
|
|
9883
|
+
label: "okta",
|
|
9884
|
+
symbol: {
|
|
9885
|
+
value: "okta",
|
|
9886
|
+
type: "https://qudt.org/vocab/unit/OKTA"
|
|
9887
|
+
}
|
|
9888
|
+
},
|
|
9889
|
+
observedProperty: {
|
|
9890
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_area_fraction/",
|
|
9891
|
+
label: "Cloud area fraction"
|
|
9892
|
+
},
|
|
9893
|
+
measurementType: {
|
|
9894
|
+
method: "N/A",
|
|
9895
|
+
duration: "-PT10M"
|
|
9896
|
+
},
|
|
9897
|
+
"eumetnet:standard_name": "cloud_area_fraction"
|
|
9898
|
+
},
|
|
9899
|
+
nc3: {
|
|
9900
|
+
type: "Parameter",
|
|
9901
|
+
label: "Cloud Amount Ceilometer Third Layer",
|
|
9902
|
+
description: "Past 10 minute third layer cloud amount ceilometer, in okta",
|
|
9903
|
+
"data-type": "float",
|
|
9904
|
+
unit: {
|
|
9905
|
+
label: "okta",
|
|
9906
|
+
symbol: {
|
|
9907
|
+
value: "okta",
|
|
9908
|
+
type: "https://qudt.org/vocab/unit/OKTA"
|
|
9909
|
+
}
|
|
9910
|
+
},
|
|
9911
|
+
observedProperty: {
|
|
9912
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_area_fraction/",
|
|
9913
|
+
label: "Cloud area fraction"
|
|
9914
|
+
},
|
|
9915
|
+
measurementType: {
|
|
9916
|
+
method: "N/A",
|
|
9917
|
+
duration: "-PT10M"
|
|
9918
|
+
},
|
|
9919
|
+
"eumetnet:standard_name": "cloud_area_fraction"
|
|
9920
|
+
},
|
|
9921
|
+
nhc: {
|
|
9922
|
+
type: "Parameter",
|
|
9923
|
+
label: "Low and Middle Cloud Amount Ceilometer",
|
|
9924
|
+
description: "Past 10 minute low and middle cloud amount ceilometer, in okta",
|
|
9925
|
+
"data-type": "float",
|
|
9926
|
+
unit: {
|
|
9927
|
+
label: "okta",
|
|
9928
|
+
symbol: {
|
|
9929
|
+
value: "okta",
|
|
9930
|
+
type: "https://qudt.org/vocab/unit/OKTA"
|
|
9931
|
+
}
|
|
9932
|
+
},
|
|
9933
|
+
observedProperty: {
|
|
9934
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_area_fraction/",
|
|
9935
|
+
label: "Cloud area fraction"
|
|
9936
|
+
},
|
|
9937
|
+
measurementType: {
|
|
9938
|
+
method: "N/A",
|
|
9939
|
+
duration: "-PT10M"
|
|
9940
|
+
},
|
|
9941
|
+
"eumetnet:standard_name": "cloud_area_fraction"
|
|
9942
|
+
},
|
|
9943
|
+
p0: {
|
|
9944
|
+
type: "Parameter",
|
|
9945
|
+
label: "Air Pressure at Station Level 1 Min Mean",
|
|
9946
|
+
description: "Past minute mean air pressure at station level",
|
|
9947
|
+
"data-type": "float",
|
|
9948
|
+
unit: {
|
|
9949
|
+
label: "hectopascal",
|
|
9950
|
+
symbol: {
|
|
9951
|
+
value: "hPa",
|
|
9952
|
+
type: "https://qudt.org/vocab/unit/HectoPA"
|
|
9953
|
+
}
|
|
9954
|
+
},
|
|
9955
|
+
observedProperty: {
|
|
9956
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_pressure/",
|
|
9957
|
+
label: "Air pressure"
|
|
9958
|
+
},
|
|
9959
|
+
measurementType: {
|
|
9960
|
+
method: "mean",
|
|
9961
|
+
duration: "-PT1M"
|
|
9962
|
+
},
|
|
9963
|
+
"eumetnet:standard_name": "air_pressure"
|
|
9964
|
+
},
|
|
9965
|
+
pg: {
|
|
9966
|
+
type: "Parameter",
|
|
9967
|
+
label: "Precipitation Intensity (Present Weather Sensor) Mean",
|
|
9968
|
+
description: "Past 10 minute mean precipitation intensity in millimeters per hour, measured by Present Weather Sensor",
|
|
9969
|
+
"data-type": "float",
|
|
9970
|
+
unit: {
|
|
9971
|
+
label: "millimeter per hour",
|
|
9972
|
+
symbol: {
|
|
9973
|
+
value: "mm/h",
|
|
9974
|
+
type: "https://qudt.org/vocab/unit/MilliM-PER-HR"
|
|
9975
|
+
}
|
|
9976
|
+
},
|
|
9977
|
+
observedProperty: {
|
|
9978
|
+
id: "https://vocab.nerc.ac.uk/standard_name/lwe_precipitation_rate/",
|
|
9979
|
+
label: "Lwe precipitation rate"
|
|
9980
|
+
},
|
|
9981
|
+
measurementType: {
|
|
9982
|
+
method: "mean",
|
|
9983
|
+
duration: "-PT10M"
|
|
9984
|
+
},
|
|
9985
|
+
"eumetnet:standard_name": "lwe_precipitation_rate"
|
|
9986
|
+
},
|
|
9987
|
+
pp: {
|
|
9988
|
+
type: "Parameter",
|
|
9989
|
+
label: "Air Pressure at Mean Sea Level 1 Min Mean",
|
|
9990
|
+
description: "Past minute mean air pressure at mean sea level in hectopascal",
|
|
9991
|
+
"data-type": "float",
|
|
9992
|
+
unit: {
|
|
9993
|
+
label: "hectopascal",
|
|
9994
|
+
symbol: {
|
|
9995
|
+
value: "hPa",
|
|
9996
|
+
type: "https://qudt.org/vocab/unit/HectoPA"
|
|
9997
|
+
}
|
|
9998
|
+
},
|
|
9999
|
+
observedProperty: {
|
|
10000
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_pressure_at_mean_sea_level/",
|
|
10001
|
+
label: "Air pressure at mean sea level"
|
|
10002
|
+
},
|
|
10003
|
+
measurementType: {
|
|
10004
|
+
method: "mean",
|
|
10005
|
+
duration: "-PT1M"
|
|
10006
|
+
},
|
|
10007
|
+
"eumetnet:standard_name": "air_pressure_at_mean_sea_level"
|
|
10008
|
+
},
|
|
10009
|
+
pr: {
|
|
10010
|
+
type: "Parameter",
|
|
10011
|
+
label: "Precipitation Duration (Present Weather Sensor)",
|
|
10012
|
+
description: "Past 10 minute duration of precipitation in seconds, measured by Present Weather Sensor",
|
|
10013
|
+
"data-type": "float",
|
|
10014
|
+
unit: {
|
|
10015
|
+
label: "second",
|
|
10016
|
+
symbol: {
|
|
10017
|
+
value: "s",
|
|
10018
|
+
type: "https://qudt.org/vocab/unit/SEC"
|
|
10019
|
+
}
|
|
10020
|
+
},
|
|
10021
|
+
observedProperty: {
|
|
10022
|
+
label: "Precipitation Duration",
|
|
10023
|
+
description: "Period during which more than 0.05 mm of precipitation was measured."
|
|
10024
|
+
},
|
|
10025
|
+
measurementType: {
|
|
10026
|
+
method: "N/A",
|
|
10027
|
+
duration: "-PT10M"
|
|
10028
|
+
}
|
|
10029
|
+
},
|
|
10030
|
+
ps: {
|
|
10031
|
+
type: "Parameter",
|
|
10032
|
+
label: "Air Pressure at Sensor Level Mean",
|
|
10033
|
+
description: "Past 10 minute mean air pressure at sensor level in hectopascal",
|
|
10034
|
+
"data-type": "float",
|
|
10035
|
+
unit: {
|
|
10036
|
+
label: "hectopascal",
|
|
10037
|
+
symbol: {
|
|
10038
|
+
value: "hPa",
|
|
10039
|
+
type: "https://qudt.org/vocab/unit/HectoPA"
|
|
10040
|
+
}
|
|
10041
|
+
},
|
|
10042
|
+
observedProperty: {
|
|
10043
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_pressure/",
|
|
10044
|
+
label: "Air pressure"
|
|
10045
|
+
},
|
|
10046
|
+
measurementType: {
|
|
10047
|
+
method: "mean",
|
|
10048
|
+
duration: "-PT10M"
|
|
10049
|
+
},
|
|
10050
|
+
"eumetnet:standard_name": "air_pressure"
|
|
10051
|
+
},
|
|
10052
|
+
pwc: {
|
|
10053
|
+
type: "Parameter",
|
|
10054
|
+
label: "Corrected Precipitation Type Maximum",
|
|
10055
|
+
description: "Past 10 minute corrected maximum precipitation type; Handboek waarnemingen. 5.3 PW-code neerslagsoort; https://www.knmi.nl/kennis-en-datacentrum/publicatie/handboek-waarnemingen",
|
|
10056
|
+
"data-type": "integer",
|
|
10057
|
+
unit: {
|
|
10058
|
+
label: "unitless",
|
|
10059
|
+
symbol: {
|
|
10060
|
+
value: "一",
|
|
10061
|
+
type: "https://qudt.org/vocab/unit/UNITLESS"
|
|
10062
|
+
}
|
|
10063
|
+
},
|
|
10064
|
+
observedProperty: {
|
|
10065
|
+
id: "https://vocab.nerc.ac.uk/standard_name/predominant_precipitation_type_at_surface/",
|
|
10066
|
+
label: "Predominant precipitation type at surface"
|
|
10067
|
+
},
|
|
10068
|
+
measurementType: {
|
|
10069
|
+
method: "maximum",
|
|
10070
|
+
duration: "-PT10M"
|
|
10071
|
+
},
|
|
10072
|
+
"eumetnet:standard_name": "predominant_precipitation_type_at_surface"
|
|
10073
|
+
},
|
|
10074
|
+
Q1H: {
|
|
10075
|
+
type: "Parameter",
|
|
10076
|
+
label: "Global Radiation 1 Hour Sum",
|
|
10077
|
+
description: "Past hour sum of global radiation in the last hour, in joules per square centimeter",
|
|
10078
|
+
"data-type": "float",
|
|
10079
|
+
unit: {
|
|
10080
|
+
label: "joule per square centimeter",
|
|
10081
|
+
symbol: {
|
|
10082
|
+
value: "J/cm²",
|
|
10083
|
+
type: "https://qudt.org/vocab/unit/J-PER-CentiM2"
|
|
10084
|
+
}
|
|
10085
|
+
},
|
|
10086
|
+
observedProperty: {
|
|
10087
|
+
id: "https://vocab.nerc.ac.uk/standard_name/integral_wrt_time_of_surface_downwelling_shortwave_flux_in_air/",
|
|
10088
|
+
label: "Integral wrt time of surface downwelling shortwave flux in air"
|
|
10089
|
+
},
|
|
10090
|
+
measurementType: {
|
|
10091
|
+
method: "sum",
|
|
10092
|
+
duration: "-PT1H"
|
|
10093
|
+
},
|
|
10094
|
+
"eumetnet:standard_name": "integral_wrt_time_of_surface_downwelling_shortwave_flux_in_air"
|
|
10095
|
+
},
|
|
10096
|
+
Q24H: {
|
|
10097
|
+
type: "Parameter",
|
|
10098
|
+
label: "Global Radiation 24 Hour Sum",
|
|
10099
|
+
description: "Past 24 hour sum of global radiation, in joules per square centimeter",
|
|
10100
|
+
"data-type": "float",
|
|
10101
|
+
unit: {
|
|
10102
|
+
label: "joule per square centimeter",
|
|
10103
|
+
symbol: {
|
|
10104
|
+
value: "J/cm²",
|
|
10105
|
+
type: "https://qudt.org/vocab/unit/J-PER-CentiM2"
|
|
10106
|
+
}
|
|
10107
|
+
},
|
|
10108
|
+
observedProperty: {
|
|
10109
|
+
id: "https://vocab.nerc.ac.uk/standard_name/integral_wrt_time_of_surface_downwelling_shortwave_flux_in_air/",
|
|
10110
|
+
label: "Integral wrt time of surface downwelling shortwave flux in air"
|
|
10111
|
+
},
|
|
10112
|
+
measurementType: {
|
|
10113
|
+
method: "sum",
|
|
10114
|
+
duration: "-PT24H"
|
|
10115
|
+
},
|
|
10116
|
+
"eumetnet:standard_name": "integral_wrt_time_of_surface_downwelling_shortwave_flux_in_air"
|
|
10117
|
+
},
|
|
10118
|
+
qg: {
|
|
10119
|
+
type: "Parameter",
|
|
10120
|
+
label: "Global Solar Radiation Mean",
|
|
10121
|
+
description: "Past 10 minute mean global solar radiation in watt per square meter",
|
|
10122
|
+
"data-type": "float",
|
|
10123
|
+
unit: {
|
|
10124
|
+
label: "watt per square meter",
|
|
10125
|
+
symbol: {
|
|
10126
|
+
value: "W/m²",
|
|
10127
|
+
type: "https://qudt.org/vocab/unit/W-PER-M2"
|
|
10128
|
+
}
|
|
10129
|
+
},
|
|
10130
|
+
observedProperty: {
|
|
10131
|
+
id: "https://vocab.nerc.ac.uk/standard_name/surface_downwelling_shortwave_flux_in_air/",
|
|
10132
|
+
label: "Surface downwelling shortwave flux in air"
|
|
10133
|
+
},
|
|
10134
|
+
measurementType: {
|
|
10135
|
+
method: "mean",
|
|
10136
|
+
duration: "-PT10M"
|
|
10137
|
+
},
|
|
10138
|
+
"eumetnet:standard_name": "surface_downwelling_shortwave_flux_in_air"
|
|
10139
|
+
},
|
|
10140
|
+
qgn: {
|
|
10141
|
+
type: "Parameter",
|
|
10142
|
+
label: "Global Solar Radiation Minimum",
|
|
10143
|
+
description: "Past 10 minute minimum global solar radiation, in watt per square meter",
|
|
10144
|
+
"data-type": "float",
|
|
10145
|
+
unit: {
|
|
10146
|
+
label: "watt per square meter",
|
|
10147
|
+
symbol: {
|
|
10148
|
+
value: "W/m²",
|
|
10149
|
+
type: "https://qudt.org/vocab/unit/W-PER-M2"
|
|
10150
|
+
}
|
|
10151
|
+
},
|
|
10152
|
+
observedProperty: {
|
|
10153
|
+
id: "https://vocab.nerc.ac.uk/standard_name/surface_downwelling_shortwave_flux_in_air/",
|
|
10154
|
+
label: "Surface downwelling shortwave flux in air"
|
|
10155
|
+
},
|
|
10156
|
+
measurementType: {
|
|
10157
|
+
method: "minimum",
|
|
10158
|
+
duration: "-PT10M"
|
|
10159
|
+
},
|
|
10160
|
+
"eumetnet:standard_name": "surface_downwelling_shortwave_flux_in_air"
|
|
10161
|
+
},
|
|
10162
|
+
qgx: {
|
|
10163
|
+
type: "Parameter",
|
|
10164
|
+
label: "Global Solar Radiation Maximum",
|
|
10165
|
+
description: "Past 10 minute maximum global solar radiation, in watt per square meter",
|
|
10166
|
+
"data-type": "float",
|
|
10167
|
+
unit: {
|
|
10168
|
+
label: "watt per square meter",
|
|
10169
|
+
symbol: {
|
|
10170
|
+
value: "W/m²",
|
|
10171
|
+
type: "https://qudt.org/vocab/unit/W-PER-M2"
|
|
10172
|
+
}
|
|
10173
|
+
},
|
|
10174
|
+
observedProperty: {
|
|
10175
|
+
id: "https://vocab.nerc.ac.uk/standard_name/surface_downwelling_shortwave_flux_in_air/",
|
|
10176
|
+
label: "Surface downwelling shortwave flux in air"
|
|
10177
|
+
},
|
|
10178
|
+
measurementType: {
|
|
10179
|
+
method: "maximum",
|
|
10180
|
+
duration: "-PT10M"
|
|
10181
|
+
},
|
|
10182
|
+
"eumetnet:standard_name": "surface_downwelling_shortwave_flux_in_air"
|
|
10183
|
+
},
|
|
10184
|
+
qnh: {
|
|
10185
|
+
type: "Parameter",
|
|
10186
|
+
label: "QNH 1 Min Mean",
|
|
10187
|
+
description: "Past minute mean QNH, in hectopascal",
|
|
10188
|
+
"data-type": "float",
|
|
10189
|
+
unit: {
|
|
10190
|
+
label: "hectopascal",
|
|
10191
|
+
symbol: {
|
|
10192
|
+
value: "hPa",
|
|
10193
|
+
type: "https://qudt.org/vocab/unit/HectoPA"
|
|
10194
|
+
}
|
|
10195
|
+
},
|
|
10196
|
+
observedProperty: {
|
|
10197
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_pressure_at_mean_sea_level/",
|
|
10198
|
+
label: "Air pressure at mean sea level"
|
|
10199
|
+
},
|
|
10200
|
+
measurementType: {
|
|
10201
|
+
method: "mean",
|
|
10202
|
+
duration: "-PT1M"
|
|
10203
|
+
},
|
|
10204
|
+
"eumetnet:standard_name": "air_pressure_at_mean_sea_level"
|
|
10205
|
+
},
|
|
10206
|
+
R12H: {
|
|
10207
|
+
type: "Parameter",
|
|
10208
|
+
label: "Rainfall in last 12 Hours",
|
|
10209
|
+
description: "Past 12 hour rainfall, in millimeters",
|
|
10210
|
+
"data-type": "float",
|
|
10211
|
+
unit: {
|
|
10212
|
+
label: "millimeter",
|
|
10213
|
+
symbol: {
|
|
10214
|
+
value: "mm",
|
|
10215
|
+
type: "https://qudt.org/vocab/unit/MilliM"
|
|
10216
|
+
}
|
|
10217
|
+
},
|
|
10218
|
+
observedProperty: {
|
|
10219
|
+
id: "https://vocab.nerc.ac.uk/standard_name/rainfall_amount/",
|
|
10220
|
+
label: "Rainfall amount"
|
|
10221
|
+
},
|
|
10222
|
+
measurementType: {
|
|
10223
|
+
method: "sum",
|
|
10224
|
+
duration: "-PT12H"
|
|
10225
|
+
},
|
|
10226
|
+
"eumetnet:standard_name": "rainfall_amount"
|
|
10227
|
+
},
|
|
10228
|
+
R1H: {
|
|
10229
|
+
type: "Parameter",
|
|
10230
|
+
label: "Rainfall in last Hour",
|
|
10231
|
+
description: "Past hour rainfall, in millimeters",
|
|
10232
|
+
"data-type": "float",
|
|
10233
|
+
unit: {
|
|
10234
|
+
label: "millimeter",
|
|
10235
|
+
symbol: {
|
|
10236
|
+
value: "mm",
|
|
10237
|
+
type: "https://qudt.org/vocab/unit/MilliM"
|
|
10238
|
+
}
|
|
10239
|
+
},
|
|
10240
|
+
observedProperty: {
|
|
10241
|
+
id: "https://vocab.nerc.ac.uk/standard_name/rainfall_amount/",
|
|
10242
|
+
label: "Rainfall amount"
|
|
10243
|
+
},
|
|
10244
|
+
measurementType: {
|
|
10245
|
+
method: "sum",
|
|
10246
|
+
duration: "-PT1H"
|
|
10247
|
+
},
|
|
10248
|
+
"eumetnet:standard_name": "rainfall_amount"
|
|
10249
|
+
},
|
|
10250
|
+
R24H: {
|
|
10251
|
+
type: "Parameter",
|
|
10252
|
+
label: "Rainfall in last 24 Hours",
|
|
10253
|
+
description: "Past 24 hour rainfall, in millimeters",
|
|
10254
|
+
"data-type": "float",
|
|
10255
|
+
unit: {
|
|
10256
|
+
label: "millimeter",
|
|
10257
|
+
symbol: {
|
|
10258
|
+
value: "mm",
|
|
10259
|
+
type: "https://qudt.org/vocab/unit/MilliM"
|
|
10260
|
+
}
|
|
10261
|
+
},
|
|
10262
|
+
observedProperty: {
|
|
10263
|
+
id: "https://vocab.nerc.ac.uk/standard_name/rainfall_amount/",
|
|
10264
|
+
label: "Rainfall amount"
|
|
10265
|
+
},
|
|
10266
|
+
measurementType: {
|
|
10267
|
+
method: "sum",
|
|
10268
|
+
duration: "-PT24H"
|
|
10269
|
+
},
|
|
10270
|
+
"eumetnet:standard_name": "rainfall_amount"
|
|
10271
|
+
},
|
|
10272
|
+
R6H: {
|
|
10273
|
+
type: "Parameter",
|
|
10274
|
+
label: "Rainfall in last 6 Hours",
|
|
10275
|
+
description: "Past 6 hour rainfall, in millimeters",
|
|
10276
|
+
"data-type": "float",
|
|
10277
|
+
unit: {
|
|
10278
|
+
label: "millimeter",
|
|
10279
|
+
symbol: {
|
|
10280
|
+
value: "mm",
|
|
10281
|
+
type: "https://qudt.org/vocab/unit/MilliM"
|
|
10282
|
+
}
|
|
10283
|
+
},
|
|
10284
|
+
observedProperty: {
|
|
10285
|
+
id: "https://vocab.nerc.ac.uk/standard_name/rainfall_amount/",
|
|
10286
|
+
label: "Rainfall amount"
|
|
10287
|
+
},
|
|
10288
|
+
measurementType: {
|
|
10289
|
+
method: "sum",
|
|
10290
|
+
duration: "-PT6H"
|
|
10291
|
+
},
|
|
10292
|
+
"eumetnet:standard_name": "rainfall_amount"
|
|
10293
|
+
},
|
|
10294
|
+
rg: {
|
|
10295
|
+
type: "Parameter",
|
|
10296
|
+
label: "Precipitation Intensity (Rain Gauge) Mean",
|
|
10297
|
+
description: "Past 10 minute mean precipitation intensity in millimeters per hour, measured by rain gauge",
|
|
10298
|
+
"data-type": "float",
|
|
10299
|
+
unit: {
|
|
10300
|
+
label: "millimeter per hour",
|
|
10301
|
+
symbol: {
|
|
10302
|
+
value: "mm/h",
|
|
10303
|
+
type: "https://qudt.org/vocab/unit/MilliM-PER-HR"
|
|
10304
|
+
}
|
|
10305
|
+
},
|
|
10306
|
+
observedProperty: {
|
|
10307
|
+
id: "https://vocab.nerc.ac.uk/standard_name/lwe_precipitation_rate/",
|
|
10308
|
+
label: "Lwe precipitation rate"
|
|
10309
|
+
},
|
|
10310
|
+
measurementType: {
|
|
10311
|
+
method: "mean",
|
|
10312
|
+
duration: "-PT10M"
|
|
10313
|
+
},
|
|
10314
|
+
"eumetnet:standard_name": "lwe_precipitation_rate"
|
|
10315
|
+
},
|
|
10316
|
+
rh: {
|
|
10317
|
+
type: "Parameter",
|
|
10318
|
+
label: "Relative Humidity 1.50 m 1 Min Mean",
|
|
10319
|
+
description: "Past minute mean relative humidity at 1.50 meters, in percentage",
|
|
10320
|
+
"data-type": "float",
|
|
10321
|
+
unit: {
|
|
10322
|
+
label: "percent",
|
|
10323
|
+
symbol: {
|
|
10324
|
+
value: "%",
|
|
10325
|
+
type: "https://qudt.org/vocab/unit/PERCENT"
|
|
10326
|
+
}
|
|
10327
|
+
},
|
|
10328
|
+
observedProperty: {
|
|
10329
|
+
id: "https://vocab.nerc.ac.uk/standard_name/relative_humidity/",
|
|
10330
|
+
label: "Relative humidity"
|
|
10331
|
+
},
|
|
10332
|
+
measurementType: {
|
|
10333
|
+
method: "mean",
|
|
10334
|
+
duration: "-PT1M"
|
|
10335
|
+
},
|
|
10336
|
+
"eumetnet:standard_name": "relative_humidity",
|
|
10337
|
+
"eumetnet:level": 1.5
|
|
10338
|
+
},
|
|
10339
|
+
rh10: {
|
|
10340
|
+
type: "Parameter",
|
|
10341
|
+
label: "Relative Humidity Mean",
|
|
10342
|
+
description: "10 minute mean relative humidity, in percentage",
|
|
10343
|
+
"data-type": "float",
|
|
10344
|
+
unit: {
|
|
10345
|
+
label: "percent",
|
|
10346
|
+
symbol: {
|
|
10347
|
+
value: "%",
|
|
10348
|
+
type: "https://qudt.org/vocab/unit/PERCENT"
|
|
10349
|
+
}
|
|
10350
|
+
},
|
|
10351
|
+
observedProperty: {
|
|
10352
|
+
id: "https://vocab.nerc.ac.uk/standard_name/relative_humidity/",
|
|
10353
|
+
label: "Relative humidity"
|
|
10354
|
+
},
|
|
10355
|
+
measurementType: {
|
|
10356
|
+
method: "mean",
|
|
10357
|
+
duration: "N/A"
|
|
10358
|
+
},
|
|
10359
|
+
"eumetnet:standard_name": "relative_humidity"
|
|
10360
|
+
},
|
|
10361
|
+
Sav1H: {
|
|
10362
|
+
type: "Parameter",
|
|
10363
|
+
label: "Wind Speed Mean last 1 Hour",
|
|
10364
|
+
description: "Past hour mean wind speed, in meters per second",
|
|
10365
|
+
"data-type": "float",
|
|
10366
|
+
unit: {
|
|
10367
|
+
label: "meter per second",
|
|
10368
|
+
symbol: {
|
|
10369
|
+
value: "m/s",
|
|
10370
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
10371
|
+
}
|
|
10372
|
+
},
|
|
10373
|
+
observedProperty: {
|
|
10374
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed/",
|
|
10375
|
+
label: "Wind speed"
|
|
10376
|
+
},
|
|
10377
|
+
measurementType: {
|
|
10378
|
+
method: "mean",
|
|
10379
|
+
duration: "-PT1H"
|
|
10380
|
+
},
|
|
10381
|
+
"eumetnet:standard_name": "wind_speed"
|
|
10382
|
+
},
|
|
10383
|
+
Sax1H: {
|
|
10384
|
+
type: "Parameter",
|
|
10385
|
+
label: "Wind Speed Maximum last 1 Hour",
|
|
10386
|
+
description: "Past hour maximum wind speed, in meters per second",
|
|
10387
|
+
"data-type": "float",
|
|
10388
|
+
unit: {
|
|
10389
|
+
label: "meter per second",
|
|
10390
|
+
symbol: {
|
|
10391
|
+
value: "m/s",
|
|
10392
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
10393
|
+
}
|
|
10394
|
+
},
|
|
10395
|
+
observedProperty: {
|
|
10396
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed/",
|
|
10397
|
+
label: "Wind speed"
|
|
10398
|
+
},
|
|
10399
|
+
measurementType: {
|
|
10400
|
+
method: "maximum",
|
|
10401
|
+
duration: "-PT1H"
|
|
10402
|
+
},
|
|
10403
|
+
"eumetnet:standard_name": "wind_speed"
|
|
10404
|
+
},
|
|
10405
|
+
Sax3H: {
|
|
10406
|
+
type: "Parameter",
|
|
10407
|
+
label: "Wind Speed Maximum last 3 Hours",
|
|
10408
|
+
description: "Past 3 hour maximum wind speed, in meters per second",
|
|
10409
|
+
"data-type": "float",
|
|
10410
|
+
unit: {
|
|
10411
|
+
label: "meter per second",
|
|
10412
|
+
symbol: {
|
|
10413
|
+
value: "m/s",
|
|
10414
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
10415
|
+
}
|
|
10416
|
+
},
|
|
10417
|
+
observedProperty: {
|
|
10418
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed/",
|
|
10419
|
+
label: "Wind speed"
|
|
10420
|
+
},
|
|
10421
|
+
measurementType: {
|
|
10422
|
+
method: "maximum",
|
|
10423
|
+
duration: "-PT3H"
|
|
10424
|
+
},
|
|
10425
|
+
"eumetnet:standard_name": "wind_speed"
|
|
10426
|
+
},
|
|
10427
|
+
Sax6H: {
|
|
10428
|
+
type: "Parameter",
|
|
10429
|
+
label: "Wind Speed Maximum last 6 Hours",
|
|
10430
|
+
description: "Past 6 hour maximum wind speed, in meters per second",
|
|
10431
|
+
"data-type": "float",
|
|
10432
|
+
unit: {
|
|
10433
|
+
label: "meter per second",
|
|
10434
|
+
symbol: {
|
|
10435
|
+
value: "m/s",
|
|
10436
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
10437
|
+
}
|
|
10438
|
+
},
|
|
10439
|
+
observedProperty: {
|
|
10440
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed/",
|
|
10441
|
+
label: "Wind speed"
|
|
10442
|
+
},
|
|
10443
|
+
measurementType: {
|
|
10444
|
+
method: "maximum",
|
|
10445
|
+
duration: "-PT6H"
|
|
10446
|
+
},
|
|
10447
|
+
"eumetnet:standard_name": "wind_speed"
|
|
10448
|
+
},
|
|
10449
|
+
sq: {
|
|
10450
|
+
type: "Parameter",
|
|
10451
|
+
label: "Squall Indicator",
|
|
10452
|
+
description: "Past 10 minute squall indicator, 0: no squall, 1: squall, or empty",
|
|
10453
|
+
"data-type": "integer",
|
|
10454
|
+
unit: {
|
|
10455
|
+
label: "unitless",
|
|
10456
|
+
symbol: {
|
|
10457
|
+
value: "一",
|
|
10458
|
+
type: "https://qudt.org/vocab/unit/UNITLESS"
|
|
10459
|
+
}
|
|
10460
|
+
},
|
|
10461
|
+
observedProperty: {
|
|
10462
|
+
label: "squall indicator",
|
|
10463
|
+
description: "A squall is defined by a sudden increase in wind speed of at least 8 m/s (16 knots), the speed rising to 11 m/s (22 knots) or more and lasting for at least one minute"
|
|
10464
|
+
},
|
|
10465
|
+
measurementType: {
|
|
10466
|
+
method: "N/A",
|
|
10467
|
+
duration: "-PT10M"
|
|
10468
|
+
}
|
|
10469
|
+
},
|
|
10470
|
+
ss: {
|
|
10471
|
+
type: "Parameter",
|
|
10472
|
+
label: "Sunshine Duration",
|
|
10473
|
+
description: "Past 10 minute duration of sunshine in minutes",
|
|
10474
|
+
"data-type": "float",
|
|
10475
|
+
unit: {
|
|
10476
|
+
label: "minute",
|
|
10477
|
+
symbol: {
|
|
10478
|
+
value: "min",
|
|
10479
|
+
type: "https://qudt.org/vocab/unit/MIN"
|
|
10480
|
+
}
|
|
10481
|
+
},
|
|
10482
|
+
observedProperty: {
|
|
10483
|
+
id: "https://vocab.nerc.ac.uk/standard_name/duration_of_sunshine/",
|
|
10484
|
+
label: "Duration of sunshine"
|
|
10485
|
+
},
|
|
10486
|
+
measurementType: {
|
|
10487
|
+
method: "sum",
|
|
10488
|
+
duration: "-PT10M"
|
|
10489
|
+
}
|
|
10490
|
+
},
|
|
10491
|
+
Sx1H: {
|
|
10492
|
+
type: "Parameter",
|
|
10493
|
+
label: "Wind Gust Maximum last 1 Hour",
|
|
10494
|
+
description: "Past hour maximum wind gust, in meters per second",
|
|
10495
|
+
"data-type": "float",
|
|
10496
|
+
unit: {
|
|
10497
|
+
label: "meter per second",
|
|
10498
|
+
symbol: {
|
|
10499
|
+
value: "m/s",
|
|
10500
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
10501
|
+
}
|
|
10502
|
+
},
|
|
10503
|
+
observedProperty: {
|
|
10504
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed_of_gust/",
|
|
10505
|
+
label: "Wind speed of gust"
|
|
10506
|
+
},
|
|
10507
|
+
measurementType: {
|
|
10508
|
+
method: "maximum",
|
|
10509
|
+
duration: "-PT1H"
|
|
10510
|
+
},
|
|
10511
|
+
"eumetnet:standard_name": "wind_speed_of_gust"
|
|
10512
|
+
},
|
|
10513
|
+
Sx3H: {
|
|
10514
|
+
type: "Parameter",
|
|
10515
|
+
label: "Wind Gust Maximum last 3 Hours",
|
|
10516
|
+
description: "Past 3 hour maximum wind gust, in meters per second",
|
|
10517
|
+
"data-type": "float",
|
|
10518
|
+
unit: {
|
|
10519
|
+
label: "meter per second",
|
|
10520
|
+
symbol: {
|
|
10521
|
+
value: "m/s",
|
|
10522
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
10523
|
+
}
|
|
10524
|
+
},
|
|
10525
|
+
observedProperty: {
|
|
10526
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed_of_gust/",
|
|
10527
|
+
label: "Wind speed of gust"
|
|
10528
|
+
},
|
|
10529
|
+
measurementType: {
|
|
10530
|
+
method: "maximum",
|
|
10531
|
+
duration: "-PT3H"
|
|
10532
|
+
},
|
|
10533
|
+
"eumetnet:standard_name": "wind_speed_of_gust"
|
|
10534
|
+
},
|
|
10535
|
+
Sx6H: {
|
|
10536
|
+
type: "Parameter",
|
|
10537
|
+
label: "Wind Gust Maximum last 6 Hours",
|
|
10538
|
+
description: "Past 6 hour maximum wind gust, in meters per second",
|
|
10539
|
+
"data-type": "float",
|
|
10540
|
+
unit: {
|
|
10541
|
+
label: "meter per second",
|
|
10542
|
+
symbol: {
|
|
10543
|
+
value: "m/s",
|
|
10544
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
10545
|
+
}
|
|
10546
|
+
},
|
|
10547
|
+
observedProperty: {
|
|
10548
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed_of_gust/",
|
|
10549
|
+
label: "Wind speed of gust"
|
|
10550
|
+
},
|
|
10551
|
+
measurementType: {
|
|
10552
|
+
method: "maximum",
|
|
10553
|
+
duration: "-PT6H"
|
|
10554
|
+
},
|
|
10555
|
+
"eumetnet:standard_name": "wind_speed_of_gust"
|
|
10556
|
+
},
|
|
10557
|
+
t10: {
|
|
10558
|
+
type: "Parameter",
|
|
10559
|
+
label: "Air Temperature Mean",
|
|
10560
|
+
description: "10 minute mean air temperature, in degrees Celsius",
|
|
10561
|
+
"data-type": "float",
|
|
10562
|
+
unit: {
|
|
10563
|
+
label: "degrees celsius",
|
|
10564
|
+
symbol: {
|
|
10565
|
+
value: "°C",
|
|
10566
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10567
|
+
}
|
|
10568
|
+
},
|
|
10569
|
+
observedProperty: {
|
|
10570
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
10571
|
+
label: "Air temperature"
|
|
10572
|
+
},
|
|
10573
|
+
measurementType: {
|
|
10574
|
+
method: "mean",
|
|
10575
|
+
duration: "N/A"
|
|
10576
|
+
},
|
|
10577
|
+
"eumetnet:standard_name": "air_temperature"
|
|
10578
|
+
},
|
|
10579
|
+
ta: {
|
|
10580
|
+
type: "Parameter",
|
|
10581
|
+
label: "Air Temperature 1.50 m 1 Min Mean",
|
|
10582
|
+
description: "Past minute mean air temperature at 1.50 meters, in degrees Celsius",
|
|
10583
|
+
"data-type": "float",
|
|
10584
|
+
unit: {
|
|
10585
|
+
label: "degrees celsius",
|
|
10586
|
+
symbol: {
|
|
10587
|
+
value: "°C",
|
|
10588
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10589
|
+
}
|
|
10590
|
+
},
|
|
10591
|
+
observedProperty: {
|
|
10592
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
10593
|
+
label: "Air temperature"
|
|
10594
|
+
},
|
|
10595
|
+
measurementType: {
|
|
10596
|
+
method: "mean",
|
|
10597
|
+
duration: "-PT1M"
|
|
10598
|
+
},
|
|
10599
|
+
"eumetnet:standard_name": "air_temperature",
|
|
10600
|
+
"eumetnet:level": 1.5
|
|
10601
|
+
},
|
|
10602
|
+
tb: {
|
|
10603
|
+
type: "Parameter",
|
|
10604
|
+
label: "Wet Bulb Temperature 1.50 m Mean",
|
|
10605
|
+
description: "Past 10 minute mean wet bulb temperature at 1.50 meters, in degrees Celsius",
|
|
10606
|
+
"data-type": "float",
|
|
10607
|
+
unit: {
|
|
10608
|
+
label: "degrees celsius",
|
|
10609
|
+
symbol: {
|
|
10610
|
+
value: "°C",
|
|
10611
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10612
|
+
}
|
|
10613
|
+
},
|
|
10614
|
+
observedProperty: {
|
|
10615
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wet_bulb_temperature/",
|
|
10616
|
+
label: "Wet bulb temperature"
|
|
10617
|
+
},
|
|
10618
|
+
measurementType: {
|
|
10619
|
+
method: "mean",
|
|
10620
|
+
duration: "-PT10M"
|
|
10621
|
+
},
|
|
10622
|
+
"eumetnet:standard_name": "soil_temperature"
|
|
10623
|
+
},
|
|
10624
|
+
tb1: {
|
|
10625
|
+
type: "Parameter",
|
|
10626
|
+
label: "Soil Temperature -5 cm Mean",
|
|
10627
|
+
description: "Past 10 minute mean soil temperature at -5 centimeters, in degrees Celsius",
|
|
10628
|
+
"data-type": "float",
|
|
10629
|
+
unit: {
|
|
10630
|
+
label: "degrees celsius",
|
|
10631
|
+
symbol: {
|
|
10632
|
+
value: "°C",
|
|
10633
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10634
|
+
}
|
|
10635
|
+
},
|
|
10636
|
+
observedProperty: {
|
|
10637
|
+
id: "https://vocab.nerc.ac.uk/standard_name/soil_temperature/",
|
|
10638
|
+
label: "Soil temperature"
|
|
10639
|
+
},
|
|
10640
|
+
measurementType: {
|
|
10641
|
+
method: "mean",
|
|
10642
|
+
duration: "-PT10M"
|
|
10643
|
+
},
|
|
10644
|
+
"eumetnet:standard_name": "soil_temperature",
|
|
10645
|
+
"eumetnet:level": -0.05
|
|
10646
|
+
},
|
|
10647
|
+
Tb1n6: {
|
|
10648
|
+
type: "Parameter",
|
|
10649
|
+
label: "Soil Temperature -5 cm Minimum last 6 Hours",
|
|
10650
|
+
description: "Past 6 hour minimum soil temperature at -5 centimeters, in degrees Celsius",
|
|
10651
|
+
"data-type": "float",
|
|
10652
|
+
unit: {
|
|
10653
|
+
label: "degrees celsius",
|
|
10654
|
+
symbol: {
|
|
10655
|
+
value: "°C",
|
|
10656
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10657
|
+
}
|
|
10658
|
+
},
|
|
10659
|
+
observedProperty: {
|
|
10660
|
+
id: "https://vocab.nerc.ac.uk/standard_name/soil_temperature/",
|
|
10661
|
+
label: "Soil temperature"
|
|
10662
|
+
},
|
|
10663
|
+
measurementType: {
|
|
10664
|
+
method: "minimum",
|
|
10665
|
+
duration: "-PT6H"
|
|
10666
|
+
},
|
|
10667
|
+
"eumetnet:standard_name": "soil_temperature",
|
|
10668
|
+
"eumetnet:level": -0.05
|
|
10669
|
+
},
|
|
10670
|
+
Tb1x6: {
|
|
10671
|
+
type: "Parameter",
|
|
10672
|
+
label: "Soil Temperature -5 cm Maximum last 6 Hours",
|
|
10673
|
+
description: "Past 6 hour maximum soil temperature at -5 centimeters, in degrees Celsius",
|
|
10674
|
+
"data-type": "float",
|
|
10675
|
+
unit: {
|
|
10676
|
+
label: "degrees celsius",
|
|
10677
|
+
symbol: {
|
|
10678
|
+
value: "°C",
|
|
10679
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10680
|
+
}
|
|
10681
|
+
},
|
|
10682
|
+
observedProperty: {
|
|
10683
|
+
id: "https://vocab.nerc.ac.uk/standard_name/soil_temperature/",
|
|
10684
|
+
label: "Soil temperature"
|
|
10685
|
+
},
|
|
10686
|
+
measurementType: {
|
|
10687
|
+
method: "maximum",
|
|
10688
|
+
duration: "-PT6H"
|
|
10689
|
+
},
|
|
10690
|
+
"eumetnet:standard_name": "soil_temperature",
|
|
10691
|
+
"eumetnet:level": -0.05
|
|
10692
|
+
},
|
|
10693
|
+
tb2: {
|
|
10694
|
+
type: "Parameter",
|
|
10695
|
+
label: "Soil Temperature -10 cm Mean",
|
|
10696
|
+
description: "Past 10 minute mean soil temperature at -10 centimeters, in degrees Celsius",
|
|
10697
|
+
"data-type": "float",
|
|
10698
|
+
unit: {
|
|
10699
|
+
label: "degrees celsius",
|
|
10700
|
+
symbol: {
|
|
10701
|
+
value: "°C",
|
|
10702
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10703
|
+
}
|
|
10704
|
+
},
|
|
10705
|
+
observedProperty: {
|
|
10706
|
+
id: "https://vocab.nerc.ac.uk/standard_name/soil_temperature/",
|
|
10707
|
+
label: "Soil temperature"
|
|
10708
|
+
},
|
|
10709
|
+
measurementType: {
|
|
10710
|
+
method: "mean",
|
|
10711
|
+
duration: "-PT10M"
|
|
10712
|
+
},
|
|
10713
|
+
"eumetnet:standard_name": "soil_temperature",
|
|
10714
|
+
"eumetnet:level": -0.1
|
|
10715
|
+
},
|
|
10716
|
+
Tb2n6: {
|
|
10717
|
+
type: "Parameter",
|
|
10718
|
+
label: "Soil Temperature -10 cm Minimum past 6 Hours",
|
|
10719
|
+
description: "Past 6 hour maximum soil temperature at -10 centimeters, in degrees Celsius",
|
|
10720
|
+
"data-type": "float",
|
|
10721
|
+
unit: {
|
|
10722
|
+
label: "degrees celsius",
|
|
10723
|
+
symbol: {
|
|
10724
|
+
value: "°C",
|
|
10725
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10726
|
+
}
|
|
10727
|
+
},
|
|
10728
|
+
observedProperty: {
|
|
10729
|
+
id: "https://vocab.nerc.ac.uk/standard_name/soil_temperature/",
|
|
10730
|
+
label: "Soil temperature"
|
|
10731
|
+
},
|
|
10732
|
+
measurementType: {
|
|
10733
|
+
method: "minimum",
|
|
10734
|
+
duration: "-PT6H"
|
|
10735
|
+
},
|
|
10736
|
+
"eumetnet:standard_name": "soil_temperature",
|
|
10737
|
+
"eumetnet:level": -0.1
|
|
10738
|
+
},
|
|
10739
|
+
Tb2x6: {
|
|
10740
|
+
type: "Parameter",
|
|
10741
|
+
label: "Soil Temperature -10 cm Maximum past 6 Hours",
|
|
10742
|
+
description: "Past 6 hour maximum soil temperature at -10 centimeters, in degrees Celsius",
|
|
10743
|
+
"data-type": "float",
|
|
10744
|
+
unit: {
|
|
10745
|
+
label: "degrees celsius",
|
|
10746
|
+
symbol: {
|
|
10747
|
+
value: "°C",
|
|
10748
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10749
|
+
}
|
|
10750
|
+
},
|
|
10751
|
+
observedProperty: {
|
|
10752
|
+
id: "https://vocab.nerc.ac.uk/standard_name/soil_temperature/",
|
|
10753
|
+
label: "Soil temperature"
|
|
10754
|
+
},
|
|
10755
|
+
measurementType: {
|
|
10756
|
+
method: "maximum",
|
|
10757
|
+
duration: "-PT6H"
|
|
10758
|
+
},
|
|
10759
|
+
"eumetnet:standard_name": "soil_temperature",
|
|
10760
|
+
"eumetnet:level": -0.1
|
|
10761
|
+
},
|
|
10762
|
+
tb3: {
|
|
10763
|
+
type: "Parameter",
|
|
10764
|
+
label: "Soil Temperature -20 cm Mean",
|
|
10765
|
+
description: "Past 10 minute mean soil temperature at -20 centimeters, in degrees Celsius",
|
|
10766
|
+
"data-type": "float",
|
|
10767
|
+
unit: {
|
|
10768
|
+
label: "degrees celsius",
|
|
10769
|
+
symbol: {
|
|
10770
|
+
value: "°C",
|
|
10771
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10772
|
+
}
|
|
10773
|
+
},
|
|
10774
|
+
observedProperty: {
|
|
10775
|
+
id: "https://vocab.nerc.ac.uk/standard_name/soil_temperature/",
|
|
10776
|
+
label: "Soil temperature"
|
|
10777
|
+
},
|
|
10778
|
+
measurementType: {
|
|
10779
|
+
method: "mean",
|
|
10780
|
+
duration: "-PT10M"
|
|
10781
|
+
},
|
|
10782
|
+
"eumetnet:standard_name": "soil_temperature",
|
|
10783
|
+
"eumetnet:level": -0.2
|
|
10784
|
+
},
|
|
10785
|
+
tb4: {
|
|
10786
|
+
type: "Parameter",
|
|
10787
|
+
label: "Soil Temperature -50 cm Mean",
|
|
10788
|
+
description: "Past 10 minute mean soil temperature at -50 centimeters, in degrees Celsius",
|
|
10789
|
+
"data-type": "float",
|
|
10790
|
+
unit: {
|
|
10791
|
+
label: "degrees celsius",
|
|
10792
|
+
symbol: {
|
|
10793
|
+
value: "°C",
|
|
10794
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10795
|
+
}
|
|
10796
|
+
},
|
|
10797
|
+
observedProperty: {
|
|
10798
|
+
id: "https://vocab.nerc.ac.uk/standard_name/soil_temperature/",
|
|
10799
|
+
label: "Soil temperature"
|
|
10800
|
+
},
|
|
10801
|
+
measurementType: {
|
|
10802
|
+
method: "mean",
|
|
10803
|
+
duration: "-PT10M"
|
|
10804
|
+
},
|
|
10805
|
+
"eumetnet:standard_name": "soil_temperature",
|
|
10806
|
+
"eumetnet:level": -0.5
|
|
10807
|
+
},
|
|
10808
|
+
tb5: {
|
|
10809
|
+
type: "Parameter",
|
|
10810
|
+
label: "Soil Temperature -100 cm Mean",
|
|
10811
|
+
description: "Past 10 minute mean soil temperature at -100 centimeters, in degrees Celsius",
|
|
10812
|
+
"data-type": "float",
|
|
10813
|
+
unit: {
|
|
10814
|
+
label: "degrees celsius",
|
|
10815
|
+
symbol: {
|
|
10816
|
+
value: "°C",
|
|
10817
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10818
|
+
}
|
|
10819
|
+
},
|
|
10820
|
+
observedProperty: {
|
|
10821
|
+
id: "https://vocab.nerc.ac.uk/standard_name/soil_temperature/",
|
|
10822
|
+
label: "Soil temperature"
|
|
10823
|
+
},
|
|
10824
|
+
measurementType: {
|
|
10825
|
+
method: "mean",
|
|
10826
|
+
duration: "-PT10M"
|
|
10827
|
+
},
|
|
10828
|
+
"eumetnet:standard_name": "soil_temperature",
|
|
10829
|
+
"eumetnet:level": -1
|
|
10830
|
+
},
|
|
10831
|
+
td: {
|
|
10832
|
+
type: "Parameter",
|
|
10833
|
+
label: "Dew Point Temperature 1.50 m 1 Min Mean",
|
|
10834
|
+
description: "Past minute mean dew point temperature at 1.50 meters, in degrees Celsius",
|
|
10835
|
+
"data-type": "float",
|
|
10836
|
+
unit: {
|
|
10837
|
+
label: "degrees celsius",
|
|
10838
|
+
symbol: {
|
|
10839
|
+
value: "°C",
|
|
10840
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10841
|
+
}
|
|
10842
|
+
},
|
|
10843
|
+
observedProperty: {
|
|
10844
|
+
id: "https://vocab.nerc.ac.uk/standard_name/dew_point_temperature/",
|
|
10845
|
+
label: "Dew point temperature"
|
|
10846
|
+
},
|
|
10847
|
+
measurementType: {
|
|
10848
|
+
method: "mean",
|
|
10849
|
+
duration: "-PT1M"
|
|
10850
|
+
},
|
|
10851
|
+
"eumetnet:standard_name": "dew_point_temperature"
|
|
10852
|
+
},
|
|
10853
|
+
td10: {
|
|
10854
|
+
type: "Parameter",
|
|
10855
|
+
label: "Dew Point Temperature Mean",
|
|
10856
|
+
description: "10 minute mean dew point temperature, in degrees Celsius",
|
|
10857
|
+
"data-type": "float",
|
|
10858
|
+
unit: {
|
|
10859
|
+
label: "degrees celsius",
|
|
10860
|
+
symbol: {
|
|
10861
|
+
value: "°C",
|
|
10862
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10863
|
+
}
|
|
10864
|
+
},
|
|
10865
|
+
observedProperty: {
|
|
10866
|
+
id: "https://vocab.nerc.ac.uk/standard_name/dew_point_temperature/",
|
|
10867
|
+
label: "Dew point temperature"
|
|
10868
|
+
},
|
|
10869
|
+
measurementType: {
|
|
10870
|
+
method: "mean",
|
|
10871
|
+
duration: "N/A"
|
|
10872
|
+
},
|
|
10873
|
+
"eumetnet:standard_name": "dew_point_temperature"
|
|
10874
|
+
},
|
|
10875
|
+
tg: {
|
|
10876
|
+
type: "Parameter",
|
|
10877
|
+
label: "Air Temperature 10 cm Mean",
|
|
10878
|
+
description: "Past 10 minute mean air temperature at 10 centimeters, in degrees Celsius",
|
|
10879
|
+
"data-type": "float",
|
|
10880
|
+
unit: {
|
|
10881
|
+
label: "degrees celsius",
|
|
10882
|
+
symbol: {
|
|
10883
|
+
value: "°C",
|
|
10884
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10885
|
+
}
|
|
10886
|
+
},
|
|
10887
|
+
observedProperty: {
|
|
10888
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
10889
|
+
label: "Air temperature"
|
|
10890
|
+
},
|
|
10891
|
+
measurementType: {
|
|
10892
|
+
method: "mean",
|
|
10893
|
+
duration: "-PT10M"
|
|
10894
|
+
},
|
|
10895
|
+
"eumetnet:standard_name": "air_temperature",
|
|
10896
|
+
"eumetnet:level": 0.1
|
|
10897
|
+
},
|
|
10898
|
+
tgn: {
|
|
10899
|
+
type: "Parameter",
|
|
10900
|
+
label: "Air Temperature 10 cm Minimum",
|
|
10901
|
+
description: "Past 10 minute minimum air temperature at 10 centimeters, in degrees Celsius",
|
|
10902
|
+
"data-type": "float",
|
|
10903
|
+
unit: {
|
|
10904
|
+
label: "degrees celsius",
|
|
10905
|
+
symbol: {
|
|
10906
|
+
value: "°C",
|
|
10907
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10908
|
+
}
|
|
10909
|
+
},
|
|
10910
|
+
observedProperty: {
|
|
10911
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
10912
|
+
label: "Air temperature"
|
|
10913
|
+
},
|
|
10914
|
+
measurementType: {
|
|
10915
|
+
method: "minimum",
|
|
10916
|
+
duration: "-PT10M"
|
|
10917
|
+
},
|
|
10918
|
+
"eumetnet:standard_name": "air_temperature",
|
|
10919
|
+
"eumetnet:level": 0.1
|
|
10920
|
+
},
|
|
10921
|
+
Tgn12: {
|
|
10922
|
+
type: "Parameter",
|
|
10923
|
+
label: "Air Temperature 10 cm Minimum last 12 Hours",
|
|
10924
|
+
description: "Past 12 hour minimum air temperature at 10 centimeters, in degrees Celsius",
|
|
10925
|
+
"data-type": "float",
|
|
10926
|
+
unit: {
|
|
10927
|
+
label: "degrees celsius",
|
|
10928
|
+
symbol: {
|
|
10929
|
+
value: "°C",
|
|
10930
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10931
|
+
}
|
|
10932
|
+
},
|
|
10933
|
+
observedProperty: {
|
|
10934
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
10935
|
+
label: "Air temperature"
|
|
10936
|
+
},
|
|
10937
|
+
measurementType: {
|
|
10938
|
+
method: "minimum",
|
|
10939
|
+
duration: "-PT12H"
|
|
10940
|
+
},
|
|
10941
|
+
"eumetnet:standard_name": "air_temperature",
|
|
10942
|
+
"eumetnet:level": 0.1
|
|
10943
|
+
},
|
|
10944
|
+
Tgn14: {
|
|
10945
|
+
type: "Parameter",
|
|
10946
|
+
label: "Air Temperature 10 cm Minimum last 14 Hours",
|
|
10947
|
+
description: "Past 14 hour minimum air temperature at 10 centimeters, in degrees Celsius",
|
|
10948
|
+
"data-type": "float",
|
|
10949
|
+
unit: {
|
|
10950
|
+
label: "degrees celsius",
|
|
10951
|
+
symbol: {
|
|
10952
|
+
value: "°C",
|
|
10953
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10954
|
+
}
|
|
10955
|
+
},
|
|
10956
|
+
observedProperty: {
|
|
10957
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
10958
|
+
label: "Air temperature"
|
|
10959
|
+
},
|
|
10960
|
+
measurementType: {
|
|
10961
|
+
method: "minimum",
|
|
10962
|
+
duration: "-PT14H"
|
|
10963
|
+
},
|
|
10964
|
+
"eumetnet:standard_name": "air_temperature",
|
|
10965
|
+
"eumetnet:level": 0.1
|
|
10966
|
+
},
|
|
10967
|
+
Tgn6: {
|
|
10968
|
+
type: "Parameter",
|
|
10969
|
+
label: "Air Temperature 10 cm Minimum last 6 Hours",
|
|
10970
|
+
description: "Past 6 hour minimum air temperature at 10 centimeters, in degrees Celsius",
|
|
10971
|
+
"data-type": "float",
|
|
10972
|
+
unit: {
|
|
10973
|
+
label: "degrees celsius",
|
|
10974
|
+
symbol: {
|
|
10975
|
+
value: "°C",
|
|
10976
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10977
|
+
}
|
|
10978
|
+
},
|
|
10979
|
+
observedProperty: {
|
|
10980
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
10981
|
+
label: "Air temperature"
|
|
10982
|
+
},
|
|
10983
|
+
measurementType: {
|
|
10984
|
+
method: "minimum",
|
|
10985
|
+
duration: "-PT6H"
|
|
10986
|
+
},
|
|
10987
|
+
"eumetnet:standard_name": "air_temperature",
|
|
10988
|
+
"eumetnet:level": 0.1
|
|
10989
|
+
},
|
|
10990
|
+
tn: {
|
|
10991
|
+
type: "Parameter",
|
|
10992
|
+
label: "Air Temperature 1.50 m Minimum",
|
|
10993
|
+
description: "Past 10 minute minimum air temperature at 1.50 meters, in degrees Celsius",
|
|
10994
|
+
"data-type": "float",
|
|
10995
|
+
unit: {
|
|
10996
|
+
label: "degrees celsius",
|
|
10997
|
+
symbol: {
|
|
10998
|
+
value: "°C",
|
|
10999
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11000
|
+
}
|
|
11001
|
+
},
|
|
11002
|
+
observedProperty: {
|
|
11003
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11004
|
+
label: "Air temperature"
|
|
11005
|
+
},
|
|
11006
|
+
measurementType: {
|
|
11007
|
+
method: "minimum",
|
|
11008
|
+
duration: "-PT10M"
|
|
11009
|
+
},
|
|
11010
|
+
"eumetnet:standard_name": "air_temperature",
|
|
11011
|
+
"eumetnet:level": 1.5
|
|
11012
|
+
},
|
|
11013
|
+
Tn12: {
|
|
11014
|
+
type: "Parameter",
|
|
11015
|
+
label: "Air Temperature Minimum last 12 Hours",
|
|
11016
|
+
description: "Past 12 hour minimum air temperature, in degrees Celsius",
|
|
11017
|
+
"data-type": "float",
|
|
11018
|
+
unit: {
|
|
11019
|
+
label: "degrees celsius",
|
|
11020
|
+
symbol: {
|
|
11021
|
+
value: "°C",
|
|
11022
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11023
|
+
}
|
|
11024
|
+
},
|
|
11025
|
+
observedProperty: {
|
|
11026
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11027
|
+
label: "Air temperature"
|
|
11028
|
+
},
|
|
11029
|
+
measurementType: {
|
|
11030
|
+
method: "minimum",
|
|
11031
|
+
duration: "-PT12H"
|
|
11032
|
+
},
|
|
11033
|
+
"eumetnet:standard_name": "air_temperature",
|
|
11034
|
+
"eumetnet:level": 1.5
|
|
11035
|
+
},
|
|
11036
|
+
Tn14: {
|
|
11037
|
+
type: "Parameter",
|
|
11038
|
+
label: "Air Temperature Minimum last 14 Hours",
|
|
11039
|
+
description: "Past 14 hour minimum air temperature, in degrees Celsius",
|
|
11040
|
+
"data-type": "float",
|
|
11041
|
+
unit: {
|
|
11042
|
+
label: "degrees celsius",
|
|
11043
|
+
symbol: {
|
|
11044
|
+
value: "°C",
|
|
11045
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11046
|
+
}
|
|
11047
|
+
},
|
|
11048
|
+
observedProperty: {
|
|
11049
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11050
|
+
label: "Air temperature"
|
|
11051
|
+
},
|
|
11052
|
+
measurementType: {
|
|
11053
|
+
method: "minimum",
|
|
11054
|
+
duration: "-PT14H"
|
|
11055
|
+
},
|
|
11056
|
+
"eumetnet:standard_name": "air_temperature",
|
|
11057
|
+
"eumetnet:level": 1.5
|
|
11058
|
+
},
|
|
11059
|
+
Tn6: {
|
|
11060
|
+
type: "Parameter",
|
|
11061
|
+
label: "Air Temperature Minimum last 6 Hours",
|
|
11062
|
+
description: "Past 6 hour minimum air temperature, in degrees Celsius",
|
|
11063
|
+
"data-type": "float",
|
|
11064
|
+
unit: {
|
|
11065
|
+
label: "degrees celsius",
|
|
11066
|
+
symbol: {
|
|
11067
|
+
value: "°C",
|
|
11068
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11069
|
+
}
|
|
11070
|
+
},
|
|
11071
|
+
observedProperty: {
|
|
11072
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11073
|
+
label: "Air temperature"
|
|
11074
|
+
},
|
|
11075
|
+
measurementType: {
|
|
11076
|
+
method: "minimum",
|
|
11077
|
+
duration: "-PT6H"
|
|
11078
|
+
},
|
|
11079
|
+
"eumetnet:standard_name": "air_temperature",
|
|
11080
|
+
"eumetnet:level": 1.5
|
|
11081
|
+
},
|
|
11082
|
+
tsd: {
|
|
11083
|
+
type: "Parameter",
|
|
11084
|
+
label: "Air Temperature Std Dev",
|
|
11085
|
+
description: "Past 10 minute standard deviation of all air temperature samples, in degrees Celsius",
|
|
11086
|
+
"data-type": "float",
|
|
11087
|
+
unit: {
|
|
11088
|
+
label: "degrees celsius",
|
|
11089
|
+
symbol: {
|
|
11090
|
+
value: "°C",
|
|
11091
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11092
|
+
}
|
|
11093
|
+
},
|
|
11094
|
+
observedProperty: {
|
|
11095
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11096
|
+
label: "Air temperature"
|
|
11097
|
+
},
|
|
11098
|
+
measurementType: {
|
|
11099
|
+
method: "stddev",
|
|
11100
|
+
duration: "-PT10M"
|
|
11101
|
+
},
|
|
11102
|
+
"eumetnet:level": 1.5
|
|
11103
|
+
},
|
|
11104
|
+
tx: {
|
|
11105
|
+
type: "Parameter",
|
|
11106
|
+
label: "Air Temperature 1.50 m Maximum",
|
|
11107
|
+
description: "Past 10 minute maximum air temperature at 1.50 meters, in degrees Celsius",
|
|
11108
|
+
"data-type": "float",
|
|
11109
|
+
unit: {
|
|
11110
|
+
label: "degrees celsius",
|
|
11111
|
+
symbol: {
|
|
11112
|
+
value: "°C",
|
|
11113
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11114
|
+
}
|
|
11115
|
+
},
|
|
11116
|
+
observedProperty: {
|
|
11117
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11118
|
+
label: "Air temperature"
|
|
11119
|
+
},
|
|
11120
|
+
measurementType: {
|
|
11121
|
+
method: "maximum",
|
|
11122
|
+
duration: "-PT10M"
|
|
11123
|
+
},
|
|
11124
|
+
"eumetnet:standard_name": "air_temperature",
|
|
11125
|
+
"eumetnet:level": 1.5
|
|
11126
|
+
},
|
|
11127
|
+
Tx12: {
|
|
11128
|
+
type: "Parameter",
|
|
11129
|
+
label: "Air Temperature Maximum last 12 Hours",
|
|
11130
|
+
description: "Past 12 hour maximum air temperature, in degrees Celsius",
|
|
11131
|
+
"data-type": "float",
|
|
11132
|
+
unit: {
|
|
11133
|
+
label: "degrees celsius",
|
|
11134
|
+
symbol: {
|
|
11135
|
+
value: "°C",
|
|
11136
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11137
|
+
}
|
|
11138
|
+
},
|
|
11139
|
+
observedProperty: {
|
|
11140
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11141
|
+
label: "Air temperature"
|
|
11142
|
+
},
|
|
11143
|
+
measurementType: {
|
|
11144
|
+
method: "maximum",
|
|
11145
|
+
duration: "-PT12H"
|
|
11146
|
+
},
|
|
11147
|
+
"eumetnet:standard_name": "air_temperature",
|
|
11148
|
+
"eumetnet:level": 1.5
|
|
11149
|
+
},
|
|
11150
|
+
Tx24: {
|
|
11151
|
+
type: "Parameter",
|
|
11152
|
+
label: "Air Temperature Maximum last 24 Hours",
|
|
11153
|
+
description: "Past 24 hour maximum air temperature, in degrees Celsius",
|
|
11154
|
+
"data-type": "float",
|
|
11155
|
+
unit: {
|
|
11156
|
+
label: "degrees celsius",
|
|
11157
|
+
symbol: {
|
|
11158
|
+
value: "°C",
|
|
11159
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11160
|
+
}
|
|
11161
|
+
},
|
|
11162
|
+
observedProperty: {
|
|
11163
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11164
|
+
label: "Air temperature"
|
|
11165
|
+
},
|
|
11166
|
+
measurementType: {
|
|
11167
|
+
method: "maximum",
|
|
11168
|
+
duration: "-PT24H"
|
|
11169
|
+
},
|
|
11170
|
+
"eumetnet:standard_name": "air_temperature",
|
|
11171
|
+
"eumetnet:level": 1.5
|
|
11172
|
+
},
|
|
11173
|
+
Tx6: {
|
|
11174
|
+
type: "Parameter",
|
|
11175
|
+
label: "Air Temperature Maximum last 6 Hours",
|
|
11176
|
+
description: "Past 6 hour maximum air temperature, in degrees Celsius",
|
|
11177
|
+
"data-type": "float",
|
|
11178
|
+
unit: {
|
|
11179
|
+
label: "degrees celsius",
|
|
11180
|
+
symbol: {
|
|
11181
|
+
value: "°C",
|
|
11182
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11183
|
+
}
|
|
11184
|
+
},
|
|
11185
|
+
observedProperty: {
|
|
11186
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11187
|
+
label: "Air temperature"
|
|
11188
|
+
},
|
|
11189
|
+
measurementType: {
|
|
11190
|
+
method: "maximum",
|
|
11191
|
+
duration: "-PT6H"
|
|
11192
|
+
},
|
|
11193
|
+
"eumetnet:standard_name": "air_temperature",
|
|
11194
|
+
"eumetnet:level": 1.5
|
|
11195
|
+
},
|
|
11196
|
+
vv: {
|
|
11197
|
+
type: "Parameter",
|
|
11198
|
+
label: "Horizontal Visibility Mean",
|
|
11199
|
+
description: "Past 10 minute mean horizontal visibility, in meters",
|
|
11200
|
+
"data-type": "float",
|
|
11201
|
+
unit: {
|
|
11202
|
+
label: "meter",
|
|
11203
|
+
symbol: {
|
|
11204
|
+
value: "m",
|
|
11205
|
+
type: "https://qudt.org/vocab/unit/M.html"
|
|
11206
|
+
}
|
|
11207
|
+
},
|
|
11208
|
+
observedProperty: {
|
|
11209
|
+
id: "https://vocab.nerc.ac.uk/standard_name/visibility_in_air/",
|
|
11210
|
+
label: "Visibility in air"
|
|
11211
|
+
},
|
|
11212
|
+
measurementType: {
|
|
11213
|
+
method: "mean",
|
|
11214
|
+
duration: "-PT10M"
|
|
11215
|
+
},
|
|
11216
|
+
"eumetnet:standard_name": "visibility_in_air"
|
|
11217
|
+
},
|
|
11218
|
+
W10: {
|
|
11219
|
+
type: "Parameter",
|
|
11220
|
+
label: "Past Weather Indicator",
|
|
11221
|
+
description: "Past 10 minute Past Weather Indicator (W10); Handboek waarnemingen. 5.4 Weercodegenerator. Tabel 6; https://www.knmi.nl/kennis-en-datacentrum/publicatie/handboek-waarnemingen",
|
|
11222
|
+
"data-type": "integer",
|
|
11223
|
+
unit: {
|
|
11224
|
+
label: "unitless",
|
|
11225
|
+
symbol: {
|
|
11226
|
+
value: "一",
|
|
11227
|
+
type: "https://qudt.org/vocab/unit/UNITLESS"
|
|
11228
|
+
}
|
|
11229
|
+
},
|
|
11230
|
+
observedProperty: {
|
|
11231
|
+
label: "Present weather code",
|
|
11232
|
+
description: "The present weather (clear, fog, snow, etc.) described with a numeric code."
|
|
11233
|
+
},
|
|
11234
|
+
measurementType: {
|
|
11235
|
+
method: "N/A",
|
|
11236
|
+
duration: "-PT10M"
|
|
11237
|
+
}
|
|
11238
|
+
},
|
|
11239
|
+
"W10-10": {
|
|
11240
|
+
type: "Parameter",
|
|
11241
|
+
label: "Past Weather Indicator for previous 10 min interval",
|
|
11242
|
+
description: "Previous 10 minute interval Past Weather Indicator (W10); Handboek waarnemingen. 5.4 Weercodegenerator. Tabel 6; https://www.knmi.nl/kennis-en-datacentrum/publicatie/handboek-waarnemingen",
|
|
11243
|
+
"data-type": "integer",
|
|
11244
|
+
unit: {
|
|
11245
|
+
label: "unitless",
|
|
11246
|
+
symbol: {
|
|
11247
|
+
value: "一",
|
|
11248
|
+
type: "https://qudt.org/vocab/unit/UNITLESS"
|
|
11249
|
+
}
|
|
11250
|
+
},
|
|
11251
|
+
observedProperty: {
|
|
11252
|
+
label: "Present weather code",
|
|
11253
|
+
description: "The present weather (clear, fog, snow, etc.) described with a numeric code."
|
|
11254
|
+
}
|
|
11255
|
+
},
|
|
11256
|
+
ww: {
|
|
11257
|
+
type: "Parameter",
|
|
11258
|
+
label: "WaWa Weather Code",
|
|
11259
|
+
description: "Past 10 minute WaWa Weather Code; Handboek waarnemingen; 5.4 Weercodegenerator; Tabel 6; https://www.knmi.nl/kennis-en-datacentrum/publicatie/handboek-waarnemingen",
|
|
11260
|
+
"data-type": "float",
|
|
11261
|
+
unit: {
|
|
11262
|
+
label: "unitless",
|
|
11263
|
+
symbol: {
|
|
11264
|
+
value: "一",
|
|
11265
|
+
type: "https://qudt.org/vocab/unit/UNITLESS"
|
|
11266
|
+
}
|
|
11267
|
+
},
|
|
11268
|
+
observedProperty: {
|
|
11269
|
+
label: "Present weather code",
|
|
11270
|
+
description: "The present weather (clear, fog, snow, etc.) described with a numeric code."
|
|
11271
|
+
},
|
|
11272
|
+
measurementType: {
|
|
11273
|
+
method: "N/A",
|
|
11274
|
+
duration: "-PT10M"
|
|
11275
|
+
}
|
|
11276
|
+
},
|
|
11277
|
+
"ww-10": {
|
|
11278
|
+
type: "Parameter",
|
|
11279
|
+
label: "WaWa Weather Code for previous 10 min interval",
|
|
11280
|
+
description: "Previous 10 minute interval WaWa Weather Code Handboek waarnemingen; 5.4 Weercodegenerator; Tabel 6; https://www.knmi.nl/kennis-en-datacentrum/publicatie/handboek-waarnemingen",
|
|
11281
|
+
"data-type": "float",
|
|
11282
|
+
unit: {
|
|
11283
|
+
label: "unitless",
|
|
11284
|
+
symbol: {
|
|
11285
|
+
value: "一",
|
|
11286
|
+
type: "https://qudt.org/vocab/unit/UNITLESS"
|
|
11287
|
+
}
|
|
11288
|
+
},
|
|
11289
|
+
observedProperty: {
|
|
11290
|
+
label: "Present weather code",
|
|
11291
|
+
description: "The present weather (clear, fog, snow, etc.) described with a numeric code."
|
|
11292
|
+
}
|
|
11293
|
+
},
|
|
11294
|
+
za: {
|
|
11295
|
+
type: "Parameter",
|
|
11296
|
+
label: "Background Luminance Mean",
|
|
11297
|
+
description: "Past 10 minute mean background luminance, in candela per square meter",
|
|
11298
|
+
"data-type": "float",
|
|
11299
|
+
unit: {
|
|
11300
|
+
label: "candela per square meter",
|
|
11301
|
+
symbol: {
|
|
11302
|
+
value: "cd/m²",
|
|
11303
|
+
type: "https://qudt.org/vocab/unit/CD-PER-M2"
|
|
11304
|
+
}
|
|
11305
|
+
},
|
|
11306
|
+
observedProperty: {
|
|
11307
|
+
label: "Background Luminance",
|
|
11308
|
+
description: "Background Luminance is a measured parameter that represents the intensity of the background brightness of the sky. This value is displayed in cd/m²"
|
|
11309
|
+
},
|
|
11310
|
+
measurementType: {
|
|
11311
|
+
method: "mean",
|
|
11312
|
+
duration: "-PT10M"
|
|
11313
|
+
}
|
|
11314
|
+
},
|
|
11315
|
+
zm: {
|
|
11316
|
+
type: "Parameter",
|
|
11317
|
+
label: "Meteorological Optical Range Mean",
|
|
11318
|
+
description: "Past 10 minute mean meteorological optical range, in meters",
|
|
11319
|
+
"data-type": "float",
|
|
11320
|
+
unit: {
|
|
11321
|
+
label: "meter",
|
|
11322
|
+
symbol: {
|
|
11323
|
+
value: "m",
|
|
11324
|
+
type: "https://qudt.org/vocab/unit/M.html"
|
|
11325
|
+
}
|
|
11326
|
+
},
|
|
11327
|
+
observedProperty: {
|
|
11328
|
+
label: "Meteorological optical range",
|
|
11329
|
+
description: "The Meteorological Optical Range is an objective physical parameter that is directly related to the extinction of light in the atmosphere. It is defined as the length of the path in the atmosphere required to reduce the luminous flux in a collimated beam from an incandescent lamp, at a color temperature of 2700 K, to 5% of its original value. This can be expressed as a function of the measured extinction (σ ): MOR ≈ 3/σ . The background luminance and the presence of light sources do not affect the MOR."
|
|
11330
|
+
},
|
|
11331
|
+
measurementType: {
|
|
11332
|
+
method: "mean",
|
|
11333
|
+
duration: "-PT10M"
|
|
11334
|
+
}
|
|
11335
|
+
}
|
|
11336
|
+
};
|
|
11337
|
+
var knmi_kdp_edr_collections_10_minute_in_situ_meteorological_observations_update = {
|
|
11338
|
+
id: id,
|
|
11339
|
+
title: title,
|
|
11340
|
+
description: description,
|
|
11341
|
+
links: links,
|
|
11342
|
+
extent: extent,
|
|
11343
|
+
data_queries: data_queries,
|
|
11344
|
+
crs: crs,
|
|
11345
|
+
output_formats: output_formats,
|
|
11346
|
+
parameter_names: parameter_names
|
|
11347
|
+
};
|
|
11348
|
+
|
|
11349
|
+
var type$1 = "FeatureCollection";
|
|
11350
|
+
var features = [
|
|
11351
|
+
{
|
|
11352
|
+
type: "Feature",
|
|
11353
|
+
geometry: {
|
|
11354
|
+
type: "Point",
|
|
11355
|
+
coordinates: [
|
|
11356
|
+
2.9358,
|
|
11357
|
+
54.3256,
|
|
11358
|
+
42.7
|
|
11359
|
+
]
|
|
11360
|
+
},
|
|
11361
|
+
properties: {
|
|
11362
|
+
name: "D15-FA-1",
|
|
11363
|
+
wmoId: "06201"
|
|
11364
|
+
},
|
|
11365
|
+
id: "0-20000-0-06201"
|
|
11366
|
+
},
|
|
11367
|
+
{
|
|
11368
|
+
type: "Feature",
|
|
11369
|
+
geometry: {
|
|
11370
|
+
type: "Point",
|
|
11371
|
+
coordinates: [
|
|
11372
|
+
3.3417,
|
|
11373
|
+
52.36,
|
|
11374
|
+
41.84
|
|
11375
|
+
]
|
|
11376
|
+
},
|
|
11377
|
+
properties: {
|
|
11378
|
+
name: "P11-B",
|
|
11379
|
+
wmoId: "06203"
|
|
11380
|
+
},
|
|
11381
|
+
id: "0-20000-0-06203"
|
|
11382
|
+
},
|
|
11383
|
+
{
|
|
11384
|
+
type: "Feature",
|
|
11385
|
+
geometry: {
|
|
11386
|
+
type: "Point",
|
|
11387
|
+
coordinates: [
|
|
11388
|
+
3.6278,
|
|
11389
|
+
53.2694,
|
|
11390
|
+
41.8
|
|
11391
|
+
]
|
|
11392
|
+
},
|
|
11393
|
+
properties: {
|
|
11394
|
+
name: "K14-FA-1C",
|
|
11395
|
+
wmoId: "06204"
|
|
11396
|
+
},
|
|
11397
|
+
id: "0-20000-0-06204"
|
|
11398
|
+
},
|
|
11399
|
+
{
|
|
11400
|
+
type: "Feature",
|
|
11401
|
+
geometry: {
|
|
11402
|
+
type: "Point",
|
|
11403
|
+
coordinates: [
|
|
11404
|
+
3.8103,
|
|
11405
|
+
55.3992,
|
|
11406
|
+
48.35
|
|
11407
|
+
]
|
|
11408
|
+
},
|
|
11409
|
+
properties: {
|
|
11410
|
+
name: "A12-CPP",
|
|
11411
|
+
wmoId: "06205"
|
|
11412
|
+
},
|
|
11413
|
+
id: "0-20000-0-06205"
|
|
11414
|
+
},
|
|
11415
|
+
{
|
|
11416
|
+
type: "Feature",
|
|
11417
|
+
geometry: {
|
|
9200
11418
|
type: "Point",
|
|
9201
11419
|
coordinates: [
|
|
9202
11420
|
4.0122,
|
|
@@ -12545,42 +14763,230 @@ var knmi_kdp_edr_collections_10_minute_in_situ_meteorological_observations_cube_
|
|
|
12545
14763
|
referencing: referencing
|
|
12546
14764
|
};
|
|
12547
14765
|
|
|
12548
|
-
/* *
|
|
12549
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12550
|
-
* you may not use this file except in compliance with the License.
|
|
12551
|
-
* You may obtain a copy of the License at
|
|
12552
|
-
*
|
|
12553
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12554
|
-
*
|
|
12555
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12556
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12557
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12558
|
-
* See the License for the specific language governing permissions and
|
|
12559
|
-
* limitations under the License.
|
|
12560
|
-
*
|
|
12561
|
-
* Copyright 2025 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12562
|
-
* Copyright 2025 - Finnish Meteorological Institute (FMI)
|
|
12563
|
-
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
12564
|
-
* */
|
|
12565
|
-
var fakeEdrLayerApiHandlers = [http.get('https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations', function () {
|
|
12566
|
-
return HttpResponse.json(knmi_kdp_edr_collections_10_minute_in_situ_meteorological_observations);
|
|
12567
|
-
}), http.get('https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations
|
|
12568
|
-
return HttpResponse.json(
|
|
12569
|
-
}), http.get('https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations/
|
|
12570
|
-
|
|
12571
|
-
|
|
12572
|
-
var
|
|
12573
|
-
var
|
|
12574
|
-
var
|
|
12575
|
-
|
|
12576
|
-
|
|
14766
|
+
/* *
|
|
14767
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
14768
|
+
* you may not use this file except in compliance with the License.
|
|
14769
|
+
* You may obtain a copy of the License at
|
|
14770
|
+
*
|
|
14771
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
14772
|
+
*
|
|
14773
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14774
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14775
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14776
|
+
* See the License for the specific language governing permissions and
|
|
14777
|
+
* limitations under the License.
|
|
14778
|
+
*
|
|
14779
|
+
* Copyright 2025 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
14780
|
+
* Copyright 2025 - Finnish Meteorological Institute (FMI)
|
|
14781
|
+
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
14782
|
+
* */
|
|
14783
|
+
var fakeEdrLayerApiHandlers = [http.get('https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations', function () {
|
|
14784
|
+
return HttpResponse.json(knmi_kdp_edr_collections_10_minute_in_situ_meteorological_observations);
|
|
14785
|
+
}), http.get('https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations-update', function () {
|
|
14786
|
+
return HttpResponse.json(knmi_kdp_edr_collections_10_minute_in_situ_meteorological_observations_update);
|
|
14787
|
+
}), http.get('https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations/locations', function () {
|
|
14788
|
+
return HttpResponse.json(knmi_kdp_edr_collections_10_minute_in_situ_meteorological_observations_locations);
|
|
14789
|
+
}), http.get('https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations/cube', function (_ref) {
|
|
14790
|
+
var request = _ref.request;
|
|
14791
|
+
var url = new URL(request.url);
|
|
14792
|
+
var parameterName = url.searchParams.get('parameter-name');
|
|
14793
|
+
var dateTime = url.searchParams.get('datetime');
|
|
14794
|
+
var bbox = url.searchParams.get('bbox');
|
|
14795
|
+
if (parameterName === 'ta' && dateTime === '2025-05-20T05:00:00Z' && bbox === '-180,-90,180,90') {
|
|
14796
|
+
return HttpResponse.json(knmi_kdp_edr_collections_10_minute_in_situ_meteorological_observations_cube_ta_20250520_0500);
|
|
14797
|
+
}
|
|
14798
|
+
return HttpResponse.json({
|
|
14799
|
+
error: "Parameter not found (got: [".concat(parameterName, "]/[").concat(dateTime, "]/[").concat(bbox, "]")
|
|
14800
|
+
}, {
|
|
14801
|
+
status: 404
|
|
14802
|
+
});
|
|
14803
|
+
}), http.get('https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations-update/cube', function (_ref2) {
|
|
14804
|
+
var request = _ref2.request;
|
|
14805
|
+
var url = new URL(request.url);
|
|
14806
|
+
var parameterName = url.searchParams.get('parameter-name');
|
|
14807
|
+
var dateTime = url.searchParams.get('datetime');
|
|
14808
|
+
var bbox = url.searchParams.get('bbox');
|
|
14809
|
+
if (parameterName === 'ta' && dateTime === '2025-05-20T05:00:00Z' && bbox === '-180,-90,180,90') {
|
|
14810
|
+
return HttpResponse.json(knmi_kdp_edr_collections_10_minute_in_situ_meteorological_observations_cube_ta_20250520_0500);
|
|
14811
|
+
}
|
|
14812
|
+
return HttpResponse.json({
|
|
14813
|
+
error: "Parameter not found (got: [".concat(parameterName, "]/[").concat(dateTime, "]/[").concat(bbox, "]")
|
|
14814
|
+
}, {
|
|
14815
|
+
status: 404
|
|
14816
|
+
});
|
|
14817
|
+
})];
|
|
14818
|
+
|
|
14819
|
+
var FeatureLayer = function FeatureLayer(_ref) {
|
|
14820
|
+
var features = _ref.features,
|
|
14821
|
+
style = _ref.style,
|
|
14822
|
+
zIndex = _ref.zIndex,
|
|
14823
|
+
hoverSelect = _ref.hoverSelect,
|
|
14824
|
+
clickOnFeature = _ref.clickOnFeature,
|
|
14825
|
+
testId = _ref.testId,
|
|
14826
|
+
opacity = _ref.opacity;
|
|
14827
|
+
var _useContext = useContext(MapContext),
|
|
14828
|
+
map = _useContext.map;
|
|
14829
|
+
var _useState = useState(),
|
|
14830
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
14831
|
+
source = _useState2[0],
|
|
14832
|
+
setSource = _useState2[1];
|
|
14833
|
+
var layerRef = useRef();
|
|
14834
|
+
useEffect(function () {
|
|
14835
|
+
if (!map) {
|
|
14836
|
+
return function () {};
|
|
14837
|
+
}
|
|
14838
|
+
var source = new VectorSource({
|
|
14839
|
+
features: []
|
|
14840
|
+
});
|
|
14841
|
+
var layer = new Vector({
|
|
14842
|
+
source: source,
|
|
14843
|
+
zIndex: zIndex,
|
|
14844
|
+
style: style,
|
|
14845
|
+
properties: {
|
|
14846
|
+
testId: testId
|
|
14847
|
+
},
|
|
14848
|
+
opacity: opacity
|
|
14849
|
+
});
|
|
14850
|
+
layerRef.current = layer;
|
|
14851
|
+
layer.set('layerType', 'FeatureLayer');
|
|
14852
|
+
setSource(source);
|
|
14853
|
+
map.addLayer(layer);
|
|
14854
|
+
return function () {
|
|
14855
|
+
setSource(undefined);
|
|
14856
|
+
source.clear();
|
|
14857
|
+
map.removeLayer(layer);
|
|
14858
|
+
};
|
|
14859
|
+
// NOTE: style should not be part of this effect, as it changes always, causing the layer to be add/removed continuousely.
|
|
14860
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
14861
|
+
}, [map, zIndex, testId]);
|
|
14862
|
+
useEffect(function () {
|
|
14863
|
+
// Handle style function:
|
|
14864
|
+
if (layerRef.current && style) {
|
|
14865
|
+
var _layerRef$current;
|
|
14866
|
+
(_layerRef$current = layerRef.current) === null || _layerRef$current === void 0 || _layerRef$current.setStyle(style);
|
|
14867
|
+
}
|
|
14868
|
+
}, [style]);
|
|
14869
|
+
useEffect(function () {
|
|
14870
|
+
// Handle opacity:
|
|
14871
|
+
if (layerRef.current && opacity) {
|
|
14872
|
+
var _layerRef$current2;
|
|
14873
|
+
(_layerRef$current2 = layerRef.current) === null || _layerRef$current2 === void 0 || _layerRef$current2.setOpacity(opacity);
|
|
14874
|
+
}
|
|
14875
|
+
}, [opacity]);
|
|
14876
|
+
useEffect(function () {
|
|
14877
|
+
if (!source) {
|
|
14878
|
+
return;
|
|
14879
|
+
}
|
|
14880
|
+
source.clear();
|
|
14881
|
+
if (features && features.length > 0) {
|
|
14882
|
+
source.addFeatures(features);
|
|
14883
|
+
}
|
|
14884
|
+
}, [source, features]);
|
|
14885
|
+
useEffect(function () {
|
|
14886
|
+
if (!map || !source || !hoverSelect || !hoverSelect.active) {
|
|
14887
|
+
return function () {};
|
|
14888
|
+
}
|
|
14889
|
+
var previousHover = [];
|
|
14890
|
+
var pointerMoveFunction = debounce(function (evt) {
|
|
14891
|
+
var hoveredFeature = map.forEachFeatureAtPixel(evt.pixel, function (feature, layer) {
|
|
14892
|
+
if (!layer || layer.getSource() !== source) {
|
|
14893
|
+
return false;
|
|
14894
|
+
}
|
|
14895
|
+
return feature;
|
|
14896
|
+
});
|
|
14897
|
+
if (hoveredFeature && previousHover.includes(hoveredFeature)) {
|
|
14898
|
+
return;
|
|
14899
|
+
}
|
|
14900
|
+
var unhovered = previousHover.length > 0;
|
|
14901
|
+
previousHover.forEach(function (feature) {
|
|
14902
|
+
feature.set('hover', false);
|
|
14903
|
+
});
|
|
14904
|
+
previousHover.splice(0);
|
|
14905
|
+
if (hoveredFeature) {
|
|
14906
|
+
previousHover.push(hoveredFeature);
|
|
14907
|
+
hoveredFeature.set('hover', true);
|
|
14908
|
+
hoverSelect.onHover && hoverSelect.onHover(hoveredFeature);
|
|
14909
|
+
} else if (unhovered) {
|
|
14910
|
+
hoverSelect.onHover && hoverSelect.onHover(undefined);
|
|
14911
|
+
}
|
|
14912
|
+
}, 5, {});
|
|
14913
|
+
var eventKey = map.on('pointermove', pointerMoveFunction);
|
|
14914
|
+
return function () {
|
|
14915
|
+
pointerMoveFunction.cancel();
|
|
14916
|
+
source.getFeatures().forEach(function (feature) {
|
|
14917
|
+
feature.set('hover', false);
|
|
14918
|
+
});
|
|
14919
|
+
unByKey(eventKey);
|
|
14920
|
+
hoverSelect.onHover && hoverSelect.onHover(undefined);
|
|
14921
|
+
};
|
|
14922
|
+
}, [map, source, hoverSelect]);
|
|
14923
|
+
useEffect(function () {
|
|
14924
|
+
if (!map || !source || !clickOnFeature) {
|
|
14925
|
+
return function () {};
|
|
14926
|
+
}
|
|
14927
|
+
var clickFunction = function clickFunction(evt) {
|
|
14928
|
+
var features = [];
|
|
14929
|
+
map.forEachFeatureAtPixel(evt.pixel, function (feature) {
|
|
14930
|
+
features.push(feature);
|
|
14931
|
+
}, {
|
|
14932
|
+
hitTolerance: clickOnFeature.hitTolerance
|
|
14933
|
+
});
|
|
14934
|
+
clickOnFeature.onClick(features);
|
|
14935
|
+
};
|
|
14936
|
+
var eventKey = map.on('click', clickFunction);
|
|
14937
|
+
return function () {
|
|
14938
|
+
unByKey(eventKey);
|
|
14939
|
+
};
|
|
14940
|
+
}, [map, source, clickOnFeature]);
|
|
14941
|
+
return null;
|
|
14942
|
+
};
|
|
14943
|
+
|
|
14944
|
+
var defaultLegend = makeLegendFromColorMap({
|
|
14945
|
+
colors: colorMaps.temperatureLegendColorsWoW,
|
|
14946
|
+
min: -18,
|
|
14947
|
+
max: 38
|
|
14948
|
+
});
|
|
14949
|
+
// Style needs to be optional to match the other layers. Therefore a default style is made here once.
|
|
14950
|
+
var defaultStyle = function defaultStyle(feature) {
|
|
14951
|
+
return makeFeatureStyleDisc(feature, defaultLegend);
|
|
14952
|
+
};
|
|
14953
|
+
var OpenLayersFeatureLayer = function OpenLayersFeatureLayer(_ref) {
|
|
14954
|
+
var featureCollection = _ref.featureCollection,
|
|
14955
|
+
_ref$style = _ref.style,
|
|
14956
|
+
style = _ref$style === void 0 ? defaultStyle : _ref$style,
|
|
14957
|
+
zIndex = _ref.zIndex,
|
|
14958
|
+
hoverSelect = _ref.hoverSelect,
|
|
14959
|
+
clickOnFeature = _ref.clickOnFeature,
|
|
14960
|
+
testId = _ref.testId,
|
|
14961
|
+
opacity = _ref.opacity;
|
|
14962
|
+
var projection = useProjection();
|
|
14963
|
+
var featureCollectionRef = useRef();
|
|
14964
|
+
var features = useRef([]);
|
|
14965
|
+
var featureCollectionHasChanges = featureCollectionRef.current !== featureCollection;
|
|
14966
|
+
if (featureCollectionHasChanges) {
|
|
14967
|
+
if (projection && featureCollection) {
|
|
14968
|
+
// eslint-disable-next-line no-console
|
|
14969
|
+
featureCollectionRef.current = featureCollection;
|
|
14970
|
+
var formatter = new GeoJSON({
|
|
14971
|
+
featureProjection: projection
|
|
14972
|
+
});
|
|
14973
|
+
features.current = formatter.readFeatures(featureCollection);
|
|
14974
|
+
}
|
|
12577
14975
|
}
|
|
12578
|
-
|
|
12579
|
-
|
|
12580
|
-
|
|
12581
|
-
|
|
14976
|
+
// If no featureCollection is given, e.g. in edit mode of a polygon, the feature should not be displayed.
|
|
14977
|
+
if (!featureCollection) {
|
|
14978
|
+
return null;
|
|
14979
|
+
}
|
|
14980
|
+
return jsx(FeatureLayer, {
|
|
14981
|
+
features: features.current,
|
|
14982
|
+
style: style,
|
|
14983
|
+
zIndex: zIndex,
|
|
14984
|
+
hoverSelect: hoverSelect,
|
|
14985
|
+
clickOnFeature: clickOnFeature,
|
|
14986
|
+
testId: testId,
|
|
14987
|
+
opacity: opacity
|
|
12582
14988
|
});
|
|
12583
|
-
}
|
|
14989
|
+
};
|
|
12584
14990
|
|
|
12585
14991
|
/* *
|
|
12586
14992
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -12616,32 +15022,26 @@ var coverageCollectionToFeatureCollection = function coverageCollectionToFeature
|
|
|
12616
15022
|
})) || [];
|
|
12617
15023
|
var featurePoint = {
|
|
12618
15024
|
type: 'FeatureCollection',
|
|
12619
|
-
features: latLonValues
|
|
12620
|
-
var _val$properties;
|
|
12621
|
-
return val === null || val === void 0 || (_val$properties = val.properties) === null || _val$properties === void 0 ? void 0 : _val$properties.value;
|
|
12622
|
-
})
|
|
15025
|
+
features: latLonValues
|
|
12623
15026
|
};
|
|
12624
15027
|
return featurePoint;
|
|
12625
15028
|
};
|
|
12626
15029
|
|
|
12627
|
-
var discretizeTime = function discretizeTime(isoDate, epochPeriodSeconds) {
|
|
12628
|
-
if (!isoDate) {
|
|
12629
|
-
return isoDate;
|
|
12630
|
-
}
|
|
12631
|
-
var dateNumber = dateUtils.parseISO(isoDate).getTime();
|
|
12632
|
-
var epochPeriodAsMillis = epochPeriodSeconds * 1000;
|
|
12633
|
-
var discretizedDate = Math.round(dateNumber / epochPeriodAsMillis) * epochPeriodAsMillis;
|
|
12634
|
-
return dateUtils.fromUnix(discretizedDate / 1000).toISOString();
|
|
12635
|
-
};
|
|
12636
15030
|
var TimeAwareEDRLocationLayer = function TimeAwareEDRLocationLayer(_ref) {
|
|
12637
|
-
var
|
|
12638
|
-
|
|
12639
|
-
edrBaseUrl = _ref.edrBaseUrl,
|
|
12640
|
-
collectionId = _ref.collectionId,
|
|
15031
|
+
var _wmLayer$getDimension;
|
|
15032
|
+
var edrBaseUrl = _ref.edrBaseUrl,
|
|
12641
15033
|
parameter = _ref.parameter,
|
|
12642
15034
|
style = _ref.style,
|
|
12643
|
-
zIndex = _ref.zIndex
|
|
12644
|
-
|
|
15035
|
+
zIndex = _ref.zIndex,
|
|
15036
|
+
opacity = _ref.opacity,
|
|
15037
|
+
dimensions = _ref.dimensions,
|
|
15038
|
+
layerId = _ref.layerId,
|
|
15039
|
+
onInitializeLayer = _ref.onInitializeLayer;
|
|
15040
|
+
// get a wmLayer instance
|
|
15041
|
+
var wmLayer = useGetEDRLayerInstance(edrBaseUrl, parameter, layerId, onInitializeLayer);
|
|
15042
|
+
// dimensionsValues is a key/value dictionary with dimension names specifically for WMS GetMap requests. We re-use it here for EDR.
|
|
15043
|
+
var dimensionsValues = getDimensionParamsForWMS(dimensions, wmLayer);
|
|
15044
|
+
var timeValue = dimensionsValues && dimensionsValues['TIME'];
|
|
12645
15045
|
var _React$useState = React__default.useState({
|
|
12646
15046
|
features: [],
|
|
12647
15047
|
type: 'FeatureCollection'
|
|
@@ -12649,22 +15049,143 @@ var TimeAwareEDRLocationLayer = function TimeAwareEDRLocationLayer(_ref) {
|
|
|
12649
15049
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
12650
15050
|
featurePoints = _React$useState2[0],
|
|
12651
15051
|
setFeaturePoints = _React$useState2[1];
|
|
12652
|
-
var
|
|
15052
|
+
var edrQueryDateTime = (wmLayer === null || wmLayer === void 0 || (_wmLayer$getDimension = wmLayer.getDimension('time')) === null || _wmLayer$getDimension === void 0 ? void 0 : _wmLayer$getDimension.getClosestValue(timeValue)) || timeValue;
|
|
15053
|
+
var result = useEDRLayerCollectionCube(edrBaseUrl, parameter, edrQueryDateTime);
|
|
12653
15054
|
React__default.useEffect(function () {
|
|
12654
15055
|
var featurePoint = coverageCollectionToFeatureCollection(result.data, parameter);
|
|
12655
15056
|
if (!featurePoint) {
|
|
12656
15057
|
return;
|
|
12657
15058
|
}
|
|
12658
15059
|
setFeaturePoints(featurePoint);
|
|
12659
|
-
|
|
12660
|
-
}, [edrBaseUrl, parameter, result.data]);
|
|
15060
|
+
}, [parameter, result.data]);
|
|
12661
15061
|
return jsx(OpenLayersFeatureLayer, {
|
|
12662
15062
|
featureCollection: featurePoints,
|
|
12663
15063
|
style: result.isFetching ? makeFeatureStyleLoading : style,
|
|
15064
|
+
opacity: opacity,
|
|
12664
15065
|
zIndex: zIndex
|
|
12665
15066
|
});
|
|
12666
15067
|
};
|
|
12667
15068
|
|
|
15069
|
+
var OpenLayersLayer = function OpenLayersLayer(layerProps) {
|
|
15070
|
+
var id = layerProps.id,
|
|
15071
|
+
service = layerProps.service,
|
|
15072
|
+
enabled = layerProps.enabled,
|
|
15073
|
+
name = layerProps.name,
|
|
15074
|
+
style = layerProps.style,
|
|
15075
|
+
dimensions = layerProps.dimensions,
|
|
15076
|
+
opacity = layerProps.opacity,
|
|
15077
|
+
zIndex = layerProps.zIndex,
|
|
15078
|
+
onInitializeLayer = layerProps.onInitializeLayer,
|
|
15079
|
+
onLayerReady = layerProps.onLayerReady,
|
|
15080
|
+
onLayerError = layerProps.onLayerError,
|
|
15081
|
+
debugMode = layerProps.debugMode,
|
|
15082
|
+
_layerProps$layerType = layerProps.layerType,
|
|
15083
|
+
layerType = _layerProps$layerType === void 0 ? LayerType.mapLayer : _layerProps$layerType,
|
|
15084
|
+
_layerProps$tileServe = layerProps.tileServerSettings,
|
|
15085
|
+
tileServerSettings = _layerProps$tileServe === void 0 ? tilesettings : _layerProps$tileServe;
|
|
15086
|
+
var isBaseLayer = layerType === LayerType.baseLayer;
|
|
15087
|
+
var isOverlay = layerType === LayerType.overLayer;
|
|
15088
|
+
var layerOptions = useMemo(function () {
|
|
15089
|
+
return {
|
|
15090
|
+
opacity: opacity !== null && opacity !== undefined ? opacity : 1,
|
|
15091
|
+
zIndex: zIndex || 0
|
|
15092
|
+
};
|
|
15093
|
+
}, [opacity, zIndex]);
|
|
15094
|
+
var _useContext = useContext(MapContext),
|
|
15095
|
+
map = _useContext.map;
|
|
15096
|
+
// Check standard maplayers
|
|
15097
|
+
if (!isOverlay && !isBaseLayer) {
|
|
15098
|
+
switch (layerType) {
|
|
15099
|
+
case LayerType.mapLayer:
|
|
15100
|
+
return jsx(TimeawareImageSourceWMSLayer, {
|
|
15101
|
+
getCapsURL: service,
|
|
15102
|
+
layerName: name,
|
|
15103
|
+
layerOptions: layerOptions,
|
|
15104
|
+
layerId: id,
|
|
15105
|
+
dimensions: dimensions,
|
|
15106
|
+
visible: !!(enabled !== false),
|
|
15107
|
+
styleName: style,
|
|
15108
|
+
onInitializeLayer: onInitializeLayer,
|
|
15109
|
+
onLayerReady: onLayerReady,
|
|
15110
|
+
onLayerError: onLayerError,
|
|
15111
|
+
debugMode: debugMode
|
|
15112
|
+
});
|
|
15113
|
+
case LayerType.edrLayer:
|
|
15114
|
+
{
|
|
15115
|
+
var styleLike = style !== undefined ? styleNameToStyleLike(style) : undefined;
|
|
15116
|
+
return jsx(TimeAwareEDRLocationLayer, {
|
|
15117
|
+
layerId: id,
|
|
15118
|
+
edrBaseUrl: service,
|
|
15119
|
+
parameter: name,
|
|
15120
|
+
dimensions: dimensions,
|
|
15121
|
+
zIndex: layerOptions.zIndex,
|
|
15122
|
+
style: styleLike,
|
|
15123
|
+
opacity: layerOptions.opacity,
|
|
15124
|
+
onInitializeLayer: onInitializeLayer
|
|
15125
|
+
});
|
|
15126
|
+
}
|
|
15127
|
+
}
|
|
15128
|
+
}
|
|
15129
|
+
// Check the other layers
|
|
15130
|
+
if (isBaseLayer || isOverlay) {
|
|
15131
|
+
var type = layerProps.type,
|
|
15132
|
+
_name = layerProps.name,
|
|
15133
|
+
_service = layerProps.service,
|
|
15134
|
+
tileServer = layerProps.tileServer;
|
|
15135
|
+
if (type === 'twms' && _name) {
|
|
15136
|
+
var _map$getView;
|
|
15137
|
+
var tileSettingByName = tileServerSettings[_name] || tileServer && tileServer[_name];
|
|
15138
|
+
if (!tileSettingByName) {
|
|
15139
|
+
console.warn("Tilesetting with name ".concat(_name, " not found in "), tileServerSettings, tileServer);
|
|
15140
|
+
}
|
|
15141
|
+
var projectionName = map === null || map === void 0 || (_map$getView = map.getView()) === null || _map$getView === void 0 || (_map$getView = _map$getView.getProjection()) === null || _map$getView === void 0 ? void 0 : _map$getView.getCode();
|
|
15142
|
+
var projectionUsedFromTileServer = tileSettingByName[projectionName] ? projectionName : 'EPSG:3857';
|
|
15143
|
+
var tileSettingForCRS = tileSettingByName && projectionName && tileSettingByName[projectionUsedFromTileServer];
|
|
15144
|
+
if (tileSettingForCRS) {
|
|
15145
|
+
var home = tileSettingForCRS.home,
|
|
15146
|
+
tileServerType = tileSettingForCRS.tileServerType,
|
|
15147
|
+
urlTemplateOverride = tileSettingForCRS.urlTemplate;
|
|
15148
|
+
var urlTemplate = (urlTemplateOverride === null || urlTemplateOverride === void 0 ? void 0 : urlTemplateOverride(home)) || '';
|
|
15149
|
+
if (!urlTemplateOverride) {
|
|
15150
|
+
switch (tileServerType) {
|
|
15151
|
+
case 'arcgisonline':
|
|
15152
|
+
urlTemplate = "".concat(home, "{z}/{y}/{x}.png");
|
|
15153
|
+
break;
|
|
15154
|
+
case 'osm':
|
|
15155
|
+
urlTemplate = "".concat(home, "{z}/{x}/{y}.png");
|
|
15156
|
+
break;
|
|
15157
|
+
case 'wmst':
|
|
15158
|
+
urlTemplate = "".concat(home, "{z}/{y}/{x}");
|
|
15159
|
+
break;
|
|
15160
|
+
}
|
|
15161
|
+
}
|
|
15162
|
+
if (!urlTemplate) {
|
|
15163
|
+
console.warn("Tile server type ".concat(tileServerType, " not supported"), tileServerSettings, tileServer);
|
|
15164
|
+
}
|
|
15165
|
+
return jsx(XYZLayer, {
|
|
15166
|
+
urlTemplate: urlTemplate,
|
|
15167
|
+
layerOptions: layerOptions,
|
|
15168
|
+
layerProps: _objectSpread2(_objectSpread2({}, layerProps), {}, {
|
|
15169
|
+
enabled: true
|
|
15170
|
+
}),
|
|
15171
|
+
tileProjectionCode: projectionUsedFromTileServer
|
|
15172
|
+
});
|
|
15173
|
+
}
|
|
15174
|
+
} else if (_name && _service) {
|
|
15175
|
+
return jsx(WMSLayer, {
|
|
15176
|
+
layerName: _name,
|
|
15177
|
+
layerOptions: layerOptions,
|
|
15178
|
+
layerProps: layerProps,
|
|
15179
|
+
url: _service,
|
|
15180
|
+
styleName: style || 'default'
|
|
15181
|
+
});
|
|
15182
|
+
} else if (baseLayer) {
|
|
15183
|
+
return jsx(DefaultBaseLayers, {});
|
|
15184
|
+
}
|
|
15185
|
+
}
|
|
15186
|
+
return jsx("div", {});
|
|
15187
|
+
};
|
|
15188
|
+
|
|
12668
15189
|
var createIconStyle = memoize(function (input, options) {
|
|
12669
15190
|
var _options$render, _options$render2;
|
|
12670
15191
|
var svgPath = _typeof(input) === 'object' ? input.path : input;
|
|
@@ -13641,4 +16162,4 @@ var getLayerUpdateInfo = function getLayerUpdateInfo(wmLayer, mapId) {
|
|
|
13641
16162
|
return updateObject;
|
|
13642
16163
|
};
|
|
13643
16164
|
|
|
13644
|
-
export { BaseLayerType, ClickOnMapTool, DRAWMODE, DefaultBaseLayers, DimensionSelectButton, DimensionSelectDialog, DimensionSelectSlider, EditModeButton as EditModeButtonField, FEATURE_FILL, FEATURE_STROKE, FEATURE_STROKE_EDIT, FEATURE_VERTICES_EDIT_HANDLES, FEATURE_VERTICE_HANDLE_IMAGE, FEATURE_VERTICE_IMAGE, FeatureLayer, FeatureLayers, GeoJSONTextField, ICON_LOCATIONMARKER, ICON_LOCATIONMARKER_MODIFY, IntersectionSelect, LayerInfoButton, LayerInfoDialog, LayerInfoLegend, LayerInfoList, LayerInfoText, Legend, LegendButton, LegendDialog, LegendLayout, MapContext, MapControlButton, MapControls, MapDimensionSelect, MapFeatureClass, MapTime, MapWarningProperties, NEW_FEATURE_CREATED, NEW_LINESTRING_CREATED, NEW_POINT_CREATED, OpenLayersFeatureLayer, OpenLayersGetFeatureInfo, OpenLayersLayer, OpenLayersMapDraw, OpenLayersMapView, OpenLayersZoomControl, Proj4js, SelectField, StoryLayoutGrid, TimeAwareEDRLocationLayer, TimeContext, TimeawareImageSource, TimeawareImageSourceWMSLayer, WEBMAP_REACT_NAMESPACE, WMSLayer, WMTSLayer, XYZLayer, ZoomControls, addFeatureProperties, addGeoJSONProperties, addSelectionTypeToGeoJSON, basicExampleDrawOptions, basicExampleMultipleShapeDrawOptions, basicExampleMultipleShapeWithValuesDrawOptions, clearImageCacheForAllMaps, colorMaps, createIconStyle, createInterSections, currentlySupportedDrawModes, defaultBox, defaultDelete, defaultGeoJSONStyleProperties, defaultIntersectionStyleProperties, defaultLayers, defaultModes, defaultPoint, defaultPolygon, defaultTimeFormat, dimensionConfig, drawPolyStoryStyles, drawStyles, emptyGeoJSON, endToolExampleConfig, exampleIntersectionOptions, exampleIntersectionWithShapeOptions, exampleIntersections, exampleIntersectionsMultiDrawTool, fakeEdrLayerApiHandlers, featureBox, featureMultiPoint, featurePoint, featurePolygon, fillOptions, firSelectionType, formatTime, genericOpenLayersFeatureStyle, geowebColorToOpenLayersColor, getDimensionIcon, getDimensionLabel, getDimensionValue, getDimensionsList, getDoubleControlToolIcon, getFeatureCollection, getFeatureExtent, getFirTitle, getGeoJSONPropertyValue, getGeoJson, getIcon, getIntersectionToolIcon, getIsInsideAcceptanceTime, getLastEmptyFeatureIndex, getLayerBbox, getLayerStyles, getLayerUpdateInfo, getLegendClass, getProj4, getTimeDimension, getToolIcon, initializeOpenLayersProjections, inlineFeatureStyle, intersectPointGeoJSONS, intersectPolygonGeoJSONS, intersectionFeatureBE, intersectionFeatureNL, isGeoJSONFeatureCreatedByTool, isGeoJSONGeometryEmpty, isPointFeatureCollection, lineString, lineStringCollection, makeFeatureStyleDisc, makeFeatureStyleLoading, makeLegendFromColorMap, makeView, marksByDimension, modifyStyles, moveFeature, multiLineStringLabelStyle, multiPolygonLabelStyle, opacityOptions, openLayersGetMapImageStore, projectorCache, publicLayers, publicServices, rewindGeometry, selectPreferredWMSProjection, setMapCenter, setViewFromExtent, setViewFromFeature, simpleBoxGeoJSON, simpleBoxGeoJSONWrongOrder, simpleFlightRouteLineStringGeoJSON, simpleFlightRoutePointsGeoJSON, simpleGeometryCollectionGeoJSON, simpleLineStringGeoJSON, simpleMultiPolygon, simplePointsGeojson, simplePolygonGeoJSON, simpleSmallLineStringGeoJSON, startToolExampleConfig, strokeWidthOptions, textLabelStyle, textStyle, textStyleWithMargin, updateEditModeButtonsWithFir, useAnimationForLayer,
|
|
16165
|
+
export { BaseLayerType, ClickOnMapTool, DRAWMODE, DefaultBaseLayers, DimensionSelectButton, DimensionSelectDialog, DimensionSelectSlider, EditModeButton as EditModeButtonField, FEATURE_FILL, FEATURE_STROKE, FEATURE_STROKE_EDIT, FEATURE_VERTICES_EDIT_HANDLES, FEATURE_VERTICE_HANDLE_IMAGE, FEATURE_VERTICE_IMAGE, FeatureLayer, FeatureLayers, GeoJSONTextField, ICON_LOCATIONMARKER, ICON_LOCATIONMARKER_MODIFY, IntersectionSelect, LayerInfoButton, LayerInfoDialog, LayerInfoLegend, LayerInfoList, LayerInfoText, Legend, LegendButton, LegendDialog, LegendLayout, MapContext, MapControlButton, MapControls, MapDimensionSelect, MapFeatureClass, MapTime, MapWarningProperties, NEW_FEATURE_CREATED, NEW_LINESTRING_CREATED, NEW_POINT_CREATED, OpenLayersFeatureLayer, OpenLayersGetFeatureInfo, OpenLayersLayer, OpenLayersMapDraw, OpenLayersMapView, OpenLayersZoomControl, Proj4js, SelectField, StoryLayoutGrid, TimeAwareEDRLocationLayer, TimeContext, TimeawareImageSource, TimeawareImageSourceWMSLayer, WEBMAP_REACT_NAMESPACE, WMSLayer, WMTSLayer, XYZLayer, ZoomControls, addFeatureProperties, addGeoJSONProperties, addSelectionTypeToGeoJSON, basicExampleDrawOptions, basicExampleMultipleShapeDrawOptions, basicExampleMultipleShapeWithValuesDrawOptions, clearImageCacheForAllMaps, colorMaps, createIconStyle, createInterSections, currentlySupportedDrawModes, defaultBox, defaultDelete, defaultGeoJSONStyleProperties, defaultIntersectionStyleProperties, defaultLayers, defaultModes, defaultPoint, defaultPolygon, defaultTimeFormat, dimensionConfig, drawPolyStoryStyles, drawStyles, emptyGeoJSON, endToolExampleConfig, exampleIntersectionOptions, exampleIntersectionWithShapeOptions, exampleIntersections, exampleIntersectionsMultiDrawTool, fakeEdrLayerApiHandlers, featureBox, featureMultiPoint, featurePoint, featurePolygon, fillOptions, firSelectionType, formatTime, genericOpenLayersFeatureStyle, geowebColorToOpenLayersColor, getDimensionIcon, getDimensionLabel, getDimensionValue, getDimensionsList, getDoubleControlToolIcon, getFeatureCollection, getFeatureExtent, getFirTitle, getGeoJSONPropertyValue, getGeoJson, getIcon, getIntersectionToolIcon, getIsInsideAcceptanceTime, getLastEmptyFeatureIndex, getLayerBbox, getLayerStyles, getLayerUpdateInfo, getLegendClass, getProj4, getTimeDimension, getToolIcon, initializeOpenLayersProjections, inlineFeatureStyle, intersectPointGeoJSONS, intersectPolygonGeoJSONS, intersectionFeatureBE, intersectionFeatureNL, isGeoJSONFeatureCreatedByTool, isGeoJSONGeometryEmpty, isPointFeatureCollection, lineString, lineStringCollection, makeFeatureStyleDisc, makeFeatureStyleLoading, makeLegendFromColorMap, makeView, marksByDimension, modifyStyles, moveFeature, multiLineStringLabelStyle, multiPolygonLabelStyle, opacityOptions, openLayersGetMapImageStore, precipitationMMLegendColorsWoW, projectorCache, publicLayers, publicServices, rewindGeometry, selectPreferredWMSProjection, setMapCenter, setViewFromExtent, setViewFromFeature, simpleBoxGeoJSON, simpleBoxGeoJSONWrongOrder, simpleFlightRouteLineStringGeoJSON, simpleFlightRoutePointsGeoJSON, simpleGeometryCollectionGeoJSON, simpleLineStringGeoJSON, simpleMultiPolygon, simplePointsGeojson, simplePolygonGeoJSON, simpleSmallLineStringGeoJSON, startToolExampleConfig, strokeWidthOptions, styleNameToStyleLike, temperatureLegendColorsCWK, temperatureLegendColorsWoW, textLabelStyle, textStyle, textStyleWithMargin, updateEditModeButtonsWithFir, useAnimationForLayer, useEDRLayerCollection, useEDRLayerCollectionCube, useGeoJSON, useGetEDRLayerInstance, useGetWMLayerInstance, useGetWMSLayerStyleList, useIconStyle, useMapDrawTool, useProjection, useQueryGetWMSGetCapabilities, useQueryGetWMSLayer, useQueryGetWMSLayers, useQueryGetWMSLayersTree, useQueryGetWMSServiceInfo, useQueryWMTSGetCapabilities, useSetIntervalWhenVisible, useViewFromLayer, viewUtils, webmapReactTranslations };
|