@kalisio/kdk 2.5.2 → 2.5.3
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/core/client/components/input/KShapePicker.vue +4 -4
- package/coverage/core/api/application.js.html +344 -344
- package/coverage/core/api/authentication.js.html +79 -79
- package/coverage/core/api/db.js.html +167 -167
- package/coverage/core/api/hooks/hooks.authentication.js.html +12 -12
- package/coverage/core/api/hooks/hooks.authorisations.js.html +166 -163
- package/coverage/core/api/hooks/hooks.groups.js.html +1 -1
- package/coverage/core/api/hooks/hooks.logger.js.html +18 -18
- package/coverage/core/api/hooks/hooks.model.js.html +280 -268
- package/coverage/core/api/hooks/hooks.organisations.js.html +1 -1
- package/coverage/core/api/hooks/hooks.push.js.html +12 -12
- package/coverage/core/api/hooks/hooks.query.js.html +92 -92
- package/coverage/core/api/hooks/hooks.schemas.js.html +13 -13
- package/coverage/core/api/hooks/hooks.service.js.html +28 -28
- package/coverage/core/api/hooks/hooks.storage.js.html +7 -7
- package/coverage/core/api/hooks/hooks.users.js.html +48 -48
- package/coverage/core/api/hooks/index.html +49 -49
- package/coverage/core/api/hooks/index.js.html +11 -11
- package/coverage/core/api/index.html +42 -42
- package/coverage/core/api/index.js.html +22 -22
- package/coverage/core/api/marshall.js.html +127 -127
- package/coverage/core/api/models/groups.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/index.html +1 -1
- package/coverage/core/api/models/messages.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/organisations.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/tags.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/users.model.mongodb.js.html +11 -11
- package/coverage/core/api/services/account/account.hooks.js.html +42 -42
- package/coverage/core/api/services/account/account.service.js.html +34 -34
- package/coverage/core/api/services/account/index.html +1 -1
- package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +34 -34
- package/coverage/core/api/services/authorisations/authorisations.service.js.html +108 -120
- package/coverage/core/api/services/authorisations/index.html +19 -19
- package/coverage/core/api/services/databases/databases.hooks.js.html +1 -1
- package/coverage/core/api/services/databases/databases.service.js.html +1 -1
- package/coverage/core/api/services/databases/index.html +1 -1
- package/coverage/core/api/services/groups/groups.hooks.js.html +1 -1
- package/coverage/core/api/services/groups/index.html +1 -1
- package/coverage/core/api/services/import-export/import-export.hooks.js.html +1 -1
- package/coverage/core/api/services/import-export/import-export.service.js.html +1 -1
- package/coverage/core/api/services/import-export/index.html +1 -1
- package/coverage/core/api/services/index.html +15 -15
- package/coverage/core/api/services/index.js.html +97 -85
- package/coverage/core/api/services/mailer/index.html +1 -1
- package/coverage/core/api/services/mailer/mailer.hooks.js.html +1 -1
- package/coverage/core/api/services/mailer/mailer.service.js.html +1 -1
- package/coverage/core/api/services/messages/index.html +5 -5
- package/coverage/core/api/services/messages/messages.hooks.js.html +11 -8
- package/coverage/core/api/services/organisations/index.html +1 -1
- package/coverage/core/api/services/organisations/organisations.hooks.js.html +1 -1
- package/coverage/core/api/services/organisations/organisations.service.js.html +1 -1
- package/coverage/core/api/services/push/index.html +1 -1
- package/coverage/core/api/services/push/push.hooks.js.html +1 -1
- package/coverage/core/api/services/push/push.service.js.html +1 -1
- package/coverage/core/api/services/storage/index.html +1 -1
- package/coverage/core/api/services/storage/storage.hooks.js.html +36 -36
- package/coverage/core/api/services/storage/storage.service.js.html +30 -30
- package/coverage/core/api/services/tags/index.html +1 -1
- package/coverage/core/api/services/tags/tags.hooks.js.html +1 -1
- package/coverage/core/api/services/users/index.html +7 -7
- package/coverage/core/api/services/users/users.hooks.js.html +83 -80
- package/coverage/core/api/services/users/users.service.js.html +4 -4
- package/coverage/core/api/utils.js.html +1 -1
- package/coverage/core/common/errors.js.html +2 -2
- package/coverage/core/common/index.html +30 -30
- package/coverage/core/common/index.js.html +11 -11
- package/coverage/core/common/permissions.js.html +187 -187
- package/coverage/core/common/schema.js.html +26 -26
- package/coverage/core/common/utils.js.html +61 -61
- package/coverage/core/common/utils.offline.js.html +6 -6
- package/coverage/index.html +179 -164
- package/coverage/lcov-report/core/api/application.js.html +344 -344
- package/coverage/lcov-report/core/api/authentication.js.html +79 -79
- package/coverage/lcov-report/core/api/db.js.html +167 -167
- package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +12 -12
- package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +166 -163
- package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +18 -18
- package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +280 -268
- package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.push.js.html +12 -12
- package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +92 -92
- package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +13 -13
- package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +28 -28
- package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +7 -7
- package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +48 -48
- package/coverage/lcov-report/core/api/hooks/index.html +49 -49
- package/coverage/lcov-report/core/api/hooks/index.js.html +11 -11
- package/coverage/lcov-report/core/api/index.html +42 -42
- package/coverage/lcov-report/core/api/index.js.html +22 -22
- package/coverage/lcov-report/core/api/marshall.js.html +127 -127
- package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/index.html +1 -1
- package/coverage/lcov-report/core/api/models/messages.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +11 -11
- package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +42 -42
- package/coverage/lcov-report/core/api/services/account/account.service.js.html +34 -34
- package/coverage/lcov-report/core/api/services/account/index.html +1 -1
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +34 -34
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +108 -120
- package/coverage/lcov-report/core/api/services/authorisations/index.html +19 -19
- package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/databases/index.html +1 -1
- package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/groups/index.html +1 -1
- package/coverage/lcov-report/core/api/services/import-export/import-export.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/import-export/import-export.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/import-export/index.html +1 -1
- package/coverage/lcov-report/core/api/services/index.html +15 -15
- package/coverage/lcov-report/core/api/services/index.js.html +97 -85
- package/coverage/lcov-report/core/api/services/mailer/index.html +1 -1
- package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/messages/index.html +5 -5
- package/coverage/lcov-report/core/api/services/messages/messages.hooks.js.html +11 -8
- package/coverage/lcov-report/core/api/services/organisations/index.html +1 -1
- package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/push/index.html +1 -1
- package/coverage/lcov-report/core/api/services/push/push.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/push/push.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/storage/index.html +1 -1
- package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +36 -36
- package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +30 -30
- package/coverage/lcov-report/core/api/services/tags/index.html +1 -1
- package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/users/index.html +7 -7
- package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +83 -80
- package/coverage/lcov-report/core/api/services/users/users.service.js.html +4 -4
- package/coverage/lcov-report/core/api/utils.js.html +1 -1
- package/coverage/lcov-report/core/common/errors.js.html +2 -2
- package/coverage/lcov-report/core/common/index.html +30 -30
- package/coverage/lcov-report/core/common/index.js.html +11 -11
- package/coverage/lcov-report/core/common/permissions.js.html +187 -187
- package/coverage/lcov-report/core/common/schema.js.html +26 -26
- package/coverage/lcov-report/core/common/utils.js.html +61 -61
- package/coverage/lcov-report/core/common/utils.offline.js.html +6 -6
- package/coverage/lcov-report/index.html +179 -164
- package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +348 -258
- package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +218 -218
- package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +795 -810
- package/coverage/lcov-report/map/api/hooks/index.html +54 -54
- package/coverage/lcov-report/map/api/hooks/index.js.html +16 -16
- package/coverage/lcov-report/map/api/index.html +32 -32
- package/coverage/lcov-report/map/api/index.js.html +46 -46
- package/coverage/lcov-report/map/api/marshall.js.html +72 -72
- package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +24 -24
- package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +69 -27
- package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +80 -80
- package/coverage/lcov-report/map/api/models/index.html +69 -54
- package/coverage/lcov-report/map/api/models/projects.model.mongodb.js.html +26 -26
- package/coverage/lcov-report/map/api/models/styles.model.mongodb.js.html +112 -0
- package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +136 -136
- package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +343 -343
- package/coverage/lcov-report/map/api/services/alerts/index.html +32 -32
- package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +177 -162
- package/coverage/lcov-report/map/api/services/catalog/index.html +21 -21
- package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
- package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
- package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +160 -160
- package/coverage/lcov-report/map/api/services/features/features.service.js.html +117 -117
- package/coverage/lcov-report/map/api/services/features/index.html +31 -31
- package/coverage/lcov-report/map/api/services/index.html +21 -21
- package/coverage/lcov-report/map/api/services/index.js.html +404 -296
- package/coverage/lcov-report/map/api/services/projects/index.html +21 -21
- package/coverage/lcov-report/map/api/services/projects/projects.hooks.js.html +237 -237
- package/coverage/lcov-report/map/api/services/styles/index.html +116 -0
- package/coverage/lcov-report/map/api/services/styles/styles.hooks.js.html +196 -0
- package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +68 -68
- package/coverage/lcov-report/map/common/errors.js.html +16 -16
- package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +267 -267
- package/coverage/lcov-report/map/common/grid.js.html +554 -554
- package/coverage/lcov-report/map/common/index.html +158 -158
- package/coverage/lcov-report/map/common/index.js.html +68 -68
- package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +73 -73
- package/coverage/lcov-report/map/common/moment-utils.js.html +18 -18
- package/coverage/lcov-report/map/common/opendap-grid-source.js.html +484 -484
- package/coverage/lcov-report/map/common/opendap-utils.js.html +353 -353
- package/coverage/lcov-report/map/common/permissions.js.html +42 -36
- package/coverage/lcov-report/map/common/time-based-grid-source.js.html +59 -59
- package/coverage/lcov-report/map/common/tms-utils.js.html +6 -6
- package/coverage/lcov-report/map/common/wcs-grid-source.js.html +190 -190
- package/coverage/lcov-report/map/common/wcs-utils.js.html +339 -339
- package/coverage/lcov-report/map/common/weacast-grid-source.js.html +345 -345
- package/coverage/lcov-report/map/common/wfs-utils.js.html +11 -11
- package/coverage/lcov-report/map/common/wms-utils.js.html +8 -8
- package/coverage/lcov-report/map/common/wmts-utils.js.html +7 -7
- package/coverage/lcov.info +7022 -5894
- package/coverage/map/api/hooks/hooks.catalog.js.html +348 -258
- package/coverage/map/api/hooks/hooks.features.js.html +218 -218
- package/coverage/map/api/hooks/hooks.query.js.html +795 -810
- package/coverage/map/api/hooks/index.html +54 -54
- package/coverage/map/api/hooks/index.js.html +16 -16
- package/coverage/map/api/index.html +32 -32
- package/coverage/map/api/index.js.html +46 -46
- package/coverage/map/api/marshall.js.html +72 -72
- package/coverage/map/api/models/alerts.model.mongodb.js.html +24 -24
- package/coverage/map/api/models/catalog.model.mongodb.js.html +69 -27
- package/coverage/map/api/models/features.model.mongodb.js.html +80 -80
- package/coverage/map/api/models/index.html +69 -54
- package/coverage/map/api/models/projects.model.mongodb.js.html +26 -26
- package/coverage/map/api/models/styles.model.mongodb.js.html +112 -0
- package/coverage/map/api/services/alerts/alerts.hooks.js.html +136 -136
- package/coverage/map/api/services/alerts/alerts.service.js.html +343 -343
- package/coverage/map/api/services/alerts/index.html +32 -32
- package/coverage/map/api/services/catalog/catalog.hooks.js.html +177 -162
- package/coverage/map/api/services/catalog/index.html +21 -21
- package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
- package/coverage/map/api/services/daptiles/index.html +1 -1
- package/coverage/map/api/services/features/features.hooks.js.html +160 -160
- package/coverage/map/api/services/features/features.service.js.html +117 -117
- package/coverage/map/api/services/features/index.html +31 -31
- package/coverage/map/api/services/index.html +21 -21
- package/coverage/map/api/services/index.js.html +404 -296
- package/coverage/map/api/services/projects/index.html +21 -21
- package/coverage/map/api/services/projects/projects.hooks.js.html +237 -237
- package/coverage/map/api/services/styles/index.html +116 -0
- package/coverage/map/api/services/styles/styles.hooks.js.html +196 -0
- package/coverage/map/common/dynamic-grid-source.js.html +68 -68
- package/coverage/map/common/errors.js.html +16 -16
- package/coverage/map/common/geotiff-grid-source.js.html +267 -267
- package/coverage/map/common/grid.js.html +554 -554
- package/coverage/map/common/index.html +158 -158
- package/coverage/map/common/index.js.html +68 -68
- package/coverage/map/common/meteo-model-grid-source.js.html +73 -73
- package/coverage/map/common/moment-utils.js.html +18 -18
- package/coverage/map/common/opendap-grid-source.js.html +484 -484
- package/coverage/map/common/opendap-utils.js.html +353 -353
- package/coverage/map/common/permissions.js.html +42 -36
- package/coverage/map/common/time-based-grid-source.js.html +59 -59
- package/coverage/map/common/tms-utils.js.html +6 -6
- package/coverage/map/common/wcs-grid-source.js.html +190 -190
- package/coverage/map/common/wcs-utils.js.html +339 -339
- package/coverage/map/common/weacast-grid-source.js.html +345 -345
- package/coverage/map/common/wfs-utils.js.html +11 -11
- package/coverage/map/common/wms-utils.js.html +8 -8
- package/coverage/map/common/wmts-utils.js.html +7 -7
- package/coverage/tmp/coverage-151198-1753351220086-0.json +1 -0
- package/coverage/tmp/coverage-151210-1753351220070-0.json +1 -0
- package/coverage/tmp/coverage-151221-1753351129816-0.json +1 -0
- package/coverage/tmp/coverage-151233-1753351129803-0.json +1 -0
- package/coverage/tmp/coverage-151240-1753351129770-0.json +1 -0
- package/coverage/tmp/coverage-151307-1753351220058-0.json +1 -0
- package/coverage/tmp/coverage-151319-1753351220044-0.json +1 -0
- package/coverage/tmp/coverage-151326-1753351220010-0.json +1 -0
- package/map/api/services/styles/styles.hooks.js +1 -1
- package/map/client/components/KLayerEditor.vue +4 -0
- package/map/client/components/catalog/KLayerCategories.vue +2 -0
- package/map/client/components/stickies/KLevelSlider.vue +10 -8
- package/map/client/components/styles/KStyleEditor.vue +1 -1
- package/map/client/components/styles/KStyleManager.vue +7 -1
- package/map/client/composables/highlight.js +5 -1
- package/map/client/i18n/map_en.json +4 -1
- package/map/client/i18n/map_fr.json +4 -1
- package/map/client/mixins/globe/mixin.geojson-layers.js +11 -5
- package/map/client/mixins/mixin.activity.js +9 -0
- package/map/client/utils/utils.layers.js +0 -2
- package/package.json +1 -1
- package/test/api/core/push.test.js +1 -1
- package/test/api/core/test-log-2025-02-05.log +23 -0
- package/test/api/core/test-log-2025-05-21.log +15 -0
- package/test/api/core/test-log-2025-06-25.log +9 -0
- package/test/api/core/test-log-2025-07-24.log +44 -0
- package/test/api/map/test-log-2025-05-27.log +13 -0
- package/test/api/map/test-log-2025-06-23.log +7 -0
- package/test/api/map/{test-log-2025-05-26.log → test-log-2025-07-24.log} +3 -4
- package/coverage/tmp/coverage-122123-1739872365211-0.json +0 -1
- package/coverage/tmp/coverage-122135-1739872365196-0.json +0 -1
- package/coverage/tmp/coverage-122146-1739872365184-0.json +0 -1
- package/coverage/tmp/coverage-122158-1739872365169-0.json +0 -1
- package/coverage/tmp/coverage-122165-1739872365141-0.json +0 -1
- package/test/api/core/test-log-2025-05-26.log +0 -22
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">50.29% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>256/509</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">64.7% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>22/34</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">28.3% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>15/53</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">50.29% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>256/509</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line medium'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -572,7 +572,24 @@
|
|
|
572
572
|
<a name='L507'></a><a href='#L507'>507</a>
|
|
573
573
|
<a name='L508'></a><a href='#L508'>508</a>
|
|
574
574
|
<a name='L509'></a><a href='#L509'>509</a>
|
|
575
|
-
<a name='L510'></a><a href='#L510'>510</a></td><td class="line-coverage quiet"><span class="cline-any cline-
|
|
575
|
+
<a name='L510'></a><a href='#L510'>510</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
576
|
+
<span class="cline-any cline-yes">1x</span>
|
|
577
|
+
<span class="cline-any cline-yes">1x</span>
|
|
578
|
+
<span class="cline-any cline-yes">1x</span>
|
|
579
|
+
<span class="cline-any cline-yes">1x</span>
|
|
580
|
+
<span class="cline-any cline-yes">1x</span>
|
|
581
|
+
<span class="cline-any cline-yes">1x</span>
|
|
582
|
+
<span class="cline-any cline-yes">1x</span>
|
|
583
|
+
<span class="cline-any cline-yes">1x</span>
|
|
584
|
+
<span class="cline-any cline-yes">1x</span>
|
|
585
|
+
<span class="cline-any cline-yes">1x</span>
|
|
586
|
+
<span class="cline-any cline-yes">1x</span>
|
|
587
|
+
<span class="cline-any cline-yes">1x</span>
|
|
588
|
+
<span class="cline-any cline-yes">1x</span>
|
|
589
|
+
<span class="cline-any cline-yes">1x</span>
|
|
590
|
+
<span class="cline-any cline-yes">1x</span>
|
|
591
|
+
<span class="cline-any cline-yes">1x</span>
|
|
592
|
+
<span class="cline-any cline-yes">1x</span>
|
|
576
593
|
<span class="cline-any cline-no"> </span>
|
|
577
594
|
<span class="cline-any cline-no"> </span>
|
|
578
595
|
<span class="cline-any cline-no"> </span>
|
|
@@ -610,12 +627,42 @@
|
|
|
610
627
|
<span class="cline-any cline-no"> </span>
|
|
611
628
|
<span class="cline-any cline-no"> </span>
|
|
612
629
|
<span class="cline-any cline-no"> </span>
|
|
630
|
+
<span class="cline-any cline-yes">1x</span>
|
|
631
|
+
<span class="cline-any cline-yes">1x</span>
|
|
632
|
+
<span class="cline-any cline-yes">1x</span>
|
|
633
|
+
<span class="cline-any cline-yes">1x</span>
|
|
634
|
+
<span class="cline-any cline-yes">1x</span>
|
|
635
|
+
<span class="cline-any cline-yes">1x</span>
|
|
636
|
+
<span class="cline-any cline-yes">6x</span>
|
|
637
|
+
<span class="cline-any cline-yes">6x</span>
|
|
638
|
+
<span class="cline-any cline-yes">6x</span>
|
|
639
|
+
<span class="cline-any cline-yes">6x</span>
|
|
640
|
+
<span class="cline-any cline-yes">6x</span>
|
|
641
|
+
<span class="cline-any cline-yes">6x</span>
|
|
642
|
+
<span class="cline-any cline-yes">6x</span>
|
|
613
643
|
<span class="cline-any cline-no"> </span>
|
|
614
644
|
<span class="cline-any cline-no"> </span>
|
|
645
|
+
<span class="cline-any cline-yes">6x</span>
|
|
615
646
|
<span class="cline-any cline-no"> </span>
|
|
616
647
|
<span class="cline-any cline-no"> </span>
|
|
648
|
+
<span class="cline-any cline-yes">6x</span>
|
|
617
649
|
<span class="cline-any cline-no"> </span>
|
|
618
650
|
<span class="cline-any cline-no"> </span>
|
|
651
|
+
<span class="cline-any cline-yes">6x</span>
|
|
652
|
+
<span class="cline-any cline-yes">1x</span>
|
|
653
|
+
<span class="cline-any cline-yes">1x</span>
|
|
654
|
+
<span class="cline-any cline-yes">1x</span>
|
|
655
|
+
<span class="cline-any cline-yes">1x</span>
|
|
656
|
+
<span class="cline-any cline-yes">1x</span>
|
|
657
|
+
<span class="cline-any cline-yes">1x</span>
|
|
658
|
+
<span class="cline-any cline-yes">3x</span>
|
|
659
|
+
<span class="cline-any cline-yes">3x</span>
|
|
660
|
+
<span class="cline-any cline-yes">1x</span>
|
|
661
|
+
<span class="cline-any cline-yes">1x</span>
|
|
662
|
+
<span class="cline-any cline-yes">9x</span>
|
|
663
|
+
<span class="cline-any cline-yes">9x</span>
|
|
664
|
+
<span class="cline-any cline-yes">1x</span>
|
|
665
|
+
<span class="cline-any cline-yes">1x</span>
|
|
619
666
|
<span class="cline-any cline-no"> </span>
|
|
620
667
|
<span class="cline-any cline-no"> </span>
|
|
621
668
|
<span class="cline-any cline-no"> </span>
|
|
@@ -625,6 +672,8 @@
|
|
|
625
672
|
<span class="cline-any cline-no"> </span>
|
|
626
673
|
<span class="cline-any cline-no"> </span>
|
|
627
674
|
<span class="cline-any cline-no"> </span>
|
|
675
|
+
<span class="cline-any cline-yes">1x</span>
|
|
676
|
+
<span class="cline-any cline-yes">1x</span>
|
|
628
677
|
<span class="cline-any cline-no"> </span>
|
|
629
678
|
<span class="cline-any cline-no"> </span>
|
|
630
679
|
<span class="cline-any cline-no"> </span>
|
|
@@ -654,12 +703,20 @@
|
|
|
654
703
|
<span class="cline-any cline-no"> </span>
|
|
655
704
|
<span class="cline-any cline-no"> </span>
|
|
656
705
|
<span class="cline-any cline-no"> </span>
|
|
706
|
+
<span class="cline-any cline-yes">1x</span>
|
|
707
|
+
<span class="cline-any cline-yes">1x</span>
|
|
657
708
|
<span class="cline-any cline-no"> </span>
|
|
658
709
|
<span class="cline-any cline-no"> </span>
|
|
710
|
+
<span class="cline-any cline-yes">1x</span>
|
|
711
|
+
<span class="cline-any cline-yes">1x</span>
|
|
659
712
|
<span class="cline-any cline-no"> </span>
|
|
660
713
|
<span class="cline-any cline-no"> </span>
|
|
714
|
+
<span class="cline-any cline-yes">1x</span>
|
|
715
|
+
<span class="cline-any cline-yes">1x</span>
|
|
661
716
|
<span class="cline-any cline-no"> </span>
|
|
662
717
|
<span class="cline-any cline-no"> </span>
|
|
718
|
+
<span class="cline-any cline-yes">1x</span>
|
|
719
|
+
<span class="cline-any cline-yes">1x</span>
|
|
663
720
|
<span class="cline-any cline-no"> </span>
|
|
664
721
|
<span class="cline-any cline-no"> </span>
|
|
665
722
|
<span class="cline-any cline-no"> </span>
|
|
@@ -667,6 +724,8 @@
|
|
|
667
724
|
<span class="cline-any cline-no"> </span>
|
|
668
725
|
<span class="cline-any cline-no"> </span>
|
|
669
726
|
<span class="cline-any cline-no"> </span>
|
|
727
|
+
<span class="cline-any cline-yes">1x</span>
|
|
728
|
+
<span class="cline-any cline-yes">1x</span>
|
|
670
729
|
<span class="cline-any cline-no"> </span>
|
|
671
730
|
<span class="cline-any cline-no"> </span>
|
|
672
731
|
<span class="cline-any cline-no"> </span>
|
|
@@ -693,6 +752,8 @@
|
|
|
693
752
|
<span class="cline-any cline-no"> </span>
|
|
694
753
|
<span class="cline-any cline-no"> </span>
|
|
695
754
|
<span class="cline-any cline-no"> </span>
|
|
755
|
+
<span class="cline-any cline-yes">1x</span>
|
|
756
|
+
<span class="cline-any cline-yes">1x</span>
|
|
696
757
|
<span class="cline-any cline-no"> </span>
|
|
697
758
|
<span class="cline-any cline-no"> </span>
|
|
698
759
|
<span class="cline-any cline-no"> </span>
|
|
@@ -718,6 +779,8 @@
|
|
|
718
779
|
<span class="cline-any cline-no"> </span>
|
|
719
780
|
<span class="cline-any cline-no"> </span>
|
|
720
781
|
<span class="cline-any cline-no"> </span>
|
|
782
|
+
<span class="cline-any cline-yes">1x</span>
|
|
783
|
+
<span class="cline-any cline-yes">1x</span>
|
|
721
784
|
<span class="cline-any cline-no"> </span>
|
|
722
785
|
<span class="cline-any cline-no"> </span>
|
|
723
786
|
<span class="cline-any cline-no"> </span>
|
|
@@ -732,6 +795,8 @@
|
|
|
732
795
|
<span class="cline-any cline-no"> </span>
|
|
733
796
|
<span class="cline-any cline-no"> </span>
|
|
734
797
|
<span class="cline-any cline-no"> </span>
|
|
798
|
+
<span class="cline-any cline-yes">1x</span>
|
|
799
|
+
<span class="cline-any cline-yes">1x</span>
|
|
735
800
|
<span class="cline-any cline-no"> </span>
|
|
736
801
|
<span class="cline-any cline-no"> </span>
|
|
737
802
|
<span class="cline-any cline-no"> </span>
|
|
@@ -746,6 +811,8 @@
|
|
|
746
811
|
<span class="cline-any cline-no"> </span>
|
|
747
812
|
<span class="cline-any cline-no"> </span>
|
|
748
813
|
<span class="cline-any cline-no"> </span>
|
|
814
|
+
<span class="cline-any cline-yes">1x</span>
|
|
815
|
+
<span class="cline-any cline-yes">1x</span>
|
|
749
816
|
<span class="cline-any cline-no"> </span>
|
|
750
817
|
<span class="cline-any cline-no"> </span>
|
|
751
818
|
<span class="cline-any cline-no"> </span>
|
|
@@ -765,12 +832,30 @@
|
|
|
765
832
|
<span class="cline-any cline-no"> </span>
|
|
766
833
|
<span class="cline-any cline-no"> </span>
|
|
767
834
|
<span class="cline-any cline-no"> </span>
|
|
835
|
+
<span class="cline-any cline-yes">1x</span>
|
|
836
|
+
<span class="cline-any cline-yes">1x</span>
|
|
837
|
+
<span class="cline-any cline-yes">1x</span>
|
|
838
|
+
<span class="cline-any cline-yes">1x</span>
|
|
839
|
+
<span class="cline-any cline-yes">4x</span>
|
|
840
|
+
<span class="cline-any cline-yes">4x</span>
|
|
841
|
+
<span class="cline-any cline-yes">4x</span>
|
|
842
|
+
<span class="cline-any cline-yes">1x</span>
|
|
843
|
+
<span class="cline-any cline-yes">1x</span>
|
|
768
844
|
<span class="cline-any cline-no"> </span>
|
|
769
845
|
<span class="cline-any cline-no"> </span>
|
|
846
|
+
<span class="cline-any cline-yes">1x</span>
|
|
847
|
+
<span class="cline-any cline-yes">1x</span>
|
|
770
848
|
<span class="cline-any cline-no"> </span>
|
|
771
849
|
<span class="cline-any cline-no"> </span>
|
|
850
|
+
<span class="cline-any cline-yes">1x</span>
|
|
851
|
+
<span class="cline-any cline-yes">1x</span>
|
|
772
852
|
<span class="cline-any cline-no"> </span>
|
|
773
853
|
<span class="cline-any cline-no"> </span>
|
|
854
|
+
<span class="cline-any cline-yes">1x</span>
|
|
855
|
+
<span class="cline-any cline-yes">1x</span>
|
|
856
|
+
<span class="cline-any cline-yes">1x</span>
|
|
857
|
+
<span class="cline-any cline-yes">1x</span>
|
|
858
|
+
<span class="cline-any cline-yes">1x</span>
|
|
774
859
|
<span class="cline-any cline-no"> </span>
|
|
775
860
|
<span class="cline-any cline-no"> </span>
|
|
776
861
|
<span class="cline-any cline-no"> </span>
|
|
@@ -781,324 +866,239 @@
|
|
|
781
866
|
<span class="cline-any cline-no"> </span>
|
|
782
867
|
<span class="cline-any cline-no"> </span>
|
|
783
868
|
<span class="cline-any cline-no"> </span>
|
|
869
|
+
<span class="cline-any cline-yes">1x</span>
|
|
870
|
+
<span class="cline-any cline-yes">1x</span>
|
|
784
871
|
<span class="cline-any cline-no"> </span>
|
|
785
872
|
<span class="cline-any cline-no"> </span>
|
|
873
|
+
<span class="cline-any cline-yes">1x</span>
|
|
874
|
+
<span class="cline-any cline-yes">1x</span>
|
|
786
875
|
<span class="cline-any cline-no"> </span>
|
|
787
876
|
<span class="cline-any cline-no"> </span>
|
|
877
|
+
<span class="cline-any cline-yes">1x</span>
|
|
878
|
+
<span class="cline-any cline-yes">1x</span>
|
|
788
879
|
<span class="cline-any cline-no"> </span>
|
|
789
880
|
<span class="cline-any cline-no"> </span>
|
|
790
881
|
<span class="cline-any cline-no"> </span>
|
|
791
882
|
<span class="cline-any cline-no"> </span>
|
|
883
|
+
<span class="cline-any cline-yes">1x</span>
|
|
884
|
+
<span class="cline-any cline-yes">1x</span>
|
|
792
885
|
<span class="cline-any cline-no"> </span>
|
|
793
886
|
<span class="cline-any cline-no"> </span>
|
|
794
887
|
<span class="cline-any cline-no"> </span>
|
|
888
|
+
<span class="cline-any cline-yes">1x</span>
|
|
889
|
+
<span class="cline-any cline-yes">1x</span>
|
|
890
|
+
<span class="cline-any cline-yes">4x</span>
|
|
891
|
+
<span class="cline-any cline-yes">4x</span>
|
|
892
|
+
<span class="cline-any cline-yes">4x</span>
|
|
795
893
|
<span class="cline-any cline-no"> </span>
|
|
796
894
|
<span class="cline-any cline-no"> </span>
|
|
895
|
+
<span class="cline-any cline-yes">4x</span>
|
|
896
|
+
<span class="cline-any cline-yes">1x</span>
|
|
897
|
+
<span class="cline-any cline-yes">1x</span>
|
|
898
|
+
<span class="cline-any cline-yes">4x</span>
|
|
899
|
+
<span class="cline-any cline-yes">4x</span>
|
|
900
|
+
<span class="cline-any cline-yes">1x</span>
|
|
901
|
+
<span class="cline-any cline-yes">1x</span>
|
|
902
|
+
<span class="cline-any cline-yes">1x</span>
|
|
903
|
+
<span class="cline-any cline-yes">4x</span>
|
|
904
|
+
<span class="cline-any cline-yes">4x</span>
|
|
797
905
|
<span class="cline-any cline-no"> </span>
|
|
906
|
+
<span class="cline-any cline-yes">4x</span>
|
|
907
|
+
<span class="cline-any cline-yes">1x</span>
|
|
908
|
+
<span class="cline-any cline-yes">1x</span>
|
|
909
|
+
<span class="cline-any cline-yes">4x</span>
|
|
910
|
+
<span class="cline-any cline-yes">4x</span>
|
|
911
|
+
<span class="cline-any cline-yes">4x</span>
|
|
912
|
+
<span class="cline-any cline-yes">4x</span>
|
|
798
913
|
<span class="cline-any cline-no"> </span>
|
|
799
|
-
<span class="cline-any cline-
|
|
800
|
-
<span class="cline-any cline-
|
|
801
|
-
<span class="cline-any cline-
|
|
802
|
-
<span class="cline-any cline-
|
|
803
|
-
<span class="cline-any cline-
|
|
804
|
-
<span class="cline-any cline-
|
|
805
|
-
<span class="cline-any cline-
|
|
806
|
-
<span class="cline-any cline-
|
|
807
|
-
<span class="cline-any cline-
|
|
808
|
-
<span class="cline-any cline-
|
|
809
|
-
<span class="cline-any cline-
|
|
810
|
-
<span class="cline-any cline-
|
|
811
|
-
<span class="cline-any cline-
|
|
812
|
-
<span class="cline-any cline-
|
|
813
|
-
<span class="cline-any cline-
|
|
814
|
-
<span class="cline-any cline-
|
|
815
|
-
<span class="cline-any cline-
|
|
816
|
-
<span class="cline-any cline-
|
|
817
|
-
<span class="cline-any cline-
|
|
818
|
-
<span class="cline-any cline-
|
|
819
|
-
<span class="cline-any cline-
|
|
820
|
-
<span class="cline-any cline-
|
|
821
|
-
<span class="cline-any cline-
|
|
822
|
-
<span class="cline-any cline-
|
|
823
|
-
<span class="cline-any cline-
|
|
824
|
-
<span class="cline-any cline-
|
|
825
|
-
<span class="cline-any cline-
|
|
826
|
-
<span class="cline-any cline-
|
|
827
|
-
<span class="cline-any cline-
|
|
828
|
-
<span class="cline-any cline-
|
|
829
|
-
<span class="cline-any cline-
|
|
830
|
-
<span class="cline-any cline-
|
|
831
|
-
<span class="cline-any cline-
|
|
832
|
-
<span class="cline-any cline-no"> </span>
|
|
833
|
-
<span class="cline-any cline-no"> </span>
|
|
834
|
-
<span class="cline-any cline-no"> </span>
|
|
835
|
-
<span class="cline-any cline-no"> </span>
|
|
836
|
-
<span class="cline-any cline-
|
|
837
|
-
<span class="cline-any cline-
|
|
838
|
-
<span class="cline-any cline-
|
|
839
|
-
<span class="cline-any cline-
|
|
840
|
-
<span class="cline-any cline-
|
|
841
|
-
<span class="cline-any cline-
|
|
842
|
-
<span class="cline-any cline-
|
|
843
|
-
<span class="cline-any cline-
|
|
844
|
-
<span class="cline-any cline-
|
|
845
|
-
<span class="cline-any cline-
|
|
846
|
-
<span class="cline-any cline-
|
|
847
|
-
<span class="cline-any cline-
|
|
848
|
-
<span class="cline-any cline-
|
|
849
|
-
<span class="cline-any cline-
|
|
850
|
-
<span class="cline-any cline-
|
|
851
|
-
<span class="cline-any cline-
|
|
852
|
-
<span class="cline-any cline-
|
|
853
|
-
<span class="cline-any cline-
|
|
854
|
-
<span class="cline-any cline-
|
|
855
|
-
<span class="cline-any cline-
|
|
856
|
-
<span class="cline-any cline-
|
|
857
|
-
<span class="cline-any cline-
|
|
858
|
-
<span class="cline-any cline-
|
|
859
|
-
<span class="cline-any cline-
|
|
860
|
-
<span class="cline-any cline-
|
|
861
|
-
<span class="cline-any cline-
|
|
862
|
-
<span class="cline-any cline-
|
|
863
|
-
<span class="cline-any cline-
|
|
864
|
-
<span class="cline-any cline-
|
|
865
|
-
<span class="cline-any cline-
|
|
866
|
-
<span class="cline-any cline-
|
|
867
|
-
<span class="cline-any cline-
|
|
868
|
-
<span class="cline-any cline-
|
|
869
|
-
<span class="cline-any cline-
|
|
870
|
-
<span class="cline-any cline-
|
|
871
|
-
<span class="cline-any cline-
|
|
872
|
-
<span class="cline-any cline-
|
|
873
|
-
<span class="cline-any cline-no"> </span>
|
|
874
|
-
<span class="cline-any cline-no"> </span>
|
|
875
|
-
<span class="cline-any cline-no"> </span>
|
|
876
|
-
<span class="cline-any cline-no"> </span>
|
|
877
|
-
<span class="cline-any cline-no"> </span>
|
|
878
|
-
<span class="cline-any cline-no"> </span>
|
|
879
|
-
<span class="cline-any cline-no"> </span>
|
|
880
|
-
<span class="cline-any cline-
|
|
881
|
-
<span class="cline-any cline-
|
|
882
|
-
<span class="cline-any cline-
|
|
883
|
-
<span class="cline-any cline-no"> </span>
|
|
884
|
-
<span class="cline-any cline-no"> </span>
|
|
885
|
-
<span class="cline-any cline-
|
|
886
|
-
<span class="cline-any cline-
|
|
887
|
-
<span class="cline-any cline-
|
|
888
|
-
<span class="cline-any cline-
|
|
889
|
-
<span class="cline-any cline-
|
|
890
|
-
<span class="cline-any cline-
|
|
891
|
-
<span class="cline-any cline-
|
|
892
|
-
<span class="cline-any cline-
|
|
893
|
-
<span class="cline-any cline-
|
|
894
|
-
<span class="cline-any cline-
|
|
895
|
-
<span class="cline-any cline-
|
|
896
|
-
<span class="cline-any cline-
|
|
897
|
-
<span class="cline-any cline-
|
|
898
|
-
<span class="cline-any cline-
|
|
899
|
-
<span class="cline-any cline-
|
|
900
|
-
<span class="cline-any cline-
|
|
901
|
-
<span class="cline-any cline-
|
|
902
|
-
<span class="cline-any cline-
|
|
903
|
-
<span class="cline-any cline-
|
|
904
|
-
<span class="cline-any cline-no"> </span>
|
|
905
|
-
<span class="cline-any cline-no"> </span>
|
|
906
|
-
<span class="cline-any cline-
|
|
907
|
-
<span class="cline-any cline-
|
|
908
|
-
<span class="cline-any cline-
|
|
909
|
-
<span class="cline-any cline-
|
|
910
|
-
<span class="cline-any cline-
|
|
911
|
-
<span class="cline-any cline-
|
|
912
|
-
<span class="cline-any cline-
|
|
913
|
-
<span class="cline-any cline-
|
|
914
|
-
<span class="cline-any cline-
|
|
915
|
-
<span class="cline-any cline-
|
|
916
|
-
<span class="cline-any cline-
|
|
917
|
-
<span class="cline-any cline-
|
|
918
|
-
<span class="cline-any cline-
|
|
919
|
-
<span class="cline-any cline-
|
|
920
|
-
<span class="cline-any cline-
|
|
921
|
-
<span class="cline-any cline-
|
|
922
|
-
<span class="cline-any cline-
|
|
923
|
-
<span class="cline-any cline-
|
|
924
|
-
<span class="cline-any cline-
|
|
925
|
-
<span class="cline-any cline-
|
|
926
|
-
<span class="cline-any cline-
|
|
927
|
-
<span class="cline-any cline-
|
|
928
|
-
<span class="cline-any cline-
|
|
929
|
-
<span class="cline-any cline-
|
|
930
|
-
<span class="cline-any cline-
|
|
931
|
-
<span class="cline-any cline-
|
|
932
|
-
<span class="cline-any cline-
|
|
933
|
-
<span class="cline-any cline-
|
|
934
|
-
<span class="cline-any cline-
|
|
935
|
-
<span class="cline-any cline-
|
|
936
|
-
<span class="cline-any cline-
|
|
937
|
-
<span class="cline-any cline-
|
|
938
|
-
<span class="cline-any cline-
|
|
939
|
-
<span class="cline-any cline-
|
|
940
|
-
<span class="cline-any cline-
|
|
941
|
-
<span class="cline-any cline-
|
|
942
|
-
<span class="cline-any cline-
|
|
943
|
-
<span class="cline-any cline-
|
|
944
|
-
<span class="cline-any cline-no"> </span>
|
|
945
|
-
<span class="cline-any cline-no"> </span>
|
|
946
|
-
<span class="cline-any cline-
|
|
947
|
-
<span class="cline-any cline-
|
|
948
|
-
<span class="cline-any cline-
|
|
949
|
-
<span class="cline-any cline-
|
|
950
|
-
<span class="cline-any cline-
|
|
951
|
-
<span class="cline-any cline-
|
|
952
|
-
<span class="cline-any cline-
|
|
953
|
-
<span class="cline-any cline-no"> </span>
|
|
954
|
-
<span class="cline-any cline-no"> </span>
|
|
955
|
-
<span class="cline-any cline-no"> </span>
|
|
956
|
-
<span class="cline-any cline-no"> </span>
|
|
957
|
-
<span class="cline-any cline-no"> </span>
|
|
958
|
-
<span class="cline-any cline-no"> </span>
|
|
959
|
-
<span class="cline-any cline-no"> </span>
|
|
960
|
-
<span class="cline-any cline-no"> </span>
|
|
961
|
-
<span class="cline-any cline-no"> </span>
|
|
962
|
-
<span class="cline-any cline-no"> </span>
|
|
963
|
-
<span class="cline-any cline-no"> </span>
|
|
964
|
-
<span class="cline-any cline-
|
|
965
|
-
<span class="cline-any cline-
|
|
966
|
-
<span class="cline-any cline-no"> </span>
|
|
967
|
-
<span class="cline-any cline-no"> </span>
|
|
968
|
-
<span class="cline-any cline-
|
|
969
|
-
<span class="cline-any cline-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
<span class="
|
|
987
|
-
<span class="cline-any cline-no"> </span>
|
|
988
|
-
<span class="cline-any cline-no"> </span>
|
|
989
|
-
<span class="cline-any cline-no"> </span>
|
|
990
|
-
<span class="cline-any cline-no"> </span>
|
|
991
|
-
<span class="cline-any cline-no"> </span>
|
|
992
|
-
<span class="cline-any cline-no"> </span>
|
|
993
|
-
<span class="cline-any cline-no"> </span>
|
|
994
|
-
<span class="cline-any cline-no"> </span>
|
|
995
|
-
<span class="cline-any cline-no"> </span>
|
|
996
|
-
<span class="cline-any cline-no"> </span>
|
|
997
|
-
<span class="cline-any cline-no"> </span>
|
|
998
|
-
<span class="cline-any cline-no"> </span>
|
|
999
|
-
<span class="cline-any cline-no"> </span>
|
|
1000
|
-
<span class="cline-any cline-no"> </span>
|
|
1001
|
-
<span class="cline-any cline-no"> </span>
|
|
1002
|
-
<span class="cline-any cline-no"> </span>
|
|
1003
|
-
<span class="cline-any cline-no"> </span>
|
|
1004
|
-
<span class="cline-any cline-no"> </span>
|
|
1005
|
-
<span class="cline-any cline-no"> </span>
|
|
1006
|
-
<span class="cline-any cline-no"> </span>
|
|
1007
|
-
<span class="cline-any cline-no"> </span>
|
|
1008
|
-
<span class="cline-any cline-no"> </span>
|
|
1009
|
-
<span class="cline-any cline-no"> </span>
|
|
1010
|
-
<span class="cline-any cline-no"> </span>
|
|
1011
|
-
<span class="cline-any cline-no"> </span>
|
|
1012
|
-
<span class="cline-any cline-no"> </span>
|
|
1013
|
-
<span class="cline-any cline-no"> </span>
|
|
1014
|
-
<span class="cline-any cline-no"> </span>
|
|
1015
|
-
<span class="cline-any cline-no"> </span>
|
|
1016
|
-
<span class="cline-any cline-no"> </span>
|
|
1017
|
-
<span class="cline-any cline-no"> </span>
|
|
1018
|
-
<span class="cline-any cline-no"> </span>
|
|
1019
|
-
<span class="cline-any cline-no"> </span>
|
|
1020
|
-
<span class="cline-any cline-no"> </span>
|
|
1021
|
-
<span class="cline-any cline-no"> </span>
|
|
1022
|
-
<span class="cline-any cline-no"> </span>
|
|
1023
|
-
<span class="cline-any cline-no"> </span>
|
|
1024
|
-
<span class="cline-any cline-no"> </span>
|
|
1025
|
-
<span class="cline-any cline-no"> </span>
|
|
1026
|
-
<span class="cline-any cline-no"> </span>
|
|
1027
|
-
<span class="cline-any cline-no"> </span>
|
|
1028
|
-
<span class="cline-any cline-no"> </span>
|
|
1029
|
-
<span class="cline-any cline-no"> </span>
|
|
1030
|
-
<span class="cline-any cline-no"> </span>
|
|
1031
|
-
<span class="cline-any cline-no"> </span>
|
|
1032
|
-
<span class="cline-any cline-no"> </span>
|
|
1033
|
-
<span class="cline-any cline-no"> </span>
|
|
1034
|
-
<span class="cline-any cline-no"> </span>
|
|
1035
|
-
<span class="cline-any cline-no"> </span>
|
|
1036
|
-
<span class="cline-any cline-no"> </span>
|
|
1037
|
-
<span class="cline-any cline-no"> </span>
|
|
1038
|
-
<span class="cline-any cline-no"> </span>
|
|
1039
|
-
<span class="cline-any cline-no"> </span>
|
|
1040
|
-
<span class="cline-any cline-no"> </span>
|
|
1041
|
-
<span class="cline-any cline-no"> </span>
|
|
1042
|
-
<span class="cline-any cline-no"> </span>
|
|
1043
|
-
<span class="cline-any cline-no"> </span>
|
|
1044
|
-
<span class="cline-any cline-no"> </span>
|
|
1045
|
-
<span class="cline-any cline-no"> </span>
|
|
1046
|
-
<span class="cline-any cline-no"> </span>
|
|
1047
|
-
<span class="cline-any cline-no"> </span>
|
|
1048
|
-
<span class="cline-any cline-no"> </span>
|
|
1049
|
-
<span class="cline-any cline-no"> </span>
|
|
1050
|
-
<span class="cline-any cline-no"> </span>
|
|
1051
|
-
<span class="cline-any cline-no"> </span>
|
|
1052
|
-
<span class="cline-any cline-no"> </span>
|
|
1053
|
-
<span class="cline-any cline-no"> </span>
|
|
1054
|
-
<span class="cline-any cline-no"> </span>
|
|
1055
|
-
<span class="cline-any cline-no"> </span>
|
|
1056
|
-
<span class="cline-any cline-no"> </span>
|
|
1057
|
-
<span class="cline-any cline-no"> </span>
|
|
1058
|
-
<span class="cline-any cline-no"> </span>
|
|
1059
|
-
<span class="cline-any cline-no"> </span>
|
|
1060
|
-
<span class="cline-any cline-no"> </span>
|
|
1061
|
-
<span class="cline-any cline-no"> </span>
|
|
1062
|
-
<span class="cline-any cline-no"> </span>
|
|
1063
|
-
<span class="cline-any cline-no"> </span>
|
|
1064
|
-
<span class="cline-any cline-no"> </span>
|
|
1065
|
-
<span class="cline-any cline-no"> </span>
|
|
1066
|
-
<span class="cline-any cline-no"> </span>
|
|
1067
|
-
<span class="cline-any cline-no"> </span>
|
|
1068
|
-
<span class="cline-any cline-no"> </span>
|
|
1069
|
-
<span class="cline-any cline-no"> </span>
|
|
1070
|
-
<span class="cline-any cline-no"> </span>
|
|
1071
|
-
<span class="cline-any cline-no"> </span>
|
|
1072
|
-
<span class="cline-any cline-no"> </span>
|
|
1073
|
-
<span class="cline-any cline-no"> </span>
|
|
1074
|
-
<span class="cline-any cline-no"> </span>
|
|
1075
|
-
<span class="cline-any cline-no"> </span>
|
|
1076
|
-
<span class="cline-any cline-no"> </span>
|
|
1077
|
-
<span class="cline-any cline-no"> </span>
|
|
1078
|
-
<span class="cline-any cline-no"> </span>
|
|
1079
|
-
<span class="cline-any cline-no"> </span>
|
|
1080
|
-
<span class="cline-any cline-no"> </span>
|
|
1081
|
-
<span class="cline-any cline-no"> </span>
|
|
1082
|
-
<span class="cline-any cline-no"> </span>
|
|
1083
|
-
<span class="cline-any cline-no"> </span>
|
|
1084
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" >import _ from 'lodash'</span></span></span>
|
|
1085
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1086
|
-
<span class="cstat-no" title="statement not covered" >export const SortOrder = {</span>
|
|
1087
|
-
<span class="cstat-no" title="statement not covered" > ASCENDING: 0,</span>
|
|
1088
|
-
<span class="cstat-no" title="statement not covered" > DESCENDING: 1</span>
|
|
1089
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
1090
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1091
|
-
<span class="cstat-no" title="statement not covered" >export const gridSourceFactories = { }</span>
|
|
1092
|
-
<span class="cstat-no" title="statement not covered" >export const unitConverters = { }</span>
|
|
1093
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1094
|
-
<span class="cstat-no" title="statement not covered" >const toHalf = (function () {</span>
|
|
1095
|
-
<span class="cstat-no" title="statement not covered" > const floatView = new Float32Array(1)</span>
|
|
1096
|
-
<span class="cstat-no" title="statement not covered" > const int32View = new Int32Array(floatView.buffer)</span>
|
|
1097
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1098
|
-
<span class="cstat-no" title="statement not covered" > /* This method is faster than the OpenEXR implementation (very often</span>
|
|
1099
|
-
<span class="cstat-no" title="statement not covered" > * used, eg. in Ogre), with the additional benefit of rounding, inspired</span>
|
|
1100
|
-
<span class="cstat-no" title="statement not covered" > * by James Tursa?s half-precision code. */</span>
|
|
1101
|
-
<span class="cstat-no" title="statement not covered" > return function toHalf (val) {</span>
|
|
914
|
+
<span class="cline-any cline-yes">4x</span>
|
|
915
|
+
<span class="cline-any cline-yes">1x</span>
|
|
916
|
+
<span class="cline-any cline-yes">1x</span>
|
|
917
|
+
<span class="cline-any cline-yes">1x</span>
|
|
918
|
+
<span class="cline-any cline-yes">1x</span>
|
|
919
|
+
<span class="cline-any cline-yes">1x</span>
|
|
920
|
+
<span class="cline-any cline-yes">1x</span>
|
|
921
|
+
<span class="cline-any cline-yes">1x</span>
|
|
922
|
+
<span class="cline-any cline-yes">1x</span>
|
|
923
|
+
<span class="cline-any cline-yes">1x</span>
|
|
924
|
+
<span class="cline-any cline-yes">1x</span>
|
|
925
|
+
<span class="cline-any cline-yes">1x</span>
|
|
926
|
+
<span class="cline-any cline-yes">1x</span>
|
|
927
|
+
<span class="cline-any cline-yes">1x</span>
|
|
928
|
+
<span class="cline-any cline-yes">1x</span>
|
|
929
|
+
<span class="cline-any cline-yes">1x</span>
|
|
930
|
+
<span class="cline-any cline-yes">1x</span>
|
|
931
|
+
<span class="cline-any cline-yes">1x</span>
|
|
932
|
+
<span class="cline-any cline-yes">1x</span>
|
|
933
|
+
<span class="cline-any cline-yes">1x</span>
|
|
934
|
+
<span class="cline-any cline-yes">1x</span>
|
|
935
|
+
<span class="cline-any cline-yes">1x</span>
|
|
936
|
+
<span class="cline-any cline-yes">1x</span>
|
|
937
|
+
<span class="cline-any cline-yes">1x</span>
|
|
938
|
+
<span class="cline-any cline-yes">1x</span>
|
|
939
|
+
<span class="cline-any cline-yes">4x</span>
|
|
940
|
+
<span class="cline-any cline-yes">4x</span>
|
|
941
|
+
<span class="cline-any cline-yes">4x</span>
|
|
942
|
+
<span class="cline-any cline-yes">4x</span>
|
|
943
|
+
<span class="cline-any cline-yes">4x</span>
|
|
944
|
+
<span class="cline-any cline-yes">4x</span>
|
|
945
|
+
<span class="cline-any cline-yes">4x</span>
|
|
946
|
+
<span class="cline-any cline-yes">4x</span>
|
|
947
|
+
<span class="cline-any cline-no"> </span>
|
|
948
|
+
<span class="cline-any cline-no"> </span>
|
|
949
|
+
<span class="cline-any cline-no"> </span>
|
|
950
|
+
<span class="cline-any cline-no"> </span>
|
|
951
|
+
<span class="cline-any cline-yes">4x</span>
|
|
952
|
+
<span class="cline-any cline-yes">1x</span>
|
|
953
|
+
<span class="cline-any cline-yes">1x</span>
|
|
954
|
+
<span class="cline-any cline-yes">2x</span>
|
|
955
|
+
<span class="cline-any cline-yes">2x</span>
|
|
956
|
+
<span class="cline-any cline-yes">1x</span>
|
|
957
|
+
<span class="cline-any cline-yes">1x</span>
|
|
958
|
+
<span class="cline-any cline-yes">1x</span>
|
|
959
|
+
<span class="cline-any cline-yes">1x</span>
|
|
960
|
+
<span class="cline-any cline-yes">1x</span>
|
|
961
|
+
<span class="cline-any cline-yes">1x</span>
|
|
962
|
+
<span class="cline-any cline-yes">1x</span>
|
|
963
|
+
<span class="cline-any cline-yes">1x</span>
|
|
964
|
+
<span class="cline-any cline-yes">1x</span>
|
|
965
|
+
<span class="cline-any cline-yes">1x</span>
|
|
966
|
+
<span class="cline-any cline-yes">1x</span>
|
|
967
|
+
<span class="cline-any cline-yes">1x</span>
|
|
968
|
+
<span class="cline-any cline-yes">1x</span>
|
|
969
|
+
<span class="cline-any cline-yes">1x</span>
|
|
970
|
+
<span class="cline-any cline-yes">1x</span>
|
|
971
|
+
<span class="cline-any cline-yes">1x</span>
|
|
972
|
+
<span class="cline-any cline-yes">1x</span>
|
|
973
|
+
<span class="cline-any cline-yes">1x</span>
|
|
974
|
+
<span class="cline-any cline-yes">1x</span>
|
|
975
|
+
<span class="cline-any cline-yes">1x</span>
|
|
976
|
+
<span class="cline-any cline-yes">1x</span>
|
|
977
|
+
<span class="cline-any cline-yes">1x</span>
|
|
978
|
+
<span class="cline-any cline-yes">1x</span>
|
|
979
|
+
<span class="cline-any cline-yes">1x</span>
|
|
980
|
+
<span class="cline-any cline-yes">1x</span>
|
|
981
|
+
<span class="cline-any cline-yes">1x</span>
|
|
982
|
+
<span class="cline-any cline-yes">1x</span>
|
|
983
|
+
<span class="cline-any cline-yes">1x</span>
|
|
984
|
+
<span class="cline-any cline-yes">1x</span>
|
|
985
|
+
<span class="cline-any cline-yes">1x</span>
|
|
986
|
+
<span class="cline-any cline-yes">1x</span>
|
|
987
|
+
<span class="cline-any cline-yes">1x</span>
|
|
988
|
+
<span class="cline-any cline-no"> </span>
|
|
989
|
+
<span class="cline-any cline-no"> </span>
|
|
990
|
+
<span class="cline-any cline-no"> </span>
|
|
991
|
+
<span class="cline-any cline-no"> </span>
|
|
992
|
+
<span class="cline-any cline-no"> </span>
|
|
993
|
+
<span class="cline-any cline-no"> </span>
|
|
994
|
+
<span class="cline-any cline-no"> </span>
|
|
995
|
+
<span class="cline-any cline-yes">1x</span>
|
|
996
|
+
<span class="cline-any cline-yes">1x</span>
|
|
997
|
+
<span class="cline-any cline-yes">1x</span>
|
|
998
|
+
<span class="cline-any cline-no"> </span>
|
|
999
|
+
<span class="cline-any cline-no"> </span>
|
|
1000
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1001
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1002
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1003
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1004
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1005
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1006
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1007
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1008
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1009
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1010
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1011
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1012
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1013
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1014
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1015
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1016
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1017
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1018
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1019
|
+
<span class="cline-any cline-no"> </span>
|
|
1020
|
+
<span class="cline-any cline-no"> </span>
|
|
1021
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1022
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1023
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1024
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1025
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1026
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1027
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1028
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1029
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1030
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1031
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1032
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1033
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1034
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1035
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1036
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1037
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1038
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1039
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1040
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1041
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1042
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1043
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1044
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1045
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1046
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1047
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1048
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1049
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1050
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1051
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1052
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1053
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1054
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1055
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1056
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1057
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1058
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1059
|
+
<span class="cline-any cline-no"> </span>
|
|
1060
|
+
<span class="cline-any cline-no"> </span>
|
|
1061
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1062
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1063
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1064
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1065
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1066
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1067
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1068
|
+
<span class="cline-any cline-no"> </span>
|
|
1069
|
+
<span class="cline-any cline-no"> </span>
|
|
1070
|
+
<span class="cline-any cline-no"> </span>
|
|
1071
|
+
<span class="cline-any cline-no"> </span>
|
|
1072
|
+
<span class="cline-any cline-no"> </span>
|
|
1073
|
+
<span class="cline-any cline-no"> </span>
|
|
1074
|
+
<span class="cline-any cline-no"> </span>
|
|
1075
|
+
<span class="cline-any cline-no"> </span>
|
|
1076
|
+
<span class="cline-any cline-no"> </span>
|
|
1077
|
+
<span class="cline-any cline-no"> </span>
|
|
1078
|
+
<span class="cline-any cline-no"> </span>
|
|
1079
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1080
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1081
|
+
<span class="cline-any cline-no"> </span>
|
|
1082
|
+
<span class="cline-any cline-no"> </span>
|
|
1083
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1084
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import _ from 'lodash'
|
|
1085
|
+
|
|
1086
|
+
export const SortOrder = {
|
|
1087
|
+
ASCENDING: 0,
|
|
1088
|
+
DESCENDING: 1
|
|
1089
|
+
}
|
|
1090
|
+
|
|
1091
|
+
export const gridSourceFactories = { }
|
|
1092
|
+
export const unitConverters = { }
|
|
1093
|
+
|
|
1094
|
+
const toHalf = (function () {
|
|
1095
|
+
const floatView = new Float32Array(1)
|
|
1096
|
+
const int32View = new Int32Array(floatView.buffer)
|
|
1097
|
+
|
|
1098
|
+
/* This method is faster than the OpenEXR implementation (very often
|
|
1099
|
+
* used, eg. in Ogre), with the additional benefit of rounding, inspired
|
|
1100
|
+
* by James Tursa?s half-precision code. */
|
|
1101
|
+
return <span class="fstat-no" title="function not covered" >function toHalf (val) {</span>
|
|
1102
1102
|
<span class="cstat-no" title="statement not covered" > floatView[0] = val</span>
|
|
1103
1103
|
<span class="cstat-no" title="statement not covered" > const x = int32View[0]</span>
|
|
1104
1104
|
<span class="cstat-no" title="statement not covered" ></span>
|
|
@@ -1136,42 +1136,42 @@
|
|
|
1136
1136
|
<span class="cstat-no" title="statement not covered" > bits += m & 1</span>
|
|
1137
1137
|
<span class="cstat-no" title="statement not covered" > return bits</span>
|
|
1138
1138
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1139
|
+
}())
|
|
1140
|
+
|
|
1141
|
+
// Base 2d grid class
|
|
1142
|
+
// TODO: add interpolate/bilinearInterpolate and other missing stuff from weacast grid
|
|
1143
|
+
export class BaseGrid {
|
|
1144
|
+
constructor (sourceKey, bbox, dimensions, nodata) {
|
|
1145
|
+
this.sourceKey = sourceKey
|
|
1146
|
+
this.bbox = bbox
|
|
1147
|
+
this.dimensions = dimensions
|
|
1148
|
+
this.resolution = [(bbox[2] - bbox[0]) / (dimensions[0] - 1), (bbox[3] - bbox[1]) / (dimensions[1] - 1)]
|
|
1149
|
+
this.nodata = nodata
|
|
1150
|
+
|
|
1151
|
+
if (this.bbox[0] >= this.bbox[2] || this.bbox[1] >= this.bbox[3]) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
1152
1152
|
<span class="cstat-no" title="statement not covered" > throw new Error('Grid bbox seems weird')</span>
|
|
1153
1153
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1154
|
-
|
|
1154
|
+
if (this.dimensions[0] <= 0 || this.dimensions[1] <= 0) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
1155
1155
|
<span class="cstat-no" title="statement not covered" > throw new Error("Grid dimension is < 0, something's wrong")</span>
|
|
1156
1156
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1157
|
-
|
|
1157
|
+
if (this.resolution[0] <= 0.0 || this.resolution[1] <= 0.0) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
1158
1158
|
<span class="cstat-no" title="statement not covered" > throw new Error("Grid resolution is < 0, something's wrong")</span>
|
|
1159
1159
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
<span class="
|
|
1160
|
+
}
|
|
1161
|
+
|
|
1162
|
+
getDimensions () {
|
|
1163
|
+
return this.dimensions
|
|
1164
|
+
}
|
|
1165
|
+
|
|
1166
|
+
getResolution () {
|
|
1167
|
+
return this.resolution
|
|
1168
|
+
}
|
|
1169
|
+
|
|
1170
|
+
getBBox () {
|
|
1171
|
+
return this.bbox
|
|
1172
|
+
}
|
|
1173
|
+
|
|
1174
|
+
<span class="fstat-no" title="function not covered" > hasData () {</span>
|
|
1175
1175
|
<span class="cstat-no" title="statement not covered" > for (let ilat = 0; ilat < this.dimensions[0]; ++ilat) {</span>
|
|
1176
1176
|
<span class="cstat-no" title="statement not covered" > for (let ilon = 0; ilon < this.dimensions[1]; ++ilon) {</span>
|
|
1177
1177
|
<span class="cstat-no" title="statement not covered" > const value = this.getValue(ilat, ilon)</span>
|
|
@@ -1181,8 +1181,8 @@
|
|
|
1181
1181
|
<span class="cstat-no" title="statement not covered" ></span>
|
|
1182
1182
|
<span class="cstat-no" title="statement not covered" > return false</span>
|
|
1183
1183
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1184
|
-
|
|
1185
|
-
<span class="
|
|
1184
|
+
|
|
1185
|
+
<span class="fstat-no" title="function not covered" > getDataBounds () {</span>
|
|
1186
1186
|
<span class="cstat-no" title="statement not covered" > // if already computed, return</span>
|
|
1187
1187
|
<span class="cstat-no" title="statement not covered" > if (this.dataBounds) { return this.dataBounds }</span>
|
|
1188
1188
|
<span class="cstat-no" title="statement not covered" ></span>
|
|
@@ -1212,20 +1212,20 @@
|
|
|
1212
1212
|
<span class="cstat-no" title="statement not covered" > this.dataBounds = [minVal, maxVal]</span>
|
|
1213
1213
|
<span class="cstat-no" title="statement not covered" > return this.dataBounds</span>
|
|
1214
1214
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1215
|
-
|
|
1216
|
-
<span class="
|
|
1215
|
+
|
|
1216
|
+
<span class="fstat-no" title="function not covered" > getLat (ilat) {</span>
|
|
1217
1217
|
<span class="cstat-no" title="statement not covered" > return this.bbox[0] + (ilat * this.resolution[0])</span>
|
|
1218
1218
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1219
|
-
|
|
1220
|
-
<span class="
|
|
1219
|
+
|
|
1220
|
+
<span class="fstat-no" title="function not covered" > getLon (ilon) {</span>
|
|
1221
1221
|
<span class="cstat-no" title="statement not covered" > return this.bbox[1] + (ilon * this.resolution[1])</span>
|
|
1222
1222
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1223
|
-
|
|
1224
|
-
<span class="
|
|
1223
|
+
|
|
1224
|
+
<span class="fstat-no" title="function not covered" > getValue (ilat, ilon) {</span>
|
|
1225
1225
|
<span class="cstat-no" title="statement not covered" > throw new Error('Not implemented')</span>
|
|
1226
1226
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1227
|
-
|
|
1228
|
-
<span class="
|
|
1227
|
+
|
|
1228
|
+
<span class="fstat-no" title="function not covered" > getIndices (lat, lon) {</span>
|
|
1229
1229
|
<span class="cstat-no" title="statement not covered" > if (lat < this.bbox[0] || lat > this.bbox[2] || lon < this.bbox[1] || lon > this.bbox[2]) { return null }</span>
|
|
1230
1230
|
<span class="cstat-no" title="statement not covered" ></span>
|
|
1231
1231
|
<span class="cstat-no" title="statement not covered" > const ilat = (lat - this.bbox[0]) / this.resolution[0]</span>
|
|
@@ -1233,8 +1233,8 @@
|
|
|
1233
1233
|
<span class="cstat-no" title="statement not covered" ></span>
|
|
1234
1234
|
<span class="cstat-no" title="statement not covered" > return [Math.floor(ilat), Math.floor(ilon)]</span>
|
|
1235
1235
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1236
|
-
|
|
1237
|
-
<span class="
|
|
1236
|
+
|
|
1237
|
+
<span class="fstat-no" title="function not covered" > getBestFit (fitBbox) {</span>
|
|
1238
1238
|
<span class="cstat-no" title="statement not covered" > let iminlat = -1</span>
|
|
1239
1239
|
<span class="cstat-no" title="statement not covered" > for (let ilat = 0; ilat < this.dimensions[0] - 1 && iminlat === -1; ++ilat) {</span>
|
|
1240
1240
|
<span class="cstat-no" title="statement not covered" > const lat = this.getLat(ilat + 1)</span>
|
|
@@ -1261,8 +1261,8 @@
|
|
|
1261
1261
|
<span class="cstat-no" title="statement not covered" ></span>
|
|
1262
1262
|
<span class="cstat-no" title="statement not covered" > return [iminlat, iminlon, imaxlat, imaxlon]</span>
|
|
1263
1263
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1264
|
-
|
|
1265
|
-
<span class="
|
|
1264
|
+
|
|
1265
|
+
<span class="fstat-no" title="function not covered" > genCoordsBuffer () {</span>
|
|
1266
1266
|
<span class="cstat-no" title="statement not covered" > const numPoints = this.dimensions[0] * this.dimensions[1]</span>
|
|
1267
1267
|
<span class="cstat-no" title="statement not covered" > const coords = new Uint16Array(2 * numPoints)</span>
|
|
1268
1268
|
<span class="cstat-no" title="statement not covered" ></span>
|
|
@@ -1288,8 +1288,8 @@
|
|
|
1288
1288
|
<span class="cstat-no" title="statement not covered" ></span>
|
|
1289
1289
|
<span class="cstat-no" title="statement not covered" > return { coords, minLat, maxLat, minLon, maxLon, deltaLat, deltaLon }</span>
|
|
1290
1290
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1291
|
-
|
|
1292
|
-
<span class="
|
|
1291
|
+
|
|
1292
|
+
<span class="fstat-no" title="function not covered" > genValuesBuffer () {</span>
|
|
1293
1293
|
<span class="cstat-no" title="statement not covered" > const numPoints = this.dimensions[0] * this.dimensions[1]</span>
|
|
1294
1294
|
<span class="cstat-no" title="statement not covered" > const values = new Float32Array(numPoints)</span>
|
|
1295
1295
|
<span class="cstat-no" title="statement not covered" ></span>
|
|
@@ -1304,8 +1304,8 @@
|
|
|
1304
1304
|
<span class="cstat-no" title="statement not covered" ></span>
|
|
1305
1305
|
<span class="cstat-no" title="statement not covered" > return values</span>
|
|
1306
1306
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1307
|
-
|
|
1308
|
-
<span class="
|
|
1307
|
+
|
|
1308
|
+
<span class="fstat-no" title="function not covered" > genMeshIndexBuffer () {</span>
|
|
1309
1309
|
<span class="cstat-no" title="statement not covered" > let iidx = 0</span>
|
|
1310
1310
|
<span class="cstat-no" title="statement not covered" > const maxIndex = (this.dimensions[0] * this.dimensions[1]) - 1</span>
|
|
1311
1311
|
<span class="cstat-no" title="statement not covered" > const numIndex = (this.dimensions[1] - 1) * (this.dimensions[0] * 2 + 1) - 1</span>
|
|
@@ -1320,8 +1320,8 @@
|
|
|
1320
1320
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1321
1321
|
<span class="cstat-no" title="statement not covered" > return index</span>
|
|
1322
1322
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1323
|
-
|
|
1324
|
-
<span class="
|
|
1323
|
+
|
|
1324
|
+
<span class="fstat-no" title="function not covered" > genWireframeIndexBuffer () {</span>
|
|
1325
1325
|
<span class="cstat-no" title="statement not covered" > const maxIndex = (this.dimensions[0] * this.dimensions[1]) - 1</span>
|
|
1326
1326
|
<span class="cstat-no" title="statement not covered" > const numIndex = (this.dimensions[1] * (this.dimensions[0] + 1)) + (this.dimensions[0] * (this.dimensions[1] + 1) - 1)</span>
|
|
1327
1327
|
<span class="cstat-no" title="statement not covered" > const restart = maxIndex > 65534 ? 4294967295 : 65535</span>
|
|
@@ -1341,30 +1341,30 @@
|
|
|
1341
1341
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1342
1342
|
<span class="cstat-no" title="statement not covered" > return index</span>
|
|
1343
1343
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
<span class="
|
|
1344
|
+
}
|
|
1345
|
+
|
|
1346
|
+
export class GridSource {
|
|
1347
|
+
constructor (options) {
|
|
1348
|
+
this.events = {}
|
|
1349
|
+
this.sourceKey = 0
|
|
1350
|
+
}
|
|
1351
|
+
|
|
1352
|
+
<span class="fstat-no" title="function not covered" > getBBox () {</span>
|
|
1353
1353
|
<span class="cstat-no" title="statement not covered" > return null</span>
|
|
1354
1354
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1355
|
-
|
|
1356
|
-
<span class="
|
|
1355
|
+
|
|
1356
|
+
<span class="fstat-no" title="function not covered" > getDataBounds () {</span>
|
|
1357
1357
|
<span class="cstat-no" title="statement not covered" > throw new Error('Not implemented')</span>
|
|
1358
1358
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1359
|
-
|
|
1360
|
-
<span class="
|
|
1359
|
+
|
|
1360
|
+
<span class="fstat-no" title="function not covered" > supportsNoData () {</span>
|
|
1361
1361
|
<span class="cstat-no" title="statement not covered" > return this.nodata !== undefined</span>
|
|
1362
1362
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
<span class="
|
|
1363
|
+
|
|
1364
|
+
/**
|
|
1365
|
+
* @returns {Number} Returns a new longitude with the value wrapped so it's always in the same range than the given bounding box (e.g. between -180 and +180 degrees).
|
|
1366
|
+
*/
|
|
1367
|
+
<span class="fstat-no" title="function not covered" > wrapLongitude (lon, bounds) {</span>
|
|
1368
1368
|
<span class="cstat-no" title="statement not covered" > // We have longitudes in range [-180, 180] so take care if longitude is given in range [0, 360]</span>
|
|
1369
1369
|
<span class="cstat-no" title="statement not covered" > if (bounds[0] < 0) {</span>
|
|
1370
1370
|
<span class="cstat-no" title="statement not covered" > return lon > 180 ? lon - 360 : lon</span>
|
|
@@ -1375,125 +1375,125 @@
|
|
|
1375
1375
|
<span class="cstat-no" title="statement not covered" > return lon</span>
|
|
1376
1376
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1377
1377
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1378
|
-
|
|
1379
|
-
<span class="
|
|
1378
|
+
|
|
1379
|
+
<span class="fstat-no" title="function not covered" > async setup (config) {</span>
|
|
1380
1380
|
<span class="cstat-no" title="statement not covered" > throw new Error('Not implemented')</span>
|
|
1381
1381
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1382
|
-
|
|
1383
|
-
<span class="
|
|
1382
|
+
|
|
1383
|
+
<span class="fstat-no" title="function not covered" > async fetch (abort, bbox, resolution) {</span>
|
|
1384
1384
|
<span class="cstat-no" title="statement not covered" > throw new Error('Not implemented')</span>
|
|
1385
1385
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1386
|
-
|
|
1387
|
-
<span class="
|
|
1386
|
+
|
|
1387
|
+
<span class="fstat-no" title="function not covered" > on (event, callback) {</span>
|
|
1388
1388
|
<span class="cstat-no" title="statement not covered" > const callbacks = _.get(this.events, event, [])</span>
|
|
1389
1389
|
<span class="cstat-no" title="statement not covered" > callbacks.push(callback)</span>
|
|
1390
1390
|
<span class="cstat-no" title="statement not covered" > if (callbacks.length === 1) { this.events[event] = callbacks }</span>
|
|
1391
1391
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1392
|
-
|
|
1393
|
-
<span class="
|
|
1392
|
+
|
|
1393
|
+
<span class="fstat-no" title="function not covered" > off (event, callback) {</span>
|
|
1394
1394
|
<span class="cstat-no" title="statement not covered" > const callbacks = _.get(this.events, event, [])</span>
|
|
1395
1395
|
<span class="cstat-no" title="statement not covered" > callbacks.splice(0, 0, callback)</span>
|
|
1396
1396
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
<span class="
|
|
1397
|
+
|
|
1398
|
+
emit (event) {
|
|
1399
|
+
const callbacks = _.get(this.events, event, [])
|
|
1400
|
+
const ctx = { source: this, event }
|
|
1401
|
+
for (const cb of callbacks) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
1402
1402
|
<span class="cstat-no" title="statement not covered" > cb(ctx)</span>
|
|
1403
1403
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
<span class="cstat-no" title="statement not covered" > return null</span>
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
<span class="cstat-no" title="statement not covered" > return [null, null]</span>
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
<span class="
|
|
1429
|
-
|
|
1430
|
-
<span class="
|
|
1431
|
-
|
|
1432
|
-
<span class="
|
|
1433
|
-
|
|
1434
|
-
<span class="
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
<span class="
|
|
1438
|
-
|
|
1439
|
-
<span class="
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
<span class="
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
<span class="
|
|
1404
|
+
}
|
|
1405
|
+
|
|
1406
|
+
dataChanged () {
|
|
1407
|
+
this.emit('data-changed')
|
|
1408
|
+
}
|
|
1409
|
+
}
|
|
1410
|
+
|
|
1411
|
+
export function makeGridSource (key, options = null) {
|
|
1412
|
+
const factory = _.get(gridSourceFactories, key, null)
|
|
1413
|
+
if (factory) { return factory(options) }
|
|
1414
|
+
<span class="cstat-no" title="statement not covered" ><span class="branch-0 cbranch-no" title="branch not covered" > return null</span></span>
|
|
1415
|
+
}
|
|
1416
|
+
|
|
1417
|
+
export function extractGridSourceConfig (options) {
|
|
1418
|
+
for (const key of Object.keys(options)) {
|
|
1419
|
+
const factory = _.get(gridSourceFactories, key, null)
|
|
1420
|
+
if (factory) { return [key, options[key]] }
|
|
1421
|
+
}
|
|
1422
|
+
<span class="cstat-no" title="statement not covered" ><span class="branch-0 cbranch-no" title="branch not covered" > return [null, null]</span></span>
|
|
1423
|
+
}
|
|
1424
|
+
|
|
1425
|
+
// these allow to query grid with ascending lat/lon
|
|
1426
|
+
const grid1DAccessFunctions = [
|
|
1427
|
+
// lonFirst, latOrder=SortOrder.ASCENDING, lonOrder=SortOrder.ASCENDING
|
|
1428
|
+
<span class="fstat-no" title="function not covered" > function (data, ilat, ilon, latCount, lonCount) { return data[ilon * latCount + ilat] },</span>
|
|
1429
|
+
// lonFirst, latOrder=SortOrder.ASCENDING, lonOrder=SortOrder.DESCENDING
|
|
1430
|
+
<span class="fstat-no" title="function not covered" > function (data, ilat, ilon, latCount, lonCount) { return data[(lonCount - (ilon + 1)) * latCount + ilat] },</span>
|
|
1431
|
+
// lonFirst, latOrder=SortOrder.DESCENDING, lonOrder=SortOrder.ASCENDING
|
|
1432
|
+
<span class="fstat-no" title="function not covered" > function (data, ilat, ilon, latCount, lonCount) { return data[ilon * latCount + (latCount - (ilat + 1))] },</span>
|
|
1433
|
+
// lonFirst, latOrder=SortOrder.DESCENDING, lonOrder=SortOrder.DESCENDING
|
|
1434
|
+
<span class="fstat-no" title="function not covered" > function (data, ilat, ilon, latCount, lonCount) { return data[(lonCount - (ilon + 1)) * latCount + (latCount - (ilat + 1))] },</span>
|
|
1435
|
+
|
|
1436
|
+
// latFirst, latOrder=SortOrder.ASCENDING, lonOrder=SortOrder.ASCENDING
|
|
1437
|
+
<span class="fstat-no" title="function not covered" > function (data, ilat, ilon, latCount, lonCount) { return data[ilat * lonCount + ilon] },</span>
|
|
1438
|
+
// latFirst, latOrder=SortOrder.ASCENDING, lonOrder=SortOrder.DESCENDING
|
|
1439
|
+
<span class="fstat-no" title="function not covered" > function (data, ilat, ilon, latCount, lonCount) { return data[ilat * lonCount + (lonCount - (ilon + 1))] },</span>
|
|
1440
|
+
// latFirst, latOrder=SortOrder.DESCENDING, lonOrder=SortOrder.ASCENDING
|
|
1441
|
+
function (data, ilat, ilon, latCount, lonCount) { return data[(latCount - (ilat + 1)) * lonCount + ilon] },
|
|
1442
|
+
// latFirst, latOrder=SortOrder.DESCENDING, lonOrder=SortOrder.DESCENDING
|
|
1443
|
+
<span class="fstat-no" title="function not covered" > function (data, ilat, ilon, latCount, lonCount) { return data[(latCount - (ilat + 1)) * lonCount + (lonCount - (ilon + 1))] }</span>
|
|
1444
|
+
]
|
|
1445
|
+
|
|
1446
|
+
export class Grid1D extends BaseGrid {
|
|
1447
|
+
constructor (sourceKey, bbox, dimensions, data, latFirst, latSortOrder, lonSortOrder, nodata = undefined, converter = null) {
|
|
1448
|
+
super(sourceKey, bbox, dimensions, nodata)
|
|
1449
|
+
|
|
1450
|
+
this.data = data
|
|
1451
|
+
|
|
1452
|
+
const index = lonSortOrder + (latSortOrder * 2) + ((latFirst ? 1 <span class="branch-0 cbranch-no" title="branch not covered" >: 0)</span> * 4)
|
|
1453
|
+
this.getByIndex = grid1DAccessFunctions[index]
|
|
1454
|
+
|
|
1455
|
+
if (converter) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
1456
1456
|
<span class="cstat-no" title="statement not covered" > for (let i = 0; i < data.length; ++i) {</span>
|
|
1457
1457
|
<span class="cstat-no" title="statement not covered" > data[i] = converter(data[i])</span>
|
|
1458
1458
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1459
1459
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
<span class="
|
|
1471
|
-
|
|
1472
|
-
<span class="
|
|
1473
|
-
|
|
1474
|
-
<span class="
|
|
1475
|
-
|
|
1476
|
-
<span class="
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
<span class="
|
|
1480
|
-
|
|
1481
|
-
<span class="
|
|
1482
|
-
|
|
1483
|
-
<span class="
|
|
1484
|
-
|
|
1485
|
-
<span class="
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
<span class="
|
|
1460
|
+
}
|
|
1461
|
+
|
|
1462
|
+
getValue (ilat, ilon) {
|
|
1463
|
+
return this.getByIndex(this.data, ilat, ilon, this.dimensions[0], this.dimensions[1])
|
|
1464
|
+
}
|
|
1465
|
+
}
|
|
1466
|
+
|
|
1467
|
+
// these allow to query grid with ascending lat/lon
|
|
1468
|
+
const grid2DAccessFunctions = [
|
|
1469
|
+
// lonFirst, latOrder=SortOrder.ASCENDING, lonOrder=SortOrder.ASCENDING
|
|
1470
|
+
<span class="fstat-no" title="function not covered" > function (data, ilat, ilon, latCount, lonCount) { return data[ilon][ilat] },</span>
|
|
1471
|
+
// lonFirst, latOrder=SortOrder.ASCENDING, lonOrder=SortOrder.DESCENDING
|
|
1472
|
+
<span class="fstat-no" title="function not covered" > function (data, ilat, ilon, latCount, lonCount) { return data[lonCount - (ilon + 1)][ilat] },</span>
|
|
1473
|
+
// lonFirst, latOrder=SortOrder.DESCENDING, lonOrder=SortOrder.ASCENDING
|
|
1474
|
+
<span class="fstat-no" title="function not covered" > function (data, ilat, ilon, latCount, lonCount) { return data[ilon][latCount - (ilat + 1)] },</span>
|
|
1475
|
+
// lonFirst, latOrder=SortOrder.DESCENDING, lonOrder=SortOrder.DESCENDING
|
|
1476
|
+
<span class="fstat-no" title="function not covered" > function (data, ilat, ilon, latCount, lonCount) { return data[lonCount - (ilon + 1)][latCount - (ilat + 1)] },</span>
|
|
1477
|
+
|
|
1478
|
+
// latFirst, latOrder=SortOrder.ASCENDING, lonOrder=SortOrder.ASCENDING
|
|
1479
|
+
<span class="fstat-no" title="function not covered" > function (data, ilat, ilon, latCount, lonCount) { return data[ilat][ilon] },</span>
|
|
1480
|
+
// latFirst, latOrder=SortOrder.ASCENDING, lonOrder=SortOrder.DESCENDING
|
|
1481
|
+
<span class="fstat-no" title="function not covered" > function (data, ilat, ilon, latCount, lonCount) { return data[ilat][lonCount - (ilon + 1)] },</span>
|
|
1482
|
+
// latFirst, latOrder=SortOrder.DESCENDING, lonOrder=SortOrder.ASCENDING
|
|
1483
|
+
<span class="fstat-no" title="function not covered" > function (data, ilat, ilon, latCount, lonCount) { return data[latCount - (ilat + 1)][ilon] },</span>
|
|
1484
|
+
// latFirst, latOrder=SortOrder.DESCENDING, lonOrder=SortOrder.DESCENDING
|
|
1485
|
+
<span class="fstat-no" title="function not covered" > function (data, ilat, ilon, latCount, lonCount) { return data[latCount - (ilat + 1)][lonCount - (ilon + 1)] }</span>
|
|
1486
|
+
]
|
|
1487
|
+
|
|
1488
|
+
export class Grid2D extends BaseGrid {
|
|
1489
|
+
constructor (sourceKey, bbox, dimensions, data, latFirst, latSortOrder, lonSortOrder, nodata = undefined, converter = null) {
|
|
1490
|
+
super(sourceKey, bbox, dimensions, nodata)
|
|
1491
|
+
this.data = data
|
|
1492
|
+
|
|
1493
|
+
const index = lonSortOrder + (latSortOrder * 2) + ((latFirst ? 1 <span class="branch-0 cbranch-no" title="branch not covered" >: 0)</span> * 4)
|
|
1494
|
+
this.getByIndex = grid2DAccessFunctions[index]
|
|
1495
|
+
|
|
1496
|
+
if (converter) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
1497
1497
|
<span class="cstat-no" title="statement not covered" > for (let l = 0; l < data.length; ++l) {</span>
|
|
1498
1498
|
<span class="cstat-no" title="statement not covered" > const line = data[l]</span>
|
|
1499
1499
|
<span class="cstat-no" title="statement not covered" > for (let r = 0; r < line.length; ++r) {</span>
|
|
@@ -1501,79 +1501,79 @@
|
|
|
1501
1501
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1502
1502
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1503
1503
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
<span class="
|
|
1504
|
+
}
|
|
1505
|
+
|
|
1506
|
+
<span class="fstat-no" title="function not covered" > getValue (ilat, ilon) {</span>
|
|
1507
1507
|
<span class="cstat-no" title="statement not covered" > return this.getByIndex(this.data, ilat, ilon, this.dimensions[0], this.dimensions[1])</span>
|
|
1508
1508
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1509
|
+
}
|
|
1510
|
+
|
|
1511
|
+
// Class to aggregate multiple grids in a single one
|
|
1512
|
+
// All grids in the aggregate MUST have the same resolution
|
|
1513
|
+
export class TiledGrid extends BaseGrid {
|
|
1514
|
+
constructor (sourceKey, tiles, nodata = undefined) {
|
|
1515
|
+
const bbox0 = tiles[0].getBBox()
|
|
1516
|
+
const dim0 = tiles[0].getDimensions()
|
|
1517
|
+
const res0 = tiles[0].getResolution()
|
|
1518
|
+
super(sourceKey, bbox0, dim0, nodata)
|
|
1519
|
+
|
|
1520
|
+
this.dimensions = [0, 0]
|
|
1521
|
+
this.bbox = [bbox0[0], bbox0[1], bbox0[2], bbox0[3]]
|
|
1522
|
+
this.resolution = [res0[0], res0[1]]
|
|
1523
|
+
|
|
1524
|
+
for (const tile of tiles) {
|
|
1525
|
+
// make sure resolution match between tiles
|
|
1526
|
+
const res = tile.getResolution()
|
|
1527
|
+
if (res[0] !== res0[0] || res[1] !== res0[1]) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
1528
1528
|
<span class="cstat-no" title="statement not covered" > throw new Error('Resolution does not match between tiles')</span>
|
|
1529
1529
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
<span class="
|
|
1530
|
+
|
|
1531
|
+
// update grid bbox and make sure it is contiguous
|
|
1532
|
+
const bbox = tile.getBBox()
|
|
1533
|
+
this.bbox[0] = Math.min(this.bbox[0], bbox[0])
|
|
1534
|
+
this.bbox[1] = Math.min(this.bbox[1], bbox[1])
|
|
1535
|
+
this.bbox[2] = Math.max(this.bbox[2], bbox[2])
|
|
1536
|
+
this.bbox[3] = Math.max(this.bbox[3], bbox[3])
|
|
1537
|
+
}
|
|
1538
|
+
|
|
1539
|
+
this.dimensions[0] = 1 + Math.trunc((this.bbox[2] - this.bbox[0]) / this.resolution[0])
|
|
1540
|
+
this.dimensions[1] = 1 + Math.trunc((this.bbox[3] - this.bbox[1]) / this.resolution[1])
|
|
1541
|
+
|
|
1542
|
+
this.tiles = []
|
|
1543
|
+
|
|
1544
|
+
for (const tile of tiles) {
|
|
1545
|
+
const bbox = tile.getBBox()
|
|
1546
|
+
const meta = {
|
|
1547
|
+
tile,
|
|
1548
|
+
iLatMin: Math.floor((bbox[0] - this.bbox[0]) / this.resolution[0]),
|
|
1549
|
+
iLatMax: Math.floor((bbox[2] - this.bbox[0]) / this.resolution[0]),
|
|
1550
|
+
iLonMin: Math.floor((bbox[1] - this.bbox[1]) / this.resolution[1]),
|
|
1551
|
+
iLonMax: Math.floor((bbox[3] - this.bbox[1]) / this.resolution[1])
|
|
1552
|
+
}
|
|
1553
|
+
|
|
1554
|
+
this.tiles.push(meta)
|
|
1555
|
+
}
|
|
1556
|
+
}
|
|
1557
|
+
|
|
1558
|
+
getValue (ilat, ilon) {
|
|
1559
|
+
// find which tile holds our data
|
|
1560
|
+
let tile = null
|
|
1561
|
+
for (const t of this.tiles) {
|
|
1562
|
+
if (ilat < t.iLatMin || ilat > t.iLatMax || ilon < t.iLonMin || ilon > t.iLonMax) { continue }
|
|
1563
|
+
tile = t
|
|
1564
|
+
break
|
|
1565
|
+
}
|
|
1566
|
+
|
|
1567
|
+
if (!tile) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
1568
1568
|
<span class="cstat-no" title="statement not covered" > return 0</span>
|
|
1569
1569
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
<span class="
|
|
1570
|
+
|
|
1571
|
+
return tile.tile.getValue(ilat - tile.iLatMin, ilon - tile.iLonMin)
|
|
1572
|
+
}
|
|
1573
|
+
}
|
|
1574
|
+
|
|
1575
|
+
export class SubGrid extends BaseGrid {
|
|
1576
|
+
<span class="fstat-no" title="function not covered" > constructor (sourceKey, grid, subBbox) {</span>
|
|
1577
1577
|
<span class="cstat-no" title="statement not covered" > const [iminlat, iminlon, imaxlat, imaxlon] = grid.getBestFit(subBbox)</span>
|
|
1578
1578
|
<span class="cstat-no" title="statement not covered" ></span>
|
|
1579
1579
|
<span class="cstat-no" title="statement not covered" > const adjustedDims = [1 + imaxlat - iminlat, 1 + imaxlon - iminlon]</span>
|
|
@@ -1585,11 +1585,11 @@
|
|
|
1585
1585
|
<span class="cstat-no" title="statement not covered" > this.lonOffset = iminlon</span>
|
|
1586
1586
|
<span class="cstat-no" title="statement not covered" > this.implGrid = grid</span>
|
|
1587
1587
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1588
|
-
|
|
1589
|
-
<span class="
|
|
1588
|
+
|
|
1589
|
+
<span class="fstat-no" title="function not covered" > getValue (ilat, ilon) {</span>
|
|
1590
1590
|
<span class="cstat-no" title="statement not covered" > return this.implGrid.getValue(ilat + this.latOffset, ilon + this.lonOffset)</span>
|
|
1591
1591
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1592
|
-
|
|
1592
|
+
}
|
|
1593
1593
|
</pre></td></tr></table></pre>
|
|
1594
1594
|
|
|
1595
1595
|
<div class='push'></div><!-- for sticky footer -->
|
|
@@ -1597,7 +1597,7 @@
|
|
|
1597
1597
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1598
1598
|
Code coverage generated by
|
|
1599
1599
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1600
|
-
at 2025-
|
|
1600
|
+
at 2025-07-24T10:00:20.508Z
|
|
1601
1601
|
</div>
|
|
1602
1602
|
<script src="../../prettify.js"></script>
|
|
1603
1603
|
<script>
|