@opengeoweb/webmap-react 12.10.0 → 12.12.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 +3483 -892
- 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/ShowTimeAwareLayerInfo.spec.d.ts +1 -0
- 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
|
|
@@ -4969,6 +5003,47 @@ var getTimeStepsToCheck = function getTimeStepsToCheck(timespan) {
|
|
|
4969
5003
|
*/
|
|
4970
5004
|
var getTimeStepsToCheckMemoized = memoize(getTimeStepsToCheck);
|
|
4971
5005
|
|
|
5006
|
+
var getDimensionName = function getDimensionName(dimName) {
|
|
5007
|
+
switch (dimName) {
|
|
5008
|
+
case 'time':
|
|
5009
|
+
return 'val';
|
|
5010
|
+
case 'reference_time':
|
|
5011
|
+
return 'ref';
|
|
5012
|
+
default:
|
|
5013
|
+
{
|
|
5014
|
+
var split = dimName.split('_');
|
|
5015
|
+
if (split[0] === 'pressure') {
|
|
5016
|
+
return 'p';
|
|
5017
|
+
}
|
|
5018
|
+
if (split[0] === 'height') {
|
|
5019
|
+
return 'h';
|
|
5020
|
+
}
|
|
5021
|
+
return split[0];
|
|
5022
|
+
}
|
|
5023
|
+
}
|
|
5024
|
+
};
|
|
5025
|
+
var formatDimensionVal = function formatDimensionVal(dimName, dimVal) {
|
|
5026
|
+
switch (dimName) {
|
|
5027
|
+
case 'time':
|
|
5028
|
+
case 'reference_time':
|
|
5029
|
+
{
|
|
5030
|
+
var date = dateUtils.stringToDate(dimVal, "yyyy-MM-dd'T'HH:mm:ss'Z'", true);
|
|
5031
|
+
if (date) {
|
|
5032
|
+
return dateUtils.dateToString(date, "MM-dd HH:mm'Z'", true);
|
|
5033
|
+
}
|
|
5034
|
+
return dimVal;
|
|
5035
|
+
}
|
|
5036
|
+
default:
|
|
5037
|
+
{
|
|
5038
|
+
return dimVal;
|
|
5039
|
+
}
|
|
5040
|
+
}
|
|
5041
|
+
};
|
|
5042
|
+
var getDimensionInfo = function getDimensionInfo(wmLayerDimension) {
|
|
5043
|
+
var layerName = getDimensionName(wmLayerDimension.name);
|
|
5044
|
+
var layerVal = formatDimensionVal(wmLayerDimension.name, wmLayerDimension.currentValue);
|
|
5045
|
+
return "".concat(layerName, " ").concat(layerVal);
|
|
5046
|
+
};
|
|
4972
5047
|
var ShowTimeAwareLayerInfo = function ShowTimeAwareLayerInfo(_ref) {
|
|
4973
5048
|
var _wmLayer$dimensions;
|
|
4974
5049
|
var wmLayer = _ref.wmLayer,
|
|
@@ -5005,9 +5080,9 @@ var ShowTimeAwareLayerInfo = function ShowTimeAwareLayerInfo(_ref) {
|
|
|
5005
5080
|
var isSelectedStep = visible && (wmTimeDim === null || wmTimeDim === void 0 ? void 0 : wmTimeDim.currentValue) === closestValue;
|
|
5006
5081
|
var colorImageIsAvailable = requestedStepHasImage ? '#40AF50' : '#FF0000';
|
|
5007
5082
|
var colorLayerIsOutsideRange = requestedStepIsOutsideRange ? '#5080FA' : colorImageIsAvailable;
|
|
5008
|
-
var height = requestedStepIsOutsideRange ? '15px' : '
|
|
5009
|
-
var top = requestedStepIsOutsideRange ? '5px' : '
|
|
5010
|
-
var left = "".concat(index * itemWidth, "px");
|
|
5083
|
+
var height = requestedStepIsOutsideRange ? '15px' : '20px';
|
|
5084
|
+
var top = requestedStepIsOutsideRange ? '5px' : '2px';
|
|
5085
|
+
var left = "calc(25% + ".concat(index * itemWidth, "px)");
|
|
5011
5086
|
var opacity = isSelectedStep ? 1 : 0.8;
|
|
5012
5087
|
return jsx("span", {
|
|
5013
5088
|
style: {
|
|
@@ -5026,62 +5101,87 @@ var ShowTimeAwareLayerInfo = function ShowTimeAwareLayerInfo(_ref) {
|
|
|
5026
5101
|
});
|
|
5027
5102
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5028
5103
|
}, [layer, timeStepsToCheck, visible, wmTimeDim === null || wmTimeDim === void 0 ? void 0 : wmTimeDim.currentValue, render]);
|
|
5029
|
-
|
|
5030
|
-
|
|
5031
|
-
|
|
5032
|
-
|
|
5033
|
-
|
|
5034
|
-
|
|
5035
|
-
|
|
5036
|
-
|
|
5037
|
-
}
|
|
5038
|
-
|
|
5039
|
-
|
|
5040
|
-
|
|
5041
|
-
|
|
5042
|
-
}), jsxs("div", {
|
|
5104
|
+
var dimsInfo = wmLayer === null || wmLayer === void 0 ? void 0 : wmLayer.dimensions.map(function (wmLayerDimension) {
|
|
5105
|
+
return getDimensionInfo(wmLayerDimension);
|
|
5106
|
+
});
|
|
5107
|
+
var tooltipText = jsxs("span", {
|
|
5108
|
+
children: [wmLayer === null || wmLayer === void 0 ? void 0 : wmLayer.title, ": ", jsx("br", {}), wmLayer === null || wmLayer === void 0 ? void 0 : wmLayer.dimensions.map(function (dim, index) {
|
|
5109
|
+
return jsxs("span", {
|
|
5110
|
+
children: [dim.name, ": ", formatDimensionVal(dim.name, dim.currentValue), index < dimsInfo.length - 1 && jsx("br", {})]
|
|
5111
|
+
}, "".concat(dim.name, "-").concat(dim.currentValue));
|
|
5112
|
+
})]
|
|
5113
|
+
});
|
|
5114
|
+
return jsx(CustomTooltip, {
|
|
5115
|
+
title: tooltipText,
|
|
5116
|
+
children: jsxs("div", {
|
|
5043
5117
|
style: {
|
|
5044
|
-
position: '
|
|
5045
|
-
|
|
5046
|
-
|
|
5047
|
-
|
|
5048
|
-
|
|
5049
|
-
|
|
5118
|
+
position: 'relative',
|
|
5119
|
+
width: 'calc(100% - 60px)',
|
|
5120
|
+
left: '50px',
|
|
5121
|
+
right: '10px',
|
|
5122
|
+
marginTop: '12px',
|
|
5123
|
+
marginBottom: '-10px'
|
|
5050
5124
|
},
|
|
5051
|
-
|
|
5125
|
+
"data-testid": "debug-info",
|
|
5126
|
+
children: [jsx("div", {
|
|
5052
5127
|
style: {
|
|
5053
|
-
width: '
|
|
5054
|
-
position: 'absolute',
|
|
5055
|
-
display: 'inline-block',
|
|
5056
|
-
height: '15px'
|
|
5128
|
+
width: '100%'
|
|
5057
5129
|
},
|
|
5058
|
-
children:
|
|
5059
|
-
|
|
5130
|
+
children: jsx("div", {
|
|
5131
|
+
children: items
|
|
5132
|
+
})
|
|
5133
|
+
}), jsxs("div", {
|
|
5060
5134
|
style: {
|
|
5061
|
-
|
|
5062
|
-
|
|
5063
|
-
|
|
5064
|
-
|
|
5065
|
-
opacity:
|
|
5135
|
+
left: '10px',
|
|
5136
|
+
paddingTop: '3px',
|
|
5137
|
+
fontSize: '12px',
|
|
5138
|
+
fontFamily: 'Roboto',
|
|
5139
|
+
opacity: 0.85,
|
|
5140
|
+
width: '100%'
|
|
5066
5141
|
},
|
|
5067
|
-
children:
|
|
5068
|
-
|
|
5069
|
-
|
|
5070
|
-
|
|
5071
|
-
|
|
5072
|
-
|
|
5073
|
-
|
|
5074
|
-
|
|
5075
|
-
|
|
5076
|
-
|
|
5077
|
-
|
|
5078
|
-
|
|
5142
|
+
children: [jsx("span", {
|
|
5143
|
+
style: {
|
|
5144
|
+
display: 'inline-block',
|
|
5145
|
+
verticalAlign: 'top',
|
|
5146
|
+
width: '25%',
|
|
5147
|
+
overflow: 'hidden',
|
|
5148
|
+
textOverflow: 'ellipsis',
|
|
5149
|
+
whiteSpace: 'nowrap',
|
|
5150
|
+
fontSize: '12px',
|
|
5151
|
+
paddingRight: '4px',
|
|
5152
|
+
paddingLeft: '4px',
|
|
5153
|
+
color: '#051039',
|
|
5154
|
+
backgroundColor: 'rgba(236, 237, 238, 0.7)',
|
|
5155
|
+
borderRadius: 2
|
|
5156
|
+
},
|
|
5157
|
+
children: wmLayer === null || wmLayer === void 0 ? void 0 : wmLayer.title
|
|
5158
|
+
}), jsx("span", {
|
|
5159
|
+
style: {
|
|
5160
|
+
display: 'inline-block',
|
|
5161
|
+
width: '75%',
|
|
5162
|
+
opacity: '0.7'
|
|
5163
|
+
},
|
|
5164
|
+
children: dimsInfo.map(function (dimension) {
|
|
5165
|
+
return jsx("span", {
|
|
5166
|
+
style: {
|
|
5167
|
+
margin: '0 0 0 0px',
|
|
5168
|
+
padding: '1px 5px',
|
|
5169
|
+
background: 'blue',
|
|
5170
|
+
borderRadius: 2,
|
|
5171
|
+
color: 'white',
|
|
5172
|
+
fontSize: '11px'
|
|
5173
|
+
},
|
|
5174
|
+
children: dimension
|
|
5175
|
+
}, dimension);
|
|
5176
|
+
})
|
|
5177
|
+
})]
|
|
5079
5178
|
})]
|
|
5080
|
-
})
|
|
5081
|
-
});
|
|
5179
|
+
})
|
|
5180
|
+
}, wmLayer.id);
|
|
5082
5181
|
};
|
|
5083
5182
|
|
|
5084
5183
|
var TimeawareImageSourceWMSLayer = function TimeawareImageSourceWMSLayer(_ref) {
|
|
5184
|
+
var _wmLayer$dimensions$f, _wmLayer$dimensions4;
|
|
5085
5185
|
var layerId = _ref.layerId,
|
|
5086
5186
|
getCapsURL = _ref.getCapsURL,
|
|
5087
5187
|
layerOptions = _ref.layerOptions,
|
|
@@ -5106,16 +5206,14 @@ var TimeawareImageSourceWMSLayer = function TimeawareImageSourceWMSLayer(_ref) {
|
|
|
5106
5206
|
// get a wmLayer instance
|
|
5107
5207
|
var wmLayer = useGetWMLayerInstance(getCapsURL, layerName, layerId, onLayerError);
|
|
5108
5208
|
// 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]);
|
|
5209
|
+
var dimensionsValues = getDimensionParamsForWMS(dimensions, wmLayer);
|
|
5112
5210
|
// 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) {
|
|
5211
|
+
var dimensionsValuesEffectCheck = dimensionsValues && Object.entries(dimensionsValues).map(function (dimensionNameAndCurrentValue) {
|
|
5114
5212
|
return "".concat(dimensionNameAndCurrentValue[0], ":").concat(dimensionNameAndCurrentValue[1]);
|
|
5115
5213
|
}).join(',');
|
|
5116
|
-
// Make a TimeawareImageSource and add it to the map, add and remove should only be done when the map, layer id
|
|
5214
|
+
// 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
5215
|
useEffect(function () {
|
|
5118
|
-
if (!map || !wmLayer || visible === false) {
|
|
5216
|
+
if (!map || !wmLayer || visible === false || !dimensionsValues) {
|
|
5119
5217
|
return function () {};
|
|
5120
5218
|
}
|
|
5121
5219
|
// When this component mounts, an ImageLayer is added to the map. Once it unmounts, this layer is removed from the map.
|
|
@@ -5138,16 +5236,16 @@ var TimeawareImageSourceWMSLayer = function TimeawareImageSourceWMSLayer(_ref) {
|
|
|
5138
5236
|
map.removeLayer(olLayer);
|
|
5139
5237
|
olLayer.dispose();
|
|
5140
5238
|
};
|
|
5141
|
-
// The dependency list should only contain the map and
|
|
5239
|
+
// The dependency list should only contain the map, wmLayer, visible and dimensionValues. Other prop changes are handled by other effects.
|
|
5142
5240
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5143
|
-
}, [map, wmLayer, visible]);
|
|
5241
|
+
}, [map, wmLayer, visible, dimensionsValues === undefined]);
|
|
5144
5242
|
useEffect(function () {
|
|
5145
5243
|
onLayerReady && wmLayer && layerId && onLayerReady(layerId);
|
|
5146
5244
|
}, [layerId, wmLayer, onLayerReady]);
|
|
5147
5245
|
// Initialize layer for GeoWeb, call onInitializeLayer
|
|
5148
5246
|
useEffect(function () {
|
|
5149
5247
|
var initializeLayer = /*#__PURE__*/function () {
|
|
5150
|
-
var _ref2 = _asyncToGenerator(
|
|
5248
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
5151
5249
|
var _wmLayer$dimensions, _wmLayer$dimensions2, wmTimeDim, layerPropsTimeDim, timeValueToInitialize, refTimeDim, layerPropsRefTimeDim, refTimeToFind, firstRefTime;
|
|
5152
5250
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
5153
5251
|
while (1) switch (_context.prev = _context.next) {
|
|
@@ -5245,15 +5343,9 @@ var TimeawareImageSourceWMSLayer = function TimeawareImageSourceWMSLayer(_ref) {
|
|
|
5245
5343
|
// Layer dim values useEffect,
|
|
5246
5344
|
useEffect(function () {
|
|
5247
5345
|
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
|
-
});
|
|
5346
|
+
dimensionsValues && (layer === null || layer === void 0 || (_layer$getSource3 = layer.getSource()) === null || _layer$getSource3 === void 0 ? void 0 : _layer$getSource3.setDimProps(dimensionsValues));
|
|
5255
5347
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5256
|
-
}, [layer, dimensionsValuesEffectCheck
|
|
5348
|
+
}, [layer, dimensionsValuesEffectCheck]);
|
|
5257
5349
|
// Prefetch useEffect
|
|
5258
5350
|
useEffect(function () {
|
|
5259
5351
|
var _wmLayer$dimensions3;
|
|
@@ -5285,7 +5377,11 @@ var TimeawareImageSourceWMSLayer = function TimeawareImageSourceWMSLayer(_ref) {
|
|
|
5285
5377
|
// - dimensionsValues,
|
|
5286
5378
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5287
5379
|
}, [layer, wmLayer, timespan === null || timespan === void 0 ? void 0 : timespan.start, timespan === null || timespan === void 0 ? void 0 : timespan.end, timespan === null || timespan === void 0 ? void 0 : timespan.step, layerName, styleName, dimensionsValuesEffectCheck]);
|
|
5288
|
-
|
|
5380
|
+
// Only show debug info for data layers with time dimension
|
|
5381
|
+
var hasTimeDim = (_wmLayer$dimensions$f = wmLayer === null || wmLayer === void 0 || (_wmLayer$dimensions4 = wmLayer.dimensions) === null || _wmLayer$dimensions4 === void 0 ? void 0 : _wmLayer$dimensions4.findIndex(function (dimension) {
|
|
5382
|
+
return dimension.name === 'time';
|
|
5383
|
+
})) !== null && _wmLayer$dimensions$f !== void 0 ? _wmLayer$dimensions$f : -1;
|
|
5384
|
+
return debugMode && hasTimeDim !== -1 ? jsx(ShowTimeAwareLayerInfo, {
|
|
5289
5385
|
wmLayer: wmLayer,
|
|
5290
5386
|
stepsToCheck: getTimeStepsToCheckMemoized(timespan),
|
|
5291
5387
|
layer: layer,
|
|
@@ -5666,7 +5762,7 @@ var useAnimationForLayer = function useAnimationForLayer(layerProps, intervalInM
|
|
|
5666
5762
|
useEffect(function () {
|
|
5667
5763
|
calculateTimeSpan();
|
|
5668
5764
|
}, [calculateTimeSpan, wmLayer]);
|
|
5669
|
-
var refetchLayer = React__default.useCallback(
|
|
5765
|
+
var refetchLayer = React__default.useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
5670
5766
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
5671
5767
|
while (1) switch (_context.prev = _context.next) {
|
|
5672
5768
|
case 0:
|
|
@@ -6357,296 +6453,105 @@ var publicLayers = /*#__PURE__*/Object.freeze({
|
|
|
6357
6453
|
veiligheidsRegiosGebiedsIndelingenLabels: veiligheidsRegiosGebiedsIndelingenLabels
|
|
6358
6454
|
});
|
|
6359
6455
|
|
|
6360
|
-
|
|
6361
|
-
|
|
6362
|
-
|
|
6363
|
-
|
|
6364
|
-
|
|
6365
|
-
|
|
6366
|
-
|
|
6367
|
-
|
|
6368
|
-
|
|
6369
|
-
|
|
6370
|
-
|
|
6371
|
-
|
|
6372
|
-
|
|
6373
|
-
|
|
6374
|
-
|
|
6375
|
-
|
|
6376
|
-
|
|
6377
|
-
|
|
6378
|
-
var layerOptions = useMemo(function () {
|
|
6379
|
-
return {
|
|
6380
|
-
opacity: opacity !== null && opacity !== undefined ? opacity : 1,
|
|
6381
|
-
zIndex: zIndex || 0
|
|
6382
|
-
};
|
|
6383
|
-
}, [opacity, zIndex]);
|
|
6384
|
-
var _useContext = useContext(MapContext),
|
|
6385
|
-
map = _useContext.map;
|
|
6386
|
-
// Check standard maplayers
|
|
6387
|
-
if (!isOverlay && !isBaseLayer) {
|
|
6388
|
-
return jsx(TimeawareImageSourceWMSLayer, {
|
|
6389
|
-
getCapsURL: service,
|
|
6390
|
-
layerName: name,
|
|
6391
|
-
layerOptions: layerOptions,
|
|
6392
|
-
layerId: id,
|
|
6393
|
-
dimensions: dimensions,
|
|
6394
|
-
visible: !!(enabled !== false),
|
|
6395
|
-
styleName: style,
|
|
6396
|
-
onInitializeLayer: onInitializeLayer,
|
|
6397
|
-
onLayerReady: onLayerReady,
|
|
6398
|
-
onLayerError: onLayerError,
|
|
6399
|
-
debugMode: debugMode
|
|
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
|
-
});
|
|
6446
|
-
}
|
|
6447
|
-
} else if (_name && _service) {
|
|
6448
|
-
return jsx(WMSLayer, {
|
|
6449
|
-
layerName: _name,
|
|
6450
|
-
layerOptions: layerOptions,
|
|
6451
|
-
layerProps: layerProps,
|
|
6452
|
-
url: _service,
|
|
6453
|
-
styleName: style || 'default'
|
|
6454
|
-
});
|
|
6455
|
-
} else if (baseLayer) {
|
|
6456
|
-
return jsx(DefaultBaseLayers, {});
|
|
6457
|
-
}
|
|
6458
|
-
}
|
|
6459
|
-
return jsx("div", {});
|
|
6460
|
-
};
|
|
6461
|
-
|
|
6462
|
-
var FeatureLayer = function FeatureLayer(_ref) {
|
|
6463
|
-
var features = _ref.features,
|
|
6464
|
-
style = _ref.style,
|
|
6465
|
-
zIndex = _ref.zIndex,
|
|
6466
|
-
hoverSelect = _ref.hoverSelect,
|
|
6467
|
-
clickOnFeature = _ref.clickOnFeature,
|
|
6468
|
-
testId = _ref.testId,
|
|
6469
|
-
opacity = _ref.opacity;
|
|
6470
|
-
var _useContext = useContext(MapContext),
|
|
6471
|
-
map = _useContext.map;
|
|
6472
|
-
var _useState = useState(),
|
|
6473
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
6474
|
-
source = _useState2[0],
|
|
6475
|
-
setSource = _useState2[1];
|
|
6476
|
-
var layerRef = useRef();
|
|
6477
|
-
useEffect(function () {
|
|
6478
|
-
if (!map) {
|
|
6479
|
-
return function () {};
|
|
6480
|
-
}
|
|
6481
|
-
var source = new VectorSource({
|
|
6482
|
-
features: []
|
|
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);
|
|
6554
|
-
}
|
|
6555
|
-
}, 5, {});
|
|
6556
|
-
var eventKey = map.on('pointermove', pointerMoveFunction);
|
|
6557
|
-
return function () {
|
|
6558
|
-
pointerMoveFunction.cancel();
|
|
6559
|
-
source.getFeatures().forEach(function (feature) {
|
|
6560
|
-
feature.set('hover', false);
|
|
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
|
-
};
|
|
6623
|
-
|
|
6624
|
-
var makeUrlFromParams = function makeUrlFromParams(params) {
|
|
6456
|
+
/* *
|
|
6457
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6458
|
+
* you may not use this file except in compliance with the License.
|
|
6459
|
+
* You may obtain a copy of the License at
|
|
6460
|
+
*
|
|
6461
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
6462
|
+
*
|
|
6463
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
6464
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
6465
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
6466
|
+
* See the License for the specific language governing permissions and
|
|
6467
|
+
* limitations under the License.
|
|
6468
|
+
*
|
|
6469
|
+
* Copyright 2025 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
6470
|
+
* Copyright 2025 - Finnish Meteorological Institute (FMI)
|
|
6471
|
+
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
6472
|
+
* */
|
|
6473
|
+
var joinUrlParams = function joinUrlParams(params) {
|
|
6625
6474
|
return params.filter(function (x) {
|
|
6626
6475
|
return x !== undefined && x.length > 0;
|
|
6627
6476
|
}).join('/');
|
|
6628
6477
|
};
|
|
6629
|
-
var
|
|
6630
|
-
var
|
|
6631
|
-
|
|
6478
|
+
var fetchEDRLayerCollection = /*#__PURE__*/function () {
|
|
6479
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(edrBaseUrlWithCollection) {
|
|
6480
|
+
var instanceId,
|
|
6481
|
+
_args = arguments;
|
|
6482
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
6483
|
+
while (1) switch (_context.prev = _context.next) {
|
|
6484
|
+
case 0:
|
|
6485
|
+
instanceId = _args.length > 1 && _args[1] !== undefined ? _args[1] : '';
|
|
6486
|
+
_context.next = 3;
|
|
6487
|
+
return fetch(joinUrlParams([edrBaseUrlWithCollection, instanceId]));
|
|
6488
|
+
case 3:
|
|
6489
|
+
_context.next = 5;
|
|
6490
|
+
return _context.sent.json();
|
|
6491
|
+
case 5:
|
|
6492
|
+
return _context.abrupt("return", _context.sent);
|
|
6493
|
+
case 6:
|
|
6494
|
+
case "end":
|
|
6495
|
+
return _context.stop();
|
|
6496
|
+
}
|
|
6497
|
+
}, _callee);
|
|
6498
|
+
}));
|
|
6499
|
+
return function fetchEDRLayerCollection(_x) {
|
|
6500
|
+
return _ref.apply(this, arguments);
|
|
6501
|
+
};
|
|
6502
|
+
}();
|
|
6503
|
+
var fetchEDRLayerCollectionCube = /*#__PURE__*/function () {
|
|
6504
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(edrBaseUrlWithCollection, parameterName) {
|
|
6505
|
+
var datetime,
|
|
6506
|
+
instanceId,
|
|
6507
|
+
bbox,
|
|
6508
|
+
queryParams,
|
|
6509
|
+
url,
|
|
6510
|
+
response,
|
|
6511
|
+
_args2 = arguments;
|
|
6512
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
6513
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
6514
|
+
case 0:
|
|
6515
|
+
datetime = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : '';
|
|
6516
|
+
instanceId = _args2.length > 3 && _args2[3] !== undefined ? _args2[3] : '';
|
|
6517
|
+
bbox = _args2.length > 4 && _args2[4] !== undefined ? _args2[4] : '-180,-90,180,90';
|
|
6518
|
+
queryParams = new URLSearchParams();
|
|
6519
|
+
queryParams.append('bbox', bbox);
|
|
6520
|
+
queryParams.append('parameter-name', parameterName);
|
|
6521
|
+
datetime && queryParams.append('datetime', datetime);
|
|
6522
|
+
url = "".concat(joinUrlParams([edrBaseUrlWithCollection, instanceId, 'cube']), "?").concat(queryParams.toString());
|
|
6523
|
+
_context2.next = 10;
|
|
6524
|
+
return fetch(url);
|
|
6525
|
+
case 10:
|
|
6526
|
+
response = _context2.sent;
|
|
6527
|
+
_context2.next = 13;
|
|
6528
|
+
return response.json();
|
|
6529
|
+
case 13:
|
|
6530
|
+
return _context2.abrupt("return", _context2.sent);
|
|
6531
|
+
case 14:
|
|
6532
|
+
case "end":
|
|
6533
|
+
return _context2.stop();
|
|
6534
|
+
}
|
|
6535
|
+
}, _callee2);
|
|
6536
|
+
}));
|
|
6537
|
+
return function fetchEDRLayerCollectionCube(_x2, _x3) {
|
|
6538
|
+
return _ref2.apply(this, arguments);
|
|
6539
|
+
};
|
|
6540
|
+
}();
|
|
6541
|
+
|
|
6542
|
+
var DEFAULT_STALE_TIME = 60000; // One minute
|
|
6543
|
+
var useEDRLayerCollection = function useEDRLayerCollection(edrBaseUrlWithCollection) {
|
|
6544
|
+
var instanceId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
6632
6545
|
return useQuery({
|
|
6633
|
-
|
|
6546
|
+
staleTime: DEFAULT_STALE_TIME,
|
|
6547
|
+
queryKey: [edrBaseUrlWithCollection, instanceId, 'useEDRLayerCollection'],
|
|
6634
6548
|
queryFn: function () {
|
|
6635
|
-
var _queryFn = _asyncToGenerator(
|
|
6636
|
-
var url, response;
|
|
6549
|
+
var _queryFn = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
6637
6550
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
6638
6551
|
while (1) switch (_context.prev = _context.next) {
|
|
6639
6552
|
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:
|
|
6553
|
+
return _context.abrupt("return", fetchEDRLayerCollection(edrBaseUrlWithCollection, instanceId));
|
|
6554
|
+
case 1:
|
|
6650
6555
|
case "end":
|
|
6651
6556
|
return _context.stop();
|
|
6652
6557
|
}
|
|
@@ -6656,30 +6561,26 @@ var useEDRCollection = function useEDRCollection(edrBaseUrl, collectionId) {
|
|
|
6656
6561
|
return _queryFn.apply(this, arguments);
|
|
6657
6562
|
}
|
|
6658
6563
|
return queryFn;
|
|
6659
|
-
}()
|
|
6564
|
+
}(),
|
|
6565
|
+
enabled: edrBaseUrlWithCollection.length > 0
|
|
6660
6566
|
});
|
|
6661
6567
|
};
|
|
6662
|
-
var
|
|
6663
|
-
var
|
|
6664
|
-
var
|
|
6568
|
+
var useEDRLayerCollectionCube = function useEDRLayerCollectionCube(edrBaseUrlWithCollection, parameterName) {
|
|
6569
|
+
var datetime = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
6570
|
+
var instanceId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
|
|
6571
|
+
var bbox = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : '-180,-90,180,90';
|
|
6572
|
+
var params = [edrBaseUrlWithCollection, instanceId, 'cube'];
|
|
6573
|
+
var queryKey = [].concat(params, [bbox, parameterName, datetime]);
|
|
6665
6574
|
return useQuery({
|
|
6666
|
-
|
|
6575
|
+
staleTime: DEFAULT_STALE_TIME,
|
|
6576
|
+
queryKey: queryKey,
|
|
6667
6577
|
queryFn: function () {
|
|
6668
|
-
var _queryFn2 = _asyncToGenerator(
|
|
6669
|
-
var url, response;
|
|
6578
|
+
var _queryFn2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
6670
6579
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
6671
6580
|
while (1) switch (_context2.prev = _context2.next) {
|
|
6672
6581
|
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:
|
|
6582
|
+
return _context2.abrupt("return", fetchEDRLayerCollectionCube(edrBaseUrlWithCollection, parameterName, datetime, instanceId, bbox));
|
|
6583
|
+
case 1:
|
|
6683
6584
|
case "end":
|
|
6684
6585
|
return _context2.stop();
|
|
6685
6586
|
}
|
|
@@ -6689,54 +6590,8 @@ var useEDRCollectionLocation = function useEDRCollectionLocation(edrBaseUrl, col
|
|
|
6689
6590
|
return _queryFn2.apply(this, arguments);
|
|
6690
6591
|
}
|
|
6691
6592
|
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
|
-
}()
|
|
6593
|
+
}(),
|
|
6594
|
+
enabled: parameterName.length > 0
|
|
6740
6595
|
});
|
|
6741
6596
|
};
|
|
6742
6597
|
|
|
@@ -6757,9 +6612,12 @@ var useEDRCollectionCube = function useEDRCollectionCube(edrBaseUrl, collectionI
|
|
|
6757
6612
|
* Copyright 2025 - Finnish Meteorological Institute (FMI)
|
|
6758
6613
|
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
6759
6614
|
* */
|
|
6760
|
-
var
|
|
6615
|
+
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'];
|
|
6616
|
+
var precipitationMMLegendColorsWoW = ['#BACDCB', '#A3C3C9', '#8BBCC8', '#6AAEC1', '#42A1C0', '#377EAF', '#46669C', '#56528D', '#86008D', '#610066'];
|
|
6617
|
+
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
6618
|
var colorMaps = {
|
|
6762
|
-
|
|
6619
|
+
temperatureLegendColorsWoW: temperatureLegendColorsWoW,
|
|
6620
|
+
temperatureLegendColorsCWK: temperatureLegendColorsCWK
|
|
6763
6621
|
};
|
|
6764
6622
|
|
|
6765
6623
|
/* *
|
|
@@ -6866,17 +6724,186 @@ var makeFeatureStyleLoading = function makeFeatureStyleLoading(feature) {
|
|
|
6866
6724
|
})
|
|
6867
6725
|
});
|
|
6868
6726
|
};
|
|
6869
|
-
|
|
6870
|
-
|
|
6871
|
-
|
|
6872
|
-
|
|
6873
|
-
|
|
6874
|
-
|
|
6875
|
-
|
|
6876
|
-
|
|
6877
|
-
|
|
6878
|
-
|
|
6879
|
-
|
|
6727
|
+
var defaultLegend$1 = makeLegendFromColorMap({
|
|
6728
|
+
colors: colorMaps.temperatureLegendColorsWoW,
|
|
6729
|
+
min: -18,
|
|
6730
|
+
max: 38
|
|
6731
|
+
});
|
|
6732
|
+
var defaultStyle$1 = function defaultStyle(feature) {
|
|
6733
|
+
return makeFeatureStyleDisc(feature, defaultLegend$1);
|
|
6734
|
+
};
|
|
6735
|
+
/**
|
|
6736
|
+
* Converts a stylename to openlayers style for features
|
|
6737
|
+
* @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.
|
|
6738
|
+
* @returns StyleLike
|
|
6739
|
+
*/
|
|
6740
|
+
var styleNameToStyleLikeNotMemoed = function styleNameToStyleLikeNotMemoed(styleName) {
|
|
6741
|
+
var minMaxPartFromNumericIndex = styleName.indexOf(':');
|
|
6742
|
+
var legMinMax = minMaxPartFromNumericIndex > 0 ? styleName.substring(minMaxPartFromNumericIndex + 1).split(',').map(function (stringValue) {
|
|
6743
|
+
return parseFloat(stringValue);
|
|
6744
|
+
}) : [undefined, undefined];
|
|
6745
|
+
var min = legMinMax.length === 2 ? legMinMax[0] : undefined;
|
|
6746
|
+
var max = legMinMax.length === 2 ? legMinMax[1] : undefined;
|
|
6747
|
+
var legendName = styleName === null || styleName === void 0 ? void 0 : styleName.split(':')[0];
|
|
6748
|
+
if (legendName === 'temperatureLegendColorsWoW') {
|
|
6749
|
+
return function (feature) {
|
|
6750
|
+
return makeFeatureStyleDisc(feature, makeLegendFromColorMap({
|
|
6751
|
+
colors: colorMaps.temperatureLegendColorsWoW,
|
|
6752
|
+
min: min !== undefined ? min : -18,
|
|
6753
|
+
max: max !== undefined ? max : 38
|
|
6754
|
+
}));
|
|
6755
|
+
};
|
|
6756
|
+
}
|
|
6757
|
+
if (legendName === 'temperatureLegendColorsCWK') {
|
|
6758
|
+
return function (feature) {
|
|
6759
|
+
return makeFeatureStyleDisc(feature, makeLegendFromColorMap({
|
|
6760
|
+
colors: colorMaps.temperatureLegendColorsCWK,
|
|
6761
|
+
min: min !== undefined ? min : -18,
|
|
6762
|
+
max: max !== undefined ? max : 38
|
|
6763
|
+
}));
|
|
6764
|
+
};
|
|
6765
|
+
}
|
|
6766
|
+
if (legendName === 'precipitationMMLegendColorsWoW') {
|
|
6767
|
+
return function (feature) {
|
|
6768
|
+
return makeFeatureStyleDisc(feature, makeLegendFromColorMap({
|
|
6769
|
+
colors: colorMaps.temperatureLegendColorsCWK,
|
|
6770
|
+
min: min !== undefined ? min : 0,
|
|
6771
|
+
max: max !== undefined ? max : 30
|
|
6772
|
+
}));
|
|
6773
|
+
};
|
|
6774
|
+
}
|
|
6775
|
+
return defaultStyle$1;
|
|
6776
|
+
};
|
|
6777
|
+
var styleNameToStyleLike = memoize(styleNameToStyleLikeNotMemoed);
|
|
6778
|
+
|
|
6779
|
+
/**
|
|
6780
|
+
* Returns WMLayer instance in EDR mode. The layer will contains parsed dimensions and styles and keeps a state for these properties.
|
|
6781
|
+
*
|
|
6782
|
+
* @param {string} serviceUrl
|
|
6783
|
+
* @param {string} name
|
|
6784
|
+
* @returns {(WMLayer | null)}
|
|
6785
|
+
*/
|
|
6786
|
+
var useGetEDRWMLayerInstance = function useGetEDRWMLayerInstance(serviceUrl, name, id, onLayerError) {
|
|
6787
|
+
var _React$useState = React__default.useState(null),
|
|
6788
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
6789
|
+
layer = _React$useState2[0],
|
|
6790
|
+
setLayer = _React$useState2[1];
|
|
6791
|
+
var refId = useRef(id || webmapUtils.generateLayerId());
|
|
6792
|
+
React__default.useEffect(function () {
|
|
6793
|
+
var layerId = refId.current;
|
|
6794
|
+
// Check if the layer is already registered
|
|
6795
|
+
var tmpWMLayer = webmapUtils.getWMLayerById(layerId);
|
|
6796
|
+
if (!tmpWMLayer || tmpWMLayer.service !== serviceUrl && name.length > 0) {
|
|
6797
|
+
// Make a new layer if the serviceUrl changes. (But not when the name changes)
|
|
6798
|
+
var _wmLayer = new WMLayer({
|
|
6799
|
+
name: name,
|
|
6800
|
+
service: serviceUrl,
|
|
6801
|
+
layerType: LayerType.edrLayer,
|
|
6802
|
+
id: layerId
|
|
6803
|
+
});
|
|
6804
|
+
webmapUtils.registerWMLayer(_wmLayer, layerId);
|
|
6805
|
+
}
|
|
6806
|
+
// Set the name and parse the layer
|
|
6807
|
+
var wmLayer = webmapUtils.getWMLayerById(layerId);
|
|
6808
|
+
wmLayer.setName(name).then(function () {
|
|
6809
|
+
setLayer(wmLayer);
|
|
6810
|
+
})["catch"](function (e) {
|
|
6811
|
+
setLayer(wmLayer);
|
|
6812
|
+
});
|
|
6813
|
+
}, [name, onLayerError, serviceUrl]);
|
|
6814
|
+
return layer;
|
|
6815
|
+
};
|
|
6816
|
+
var useGetEDRLayerInstance = function useGetEDRLayerInstance(edrBaseUrl, parameter, layerId, onInitializeLayer) {
|
|
6817
|
+
var wmLayer = useGetEDRWMLayerInstance(edrBaseUrl, parameter, layerId);
|
|
6818
|
+
var collectionInfo = useEDRLayerCollection(edrBaseUrl);
|
|
6819
|
+
var _React$useState3 = React__default.useState(undefined),
|
|
6820
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
6821
|
+
timeRangeDuration = _React$useState4[0],
|
|
6822
|
+
setTimeRangeDuration = _React$useState4[1];
|
|
6823
|
+
React__default.useEffect(function () {
|
|
6824
|
+
if (wmLayer && collectionInfo.data && collectionInfo.isFetched) {
|
|
6825
|
+
var _collectionInfo$data, _collectionInfo$data2;
|
|
6826
|
+
// TODO: Extract PT10M from the EDR service: https://gitlab.com/opengeoweb/geoweb-assets/-/issues/4139
|
|
6827
|
+
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");
|
|
6828
|
+
if (!wmLayer.getDimension('time')) {
|
|
6829
|
+
var _collectionInfo$data3;
|
|
6830
|
+
var dim = new WMJSDimension({
|
|
6831
|
+
name: 'time',
|
|
6832
|
+
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],
|
|
6833
|
+
units: 'ISO8601',
|
|
6834
|
+
values: timeRangeDurationFromEdrCollection
|
|
6835
|
+
});
|
|
6836
|
+
dim.initialize();
|
|
6837
|
+
wmLayer.dimensions.push(dim);
|
|
6838
|
+
} else {
|
|
6839
|
+
var _wmLayer$getDimension;
|
|
6840
|
+
(_wmLayer$getDimension = wmLayer.getDimension('time')) === null || _wmLayer$getDimension === void 0 || _wmLayer$getDimension.reInitializeValues(timeRangeDurationFromEdrCollection);
|
|
6841
|
+
}
|
|
6842
|
+
setTimeRangeDuration(timeRangeDurationFromEdrCollection);
|
|
6843
|
+
wmLayer.isConfigured = true;
|
|
6844
|
+
}
|
|
6845
|
+
}, [collectionInfo.data, collectionInfo.isFetched, wmLayer]);
|
|
6846
|
+
React__default.useEffect(function () {
|
|
6847
|
+
var initializeLayer = /*#__PURE__*/function () {
|
|
6848
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
6849
|
+
var _wmLayer$dimensions, wmTimeDim, timeValueToInitialize, layerProps;
|
|
6850
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
6851
|
+
while (1) switch (_context.prev = _context.next) {
|
|
6852
|
+
case 0:
|
|
6853
|
+
if (wmLayer) {
|
|
6854
|
+
// Set time dimension current value based on layerprops dimension value
|
|
6855
|
+
wmTimeDim = wmLayer === null || wmLayer === void 0 || (_wmLayer$dimensions = wmLayer.dimensions) === null || _wmLayer$dimensions === void 0 ? void 0 : _wmLayer$dimensions.find(function (wmDimension) {
|
|
6856
|
+
return wmDimension.name === 'time';
|
|
6857
|
+
});
|
|
6858
|
+
timeValueToInitialize = wmTimeDim === null || wmTimeDim === void 0 ? void 0 : wmTimeDim.getValue();
|
|
6859
|
+
wmTimeDim && timeValueToInitialize && wmTimeDim.setValue(timeValueToInitialize);
|
|
6860
|
+
layerProps = {
|
|
6861
|
+
layerId: wmLayer.id,
|
|
6862
|
+
dimensions: wmLayer.dimensions.map(function (dimension) {
|
|
6863
|
+
return {
|
|
6864
|
+
name: dimension.name,
|
|
6865
|
+
units: dimension.units,
|
|
6866
|
+
currentValue: dimension.currentValue,
|
|
6867
|
+
maxValue: dimension.getLastValue(),
|
|
6868
|
+
minValue: dimension.getFirstValue(),
|
|
6869
|
+
synced: dimension.synced,
|
|
6870
|
+
values: dimension.values,
|
|
6871
|
+
unitSymbol: dimension.unitSymbol
|
|
6872
|
+
};
|
|
6873
|
+
}),
|
|
6874
|
+
style: ''
|
|
6875
|
+
};
|
|
6876
|
+
onInitializeLayer && onInitializeLayer(layerProps);
|
|
6877
|
+
}
|
|
6878
|
+
case 1:
|
|
6879
|
+
case "end":
|
|
6880
|
+
return _context.stop();
|
|
6881
|
+
}
|
|
6882
|
+
}, _callee);
|
|
6883
|
+
}));
|
|
6884
|
+
return function initializeLayer() {
|
|
6885
|
+
return _ref.apply(this, arguments);
|
|
6886
|
+
};
|
|
6887
|
+
}();
|
|
6888
|
+
timeRangeDuration && initializeLayer()["catch"](function (e) {
|
|
6889
|
+
return window.console.error(e);
|
|
6890
|
+
});
|
|
6891
|
+
return function () {};
|
|
6892
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
6893
|
+
}, [wmLayer, parameter, timeRangeDuration]);
|
|
6894
|
+
return wmLayer;
|
|
6895
|
+
};
|
|
6896
|
+
|
|
6897
|
+
var id$1 = "10-minute-in-situ-meteorological-observations";
|
|
6898
|
+
var title$1 = "[PRE-RELEASE] Meteo data - near real-time automatic ground-based meteorological in-situ surface observations of the Netherlands, per 10 minutes";
|
|
6899
|
+
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.";
|
|
6900
|
+
var links$1 = [
|
|
6901
|
+
{
|
|
6902
|
+
href: "https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations",
|
|
6903
|
+
rel: "self"
|
|
6904
|
+
}
|
|
6905
|
+
];
|
|
6906
|
+
var extent$1 = {
|
|
6880
6907
|
spatial: {
|
|
6881
6908
|
bbox: [
|
|
6882
6909
|
[
|
|
@@ -6991,7 +7018,7 @@ var extent = {
|
|
|
6991
7018
|
}
|
|
6992
7019
|
]
|
|
6993
7020
|
};
|
|
6994
|
-
var data_queries = {
|
|
7021
|
+
var data_queries$1 = {
|
|
6995
7022
|
position: {
|
|
6996
7023
|
link: {
|
|
6997
7024
|
href: "https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations/position",
|
|
@@ -7053,14 +7080,14 @@ var data_queries = {
|
|
|
7053
7080
|
}
|
|
7054
7081
|
}
|
|
7055
7082
|
};
|
|
7056
|
-
var crs = [
|
|
7083
|
+
var crs$1 = [
|
|
7057
7084
|
"WGS84"
|
|
7058
7085
|
];
|
|
7059
|
-
var output_formats = [
|
|
7086
|
+
var output_formats$1 = [
|
|
7060
7087
|
"CoverageJSON",
|
|
7061
7088
|
"netCDF4"
|
|
7062
7089
|
];
|
|
7063
|
-
var parameter_names = {
|
|
7090
|
+
var parameter_names$1 = {
|
|
7064
7091
|
D1H: {
|
|
7065
7092
|
type: "Parameter",
|
|
7066
7093
|
label: "Rainfall Duration in last Hour",
|
|
@@ -9117,96 +9144,2357 @@ var parameter_names = {
|
|
|
9117
9144
|
}
|
|
9118
9145
|
};
|
|
9119
9146
|
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
|
|
9147
|
+
id: id$1,
|
|
9148
|
+
title: title$1,
|
|
9149
|
+
description: description$1,
|
|
9150
|
+
links: links$1,
|
|
9151
|
+
extent: extent$1,
|
|
9152
|
+
data_queries: data_queries$1,
|
|
9153
|
+
crs: crs$1,
|
|
9154
|
+
output_formats: output_formats$1,
|
|
9155
|
+
parameter_names: parameter_names$1
|
|
9129
9156
|
};
|
|
9130
9157
|
|
|
9131
|
-
var
|
|
9132
|
-
var
|
|
9133
|
-
|
|
9134
|
-
|
|
9135
|
-
geometry: {
|
|
9136
|
-
type: "Point",
|
|
9137
|
-
coordinates: [
|
|
9138
|
-
2.9358,
|
|
9139
|
-
54.3256,
|
|
9140
|
-
42.7
|
|
9141
|
-
]
|
|
9142
|
-
},
|
|
9143
|
-
properties: {
|
|
9144
|
-
name: "D15-FA-1",
|
|
9145
|
-
wmoId: "06201"
|
|
9146
|
-
},
|
|
9147
|
-
id: "0-20000-0-06201"
|
|
9148
|
-
},
|
|
9158
|
+
var id = "10-minute-in-situ-meteorological-observations";
|
|
9159
|
+
var title = "[PRE-RELEASE] Meteo data - near real-time automatic ground-based meteorological in-situ surface observations of the Netherlands, per 10 minutes";
|
|
9160
|
+
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.";
|
|
9161
|
+
var links = [
|
|
9149
9162
|
{
|
|
9150
|
-
|
|
9151
|
-
|
|
9152
|
-
|
|
9153
|
-
|
|
9154
|
-
|
|
9155
|
-
|
|
9156
|
-
|
|
9163
|
+
href: "https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations",
|
|
9164
|
+
rel: "self"
|
|
9165
|
+
}
|
|
9166
|
+
];
|
|
9167
|
+
var extent = {
|
|
9168
|
+
spatial: {
|
|
9169
|
+
bbox: [
|
|
9170
|
+
[
|
|
9171
|
+
-68.2758,
|
|
9172
|
+
12.13,
|
|
9173
|
+
7.1492,
|
|
9174
|
+
55.3992
|
|
9157
9175
|
]
|
|
9158
|
-
|
|
9159
|
-
|
|
9160
|
-
name: "P11-B",
|
|
9161
|
-
wmoId: "06203"
|
|
9162
|
-
},
|
|
9163
|
-
id: "0-20000-0-06203"
|
|
9176
|
+
],
|
|
9177
|
+
crs: "EPSG:4326"
|
|
9164
9178
|
},
|
|
9165
|
-
{
|
|
9166
|
-
|
|
9167
|
-
|
|
9168
|
-
|
|
9169
|
-
|
|
9170
|
-
3.6278,
|
|
9171
|
-
53.2694,
|
|
9172
|
-
41.8
|
|
9179
|
+
temporal: {
|
|
9180
|
+
interval: [
|
|
9181
|
+
[
|
|
9182
|
+
"2012-01-01T00:00:00Z",
|
|
9183
|
+
"2025-05-26T12:10:00Z"
|
|
9173
9184
|
]
|
|
9174
|
-
|
|
9175
|
-
|
|
9176
|
-
|
|
9177
|
-
|
|
9178
|
-
|
|
9179
|
-
id: "0-20000-0-06204"
|
|
9185
|
+
],
|
|
9186
|
+
values: [
|
|
9187
|
+
"2012-01-01T00:00:00Z/2025-05-26T12:10:00Z"
|
|
9188
|
+
],
|
|
9189
|
+
trs: "datetime"
|
|
9180
9190
|
},
|
|
9181
|
-
|
|
9182
|
-
|
|
9183
|
-
|
|
9184
|
-
|
|
9185
|
-
|
|
9186
|
-
|
|
9187
|
-
|
|
9188
|
-
|
|
9189
|
-
]
|
|
9191
|
+
custom: [
|
|
9192
|
+
{
|
|
9193
|
+
id: "duration",
|
|
9194
|
+
interval: [
|
|
9195
|
+
[
|
|
9196
|
+
"-PT10M",
|
|
9197
|
+
"N/A"
|
|
9198
|
+
]
|
|
9199
|
+
],
|
|
9200
|
+
values: [
|
|
9201
|
+
"-PT10M",
|
|
9202
|
+
"-PT12H",
|
|
9203
|
+
"-PT14H",
|
|
9204
|
+
"-PT19M",
|
|
9205
|
+
"-PT1H",
|
|
9206
|
+
"-PT1M",
|
|
9207
|
+
"-PT24H",
|
|
9208
|
+
"-PT3H",
|
|
9209
|
+
"-PT6H",
|
|
9210
|
+
"N/A"
|
|
9211
|
+
],
|
|
9212
|
+
reference: "https://en.wikipedia.org/wiki/ISO_8601#Durations"
|
|
9190
9213
|
},
|
|
9191
|
-
|
|
9192
|
-
|
|
9193
|
-
|
|
9214
|
+
{
|
|
9215
|
+
id: "level",
|
|
9216
|
+
interval: [
|
|
9217
|
+
[
|
|
9218
|
+
-1,
|
|
9219
|
+
10
|
|
9220
|
+
]
|
|
9221
|
+
],
|
|
9222
|
+
values: [
|
|
9223
|
+
-1,
|
|
9224
|
+
-0.5,
|
|
9225
|
+
-0.2,
|
|
9226
|
+
-0.1,
|
|
9227
|
+
-0.05,
|
|
9228
|
+
0.1,
|
|
9229
|
+
1.5,
|
|
9230
|
+
10
|
|
9231
|
+
],
|
|
9232
|
+
reference: "Height of measurement above ground level in meters"
|
|
9194
9233
|
},
|
|
9195
|
-
|
|
9196
|
-
|
|
9197
|
-
|
|
9198
|
-
|
|
9199
|
-
|
|
9200
|
-
|
|
9201
|
-
|
|
9202
|
-
|
|
9203
|
-
|
|
9204
|
-
|
|
9205
|
-
|
|
9234
|
+
{
|
|
9235
|
+
id: "method",
|
|
9236
|
+
interval: [
|
|
9237
|
+
[
|
|
9238
|
+
"maximum",
|
|
9239
|
+
"sum"
|
|
9240
|
+
]
|
|
9241
|
+
],
|
|
9242
|
+
values: [
|
|
9243
|
+
"maximum",
|
|
9244
|
+
"mean",
|
|
9245
|
+
"minimum",
|
|
9246
|
+
"stddev",
|
|
9247
|
+
"sum"
|
|
9248
|
+
],
|
|
9249
|
+
reference: "Time aggregation functions"
|
|
9206
9250
|
},
|
|
9207
|
-
|
|
9208
|
-
|
|
9209
|
-
|
|
9251
|
+
{
|
|
9252
|
+
id: "standard_name",
|
|
9253
|
+
interval: [
|
|
9254
|
+
[
|
|
9255
|
+
"air_pressure",
|
|
9256
|
+
"wind_speed_of_gust"
|
|
9257
|
+
]
|
|
9258
|
+
],
|
|
9259
|
+
values: [
|
|
9260
|
+
"air_pressure",
|
|
9261
|
+
"air_pressure_at_mean_sea_level",
|
|
9262
|
+
"air_temperature",
|
|
9263
|
+
"cloud_area_fraction",
|
|
9264
|
+
"cloud_base_altitude",
|
|
9265
|
+
"dew_point_temperature",
|
|
9266
|
+
"integral_wrt_time_of_surface_downwelling_shortwave_flux_in_air",
|
|
9267
|
+
"lwe_precipitation_rate",
|
|
9268
|
+
"predominant_precipitation_type_at_surface",
|
|
9269
|
+
"rainfall_amount",
|
|
9270
|
+
"relative_humidity",
|
|
9271
|
+
"soil_temperature",
|
|
9272
|
+
"surface_downwelling_shortwave_flux_in_air",
|
|
9273
|
+
"visibility_in_air",
|
|
9274
|
+
"wind_from_direction",
|
|
9275
|
+
"wind_speed",
|
|
9276
|
+
"wind_speed_of_gust"
|
|
9277
|
+
],
|
|
9278
|
+
reference: "https://vocab.nerc.ac.uk/standard_name/"
|
|
9279
|
+
}
|
|
9280
|
+
]
|
|
9281
|
+
};
|
|
9282
|
+
var data_queries = {
|
|
9283
|
+
position: {
|
|
9284
|
+
link: {
|
|
9285
|
+
href: "https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations/position",
|
|
9286
|
+
rel: "data",
|
|
9287
|
+
variables: {
|
|
9288
|
+
query_type: "position",
|
|
9289
|
+
output_formats: [
|
|
9290
|
+
"CoverageJSON",
|
|
9291
|
+
"netCDF4"
|
|
9292
|
+
],
|
|
9293
|
+
output_format: [
|
|
9294
|
+
"CoverageJSON"
|
|
9295
|
+
]
|
|
9296
|
+
}
|
|
9297
|
+
}
|
|
9298
|
+
},
|
|
9299
|
+
area: {
|
|
9300
|
+
link: {
|
|
9301
|
+
href: "https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations/area",
|
|
9302
|
+
rel: "data",
|
|
9303
|
+
variables: {
|
|
9304
|
+
query_type: "area",
|
|
9305
|
+
output_format: [
|
|
9306
|
+
"CoverageJSON"
|
|
9307
|
+
]
|
|
9308
|
+
}
|
|
9309
|
+
}
|
|
9310
|
+
},
|
|
9311
|
+
cube: {
|
|
9312
|
+
link: {
|
|
9313
|
+
href: "https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations/cube",
|
|
9314
|
+
rel: "data",
|
|
9315
|
+
variables: {
|
|
9316
|
+
query_type: "cube",
|
|
9317
|
+
output_formats: [
|
|
9318
|
+
"CoverageJSON",
|
|
9319
|
+
"netCDF4"
|
|
9320
|
+
],
|
|
9321
|
+
output_format: [
|
|
9322
|
+
"CoverageJSON"
|
|
9323
|
+
]
|
|
9324
|
+
}
|
|
9325
|
+
}
|
|
9326
|
+
},
|
|
9327
|
+
locations: {
|
|
9328
|
+
link: {
|
|
9329
|
+
href: "https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations/locations",
|
|
9330
|
+
rel: "data",
|
|
9331
|
+
variables: {
|
|
9332
|
+
query_type: "locations",
|
|
9333
|
+
output_formats: [
|
|
9334
|
+
"CoverageJSON",
|
|
9335
|
+
"netCDF4"
|
|
9336
|
+
],
|
|
9337
|
+
output_format: [
|
|
9338
|
+
"CoverageJSON"
|
|
9339
|
+
]
|
|
9340
|
+
}
|
|
9341
|
+
}
|
|
9342
|
+
}
|
|
9343
|
+
};
|
|
9344
|
+
var crs = [
|
|
9345
|
+
"WGS84"
|
|
9346
|
+
];
|
|
9347
|
+
var output_formats = [
|
|
9348
|
+
"CoverageJSON",
|
|
9349
|
+
"netCDF4"
|
|
9350
|
+
];
|
|
9351
|
+
var parameter_names = {
|
|
9352
|
+
D1H: {
|
|
9353
|
+
type: "Parameter",
|
|
9354
|
+
label: "Rainfall Duration in last Hour",
|
|
9355
|
+
description: "Past hour rainfall duration in minutes",
|
|
9356
|
+
"data-type": "float",
|
|
9357
|
+
unit: {
|
|
9358
|
+
label: "minute",
|
|
9359
|
+
symbol: {
|
|
9360
|
+
value: "min",
|
|
9361
|
+
type: "https://qudt.org/vocab/unit/MIN"
|
|
9362
|
+
}
|
|
9363
|
+
},
|
|
9364
|
+
observedProperty: {
|
|
9365
|
+
label: "Precipitation Duration",
|
|
9366
|
+
description: "Period during which more than 0.05 mm of precipitation was measured."
|
|
9367
|
+
},
|
|
9368
|
+
measurementType: {
|
|
9369
|
+
method: "sum",
|
|
9370
|
+
duration: "-PT1H"
|
|
9371
|
+
}
|
|
9372
|
+
},
|
|
9373
|
+
dd: {
|
|
9374
|
+
type: "Parameter",
|
|
9375
|
+
label: "Wind Direction Mean with MD",
|
|
9376
|
+
description: "Past 10 minute mean wind direction in degrees, measured at sensor height, with Marked Discontinuity (MD)",
|
|
9377
|
+
"data-type": "float",
|
|
9378
|
+
unit: {
|
|
9379
|
+
label: "degree",
|
|
9380
|
+
symbol: {
|
|
9381
|
+
value: "°",
|
|
9382
|
+
type: "https://qudt.org/vocab/unit/DEG"
|
|
9383
|
+
}
|
|
9384
|
+
},
|
|
9385
|
+
observedProperty: {
|
|
9386
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_from_direction/",
|
|
9387
|
+
label: "Wind from direction"
|
|
9388
|
+
},
|
|
9389
|
+
measurementType: {
|
|
9390
|
+
method: "mean",
|
|
9391
|
+
duration: "-PT10M"
|
|
9392
|
+
},
|
|
9393
|
+
"eumetnet:standard_name": "wind_from_direction"
|
|
9394
|
+
},
|
|
9395
|
+
dn: {
|
|
9396
|
+
type: "Parameter",
|
|
9397
|
+
label: "Wind Direction Minimum with MD",
|
|
9398
|
+
description: "Past 10 minute minimum wind direction in degrees, measured at sensor height, with Marked Discontinuity (MD)",
|
|
9399
|
+
"data-type": "float",
|
|
9400
|
+
unit: {
|
|
9401
|
+
label: "degree",
|
|
9402
|
+
symbol: {
|
|
9403
|
+
value: "°",
|
|
9404
|
+
type: "https://qudt.org/vocab/unit/DEG"
|
|
9405
|
+
}
|
|
9406
|
+
},
|
|
9407
|
+
observedProperty: {
|
|
9408
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_from_direction/",
|
|
9409
|
+
label: "Wind from direction"
|
|
9410
|
+
},
|
|
9411
|
+
measurementType: {
|
|
9412
|
+
method: "minimum",
|
|
9413
|
+
duration: "-PT10M"
|
|
9414
|
+
},
|
|
9415
|
+
"eumetnet:standard_name": "wind_from_direction"
|
|
9416
|
+
},
|
|
9417
|
+
dr: {
|
|
9418
|
+
type: "Parameter",
|
|
9419
|
+
label: "Precipitation Duration (Rain Gauge)",
|
|
9420
|
+
description: "Past 10 minute duration of precipitation in seconds, measured by rain gauge",
|
|
9421
|
+
"data-type": "float",
|
|
9422
|
+
unit: {
|
|
9423
|
+
label: "second",
|
|
9424
|
+
symbol: {
|
|
9425
|
+
value: "s",
|
|
9426
|
+
type: "https://qudt.org/vocab/unit/SEC"
|
|
9427
|
+
}
|
|
9428
|
+
},
|
|
9429
|
+
observedProperty: {
|
|
9430
|
+
label: "Precipitation Duration",
|
|
9431
|
+
description: "Period during which more than 0.05 mm of precipitation was measured."
|
|
9432
|
+
},
|
|
9433
|
+
measurementType: {
|
|
9434
|
+
method: "N/A",
|
|
9435
|
+
duration: "-PT10M"
|
|
9436
|
+
}
|
|
9437
|
+
},
|
|
9438
|
+
dsd: {
|
|
9439
|
+
type: "Parameter",
|
|
9440
|
+
label: "Wind Direction Std Dev with MD",
|
|
9441
|
+
description: "Past 10 minute standard deviation of wind direction in degrees, measured at sensor height, with Marked Discontinuity (MD)",
|
|
9442
|
+
"data-type": "float",
|
|
9443
|
+
unit: {
|
|
9444
|
+
label: "degree",
|
|
9445
|
+
symbol: {
|
|
9446
|
+
value: "°",
|
|
9447
|
+
type: "https://qudt.org/vocab/unit/DEG"
|
|
9448
|
+
}
|
|
9449
|
+
},
|
|
9450
|
+
observedProperty: {
|
|
9451
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_from_direction/",
|
|
9452
|
+
label: "Wind from direction"
|
|
9453
|
+
},
|
|
9454
|
+
measurementType: {
|
|
9455
|
+
method: "stddev",
|
|
9456
|
+
duration: "-PT10M"
|
|
9457
|
+
},
|
|
9458
|
+
"eumetnet:standard_name": "wind_from_direction"
|
|
9459
|
+
},
|
|
9460
|
+
dx: {
|
|
9461
|
+
type: "Parameter",
|
|
9462
|
+
label: "Wind Direction Maximum with MD",
|
|
9463
|
+
description: "Past 10 minute maximum wind direction in degrees, measured at sensor height, with Marked Discontinuity (MD)",
|
|
9464
|
+
"data-type": "float",
|
|
9465
|
+
unit: {
|
|
9466
|
+
label: "degree",
|
|
9467
|
+
symbol: {
|
|
9468
|
+
value: "°",
|
|
9469
|
+
type: "https://qudt.org/vocab/unit/DEG"
|
|
9470
|
+
}
|
|
9471
|
+
},
|
|
9472
|
+
observedProperty: {
|
|
9473
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_from_direction/",
|
|
9474
|
+
label: "Wind from direction"
|
|
9475
|
+
},
|
|
9476
|
+
measurementType: {
|
|
9477
|
+
method: "maximum",
|
|
9478
|
+
duration: "-PT10M"
|
|
9479
|
+
},
|
|
9480
|
+
"eumetnet:standard_name": "wind_from_direction"
|
|
9481
|
+
},
|
|
9482
|
+
ff: {
|
|
9483
|
+
type: "Parameter",
|
|
9484
|
+
label: "Wind Speed at 10 m Mean with MD",
|
|
9485
|
+
description: "Past 10 minute mean wind speed, representative for 10 meters, in meters per second, with Marked Discontinuity (MD)",
|
|
9486
|
+
"data-type": "float",
|
|
9487
|
+
unit: {
|
|
9488
|
+
label: "meter per second",
|
|
9489
|
+
symbol: {
|
|
9490
|
+
value: "m/s",
|
|
9491
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
9492
|
+
}
|
|
9493
|
+
},
|
|
9494
|
+
observedProperty: {
|
|
9495
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed/",
|
|
9496
|
+
label: "Wind speed"
|
|
9497
|
+
},
|
|
9498
|
+
measurementType: {
|
|
9499
|
+
method: "mean",
|
|
9500
|
+
duration: "-PT10M"
|
|
9501
|
+
},
|
|
9502
|
+
"eumetnet:standard_name": "wind_speed",
|
|
9503
|
+
"eumetnet:level": 10
|
|
9504
|
+
},
|
|
9505
|
+
ffs: {
|
|
9506
|
+
type: "Parameter",
|
|
9507
|
+
label: "Wind Speed Sensor Mean with MD",
|
|
9508
|
+
description: "Past 10 minute mean wind speed, measured at sensor height, in meters per second, with Marked Discontinuity (MD)",
|
|
9509
|
+
"data-type": "float",
|
|
9510
|
+
unit: {
|
|
9511
|
+
label: "meter per second",
|
|
9512
|
+
symbol: {
|
|
9513
|
+
value: "m/s",
|
|
9514
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
9515
|
+
}
|
|
9516
|
+
},
|
|
9517
|
+
observedProperty: {
|
|
9518
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed/",
|
|
9519
|
+
label: "Wind speed"
|
|
9520
|
+
},
|
|
9521
|
+
measurementType: {
|
|
9522
|
+
method: "mean",
|
|
9523
|
+
duration: "-PT10M"
|
|
9524
|
+
},
|
|
9525
|
+
"eumetnet:standard_name": "wind_speed"
|
|
9526
|
+
},
|
|
9527
|
+
fsd: {
|
|
9528
|
+
type: "Parameter",
|
|
9529
|
+
label: "Wind Speed Std Dev with MD",
|
|
9530
|
+
description: "Past 10 minute standard deviation of wind speed, measured at sensor height, in meters per second, with Marked Discontinuity (MD)",
|
|
9531
|
+
"data-type": "float",
|
|
9532
|
+
unit: {
|
|
9533
|
+
label: "meter per second",
|
|
9534
|
+
symbol: {
|
|
9535
|
+
value: "m/s",
|
|
9536
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
9537
|
+
}
|
|
9538
|
+
},
|
|
9539
|
+
observedProperty: {
|
|
9540
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed/",
|
|
9541
|
+
label: "Wind speed"
|
|
9542
|
+
},
|
|
9543
|
+
measurementType: {
|
|
9544
|
+
method: "stddev",
|
|
9545
|
+
duration: "-PT10M"
|
|
9546
|
+
},
|
|
9547
|
+
"eumetnet:standard_name": "wind_speed"
|
|
9548
|
+
},
|
|
9549
|
+
fx: {
|
|
9550
|
+
type: "Parameter",
|
|
9551
|
+
label: "Wind Gust at 10 m Maximum last Interval",
|
|
9552
|
+
description: "Past 19 minute maximum wind gust, representative for 10 meters, in meters per second",
|
|
9553
|
+
"data-type": "float",
|
|
9554
|
+
unit: {
|
|
9555
|
+
label: "meter per second",
|
|
9556
|
+
symbol: {
|
|
9557
|
+
value: "m/s",
|
|
9558
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
9559
|
+
}
|
|
9560
|
+
},
|
|
9561
|
+
observedProperty: {
|
|
9562
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed_of_gust/",
|
|
9563
|
+
label: "Wind speed of gust"
|
|
9564
|
+
},
|
|
9565
|
+
measurementType: {
|
|
9566
|
+
method: "maximum",
|
|
9567
|
+
duration: "-PT19M"
|
|
9568
|
+
},
|
|
9569
|
+
"eumetnet:standard_name": "wind_speed_of_gust",
|
|
9570
|
+
"eumetnet:level": 10
|
|
9571
|
+
},
|
|
9572
|
+
fxs: {
|
|
9573
|
+
type: "Parameter",
|
|
9574
|
+
label: "Wind Gust Sensor Maximum last Interval",
|
|
9575
|
+
description: "Past 19 minute maximum wind gust, measured at sensor height, in meters per second",
|
|
9576
|
+
"data-type": "float",
|
|
9577
|
+
unit: {
|
|
9578
|
+
label: "meter per second",
|
|
9579
|
+
symbol: {
|
|
9580
|
+
value: "m/s",
|
|
9581
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
9582
|
+
}
|
|
9583
|
+
},
|
|
9584
|
+
observedProperty: {
|
|
9585
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed_of_gust/",
|
|
9586
|
+
label: "Wind speed of gust"
|
|
9587
|
+
},
|
|
9588
|
+
measurementType: {
|
|
9589
|
+
method: "maximum",
|
|
9590
|
+
duration: "-PT19M"
|
|
9591
|
+
},
|
|
9592
|
+
"eumetnet:standard_name": "wind_speed_of_gust"
|
|
9593
|
+
},
|
|
9594
|
+
gff: {
|
|
9595
|
+
type: "Parameter",
|
|
9596
|
+
label: "Wind Gust at 10 m Maximum with MD",
|
|
9597
|
+
description: "Past 10 minute maximum wind gust, representative for 10 meters, in meters per second, with Marked Discontinuity (MD)",
|
|
9598
|
+
"data-type": "float",
|
|
9599
|
+
unit: {
|
|
9600
|
+
label: "meter per second",
|
|
9601
|
+
symbol: {
|
|
9602
|
+
value: "m/s",
|
|
9603
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
9604
|
+
}
|
|
9605
|
+
},
|
|
9606
|
+
observedProperty: {
|
|
9607
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed_of_gust/",
|
|
9608
|
+
label: "Wind speed of gust"
|
|
9609
|
+
},
|
|
9610
|
+
measurementType: {
|
|
9611
|
+
method: "maximum",
|
|
9612
|
+
duration: "-PT10M"
|
|
9613
|
+
},
|
|
9614
|
+
"eumetnet:standard_name": "wind_speed_of_gust",
|
|
9615
|
+
"eumetnet:level": 10
|
|
9616
|
+
},
|
|
9617
|
+
gffs: {
|
|
9618
|
+
type: "Parameter",
|
|
9619
|
+
label: "Wind Gust Sensor Maximum with MD",
|
|
9620
|
+
description: "Past 10 minute maximum wind gust, measured at sensor height, in meters per second, with Marked Discontinuity (MD)",
|
|
9621
|
+
"data-type": "float",
|
|
9622
|
+
unit: {
|
|
9623
|
+
label: "meter per second",
|
|
9624
|
+
symbol: {
|
|
9625
|
+
value: "m/s",
|
|
9626
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
9627
|
+
}
|
|
9628
|
+
},
|
|
9629
|
+
observedProperty: {
|
|
9630
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed_of_gust/",
|
|
9631
|
+
label: "Wind speed of gust"
|
|
9632
|
+
},
|
|
9633
|
+
measurementType: {
|
|
9634
|
+
method: "maximum",
|
|
9635
|
+
duration: "-PT10M"
|
|
9636
|
+
},
|
|
9637
|
+
"eumetnet:standard_name": "wind_speed_of_gust"
|
|
9638
|
+
},
|
|
9639
|
+
h: {
|
|
9640
|
+
type: "Parameter",
|
|
9641
|
+
label: "Cloud Base",
|
|
9642
|
+
description: "Past 10 minute cloud base altitude, in feet",
|
|
9643
|
+
"data-type": "float",
|
|
9644
|
+
unit: {
|
|
9645
|
+
label: "foot",
|
|
9646
|
+
symbol: {
|
|
9647
|
+
value: "ft",
|
|
9648
|
+
type: "https://qudt.org/vocab/unit/FT"
|
|
9649
|
+
}
|
|
9650
|
+
},
|
|
9651
|
+
observedProperty: {
|
|
9652
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_base_altitude/",
|
|
9653
|
+
label: "Cloud base altitude"
|
|
9654
|
+
},
|
|
9655
|
+
measurementType: {
|
|
9656
|
+
method: "N/A",
|
|
9657
|
+
duration: "-PT10M"
|
|
9658
|
+
},
|
|
9659
|
+
"eumetnet:standard_name": "cloud_base_altitude"
|
|
9660
|
+
},
|
|
9661
|
+
h1: {
|
|
9662
|
+
type: "Parameter",
|
|
9663
|
+
label: "Cloud Base First Layer",
|
|
9664
|
+
description: "Past 10 minute first layer cloud base altitude, in feet",
|
|
9665
|
+
"data-type": "float",
|
|
9666
|
+
unit: {
|
|
9667
|
+
label: "foot",
|
|
9668
|
+
symbol: {
|
|
9669
|
+
value: "ft",
|
|
9670
|
+
type: "https://qudt.org/vocab/unit/FT"
|
|
9671
|
+
}
|
|
9672
|
+
},
|
|
9673
|
+
observedProperty: {
|
|
9674
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_base_altitude/",
|
|
9675
|
+
label: "Cloud base altitude"
|
|
9676
|
+
},
|
|
9677
|
+
measurementType: {
|
|
9678
|
+
method: "N/A",
|
|
9679
|
+
duration: "-PT10M"
|
|
9680
|
+
},
|
|
9681
|
+
"eumetnet:standard_name": "cloud_base_altitude"
|
|
9682
|
+
},
|
|
9683
|
+
h2: {
|
|
9684
|
+
type: "Parameter",
|
|
9685
|
+
label: "Cloud Base Second Layer",
|
|
9686
|
+
description: "Past 10 minute second layer cloud base altitude, in feet",
|
|
9687
|
+
"data-type": "float",
|
|
9688
|
+
unit: {
|
|
9689
|
+
label: "foot",
|
|
9690
|
+
symbol: {
|
|
9691
|
+
value: "ft",
|
|
9692
|
+
type: "https://qudt.org/vocab/unit/FT"
|
|
9693
|
+
}
|
|
9694
|
+
},
|
|
9695
|
+
observedProperty: {
|
|
9696
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_base_altitude/",
|
|
9697
|
+
label: "Cloud base altitude"
|
|
9698
|
+
},
|
|
9699
|
+
measurementType: {
|
|
9700
|
+
method: "N/A",
|
|
9701
|
+
duration: "-PT10M"
|
|
9702
|
+
},
|
|
9703
|
+
"eumetnet:standard_name": "cloud_base_altitude"
|
|
9704
|
+
},
|
|
9705
|
+
h3: {
|
|
9706
|
+
type: "Parameter",
|
|
9707
|
+
label: "Cloud Base Third Layer",
|
|
9708
|
+
description: "Past 10 minute third layer cloud base altitude, in feet",
|
|
9709
|
+
"data-type": "float",
|
|
9710
|
+
unit: {
|
|
9711
|
+
label: "foot",
|
|
9712
|
+
symbol: {
|
|
9713
|
+
value: "ft",
|
|
9714
|
+
type: "https://qudt.org/vocab/unit/FT"
|
|
9715
|
+
}
|
|
9716
|
+
},
|
|
9717
|
+
observedProperty: {
|
|
9718
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_base_altitude/",
|
|
9719
|
+
label: "Cloud base altitude"
|
|
9720
|
+
},
|
|
9721
|
+
measurementType: {
|
|
9722
|
+
method: "N/A",
|
|
9723
|
+
duration: "-PT10M"
|
|
9724
|
+
},
|
|
9725
|
+
"eumetnet:standard_name": "cloud_base_altitude"
|
|
9726
|
+
},
|
|
9727
|
+
hc: {
|
|
9728
|
+
type: "Parameter",
|
|
9729
|
+
label: "Cloud Base Ceilometer",
|
|
9730
|
+
description: "Past 10 minute cloud base ceilometer, in feet",
|
|
9731
|
+
"data-type": "float",
|
|
9732
|
+
unit: {
|
|
9733
|
+
label: "foot",
|
|
9734
|
+
symbol: {
|
|
9735
|
+
value: "ft",
|
|
9736
|
+
type: "https://qudt.org/vocab/unit/FT"
|
|
9737
|
+
}
|
|
9738
|
+
},
|
|
9739
|
+
observedProperty: {
|
|
9740
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_base_altitude/",
|
|
9741
|
+
label: "Cloud base altitude"
|
|
9742
|
+
},
|
|
9743
|
+
measurementType: {
|
|
9744
|
+
method: "N/A",
|
|
9745
|
+
duration: "-PT10M"
|
|
9746
|
+
},
|
|
9747
|
+
"eumetnet:standard_name": "cloud_base_altitude"
|
|
9748
|
+
},
|
|
9749
|
+
hc1: {
|
|
9750
|
+
type: "Parameter",
|
|
9751
|
+
label: "Cloud Base Ceilometer First Layer",
|
|
9752
|
+
description: "Past 10 minute first layer cloud base ceilometer, in feet",
|
|
9753
|
+
"data-type": "float",
|
|
9754
|
+
unit: {
|
|
9755
|
+
label: "foot",
|
|
9756
|
+
symbol: {
|
|
9757
|
+
value: "ft",
|
|
9758
|
+
type: "https://qudt.org/vocab/unit/FT"
|
|
9759
|
+
}
|
|
9760
|
+
},
|
|
9761
|
+
observedProperty: {
|
|
9762
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_base_altitude/",
|
|
9763
|
+
label: "Cloud base altitude"
|
|
9764
|
+
},
|
|
9765
|
+
measurementType: {
|
|
9766
|
+
method: "N/A",
|
|
9767
|
+
duration: "-PT10M"
|
|
9768
|
+
},
|
|
9769
|
+
"eumetnet:standard_name": "cloud_base_altitude"
|
|
9770
|
+
},
|
|
9771
|
+
hc2: {
|
|
9772
|
+
type: "Parameter",
|
|
9773
|
+
label: "Cloud Base Ceilometer Second Layer",
|
|
9774
|
+
description: "Past 10 minute second layer cloud base ceilometer, in feet",
|
|
9775
|
+
"data-type": "float",
|
|
9776
|
+
unit: {
|
|
9777
|
+
label: "foot",
|
|
9778
|
+
symbol: {
|
|
9779
|
+
value: "ft",
|
|
9780
|
+
type: "https://qudt.org/vocab/unit/FT"
|
|
9781
|
+
}
|
|
9782
|
+
},
|
|
9783
|
+
observedProperty: {
|
|
9784
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_base_altitude/",
|
|
9785
|
+
label: "Cloud base altitude"
|
|
9786
|
+
},
|
|
9787
|
+
measurementType: {
|
|
9788
|
+
method: "N/A",
|
|
9789
|
+
duration: "-PT10M"
|
|
9790
|
+
},
|
|
9791
|
+
"eumetnet:standard_name": "cloud_base_altitude"
|
|
9792
|
+
},
|
|
9793
|
+
hc3: {
|
|
9794
|
+
type: "Parameter",
|
|
9795
|
+
label: "Cloud Base Ceilometer Third Layer",
|
|
9796
|
+
description: "Past 10 minute third layer cloud base ceilometer, in feet",
|
|
9797
|
+
"data-type": "float",
|
|
9798
|
+
unit: {
|
|
9799
|
+
label: "foot",
|
|
9800
|
+
symbol: {
|
|
9801
|
+
value: "ft",
|
|
9802
|
+
type: "https://qudt.org/vocab/unit/FT"
|
|
9803
|
+
}
|
|
9804
|
+
},
|
|
9805
|
+
observedProperty: {
|
|
9806
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_base_altitude/",
|
|
9807
|
+
label: "Cloud base altitude"
|
|
9808
|
+
},
|
|
9809
|
+
measurementType: {
|
|
9810
|
+
method: "N/A",
|
|
9811
|
+
duration: "-PT10M"
|
|
9812
|
+
},
|
|
9813
|
+
"eumetnet:standard_name": "cloud_base_altitude"
|
|
9814
|
+
},
|
|
9815
|
+
n: {
|
|
9816
|
+
type: "Parameter",
|
|
9817
|
+
label: "Total Cloud Cover",
|
|
9818
|
+
description: "Past 10 minute total cloud cover, in okta",
|
|
9819
|
+
"data-type": "float",
|
|
9820
|
+
unit: {
|
|
9821
|
+
label: "okta",
|
|
9822
|
+
symbol: {
|
|
9823
|
+
value: "okta",
|
|
9824
|
+
type: "https://qudt.org/vocab/unit/OKTA"
|
|
9825
|
+
}
|
|
9826
|
+
},
|
|
9827
|
+
observedProperty: {
|
|
9828
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_area_fraction/",
|
|
9829
|
+
label: "Cloud area fraction"
|
|
9830
|
+
},
|
|
9831
|
+
measurementType: {
|
|
9832
|
+
method: "N/A",
|
|
9833
|
+
duration: "-PT10M"
|
|
9834
|
+
},
|
|
9835
|
+
"eumetnet:standard_name": "cloud_area_fraction"
|
|
9836
|
+
},
|
|
9837
|
+
n1: {
|
|
9838
|
+
type: "Parameter",
|
|
9839
|
+
label: "Cloud Amount First Layer",
|
|
9840
|
+
description: "Past 10 minute first layer cloud amount, in okta",
|
|
9841
|
+
"data-type": "float",
|
|
9842
|
+
unit: {
|
|
9843
|
+
label: "okta",
|
|
9844
|
+
symbol: {
|
|
9845
|
+
value: "okta",
|
|
9846
|
+
type: "https://qudt.org/vocab/unit/OKTA"
|
|
9847
|
+
}
|
|
9848
|
+
},
|
|
9849
|
+
observedProperty: {
|
|
9850
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_area_fraction/",
|
|
9851
|
+
label: "Cloud area fraction"
|
|
9852
|
+
},
|
|
9853
|
+
measurementType: {
|
|
9854
|
+
method: "N/A",
|
|
9855
|
+
duration: "-PT10M"
|
|
9856
|
+
},
|
|
9857
|
+
"eumetnet:standard_name": "cloud_area_fraction"
|
|
9858
|
+
},
|
|
9859
|
+
n2: {
|
|
9860
|
+
type: "Parameter",
|
|
9861
|
+
label: "Cloud Amount Second Layer",
|
|
9862
|
+
description: "Past 10 minute second layer cloud amount, in okta",
|
|
9863
|
+
"data-type": "float",
|
|
9864
|
+
unit: {
|
|
9865
|
+
label: "okta",
|
|
9866
|
+
symbol: {
|
|
9867
|
+
value: "okta",
|
|
9868
|
+
type: "https://qudt.org/vocab/unit/OKTA"
|
|
9869
|
+
}
|
|
9870
|
+
},
|
|
9871
|
+
observedProperty: {
|
|
9872
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_area_fraction/",
|
|
9873
|
+
label: "Cloud area fraction"
|
|
9874
|
+
},
|
|
9875
|
+
measurementType: {
|
|
9876
|
+
method: "N/A",
|
|
9877
|
+
duration: "-PT10M"
|
|
9878
|
+
},
|
|
9879
|
+
"eumetnet:standard_name": "cloud_area_fraction"
|
|
9880
|
+
},
|
|
9881
|
+
n3: {
|
|
9882
|
+
type: "Parameter",
|
|
9883
|
+
label: "Cloud Amount Third Layer",
|
|
9884
|
+
description: "Past 10 minute third layer cloud amount, in okta",
|
|
9885
|
+
"data-type": "float",
|
|
9886
|
+
unit: {
|
|
9887
|
+
label: "okta",
|
|
9888
|
+
symbol: {
|
|
9889
|
+
value: "okta",
|
|
9890
|
+
type: "https://qudt.org/vocab/unit/OKTA"
|
|
9891
|
+
}
|
|
9892
|
+
},
|
|
9893
|
+
observedProperty: {
|
|
9894
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_area_fraction/",
|
|
9895
|
+
label: "Cloud area fraction"
|
|
9896
|
+
},
|
|
9897
|
+
measurementType: {
|
|
9898
|
+
method: "N/A",
|
|
9899
|
+
duration: "-PT10M"
|
|
9900
|
+
},
|
|
9901
|
+
"eumetnet:standard_name": "cloud_area_fraction"
|
|
9902
|
+
},
|
|
9903
|
+
nc: {
|
|
9904
|
+
type: "Parameter",
|
|
9905
|
+
label: "Total Cloud Cover Ceilometer",
|
|
9906
|
+
description: "Past 10 minute total cloud cover ceilometer, in okta",
|
|
9907
|
+
"data-type": "float",
|
|
9908
|
+
unit: {
|
|
9909
|
+
label: "okta",
|
|
9910
|
+
symbol: {
|
|
9911
|
+
value: "okta",
|
|
9912
|
+
type: "https://qudt.org/vocab/unit/OKTA"
|
|
9913
|
+
}
|
|
9914
|
+
},
|
|
9915
|
+
observedProperty: {
|
|
9916
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_area_fraction/",
|
|
9917
|
+
label: "Cloud area fraction"
|
|
9918
|
+
},
|
|
9919
|
+
measurementType: {
|
|
9920
|
+
method: "N/A",
|
|
9921
|
+
duration: "-PT10M"
|
|
9922
|
+
},
|
|
9923
|
+
"eumetnet:standard_name": "cloud_area_fraction"
|
|
9924
|
+
},
|
|
9925
|
+
nc1: {
|
|
9926
|
+
type: "Parameter",
|
|
9927
|
+
label: "Cloud Amount Ceilometer First Layer",
|
|
9928
|
+
description: "Past 10 minute first layer cloud amount ceilometer, in okta",
|
|
9929
|
+
"data-type": "float",
|
|
9930
|
+
unit: {
|
|
9931
|
+
label: "okta",
|
|
9932
|
+
symbol: {
|
|
9933
|
+
value: "okta",
|
|
9934
|
+
type: "https://qudt.org/vocab/unit/OKTA"
|
|
9935
|
+
}
|
|
9936
|
+
},
|
|
9937
|
+
observedProperty: {
|
|
9938
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_area_fraction/",
|
|
9939
|
+
label: "Cloud area fraction"
|
|
9940
|
+
},
|
|
9941
|
+
measurementType: {
|
|
9942
|
+
method: "N/A",
|
|
9943
|
+
duration: "-PT10M"
|
|
9944
|
+
},
|
|
9945
|
+
"eumetnet:standard_name": "cloud_area_fraction"
|
|
9946
|
+
},
|
|
9947
|
+
nc2: {
|
|
9948
|
+
type: "Parameter",
|
|
9949
|
+
label: "Cloud Amount Ceilometer Second Layer",
|
|
9950
|
+
description: "Past 10 minute second layer cloud amount ceilometer, in okta",
|
|
9951
|
+
"data-type": "float",
|
|
9952
|
+
unit: {
|
|
9953
|
+
label: "okta",
|
|
9954
|
+
symbol: {
|
|
9955
|
+
value: "okta",
|
|
9956
|
+
type: "https://qudt.org/vocab/unit/OKTA"
|
|
9957
|
+
}
|
|
9958
|
+
},
|
|
9959
|
+
observedProperty: {
|
|
9960
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_area_fraction/",
|
|
9961
|
+
label: "Cloud area fraction"
|
|
9962
|
+
},
|
|
9963
|
+
measurementType: {
|
|
9964
|
+
method: "N/A",
|
|
9965
|
+
duration: "-PT10M"
|
|
9966
|
+
},
|
|
9967
|
+
"eumetnet:standard_name": "cloud_area_fraction"
|
|
9968
|
+
},
|
|
9969
|
+
nc3: {
|
|
9970
|
+
type: "Parameter",
|
|
9971
|
+
label: "Cloud Amount Ceilometer Third Layer",
|
|
9972
|
+
description: "Past 10 minute third layer cloud amount ceilometer, in okta",
|
|
9973
|
+
"data-type": "float",
|
|
9974
|
+
unit: {
|
|
9975
|
+
label: "okta",
|
|
9976
|
+
symbol: {
|
|
9977
|
+
value: "okta",
|
|
9978
|
+
type: "https://qudt.org/vocab/unit/OKTA"
|
|
9979
|
+
}
|
|
9980
|
+
},
|
|
9981
|
+
observedProperty: {
|
|
9982
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_area_fraction/",
|
|
9983
|
+
label: "Cloud area fraction"
|
|
9984
|
+
},
|
|
9985
|
+
measurementType: {
|
|
9986
|
+
method: "N/A",
|
|
9987
|
+
duration: "-PT10M"
|
|
9988
|
+
},
|
|
9989
|
+
"eumetnet:standard_name": "cloud_area_fraction"
|
|
9990
|
+
},
|
|
9991
|
+
nhc: {
|
|
9992
|
+
type: "Parameter",
|
|
9993
|
+
label: "Low and Middle Cloud Amount Ceilometer",
|
|
9994
|
+
description: "Past 10 minute low and middle cloud amount ceilometer, in okta",
|
|
9995
|
+
"data-type": "float",
|
|
9996
|
+
unit: {
|
|
9997
|
+
label: "okta",
|
|
9998
|
+
symbol: {
|
|
9999
|
+
value: "okta",
|
|
10000
|
+
type: "https://qudt.org/vocab/unit/OKTA"
|
|
10001
|
+
}
|
|
10002
|
+
},
|
|
10003
|
+
observedProperty: {
|
|
10004
|
+
id: "https://vocab.nerc.ac.uk/standard_name/cloud_area_fraction/",
|
|
10005
|
+
label: "Cloud area fraction"
|
|
10006
|
+
},
|
|
10007
|
+
measurementType: {
|
|
10008
|
+
method: "N/A",
|
|
10009
|
+
duration: "-PT10M"
|
|
10010
|
+
},
|
|
10011
|
+
"eumetnet:standard_name": "cloud_area_fraction"
|
|
10012
|
+
},
|
|
10013
|
+
p0: {
|
|
10014
|
+
type: "Parameter",
|
|
10015
|
+
label: "Air Pressure at Station Level 1 Min Mean",
|
|
10016
|
+
description: "Past minute mean air pressure at station level",
|
|
10017
|
+
"data-type": "float",
|
|
10018
|
+
unit: {
|
|
10019
|
+
label: "hectopascal",
|
|
10020
|
+
symbol: {
|
|
10021
|
+
value: "hPa",
|
|
10022
|
+
type: "https://qudt.org/vocab/unit/HectoPA"
|
|
10023
|
+
}
|
|
10024
|
+
},
|
|
10025
|
+
observedProperty: {
|
|
10026
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_pressure/",
|
|
10027
|
+
label: "Air pressure"
|
|
10028
|
+
},
|
|
10029
|
+
measurementType: {
|
|
10030
|
+
method: "mean",
|
|
10031
|
+
duration: "-PT1M"
|
|
10032
|
+
},
|
|
10033
|
+
"eumetnet:standard_name": "air_pressure"
|
|
10034
|
+
},
|
|
10035
|
+
pg: {
|
|
10036
|
+
type: "Parameter",
|
|
10037
|
+
label: "Precipitation Intensity (Present Weather Sensor) Mean",
|
|
10038
|
+
description: "Past 10 minute mean precipitation intensity in millimeters per hour, measured by Present Weather Sensor",
|
|
10039
|
+
"data-type": "float",
|
|
10040
|
+
unit: {
|
|
10041
|
+
label: "millimeter per hour",
|
|
10042
|
+
symbol: {
|
|
10043
|
+
value: "mm/h",
|
|
10044
|
+
type: "https://qudt.org/vocab/unit/MilliM-PER-HR"
|
|
10045
|
+
}
|
|
10046
|
+
},
|
|
10047
|
+
observedProperty: {
|
|
10048
|
+
id: "https://vocab.nerc.ac.uk/standard_name/lwe_precipitation_rate/",
|
|
10049
|
+
label: "Lwe precipitation rate"
|
|
10050
|
+
},
|
|
10051
|
+
measurementType: {
|
|
10052
|
+
method: "mean",
|
|
10053
|
+
duration: "-PT10M"
|
|
10054
|
+
},
|
|
10055
|
+
"eumetnet:standard_name": "lwe_precipitation_rate"
|
|
10056
|
+
},
|
|
10057
|
+
pp: {
|
|
10058
|
+
type: "Parameter",
|
|
10059
|
+
label: "Air Pressure at Mean Sea Level 1 Min Mean",
|
|
10060
|
+
description: "Past minute mean air pressure at mean sea level in hectopascal",
|
|
10061
|
+
"data-type": "float",
|
|
10062
|
+
unit: {
|
|
10063
|
+
label: "hectopascal",
|
|
10064
|
+
symbol: {
|
|
10065
|
+
value: "hPa",
|
|
10066
|
+
type: "https://qudt.org/vocab/unit/HectoPA"
|
|
10067
|
+
}
|
|
10068
|
+
},
|
|
10069
|
+
observedProperty: {
|
|
10070
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_pressure_at_mean_sea_level/",
|
|
10071
|
+
label: "Air pressure at mean sea level"
|
|
10072
|
+
},
|
|
10073
|
+
measurementType: {
|
|
10074
|
+
method: "mean",
|
|
10075
|
+
duration: "-PT1M"
|
|
10076
|
+
},
|
|
10077
|
+
"eumetnet:standard_name": "air_pressure_at_mean_sea_level"
|
|
10078
|
+
},
|
|
10079
|
+
pr: {
|
|
10080
|
+
type: "Parameter",
|
|
10081
|
+
label: "Precipitation Duration (Present Weather Sensor)",
|
|
10082
|
+
description: "Past 10 minute duration of precipitation in seconds, measured by Present Weather Sensor",
|
|
10083
|
+
"data-type": "float",
|
|
10084
|
+
unit: {
|
|
10085
|
+
label: "second",
|
|
10086
|
+
symbol: {
|
|
10087
|
+
value: "s",
|
|
10088
|
+
type: "https://qudt.org/vocab/unit/SEC"
|
|
10089
|
+
}
|
|
10090
|
+
},
|
|
10091
|
+
observedProperty: {
|
|
10092
|
+
label: "Precipitation Duration",
|
|
10093
|
+
description: "Period during which more than 0.05 mm of precipitation was measured."
|
|
10094
|
+
},
|
|
10095
|
+
measurementType: {
|
|
10096
|
+
method: "N/A",
|
|
10097
|
+
duration: "-PT10M"
|
|
10098
|
+
}
|
|
10099
|
+
},
|
|
10100
|
+
ps: {
|
|
10101
|
+
type: "Parameter",
|
|
10102
|
+
label: "Air Pressure at Sensor Level Mean",
|
|
10103
|
+
description: "Past 10 minute mean air pressure at sensor level in hectopascal",
|
|
10104
|
+
"data-type": "float",
|
|
10105
|
+
unit: {
|
|
10106
|
+
label: "hectopascal",
|
|
10107
|
+
symbol: {
|
|
10108
|
+
value: "hPa",
|
|
10109
|
+
type: "https://qudt.org/vocab/unit/HectoPA"
|
|
10110
|
+
}
|
|
10111
|
+
},
|
|
10112
|
+
observedProperty: {
|
|
10113
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_pressure/",
|
|
10114
|
+
label: "Air pressure"
|
|
10115
|
+
},
|
|
10116
|
+
measurementType: {
|
|
10117
|
+
method: "mean",
|
|
10118
|
+
duration: "-PT10M"
|
|
10119
|
+
},
|
|
10120
|
+
"eumetnet:standard_name": "air_pressure"
|
|
10121
|
+
},
|
|
10122
|
+
pwc: {
|
|
10123
|
+
type: "Parameter",
|
|
10124
|
+
label: "Corrected Precipitation Type Maximum",
|
|
10125
|
+
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",
|
|
10126
|
+
"data-type": "integer",
|
|
10127
|
+
unit: {
|
|
10128
|
+
label: "unitless",
|
|
10129
|
+
symbol: {
|
|
10130
|
+
value: "一",
|
|
10131
|
+
type: "https://qudt.org/vocab/unit/UNITLESS"
|
|
10132
|
+
}
|
|
10133
|
+
},
|
|
10134
|
+
observedProperty: {
|
|
10135
|
+
id: "https://vocab.nerc.ac.uk/standard_name/predominant_precipitation_type_at_surface/",
|
|
10136
|
+
label: "Predominant precipitation type at surface"
|
|
10137
|
+
},
|
|
10138
|
+
measurementType: {
|
|
10139
|
+
method: "maximum",
|
|
10140
|
+
duration: "-PT10M"
|
|
10141
|
+
},
|
|
10142
|
+
"eumetnet:standard_name": "predominant_precipitation_type_at_surface"
|
|
10143
|
+
},
|
|
10144
|
+
Q1H: {
|
|
10145
|
+
type: "Parameter",
|
|
10146
|
+
label: "Global Radiation 1 Hour Sum",
|
|
10147
|
+
description: "Past hour sum of global radiation in the last hour, in joules per square centimeter",
|
|
10148
|
+
"data-type": "float",
|
|
10149
|
+
unit: {
|
|
10150
|
+
label: "joule per square centimeter",
|
|
10151
|
+
symbol: {
|
|
10152
|
+
value: "J/cm²",
|
|
10153
|
+
type: "https://qudt.org/vocab/unit/J-PER-CentiM2"
|
|
10154
|
+
}
|
|
10155
|
+
},
|
|
10156
|
+
observedProperty: {
|
|
10157
|
+
id: "https://vocab.nerc.ac.uk/standard_name/integral_wrt_time_of_surface_downwelling_shortwave_flux_in_air/",
|
|
10158
|
+
label: "Integral wrt time of surface downwelling shortwave flux in air"
|
|
10159
|
+
},
|
|
10160
|
+
measurementType: {
|
|
10161
|
+
method: "sum",
|
|
10162
|
+
duration: "-PT1H"
|
|
10163
|
+
},
|
|
10164
|
+
"eumetnet:standard_name": "integral_wrt_time_of_surface_downwelling_shortwave_flux_in_air"
|
|
10165
|
+
},
|
|
10166
|
+
Q24H: {
|
|
10167
|
+
type: "Parameter",
|
|
10168
|
+
label: "Global Radiation 24 Hour Sum",
|
|
10169
|
+
description: "Past 24 hour sum of global radiation, in joules per square centimeter",
|
|
10170
|
+
"data-type": "float",
|
|
10171
|
+
unit: {
|
|
10172
|
+
label: "joule per square centimeter",
|
|
10173
|
+
symbol: {
|
|
10174
|
+
value: "J/cm²",
|
|
10175
|
+
type: "https://qudt.org/vocab/unit/J-PER-CentiM2"
|
|
10176
|
+
}
|
|
10177
|
+
},
|
|
10178
|
+
observedProperty: {
|
|
10179
|
+
id: "https://vocab.nerc.ac.uk/standard_name/integral_wrt_time_of_surface_downwelling_shortwave_flux_in_air/",
|
|
10180
|
+
label: "Integral wrt time of surface downwelling shortwave flux in air"
|
|
10181
|
+
},
|
|
10182
|
+
measurementType: {
|
|
10183
|
+
method: "sum",
|
|
10184
|
+
duration: "-PT24H"
|
|
10185
|
+
},
|
|
10186
|
+
"eumetnet:standard_name": "integral_wrt_time_of_surface_downwelling_shortwave_flux_in_air"
|
|
10187
|
+
},
|
|
10188
|
+
qg: {
|
|
10189
|
+
type: "Parameter",
|
|
10190
|
+
label: "Global Solar Radiation Mean",
|
|
10191
|
+
description: "Past 10 minute mean global solar radiation in watt per square meter",
|
|
10192
|
+
"data-type": "float",
|
|
10193
|
+
unit: {
|
|
10194
|
+
label: "watt per square meter",
|
|
10195
|
+
symbol: {
|
|
10196
|
+
value: "W/m²",
|
|
10197
|
+
type: "https://qudt.org/vocab/unit/W-PER-M2"
|
|
10198
|
+
}
|
|
10199
|
+
},
|
|
10200
|
+
observedProperty: {
|
|
10201
|
+
id: "https://vocab.nerc.ac.uk/standard_name/surface_downwelling_shortwave_flux_in_air/",
|
|
10202
|
+
label: "Surface downwelling shortwave flux in air"
|
|
10203
|
+
},
|
|
10204
|
+
measurementType: {
|
|
10205
|
+
method: "mean",
|
|
10206
|
+
duration: "-PT10M"
|
|
10207
|
+
},
|
|
10208
|
+
"eumetnet:standard_name": "surface_downwelling_shortwave_flux_in_air"
|
|
10209
|
+
},
|
|
10210
|
+
qgn: {
|
|
10211
|
+
type: "Parameter",
|
|
10212
|
+
label: "Global Solar Radiation Minimum",
|
|
10213
|
+
description: "Past 10 minute minimum global solar radiation, in watt per square meter",
|
|
10214
|
+
"data-type": "float",
|
|
10215
|
+
unit: {
|
|
10216
|
+
label: "watt per square meter",
|
|
10217
|
+
symbol: {
|
|
10218
|
+
value: "W/m²",
|
|
10219
|
+
type: "https://qudt.org/vocab/unit/W-PER-M2"
|
|
10220
|
+
}
|
|
10221
|
+
},
|
|
10222
|
+
observedProperty: {
|
|
10223
|
+
id: "https://vocab.nerc.ac.uk/standard_name/surface_downwelling_shortwave_flux_in_air/",
|
|
10224
|
+
label: "Surface downwelling shortwave flux in air"
|
|
10225
|
+
},
|
|
10226
|
+
measurementType: {
|
|
10227
|
+
method: "minimum",
|
|
10228
|
+
duration: "-PT10M"
|
|
10229
|
+
},
|
|
10230
|
+
"eumetnet:standard_name": "surface_downwelling_shortwave_flux_in_air"
|
|
10231
|
+
},
|
|
10232
|
+
qgx: {
|
|
10233
|
+
type: "Parameter",
|
|
10234
|
+
label: "Global Solar Radiation Maximum",
|
|
10235
|
+
description: "Past 10 minute maximum global solar radiation, in watt per square meter",
|
|
10236
|
+
"data-type": "float",
|
|
10237
|
+
unit: {
|
|
10238
|
+
label: "watt per square meter",
|
|
10239
|
+
symbol: {
|
|
10240
|
+
value: "W/m²",
|
|
10241
|
+
type: "https://qudt.org/vocab/unit/W-PER-M2"
|
|
10242
|
+
}
|
|
10243
|
+
},
|
|
10244
|
+
observedProperty: {
|
|
10245
|
+
id: "https://vocab.nerc.ac.uk/standard_name/surface_downwelling_shortwave_flux_in_air/",
|
|
10246
|
+
label: "Surface downwelling shortwave flux in air"
|
|
10247
|
+
},
|
|
10248
|
+
measurementType: {
|
|
10249
|
+
method: "maximum",
|
|
10250
|
+
duration: "-PT10M"
|
|
10251
|
+
},
|
|
10252
|
+
"eumetnet:standard_name": "surface_downwelling_shortwave_flux_in_air"
|
|
10253
|
+
},
|
|
10254
|
+
qnh: {
|
|
10255
|
+
type: "Parameter",
|
|
10256
|
+
label: "QNH 1 Min Mean",
|
|
10257
|
+
description: "Past minute mean QNH, in hectopascal",
|
|
10258
|
+
"data-type": "float",
|
|
10259
|
+
unit: {
|
|
10260
|
+
label: "hectopascal",
|
|
10261
|
+
symbol: {
|
|
10262
|
+
value: "hPa",
|
|
10263
|
+
type: "https://qudt.org/vocab/unit/HectoPA"
|
|
10264
|
+
}
|
|
10265
|
+
},
|
|
10266
|
+
observedProperty: {
|
|
10267
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_pressure_at_mean_sea_level/",
|
|
10268
|
+
label: "Air pressure at mean sea level"
|
|
10269
|
+
},
|
|
10270
|
+
measurementType: {
|
|
10271
|
+
method: "mean",
|
|
10272
|
+
duration: "-PT1M"
|
|
10273
|
+
},
|
|
10274
|
+
"eumetnet:standard_name": "air_pressure_at_mean_sea_level"
|
|
10275
|
+
},
|
|
10276
|
+
R12H: {
|
|
10277
|
+
type: "Parameter",
|
|
10278
|
+
label: "Rainfall in last 12 Hours",
|
|
10279
|
+
description: "Past 12 hour rainfall, in millimeters",
|
|
10280
|
+
"data-type": "float",
|
|
10281
|
+
unit: {
|
|
10282
|
+
label: "millimeter",
|
|
10283
|
+
symbol: {
|
|
10284
|
+
value: "mm",
|
|
10285
|
+
type: "https://qudt.org/vocab/unit/MilliM"
|
|
10286
|
+
}
|
|
10287
|
+
},
|
|
10288
|
+
observedProperty: {
|
|
10289
|
+
id: "https://vocab.nerc.ac.uk/standard_name/rainfall_amount/",
|
|
10290
|
+
label: "Rainfall amount"
|
|
10291
|
+
},
|
|
10292
|
+
measurementType: {
|
|
10293
|
+
method: "sum",
|
|
10294
|
+
duration: "-PT12H"
|
|
10295
|
+
},
|
|
10296
|
+
"eumetnet:standard_name": "rainfall_amount"
|
|
10297
|
+
},
|
|
10298
|
+
R1H: {
|
|
10299
|
+
type: "Parameter",
|
|
10300
|
+
label: "Rainfall in last Hour",
|
|
10301
|
+
description: "Past hour rainfall, in millimeters",
|
|
10302
|
+
"data-type": "float",
|
|
10303
|
+
unit: {
|
|
10304
|
+
label: "millimeter",
|
|
10305
|
+
symbol: {
|
|
10306
|
+
value: "mm",
|
|
10307
|
+
type: "https://qudt.org/vocab/unit/MilliM"
|
|
10308
|
+
}
|
|
10309
|
+
},
|
|
10310
|
+
observedProperty: {
|
|
10311
|
+
id: "https://vocab.nerc.ac.uk/standard_name/rainfall_amount/",
|
|
10312
|
+
label: "Rainfall amount"
|
|
10313
|
+
},
|
|
10314
|
+
measurementType: {
|
|
10315
|
+
method: "sum",
|
|
10316
|
+
duration: "-PT1H"
|
|
10317
|
+
},
|
|
10318
|
+
"eumetnet:standard_name": "rainfall_amount"
|
|
10319
|
+
},
|
|
10320
|
+
R24H: {
|
|
10321
|
+
type: "Parameter",
|
|
10322
|
+
label: "Rainfall in last 24 Hours",
|
|
10323
|
+
description: "Past 24 hour rainfall, in millimeters",
|
|
10324
|
+
"data-type": "float",
|
|
10325
|
+
unit: {
|
|
10326
|
+
label: "millimeter",
|
|
10327
|
+
symbol: {
|
|
10328
|
+
value: "mm",
|
|
10329
|
+
type: "https://qudt.org/vocab/unit/MilliM"
|
|
10330
|
+
}
|
|
10331
|
+
},
|
|
10332
|
+
observedProperty: {
|
|
10333
|
+
id: "https://vocab.nerc.ac.uk/standard_name/rainfall_amount/",
|
|
10334
|
+
label: "Rainfall amount"
|
|
10335
|
+
},
|
|
10336
|
+
measurementType: {
|
|
10337
|
+
method: "sum",
|
|
10338
|
+
duration: "-PT24H"
|
|
10339
|
+
},
|
|
10340
|
+
"eumetnet:standard_name": "rainfall_amount"
|
|
10341
|
+
},
|
|
10342
|
+
R6H: {
|
|
10343
|
+
type: "Parameter",
|
|
10344
|
+
label: "Rainfall in last 6 Hours",
|
|
10345
|
+
description: "Past 6 hour rainfall, in millimeters",
|
|
10346
|
+
"data-type": "float",
|
|
10347
|
+
unit: {
|
|
10348
|
+
label: "millimeter",
|
|
10349
|
+
symbol: {
|
|
10350
|
+
value: "mm",
|
|
10351
|
+
type: "https://qudt.org/vocab/unit/MilliM"
|
|
10352
|
+
}
|
|
10353
|
+
},
|
|
10354
|
+
observedProperty: {
|
|
10355
|
+
id: "https://vocab.nerc.ac.uk/standard_name/rainfall_amount/",
|
|
10356
|
+
label: "Rainfall amount"
|
|
10357
|
+
},
|
|
10358
|
+
measurementType: {
|
|
10359
|
+
method: "sum",
|
|
10360
|
+
duration: "-PT6H"
|
|
10361
|
+
},
|
|
10362
|
+
"eumetnet:standard_name": "rainfall_amount"
|
|
10363
|
+
},
|
|
10364
|
+
rg: {
|
|
10365
|
+
type: "Parameter",
|
|
10366
|
+
label: "Precipitation Intensity (Rain Gauge) Mean",
|
|
10367
|
+
description: "Past 10 minute mean precipitation intensity in millimeters per hour, measured by rain gauge",
|
|
10368
|
+
"data-type": "float",
|
|
10369
|
+
unit: {
|
|
10370
|
+
label: "millimeter per hour",
|
|
10371
|
+
symbol: {
|
|
10372
|
+
value: "mm/h",
|
|
10373
|
+
type: "https://qudt.org/vocab/unit/MilliM-PER-HR"
|
|
10374
|
+
}
|
|
10375
|
+
},
|
|
10376
|
+
observedProperty: {
|
|
10377
|
+
id: "https://vocab.nerc.ac.uk/standard_name/lwe_precipitation_rate/",
|
|
10378
|
+
label: "Lwe precipitation rate"
|
|
10379
|
+
},
|
|
10380
|
+
measurementType: {
|
|
10381
|
+
method: "mean",
|
|
10382
|
+
duration: "-PT10M"
|
|
10383
|
+
},
|
|
10384
|
+
"eumetnet:standard_name": "lwe_precipitation_rate"
|
|
10385
|
+
},
|
|
10386
|
+
rh: {
|
|
10387
|
+
type: "Parameter",
|
|
10388
|
+
label: "Relative Humidity 1.50 m 1 Min Mean",
|
|
10389
|
+
description: "Past minute mean relative humidity at 1.50 meters, in percentage",
|
|
10390
|
+
"data-type": "float",
|
|
10391
|
+
unit: {
|
|
10392
|
+
label: "percent",
|
|
10393
|
+
symbol: {
|
|
10394
|
+
value: "%",
|
|
10395
|
+
type: "https://qudt.org/vocab/unit/PERCENT"
|
|
10396
|
+
}
|
|
10397
|
+
},
|
|
10398
|
+
observedProperty: {
|
|
10399
|
+
id: "https://vocab.nerc.ac.uk/standard_name/relative_humidity/",
|
|
10400
|
+
label: "Relative humidity"
|
|
10401
|
+
},
|
|
10402
|
+
measurementType: {
|
|
10403
|
+
method: "mean",
|
|
10404
|
+
duration: "-PT1M"
|
|
10405
|
+
},
|
|
10406
|
+
"eumetnet:standard_name": "relative_humidity",
|
|
10407
|
+
"eumetnet:level": 1.5
|
|
10408
|
+
},
|
|
10409
|
+
rh10: {
|
|
10410
|
+
type: "Parameter",
|
|
10411
|
+
label: "Relative Humidity Mean",
|
|
10412
|
+
description: "10 minute mean relative humidity, in percentage",
|
|
10413
|
+
"data-type": "float",
|
|
10414
|
+
unit: {
|
|
10415
|
+
label: "percent",
|
|
10416
|
+
symbol: {
|
|
10417
|
+
value: "%",
|
|
10418
|
+
type: "https://qudt.org/vocab/unit/PERCENT"
|
|
10419
|
+
}
|
|
10420
|
+
},
|
|
10421
|
+
observedProperty: {
|
|
10422
|
+
id: "https://vocab.nerc.ac.uk/standard_name/relative_humidity/",
|
|
10423
|
+
label: "Relative humidity"
|
|
10424
|
+
},
|
|
10425
|
+
measurementType: {
|
|
10426
|
+
method: "mean",
|
|
10427
|
+
duration: "N/A"
|
|
10428
|
+
},
|
|
10429
|
+
"eumetnet:standard_name": "relative_humidity"
|
|
10430
|
+
},
|
|
10431
|
+
Sav1H: {
|
|
10432
|
+
type: "Parameter",
|
|
10433
|
+
label: "Wind Speed Mean last 1 Hour",
|
|
10434
|
+
description: "Past hour mean wind speed, in meters per second",
|
|
10435
|
+
"data-type": "float",
|
|
10436
|
+
unit: {
|
|
10437
|
+
label: "meter per second",
|
|
10438
|
+
symbol: {
|
|
10439
|
+
value: "m/s",
|
|
10440
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
10441
|
+
}
|
|
10442
|
+
},
|
|
10443
|
+
observedProperty: {
|
|
10444
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed/",
|
|
10445
|
+
label: "Wind speed"
|
|
10446
|
+
},
|
|
10447
|
+
measurementType: {
|
|
10448
|
+
method: "mean",
|
|
10449
|
+
duration: "-PT1H"
|
|
10450
|
+
},
|
|
10451
|
+
"eumetnet:standard_name": "wind_speed"
|
|
10452
|
+
},
|
|
10453
|
+
Sax1H: {
|
|
10454
|
+
type: "Parameter",
|
|
10455
|
+
label: "Wind Speed Maximum last 1 Hour",
|
|
10456
|
+
description: "Past hour maximum wind speed, in meters per second",
|
|
10457
|
+
"data-type": "float",
|
|
10458
|
+
unit: {
|
|
10459
|
+
label: "meter per second",
|
|
10460
|
+
symbol: {
|
|
10461
|
+
value: "m/s",
|
|
10462
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
10463
|
+
}
|
|
10464
|
+
},
|
|
10465
|
+
observedProperty: {
|
|
10466
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed/",
|
|
10467
|
+
label: "Wind speed"
|
|
10468
|
+
},
|
|
10469
|
+
measurementType: {
|
|
10470
|
+
method: "maximum",
|
|
10471
|
+
duration: "-PT1H"
|
|
10472
|
+
},
|
|
10473
|
+
"eumetnet:standard_name": "wind_speed"
|
|
10474
|
+
},
|
|
10475
|
+
Sax3H: {
|
|
10476
|
+
type: "Parameter",
|
|
10477
|
+
label: "Wind Speed Maximum last 3 Hours",
|
|
10478
|
+
description: "Past 3 hour maximum wind speed, in meters per second",
|
|
10479
|
+
"data-type": "float",
|
|
10480
|
+
unit: {
|
|
10481
|
+
label: "meter per second",
|
|
10482
|
+
symbol: {
|
|
10483
|
+
value: "m/s",
|
|
10484
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
10485
|
+
}
|
|
10486
|
+
},
|
|
10487
|
+
observedProperty: {
|
|
10488
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed/",
|
|
10489
|
+
label: "Wind speed"
|
|
10490
|
+
},
|
|
10491
|
+
measurementType: {
|
|
10492
|
+
method: "maximum",
|
|
10493
|
+
duration: "-PT3H"
|
|
10494
|
+
},
|
|
10495
|
+
"eumetnet:standard_name": "wind_speed"
|
|
10496
|
+
},
|
|
10497
|
+
Sax6H: {
|
|
10498
|
+
type: "Parameter",
|
|
10499
|
+
label: "Wind Speed Maximum last 6 Hours",
|
|
10500
|
+
description: "Past 6 hour maximum wind speed, in meters per second",
|
|
10501
|
+
"data-type": "float",
|
|
10502
|
+
unit: {
|
|
10503
|
+
label: "meter per second",
|
|
10504
|
+
symbol: {
|
|
10505
|
+
value: "m/s",
|
|
10506
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
10507
|
+
}
|
|
10508
|
+
},
|
|
10509
|
+
observedProperty: {
|
|
10510
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed/",
|
|
10511
|
+
label: "Wind speed"
|
|
10512
|
+
},
|
|
10513
|
+
measurementType: {
|
|
10514
|
+
method: "maximum",
|
|
10515
|
+
duration: "-PT6H"
|
|
10516
|
+
},
|
|
10517
|
+
"eumetnet:standard_name": "wind_speed"
|
|
10518
|
+
},
|
|
10519
|
+
sq: {
|
|
10520
|
+
type: "Parameter",
|
|
10521
|
+
label: "Squall Indicator",
|
|
10522
|
+
description: "Past 10 minute squall indicator, 0: no squall, 1: squall, or empty",
|
|
10523
|
+
"data-type": "integer",
|
|
10524
|
+
unit: {
|
|
10525
|
+
label: "unitless",
|
|
10526
|
+
symbol: {
|
|
10527
|
+
value: "一",
|
|
10528
|
+
type: "https://qudt.org/vocab/unit/UNITLESS"
|
|
10529
|
+
}
|
|
10530
|
+
},
|
|
10531
|
+
observedProperty: {
|
|
10532
|
+
label: "squall indicator",
|
|
10533
|
+
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"
|
|
10534
|
+
},
|
|
10535
|
+
measurementType: {
|
|
10536
|
+
method: "N/A",
|
|
10537
|
+
duration: "-PT10M"
|
|
10538
|
+
}
|
|
10539
|
+
},
|
|
10540
|
+
ss: {
|
|
10541
|
+
type: "Parameter",
|
|
10542
|
+
label: "Sunshine Duration",
|
|
10543
|
+
description: "Past 10 minute duration of sunshine in minutes",
|
|
10544
|
+
"data-type": "float",
|
|
10545
|
+
unit: {
|
|
10546
|
+
label: "minute",
|
|
10547
|
+
symbol: {
|
|
10548
|
+
value: "min",
|
|
10549
|
+
type: "https://qudt.org/vocab/unit/MIN"
|
|
10550
|
+
}
|
|
10551
|
+
},
|
|
10552
|
+
observedProperty: {
|
|
10553
|
+
id: "https://vocab.nerc.ac.uk/standard_name/duration_of_sunshine/",
|
|
10554
|
+
label: "Duration of sunshine"
|
|
10555
|
+
},
|
|
10556
|
+
measurementType: {
|
|
10557
|
+
method: "sum",
|
|
10558
|
+
duration: "-PT10M"
|
|
10559
|
+
}
|
|
10560
|
+
},
|
|
10561
|
+
Sx1H: {
|
|
10562
|
+
type: "Parameter",
|
|
10563
|
+
label: "Wind Gust Maximum last 1 Hour",
|
|
10564
|
+
description: "Past hour maximum wind gust, in meters per second",
|
|
10565
|
+
"data-type": "float",
|
|
10566
|
+
unit: {
|
|
10567
|
+
label: "meter per second",
|
|
10568
|
+
symbol: {
|
|
10569
|
+
value: "m/s",
|
|
10570
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
10571
|
+
}
|
|
10572
|
+
},
|
|
10573
|
+
observedProperty: {
|
|
10574
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed_of_gust/",
|
|
10575
|
+
label: "Wind speed of gust"
|
|
10576
|
+
},
|
|
10577
|
+
measurementType: {
|
|
10578
|
+
method: "maximum",
|
|
10579
|
+
duration: "-PT1H"
|
|
10580
|
+
},
|
|
10581
|
+
"eumetnet:standard_name": "wind_speed_of_gust"
|
|
10582
|
+
},
|
|
10583
|
+
Sx3H: {
|
|
10584
|
+
type: "Parameter",
|
|
10585
|
+
label: "Wind Gust Maximum last 3 Hours",
|
|
10586
|
+
description: "Past 3 hour maximum wind gust, in meters per second",
|
|
10587
|
+
"data-type": "float",
|
|
10588
|
+
unit: {
|
|
10589
|
+
label: "meter per second",
|
|
10590
|
+
symbol: {
|
|
10591
|
+
value: "m/s",
|
|
10592
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
10593
|
+
}
|
|
10594
|
+
},
|
|
10595
|
+
observedProperty: {
|
|
10596
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed_of_gust/",
|
|
10597
|
+
label: "Wind speed of gust"
|
|
10598
|
+
},
|
|
10599
|
+
measurementType: {
|
|
10600
|
+
method: "maximum",
|
|
10601
|
+
duration: "-PT3H"
|
|
10602
|
+
},
|
|
10603
|
+
"eumetnet:standard_name": "wind_speed_of_gust"
|
|
10604
|
+
},
|
|
10605
|
+
Sx6H: {
|
|
10606
|
+
type: "Parameter",
|
|
10607
|
+
label: "Wind Gust Maximum last 6 Hours",
|
|
10608
|
+
description: "Past 6 hour maximum wind gust, in meters per second",
|
|
10609
|
+
"data-type": "float",
|
|
10610
|
+
unit: {
|
|
10611
|
+
label: "meter per second",
|
|
10612
|
+
symbol: {
|
|
10613
|
+
value: "m/s",
|
|
10614
|
+
type: "https://qudt.org/vocab/unit/M-PER-SEC"
|
|
10615
|
+
}
|
|
10616
|
+
},
|
|
10617
|
+
observedProperty: {
|
|
10618
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wind_speed_of_gust/",
|
|
10619
|
+
label: "Wind speed of gust"
|
|
10620
|
+
},
|
|
10621
|
+
measurementType: {
|
|
10622
|
+
method: "maximum",
|
|
10623
|
+
duration: "-PT6H"
|
|
10624
|
+
},
|
|
10625
|
+
"eumetnet:standard_name": "wind_speed_of_gust"
|
|
10626
|
+
},
|
|
10627
|
+
t10: {
|
|
10628
|
+
type: "Parameter",
|
|
10629
|
+
label: "Air Temperature Mean",
|
|
10630
|
+
description: "10 minute mean air temperature, in degrees Celsius",
|
|
10631
|
+
"data-type": "float",
|
|
10632
|
+
unit: {
|
|
10633
|
+
label: "degrees celsius",
|
|
10634
|
+
symbol: {
|
|
10635
|
+
value: "°C",
|
|
10636
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10637
|
+
}
|
|
10638
|
+
},
|
|
10639
|
+
observedProperty: {
|
|
10640
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
10641
|
+
label: "Air temperature"
|
|
10642
|
+
},
|
|
10643
|
+
measurementType: {
|
|
10644
|
+
method: "mean",
|
|
10645
|
+
duration: "N/A"
|
|
10646
|
+
},
|
|
10647
|
+
"eumetnet:standard_name": "air_temperature"
|
|
10648
|
+
},
|
|
10649
|
+
ta: {
|
|
10650
|
+
type: "Parameter",
|
|
10651
|
+
label: "Air Temperature 1.50 m 1 Min Mean",
|
|
10652
|
+
description: "Past minute mean air temperature at 1.50 meters, in degrees Celsius",
|
|
10653
|
+
"data-type": "float",
|
|
10654
|
+
unit: {
|
|
10655
|
+
label: "degrees celsius",
|
|
10656
|
+
symbol: {
|
|
10657
|
+
value: "°C",
|
|
10658
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10659
|
+
}
|
|
10660
|
+
},
|
|
10661
|
+
observedProperty: {
|
|
10662
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
10663
|
+
label: "Air temperature"
|
|
10664
|
+
},
|
|
10665
|
+
measurementType: {
|
|
10666
|
+
method: "mean",
|
|
10667
|
+
duration: "-PT1M"
|
|
10668
|
+
},
|
|
10669
|
+
"eumetnet:standard_name": "air_temperature",
|
|
10670
|
+
"eumetnet:level": 1.5
|
|
10671
|
+
},
|
|
10672
|
+
tb: {
|
|
10673
|
+
type: "Parameter",
|
|
10674
|
+
label: "Wet Bulb Temperature 1.50 m Mean",
|
|
10675
|
+
description: "Past 10 minute mean wet bulb temperature at 1.50 meters, in degrees Celsius",
|
|
10676
|
+
"data-type": "float",
|
|
10677
|
+
unit: {
|
|
10678
|
+
label: "degrees celsius",
|
|
10679
|
+
symbol: {
|
|
10680
|
+
value: "°C",
|
|
10681
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10682
|
+
}
|
|
10683
|
+
},
|
|
10684
|
+
observedProperty: {
|
|
10685
|
+
id: "https://vocab.nerc.ac.uk/standard_name/wet_bulb_temperature/",
|
|
10686
|
+
label: "Wet bulb temperature"
|
|
10687
|
+
},
|
|
10688
|
+
measurementType: {
|
|
10689
|
+
method: "mean",
|
|
10690
|
+
duration: "-PT10M"
|
|
10691
|
+
},
|
|
10692
|
+
"eumetnet:standard_name": "soil_temperature"
|
|
10693
|
+
},
|
|
10694
|
+
tb1: {
|
|
10695
|
+
type: "Parameter",
|
|
10696
|
+
label: "Soil Temperature -5 cm Mean",
|
|
10697
|
+
description: "Past 10 minute mean soil temperature at -5 centimeters, in degrees Celsius",
|
|
10698
|
+
"data-type": "float",
|
|
10699
|
+
unit: {
|
|
10700
|
+
label: "degrees celsius",
|
|
10701
|
+
symbol: {
|
|
10702
|
+
value: "°C",
|
|
10703
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10704
|
+
}
|
|
10705
|
+
},
|
|
10706
|
+
observedProperty: {
|
|
10707
|
+
id: "https://vocab.nerc.ac.uk/standard_name/soil_temperature/",
|
|
10708
|
+
label: "Soil temperature"
|
|
10709
|
+
},
|
|
10710
|
+
measurementType: {
|
|
10711
|
+
method: "mean",
|
|
10712
|
+
duration: "-PT10M"
|
|
10713
|
+
},
|
|
10714
|
+
"eumetnet:standard_name": "soil_temperature",
|
|
10715
|
+
"eumetnet:level": -0.05
|
|
10716
|
+
},
|
|
10717
|
+
Tb1n6: {
|
|
10718
|
+
type: "Parameter",
|
|
10719
|
+
label: "Soil Temperature -5 cm Minimum last 6 Hours",
|
|
10720
|
+
description: "Past 6 hour minimum soil temperature at -5 centimeters, in degrees Celsius",
|
|
10721
|
+
"data-type": "float",
|
|
10722
|
+
unit: {
|
|
10723
|
+
label: "degrees celsius",
|
|
10724
|
+
symbol: {
|
|
10725
|
+
value: "°C",
|
|
10726
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10727
|
+
}
|
|
10728
|
+
},
|
|
10729
|
+
observedProperty: {
|
|
10730
|
+
id: "https://vocab.nerc.ac.uk/standard_name/soil_temperature/",
|
|
10731
|
+
label: "Soil temperature"
|
|
10732
|
+
},
|
|
10733
|
+
measurementType: {
|
|
10734
|
+
method: "minimum",
|
|
10735
|
+
duration: "-PT6H"
|
|
10736
|
+
},
|
|
10737
|
+
"eumetnet:standard_name": "soil_temperature",
|
|
10738
|
+
"eumetnet:level": -0.05
|
|
10739
|
+
},
|
|
10740
|
+
Tb1x6: {
|
|
10741
|
+
type: "Parameter",
|
|
10742
|
+
label: "Soil Temperature -5 cm Maximum last 6 Hours",
|
|
10743
|
+
description: "Past 6 hour maximum soil temperature at -5 centimeters, in degrees Celsius",
|
|
10744
|
+
"data-type": "float",
|
|
10745
|
+
unit: {
|
|
10746
|
+
label: "degrees celsius",
|
|
10747
|
+
symbol: {
|
|
10748
|
+
value: "°C",
|
|
10749
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10750
|
+
}
|
|
10751
|
+
},
|
|
10752
|
+
observedProperty: {
|
|
10753
|
+
id: "https://vocab.nerc.ac.uk/standard_name/soil_temperature/",
|
|
10754
|
+
label: "Soil temperature"
|
|
10755
|
+
},
|
|
10756
|
+
measurementType: {
|
|
10757
|
+
method: "maximum",
|
|
10758
|
+
duration: "-PT6H"
|
|
10759
|
+
},
|
|
10760
|
+
"eumetnet:standard_name": "soil_temperature",
|
|
10761
|
+
"eumetnet:level": -0.05
|
|
10762
|
+
},
|
|
10763
|
+
tb2: {
|
|
10764
|
+
type: "Parameter",
|
|
10765
|
+
label: "Soil Temperature -10 cm Mean",
|
|
10766
|
+
description: "Past 10 minute mean soil temperature at -10 centimeters, in degrees Celsius",
|
|
10767
|
+
"data-type": "float",
|
|
10768
|
+
unit: {
|
|
10769
|
+
label: "degrees celsius",
|
|
10770
|
+
symbol: {
|
|
10771
|
+
value: "°C",
|
|
10772
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10773
|
+
}
|
|
10774
|
+
},
|
|
10775
|
+
observedProperty: {
|
|
10776
|
+
id: "https://vocab.nerc.ac.uk/standard_name/soil_temperature/",
|
|
10777
|
+
label: "Soil temperature"
|
|
10778
|
+
},
|
|
10779
|
+
measurementType: {
|
|
10780
|
+
method: "mean",
|
|
10781
|
+
duration: "-PT10M"
|
|
10782
|
+
},
|
|
10783
|
+
"eumetnet:standard_name": "soil_temperature",
|
|
10784
|
+
"eumetnet:level": -0.1
|
|
10785
|
+
},
|
|
10786
|
+
Tb2n6: {
|
|
10787
|
+
type: "Parameter",
|
|
10788
|
+
label: "Soil Temperature -10 cm Minimum past 6 Hours",
|
|
10789
|
+
description: "Past 6 hour maximum soil temperature at -10 centimeters, in degrees Celsius",
|
|
10790
|
+
"data-type": "float",
|
|
10791
|
+
unit: {
|
|
10792
|
+
label: "degrees celsius",
|
|
10793
|
+
symbol: {
|
|
10794
|
+
value: "°C",
|
|
10795
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10796
|
+
}
|
|
10797
|
+
},
|
|
10798
|
+
observedProperty: {
|
|
10799
|
+
id: "https://vocab.nerc.ac.uk/standard_name/soil_temperature/",
|
|
10800
|
+
label: "Soil temperature"
|
|
10801
|
+
},
|
|
10802
|
+
measurementType: {
|
|
10803
|
+
method: "minimum",
|
|
10804
|
+
duration: "-PT6H"
|
|
10805
|
+
},
|
|
10806
|
+
"eumetnet:standard_name": "soil_temperature",
|
|
10807
|
+
"eumetnet:level": -0.1
|
|
10808
|
+
},
|
|
10809
|
+
Tb2x6: {
|
|
10810
|
+
type: "Parameter",
|
|
10811
|
+
label: "Soil Temperature -10 cm Maximum past 6 Hours",
|
|
10812
|
+
description: "Past 6 hour maximum soil temperature at -10 centimeters, in degrees Celsius",
|
|
10813
|
+
"data-type": "float",
|
|
10814
|
+
unit: {
|
|
10815
|
+
label: "degrees celsius",
|
|
10816
|
+
symbol: {
|
|
10817
|
+
value: "°C",
|
|
10818
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10819
|
+
}
|
|
10820
|
+
},
|
|
10821
|
+
observedProperty: {
|
|
10822
|
+
id: "https://vocab.nerc.ac.uk/standard_name/soil_temperature/",
|
|
10823
|
+
label: "Soil temperature"
|
|
10824
|
+
},
|
|
10825
|
+
measurementType: {
|
|
10826
|
+
method: "maximum",
|
|
10827
|
+
duration: "-PT6H"
|
|
10828
|
+
},
|
|
10829
|
+
"eumetnet:standard_name": "soil_temperature",
|
|
10830
|
+
"eumetnet:level": -0.1
|
|
10831
|
+
},
|
|
10832
|
+
tb3: {
|
|
10833
|
+
type: "Parameter",
|
|
10834
|
+
label: "Soil Temperature -20 cm Mean",
|
|
10835
|
+
description: "Past 10 minute mean soil temperature at -20 centimeters, in degrees Celsius",
|
|
10836
|
+
"data-type": "float",
|
|
10837
|
+
unit: {
|
|
10838
|
+
label: "degrees celsius",
|
|
10839
|
+
symbol: {
|
|
10840
|
+
value: "°C",
|
|
10841
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10842
|
+
}
|
|
10843
|
+
},
|
|
10844
|
+
observedProperty: {
|
|
10845
|
+
id: "https://vocab.nerc.ac.uk/standard_name/soil_temperature/",
|
|
10846
|
+
label: "Soil temperature"
|
|
10847
|
+
},
|
|
10848
|
+
measurementType: {
|
|
10849
|
+
method: "mean",
|
|
10850
|
+
duration: "-PT10M"
|
|
10851
|
+
},
|
|
10852
|
+
"eumetnet:standard_name": "soil_temperature",
|
|
10853
|
+
"eumetnet:level": -0.2
|
|
10854
|
+
},
|
|
10855
|
+
tb4: {
|
|
10856
|
+
type: "Parameter",
|
|
10857
|
+
label: "Soil Temperature -50 cm Mean",
|
|
10858
|
+
description: "Past 10 minute mean soil temperature at -50 centimeters, in degrees Celsius",
|
|
10859
|
+
"data-type": "float",
|
|
10860
|
+
unit: {
|
|
10861
|
+
label: "degrees celsius",
|
|
10862
|
+
symbol: {
|
|
10863
|
+
value: "°C",
|
|
10864
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10865
|
+
}
|
|
10866
|
+
},
|
|
10867
|
+
observedProperty: {
|
|
10868
|
+
id: "https://vocab.nerc.ac.uk/standard_name/soil_temperature/",
|
|
10869
|
+
label: "Soil temperature"
|
|
10870
|
+
},
|
|
10871
|
+
measurementType: {
|
|
10872
|
+
method: "mean",
|
|
10873
|
+
duration: "-PT10M"
|
|
10874
|
+
},
|
|
10875
|
+
"eumetnet:standard_name": "soil_temperature",
|
|
10876
|
+
"eumetnet:level": -0.5
|
|
10877
|
+
},
|
|
10878
|
+
tb5: {
|
|
10879
|
+
type: "Parameter",
|
|
10880
|
+
label: "Soil Temperature -100 cm Mean",
|
|
10881
|
+
description: "Past 10 minute mean soil temperature at -100 centimeters, in degrees Celsius",
|
|
10882
|
+
"data-type": "float",
|
|
10883
|
+
unit: {
|
|
10884
|
+
label: "degrees celsius",
|
|
10885
|
+
symbol: {
|
|
10886
|
+
value: "°C",
|
|
10887
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10888
|
+
}
|
|
10889
|
+
},
|
|
10890
|
+
observedProperty: {
|
|
10891
|
+
id: "https://vocab.nerc.ac.uk/standard_name/soil_temperature/",
|
|
10892
|
+
label: "Soil temperature"
|
|
10893
|
+
},
|
|
10894
|
+
measurementType: {
|
|
10895
|
+
method: "mean",
|
|
10896
|
+
duration: "-PT10M"
|
|
10897
|
+
},
|
|
10898
|
+
"eumetnet:standard_name": "soil_temperature",
|
|
10899
|
+
"eumetnet:level": -1
|
|
10900
|
+
},
|
|
10901
|
+
td: {
|
|
10902
|
+
type: "Parameter",
|
|
10903
|
+
label: "Dew Point Temperature 1.50 m 1 Min Mean",
|
|
10904
|
+
description: "Past minute mean dew point temperature at 1.50 meters, in degrees Celsius",
|
|
10905
|
+
"data-type": "float",
|
|
10906
|
+
unit: {
|
|
10907
|
+
label: "degrees celsius",
|
|
10908
|
+
symbol: {
|
|
10909
|
+
value: "°C",
|
|
10910
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10911
|
+
}
|
|
10912
|
+
},
|
|
10913
|
+
observedProperty: {
|
|
10914
|
+
id: "https://vocab.nerc.ac.uk/standard_name/dew_point_temperature/",
|
|
10915
|
+
label: "Dew point temperature"
|
|
10916
|
+
},
|
|
10917
|
+
measurementType: {
|
|
10918
|
+
method: "mean",
|
|
10919
|
+
duration: "-PT1M"
|
|
10920
|
+
},
|
|
10921
|
+
"eumetnet:standard_name": "dew_point_temperature"
|
|
10922
|
+
},
|
|
10923
|
+
td10: {
|
|
10924
|
+
type: "Parameter",
|
|
10925
|
+
label: "Dew Point Temperature Mean",
|
|
10926
|
+
description: "10 minute mean dew point temperature, in degrees Celsius",
|
|
10927
|
+
"data-type": "float",
|
|
10928
|
+
unit: {
|
|
10929
|
+
label: "degrees celsius",
|
|
10930
|
+
symbol: {
|
|
10931
|
+
value: "°C",
|
|
10932
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10933
|
+
}
|
|
10934
|
+
},
|
|
10935
|
+
observedProperty: {
|
|
10936
|
+
id: "https://vocab.nerc.ac.uk/standard_name/dew_point_temperature/",
|
|
10937
|
+
label: "Dew point temperature"
|
|
10938
|
+
},
|
|
10939
|
+
measurementType: {
|
|
10940
|
+
method: "mean",
|
|
10941
|
+
duration: "N/A"
|
|
10942
|
+
},
|
|
10943
|
+
"eumetnet:standard_name": "dew_point_temperature"
|
|
10944
|
+
},
|
|
10945
|
+
tg: {
|
|
10946
|
+
type: "Parameter",
|
|
10947
|
+
label: "Air Temperature 10 cm Mean",
|
|
10948
|
+
description: "Past 10 minute mean air temperature at 10 centimeters, in degrees Celsius",
|
|
10949
|
+
"data-type": "float",
|
|
10950
|
+
unit: {
|
|
10951
|
+
label: "degrees celsius",
|
|
10952
|
+
symbol: {
|
|
10953
|
+
value: "°C",
|
|
10954
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10955
|
+
}
|
|
10956
|
+
},
|
|
10957
|
+
observedProperty: {
|
|
10958
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
10959
|
+
label: "Air temperature"
|
|
10960
|
+
},
|
|
10961
|
+
measurementType: {
|
|
10962
|
+
method: "mean",
|
|
10963
|
+
duration: "-PT10M"
|
|
10964
|
+
},
|
|
10965
|
+
"eumetnet:standard_name": "air_temperature",
|
|
10966
|
+
"eumetnet:level": 0.1
|
|
10967
|
+
},
|
|
10968
|
+
tgn: {
|
|
10969
|
+
type: "Parameter",
|
|
10970
|
+
label: "Air Temperature 10 cm Minimum",
|
|
10971
|
+
description: "Past 10 minute minimum air temperature at 10 centimeters, in degrees Celsius",
|
|
10972
|
+
"data-type": "float",
|
|
10973
|
+
unit: {
|
|
10974
|
+
label: "degrees celsius",
|
|
10975
|
+
symbol: {
|
|
10976
|
+
value: "°C",
|
|
10977
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
10978
|
+
}
|
|
10979
|
+
},
|
|
10980
|
+
observedProperty: {
|
|
10981
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
10982
|
+
label: "Air temperature"
|
|
10983
|
+
},
|
|
10984
|
+
measurementType: {
|
|
10985
|
+
method: "minimum",
|
|
10986
|
+
duration: "-PT10M"
|
|
10987
|
+
},
|
|
10988
|
+
"eumetnet:standard_name": "air_temperature",
|
|
10989
|
+
"eumetnet:level": 0.1
|
|
10990
|
+
},
|
|
10991
|
+
Tgn12: {
|
|
10992
|
+
type: "Parameter",
|
|
10993
|
+
label: "Air Temperature 10 cm Minimum last 12 Hours",
|
|
10994
|
+
description: "Past 12 hour minimum air temperature at 10 centimeters, in degrees Celsius",
|
|
10995
|
+
"data-type": "float",
|
|
10996
|
+
unit: {
|
|
10997
|
+
label: "degrees celsius",
|
|
10998
|
+
symbol: {
|
|
10999
|
+
value: "°C",
|
|
11000
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11001
|
+
}
|
|
11002
|
+
},
|
|
11003
|
+
observedProperty: {
|
|
11004
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11005
|
+
label: "Air temperature"
|
|
11006
|
+
},
|
|
11007
|
+
measurementType: {
|
|
11008
|
+
method: "minimum",
|
|
11009
|
+
duration: "-PT12H"
|
|
11010
|
+
},
|
|
11011
|
+
"eumetnet:standard_name": "air_temperature",
|
|
11012
|
+
"eumetnet:level": 0.1
|
|
11013
|
+
},
|
|
11014
|
+
Tgn14: {
|
|
11015
|
+
type: "Parameter",
|
|
11016
|
+
label: "Air Temperature 10 cm Minimum last 14 Hours",
|
|
11017
|
+
description: "Past 14 hour minimum air temperature at 10 centimeters, in degrees Celsius",
|
|
11018
|
+
"data-type": "float",
|
|
11019
|
+
unit: {
|
|
11020
|
+
label: "degrees celsius",
|
|
11021
|
+
symbol: {
|
|
11022
|
+
value: "°C",
|
|
11023
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11024
|
+
}
|
|
11025
|
+
},
|
|
11026
|
+
observedProperty: {
|
|
11027
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11028
|
+
label: "Air temperature"
|
|
11029
|
+
},
|
|
11030
|
+
measurementType: {
|
|
11031
|
+
method: "minimum",
|
|
11032
|
+
duration: "-PT14H"
|
|
11033
|
+
},
|
|
11034
|
+
"eumetnet:standard_name": "air_temperature",
|
|
11035
|
+
"eumetnet:level": 0.1
|
|
11036
|
+
},
|
|
11037
|
+
Tgn6: {
|
|
11038
|
+
type: "Parameter",
|
|
11039
|
+
label: "Air Temperature 10 cm Minimum last 6 Hours",
|
|
11040
|
+
description: "Past 6 hour minimum air temperature at 10 centimeters, in degrees Celsius",
|
|
11041
|
+
"data-type": "float",
|
|
11042
|
+
unit: {
|
|
11043
|
+
label: "degrees celsius",
|
|
11044
|
+
symbol: {
|
|
11045
|
+
value: "°C",
|
|
11046
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11047
|
+
}
|
|
11048
|
+
},
|
|
11049
|
+
observedProperty: {
|
|
11050
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11051
|
+
label: "Air temperature"
|
|
11052
|
+
},
|
|
11053
|
+
measurementType: {
|
|
11054
|
+
method: "minimum",
|
|
11055
|
+
duration: "-PT6H"
|
|
11056
|
+
},
|
|
11057
|
+
"eumetnet:standard_name": "air_temperature",
|
|
11058
|
+
"eumetnet:level": 0.1
|
|
11059
|
+
},
|
|
11060
|
+
tn: {
|
|
11061
|
+
type: "Parameter",
|
|
11062
|
+
label: "Air Temperature 1.50 m Minimum",
|
|
11063
|
+
description: "Past 10 minute minimum air temperature at 1.50 meters, in degrees Celsius",
|
|
11064
|
+
"data-type": "float",
|
|
11065
|
+
unit: {
|
|
11066
|
+
label: "degrees celsius",
|
|
11067
|
+
symbol: {
|
|
11068
|
+
value: "°C",
|
|
11069
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11070
|
+
}
|
|
11071
|
+
},
|
|
11072
|
+
observedProperty: {
|
|
11073
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11074
|
+
label: "Air temperature"
|
|
11075
|
+
},
|
|
11076
|
+
measurementType: {
|
|
11077
|
+
method: "minimum",
|
|
11078
|
+
duration: "-PT10M"
|
|
11079
|
+
},
|
|
11080
|
+
"eumetnet:standard_name": "air_temperature",
|
|
11081
|
+
"eumetnet:level": 1.5
|
|
11082
|
+
},
|
|
11083
|
+
Tn12: {
|
|
11084
|
+
type: "Parameter",
|
|
11085
|
+
label: "Air Temperature Minimum last 12 Hours",
|
|
11086
|
+
description: "Past 12 hour minimum air temperature, in degrees Celsius",
|
|
11087
|
+
"data-type": "float",
|
|
11088
|
+
unit: {
|
|
11089
|
+
label: "degrees celsius",
|
|
11090
|
+
symbol: {
|
|
11091
|
+
value: "°C",
|
|
11092
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11093
|
+
}
|
|
11094
|
+
},
|
|
11095
|
+
observedProperty: {
|
|
11096
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11097
|
+
label: "Air temperature"
|
|
11098
|
+
},
|
|
11099
|
+
measurementType: {
|
|
11100
|
+
method: "minimum",
|
|
11101
|
+
duration: "-PT12H"
|
|
11102
|
+
},
|
|
11103
|
+
"eumetnet:standard_name": "air_temperature",
|
|
11104
|
+
"eumetnet:level": 1.5
|
|
11105
|
+
},
|
|
11106
|
+
Tn14: {
|
|
11107
|
+
type: "Parameter",
|
|
11108
|
+
label: "Air Temperature Minimum last 14 Hours",
|
|
11109
|
+
description: "Past 14 hour minimum air temperature, in degrees Celsius",
|
|
11110
|
+
"data-type": "float",
|
|
11111
|
+
unit: {
|
|
11112
|
+
label: "degrees celsius",
|
|
11113
|
+
symbol: {
|
|
11114
|
+
value: "°C",
|
|
11115
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11116
|
+
}
|
|
11117
|
+
},
|
|
11118
|
+
observedProperty: {
|
|
11119
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11120
|
+
label: "Air temperature"
|
|
11121
|
+
},
|
|
11122
|
+
measurementType: {
|
|
11123
|
+
method: "minimum",
|
|
11124
|
+
duration: "-PT14H"
|
|
11125
|
+
},
|
|
11126
|
+
"eumetnet:standard_name": "air_temperature",
|
|
11127
|
+
"eumetnet:level": 1.5
|
|
11128
|
+
},
|
|
11129
|
+
Tn6: {
|
|
11130
|
+
type: "Parameter",
|
|
11131
|
+
label: "Air Temperature Minimum last 6 Hours",
|
|
11132
|
+
description: "Past 6 hour minimum air temperature, in degrees Celsius",
|
|
11133
|
+
"data-type": "float",
|
|
11134
|
+
unit: {
|
|
11135
|
+
label: "degrees celsius",
|
|
11136
|
+
symbol: {
|
|
11137
|
+
value: "°C",
|
|
11138
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11139
|
+
}
|
|
11140
|
+
},
|
|
11141
|
+
observedProperty: {
|
|
11142
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11143
|
+
label: "Air temperature"
|
|
11144
|
+
},
|
|
11145
|
+
measurementType: {
|
|
11146
|
+
method: "minimum",
|
|
11147
|
+
duration: "-PT6H"
|
|
11148
|
+
},
|
|
11149
|
+
"eumetnet:standard_name": "air_temperature",
|
|
11150
|
+
"eumetnet:level": 1.5
|
|
11151
|
+
},
|
|
11152
|
+
tsd: {
|
|
11153
|
+
type: "Parameter",
|
|
11154
|
+
label: "Air Temperature Std Dev",
|
|
11155
|
+
description: "Past 10 minute standard deviation of all air temperature samples, in degrees Celsius",
|
|
11156
|
+
"data-type": "float",
|
|
11157
|
+
unit: {
|
|
11158
|
+
label: "degrees celsius",
|
|
11159
|
+
symbol: {
|
|
11160
|
+
value: "°C",
|
|
11161
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11162
|
+
}
|
|
11163
|
+
},
|
|
11164
|
+
observedProperty: {
|
|
11165
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11166
|
+
label: "Air temperature"
|
|
11167
|
+
},
|
|
11168
|
+
measurementType: {
|
|
11169
|
+
method: "stddev",
|
|
11170
|
+
duration: "-PT10M"
|
|
11171
|
+
},
|
|
11172
|
+
"eumetnet:level": 1.5
|
|
11173
|
+
},
|
|
11174
|
+
tx: {
|
|
11175
|
+
type: "Parameter",
|
|
11176
|
+
label: "Air Temperature 1.50 m Maximum",
|
|
11177
|
+
description: "Past 10 minute maximum air temperature at 1.50 meters, in degrees Celsius",
|
|
11178
|
+
"data-type": "float",
|
|
11179
|
+
unit: {
|
|
11180
|
+
label: "degrees celsius",
|
|
11181
|
+
symbol: {
|
|
11182
|
+
value: "°C",
|
|
11183
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11184
|
+
}
|
|
11185
|
+
},
|
|
11186
|
+
observedProperty: {
|
|
11187
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11188
|
+
label: "Air temperature"
|
|
11189
|
+
},
|
|
11190
|
+
measurementType: {
|
|
11191
|
+
method: "maximum",
|
|
11192
|
+
duration: "-PT10M"
|
|
11193
|
+
},
|
|
11194
|
+
"eumetnet:standard_name": "air_temperature",
|
|
11195
|
+
"eumetnet:level": 1.5
|
|
11196
|
+
},
|
|
11197
|
+
Tx12: {
|
|
11198
|
+
type: "Parameter",
|
|
11199
|
+
label: "Air Temperature Maximum last 12 Hours",
|
|
11200
|
+
description: "Past 12 hour maximum air temperature, in degrees Celsius",
|
|
11201
|
+
"data-type": "float",
|
|
11202
|
+
unit: {
|
|
11203
|
+
label: "degrees celsius",
|
|
11204
|
+
symbol: {
|
|
11205
|
+
value: "°C",
|
|
11206
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11207
|
+
}
|
|
11208
|
+
},
|
|
11209
|
+
observedProperty: {
|
|
11210
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11211
|
+
label: "Air temperature"
|
|
11212
|
+
},
|
|
11213
|
+
measurementType: {
|
|
11214
|
+
method: "maximum",
|
|
11215
|
+
duration: "-PT12H"
|
|
11216
|
+
},
|
|
11217
|
+
"eumetnet:standard_name": "air_temperature",
|
|
11218
|
+
"eumetnet:level": 1.5
|
|
11219
|
+
},
|
|
11220
|
+
Tx24: {
|
|
11221
|
+
type: "Parameter",
|
|
11222
|
+
label: "Air Temperature Maximum last 24 Hours",
|
|
11223
|
+
description: "Past 24 hour maximum air temperature, in degrees Celsius",
|
|
11224
|
+
"data-type": "float",
|
|
11225
|
+
unit: {
|
|
11226
|
+
label: "degrees celsius",
|
|
11227
|
+
symbol: {
|
|
11228
|
+
value: "°C",
|
|
11229
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11230
|
+
}
|
|
11231
|
+
},
|
|
11232
|
+
observedProperty: {
|
|
11233
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11234
|
+
label: "Air temperature"
|
|
11235
|
+
},
|
|
11236
|
+
measurementType: {
|
|
11237
|
+
method: "maximum",
|
|
11238
|
+
duration: "-PT24H"
|
|
11239
|
+
},
|
|
11240
|
+
"eumetnet:standard_name": "air_temperature",
|
|
11241
|
+
"eumetnet:level": 1.5
|
|
11242
|
+
},
|
|
11243
|
+
Tx6: {
|
|
11244
|
+
type: "Parameter",
|
|
11245
|
+
label: "Air Temperature Maximum last 6 Hours",
|
|
11246
|
+
description: "Past 6 hour maximum air temperature, in degrees Celsius",
|
|
11247
|
+
"data-type": "float",
|
|
11248
|
+
unit: {
|
|
11249
|
+
label: "degrees celsius",
|
|
11250
|
+
symbol: {
|
|
11251
|
+
value: "°C",
|
|
11252
|
+
type: "https://qudt.org/vocab/unit/DEG_C"
|
|
11253
|
+
}
|
|
11254
|
+
},
|
|
11255
|
+
observedProperty: {
|
|
11256
|
+
id: "https://vocab.nerc.ac.uk/standard_name/air_temperature/",
|
|
11257
|
+
label: "Air temperature"
|
|
11258
|
+
},
|
|
11259
|
+
measurementType: {
|
|
11260
|
+
method: "maximum",
|
|
11261
|
+
duration: "-PT6H"
|
|
11262
|
+
},
|
|
11263
|
+
"eumetnet:standard_name": "air_temperature",
|
|
11264
|
+
"eumetnet:level": 1.5
|
|
11265
|
+
},
|
|
11266
|
+
vv: {
|
|
11267
|
+
type: "Parameter",
|
|
11268
|
+
label: "Horizontal Visibility Mean",
|
|
11269
|
+
description: "Past 10 minute mean horizontal visibility, in meters",
|
|
11270
|
+
"data-type": "float",
|
|
11271
|
+
unit: {
|
|
11272
|
+
label: "meter",
|
|
11273
|
+
symbol: {
|
|
11274
|
+
value: "m",
|
|
11275
|
+
type: "https://qudt.org/vocab/unit/M.html"
|
|
11276
|
+
}
|
|
11277
|
+
},
|
|
11278
|
+
observedProperty: {
|
|
11279
|
+
id: "https://vocab.nerc.ac.uk/standard_name/visibility_in_air/",
|
|
11280
|
+
label: "Visibility in air"
|
|
11281
|
+
},
|
|
11282
|
+
measurementType: {
|
|
11283
|
+
method: "mean",
|
|
11284
|
+
duration: "-PT10M"
|
|
11285
|
+
},
|
|
11286
|
+
"eumetnet:standard_name": "visibility_in_air"
|
|
11287
|
+
},
|
|
11288
|
+
W10: {
|
|
11289
|
+
type: "Parameter",
|
|
11290
|
+
label: "Past Weather Indicator",
|
|
11291
|
+
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",
|
|
11292
|
+
"data-type": "integer",
|
|
11293
|
+
unit: {
|
|
11294
|
+
label: "unitless",
|
|
11295
|
+
symbol: {
|
|
11296
|
+
value: "一",
|
|
11297
|
+
type: "https://qudt.org/vocab/unit/UNITLESS"
|
|
11298
|
+
}
|
|
11299
|
+
},
|
|
11300
|
+
observedProperty: {
|
|
11301
|
+
label: "Present weather code",
|
|
11302
|
+
description: "The present weather (clear, fog, snow, etc.) described with a numeric code."
|
|
11303
|
+
},
|
|
11304
|
+
measurementType: {
|
|
11305
|
+
method: "N/A",
|
|
11306
|
+
duration: "-PT10M"
|
|
11307
|
+
}
|
|
11308
|
+
},
|
|
11309
|
+
"W10-10": {
|
|
11310
|
+
type: "Parameter",
|
|
11311
|
+
label: "Past Weather Indicator for previous 10 min interval",
|
|
11312
|
+
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",
|
|
11313
|
+
"data-type": "integer",
|
|
11314
|
+
unit: {
|
|
11315
|
+
label: "unitless",
|
|
11316
|
+
symbol: {
|
|
11317
|
+
value: "一",
|
|
11318
|
+
type: "https://qudt.org/vocab/unit/UNITLESS"
|
|
11319
|
+
}
|
|
11320
|
+
},
|
|
11321
|
+
observedProperty: {
|
|
11322
|
+
label: "Present weather code",
|
|
11323
|
+
description: "The present weather (clear, fog, snow, etc.) described with a numeric code."
|
|
11324
|
+
}
|
|
11325
|
+
},
|
|
11326
|
+
ww: {
|
|
11327
|
+
type: "Parameter",
|
|
11328
|
+
label: "WaWa Weather Code",
|
|
11329
|
+
description: "Past 10 minute WaWa Weather Code; Handboek waarnemingen; 5.4 Weercodegenerator; Tabel 6; https://www.knmi.nl/kennis-en-datacentrum/publicatie/handboek-waarnemingen",
|
|
11330
|
+
"data-type": "float",
|
|
11331
|
+
unit: {
|
|
11332
|
+
label: "unitless",
|
|
11333
|
+
symbol: {
|
|
11334
|
+
value: "一",
|
|
11335
|
+
type: "https://qudt.org/vocab/unit/UNITLESS"
|
|
11336
|
+
}
|
|
11337
|
+
},
|
|
11338
|
+
observedProperty: {
|
|
11339
|
+
label: "Present weather code",
|
|
11340
|
+
description: "The present weather (clear, fog, snow, etc.) described with a numeric code."
|
|
11341
|
+
},
|
|
11342
|
+
measurementType: {
|
|
11343
|
+
method: "N/A",
|
|
11344
|
+
duration: "-PT10M"
|
|
11345
|
+
}
|
|
11346
|
+
},
|
|
11347
|
+
"ww-10": {
|
|
11348
|
+
type: "Parameter",
|
|
11349
|
+
label: "WaWa Weather Code for previous 10 min interval",
|
|
11350
|
+
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",
|
|
11351
|
+
"data-type": "float",
|
|
11352
|
+
unit: {
|
|
11353
|
+
label: "unitless",
|
|
11354
|
+
symbol: {
|
|
11355
|
+
value: "一",
|
|
11356
|
+
type: "https://qudt.org/vocab/unit/UNITLESS"
|
|
11357
|
+
}
|
|
11358
|
+
},
|
|
11359
|
+
observedProperty: {
|
|
11360
|
+
label: "Present weather code",
|
|
11361
|
+
description: "The present weather (clear, fog, snow, etc.) described with a numeric code."
|
|
11362
|
+
}
|
|
11363
|
+
},
|
|
11364
|
+
za: {
|
|
11365
|
+
type: "Parameter",
|
|
11366
|
+
label: "Background Luminance Mean",
|
|
11367
|
+
description: "Past 10 minute mean background luminance, in candela per square meter",
|
|
11368
|
+
"data-type": "float",
|
|
11369
|
+
unit: {
|
|
11370
|
+
label: "candela per square meter",
|
|
11371
|
+
symbol: {
|
|
11372
|
+
value: "cd/m²",
|
|
11373
|
+
type: "https://qudt.org/vocab/unit/CD-PER-M2"
|
|
11374
|
+
}
|
|
11375
|
+
},
|
|
11376
|
+
observedProperty: {
|
|
11377
|
+
label: "Background Luminance",
|
|
11378
|
+
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²"
|
|
11379
|
+
},
|
|
11380
|
+
measurementType: {
|
|
11381
|
+
method: "mean",
|
|
11382
|
+
duration: "-PT10M"
|
|
11383
|
+
}
|
|
11384
|
+
},
|
|
11385
|
+
zm: {
|
|
11386
|
+
type: "Parameter",
|
|
11387
|
+
label: "Meteorological Optical Range Mean",
|
|
11388
|
+
description: "Past 10 minute mean meteorological optical range, in meters",
|
|
11389
|
+
"data-type": "float",
|
|
11390
|
+
unit: {
|
|
11391
|
+
label: "meter",
|
|
11392
|
+
symbol: {
|
|
11393
|
+
value: "m",
|
|
11394
|
+
type: "https://qudt.org/vocab/unit/M.html"
|
|
11395
|
+
}
|
|
11396
|
+
},
|
|
11397
|
+
observedProperty: {
|
|
11398
|
+
label: "Meteorological optical range",
|
|
11399
|
+
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."
|
|
11400
|
+
},
|
|
11401
|
+
measurementType: {
|
|
11402
|
+
method: "mean",
|
|
11403
|
+
duration: "-PT10M"
|
|
11404
|
+
}
|
|
11405
|
+
}
|
|
11406
|
+
};
|
|
11407
|
+
var knmi_kdp_edr_collections_10_minute_in_situ_meteorological_observations_update = {
|
|
11408
|
+
id: id,
|
|
11409
|
+
title: title,
|
|
11410
|
+
description: description,
|
|
11411
|
+
links: links,
|
|
11412
|
+
extent: extent,
|
|
11413
|
+
data_queries: data_queries,
|
|
11414
|
+
crs: crs,
|
|
11415
|
+
output_formats: output_formats,
|
|
11416
|
+
parameter_names: parameter_names
|
|
11417
|
+
};
|
|
11418
|
+
|
|
11419
|
+
var type$1 = "FeatureCollection";
|
|
11420
|
+
var features = [
|
|
11421
|
+
{
|
|
11422
|
+
type: "Feature",
|
|
11423
|
+
geometry: {
|
|
11424
|
+
type: "Point",
|
|
11425
|
+
coordinates: [
|
|
11426
|
+
2.9358,
|
|
11427
|
+
54.3256,
|
|
11428
|
+
42.7
|
|
11429
|
+
]
|
|
11430
|
+
},
|
|
11431
|
+
properties: {
|
|
11432
|
+
name: "D15-FA-1",
|
|
11433
|
+
wmoId: "06201"
|
|
11434
|
+
},
|
|
11435
|
+
id: "0-20000-0-06201"
|
|
11436
|
+
},
|
|
11437
|
+
{
|
|
11438
|
+
type: "Feature",
|
|
11439
|
+
geometry: {
|
|
11440
|
+
type: "Point",
|
|
11441
|
+
coordinates: [
|
|
11442
|
+
3.3417,
|
|
11443
|
+
52.36,
|
|
11444
|
+
41.84
|
|
11445
|
+
]
|
|
11446
|
+
},
|
|
11447
|
+
properties: {
|
|
11448
|
+
name: "P11-B",
|
|
11449
|
+
wmoId: "06203"
|
|
11450
|
+
},
|
|
11451
|
+
id: "0-20000-0-06203"
|
|
11452
|
+
},
|
|
11453
|
+
{
|
|
11454
|
+
type: "Feature",
|
|
11455
|
+
geometry: {
|
|
11456
|
+
type: "Point",
|
|
11457
|
+
coordinates: [
|
|
11458
|
+
3.6278,
|
|
11459
|
+
53.2694,
|
|
11460
|
+
41.8
|
|
11461
|
+
]
|
|
11462
|
+
},
|
|
11463
|
+
properties: {
|
|
11464
|
+
name: "K14-FA-1C",
|
|
11465
|
+
wmoId: "06204"
|
|
11466
|
+
},
|
|
11467
|
+
id: "0-20000-0-06204"
|
|
11468
|
+
},
|
|
11469
|
+
{
|
|
11470
|
+
type: "Feature",
|
|
11471
|
+
geometry: {
|
|
11472
|
+
type: "Point",
|
|
11473
|
+
coordinates: [
|
|
11474
|
+
3.8103,
|
|
11475
|
+
55.3992,
|
|
11476
|
+
48.35
|
|
11477
|
+
]
|
|
11478
|
+
},
|
|
11479
|
+
properties: {
|
|
11480
|
+
name: "A12-CPP",
|
|
11481
|
+
wmoId: "06205"
|
|
11482
|
+
},
|
|
11483
|
+
id: "0-20000-0-06205"
|
|
11484
|
+
},
|
|
11485
|
+
{
|
|
11486
|
+
type: "Feature",
|
|
11487
|
+
geometry: {
|
|
11488
|
+
type: "Point",
|
|
11489
|
+
coordinates: [
|
|
11490
|
+
4.0122,
|
|
11491
|
+
54.1167,
|
|
11492
|
+
43.4
|
|
11493
|
+
]
|
|
11494
|
+
},
|
|
11495
|
+
properties: {
|
|
11496
|
+
name: "F16-A",
|
|
11497
|
+
wmoId: "06206"
|
|
9210
11498
|
},
|
|
9211
11499
|
id: "0-20000-0-06206"
|
|
9212
11500
|
},
|
|
@@ -12545,42 +14833,230 @@ var knmi_kdp_edr_collections_10_minute_in_situ_meteorological_observations_cube_
|
|
|
12545
14833
|
referencing: referencing
|
|
12546
14834
|
};
|
|
12547
14835
|
|
|
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
|
-
|
|
14836
|
+
/* *
|
|
14837
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
14838
|
+
* you may not use this file except in compliance with the License.
|
|
14839
|
+
* You may obtain a copy of the License at
|
|
14840
|
+
*
|
|
14841
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
14842
|
+
*
|
|
14843
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14844
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14845
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14846
|
+
* See the License for the specific language governing permissions and
|
|
14847
|
+
* limitations under the License.
|
|
14848
|
+
*
|
|
14849
|
+
* Copyright 2025 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
14850
|
+
* Copyright 2025 - Finnish Meteorological Institute (FMI)
|
|
14851
|
+
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
14852
|
+
* */
|
|
14853
|
+
var fakeEdrLayerApiHandlers = [http.get('https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations', function () {
|
|
14854
|
+
return HttpResponse.json(knmi_kdp_edr_collections_10_minute_in_situ_meteorological_observations);
|
|
14855
|
+
}), http.get('https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations-update', function () {
|
|
14856
|
+
return HttpResponse.json(knmi_kdp_edr_collections_10_minute_in_situ_meteorological_observations_update);
|
|
14857
|
+
}), http.get('https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations/locations', function () {
|
|
14858
|
+
return HttpResponse.json(knmi_kdp_edr_collections_10_minute_in_situ_meteorological_observations_locations);
|
|
14859
|
+
}), http.get('https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations/cube', function (_ref) {
|
|
14860
|
+
var request = _ref.request;
|
|
14861
|
+
var url = new URL(request.url);
|
|
14862
|
+
var parameterName = url.searchParams.get('parameter-name');
|
|
14863
|
+
var dateTime = url.searchParams.get('datetime');
|
|
14864
|
+
var bbox = url.searchParams.get('bbox');
|
|
14865
|
+
if (parameterName === 'ta' && dateTime === '2025-05-20T05:00:00Z' && bbox === '-180,-90,180,90') {
|
|
14866
|
+
return HttpResponse.json(knmi_kdp_edr_collections_10_minute_in_situ_meteorological_observations_cube_ta_20250520_0500);
|
|
14867
|
+
}
|
|
14868
|
+
return HttpResponse.json({
|
|
14869
|
+
error: "Parameter not found (got: [".concat(parameterName, "]/[").concat(dateTime, "]/[").concat(bbox, "]")
|
|
14870
|
+
}, {
|
|
14871
|
+
status: 404
|
|
14872
|
+
});
|
|
14873
|
+
}), http.get('https://gw-edr.pub.knmi.cloud/edr/collections/10-minute-in-situ-meteorological-observations-update/cube', function (_ref2) {
|
|
14874
|
+
var request = _ref2.request;
|
|
14875
|
+
var url = new URL(request.url);
|
|
14876
|
+
var parameterName = url.searchParams.get('parameter-name');
|
|
14877
|
+
var dateTime = url.searchParams.get('datetime');
|
|
14878
|
+
var bbox = url.searchParams.get('bbox');
|
|
14879
|
+
if (parameterName === 'ta' && dateTime === '2025-05-20T05:00:00Z' && bbox === '-180,-90,180,90') {
|
|
14880
|
+
return HttpResponse.json(knmi_kdp_edr_collections_10_minute_in_situ_meteorological_observations_cube_ta_20250520_0500);
|
|
14881
|
+
}
|
|
14882
|
+
return HttpResponse.json({
|
|
14883
|
+
error: "Parameter not found (got: [".concat(parameterName, "]/[").concat(dateTime, "]/[").concat(bbox, "]")
|
|
14884
|
+
}, {
|
|
14885
|
+
status: 404
|
|
14886
|
+
});
|
|
14887
|
+
})];
|
|
14888
|
+
|
|
14889
|
+
var FeatureLayer = function FeatureLayer(_ref) {
|
|
14890
|
+
var features = _ref.features,
|
|
14891
|
+
style = _ref.style,
|
|
14892
|
+
zIndex = _ref.zIndex,
|
|
14893
|
+
hoverSelect = _ref.hoverSelect,
|
|
14894
|
+
clickOnFeature = _ref.clickOnFeature,
|
|
14895
|
+
testId = _ref.testId,
|
|
14896
|
+
opacity = _ref.opacity;
|
|
14897
|
+
var _useContext = useContext(MapContext),
|
|
14898
|
+
map = _useContext.map;
|
|
14899
|
+
var _useState = useState(),
|
|
14900
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
14901
|
+
source = _useState2[0],
|
|
14902
|
+
setSource = _useState2[1];
|
|
14903
|
+
var layerRef = useRef();
|
|
14904
|
+
useEffect(function () {
|
|
14905
|
+
if (!map) {
|
|
14906
|
+
return function () {};
|
|
14907
|
+
}
|
|
14908
|
+
var source = new VectorSource({
|
|
14909
|
+
features: []
|
|
14910
|
+
});
|
|
14911
|
+
var layer = new Vector({
|
|
14912
|
+
source: source,
|
|
14913
|
+
zIndex: zIndex,
|
|
14914
|
+
style: style,
|
|
14915
|
+
properties: {
|
|
14916
|
+
testId: testId
|
|
14917
|
+
},
|
|
14918
|
+
opacity: opacity
|
|
14919
|
+
});
|
|
14920
|
+
layerRef.current = layer;
|
|
14921
|
+
layer.set('layerType', 'FeatureLayer');
|
|
14922
|
+
setSource(source);
|
|
14923
|
+
map.addLayer(layer);
|
|
14924
|
+
return function () {
|
|
14925
|
+
setSource(undefined);
|
|
14926
|
+
source.clear();
|
|
14927
|
+
map.removeLayer(layer);
|
|
14928
|
+
};
|
|
14929
|
+
// NOTE: style should not be part of this effect, as it changes always, causing the layer to be add/removed continuousely.
|
|
14930
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
14931
|
+
}, [map, zIndex, testId]);
|
|
14932
|
+
useEffect(function () {
|
|
14933
|
+
// Handle style function:
|
|
14934
|
+
if (layerRef.current && style) {
|
|
14935
|
+
var _layerRef$current;
|
|
14936
|
+
(_layerRef$current = layerRef.current) === null || _layerRef$current === void 0 || _layerRef$current.setStyle(style);
|
|
14937
|
+
}
|
|
14938
|
+
}, [style]);
|
|
14939
|
+
useEffect(function () {
|
|
14940
|
+
// Handle opacity:
|
|
14941
|
+
if (layerRef.current && opacity) {
|
|
14942
|
+
var _layerRef$current2;
|
|
14943
|
+
(_layerRef$current2 = layerRef.current) === null || _layerRef$current2 === void 0 || _layerRef$current2.setOpacity(opacity);
|
|
14944
|
+
}
|
|
14945
|
+
}, [opacity]);
|
|
14946
|
+
useEffect(function () {
|
|
14947
|
+
if (!source) {
|
|
14948
|
+
return;
|
|
14949
|
+
}
|
|
14950
|
+
source.clear();
|
|
14951
|
+
if (features && features.length > 0) {
|
|
14952
|
+
source.addFeatures(features);
|
|
14953
|
+
}
|
|
14954
|
+
}, [source, features]);
|
|
14955
|
+
useEffect(function () {
|
|
14956
|
+
if (!map || !source || !hoverSelect || !hoverSelect.active) {
|
|
14957
|
+
return function () {};
|
|
14958
|
+
}
|
|
14959
|
+
var previousHover = [];
|
|
14960
|
+
var pointerMoveFunction = debounce(function (evt) {
|
|
14961
|
+
var hoveredFeature = map.forEachFeatureAtPixel(evt.pixel, function (feature, layer) {
|
|
14962
|
+
if (!layer || layer.getSource() !== source) {
|
|
14963
|
+
return false;
|
|
14964
|
+
}
|
|
14965
|
+
return feature;
|
|
14966
|
+
});
|
|
14967
|
+
if (hoveredFeature && previousHover.includes(hoveredFeature)) {
|
|
14968
|
+
return;
|
|
14969
|
+
}
|
|
14970
|
+
var unhovered = previousHover.length > 0;
|
|
14971
|
+
previousHover.forEach(function (feature) {
|
|
14972
|
+
feature.set('hover', false);
|
|
14973
|
+
});
|
|
14974
|
+
previousHover.splice(0);
|
|
14975
|
+
if (hoveredFeature) {
|
|
14976
|
+
previousHover.push(hoveredFeature);
|
|
14977
|
+
hoveredFeature.set('hover', true);
|
|
14978
|
+
hoverSelect.onHover && hoverSelect.onHover(hoveredFeature);
|
|
14979
|
+
} else if (unhovered) {
|
|
14980
|
+
hoverSelect.onHover && hoverSelect.onHover(undefined);
|
|
14981
|
+
}
|
|
14982
|
+
}, 5, {});
|
|
14983
|
+
var eventKey = map.on('pointermove', pointerMoveFunction);
|
|
14984
|
+
return function () {
|
|
14985
|
+
pointerMoveFunction.cancel();
|
|
14986
|
+
source.getFeatures().forEach(function (feature) {
|
|
14987
|
+
feature.set('hover', false);
|
|
14988
|
+
});
|
|
14989
|
+
unByKey(eventKey);
|
|
14990
|
+
hoverSelect.onHover && hoverSelect.onHover(undefined);
|
|
14991
|
+
};
|
|
14992
|
+
}, [map, source, hoverSelect]);
|
|
14993
|
+
useEffect(function () {
|
|
14994
|
+
if (!map || !source || !clickOnFeature) {
|
|
14995
|
+
return function () {};
|
|
14996
|
+
}
|
|
14997
|
+
var clickFunction = function clickFunction(evt) {
|
|
14998
|
+
var features = [];
|
|
14999
|
+
map.forEachFeatureAtPixel(evt.pixel, function (feature) {
|
|
15000
|
+
features.push(feature);
|
|
15001
|
+
}, {
|
|
15002
|
+
hitTolerance: clickOnFeature.hitTolerance
|
|
15003
|
+
});
|
|
15004
|
+
clickOnFeature.onClick(features);
|
|
15005
|
+
};
|
|
15006
|
+
var eventKey = map.on('click', clickFunction);
|
|
15007
|
+
return function () {
|
|
15008
|
+
unByKey(eventKey);
|
|
15009
|
+
};
|
|
15010
|
+
}, [map, source, clickOnFeature]);
|
|
15011
|
+
return null;
|
|
15012
|
+
};
|
|
15013
|
+
|
|
15014
|
+
var defaultLegend = makeLegendFromColorMap({
|
|
15015
|
+
colors: colorMaps.temperatureLegendColorsWoW,
|
|
15016
|
+
min: -18,
|
|
15017
|
+
max: 38
|
|
15018
|
+
});
|
|
15019
|
+
// Style needs to be optional to match the other layers. Therefore a default style is made here once.
|
|
15020
|
+
var defaultStyle = function defaultStyle(feature) {
|
|
15021
|
+
return makeFeatureStyleDisc(feature, defaultLegend);
|
|
15022
|
+
};
|
|
15023
|
+
var OpenLayersFeatureLayer = function OpenLayersFeatureLayer(_ref) {
|
|
15024
|
+
var featureCollection = _ref.featureCollection,
|
|
15025
|
+
_ref$style = _ref.style,
|
|
15026
|
+
style = _ref$style === void 0 ? defaultStyle : _ref$style,
|
|
15027
|
+
zIndex = _ref.zIndex,
|
|
15028
|
+
hoverSelect = _ref.hoverSelect,
|
|
15029
|
+
clickOnFeature = _ref.clickOnFeature,
|
|
15030
|
+
testId = _ref.testId,
|
|
15031
|
+
opacity = _ref.opacity;
|
|
15032
|
+
var projection = useProjection();
|
|
15033
|
+
var featureCollectionRef = useRef();
|
|
15034
|
+
var features = useRef([]);
|
|
15035
|
+
var featureCollectionHasChanges = featureCollectionRef.current !== featureCollection;
|
|
15036
|
+
if (featureCollectionHasChanges) {
|
|
15037
|
+
if (projection && featureCollection) {
|
|
15038
|
+
// eslint-disable-next-line no-console
|
|
15039
|
+
featureCollectionRef.current = featureCollection;
|
|
15040
|
+
var formatter = new GeoJSON({
|
|
15041
|
+
featureProjection: projection
|
|
15042
|
+
});
|
|
15043
|
+
features.current = formatter.readFeatures(featureCollection);
|
|
15044
|
+
}
|
|
12577
15045
|
}
|
|
12578
|
-
|
|
12579
|
-
|
|
12580
|
-
|
|
12581
|
-
|
|
15046
|
+
// If no featureCollection is given, e.g. in edit mode of a polygon, the feature should not be displayed.
|
|
15047
|
+
if (!featureCollection) {
|
|
15048
|
+
return null;
|
|
15049
|
+
}
|
|
15050
|
+
return jsx(FeatureLayer, {
|
|
15051
|
+
features: features.current,
|
|
15052
|
+
style: style,
|
|
15053
|
+
zIndex: zIndex,
|
|
15054
|
+
hoverSelect: hoverSelect,
|
|
15055
|
+
clickOnFeature: clickOnFeature,
|
|
15056
|
+
testId: testId,
|
|
15057
|
+
opacity: opacity
|
|
12582
15058
|
});
|
|
12583
|
-
}
|
|
15059
|
+
};
|
|
12584
15060
|
|
|
12585
15061
|
/* *
|
|
12586
15062
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -12616,32 +15092,26 @@ var coverageCollectionToFeatureCollection = function coverageCollectionToFeature
|
|
|
12616
15092
|
})) || [];
|
|
12617
15093
|
var featurePoint = {
|
|
12618
15094
|
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
|
-
})
|
|
15095
|
+
features: latLonValues
|
|
12623
15096
|
};
|
|
12624
15097
|
return featurePoint;
|
|
12625
15098
|
};
|
|
12626
15099
|
|
|
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
15100
|
var TimeAwareEDRLocationLayer = function TimeAwareEDRLocationLayer(_ref) {
|
|
12637
|
-
var
|
|
12638
|
-
|
|
12639
|
-
edrBaseUrl = _ref.edrBaseUrl,
|
|
12640
|
-
collectionId = _ref.collectionId,
|
|
15101
|
+
var _wmLayer$getDimension;
|
|
15102
|
+
var edrBaseUrl = _ref.edrBaseUrl,
|
|
12641
15103
|
parameter = _ref.parameter,
|
|
12642
15104
|
style = _ref.style,
|
|
12643
|
-
zIndex = _ref.zIndex
|
|
12644
|
-
|
|
15105
|
+
zIndex = _ref.zIndex,
|
|
15106
|
+
opacity = _ref.opacity,
|
|
15107
|
+
dimensions = _ref.dimensions,
|
|
15108
|
+
layerId = _ref.layerId,
|
|
15109
|
+
onInitializeLayer = _ref.onInitializeLayer;
|
|
15110
|
+
// get a wmLayer instance
|
|
15111
|
+
var wmLayer = useGetEDRLayerInstance(edrBaseUrl, parameter, layerId, onInitializeLayer);
|
|
15112
|
+
// dimensionsValues is a key/value dictionary with dimension names specifically for WMS GetMap requests. We re-use it here for EDR.
|
|
15113
|
+
var dimensionsValues = getDimensionParamsForWMS(dimensions, wmLayer);
|
|
15114
|
+
var timeValue = dimensionsValues && dimensionsValues['TIME'];
|
|
12645
15115
|
var _React$useState = React__default.useState({
|
|
12646
15116
|
features: [],
|
|
12647
15117
|
type: 'FeatureCollection'
|
|
@@ -12649,22 +15119,143 @@ var TimeAwareEDRLocationLayer = function TimeAwareEDRLocationLayer(_ref) {
|
|
|
12649
15119
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
12650
15120
|
featurePoints = _React$useState2[0],
|
|
12651
15121
|
setFeaturePoints = _React$useState2[1];
|
|
12652
|
-
var
|
|
15122
|
+
var edrQueryDateTime = (wmLayer === null || wmLayer === void 0 || (_wmLayer$getDimension = wmLayer.getDimension('time')) === null || _wmLayer$getDimension === void 0 ? void 0 : _wmLayer$getDimension.getClosestValue(timeValue)) || timeValue;
|
|
15123
|
+
var result = useEDRLayerCollectionCube(edrBaseUrl, parameter, edrQueryDateTime);
|
|
12653
15124
|
React__default.useEffect(function () {
|
|
12654
15125
|
var featurePoint = coverageCollectionToFeatureCollection(result.data, parameter);
|
|
12655
15126
|
if (!featurePoint) {
|
|
12656
15127
|
return;
|
|
12657
15128
|
}
|
|
12658
15129
|
setFeaturePoints(featurePoint);
|
|
12659
|
-
|
|
12660
|
-
}, [edrBaseUrl, parameter, result.data]);
|
|
15130
|
+
}, [parameter, result.data]);
|
|
12661
15131
|
return jsx(OpenLayersFeatureLayer, {
|
|
12662
15132
|
featureCollection: featurePoints,
|
|
12663
15133
|
style: result.isFetching ? makeFeatureStyleLoading : style,
|
|
15134
|
+
opacity: opacity,
|
|
12664
15135
|
zIndex: zIndex
|
|
12665
15136
|
});
|
|
12666
15137
|
};
|
|
12667
15138
|
|
|
15139
|
+
var OpenLayersLayer = function OpenLayersLayer(layerProps) {
|
|
15140
|
+
var id = layerProps.id,
|
|
15141
|
+
service = layerProps.service,
|
|
15142
|
+
enabled = layerProps.enabled,
|
|
15143
|
+
name = layerProps.name,
|
|
15144
|
+
style = layerProps.style,
|
|
15145
|
+
dimensions = layerProps.dimensions,
|
|
15146
|
+
opacity = layerProps.opacity,
|
|
15147
|
+
zIndex = layerProps.zIndex,
|
|
15148
|
+
onInitializeLayer = layerProps.onInitializeLayer,
|
|
15149
|
+
onLayerReady = layerProps.onLayerReady,
|
|
15150
|
+
onLayerError = layerProps.onLayerError,
|
|
15151
|
+
debugMode = layerProps.debugMode,
|
|
15152
|
+
_layerProps$layerType = layerProps.layerType,
|
|
15153
|
+
layerType = _layerProps$layerType === void 0 ? LayerType.mapLayer : _layerProps$layerType,
|
|
15154
|
+
_layerProps$tileServe = layerProps.tileServerSettings,
|
|
15155
|
+
tileServerSettings = _layerProps$tileServe === void 0 ? tilesettings : _layerProps$tileServe;
|
|
15156
|
+
var isBaseLayer = layerType === LayerType.baseLayer;
|
|
15157
|
+
var isOverlay = layerType === LayerType.overLayer;
|
|
15158
|
+
var layerOptions = useMemo(function () {
|
|
15159
|
+
return {
|
|
15160
|
+
opacity: opacity !== null && opacity !== undefined ? opacity : 1,
|
|
15161
|
+
zIndex: zIndex || 0
|
|
15162
|
+
};
|
|
15163
|
+
}, [opacity, zIndex]);
|
|
15164
|
+
var _useContext = useContext(MapContext),
|
|
15165
|
+
map = _useContext.map;
|
|
15166
|
+
// Check standard maplayers
|
|
15167
|
+
if (!isOverlay && !isBaseLayer) {
|
|
15168
|
+
switch (layerType) {
|
|
15169
|
+
case LayerType.mapLayer:
|
|
15170
|
+
return jsx(TimeawareImageSourceWMSLayer, {
|
|
15171
|
+
getCapsURL: service,
|
|
15172
|
+
layerName: name,
|
|
15173
|
+
layerOptions: layerOptions,
|
|
15174
|
+
layerId: id,
|
|
15175
|
+
dimensions: dimensions,
|
|
15176
|
+
visible: !!(enabled !== false),
|
|
15177
|
+
styleName: style,
|
|
15178
|
+
onInitializeLayer: onInitializeLayer,
|
|
15179
|
+
onLayerReady: onLayerReady,
|
|
15180
|
+
onLayerError: onLayerError,
|
|
15181
|
+
debugMode: debugMode
|
|
15182
|
+
});
|
|
15183
|
+
case LayerType.edrLayer:
|
|
15184
|
+
{
|
|
15185
|
+
var styleLike = style !== undefined ? styleNameToStyleLike(style) : undefined;
|
|
15186
|
+
return jsx(TimeAwareEDRLocationLayer, {
|
|
15187
|
+
layerId: id,
|
|
15188
|
+
edrBaseUrl: service,
|
|
15189
|
+
parameter: name,
|
|
15190
|
+
dimensions: dimensions,
|
|
15191
|
+
zIndex: layerOptions.zIndex,
|
|
15192
|
+
style: styleLike,
|
|
15193
|
+
opacity: layerOptions.opacity,
|
|
15194
|
+
onInitializeLayer: onInitializeLayer
|
|
15195
|
+
});
|
|
15196
|
+
}
|
|
15197
|
+
}
|
|
15198
|
+
}
|
|
15199
|
+
// Check the other layers
|
|
15200
|
+
if (isBaseLayer || isOverlay) {
|
|
15201
|
+
var type = layerProps.type,
|
|
15202
|
+
_name = layerProps.name,
|
|
15203
|
+
_service = layerProps.service,
|
|
15204
|
+
tileServer = layerProps.tileServer;
|
|
15205
|
+
if (type === 'twms' && _name) {
|
|
15206
|
+
var _map$getView;
|
|
15207
|
+
var tileSettingByName = tileServerSettings[_name] || tileServer && tileServer[_name];
|
|
15208
|
+
if (!tileSettingByName) {
|
|
15209
|
+
console.warn("Tilesetting with name ".concat(_name, " not found in "), tileServerSettings, tileServer);
|
|
15210
|
+
}
|
|
15211
|
+
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();
|
|
15212
|
+
var projectionUsedFromTileServer = tileSettingByName[projectionName] ? projectionName : 'EPSG:3857';
|
|
15213
|
+
var tileSettingForCRS = tileSettingByName && projectionName && tileSettingByName[projectionUsedFromTileServer];
|
|
15214
|
+
if (tileSettingForCRS) {
|
|
15215
|
+
var home = tileSettingForCRS.home,
|
|
15216
|
+
tileServerType = tileSettingForCRS.tileServerType,
|
|
15217
|
+
urlTemplateOverride = tileSettingForCRS.urlTemplate;
|
|
15218
|
+
var urlTemplate = (urlTemplateOverride === null || urlTemplateOverride === void 0 ? void 0 : urlTemplateOverride(home)) || '';
|
|
15219
|
+
if (!urlTemplateOverride) {
|
|
15220
|
+
switch (tileServerType) {
|
|
15221
|
+
case 'arcgisonline':
|
|
15222
|
+
urlTemplate = "".concat(home, "{z}/{y}/{x}.png");
|
|
15223
|
+
break;
|
|
15224
|
+
case 'osm':
|
|
15225
|
+
urlTemplate = "".concat(home, "{z}/{x}/{y}.png");
|
|
15226
|
+
break;
|
|
15227
|
+
case 'wmst':
|
|
15228
|
+
urlTemplate = "".concat(home, "{z}/{y}/{x}");
|
|
15229
|
+
break;
|
|
15230
|
+
}
|
|
15231
|
+
}
|
|
15232
|
+
if (!urlTemplate) {
|
|
15233
|
+
console.warn("Tile server type ".concat(tileServerType, " not supported"), tileServerSettings, tileServer);
|
|
15234
|
+
}
|
|
15235
|
+
return jsx(XYZLayer, {
|
|
15236
|
+
urlTemplate: urlTemplate,
|
|
15237
|
+
layerOptions: layerOptions,
|
|
15238
|
+
layerProps: _objectSpread2(_objectSpread2({}, layerProps), {}, {
|
|
15239
|
+
enabled: true
|
|
15240
|
+
}),
|
|
15241
|
+
tileProjectionCode: projectionUsedFromTileServer
|
|
15242
|
+
});
|
|
15243
|
+
}
|
|
15244
|
+
} else if (_name && _service) {
|
|
15245
|
+
return jsx(WMSLayer, {
|
|
15246
|
+
layerName: _name,
|
|
15247
|
+
layerOptions: layerOptions,
|
|
15248
|
+
layerProps: layerProps,
|
|
15249
|
+
url: _service,
|
|
15250
|
+
styleName: style || 'default'
|
|
15251
|
+
});
|
|
15252
|
+
} else if (baseLayer) {
|
|
15253
|
+
return jsx(DefaultBaseLayers, {});
|
|
15254
|
+
}
|
|
15255
|
+
}
|
|
15256
|
+
return jsx("div", {});
|
|
15257
|
+
};
|
|
15258
|
+
|
|
12668
15259
|
var createIconStyle = memoize(function (input, options) {
|
|
12669
15260
|
var _options$render, _options$render2;
|
|
12670
15261
|
var svgPath = _typeof(input) === 'object' ? input.path : input;
|
|
@@ -13641,4 +16232,4 @@ var getLayerUpdateInfo = function getLayerUpdateInfo(wmLayer, mapId) {
|
|
|
13641
16232
|
return updateObject;
|
|
13642
16233
|
};
|
|
13643
16234
|
|
|
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,
|
|
16235
|
+
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 };
|