raster-style 0.4.0

Raster Style Spec v3 JSON and Q3 query codec
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
[
  {
    "name": "rgb-two-bands",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"rgb\",\"bidx\":[4,3]},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000],[0,3000],[0,3000]]},\"resampling\":{\"read\":\"bilinear\",\"reproject\":\"bilinear\"},\"effects\":{\"color_formula\":[{\"op\":\"gamma\",\"channels\":\"r\",\"value\":1.1},{\"op\":\"gamma\",\"channels\":\"g\",\"value\":1.1},{\"op\":\"gamma\",\"channels\":\"b\",\"value\":1.1}]},\"raster:tile\":{\"format\":\"png\",\"tilesize\":256},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/tile/v1.0.0/schema.json\"]}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "rescale-cardinality",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"rgb\",\"bidx\":[4,3,2]},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,1],[0,2]]},\"resampling\":{\"read\":\"bilinear\",\"reproject\":\"bilinear\"},\"raster:tile\":{\"format\":\"png\",\"tilesize\":256},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/tile/v1.0.0/schema.json\"]}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "reversed-range",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"rgb\",\"bidx\":[4,3,2]},\"stretch\":{\"method\":\"linear\",\"rescale\":[[5,1]]},\"resampling\":{\"read\":\"bilinear\",\"reproject\":\"bilinear\"},\"effects\":{\"color_formula\":[{\"op\":\"gamma\",\"channels\":\"r\",\"value\":1.1},{\"op\":\"gamma\",\"channels\":\"g\",\"value\":1.1},{\"op\":\"gamma\",\"channels\":\"b\",\"value\":1.1}]},\"raster:tile\":{\"format\":\"png\",\"tilesize\":256},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/tile/v1.0.0/schema.json\"]}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "reversed-percentiles",
    "json": "{\"version\":\"3.0\",\"statistics\":{\"scope\":\"dataset\",\"accuracy\":\"sample\",\"sample_size\":1000000},\"renderer\":{\"type\":\"rgb\",\"bidx\":[4,3,2]},\"stretch\":{\"method\":\"percentile\",\"percentiles\":[98,2]},\"effects\":{\"color_formula\":[{\"op\":\"gamma\",\"channels\":\"rgb\",\"value\":1.1}]}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "data-map-gamma",
    "json": "{\"version\":\"3.0\",\"opacity\":1,\"calibration\":{\"mode\":\"metadata\"},\"renderer\":{\"type\":\"pseudocolor\",\"color_mapping\":{\"mode\":\"continuous\",\"domain\":\"data\",\"interpolation\":\"srgb\",\"stops\":[{\"value\":-1,\"color\":\"#313695ff\"},{\"value\":0,\"color\":\"#ffffbfff\"},{\"value\":1,\"color\":\"#006837ff\"}],\"under\":\"clamp\",\"over\":\"clamp\"},\"index\":{\"name\":\"ndvi\",\"bindings\":{\"red\":4,\"nir\":8}}},\"stretch\":{\"method\":\"none\"},\"resampling\":{\"read\":\"bilinear\",\"reproject\":\"bilinear\"},\"effects\":{\"color_formula\":[{\"op\":\"gamma\",\"channels\":\"r\",\"value\":2}]},\"raster:tile\":{\"format\":\"png\",\"tilesize\":256},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/tile/v1.0.0/schema.json\"]}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "data-map-stretch",
    "json": "{\"version\":\"3.0\",\"opacity\":1,\"calibration\":{\"mode\":\"metadata\"},\"renderer\":{\"type\":\"pseudocolor\",\"color_mapping\":{\"mode\":\"continuous\",\"domain\":\"data\",\"interpolation\":\"srgb\",\"stops\":[{\"value\":-1,\"color\":\"#313695ff\"},{\"value\":0,\"color\":\"#ffffbfff\"},{\"value\":1,\"color\":\"#006837ff\"}],\"under\":\"clamp\",\"over\":\"clamp\"},\"index\":{\"name\":\"ndvi\",\"bindings\":{\"red\":4,\"nir\":8}}},\"stretch\":{\"method\":\"linear\",\"rescale\":[[-1,1]]},\"resampling\":{\"read\":\"bilinear\",\"reproject\":\"bilinear\"},\"raster:tile\":{\"format\":\"png\",\"tilesize\":256},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/tile/v1.0.0/schema.json\"]}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "stops-unsorted",
    "json": "{\"version\":\"3.0\",\"opacity\":1,\"calibration\":{\"mode\":\"metadata\"},\"renderer\":{\"type\":\"pseudocolor\",\"color_mapping\":{\"mode\":\"continuous\",\"domain\":\"data\",\"interpolation\":\"srgb\",\"stops\":[{\"value\":1,\"color\":\"#006837ff\"},{\"value\":0,\"color\":\"#ffffbfff\"},{\"value\":-1,\"color\":\"#313695ff\"}],\"under\":\"clamp\",\"over\":\"clamp\"},\"index\":{\"name\":\"ndvi\",\"bindings\":{\"red\":4,\"nir\":8}}},\"stretch\":{\"method\":\"none\"},\"resampling\":{\"read\":\"bilinear\",\"reproject\":\"bilinear\"},\"raster:tile\":{\"format\":\"png\",\"tilesize\":256},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/tile/v1.0.0/schema.json\"]}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "breaks-unsorted",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"pseudocolor\",\"color_mapping\":{\"mode\":\"discrete\",\"domain\":\"data\",\"breaks\":[1000,500,100,0],\"colors\":[\"#2c7bb6ff\",\"#ffffbfff\",\"#d7191cff\"],\"boundary\":\"left_closed\",\"outside_color\":\"#00000000\"},\"bidx\":[1]},\"stretch\":{\"method\":\"none\"},\"resampling\":{\"read\":\"nearest\",\"reproject\":\"nearest\"}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "colors-length",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"pseudocolor\",\"color_mapping\":{\"mode\":\"discrete\",\"domain\":\"data\",\"breaks\":[0,100,500,1000],\"colors\":[\"#2c7bb6ff\",\"#ffffbfff\"],\"boundary\":\"left_closed\",\"outside_color\":\"#00000000\"},\"bidx\":[1]},\"stretch\":{\"method\":\"none\"},\"resampling\":{\"read\":\"nearest\",\"reproject\":\"nearest\"}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "duplicate-exact-value",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"categorized\",\"color_mapping\":{\"mode\":\"exact\",\"entries\":[{\"value\":1,\"color\":\"#228b22ff\"},{\"value\":2,\"color\":\"#4169e1ff\"},{\"value\":3,\"color\":\"#d2b48cff\"},{\"value\":1,\"color\":\"#228b22ff\"}],\"fallback_color\":\"#00000000\"},\"bidx\":[1]},\"stretch\":{\"method\":\"none\"},\"resampling\":{\"read\":\"nearest\",\"reproject\":\"nearest\"}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "categorical-bilinear",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"categorized\",\"color_mapping\":{\"mode\":\"exact\",\"entries\":[{\"value\":1,\"color\":\"#228b22ff\"},{\"value\":2,\"color\":\"#4169e1ff\"},{\"value\":3,\"color\":\"#d2b48cff\"}],\"fallback_color\":\"#00000000\"},\"bidx\":[1]},\"stretch\":{\"method\":\"none\"},\"resampling\":{\"read\":\"bilinear\"}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "categorical-median",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"categorized\",\"color_mapping\":{\"mode\":\"exact\",\"entries\":[{\"value\":1,\"color\":\"#228b22ff\"},{\"value\":2,\"color\":\"#4169e1ff\"},{\"value\":3,\"color\":\"#d2b48cff\"}],\"fallback_color\":\"#00000000\"},\"bidx\":[1]},\"stretch\":{\"method\":\"none\"},\"resampling\":{\"read\":\"nearest\",\"reproject\":\"nearest\"},\"raster:mosaic\":{\"pixel_selection\":\"median\",\"stage\":\"after_channels\"},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/mosaic/v1.0.0/schema.json\"]}",
    "code": "E_SCHEMA"
  },
  {
    "name": "background-transparent",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"renderer_invert\":false,\"bidx\":[1]},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,255]]},\"raster:tile\":{\"format\":\"jpeg\",\"background\":\"#ffffff00\",\"quality\":85,\"tilesize\":256},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/tile/v1.0.0/schema.json\"]}",
    "code": "E_SCHEMA"
  },
  {
    "name": "png-quality",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"rgb\",\"bidx\":[4,3,2]},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000],[0,3000],[0,3000]]},\"resampling\":{\"read\":\"bilinear\",\"reproject\":\"bilinear\"},\"effects\":{\"color_formula\":[{\"op\":\"gamma\",\"channels\":\"r\",\"value\":1.1},{\"op\":\"gamma\",\"channels\":\"g\",\"value\":1.1},{\"op\":\"gamma\",\"channels\":\"b\",\"value\":1.1}]},\"raster:tile\":{\"format\":\"png\",\"quality\":80,\"tilesize\":256},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/tile/v1.0.0/schema.json\"]}",
    "code": "E_SCHEMA"
  },
  {
    "name": "png-lossless",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"rgb\",\"bidx\":[4,3,2]},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000],[0,3000],[0,3000]]},\"resampling\":{\"read\":\"bilinear\",\"reproject\":\"bilinear\"},\"effects\":{\"color_formula\":[{\"op\":\"gamma\",\"channels\":\"r\",\"value\":1.1},{\"op\":\"gamma\",\"channels\":\"g\",\"value\":1.1},{\"op\":\"gamma\",\"channels\":\"b\",\"value\":1.1}]},\"raster:tile\":{\"format\":\"png\",\"lossless\":false,\"tilesize\":256},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/tile/v1.0.0/schema.json\"]}",
    "code": "E_SCHEMA"
  },
  {
    "name": "webp-lossless-quality",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"pseudocolor\",\"color_mapping\":{\"mode\":\"continuous\",\"domain\":\"data\",\"interpolation\":\"srgb\",\"stops\":[{\"value\":-1,\"color\":\"#313695ff\"},{\"value\":0,\"color\":\"#ffffbfff\"},{\"value\":1,\"color\":\"#006837ff\"}],\"under\":\"clamp\",\"over\":\"clamp\"},\"language\":\"raster-expr/1\",\"expression\":\"(b8-b4)/(b8+b4)\"},\"stretch\":{\"method\":\"none\"},\"raster:mosaic\":{\"pixel_selection\":\"highest\",\"stage\":\"after_channels\",\"rank_channel\":1},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/mosaic/v1.0.0/schema.json\",\"https://mapseekai.github.io/raster-style/extensions/raster/tile/v1.0.0/schema.json\"],\"raster:tile\":{\"format\":\"webp\",\"lossless\":true,\"quality\":80,\"tilesize\":256}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "calibration-band-duplicate",
    "json": "{\"version\":\"3.0\",\"calibration\":{\"mode\":\"linear\",\"coefficients\":[{\"band\":1,\"scale\":1,\"offset\":0},{\"band\":1,\"scale\":2,\"offset\":0}]},\"renderer\":{\"type\":\"gray\",\"bidx\":[1]}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "rank-wrong-stage-channel",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"pseudocolor\",\"color_mapping\":{\"mode\":\"continuous\",\"domain\":\"data\",\"interpolation\":\"srgb\",\"stops\":[{\"value\":-1,\"color\":\"#313695ff\"},{\"value\":0,\"color\":\"#ffffbfff\"},{\"value\":1,\"color\":\"#006837ff\"}],\"under\":\"clamp\",\"over\":\"clamp\"},\"language\":\"raster-expr/1\",\"expression\":\"(b8-b4)/(b8+b4)\"},\"stretch\":{\"method\":\"none\"},\"raster:mosaic\":{\"pixel_selection\":\"highest\",\"stage\":\"after_channels\",\"rank_channel\":3},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/mosaic/v1.0.0/schema.json\",\"https://mapseekai.github.io/raster-style/extensions/raster/tile/v1.0.0/schema.json\"],\"raster:tile\":{\"format\":\"webp\",\"lossless\":true,\"tilesize\":256}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "rank-wrong-kind",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"pseudocolor\",\"color_mapping\":{\"mode\":\"continuous\",\"domain\":\"data\",\"interpolation\":\"srgb\",\"stops\":[{\"value\":-1,\"color\":\"#313695ff\"},{\"value\":0,\"color\":\"#ffffbfff\"},{\"value\":1,\"color\":\"#006837ff\"}],\"under\":\"clamp\",\"over\":\"clamp\"},\"language\":\"raster-expr/1\",\"expression\":\"(b8-b4)/(b8+b4)\"},\"stretch\":{\"method\":\"none\"},\"raster:mosaic\":{\"pixel_selection\":\"first\",\"stage\":\"after_channels\",\"rank_channel\":1},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/mosaic/v1.0.0/schema.json\",\"https://mapseekai.github.io/raster-style/extensions/raster/tile/v1.0.0/schema.json\"],\"raster:tile\":{\"format\":\"webp\",\"lossless\":true,\"tilesize\":256}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "nonmonotonic-curve",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"stretch\":{\"method\":\"curve\",\"curves\":[[[0,1],[10,0]]]}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "curve-output-range",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"stretch\":{\"method\":\"curve\",\"curves\":[[[0,-1],[10,2]]]}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "normalized-stops-out-of-range",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"pseudocolor\",\"color_mapping\":{\"mode\":\"continuous\",\"domain\":\"normalized\",\"stops\":[{\"value\":0,\"color\":\"#000000\"},{\"value\":2,\"color\":\"#ffffff\"}]},\"bidx\":[1]}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "legend",
    "json": "{\"version\":\"3.0\",\"legend\":{},\"renderer\":{\"type\":\"gray\",\"bidx\":[1]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "metadata",
    "json": "{\"version\":\"3.0\",\"metadata\":{\"title\":\"No\"},\"renderer\":{\"type\":\"gray\",\"bidx\":[1]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "unknown-root",
    "json": "{\"version\":\"3.0\",\"wrong\":true,\"renderer\":{\"type\":\"gray\",\"bidx\":[1]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "unknown-nested",
    "json": "{\"version\":\"3.0\",\"wrong\":1,\"renderer\":{\"type\":\"gray\",\"bidx\":[1]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "classification",
    "json": "{\"version\":\"3.0\",\"classification\":{\"method\":\"quantile\"},\"renderer\":{\"type\":\"gray\",\"bidx\":[1]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "missing-renderer",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[1]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "missing-version",
    "json": "{\"renderer\":{\"type\":\"gray\",\"bidx\":[1]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "wrong-version",
    "json": "{\"version\":\"1.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "unknown-image-object",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"raster:tile\":{},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/tile/v1.0.0/schema.json\"]}",
    "code": "E_SCHEMA"
  },
  {
    "name": "channels-conflict",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1],\"index\":{\"name\":\"ndvi\"},\"expression\":\"b1\"}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "empty-bands",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "invalid-enum",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"resampling\":{\"read\":\"spline\"}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "invalid-color",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"raster:tile\":{\"background\":\"red\"},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/tile/v1.0.0/schema.json\"]}",
    "code": "E_SCHEMA"
  },
  {
    "name": "invalid-index-roles",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"index\":{\"name\":\"ndvi\",\"bindings\":{\"red\":1}}}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "unregistered-image-size",
    "json": "{\"version\":\"3.0\",\"size\":256,\"renderer\":{\"bidx\":[1],\"type\":\"gray\"}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "invalid-tilesize",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[1],\"type\":\"gray\"},\"raster:tile\":{\"tilesize\":257},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/tile/v1.0.0/schema.json\"]}",
    "code": "E_SCHEMA"
  },
  {
    "name": "operations-empty",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[4,3,2],\"type\":\"rgb\"},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000]]},\"effects\":{\"post_color_formula\":[]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "operations-too-many",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[4,3,2],\"type\":\"rgb\"},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000]]},\"effects\":{\"post_color_formula\":[{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"},{\"op\":\"invert\"}]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "operations-unknown",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[4,3,2],\"type\":\"rgb\"},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000]]},\"effects\":{\"post_color_formula\":[{\"op\":\"exposure\",\"value\":1}]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "operations-gamma-zero",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[4,3,2],\"type\":\"rgb\"},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000]]},\"effects\":{\"post_color_formula\":[{\"op\":\"gamma\",\"value\":0}]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "operations-gamma-missing",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[4,3,2],\"type\":\"rgb\"},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000]]},\"effects\":{\"post_color_formula\":[{\"op\":\"gamma\"}]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "operations-channels-empty",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[4,3,2],\"type\":\"rgb\"},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000]]},\"effects\":{\"post_color_formula\":[{\"op\":\"gamma\",\"value\":1,\"channels\":\"\"}]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "operations-channels-duplicate",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[4,3,2],\"type\":\"rgb\"},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000]]},\"effects\":{\"post_color_formula\":[{\"op\":\"gamma\",\"value\":1,\"channels\":\"rr\"}]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "operations-sigmoid-midpoint",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[4,3,2],\"type\":\"rgb\"},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000]]},\"effects\":{\"post_color_formula\":[{\"op\":\"sigmoidal\",\"contrast\":2,\"midpoint\":1}]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "operations-sigmoid-contrast",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[4,3,2],\"type\":\"rgb\"},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000]]},\"effects\":{\"post_color_formula\":[{\"op\":\"sigmoidal\",\"contrast\":0,\"midpoint\":0.5}]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "operations-brightness-range",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[4,3,2],\"type\":\"rgb\"},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000]]},\"effects\":{\"post_color_formula\":[{\"op\":\"brightness\",\"value\":1.1}]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "operations-contrast-range",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[4,3,2],\"type\":\"rgb\"},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000]]},\"effects\":{\"post_color_formula\":[{\"op\":\"contrast\",\"value\":-1}]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "operations-saturation-range",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[4,3,2],\"type\":\"rgb\"},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000]]},\"effects\":{\"post_color_formula\":[{\"op\":\"saturation\",\"value\":5}]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "operations-saturation-channels",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[4,3,2],\"type\":\"rgb\"},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000]]},\"effects\":{\"post_color_formula\":[{\"op\":\"saturation\",\"value\":1,\"channels\":\"r\"}]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "operations-grayscale-method",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[4,3,2],\"type\":\"rgb\"},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000]]},\"effects\":{\"post_color_formula\":[{\"op\":\"grayscale\",\"method\":\"unknown\"}]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "operations-invert-extra",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[4,3,2],\"type\":\"rgb\"},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000]]},\"effects\":{\"post_color_formula\":[{\"op\":\"invert\",\"value\":true}]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "operations-wrong-type",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[4,3,2],\"type\":\"rgb\"},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000]]},\"effects\":{\"post_color_formula\":{\"op\":\"invert\"}}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "operations-mixed-shortcuts",
    "json": "{\"version\":\"3.0\",\"brightness\":0,\"renderer\":{\"bidx\":[4,3,2],\"type\":\"rgb\"},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000]]},\"effects\":{\"post_color_formula\":[{\"op\":\"saturation\",\"value\":1.2},{\"op\":\"gamma\",\"channels\":\"rb\",\"value\":1.1},{\"op\":\"sigmoidal\",\"channels\":\"rgb\",\"contrast\":6,\"midpoint\":0.5},{\"op\":\"gamma\",\"channels\":\"b\",\"value\":0.9}]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "expression-empty-output",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"language\":\"raster-expr/1\",\"expression\":\"b1;;b2\",\"type\":\"gray\"}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "expression-too-many",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"language\":\"raster-expr/1\",\"expression\":\"b1;b1;b1;b1\",\"type\":\"gray\"}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "expression-whitespace",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"language\":\"raster-expr/1\",\"expression\":\"  \",\"type\":\"gray\"}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "expression-too-long",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"language\":\"raster-expr/1\",\"expression\":\"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\",\"type\":\"gray\"}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "mapping-conflict",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[1],\"type\":\"pseudocolor\",\"colormap\":{\"0\":[0,0,0,0],\"255\":[255,255,255,255]},\"colormap_name\":\"viridis\"},\"stretch\":{\"method\":\"linear\",\"rescale\":[[0,3000]]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "calibration-conflict",
    "json": "{\"version\":\"3.0\",\"unscale\":true,\"calibration\":{\"mode\":\"linear\",\"coefficients\":[{\"band\":1,\"scale\":1,\"offset\":0}]},\"renderer\":{\"bidx\":[1],\"type\":\"gray\"}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "nodata-conflict",
    "json": "{\"version\":\"3.0\",\"nodata\":0,\"renderer\":{\"bidx\":[1],\"type\":\"gray\"},\"nodata_config\":{\"mode\":\"source\"}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "native-map-overlap",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[1],\"type\":\"pseudocolor\",\"colormap\":[[[0,100],[1,2,3,255]],[[90,200],[3,2,1,255]]]}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "native-map-reversed",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[1],\"type\":\"pseudocolor\",\"colormap\":[[[100,0],[1,2,3,255]]]}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "native-map-unsafe-key",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[1],\"type\":\"pseudocolor\",\"colormap\":{\"9007199254740992\":[1,2,3,255]}}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "native-map-bad-color",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[1],\"type\":\"pseudocolor\",\"colormap\":{\"0\":[256,0,0,255]}}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "native-map-float-key",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[1],\"type\":\"pseudocolor\",\"colormap\":{\"0.5\":[1,2,3,255]}}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "no-colormap",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[1],\"type\":\"pseudocolor\"}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "mosaic-stage-required",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[1],\"type\":\"gray\"},\"raster:mosaic\":{\"pixel_selection\":\"first\"},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/mosaic/v1.0.0/schema.json\"]}",
    "code": "E_SCHEMA"
  },
  {
    "name": "unused-rescale",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[1],\"type\":\"gray\"},\"stretch\":{\"rescale\":[[0,1]]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "bidx-expression-conflict",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"bidx\":[4,3,2],\"type\":\"rgb\",\"expression\":\"b1\"}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "flat-style",
    "json": "{\"version\":\"3.0\",\"type\":\"gray\",\"kind\":\"bands\",\"bidx\":[1]}",
    "code": "E_SCHEMA"
  },
  {
    "name": "unregistered-alpha_band",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"alpha_band\":{\"band\":1,\"range\":[0,255]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "unregistered-rules",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"rules\":[]}",
    "code": "E_SCHEMA"
  },
  {
    "name": "unregistered-nodata_color",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"nodata_color\":\"#00000000\"}",
    "code": "E_SCHEMA"
  },
  {
    "name": "unregistered-nodata_config",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"nodata_config\":{\"mode\":\"source\"}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "opacity-object",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"opacity\":{\"value\":1}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "source-palette-expression",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"categorized\",\"color_mapping\":{\"mode\":\"source\"},\"expression\":\"b1+1\"}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "source-palette-index",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"categorized\",\"color_mapping\":{\"mode\":\"source\"},\"index\":{\"name\":\"ndvi\",\"bindings\":{\"red\":1,\"nir\":2}}}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "source-palette-metadata",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"categorized\",\"bidx\":[1],\"color_mapping\":{\"mode\":\"source\"}},\"calibration\":{\"mode\":\"metadata\"}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "source-palette-linear",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"categorized\",\"bidx\":[1],\"color_mapping\":{\"mode\":\"source\"}},\"calibration\":{\"mode\":\"linear\",\"coefficients\":[{\"band\":1,\"scale\":1,\"offset\":0}]}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "exact-rejects-sample-size",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"statistics\":{\"scope\":\"dataset\",\"accuracy\":\"exact\",\"sample_size\":1}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "snapshot-requires-assertions",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"statistics\":{\"ref\":\"stats-1\"}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "range-policy-on-categorized",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"categorized\",\"bidx\":[1],\"color_mapping\":{\"mode\":\"source\"}},\"stretch\":{\"method\":\"none\",\"range_policy\":\"transparent\"}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "range-policy-on-single_color",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"single_color\",\"bidx\":[1],\"color\":\"#ff0000\"},\"stretch\":{\"method\":\"none\",\"range_policy\":\"transparent\"}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "range-policy-on-hillshade",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"hillshade\",\"bidx\":[1],\"terrain\":{\"method\":\"single\"}},\"stretch\":{\"method\":\"none\",\"range_policy\":\"transparent\"}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "range-policy-on-native-data",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"pseudocolor\",\"bidx\":[1],\"colormap\":{\"1\":[255,0,0,255]}},\"stretch\":{\"method\":\"none\",\"range_policy\":\"clamp\"}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "range-policy-on-explicit-data",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"pseudocolor\",\"bidx\":[1],\"color_mapping\":{\"mode\":\"continuous\",\"domain\":\"data\",\"stops\":[{\"value\":0,\"color\":\"#000000\"},{\"value\":1,\"color\":\"#ffffff\"}]}},\"stretch\":{\"method\":\"none\",\"range_policy\":\"clamp\"}}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "rank-before-bidx-bounds",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"raster:mosaic\":{\"pixel_selection\":\"highest\",\"stage\":\"before_channels\",\"rank_channel\":2},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/mosaic/v1.0.0/schema.json\"]}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "rank-before-deduplicates-bidx",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"rgb\",\"bidx\":[1,1,1]},\"raster:mosaic\":{\"pixel_selection\":\"highest\",\"stage\":\"before_channels\",\"rank_channel\":2},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/mosaic/v1.0.0/schema.json\"]}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "rank-before-index-bounds",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"index\":{\"name\":\"ndvi\",\"bindings\":{\"red\":4,\"nir\":8}}},\"raster:mosaic\":{\"pixel_selection\":\"highest\",\"stage\":\"before_channels\",\"rank_channel\":3},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/mosaic/v1.0.0/schema.json\"]}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "rank-before-deduplicates-index",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"index\":{\"name\":\"ndvi\",\"bindings\":{\"red\":4,\"nir\":4}}},\"raster:mosaic\":{\"pixel_selection\":\"lowest\",\"stage\":\"before_channels\",\"rank_channel\":2},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/mosaic/v1.0.0/schema.json\"]}",
    "code": "E_SEMANTIC"
  },
  {
    "name": "reject-protocol-v2",
    "json": "{\"version\":\"2.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "reject-protocol-future",
    "json": "{\"version\":\"4.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "reject-old-mosaic",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"mosaic\":{\"pixel_selection\":\"first\",\"stage\":\"before_channels\"}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "reject-old-image",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"image\":{\"format\":\"png\"}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "reject-old-extension-object",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"extensions\":{\"legacy\":{\"version\":\"1\",\"config\":{}}}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "reject-extension-versions",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"extension_versions\":{\"x\":\"1\"}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "reject-top-level-typo",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"opactiy\":0.5}",
    "code": "E_SCHEMA"
  },
  {
    "name": "reject-unannounced-mosaic",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"raster:mosaic\":{\"pixel_selection\":\"first\",\"stage\":\"before_channels\"}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "reject-unannounced-tile",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"raster:tile\":{\"format\":\"png\"}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "reject-empty-declarations-extra-field",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"extensions\":[],\"custom\":1}",
    "code": "E_SCHEMA"
  },
  {
    "name": "reject-declared-tile-typo",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/tile/v1.0.0/schema.json\"],\"raster:tile\":{\"format\":\"png\"},\"opactiy\":0.5}",
    "code": "E_SCHEMA"
  },
  {
    "name": "reject-duplicate-extension-urls",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/tile/v1.0.0/schema.json\",\"https://mapseekai.github.io/raster-style/extensions/raster/tile/v1.0.0/schema.json\"],\"raster:tile\":{\"format\":\"png\"}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "reject-non-url-extension",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"extensions\":[\"raster:tile\"],\"raster:tile\":{\"format\":\"png\"}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "reject-missing-declared-tile-field",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/tile/v1.0.0/schema.json\"]}",
    "code": "E_SCHEMA"
  },
  {
    "name": "reject-missing-declared-mosaic-field",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"extensions\":[\"https://mapseekai.github.io/raster-style/extensions/raster/mosaic/v1.0.0/schema.json\"]}",
    "code": "E_SCHEMA"
  },
  {
    "name": "reject-legacy-even-with-unknown-schema",
    "json": "{\"version\":\"3.0\",\"renderer\":{\"type\":\"gray\",\"bidx\":[1]},\"extensions\":[\"https://example.test/unresolved/v1.0.0/schema.json\"],\"image\":{\"format\":\"png\"}}",
    "code": "E_SCHEMA"
  },
  {
    "name": "reject-missing-version",
    "json": "{\"renderer\": {\"type\": \"gray\", \"bidx\": [1]}}",
    "code": "E_SCHEMA"
  }
]