Optical and radar imagery
We used Google Earth Engine14 for the systematic extraction and processing of remote sensing data (Supplementary Fig. 8). For optical data, we used Sentinel-2 (ref. 47) multispectral imagery at 10-m resolution in the visible and near-infrared bands (B2, B3, B4, B8) and 20 m in the shortwave-infrared bands (B11, B12). Sensor-provided quality bands were used to mask clouds and cirrus. From these bands, we derived spectral indices including the normalized difference vegetation index48,
$${\rm{NDVI}}=\frac{{\rm{B}}8-{\rm{B}}4}{{\rm{B}}8+{\rm{B}}4},$$
and a modified normalized difference water index49,
$${\rm{M}}{\rm{N}}{\rm{D}}{\rm{W}}{\rm{I}}=\frac{{\rm{B}}3-{\rm{B}}11}{{\rm{B}}3+{\rm{B}}11},$$
as well as a grey-level co-occurrence matrix (GLCM) contrast texture from the near-infrared band (B8) using a 2-pixel window.
For radar data, we used C-band Sentinel-1 (ref. 50) synthetic aperture radar imagery at 10-m resolution in VV and VH polarizations, together with the local incidence angle. From these, we derived the VV/VH backscatter ratio (ratio = VV/VH) and its temporal statistics. To provide further thermal context, we also included Landsat-8 (ref. 51) thermal bands, using the provided quality information to remove clouds and cloud shadows.
For each sensor and band, we aggregated all cloud-free observations between 2017 and 2019 into monthly median composites. From these monthly stacks, we derived per-pixel temporal statistics (multiyear median, standard deviation and maximum), so that for each band b we obtained
$${\tilde{x}}_{b}={{\rm{median}}}_{t}({M}_{b,t}),\,{\sigma }_{b}={{\rm{sd}}}_{t}({M}_{b,t}),\,{x}_{b}^{\text{max}}=\mathop{\text{max}}\limits_{t}({M}_{b,t}),$$
in which M b,t is the monthly median in month t. This yielded, per 10-m pixel, a multisensor predictor image stack summarizing central tendency and intra-annual variability in optical and radar signals.
... continue reading