@fxi/zartigl 0.1.4 → 0.2.14

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/package.json CHANGED
@@ -1,15 +1,23 @@
1
1
  {
2
2
  "name": "@fxi/zartigl",
3
- "version": "0.1.4",
3
+ "version": "0.2.14",
4
4
  "description": "MapLibre GL JS plugin for animated particle flow from Zarr ocean current data",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/fxi/zartigl.git"
8
+ },
5
9
  "type": "module",
6
10
  "main": "./dist/zartigl.js",
7
11
  "module": "./dist/zartigl.js",
8
- "types": "./dist/index.d.ts",
12
+ "types": "./dist/zartigl.d.ts",
9
13
  "exports": {
10
14
  ".": {
11
15
  "import": "./dist/zartigl.js",
12
- "types": "./dist/index.d.ts"
16
+ "types": "./dist/zartigl.d.ts"
17
+ },
18
+ "./catalog": {
19
+ "import": "./dist/catalog.js",
20
+ "types": "./dist/catalog.d.ts"
13
21
  }
14
22
  },
15
23
  "files": [
@@ -17,12 +25,26 @@
17
25
  ],
18
26
  "scripts": {
19
27
  "dev": "vite",
20
- "dev:mapbox": "vite --config vite.config.demo-mapbox.ts",
28
+ "dev:minimal": "vite --config vite.config.minimal.ts",
29
+ "dev:prod": "npm run dev",
30
+ "test": "vitest run",
31
+ "test:unit": "vitest run",
21
32
  "build": "vite build",
22
- "build:mapbox": "vite build --config vite.config.demo-mapbox.ts",
33
+ "build:minimal": "vite build --config vite.config.minimal.ts",
34
+ "build:prod": "npm run build",
23
35
  "build:lib": "vite build --config vite.config.lib.ts",
24
36
  "preview": "vite preview",
25
- "catalog": "cd scripts && uv run build_catalog.py",
37
+ "release": "npm run release:patch",
38
+ "release:patch": "npm version patch && git push origin main --follow-tags",
39
+ "release:minor": "npm version minor && git push origin main --follow-tags",
40
+ "release:major": "npm version major && git push origin main --follow-tags",
41
+ "catalog": "npm run catalog:validate",
42
+ "catalog:validate": "uv run scripts/catalog_builder/skills/validate_catalog.py",
43
+ "geovideo:dry-run": "uv run scripts/geovideo/render.py scripts/geovideo/examples/sst-anomaly.json --dry-run",
44
+ "geovideo:calibrate": "uv run scripts/geovideo/calibrate.py",
45
+ "geovideo:calibrate:browser": "uv run scripts/geovideo/browser_calibrate.py",
46
+ "smoke:sample": "npm run build:lib && node scripts/smoke-sample-point.mjs",
47
+ "release:check": "npm run test && npm run catalog:validate && npm run build && npm run build:lib && npm run smoke:sample",
26
48
  "prepublishOnly": "npm run build:lib"
27
49
  },
28
50
  "publishConfig": {
@@ -41,17 +63,21 @@
41
63
  "peerDependencies": {
42
64
  "maplibre-gl": ">=4.0.0"
43
65
  },
66
+ "dependencies": {
67
+ "numcodecs": "^0.3.2",
68
+ "pako": "^2.1.0"
69
+ },
44
70
  "devDependencies": {
45
71
  "@tweakpane/core": "^2.0.5",
72
+ "@types/d3": "^7.4.3",
46
73
  "@types/pako": "^2.0.4",
47
- "mapbox-gl": "^2.15.0",
74
+ "d3": "^7.9.0",
48
75
  "maplibre-gl": "^5.17.0",
49
- "numcodecs": "^0.3.2",
50
- "pako": "^2.1.0",
51
76
  "tweakpane": "^4.0.5",
52
77
  "typescript": "^5.9.3",
53
78
  "vite": "^7.3.1",
54
79
  "vite-plugin-dts": "^4.5.4",
55
- "vite-plugin-glsl": "^1.5.5"
80
+ "vite-plugin-glsl": "^1.5.5",
81
+ "vitest": "^4.1.7"
56
82
  }
57
83
  }
