forked from eea/CLMS_documents
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMRVPP_ATBD_v2.qmd
More file actions
1271 lines (1075 loc) · 93 KB
/
Copy pathMRVPP_ATBD_v2.qmd
File metadata and controls
1271 lines (1075 loc) · 93 KB
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
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
---
title: 'Medium Resolution Vegetation Phenology and Productivity (MR-VPP) – Algorithm Theoretical Basis Document (ATBD)'
subtitle: 'Copernicus Land Monitoring Service'
category: products
author: 'European Environment Agency (EEA)'
date: 2026-06-09
---
Reference Document for **Version 5.0 Issue 2.0**
**Lead service providers for production (SC#5 MR-VPP 2025 Extension):** Flemish Institute for Technological Research, Belgium (VITO), Lund University, Sweden.
**Produced by:** Hongxiao Jin^1^, Zhanzhang Cai^1^, Lars Eklundh^1^, Else Swinnen^2^, Walter Horsten^2^, Tim Ng^2^
^1^ Lund University, Lund, Sweden\
^2^ VITO
**Disclaimer:** © European Union, Copernicus Land Monitoring Service 2026, European Environment Agency (EEA) All Rights Reserved. No parts of this document may be photocopied, reproduced, stored in retrieval system, or transmitted, in any form or by any means whether electronic, mechanical, or otherwise without the prior written permission of the European Environment Agency.
# Introduction
## MR-VPP products summary
Copernicus is the European Union's Earth Observation Programme, providing information services based on satellite observations and in situ (non-space) data. These services are **freely and openly** accessible through six thematic components: atmosphere monitoring, marine environment monitoring, land monitoring, climate change, emergency management, and security.
Within this framework, the **Copernicus Land Monitoring Service (CLMS)** delivers a suite of high-quality bio-geophysical products that describe the status and dynamics of the land surface across pan-European regions. These products support monitoring of vegetation, crop health, the water cycle, the energy budget, and the terrestrial cryosphere. CLMS ensures timely production and delivery, while maintaining consistent, long-term time series for continuous environmental analysis. CLMS is jointly implemented by the European Environment Agency (EEA) and the European Commission's Joint Research Centre (JRC).
**Vegetation phenology** describes the timing of recurring plant life cycle events throughout the growing season. With remote sensing, phenology is typically monitored using time series of vegetation indices. These indices capture the amount of green biomass and the intensity of photosynthetic activity, reflecting plant functional types and their seasonal dynamics.
As part of the pan-European component, CLMS produces and disseminates the **Medium-Resolution Vegetation Phenology and Productivity (MR-VPP) product suite** (Version 5.0). MR-VPP V5.0 is generated at 500 m spatial resolution from MODIS Collection 6.1 NBAR time series (*Terra* and *Aqua*) covering 26 February 2000 to 16 April 2026. The dataset includes annual VPP parameters and 5-day plant phenology index (PPI) outputs, along with quality flags. MR-VPP V5.0 is produced over the EEA39 area (32 EU member states, the UK, and six cooperating countries in the Western Balkans).
MR-VPP Version 5.0 Issue 2.0 extends the product coverage to the year 2025. The phenology retrieval for 2025 was generated using MODIS PPI input data spanning 1 January 2024 to 19 April 2026, ensuring complete temporal coverage for the target year while limiting the processing window. In addition, the full MODIS PPI archive from 24 February 2000 to 19 April 2026 was reprocessed to evaluate the consistency between phenology estimates derived from a limited temporal window and those obtained from the complete long-term record.
Unlike previous releases, this version is accompanied by an **Algorithm Theoretical Basis Document (ATBD)**. Earlier MR-VPP versions were only supported by evaluation reports, partly because the **High-Resolution VPP (HR-VPP)** product was developed immediately after MR-VPP, and an ATBD was prepared for HR-VPP. While HR-VPP and MR-VPP share core algorithms and theoretical foundations, HR-VPP introduced improvements in data handling and adopted a clearer naming scheme. Additional enhancements were implemented in the CLMS CGLOPS1 global Land Surface Phenology (LSP) product, based on PROBA-V and Sentinel-3 OLCI NBAR data. With suitable adaptations, these advances are now applied to MR-VPP to exploit the long MODIS time series (25+ years) and daily observation interval.
Both MR-VPP V5.0 and the previous V4.0 [AD03] rely on MODIS NBAR Collection 6.1 as input. However, V5.0 introduces several important improvements (Table 1), including daily rather than 5-day inputs, an extended time series, enhanced PPI calculation with improved artifact handling, updated QA flags, an upgraded TIMESAT version, harmonized output formats, and a naming scheme consistent with other CLMS LSP products.
::: {.tbl-caption}
```{=typst}
#set text(size: 9pt, fill: rgb("#3E6893"))
```
Table 1. Key improvements in MR-VPP Version 5.0 compared with Version 4.0.
:::
```{=html}
<table>
<colgroup>
<col style="width: 21.7%">
<col style="width: 25.1%">
<col style="width: 26.3%">
<col style="width: 26.9%">
</colgroup>
<tr>
<td style="background-color:#70ad47; color:#ffffff; font-weight:bold;">Items</td>
<td style="background-color:#70ad47; color:#ffffff; font-weight:bold;">Version 5.0 Issue 2.0</td>
<td style="background-color:#70ad47; color:#ffffff; font-weight:bold;">Version 4.0</td>
<td style="background-color:#70ad47; color:#ffffff; font-weight:bold;">Comments</td>
</tr>
<tr>
<td style="background-color:#e2efda"><b>Input data interval</b></td>
<td style="background-color:#e2efda">daily</td>
<td style="background-color:#e2efda">5-day</td>
<td style="background-color:#e2efda">Higher observation frequency reduces uncertainties</td>
</tr>
<tr>
<td style="background-color:#e2efda"><b>Input data span</b></td>
<td style="background-color:#e2efda">Jan 2024 – Apr 2026 (short TS) vs.<br>Feb 2000 – Apr 2026 (long TS)</td>
<td style="background-color:#e2efda">2000 Feb – 2023 Dec</td>
<td style="background-color:#e2efda">Longer record improves interannual consistency; 2024 end-season estimates are more reliable with added 2025 data</td>
</tr>
<tr>
<td style="background-color:#e2efda"><b>PPI calculation</b></td>
<td style="background-color:#e2efda">Improved; excludes artifacts in bright desert/barren regions</td>
<td style="background-color:#e2efda">Artifacts persisted</td>
<td style="background-color:#e2efda">New checks avoid estimates of false seasonality in bright sandy areas</td>
</tr>
<tr>
<td style="background-color:#e2efda"><b>PPI range</b></td>
<td style="background-color:#e2efda">[-1, 5]</td>
<td style="background-color:#e2efda">[-1, 3]</td>
<td style="background-color:#e2efda">Expanded range captures broader vegetation density</td>
</tr>
<tr>
<td style="background-color:#e2efda"><b>PPI quality flags</b></td>
<td style="background-color:#e2efda">Based on QA of both red and NIR NBAR, align with CGLOPS1 LSP (Sentinel-3)</td>
<td style="background-color:#e2efda">Simple binary flag (good/bad)</td>
<td style="background-color:#e2efda">More accurate, supports weighted TIMESAT processing</td>
</tr>
<tr>
<td style="background-color:#e2efda"><b>TIMESAT</b></td>
<td style="background-color:#e2efda">Version 4.2 with Python API and enhanced data check and smoothing.</td>
<td style="background-color:#e2efda">Customized version 4.1.2</td>
<td style="background-color:#e2efda">New release validated globally by third parties in CLMS CGLOPS1 LSP project</td>
</tr>
<tr>
<td style="background-color:#e2efda"><b>Output VPP format</b></td>
<td style="background-color:#e2efda">Harmonized with other CLMS LSP products</td>
<td style="background-color:#e2efda">Legacy format</td>
<td style="background-color:#e2efda">Increases user consistency</td>
</tr>
<tr>
<td style="background-color:#e2efda"><b>Naming scheme</b></td>
<td style="background-color:#e2efda">Consistent with other CLMS LSP products</td>
<td style="background-color:#e2efda">Legacy scheme</td>
<td style="background-color:#e2efda">See Table 7 in Appendix 6.2 for naming correspondence between Version 5.0 and Version 4.0</td>
</tr>
<tr>
<td style="background-color:#e2efda"><b>MR-VPP PPI</b></td>
<td style="background-color:#e2efda">Raw PPI + QA flags at 5-day intervals</td>
<td style="background-color:#e2efda">Fitted PPI; limited data re-use</td>
<td style="background-color:#e2efda">Raw PPI + QA archived for consistency and to enable re-use</td>
</tr>
<tr>
<td style="background-color:#e2efda"><b>Phenology retrieval temporal strategy</b></td>
<td style="background-color:#e2efda">Short processing window fully covering target year, including one preceding year and ~3 months after target year</td>
<td style="background-color:#e2efda">Full multi-decadal time series preferred</td>
<td style="background-color:#e2efda">High consistency confirmed between short time series and long-term processing; supports efficient near-real-time operational updates</td>
</tr>
</table>
```
This ATBD documents the theoretical foundation and algorithmic details of MR-VPP V5.0 production. The product suite provides 13 VPP parameters, derived for up to two growing seasons per year, including the dates of season start, peak, and end, as well as seasonal integrals, derivatives, amplitudes, and maximum values. These are estimated from smooth seasonal trajectories of the **Plant Phenology Index (PPI)**, which combines MODIS NBAR reflectance in red and near-infrared bands. PPI is sensitive to seasonal variations in photosynthetically active leaf area index (LAI). Because these dynamics are driven by solar radiation, temperature, and precipitation, the MR-VPP parameters provide essential indicators of climate impacts on vegetation.
## Scope and objectives
The purpose of this document is to describe the physical and mathematical basis of the algorithm used to generate Version 5.0 of the CLMS MR-VPP product for the years 2000-2025 (26 years).
MR-VPP 500 m Version 5.0 is based on MODIS NBAR data (Collection 6.1) [AD05] and builds on the revised CGLOPS LSP processing chain (Version 2.0) [AD04]. A key improvement is the correction of artifacts in sparsely vegetated areas with bright soil background. In earlier versions, seasonal variations in the Plant Phenology Index (PPI) were incorrectly affected by fluctuations in the Difference Vegetation Index (DVI) of bright soil pixels—signals unrelated to vegetation phenology. These artifacts were particularly evident in Version 4.0 over northern Africa (outside the pan-European domain) but had previously been overlooked.
A further objective of Issue 2.0 is to assess the feasibility of generating reliable phenology products using temporally limited input datasets that fully cover the target year, together with one preceding year and the first months following the target year. This post-target-year extension is intended to provide sufficient temporal context for stabilizing end-of-season detection and reducing edge effects, while avoiding the need to reprocess the complete multi-decadal archive for each annual update. As MR-VPP is expected to transition toward Sentinel-3 OLCI-based continuation, with cross-calibration against the MODIS archivef, this evaluation is relevant for developing efficient annual LSP update strategies. In particular, it supports the assessment of near-real-time (NRT) production approaches for annual LSP metrics, where NRT refers to the annual LSP product for the most recent completed year because LSP metrics are produced at an annual time step. Computational efficiency and storage requirements are therefore critical operational considerations.
This ATBD provides a reference for the theoretical background, algorithmic details, and practical considerations underlying the generation and use of the MR-VPP Version 5.0 product.
## Document structure
This document is structured as follows:
- Chapter 1 provides an introduction to the document.
- Chapter 2 describes input data and vegetation index for MR-VPP.
- Chapter 3 describes the retrieval methodology.
- Chapter 4 describes Post processing and file naming.
- Chapter 5 lists the references cited in this document.
- Chapter 6 contains an appendix with additional information.
## Related documents
### Applicable documents
| | |
|----------|---------------------------------------------------------------------|
| [AD01] | FRAMEWORK SERVICE CONTRACT EEA/DIS/RO/23/007/LOT 1, 26-06-2024 |
| [AD02] | EEA.DIS.R0.23.007_RfS_SC3, 3rd specific contract under Framework Contract nr. EEA/DIS/R0/23/007/LOT 1, 02-04-2025 |
| [AD03] | Medium Resolution Vegetation Phenology and Productivity (MR-VPP) Monitoring Report, v4.0, 13-05-2024, Framework contract No EEA/DIS/R0/22/009/Lot 1 |
| [AD04] | CGLOPS1_ATBD_LSP300m-V2.0: Algorithm Theoretical Basis Document of normalized Land Surface Phenology 300m, version 2.0 |
| [AD05] | MODIS User Guide V006 and V006.1, MCD43A4 NBAR Product, https://www.umb.edu/spectralmass/modis-user-guide-v006-and-v0061/mcd43a4-nbar-product/ |
### Reference documents
All references throughout this document are described in Chapter 5.
## Terminology
### Terms
**Phenology** is broadly defined as *“...the study of recurring plant and animal life cycle stages, especially their timing and relationships with weather and climate."* (Schwartz, 2013), c.f. (Abbe, 1905; Lieth, 1974). In MR-VPP we define phenology more specifically as the timing of development of photosynthetically active leaf foliage. Plant phenology is driven by environment cues on internal physiological processes at molecular level that produce externally observable responses (Chmura et al., 2019; Singh et al., 2017). Some of these responses, such as budset or in-wintering, are difficult to observe, whereas the development of leaf area is visible both to human observers on the ground, and from satellite data. The development of leaf foliage can be described using green **leaf area index (LAI)**, which is a biophysical parameter defined as the one-sided leaf surface area over the corresponding ground area. *Phenological parameters (phenometrics)* describe specific stages on the seasonal growth curve (seasonal trajectory), e.g., the date of the start of the season, the length of the season, or the date of the end of the season.
Leaf area controls the development of plant biomass and the uptake of energy for conversion of light into carbon through photosynthesis, thus **productivity**. Productivity is a term denoting the growth of vegetation, often described as *gross primary productivity (GPP)*, which is the growth due to photosynthesis, or *net primary productivity (NPP* GPP minus the respiration). The absorption of solar energy by the plant canopy is often measured by FAPAR, fraction of absorbed photosynthetically active radiation. There is an asymptotic relationship between FAPAR and LAI leading to a saturation of FAPAR at high LAI. Therefore, FAPAR is a less useful descriptor than LAI of leaf foliage development at high vegetation density. For formulating phenology parameters across a large area, like the European continent, an index that relates closely to LAI is therefore advantageous.
### Abbreviations and acronyms
| | |
|----------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|
| AD | Applicable document |
| AMPL | Seasonal amplitude |
| ATBD | Algorithm Theoretical Basis Document |
| BRDF | Bi-directional Reflectance Distribution Function |
| CGLOPS | Copernicus Global Land Operations |
| CLMS | Copernicus Land Monitoring Service |
| COG | Cloud Optimized GeoTIFF |
| DL | Double-logistic fitting |
| DOY | Day of year |
| DVI | Difference Vegetation Index |
| EEA | European Environment Agency |
| EOS | End of season |
| EOSD | End of season date |
| EOSV | Vegetation index value at EOSD |
| EPSG | European Petroleum Survey Group geodetic parameter dataset |
| ESA | European Space Agency |
| EU | European Union |
| EVI | Enhanced Vegetation Index |
| EVI2 | Two-band Enhanced Vegetation Index |
| FAPAR | Fraction of Absorbed Photosynthetically Active Radiation |
| GDAL | Geospatial Data Abstraction Library |
| GIMMS | Global Inventory Modeling and Mapping Studies |
| GPP | Gross Primary Production |
| HLS | Harmonized Landsat Sentinel-2 |
| HPC | High-Performance Computing |
| HR-VPP | CLMS High Resolution Vegetation Phenology and Productivity dataset |
| IGBP | International Geosphere-Biosphere Program |
| JRC | Joint Research Center |
| LAI | Leaf Area Index |
| LAEA | Lambert azimuthal equal-area projection |
| LENGTH | Length of season |
| LSLOPE | Slope of the green-up period |
| LSP | Land Surface Phenology |
| LUNARC | Lund University Centre for Scientific and Technical Computing |
| MAE | Mean Absolute Error |
| MAXD | Day of the maximum of season |
| MAXV | Maximum value of the season at MAXD |
| MCD43A2 | MODIS BRDF-Albedo Quality product |
| MCD43A4 | MODIS Nadir BRDF-Adjusted Reflectance product |
| MDVI | Maximum DVI over a time period |
| MINV | Minimum value of season. |
| MODIS | Moderate Resolution Imaging Spectroradiometer |
| MR-VPP | CLMS Medium Resolution Vegetation Phenology and Productivity dataset |
| NAISS | National Academic Infrastructure for Supercomputing in Sweden |
| NASA | National Aeronautics and Space Administration of the USA |
| NBAR | Nadir BRDF-Adjusted Reflectance |
| NDVI | Normalized Difference Vegetation Index |
| NIR | Near-Infrared |
| NPP | Net Primary Productivity |
| NRT | Near-real-time |
| OLCI | Ocean and Land Color Instrument |
| PPI | Plant Phenology Index |
| PROBA-V | Project for On-Board Autonomy - Vegetation |
| QA | Quality Assessment |
| RMSE | Root Mean Square Error |
| RSLOPE | Slope of the green-down period |
| SC | Specific Contract |
| SOS | Start of season |
| SOSD | Start of season date |
| SOSV | Vegetation index value at SOSD |
| SP | Spline fitting |
| SPROD | Seasonal productivity |
| TIMESAT | a program for analyzing time-series of satellite sensor data |
| TOC | Top-of-Canopy |
| TPROD | Total productivity |
| TS | Time series |
| ULUND | Lund University |
| USA | United States of America |
| VI | Vegetation Index |
| VIIRS | Visible Infrared Imaging Radiometer Suite |
| VITO | Flemish Institute for Technological Research |
| VPP | Vegetation Phenology and Productivity |
# Input data and plant phenology index for MR-VPP
## Input data
The MR-VPP product is developed from daily 500 m resolution MODIS Nadir Bidirectional Reflectance Distribution Function Adjusted Reflectance (NBAR; MCD43A4 v6.1) together with the MODIS BRDF-Albedo Quality (MCD43A2 v6.1), both obtained from NASA's Level-1 and Atmosphere Archive & Distribution System (LAADS) Distributed Active Archive Center (DAAC)[^1]. For the period 24 February 2000 to 19 April 2026, this amounts to about 9,200 images per tile for the full archive, and 1 January 2024 to 19 April 2026 for the short time series.
[^1]: https://ladsweb.modaps.eosdis.nasa.gov/archive/allData/61/
The NBAR data are corrected using Ross-Thick-Li-Sparse Reciprocal BRDF model to adjust TOC values as if they were collected from a nadir view at local solar noon time. Although generated daily, each NBAR value is based on a 16-day retrieval window, with the date corresponding to the center of the period (Strahler et al., 1999). This product combines observations from both the *Terra* and *Aqua* satellites, choosing the observation at clear sky conditions from each retrieval cycle.

In total, 23 MODIS tiles are required to cover the entire EEA-39 extent and Ukraine of tile h20v03 (Figure 1). Each tile consists of 2400×2400 pixels, and in total ~12 TB of data were downloaded to LUNARC's COSMOS cluster hosted by Lund University, Sweden. LUNARC operates in partnership with NAISS, the Sweden's largest research infrastructure for high-performance computing (HPC), providing AI, storage, cloud services, and expert support for advanced scientific research in Sweden.
## Calculation of PPI
For estimation of phenology, we chose a spectral vegetation index that is responsive to photosynthetically active leaf area index: the plant phenology index (PPI, Jin & Eklundh, 2014).
The formula of PPI (unit: m²·m⁻², Jin & Eklundh, 2014) is:
$$PPI = -K \times \ln\left(\frac{MDVI - DVI}{MDVI - DVI_s}\right)$$
Eq. 1
where DVI is the difference vegetation index. DVI is a dimensionless index and is obtained by subtracting the red TOC reflectance from the near-infrared (NIR) TOC reflectance,
$$DVI = R_{NIR} - R_{RED}$$
Eq. 2
_MDVI_ is the temporal potential maximum DVI, which represents infinite leaf layers for a pixel with leaf traits that suit the environmental conditions of the location. _MDVI_ is estimated from long-term MODIS NBAR data of over 25 years. The MDVI estimation from the maximum value of a long time series of DVI works well in densely vegetated areas due to the asymptotic nature of vegetation spectral reflectance (Tucker, 1977). However, in sparsely vegetated areas, the asymptotic MDVI level cannot be reached, resulting in a small MDVI value. In this case, the logarithm expression in Eq. 1 results in unrealistically large PPI values like dense vegetation. To address this issue, a lower boundary empirical value of 0.18 is assigned as the MDVI value for pixels below this threshold, providing an enhanced spatial consistency in VPP. $DVI_s$ is introduced in Eq.1 to minimize influences of soil background on vegetation signals, and meanwhile to capture sparse vegetation areas such as drylands. The steps for estimating _MDVI_ and $DVI_s$ are _MDVI_ = max(DVI), from the 25 years data. _MDVI_ = 0.18 , for _MDVI_ < 0.18 . $DVI_s$ = min(0.09, $MDVI_{scene}$/4) , and $MDVI_{scene}$ = max(_MDVI_) over a scene. The K factor in PPI is a gain factor given by
$$K = \frac{1}{4Q_E} \frac{1+MDVI}{1-MDVI}$$
Eq. 3
where $Q_E$ is the canopy leaf light extinction efficiency, the ratio of leaf cross-section area on the light beam to leaf geometric cross-section area, unit: m²·m⁻² (Hapke, 1993). $Q_E$ is related to leaf inclination angle, solar angle, and the diffuse fraction of solar radiation:
$$Q_E = d_c + (1-d_c) \cdot \frac{G}{\cos(\theta_i)}$$
Eq. 4
where G is a geometric function of leaf angular distribution, set to 0.5, and $d_c$ is an instantaneous diffuse fraction of solar radiation at 12:00 local solar noon of the day, which is used in MODIS NBAR data normalization. The diffuse fraction at solar zenith angle $\theta_i$ for clear sky of standard atmosphere conditions is used:
$$d_c = 0.0336 + \frac{0.0477}{\cos(\theta_i)}$$
Eq. 5
The range of PPI is restricted between -1 and 5 to reduce the noise sensitivity in high PPI values. Values below -1 are set to -1, and values above 5 are set to 5. We keep the negative PPI values over non-vegetated areas (water, snow, bare ground, etc.) for later potential use in exploring land surface properties other than vegetation. However, in the bare ground areas of bright sandy deserts, seasonal variations in PPI time series occur and are not related to vegetation phenology, which generates artifacts in MR-VPP Version 4.0 and the CGLOPS LSP Version 1.0. Therefore, we use the criteria of $R_{RED} > 0.35$, and $DVI > 0.05$ to identify these bright pixels and assign a value of 0 to PPI. See Figure 9 in Appendix 6.1 for an example of the sum of the Total Production (TPROD) in Season 1 of 2018 generated using Version 5.0, compared with that using Version 4.0.
The calculation of PPI involves three main steps (Figure 2).

## Calculation of PPI Quality flag (QA) values for TIMESAT processing
The PPI data quality is estimated from the NBAR red and NIR bands quality dataset MCD43A2, as a weighted quality of QA of red and NIR bands, with higher weight (0.9) assigned to NIR, and lower weight (0.1) to red. This is because the NIR band provides the majority of information of the vegetation canopy and the red band provides more limited information, due to the fact that NIR light easily can penetrate through a dense canopy and be reflected back to satellite sensors, while red light hardly penetrates through a dense canopy and is mainly reflected back with information from the canopy surface. PPI data quality flag values and weights for TIMESAT processing are listed in Table 2.
::: {.tbl-caption}
```{=typst}
#set text(size: 9pt, fill: rgb("#3E6893"))
```
Table 2. PPI data quality flag QA values and weights for TIMESAT.
:::
| QA | PPI quality | Weight for TIMESAT |
|---------------------------------------------------|-----------------------------------------------------------------------------|------------------------------------------------------------------------|
| 0-1 | Good | 1 |
| 2 | Fair | 0.6 |
| 3-253 | Poor | 0.1 |
| ≥ 254 | No-use | 0 |
The output PPI dataset information is shown in Table 3. Note that PPI data are not planned for further storage or public access.
::: {.tbl-caption}
```{=typst}
#set text(size: 9pt, fill: rgb("#3E6893"))
```
Table 3. PPI data format and data quality flag QA.
:::
```{=html}
<table>
<colgroup>
<col style="width: 21.2%">
<col style="width: 9.5%">
<col style="width: 12.3%">
<col style="width: 14.2%">
<col style="width: 17.5%">
<col style="width: 15.6%">
<col style="width: 9.6%">
</colgroup>
<tr>
<td><b>Name</b></td>
<td><b>Data type</b></td>
<td><b>Scale, offset</b></td>
<td><b>Data range</b></td>
<td><b>Fill value</b></td>
<td><b>Description</b></td>
<td><b>Unit</b></td>
</tr>
<tr>
<td>PPI</td>
<td>INT16</td>
<td>0.001,0</td>
<td>-1000~5000</td>
<td>32767</td>
<td>PPI data</td>
<td>m²·m⁻²</td>
</tr>
<tr>
<td rowspan="6" style="vertical-align: middle">QA</td>
<td rowspan="6" style="vertical-align: middle">UINT8</td>
<td rowspan="6" style="vertical-align: middle">-</td>
<td rowspan="6" style="vertical-align: middle">0~255</td>
<td>255: no observation</td>
<td rowspan="6" style="vertical-align: middle">Quality flag</td>
<td rowspan="6" style="vertical-align: middle">-</td>
</tr>
<tr>
<td>254: invalid PPI due to<br>MDVI<0.09 or infinite PPI</td>
</tr>
<tr>
<td>253: bright soil pixels, with<br>PPI forced to 0 when<br>R<sub>RED</sub> > 0.35, and<br>DVI > 0.05</td>
</tr>
<tr>
<td>252: PPI<-1, truncated to -1</td>
</tr>
<tr>
<td>251: PPI>5, truncated to 5</td>
</tr>
<tr>
<td>250: DVI>MDVI, complex<br>PPI value</td>
</tr>
</table>
```
## Specification of output PPI data
Table 3 shows specifications of the input PPI data used for phenology parameter estimation. While daily input data were applied for VPP estimation, the archive PPI time series were extracted at a nominal 5-day interval (the 1st, 6th, 11th, 16th, 21st, and 26th of each month) to reduce storage requirements, resulting in 72 dates per year. This 5-day interval is aligned with other CLMS dekadal products (1st, 11th, and 21st of each month), and can also be aggregated to a half-month interval (1st, and 16th of each month), facilitating comparison with other satellite data, e.g. GIMMS NDVI/LAI.
# The VPP retrieval Algorithm
## Outline
Calculation of MR-VPP products is based on the following steps: (1) Data preparation: downloading of MODIS NBAR data from NASA's data archive center. (2) Generation of the plant phenology index (PPI) from NBAR at 500 m resolution and daily interval. (3) Processing with TIMESAT version 4.2 to derive smooth seasonal trajectories and phenology and productivity parameters (Figure 3).

For valid land pixels, PPI is computed at daily time step from NBAR. The maximum difference vegetation index (MDVI) values from the entire NBAR time series from 2000 to 2025 are used in the computation. We then process the PPI series in TIMESAT 4.2 to smooth the signal, derive the phenology/productivity metrics, and generate the corresponding QA flags (see Section 3.4).
## Basic underlying assumptions
In this product, phenology is inferred from smoothed seasonal trajectories of vegetation indices that track canopy greening and browning. PPI is designed to follow changes in green (photosynthesizing) leaf area while limiting background effects from soil and snow. Accordingly, the seasonal PPI curves are treated as approximations of the canopy growth cycle — onset, peak, and senescence. There is no universally accepted rule for defining the curve or its key points; however, using a consistent procedure enables robust trend analyses and comparisons across years and regions, and supports interpretation of vegetation responses to phenological drivers (e.g., weather, climate, management, or disturbances).
## Related and previous applications
The CLMS MR-VPP 5.0 is modelled on similar principles as developed for the CLMS *High Resolution Vegetation Phenology and Productivity (HR-VPP)²*, and CLMS CGLOPS land surface phenology V2.0³. However, MODIS provides a 25+ year observation record, and such a long-term series is critical for reliable phenology estimation.
[^2]: https://land.copernicus.eu/en/products/vegetation?tab=vegetation_phenology_and_productivity_parameters
[^3]: https://land.copernicus.eu/en/news/global-land-surface-phenology-2024-product-available
This is the updated version of MR-VPP V5.0 from V4.0 and other previous versions. These previous versions have demonstrated extreme climate impacts over Europe, for example, drought over two decades⁴ and vegetation responses (Jin et al., 2023). However, due to piecewise baseline estimates [AD03], the data amendment with partial processing of additional years only may reduce reliability of inter-annual comparisons. Moreover, VPP parameters estimated for bare areas with no vegetation but bright soil presented false seasonality. Similar artifacts were also observed in CGLOPS1 LSP Version 1.0 using PROBA-V and Sentinel-3 data. These artifacts are caused by seasonal variations in the DVI value of bright soil pixels (likely due to residual seasonal aerosol variations), which then propagate to PPI and subsequently to VPP estimates. Bright sand pixels can have a PPI value as high as sparse green vegetation (0.2~1.0). The seasonal changes of sand pixels are thus caused by variations unrelated to plant phenology.
[^4]: https://www.eea.europa.eu/en/analysis/indicators/drought-impact-on-ecosystems-in-europe
In the new version (V5.0), we have the following updates to mark bright sand pixels:
1. Add thresholds on red reflectance and DVI to flag bright-sand pixels and force ‘no-vegetation’ status (PPI = 0, for $R_{RED} > 0.35$, and $DVI > 0.05$).
2. Introduced a PPI QA flag (QA=253) to track these changes, enabling statistical analysis of the number of such pixels later.
### Time-series smoothing
Many methods exist for smoothing time series and constructing seasonal trajectories. None is universally best (White et al., 2009). Below we summarize commonly used techniques.
**Double-logistic curve fitting** has become a standard in vegetation phenology research because of its robustness to noisy observations (Fisher et al., 2006; Jönsson et al., 2018; Zhang et al., 2003). The method applies non-linear least-squares optimization to functions that capture the general seasonal profile of canopy development. Curve properties such as amplitude, width, and slope are governed by a small set of parameters, and input data points can be weighted by their quality flags. In the CLMS HR-VPP project, TIMESAT 4.1 employed double-logistic fitting to handle the irregular sampling of Sentinel-2 observations (Tian et al., 2021).
**Asymmetric Gaussian fitting** (Jönsson & Eklundh, 2002) shares similarities with the double-logistic approach in that both use non-linear least-squares optimization. However, the asymmetric Gaussian function involves five non-linear parameters compared to four in the double logistic, making it more data-demanding to achieve stable fitting. This optional method is implemented in TIMESAT 3.
**Fourier and sinusoidal (harmonic) functions** represent another class of smoothing approaches (Menenti et al., 1993; Olsson & Eklundh, 1994; Jönsson & Eklundh, 2004; Roerink et al., 2000). These rely on combining sinusoidal terms to approximate seasonal signals. The order of the expansion sets the upper limit on the number of seasons detectable within a time series. Such methods are useful for identifying both the number and approximate timing of growing seasons in noisy data, however, lack accuracy when limiting the models to a few terms.
When input data are frequent and of high quality, several more flexible techniques can be applied. **Savitzky-Golay filtering** (Chen et al., 2004) smooths series by fitting low-order polynomials within a moving window. The choice of window size controls the trade-off between smoothing and fidelity to the data. While the method can yield excellent agreement with ground observations when carefully tuned, poor parameterization may degrade results (Cai et al., 2017). **Smoothing splines** (Craven & Wahba, 1978) provide continuous daily curves with smooth derivatives, but as with Savitzky-Golay, selecting a globally appropriate smoothing parameter is challenging (Cai et al., 2017). **Cubic splines**, which fit piecewise cubic polynomials, offer smoother reconstructions than lower-order splines and effectively reduce artificial oscillations. This method is available in TIMESAT 4. Another option is the **Whittaker smoother** (Eilers, 2003), which, like splines, balances smoothness and flexibility, and has been shown to adapt well to rapid variations in time series (Atzberger & Eilers, 2011).
Ultimately, the characteristics of the input data should guide the choice of method. Given the high temporal resolution of the MR-VPP inputs and following extensive evaluation, we selected **cubic spline fitting** as the preferred time-series smoothing technique for CLMS MR-VPP.
### Output product
The CLMS MR-VPP parameters are listed in Table 4. All output parameters are computed per image pixel and reported to separate output files.
::: {.tbl-caption}
```{=typst}
#set text(size: 9pt, fill: rgb("#3E6893"))
```
Table 4. List of the 13 MR-VPP parameters and the auxiliary quality flag (QA).
:::
```{=html}
<table style="font-size: 9pt">
<colgroup>
<col style="width: 5.8%">
<col style="width: 9.1%">
<col style="width: 9.0%">
<col style="width: 10.8%">
<col style="width: 10.3%">
<col style="width: 9.2%">
<col style="width: 29.6%">
<col style="width: 16.1%">
</colgroup>
<tr style="background-color:#f2f2f2">
<td><b>No.</b></td>
<td><b>Name</b></td>
<td><b>Data type</b></td>
<td><b>Scale, offset</b></td>
<td><b>Data range</b></td>
<td><b>Fill value</b></td>
<td><b>Description</b></td>
<td><b>Unit</b></td>
</tr>
<tr>
<td>1</td>
<td>SOSD</td>
<td>INT16</td>
<td>1, 0</td>
<td>[-365, 365]</td>
<td>-9999</td>
<td>Day of start-of-season</td>
<td rowspan="3" style="text-align:center;vertical-align:middle">Day-Of-Year</td>
</tr>
<tr style="background-color:#f2f2f2">
<td>2</td>
<td>EOSD</td>
<td>INT16</td>
<td>1, 0</td>
<td>[0, 730]</td>
<td>-9999</td>
<td>Day of end-of-season</td>
</tr>
<tr>
<td>3</td>
<td>MAXD</td>
<td>INT16</td>
<td>1, 0</td>
<td>[0, 366]</td>
<td>-9999</td>
<td>Day of maximum-of-season</td>
</tr>
<tr style="background-color:#f2f2f2">
<td>4</td>
<td>SOSV</td>
<td>INT16</td>
<td>0.001, 0</td>
<td>[0, 5000]</td>
<td>-9999</td>
<td>Vegetation index value at SOSD</td>
<td rowspan="5" style="text-align:center;vertical-align:middle">PPI unit<br>m²·m⁻²</td>
</tr>
<tr>
<td>5</td>
<td>EOSV</td>
<td>INT16</td>
<td>0.001, 0</td>
<td>[0, 5000]</td>
<td>-9999</td>
<td>Vegetation index value at EOSD</td>
</tr>
<tr style="background-color:#f2f2f2">
<td>6</td>
<td>MINV</td>
<td>INT16</td>
<td>0.001, 0</td>
<td>[0, 5000]</td>
<td>-9999</td>
<td>Average vegetation index value of minima on left and right sides of each season</td>
</tr>
<tr>
<td>7</td>
<td>MAXV</td>
<td>INT16</td>
<td>0.001, 0</td>
<td>[0, 5000]</td>
<td>-9999</td>
<td>Vegetation index value at MAXD</td>
</tr>
<tr style="background-color:#f2f2f2">
<td>8</td>
<td>AMPL</td>
<td>INT16</td>
<td>0.001, 0</td>
<td>[0, 5000]</td>
<td>-9999</td>
<td>Season amplitude (MAXV – MINV)</td>
</tr>
<tr>
<td>9</td>
<td>LENGTH</td>
<td>INT16</td>
<td>1, 0</td>
<td>[0, 730]</td>
<td>-9999</td>
<td>Length of Season (number of days between start and end)</td>
<td style="text-align:center">day</td>
</tr>
<tr style="background-color:#f2f2f2">
<td>10</td>
<td>LSLOPE</td>
<td>INT16</td>
<td>0.001, 0</td>
<td>[0, 1000]</td>
<td>-9999</td>
<td>Slope of the green-up period</td>
<td rowspan="2" style="text-align:center;vertical-align:middle">m²·m⁻²·day⁻¹</td>
</tr>
<tr>
<td>11</td>
<td>RSLOPE</td>
<td>INT16</td>
<td>0.001, 0</td>
<td>[0, 1000]</td>
<td>-9999</td>
<td>Slope of the green-down period (absolute value of decreasing rate)</td>
</tr>
<tr style="background-color:#f2f2f2">
<td>12</td>
<td>TPROD</td>
<td>INT16</td>
<td>1, 0</td>
<td>[0, 2000]</td>
<td>-9999</td>
<td>Total productivity. Growing season integral computed as the sum of all daily values between SOSD and EOSD.</td>
<td rowspan="2" style="text-align:center;vertical-align:middle">m²·m⁻²·day</td>
</tr>
<tr>
<td>13</td>
<td>SPROD</td>
<td>INT16</td>
<td>1, 0</td>
<td>[0, 2000]</td>
<td>-9999</td>
<td>Seasonal productivity. Growing season integral computed as sum of all daily values minus their base level value.</td>
</tr>
<tr style="background-color:#f2f2f2">
<td colspan="2" style="text-align:center"><b>Aux QA</b></td>
<td>UINT8</td>
<td>-</td>
<td>-</td>
<td>255</td>
<td>Quality flag</td>
<td style="text-align:center">-</td>
</tr>
</table>
```
The valid range of the Start-Of-Season Date (SOSD) is [-365, 365]. A negative SOSD value indicates that the peak of growing season is located in the current year and the start of the season is located in the previous year. Similarly, the valid range of the End-Of-Season Date (EOSD) is [0, 730]. Values of EOSD > 365 indicate that the peak of growing season is in the current year, while the end of the season extends into the following year.
For reliable interpretation, VPP parameters should always be used in conjunction with their associated Quality Assurance (QA) flag (see Section 3.4.8). When only a single year of data is available, phenology metrics with values below 0 or above 425 (365 + 60) are considered unreliable (QA = 3, poor quality; see Table 5). When multiple years of data are used as input, these metrics may be reliable depending on the corresponding QA values.
### Evaluation of Short Time-Series Processing for Operational Phenology Retrieval
Phenology retrieval generally benefits from long and temporally continuous input time series, which provide temporal context for seasonal curve fitting and reduce edge effects near the beginning and end of the analysed period. However, operational Land Surface Phenology (LSP) production also requires timely delivery and efficient use of computational and storage resources. Reprocessing complete multi-decadal archives for every annual update may therefore be inefficient, particularly for continental- to global-scale applications.
To assess whether a shorter processing window can provide reliable annual phenology estimates, MR-VPP Version 5.0 Issue 2.0 was generated for the year 2025 using MODIS PPI input data from 1 January 2024 to 19 April 2026. This window fully covers the target year, includes one preceding year, and extends into the first months following the target year to support end-of-season detection and reduce temporal boundary effects. The resulting 2025 VPP products were compared with independently generated products derived from the full MODIS PPI archive spanning 24 February 2000 to 19 April 2026.
The comparison showed strong overall consistency between the short time series and full-archive processing approaches, particularly for the primary growing season. Timing, magnitude, and productivity metrics showed high agreement, with only small systematic differences. The secondary growing season showed somewhat larger uncertainty, reflecting its more limited spatial extent and weaker seasonal signal in Europe. Overall, the evaluation indicates that a temporally buffered short time series approach can support efficient annual LSP update strategies, while full-archive processing remains preferable for retrospective consistency checks and non-time-critical reprocessing.
Detailed comparison methods, spatial examples, scatter plots, metric-level statistics, and QA analyses are provided in Appendix 6.3.
## Detailed algorithm description
### Extraction of phenology and productivity parameters using TIMESAT
An overview of TIMESAT version 4.2 processing is shown in Figure 4.

### Pre-processing
TIMESAT receives PPI time-series data that may include some noise and temporal gaps. The pre-processing is the first processing step for the input data, containing several parts: determining the base level, setting data weights, adding control points to data gaps, and determining the coarse growing seasons. The pre-processing has four purposes: (1) to transfer the input data (PPI and QA data) to pixel-oriented time series for the later processing; (2) to fill large data gaps exceeding 91 continuous days with a predefined base level; (3) to preliminarily determine whether a time series needs to be excluded from processing; and (4) to make a preliminary analysis of seasonality (number of potential seasons) and to establish the rough timing of each coarse season.
The 91-day gap detection and filling mainly address the high-latitude winter seasons that are masked out in the BRDF data. We determine the base level as the 5th percentile of the acceptable quality PPI observations (weight > 0) over the full period. The weights of PPI values in a time series are set based on QA data. Further, weights of PPI observations that are lower than the base level are set to 0. The base level is used for filling long term data gaps and assisting the cubic spline fitting. TIMESAT will detect whether there are enough good-quality data on the time series, see Section 3.4.7 for details. This step is to ensure the operation of fitting the cubic spline functions.
### PPI fitting to daily data
We fit a cubic smoothing spline $S_p(t)$ (Craven & Wahba, 1978) to the PPI time series by minimizing the value of the following criterion function $C_p$
$$C_p = \sum_{i=1}^{n} \lbrace w_i [y_i - S_p(t_i)]^2 \rbrace + p \int_{-\infty}^{+\infty} [S^{''}_p(t)]^2 dt$$
Eq. 7
where $t_i, i = 1, ..., n$ is time vector and $y_i$ are corresponding PPI values. Each point in the time series is associated with an input weight $w_i$. The smoothing parameter p controls the shape of the spline, varying from an exactly interpolating spline (p = 0) to a straight line (p → ∞). The p value is set to 1,000, which can reduce the impact of noise while preserving sufficient local variation.
### Extraction of phenology and productivity parameters
An initial pixel-wise estimate of the growing seasons' start and stop dates (“coarse seasons”) is determined by applying a sinusoidal function fitting
$$f(t) = c_1 + c_2 \sin(\omega t) + c_3 \cos(\omega t) + c_4 \sin(2\omega t) + c_5 \cos(2\omega t)$$
Eq. 8
where ω = 2π/n, and n is the number of points, f(t) is the corresponding PPI value at time t. The coarse seasons are further used for defining potential seasons.
The derivation of VPP metrics from the daily PPI time series follows the approaches used in CGLOPS1 LSP product [AD04], and is similar to those applied in the MCD12Q2 and HLS phenology products (Bolton et al., 2020; Gray et al., 2019). TIMESAT takes the smoothed daily PPI, extracts the metrics, applies quality checks, and assigns seasons to calendar years (Figure 5). In total, thirteen metrics together with per-season quality information are produced for delivery (Table 4).

### Defining growing season thresholds
TIMESAT locates SOSD and EOSD using relative-amplitude thresholds on the fitted seasonal curve. After SOS and EOS are set, the remaining VPP metrics are computed. For consistency with previous versions of MR-VPP and other related CLMS products, we use 25% for SOSD and 15% for EOSD.
### Assigning seasons to years
Because some seasons cross calendar boundaries, we assign seasons to the year of their peak (e.g., a–A–b to 2018; c–C–d–D–e to 2019 in Figure 6). MR-VPP stores up to two seasons per year: the two with the largest peaks are kept and presented chronologically, so Season 1 can be the minor or the main season depending on timing.

### Defining thresholds for omitting seasons and regions
In three scenarios, the VPP are set to nodata-values (with QA=255) and the TIMESAT processing is skipped (BOX 1):
1. If the total number of valid observations is too low, less than 3 points per year on average throughout the entire time series. This primarily applies to areas lacking valid observations.
2. If the first-order PPI differences are minimal, less than 3 points per year on average with first-order differences greater than 1×10⁻⁶. This indicates weak seasonality, making it difficult to precisely determine phenological parameters, and mainly occurs with sustained evergreen vegetation.
**BOX 1 Pseudo script for omitting seasons and regions**
```bash
! Default.
process = True
Point_Threshold = 3*number_of_years
Scenario 1
! total_npt: total number of points
! y: PPI time series of daily interval
if count[points with weight > 0] < Point_Threshold, process = False
Scenario 2
if count[diff(y) > 1.d-6] < Point_Threshold, process = False
Scenario 3
if count[y > (0.02*peak_value)] < Point_Threshold, process = False
```
3. If the number of points with PPI values above 2% of the peak value is less than 3 points per year on average. This primarily filters out inland water bodies with low PPI values occasionally exhibiting few extreme values possibly caused by noise.
### VPP QA
VPP Quality Assurance (QA) is assigned based on both the average of PPI-BRDF-weights (defined from the PPI QA in Table 2 and the total number of valid observations in each of the phenological phases: green-up, green peak, and green-down of the growing season. They are defined as the left 20% – left 80%, left 80% – right 80%, and right 80% – right 20% of the season amplitude respectively (Figure 7). The overall QA is determined based on the leverage of the quality of the three phases.

Eight-bit (1 byte) QA values are generated as specified in Figure 8, and the details of bit values and descriptions are listed in Table 5. The QA flag is written to one output file for each season.

::: {.tbl-caption}
```{=typst}
#set text(size: 9pt, fill: rgb("#3E6893"))
```
Table 5. MR-VPP QA flags and descriptions of phenology quality.
:::
```{=html}
<table>
<colgroup>
<col style="width: 21.8%">
<col style="width: 23.8%">
<col style="width: 54.4%">
</colgroup>
<tr>
<td colspan="3" style="background-color:#70ad47; color:#ffffff; font-weight:bold;">SOS/Peak/EOS quality (two-bit values)</td>
</tr>
<tr>
<td style="background-color:#e2efda"><b>QA byte</b></td>
<td style="background-color:#e2efda"><b>Quality</b></td>
<td style="background-color:#e2efda"><b>Description</b></td>
</tr>
<tr>
<td style="background-color:#e2efda">0</td>
<td style="background-color:#e2efda">Best</td>
<td style="background-color:#e2efda">More than 2 valid observations and average best PPI quality</td>
</tr>
<tr>
<td style="background-color:#e2efda">1</td>
<td style="background-color:#e2efda">Good</td>
<td style="background-color:#e2efda">More than 2 valid observations and average good PPI quality</td>
</tr>
<tr>
<td style="background-color:#e2efda">2</td>
<td style="background-color:#e2efda">Fair</td>
<td style="background-color:#e2efda">More than 2 valid observations and average fair PPI quality</td>
</tr>
<tr>
<td style="background-color:#e2efda">3</td>
<td style="background-color:#e2efda">Poor</td>
<td style="background-color:#e2efda">Average poor PPI data quality, or<br>fewer than 3 observations, or more than 24 observations*</td>
</tr>
<tr>
<td colspan="3" style="background-color:#70ad47; color:#ffffff; font-weight:bold; text-align:center">Overall quality (two-bit values)</td>
</tr>
<tr>
<td style="background-color:#e2efda">0</td>
<td style="background-color:#e2efda">Best</td>
<td style="background-color:#e2efda">No poor quality in three phenology phases</td>
</tr>
<tr>
<td style="background-color:#e2efda">1</td>
<td style="background-color:#e2efda">Good</td>
<td style="background-color:#e2efda">Maximum one phase with poor quality</td>
</tr>
<tr>
<td style="background-color:#e2efda">2</td>
<td style="background-color:#e2efda">Fair</td>
<td style="background-color:#e2efda">Maximum two phases with poor quality</td>
</tr>
<tr>
<td style="background-color:#e2efda">3</td>
<td style="background-color:#e2efda">Poor</td>
<td style="background-color:#e2efda">All three phases with poor quality**</td>
</tr>
<tr>
<td colspan="3" style="background-color:#70ad47; color:#ffffff; font-weight:bold; text-align:center">Summary of QA (byte values)</td>
</tr>
<tr>
<td style="background-color:#e2efda">QA <127</td>
<td style="background-color:#e2efda">Good</td>
<td style="background-color:#e2efda">Overall good quality, no more than one poor results in three phases</td>
</tr>
<tr>
<td style="background-color:#e2efda">QA >127</td>
<td style="background-color:#e2efda">Poor</td>
<td style="background-color:#e2efda">Overall poor quality, more than one poor results in three phases</td>
</tr>
<tr>
<td style="background-color:#e2efda">QA=255</td>
<td style="background-color:#e2efda">Failure</td>
<td style="background-color:#e2efda">No input, or no phenology estimation, or all poor estimates</td>
</tr>
</table>
```
**Notes:**
\* Includes three situations: 1) fewer than 3 valid observations, 2) phenology phase shorter than 10 days, and 3) phenology phase longer than 4 months.
** Overlaps QA=255 for situations of no inputs, or no phenology estimation. In any case, the VPP retrieval is considered a failure.
## Limitations of the algorithm
While PPI is a physically based index responding to green leaf area index (LAI) variations, it is based on some simplified assumptions. The vegetation canopy is treated like a turbid medium. In forest, violation of this assumption may be significant. Another assumption is that all vegetation is modelled with spherical (uniform) leaf angular distribution (G function in Eq. 4 is 0.5), but this may be violated in cases of erectophile (e.g. cereals) or planophile (e.g. potatoes) crops. Also, the lower bound of the MDVI value is empirically set at 0.18 based on exploratory analysis of MDVI histograms. The soil reflectance is assumed not to change with time.
PPI is scaled between DVI of soil and a maximum DVI. These values represent pure soil and an infinitely thick canopy layer for a specific site. Random variations and noise in these values do not affect the value of PPI much during the start and the end of the season, but may affect the PPI values greatly during the peak growing season. The logarithmic expression in PPI makes high values sensitive to noise. Therefore, the index has been limited to 5.0 in the global context, and it is further being smoothed using TIMESAT.
In crop rotation systems, the assumption of fixed level of maximum DVI is violated, which could lead to underestimation of the seasonal trajectory for the sparser crop. It has been noted that PPI is less sensitive to sparse vegetation than e.g. NDVI. This may lead to underestimation of winter crops or cover crops before the onset of the main growth period in springtime.
In sparsely vegetated areas, reaching an MDVI value representing a sufficiently thick leaf layer is unattainable, making it impossible to estimate a correct MDVI value from the long period of DVI time series. Therefore, we opt to assign an empirical MDVI value of 0.18 to pixels with MDVI values below this threshold.
Although longer time series are generally preferred in phenology estimation because they improve smoothing stability and reduce temporal edge effects, the present evaluation demonstrates that a substantially shorter processing window can provide highly consistent annual phenology estimates when the temporal coverage adequately brackets the target year. Nevertheless, regions with highly irregular seasonality, persistent cloud contamination, or incomplete annual observations may remain more sensitive to temporal window length. Therefore, for future 2026 VPP near-real-time implementations, it is recommended that the 2025 VPP product be regenerated using input time series spanning January 2024 to April 2027, termed non-time-critical product, thereby ensuring at least one complete calendar year of observations both before and after 2025.
Data gaps in winter are filled by the base level value, which may hide some winter crops of low PPI from being detected. Although the smoothing spline can adapt to situations of irregular seasons, there is still no guarantee that all local variation will be detected.
The gap detection method could influence the coarse season detection due to data availability. An extreme case is when there are only few good observations with high-quality PPI values in a window larger than 91 days, leading to seasons being determined by these few data points. To address such cases, we assigned a poor quality (QA=“11”) for the corresponding phenology metrics determined by fewer than 3 valid data points. Caution should be taken when using phenology metrics with poor QA.
The retrieval of a second growing season is generally associated with greater uncertainty than the first growing season. Double-season phenological cycles occur only in relatively limited regions of Europe, primarily in intensive agricultural areas or regions with favorable climatic conditions for multiple crop cycles. Consequently, the number of valid observations supporting the second season is often lower, and the corresponding phenology metrics typically exhibit lower QA compared with the primary growing season.
In addition, the assignment of a growing season to a specific calendar year is based on the timing of the seasonal maximum (MAXD). A season is attributed to the year in which the peak of the fitted seasonal trajectory occurs. For growing seasons with maxima occurring close to the beginning or end of a calendar year, this assignment may become ambiguous, particularly in regions with winter crops or prolonged seasonal activity spanning two calendar years. As a result, caution is required when interpreting annual productivity metrics strictly within calendar-year boundaries, especially for analyses involving second growing seasons or cross-year seasonal dynamics.
Finally, since the outputs only allow a maximum of two seasons per year, some minor seasons may be missed if there are more than two cycles per year, which means that the outputs may not present all cycles, e.g., in the case of multiple moving events in grasslands.
## Risk of failure and mitigation measures
The estimation of VPP critically depends on the availability and quality of the input data, as any loss of accuracy in these data may propagate into the output products. MODIS, onboard *Terra* (launched in December 1999) and *Aqua* (launched in May 2002), was originally designed for a nine-year mission but has continued to operate for over 20 years due to their excellent performance. Over the extended lifetime, orbit drift has been a significant issue. For example, *Terra*'s equatorial crossing time shifted from its nominal 10:30 a.m. to about 9:00 a.m., while *Aqua* drifted from 1:30 p.m. to progressively late in the afternoon, thereby altering illumination geometry at the time of sensing. However, MR-VPP uses the MODIS MCD43A4 NBAR product, in which reflectance is BRDF-normalized to nadir view at local solar noon using multi-date, multi-angular Terra and Aqua observations. This normalization substantially reduces the direct influence of orbit-drift-related changes in viewing geometry. Remaining risks are mainly indirect, including changes in observation availability, angular sampling, atmospheric conditions, cloud and snow screening, and BRDF inversion quality during the later MODIS record. These effects should be monitored using the MCD43 quality layers and product consistency checks. To enhance reliability, VIIRS NBAR data (available since 2012) can serve as an alternative to the MODIS equivalent. Looking ahead, the transition from MODIS/VIIRS to Sentinel-3 OLCI for MR-VPP is underway, with particular attention to harmonizing the spectral band properties of the sensors.
# Post processing and file naming
## Post processing
The 23 tiles data were mosaicked into a single image per variable to cover the entire pan-European region. Nearest-neighbour sampling was used to reproject the original sinusoidal projection to the Lambert azimuthal equal-area projection (LAEA, EPSG: 3035). The outputs were saved in Cloud Optimized GeoTIFF (COG) format. A bash script using GDAL to mosaic and reproject the VPP parameters is shown in BOX2. Similar post-processing was applied to PPI time series.
**BOX 2 Mosaic 23 tiles and reproject into LAEA projection.**
```bash
#!/usr/bin/env bash
set -euo pipefail
ROOT="~/proj/HRVPP2/MRVPP_2024/LSP" # input tiles root
OUTDIR="./MRVPP_13VPP_QA" # output folder
SEASONS=("season1" "season2")
YEARS=($(seq 2000 2024))
PARAMS=("SOSD" "SOSV" "LSLOPE" "EOSD" "EOSV" "RSLOPE" "LENGTH" "MINV" "MAXD"
"MAXV" "AMPL" "TPROD" "SPROD" "QA")
# Optional NoData (uncomment & set if known; otherwise VRT inherits per-tile NoData)
# Target projection
T_SRS="EPSG:3035"
# target sampling method
RESAMP="near"
# target resolution or TR = (500 500) for 500 m resolution output
TR=(392 392)
for season in "${SEASONS[@]}"; do
for year in "${YEARS[@]}"; do
for param in "${PARAMS[@]}"; do
listfile="$(mktemp "/tmp/list_${param}_${year}_${season}_XXXX.txt")"
vrt="${OUTDIR}/${param}_${year}_${season}.vrt"
tif="${OUTDIR}/${param}_${year}_${season}.tif"
tif3035="${OUTDIR}/${param}_${year}_${season}_cog.tif"
# find tiles
find "$ROOT" -type f -name "*_${year}_${season}_${param}.tif" | sort > "$listfile"
n=$(wc -l < "$listfile" || echo 0)
echo "[${param} ${year} ${season}] Found $n tiles"
if [[ "$n" -eq 0 ]]; then
echo "[${param} ${year} ${season}] No tiles -> skip"
rm -f "$listfile"
continue
fi
# build VRT (inherit or set NoData)
if [ -n "${NODATA:-}" ]; then
gdalbuildvrt -srcnodata "$NODATA" -vrtnodata "$NODATA" \
-input_file_list "$listfile" "$vrt"
else
gdalbuildvrt -input_file_list "$listfile" "$vrt"
fi
# translate to compressed, tiled BigTIFF (same SRS as inputs)
gdal_translate "$vrt" "$tif" -of COG -co TILED=YES -co COMPRESS=LZW -co BIGTIFF=YES
# prepare nodata flags for warp (if defined)
warp_nodata_args=()
if [ -n "${NODATA:-}" ]; then
warp_nodata_args=(-srcnodata "$NODATA" -dstnodata "$NODATA")
fi
# reproject to EPSG:3035 (LAEA); -multi + all CPUs for speed
gdalwarp -t_srs "$T_SRS" -r "$RESAMP" -tr "${TR[@]}" -multi -wo NUM_THREADS=ALL_CPUS \
"${warp_nodata_args[@]}" \
-co TILED=YES -co COMPRESS=LZW -co BIGTIFF=YES \
"$tif" "$tif3035"
rm -f "$tif"
rm -f "$listfile" "$vrt"
echo "[${param} ${year} ${season}] -> $tif3035"
done
done
done
echo "All done. EPSG:3035 outputs in: $OUTDIR"
```
## File naming
The naming of delivered files is given in Table 6.
::: {.tbl-caption}
```{=typst}
#set text(size: 9pt, fill: rgb("#3E6893"))
```
Table 6. Filename specifications for PPI and MR-VPP V5.0.
:::
```{=html}
<table>
<colgroup>
<col style="width: 32.5%">
<col style="width: 46.4%">
<col style="width: 21.0%">
</colgroup>
<tr>
<td style="background-color:#c5e0b4;font-weight:bold">Data</td>
<td style="background-color:#c5e0b4;font-weight:bold">Filename</td>
<td style="background-color:#c5e0b4;font-weight:bold">Description</td>
</tr>
<tr>
<td rowspan="13" style="background-color:#c5e0b4;vertical-align:middle;text-align:center">
<b>MR-VPP<br>13 VPP<br>metrics</b>
</td>
<td><code>SOSD_YYYY_<s1 or s2>_cog.tif</code></td>
<td>Day of start-of-season</td>
</tr>
<tr>
<td><code>EOSD_YYYY_<s1 or s2>_cog.tif</code></td>
<td>Day of end-of-season</td>
</tr>
<tr>
<td><code>MAXD_YYYY_<s1 or s2>_cog.tif</code></td>
<td>Day of maximum-of-season</td>
</tr>
<tr>
<td><code>SOSV_YYYY_<s1 or s2>_cog.tif</code></td>
<td>Vegetation index value at SOSD</td>
</tr>
<tr>
<td><code>EOSV_YYYY_<s1 or s2>_cog.tif</code></td>
<td>Vegetation index value at EOSD</td>
</tr>
<tr>
<td><code>MINV_YYYY_<s1 or s2>_cog.tif</code></td>
<td>Average vegetation index value of<br>minima on left and right sides of<br>each season</td>
</tr>
<tr>
<td><code>MAXV_YYYY_<s1 or s2>_cog.tif</code></td>
<td>Vegetation index value at MAXD</td>
</tr>
<tr>
<td><code>AMPL_YYYY_<s1 or s2>_cog.tif</code></td>
<td>Season amplitude (MAXV - MINV)</td>
</tr>
<tr>
<td><code>LENGTH_YYYY_<s1 or s2>_cog.tif</code></td>
<td>Length of Season (number of days<br>between start and end)</td>
</tr>
<tr>
<td><code>LSLOPE_YYYY_<s1 or s2>_cog.tif</code></td>
<td>Slope of the green-up period</td>
</tr>
<tr>
<td><code>RSLOPE_YYYY_<s1 or s2>_cog.tif</code></td>
<td>Slope of the green-down period<br>(absolute value of decreasing rate)</td>
</tr>
<tr>
<td><code>TPROD_YYYY_<s1 or s2>_cog.tif</code></td>
<td>Total productivity. Growing season<br>integral computed as the sum of all<br>daily values between SOSD and EOSD.</td>
</tr>
<tr>
<td><code>SPROD_YYYY_<s1 or s2>_cog.tif</code></td>
<td>Seasonal productivity. Growing season<br>integral computed as sum of all daily<br>values minus their base level value.</td>
</tr>
<tr>
<td style="background-color:#a9d18e;text-align:center"><b>Aux</b></td>
<td><code>QA_YYYY_<s1 or s2>_cog.tif</code></td>
<td>VPP Quality flag</td>
</tr>
<tr>
<td rowspan="2" style="background-color:#92d050;vertical-align:middle;text-align:center">
<b>MR-VPP<br>PPI<br>Time<br>series</b>
</td>
<td><code>PPI.YYYY.MM.DD_laea_cog.tif</code></td>
<td>PPI calculation</td>
</tr>
<tr>
<td><code>QA.YYYY.MM.DD_laea_cog.tif</code></td>
<td>PPI data quality</td>
</tr>
</table>
```
Note: YYYY for year, e.g. 2000, 2001, ..., 2024, 2025.
# References
* Abbe, C. (1905). *A first report on the relations between climates and crops*. Government Printing Office.
* Atzberger, C., & Eilers, P. H. C. (2011). A time series for monitoring vegetation activity and phenology at 10-daily time steps covering large parts of South America. *International Journal of Digital Earth, 4*(5), 365-386. https://doi.org/10.1080/17538947.2010.505664
* Bolton, D. K., Gray, J. M., Melaas, E. K., Moon, M., Eklundh, L., & Friedl, M. A. (2020). Continental-scale land surface phenology from harmonized Landsat 8 and Sentinel-2 imagery. *Remote Sensing of Environment, 240*, 111685. https://doi.org/10.1016/j.rse.2020.111685
* Cai, Z., Jönsson, P., Jin, H., & Eklundh, L. (2017). Performance of Smoothing Methods for Reconstructing NDVI Time-Series and Estimating Vegetation Phenology from MODIS Data. *Remote Sensing, 9*(12), 1271. https://doi.org/10.3390/rs9121271
* Chen, J., Jönsson, P., Tamura, M., Gu, Z. H., Matsushita, B., & Eklundh, L. (2004). A simple method for reconstructing a high-quality NDVI time-series data set based on the Savitzky-Golay filter. *Remote Sensing of Environment, 91*(3-4), 332-344. https://doi.org/10.1016/j.rse.2004.03.014
* Chmura, H. E., Kharouba, H. M., Ashander, J., Ehlman, S. M., Rivest, E. B., & Yang, L. H. (2019). The mechanisms of phenology: the patterns and processes of phenological shifts. *Ecological Monographs, 89*(1), e01337. https://doi.org/10.1002/ecm.1337
* Craven, P., & Wahba, G. (1978). Smoothing noisy data with spline functions. *Numerische Mathematik, 31*(4), 377-403. https://doi.org/10.1007/BF01404567
* Eilers, P. H. C. (2003). A Perfect Smoother. *Analytical Chemistry, 75*(14), 3631-3636. https://doi.org/10.1021/ac034173t
* Fisher, J. I., Mustard, J. F., & Vadeboncoeur, M. A. (2006). Green leaf phenology at Landsat resolution: Scaling from the field to the satellite. *Remote Sensing of Environment, 100*(2), 265-279. https://doi.org/10.1016/j.rse.2005.10.022
* Gray, J., Sulla-Menashe, D., & Friedl, M. A. (2019). *User guide to collection 6 modis land cover dynamics (MCD12Q2) product*.
* Hapke, B. (1993). *Theory of reflectance and emittance spectroscopy*. Cambridge University Press.
* Jin, H., & Eklundh, L. (2014). A physically based vegetation index for improved monitoring of plant phenology. *Remote Sensing of Environment, 152*(0), 512-525. https://doi.org/10.1016/j.rse.2014.07.010
* Jin, H., Vicente-Serrano, S. M., Tian, F., Cai, Z., Conradt, T., Boincean, B., Murphy, C., Farizo, B. A., Grainger, S., López-Moreno, J. I., & Eklundh, L. (2023). Higher vegetation sensitivity to meteorological drought in autumn than spring across European biomes. *Communications Earth & Environment, 4*(1), 299. https://doi.org/10.1038/s43247-023-00960-w
* Jönsson, P., Cai, Z., Melaas, E., Friedl, M., & Eklundh, L. (2018). A Method for Robust Estimation of Vegetation Seasonality from Landsat and Sentinel-2 Time Series Data. *Remote Sensing, 10*(4), 635. http://www.mdpi.com/2072-4292/10/4/635
* Jönsson, P., & Eklundh, L. (2002). Seasonality extraction by function fitting to time-series of satellite sensor data. *IEEE Transactions on Geoscience and Remote Sensing, 40*(8), 1824-1832. https://doi.org/10.1109/Tgrs.2002.802519
* Jönsson, P., & Eklundh, L. (2004). TIMESAT – a program for analyzing time-series of satellite sensor data. *Computers & Geosciences, 30*(8), 833-845.
* Lieth, H. (1974). *Phenology and Seasonality Modeling (Ecological Studies-Analysis and Synthesis Series, Vol 8)*. Springer-Verlag