@@ -1,351 +0,0 @@
1
- {
2
- "generated": "2026-03-18T12:00:00.000000+00:00",
3
- "views": [
4
- {
5
- "id": "ocean-current-velocity",
6
- "label": "Ocean Current Velocity",
7
- "description": "Surface ocean currents — global analysis/forecast, 6-hourly",
8
- "category": "Ocean",
9
- "type": "vector",
10
- "source_dataset": "cmems_mod_glo_phy-cur_anfc_0.083deg_PT6H-i",
11
- "zarr_url_geo": "https://s3.waw3-1.cloudferro.com/mdl-arco-time-009/arco/GLOBAL_ANALYSISFORECAST_PHY_001_024/cmems_mod_glo_phy-cur_anfc_0.083deg_PT6H-i_202406/timeChunked.zarr",
12
- "zarr_url_time": "https://s3.waw3-1.cloudferro.com/mdl-arco-geo-009/arco/GLOBAL_ANALYSISFORECAST_PHY_001_024/cmems_mod_glo_phy-cur_anfc_0.083deg_PT6H-i_202406/geoChunked.zarr",
13
- "variable_u": "uo",
14
- "variable_v": "vo",
15
- "variable_meta": {
16
- "standard_name": "sea_water_velocity",
17
- "units": "m s-1"
18
- },
19
- "dimensions": {
20
- "depth": {
21
- "axis": "z",
22
- "values": [
23
- 5727.9169921875,
24
- 5274.7841796875,
25
- 4833.291015625,
26
- 4405.22412109375,
27
- 3992.48388671875,
28
- 3597.031982421875,
29
- 3220.820068359375,
30
- 2865.702880859375,
31
- 2533.3359375,
32
- 2225.077880859375,
33
- 1941.8929443359375,
34
- 1684.2840576171875,
35
- 1452.2509765625,
36
- 1245.291015625,
37
- 1062.43994140625,
38
- 902.3392944335938,
39
- 763.3331298828125,
40
- 643.5667724609375,
41
- 541.0889282226562,
42
- 453.9377136230469,
43
- 380.2130126953125,
44
- 318.1274108886719,
45
- 266.0403137207031,
46
- 222.47520446777344,
47
- 186.12559509277344,
48
- 155.85069274902344,
49
- 130.66600036621094,
50
- 109.72930145263672,
51
- 92.3260726928711,
52
- 77.85385131835938,
53
- 65.80726623535156,
54
- 55.76428985595703,
55
- 47.37369155883789,
56
- 40.344051361083984,
57
- 34.43415069580078,
58
- 29.444730758666992,
59
- 25.211410522460938,
60
- 21.598819732666016,
61
- 18.495559692382812,
62
- 15.810070037841797,
63
- 13.467140197753906,
64
- 11.404999732971191,
65
- 9.572997093200684,
66
- 7.92956018447876,
67
- 6.440614223480225,
68
- 5.078224182128906,
69
- 3.8194949626922607,
70
- 2.6456689834594727,
71
- 1.5413750410079956,
72
- 0.49402499198913574
73
- ],
74
- "size": 50,
75
- "chunk_size": 1,
76
- "units": "m"
77
- },
78
- "latitude": {
79
- "axis": "y",
80
- "size": 2041,
81
- "min": -80.0,
82
- "max": 90.0,
83
- "step": 0.08333333333333333,
84
- "chunk_size": 512,
85
- "units": "degrees_north"
86
- },
87
- "longitude": {
88
- "axis": "x",
89
- "size": 4320,
90
- "min": -180.0,
91
- "max": 179.91668701171875,
92
- "step": 0.08333333804392655,
93
- "chunk_size": 2048,
94
- "units": "degrees_east"
95
- },
96
- "time": {
97
- "axis": "t",
98
- "size": 5585,
99
- "min": 1654041600000.0,
100
- "max": 1774656000000.0,
101
- "step": 21600000.0,
102
- "chunk_size": 1,
103
- "units": "milliseconds since 1970-01-01 00:00:00Z (no leap seconds)"
104
- }
105
- },
106
- "vertical_label": "depth",
107
- "defaults": {
108
- "palette": "rdylbu",
109
- "renderMode": "particles",
110
- "particleDensity": 0.033,
111
- "speedMin": 0.14,
112
- "speedMax": 1.11,
113
- "fadeMin": 0.9,
114
- "fadeMax": 0.9913000000000001,
115
- "dropRate": 0.003,
116
- "dropRateBump": 0,
117
- "opacity": 1,
118
- "logScale": true,
119
- "vibrance": 0.39
120
- }
121
- },
122
- {
123
- "id": "surface-wind",
124
- "label": "Surface Wind",
125
- "description": "Global hourly sea surface wind from scatterometer and model",
126
- "category": "Atmosphere",
127
- "type": "vector",
128
- "source_dataset": "cmems_obs-wind_glo_phy_nrt_l4_0.125deg_PT1H",
129
- "zarr_url_geo": "https://s3.waw3-1.cloudferro.com/mdl-arco-time-050/arco/WIND_GLO_PHY_L4_NRT_012_004/cmems_obs-wind_glo_phy_nrt_l4_0.125deg_PT1H_202207/timeChunked.zarr",
130
- "zarr_url_time": "https://s3.waw3-1.cloudferro.com/mdl-arco-geo-050/arco/WIND_GLO_PHY_L4_NRT_012_004/cmems_obs-wind_glo_phy_nrt_l4_0.125deg_PT1H_202207/geoChunked.zarr",
131
- "variable_u": "eastward_wind",
132
- "variable_v": "northward_wind",
133
- "variable_meta": {
134
- "standard_name": "wind_velocity",
135
- "units": "m s-1"
136
- },
137
- "dimensions": {
138
- "time": {
139
- "axis": "t",
140
- "size": 20352,
141
- "min": 1700438400000.0,
142
- "max": 1773702000000.0,
143
- "step": 3600000.0,
144
- "chunk_size": 1,
145
- "units": "milliseconds since 1970-01-01 00:00:00Z (no leap seconds)"
146
- },
147
- "latitude": {
148
- "axis": "y",
149
- "size": 1440,
150
- "min": -89.9375,
151
- "max": 89.9375,
152
- "step": 0.125,
153
- "chunk_size": 512,
154
- "units": "degrees_north"
155
- },
156
- "longitude": {
157
- "axis": "x",
158
- "size": 2880,
159
- "min": -179.9375,
160
- "max": 179.9375,
161
- "step": 0.125,
162
- "chunk_size": 1024,
163
- "units": "degrees_east"
164
- }
165
- },
166
- "defaults": {
167
- "palette": "rdylbu",
168
- "renderMode": "particles",
169
- "particleDensity": 0.004000000000000002,
170
- "speedMin": 0.010000000000000005,
171
- "speedMax": 0.07000000000000002,
172
- "fadeMin": 0.9174,
173
- "fadeMax": 0.9793000000000001,
174
- "dropRate": 0.005,
175
- "dropRateBump": 0,
176
- "opacity": 0.9,
177
- "logScale": true,
178
- "vibrance": 1
179
- }
180
- },
181
- {
182
- "id": "phytoplankton-chlorophyll",
183
- "label": "Phytoplankton (Chlorophyll-a)",
184
- "description": "Daily surface chlorophyll-a concentration",
185
- "category": "Biology",
186
- "type": "scalar",
187
- "source_dataset": "cmems_mod_glo_bgc-pft_anfc_0.25deg_P1D-m",
188
- "zarr_url_geo": "https://s3.waw3-1.cloudferro.com/mdl-arco-time-006/arco/GLOBAL_ANALYSISFORECAST_BGC_001_028/cmems_mod_glo_bgc-pft_anfc_0.25deg_P1D-m_202311/timeChunked.zarr",
189
- "zarr_url_time": "https://s3.waw3-1.cloudferro.com/mdl-arco-geo-006/arco/GLOBAL_ANALYSISFORECAST_BGC_001_028/cmems_mod_glo_bgc-pft_anfc_0.25deg_P1D-m_202311/geoChunked.zarr",
190
- "variable": "chl",
191
- "variable_meta": {
192
- "standard_name": "mass_concentration_of_chlorophyll_a_in_sea_water",
193
- "units": "mg m-3"
194
- },
195
- "dimensions": {
196
- "time": {
197
- "axis": "t",
198
- "size": 1608,
199
- "min": 1635724800000.0,
200
- "max": 1774569600000.0,
201
- "step": 86400000.0,
202
- "chunk_size": 1,
203
- "units": "milliseconds since 1970-01-01 00:00:00Z (no leap seconds)"
204
- },
205
- "depth": {
206
- "axis": "z",
207
- "values": [
208
- 5727.91650390625,
209
- 5274.7841796875,
210
- 4833.29052734375,
211
- 4405.22412109375,
212
- 3992.48388671875,
213
- 3597.031982421875,
214
- 3220.8203125,
215
- 2865.70263671875,
216
- 2533.336181640625,
217
- 2225.077880859375,
218
- 1941.8934326171875,
219
- 1684.284423828125,
220
- 1452.2509765625,
221
- 1245.2911376953125,
222
- 1062.439697265625,
223
- 902.3392944335938,
224
- 763.3330688476562,
225
- 643.5668334960938,
226
- 541.0889282226562,
227
- 453.937744140625,
228
- 380.2130126953125,
229
- 318.12744140625,
230
- 266.0402526855469,
231
- 222.4751739501953,
232
- 186.1255645751953,
233
- 155.85072326660156,
234
- 130.66598510742188,
235
- 109.72927856445312,
236
- 92.3260726928711,
237
- 77.85385131835938,
238
- 65.8072738647461,
239
- 55.76428985595703,
240
- 47.373687744140625,
241
- 40.344051361083984,
242
- 34.43415451049805,
243
- 29.44472885131836,
244
- 25.211408615112305,
245
- 21.59881591796875,
246
- 18.495559692382812,
247
- 15.810072898864746,
248
- 13.467138290405273,
249
- 11.40500259399414,
250
- 9.572997093200684,
251
- 7.92956018447876,
252
- 6.440614223480225,
253
- 5.078223705291748,
254
- 3.8194947242736816,
255
- 2.6456685066223145,
256
- 1.5413753986358643,
257
- 0.4940253794193268
258
- ],
259
- "size": 50,
260
- "chunk_size": 1,
261
- "units": "m"
262
- },
263
- "latitude": {
264
- "axis": "y",
265
- "size": 681,
266
- "min": -80.0,
267
- "max": 90.0,
268
- "step": 0.25,
269
- "chunk_size": 681,
270
- "units": "degrees_north"
271
- },
272
- "longitude": {
273
- "axis": "x",
274
- "size": 1440,
275
- "min": -180.0,
276
- "max": 179.75,
277
- "step": 0.25,
278
- "chunk_size": 1440,
279
- "units": "degrees_east"
280
- }
281
- },
282
- "vertical_label": "depth",
283
- "defaults": {
284
- "palette": "matter",
285
- "renderMode": "raster",
286
- "opacity": 0.9,
287
- "logScale": true,
288
- "vibrance": 0.2
289
- }
290
- }
291
- ,{
292
- "id": "wave-stokes-drift",
293
- "label": "Wave Stokes Drift",
294
- "description": "Net horizontal wave-driven transport (Stokes drift) from global 3-hourly wave analysis — visualises wave energy propagation direction.",
295
- "category": "Ocean",
296
- "type": "vector",
297
- "source_dataset": "cmems_mod_glo_wav_anfc_0.083deg_PT3H-i",
298
- "zarr_url_geo": "https://s3.waw3-1.cloudferro.com/mdl-arco-time-015/arco/GLOBAL_ANALYSISFORECAST_WAV_001_027/cmems_mod_glo_wav_anfc_0.083deg_PT3H-i_202411/timeChunked.zarr",
299
- "zarr_url_time": "https://s3.waw3-1.cloudferro.com/mdl-arco-geo-015/arco/GLOBAL_ANALYSISFORECAST_WAV_001_027/cmems_mod_glo_wav_anfc_0.083deg_PT3H-i_202411/geoChunked.zarr",
300
- "variable_u": "VSDX",
301
- "variable_v": "VSDY",
302
- "variable_meta": {
303
- "standard_name": "sea_surface_wave_stokes_drift_velocity",
304
- "units": "m s-1"
305
- },
306
- "dimensions": {
307
- "time": {
308
- "axis": "t",
309
- "size": 9944,
310
- "min": 1667271600000,
311
- "max": 1774656000000,
312
- "step": 10800000,
313
- "chunk_size": 1,
314
- "units": "milliseconds since 1970-01-01 00:00:00Z (no leap seconds)"
315
- },
316
- "latitude": {
317
- "axis": "y",
318
- "size": 2041,
319
- "min": -80.0,
320
- "max": 90.0,
321
- "step": 0.08333333333333333,
322
- "chunk_size": 512,
323
- "units": "degrees_north"
324
- },
325
- "longitude": {
326
- "axis": "x",
327
- "size": 4320,
328
- "min": -180.0,
329
- "max": 179.91666666666663,
330
- "step": 0.08333333333333333,
331
- "chunk_size": 2048,
332
- "units": "degrees_east"
333
- }
334
- },
335
- "defaults": {
336
- "palette": "rdylbu",
337
- "renderMode": "particles",
338
- "particleDensity": 0.024,
339
- "speedMin": 0.010000000000000005,
340
- "speedMax": 1.59,
341
- "fadeMin": 0.975,
342
- "fadeMax": 0.9935,
343
- "dropRate": 0.003,
344
- "dropRateBump": 0,
345
- "opacity": 1,
346
- "logScale": true,
347
- "vibrance": 1
348
- }
349
- }
350
- ]
351
- }