Repository navigation
Concepts
What all the tools share: which variables there are, how the region and the period are given, how time and space are summarized and which filters are applied. Python, R, the MCP server and the QGIS plugin use the same option names, so this page is valid for all four.
Those of the MonitorEO catalog, computed with Google Earth Engine:
| Variable | What it measures | Sensors (pixel) | Unit |
|---|---|---|---|
NDVI |
Normalized difference vegetation index | Sentinel-2 (10 m), Landsat (30 m), MODIS Terra MOD13Q1 and Aqua MYD13Q1 (250 m) | – |
EVI |
Enhanced vegetation index | Sentinel-2, Landsat, MODIS MOD13Q1 and MYD13Q1 | – |
LAI |
Leaf area index | MODIS MCD15A3H (500 m) | – |
Chl-a |
Chlorophyll concentration (water) | Sentinel-2, MODIS Aqua and Terra L3SMI (4.6 km) | mg m⁻³ |
NDCI |
Normalized difference chlorophyll index (water) | Sentinel-2 | – |
NDWI |
Normalized difference water index | Sentinel-2, Landsat, MODIS MOD09GA (463 m, until 2023) | – |
LSWI |
Land surface water index | Sentinel-2, Landsat | – |
NDSI |
Normalized difference snow index | Sentinel-2, Landsat, MODIS MOD10A1 and MYD10A1 (500 m) | – |
ET |
Evapotranspiration | MODIS MOD16A2 (500 m) | kg/m²/8 days |
LE |
Latent heat | MODIS MOD16A2 | J/m²/day |
LST |
Land surface temperature | Landsat, MODIS MOD11A1 and MYD11A1 (1 km) | ºC |
ALBEDO |
Albedo | Sentinel-2, Landsat, MODIS MCD43A3 (500 m) | – |
ARSL |
Aerosol optical depth | MODIS MCD19A2 (1 km) | – |
NBR |
Normalized burn ratio (fires) | Sentinel-2, Landsat | – |
The sensors are written Sentinel-2, Landsat (Landsat 5, 7 until May 2003, 8 and 9 together) and Modis.
Available dates: Sentinel-2 from 28-3-2017, Landsat from 1984 and MODIS from 2000 (Aqua from July 2002).
Each sensor has its pixel size (the spatial resolution), its frequency and its dates:
| Sensor | Pixel | One image every | From | For |
|---|---|---|---|---|
| Sentinel-2 | 10 m (20 m the shortwave infrared bands, which LSWI and NBR use) | about 5 days | 28-3-2017 | Small or detailed areas (plots, edges, lagoons) and recent periods |
| Landsat | 30 m | 16 days (8 when two satellites are in orbit at once) | 1984 | Long time series and trends of decades. Between May 2012 and March 2013 there are no images |
| MODIS | 250 m to 1 km (4.6 km chlorophyll) | 1 day, or composites of 4, 8 or 16 days depending on the variable | 2000 | Large regions, seasonality and the variables that only MODIS gives (evapotranspiration, LAI, aerosols) |
Clouds, water, snow or aerosols leave fewer useful images than these (see
Per-pixel filters); how many there are in each step is told by the results (n_images).
When a sensor has several collections for the same variable (the MODIS NDVI is in MOD13Q1, from Terra, and in MYD13Q1,
from Aqua), the first one in the catalog is used; to choose another, give collection ('MODIS/061/MYD13Q1') or
ref, the number of the variable in the catalog. The complete list, with its number, collection, formula and notes, is
in each tool: list_variables and describe_variable in Python and MCP, mo_variables() and mo_describe() in R,
monitoreo list and monitoreo info in the command line, and the Variable drop-down of the QGIS plugin.
Other Earth Engine data. In Python, R and the MCP any collection (collection and band, e.g.
IDAHO_EPSCOR/TERRACLIMATE and pr) or fixed image (image and band, e.g. COPERNICUS/DEM/GLO30_2024_1 and DEM,
with terrain='slope' for the slope) is also valid.
The basics to understand the variables and use them with care (true of any satellite, not only of MonitorEO):
- What an optical satellite measures. The sunlight that the surface reflects in several bands of the spectrum: blue, green, red, near infrared (NIR) and shortwave infrared (SWIR). Corrected for the atmosphere, it is the surface reflectance, from 0 to 1; Sentinel-2, Landsat and MODIS deliver it already corrected. The thermal bands measure instead the radiation that the surface emits, from which its temperature is obtained.
- Normalized indices. Almost all the variables are indices of the form (A − B) / (A + B) between two bands in which the target behaves very differently: healthy vegetation reflects much near infrared and absorbs red; water and snow absorb shortwave infrared. They range from −1 to 1 and have no units: they are relative indicators, good for comparing dates and places with the same sensor, not direct measurements of biomass or moisture.
- Derived products. LAI, evapotranspiration, surface temperature, the MODIS albedo, aerosols and the MODIS chlorophyll are estimates by the science teams of each mission, with their own models and assumptions and physical units. They carry an uncertainty, described in their reference papers (below).
- A pixel mixes what is inside it. A Sentinel-2 pixel (10 m) can be a forest gap; a MODIS one (500 m) mixes forest, scrub, rock or a village. In small or narrow areas (a pond, a river, a plot), the edge pixels mix the inside with the outside.
-
Clouds, shadows and snow hide the surface: MonitorEO removes those pixels (see Per-pixel filters)
and summarizes the images that are left. In winter, in high mountains, few may be left: look at
n_imagesandn_pixels. -
Each sensor gives somewhat different values. Their bands are not identical, so the Sentinel-2 NDVI is not exactly
that of Landsat or of MODIS: do not mix sensors in a series or a trend.
Landsatmerges Landsat 5, 7, 8 and 9 without adjusting them to one another; the differences between them are small but systematic (Roy et al., 2016), something to bear in mind in trends of decades. - It is an estimate. For management decisions, check the values against field data or knowledge of the place.
On the sensors: Sentinel-2 (Drusch et al., 2012), Landsat (Wulder et al., 2019) and MODIS (Justice et al., 2002).
What each variable of the catalog measures, how MonitorEO computes it and what to bear in mind when reading it. The values given are indicative: they depend on the place, the season and the sensor. The Sentinel-2 bands that appear are B2 (blue), B3 (green), B4 (red), B5 (red edge, 705 nm), B8 (near infrared), B11 and B12 (shortwave infrared, 20 m).
- What it measures: the greenness of vegetation, linked to its amount and its photosynthetic activity. It is the most used vegetation index.
-
In MonitorEO: (NIR − red) / (NIR + red), with B8 and B4 in Sentinel-2 and
nirandredin Landsat; in MODIS, the NDVI of MOD13Q1 and MYD13Q1 (16-day composites, 250 m). - How to read it: water and snow give negative values or values close to 0; bare soil and rock, low ones (around 0.1–0.2); dense and healthy vegetation, high ones (above 0.6).
- Beware: it saturates with very dense vegetation (it stops rising even if there are more leaves) and, in sparse vegetation, the soil seen between the plants changes it. Sudden drops on a single date are usually unfiltered clouds or snow.
- References: Tucker (1979); for MODIS, Huete et al. (2002).
- What it measures: like the NDVI, the greenness of vegetation, with a correction for the soil and the atmosphere that uses the blue band.
- In MonitorEO: 2.5 × (NIR − red) / (NIR + 6 × red − 7.5 × blue + 1), with B8, B4 and B2 in Sentinel-2 and the same bands in Landsat; in MODIS, the EVI of MOD13Q1 and MYD13Q1.
- How to read it: it gives lower values than the NDVI on the same vegetation.
- Beware: it was designed to saturate less than the NDVI in dense vegetation (Huete et al., 2002), but not every study finds that it detects changes better (Hilker et al., 2015): do not choose it for that alone. It is more sensitive to errors in the blue band.
- What it measures: the leaf area over each square metre of ground (m²/m², counting one side of the leaf): a LAI of 3 is three layers of leaves.
- In MonitorEO: the MODIS product MCD15A3H (Terra and Aqua together, every 4 days, 500 m).
- How to read it: 0 on bare soil; 5 or more in dense forests.
- Beware: it is an estimate from a model of how light goes through vegetation, from the reflectance (Myneni et al., 2002). With a 500 m pixel, in mixed landscapes it is an average of several covers.
- What it measures: the concentration of chlorophyll a of phytoplankton (mg/m³), an indicator of the trophic state of the water: more chlorophyll, more algae.
-
In MonitorEO:
- MODIS (Aqua and Terra, NASA's L3SMI product, 4.6 km pixel): NASA's standard ocean colour algorithm, which combines band ratios (O'Reilly et al., 1998) with an index for waters poor in chlorophyll (Hu et al., 2012).
- Sentinel-2: an empirical formula with B8, B3 and B4 calibrated only in Sierra Nevada: elsewhere its values are not reliable.
-
Beware: the MODIS product is meant for the sea: on turbid coasts, reservoirs and lakes its values are unreliable,
and with a 4.6 km pixel it is only valid for very large water bodies. Turn off the water filter (
{'water': False}or'auto').
- What it measures: chlorophyll a in turbid and productive waters (reservoirs, ponds, estuaries), where the ocean algorithms fail (Mishra and Mishra, 2012).
- In MonitorEO: (B5 − B4) / (B5 + B4) of Sentinel-2: the red edge, where chlorophyll reflects, against the red, where it absorbs.
- How to read it: it rises with chlorophyll. It is a relative index, not a concentration: to turn it into mg/m³ it has to be calibrated with water samples.
- Beware: it only makes sense on water pixels, so turn off the water filter. The bottom of shallow waters and aquatic vegetation alter it.
There are two indices with this name, and MonitorEO uses one or the other depending on the sensor:
- Sentinel-2 and Landsat: the open-water NDWI (McFeeters, 1996), (green − NIR) / (green + NIR), with B3 and B8 in Sentinel-2. Water gives positive values and vegetation and soil, negative ones: it serves to outline water bodies (ponds, reservoirs, flooded areas). The threshold that separates water changes from one site to another: 0 is only a starting point.
- MODIS (MOD09GA, 463 m, from 2000 to February 2023): the NDWI of the water in vegetation (Gao, 1996), with the NIR and an infrared of ~1.24 µm: it rises with the water in the leaves. It is not comparable with that of Sentinel-2 and Landsat.
-
Beware: with the open-water NDWI, turn off the water filter (
{'water': False}or'auto'); otherwise it removes exactly what you want to measure.
- What it measures: the water in vegetation and the soil moisture: it falls with drought and rises after rain or with irrigation (Xiao et al., 2004).
-
In MonitorEO: (NIR − SWIR1) / (NIR + SWIR1), with B8 and B11 in Sentinel-2 (20 m) and
nirandswir1in Landsat: Gao's NDWI formula with the ~1.6 µm infrared. - How to read it: higher, more water.
- Beware: it adds up the signal of the leaves and that of the soil, and does not separate them.
- What it measures: snow, which reflects much in the visible and absorbs the shortwave infrared (clouds reflect in both) (Hall et al., 1995).
-
In MonitorEO:
- Sentinel-2 and Landsat: (green − SWIR1) / (green + SWIR1), with B3 and B11 in Sentinel-2; from −1 to 1.
-
MODIS (MOD10A1 and MYD10A1, daily, 500 m): the band
NDSI_Snow_Cover, the Collection 6 NDSI on a scale from 0 to 100, not from −1 to 1.
- How to read it: the classic products took an NDSI of 0.4 or more as snow, but snow at the edges or under trees gives lower values; that is why MODIS now gives the NDSI itself instead of a yes or no (Riggs et al., 2017).
-
Beware: the snow filter removes exactly what it measures: turn it off (
{'snow': False}or'auto').
- What they measure: ET, the water that goes from the soil and the plants to the atmosphere (evaporation and transpiration), in kg/m² every 8 days (1 kg/m² is 1 mm of water); LE, the energy spent in it (J/m²/day).
- In MonitorEO: the MODIS product MOD16A2 (500 m, 8-day sums), which estimates it with the Penman-Monteith equation from MODIS and weather data (Mu et al., 2011).
- How to read it: each value is the total of 8 days; the monthly mean of a series is the mean of those totals, not the total of the month.
- Beware: it is a model, not a measurement, with a 500 m pixel: its uncertainty grows at fine scales.
- What it measures: the temperature of the "skin" of the land (soil, canopies, rock, roofs), in °C, from the thermal radiation it emits. It is not the air temperature: in full sun, bare soil can be many degrees above it (Li et al., 2013).
-
In MonitorEO:
- MODIS (MOD11A1 of Terra and MYD11A1 of Aqua, daily, 1 km): the daytime temperature, with the split-window algorithm (Wan and Dozier, 1996; Wan, 2014). Terra passes in the morning and Aqua in the early afternoon: their values are not comparable with each other.
- Landsat: the Collection 2 surface temperature (Cook et al., 2014), served at 30 m but measured with thermal pixels of 60 to 120 m depending on the satellite.
- Beware: there are data only under clear skies, so the series have gaps and lean towards the days without clouds. The time of the pass, the slope and the aspect (sunny or shady slopes) change it a lot.
- What it measures: the fraction of the solar radiation that the surface reflects, from 0 (it absorbs it all) to 1 (it reflects it all): fresh snow is above 0.8 and a dark forest is around 0.1. Less albedo is more energy absorbed, for example when snow melts or after a fire.
-
In MonitorEO:
- MODIS (MCD43A3, 500 m): the mean of the shortwave albedo with direct light (black-sky) and with diffuse light (white-sky), from a model of how the surface reflects in each direction (Schaaf et al., 2002).
- Landsat: the conversion of the bands to shortwave albedo of Liang (2001).
- Sentinel-2: a combination of the bands B2 to B8, B11 and B12 on the same principle.
- Beware: those of Landsat and Sentinel-2 assume that the surface reflects equally in all directions, and on slopes the illumination changes the value. Do not mix the albedo of different sensors.
- What it measures: how much the particles suspended in the atmosphere (dust, smoke, pollution, sea salt) dim the light, at 550 nm and without units: low values, clean atmosphere; high ones, episodes of dust or smoke from fires.
-
In MonitorEO:
Optical_Depth_055of the MODIS product MCD19A2, from the MAIAC algorithm (1 km, at each pass of Terra and Aqua) (Lyapustin et al., 2018). - Beware: it is the column of the whole atmosphere, not the air quality at ground level, and there are no data under clouds.
The NBR, (NIR − SWIR2) / (NIR + SWIR2), falls sharply after a fire: burnt vegetation reflects less near infrared and more shortwave infrared. Its difference between before and after the fire (dNBR) and the RBR measure the severity: see Burn severity.
A region is a dictionary (in Python), a list (in R) or a JSON object (in the MCP and the command line) with one of these keys:
| Region | Python / JSON | R | QGIS |
|---|---|---|---|
| WDPA protected area by its ID |
{'wdpa_id': 389011} or a list of IDs |
mo_wdpa(389011) |
Protected area (WDPA) |
| Protected area by its exact name | {'wdpa_name': 'Sierra Nevada'} |
– | – |
| RESOLVE 2017 ecoregion by its ID | {'ecoregion_id': 793} |
mo_ecoregion(793) |
– |
| The ecoregion of a point | {'ecoregion_at': [-3.3, 37.1]} |
mo_ecoregion(lon = -3.3, lat = 37.1) |
Ecoregion at the center of the map |
| Rectangle (degrees) |
{'bbox': [-3.6, 36.9, -2.6, 37.3]} (west, south, east, north) |
mo_bbox(-3.6, 36.9, -2.6, 37.3) |
Map extent |
| Point, with a buffer in meters | {'point': [-3.31, 37.05], 'buffer': 500} |
mo_point(-3.31, 37.05, 500) |
– |
| GeoJSON (geometry, Feature or FeatureCollection) | {'geojson': ..., 'name_field': 'name'} |
mo_geojson(...) |
– |
| Vector file (GeoPackage, shapefile...) |
{'file': 'zones.gpkg', 'name_field': 'name'} (and layer) |
mo_sf(sf::st_read("zones.gpkg"), "name") |
Layer (selected features or all) |
-
Several polygons give several time series: one per protected area, ecoregion or feature, with its name (from
name_field, or from the fieldnameorNAME). -
The WDPA ID (
SITE_ID) is looked up by name:find_protected_areas('Doñana')in Python and MCP,mo_protected_areas("Doñana")in R,monitoreo parks Doñanaor the Search button of QGIS. The same name usually has several designations (national park, natural park, SAC, SPA...) with different boundaries. Some examples:Protected area WDPA ID Sierra Nevada National Park 389011 Sierra Nevada Natural Park 349467 Doñana National Park 389012 Doñana Natural Park 349268 -
Vector files need GDAL (the conda environment and QGIS bring it).
-
Period: first and last day, both included, as
YYYY-MM-DD('2022-01-01','2023-12-31'). -
Season (optional,
season): only those days of each year, as['MM-DD', 'MM-DD'].['06-01', '09-30']is the summer of each year;['11-01', '02-28']crosses the year and counts in the year in which it starts.
A time series summarizes the data twice:
-
In time, at each pixel (
metric): the images of each step (step) are reduced to one per pixel. Steps:'daily'(each day with images),'16-day'(blocks of 16 days from 1 January),'monthly'and'annual'. -
In space, over the region (
stat): the pixels of that image are reduced to one value per polygon.
Metrics and statistics: mean, median, min, max, std (standard deviation) and percentiles pN (p5,
p95...). Each row of the time series also carries n_images, the images of that step, and n_pixels, the valid
pixels that went into the value: a value with few pixels (almost all cloudy) is unreliable.
Pixel size of the time series. By default, that of the data; in large regions, a larger one (10, 20, 50, 100... m)
so that the largest has about a million pixels: the Sierra Nevada National Park with Sentinel-2 is computed with 50 m
pixels. It can be set with scale (meters).
A map is the variable summarized over time at each pixel, with metric (the median by default) and:
-
temporal='period': the metric of all the images of the period. -
temporal='annual': the metric of each year and then, across years,interannual(mean,median,minormax). E.g.metric='max', temporal='annual', interannual='median'is the median of the annual maxima. -
temporal='monthly': the same with each month.
Maps are obtained in three ways:
-
Earth Engine tiles (
map_layer): an XYZ URL for QGIS, Leaflet or any viewer. They last a few hours and only have colors, not values. -
GeoTIFF on your computer (
download_image): float32, NoData −9999, in the UTM coordinate system of the center of the region (crs='auto') or another (crs='EPSG:25830'), with the pixel of the data or that ofresolution. Earth Engine computes it by tiles, so it is good for small or medium regions (a few million pixels). -
GeoTIFF in Google Drive (
export_image): with no limit of size or time, for large regions at full resolution.
By default the pixels with clouds (and their shadows), water, snow and, where there is a quality band for
it (Landsat 8 and 9, and the NDVI, EVI and LAI of MODIS), aerosols are removed. They are changed with quality:
quality={'snow': False} # keep the snow
quality={'water': 'auto', 'snow': 'auto'} # 'auto': off in the variables that measure it
quality={'cloud_score': None} # Sentinel-2 clouds with the SCL mask
quality={'scene_clouds': 20} # only scenes with less than 20 % clouds- Sentinel-2 clouds are removed with Cloud Score+
(
cloud_score: a pixel is clear if its score is at least 0.6). WithNonethe SCL classification of Sentinel-2 is used. -
Beware of the variables that measure what a filter removes: the NDSI measures snow, and the NDWI, Chl-a and NDCI
measure water. For them, switch that filter off (
{'snow': False}with the NDSI,{'water': False}with the NDWI) or use'auto'. - The MODIS fill values (e.g. 250, cloud, in the snow of MOD10A1) are always removed.
In QGIS they are the Remove pixels with check boxes of the Variable group.
Has the variable changed over the years, and in which part of the year?
-
Each year gives a value for each part of the year (
step):-
'annual': the whole year (or the season of each year), keyall. -
'monthly': the 12 months, keysm01(January) ...m12. -
'16-day': 23 blocks of 16 days from 1 January (days 1-16, 17-32... 353-366), keysp01...p23.
That value is the metric (
metric, the mean by default) of the images of that part in that year: in the table, the statistic (stat) of the region; in the map, at each pixel. -
-
The trend of each part is computed on its annual values:
Column or band Meaning nyears with data (at least 2; better 8-10 or more) tauKendall's τ: from −1 (always goes down) to 1 (always goes up) zMann-Kendall Z: τ·√(9n(n−1) / (2(2n+5))), normal approximation without correction for ties p_valuetwo-sided p-value of Z: 2·(1 − Φ(|Z|)) significantp_value < alpha(0.05 by default)slopeSen's slope: the median of the slopes between each pair of years (units of the variable per year) interceptvalue of Sen's line in the first year of the period
n is the number of years with data of each pixel or region, not that of the period.
Interpretation: a slope of +0.0019 NDVI/year with p = 0.005 in August from 2005 to 2024 is an increase of about 0.036 NDVI units in 19 years, unlikely by chance. A high p-value does not prove that there is no change: with few years or a lot of variability, the test has no power to see it.
A reference period (start to end) and the other period (other_start to other_end).
-
In table and chart (
compare_series): the mean of each part of the year (step: months, 16 days or the year) over the years of each period, and their difference (other − reference). -
In map (
compare_map,download_comparison): the variable aggregated over time (as in the maps) in each period and their difference; the GeoTIFF has the bandsdifference,referenceandother.
The severity of a fire is measured with the dNBR: the NBR of a period before the fire minus that of a period after it (each one, the median of its images with the per-pixel filters), classified with the USGS scale (Key and Benson, 2006), like the UN-SPIDER recommended practice, and it is drawn with the colors of that practice in the maps, legends and charts of every tool:
| Class | dNBR | Color |
|---|---|---|
| Enhanced regrowth, high | < −0.25 | #7a8737 |
| Enhanced regrowth, low | −0.25 to −0.1 | #acbe4d |
| Unburned | −0.1 to 0.1 | #0ae042 |
| Low severity | 0.1 to 0.27 | #fff70b |
| Moderate-low severity | 0.27 to 0.44 | #ffaf38 |
| Moderate-high severity | 0.44 to 0.66 | #ff641b |
| High severity | ≥ 0.66 | #a41fd6 |
burn_severity gives the hectares of each class in each polygon and a GeoTIFF with the bands dnbr, severity (class
−2 to 4), nbr_before and nbr_after. It is advisable that the two periods are from the same time of the year or close
to the fire: between different seasons, the seasonal change of the vegetation is confused with that of the fire.
As an alternative to the dNBR, burn_severity with index="RBR" (and Index > RBR in the Earth Engine app)
gives the RBR of Parks et al. (2014) as computed by
Silva-Cardoza et al. (2022), who found it the index that best matches the
severity measured in the field:
RBR = dNBR / (NBR before + 1.001)
- The NBR is that of the bands B8A and B12 of Sentinel-2 (20 m; their NBR5n), and NIR and SWIR2 in Landsat. It is
in the catalog as the variable
RBR(Sentinel-2 and Landsat), but it compares two periods, so onlyburn_severitycomputes it: the series, maps and trends of one period refuse it. - It has no phenological correction and is on the scale of the dNBR of MonitorEO: the article multiplies the dNBR and the RBR by 1000 (an RBR of 0.478 here is 478 there).
- It is a continuous index, without classes (there are no palette or thresholds for it yet): it gives its mean,
median, percentiles 10 and 90, minimum and maximum and the hectares with data over each polygon, and a GeoTIFF with
the bands
rbr,dnbr,nbr_beforeandnbr_after. - The article got its best results with composites of the minimum of one month before and one after the fire
(
metric="min"); MonitorEO uses the median by default, as for the dNBR.
- CSV: one row per region and step (time series), per region and part of the year (trends and comparisons), with the columns of the data and, at the end, what they were made with (variable, sensor, step, metric, statistic, unit and pixel in meters).
- PNG: the charts of time series, trends and comparisons, and the previews of the maps.
-
GeoTIFF: float32, NoData −9999, with band names (
value, orslope,tau,z,p_value,intercept,n, ordifference,reference,other).
Without a project of your own, everything is computed with the shared account of MonitorEO, whose quota all its users share; with your project, with your Earth Engine account and the quota of that project (non-commercial use is free, with a monthly computing quota per Google Cloud project). Exports to Google Drive need your account (Getting started). Earth Engine caches what has already been computed: repeating a computation is much faster.
Earth Engine measures computation in EECUs (Earth Engine Compute Units): one EECU-hour is one hour of one of its processors. All the tools tell you what part of your EECUs of the month you have spent, and warn you when less than 10 % is left. They are renewed on the 1st of each month, at midnight Pacific time.
With the shared account, each user has their research EECUs: 25 EECU-h per month, for research only, so
that nobody spends everybody's. The project of MonitorEO has 1,000 EECU-h a month (Contributor tier) and keeps 100 for
the Earth Engine app: what you have left is the least of your research EECUs and of what the project has left for all
the users of the shared account, and if the project reaches that reserve, the shared account stops computing for
everyone until the next month. When you have spent them, the shared account does not compute for you until the next
month (the computation that was running may continue for up to an hour): switch to your own Earth Engine account and
project (Getting started). The user is each installation of
MonitorEO on a computer: the first time it uses the shared account it creates a random identifier
(~/.config/monitoreo/user_id, with no data of yours), which labels its computations in Earth Engine. QGIS, the
assistant, R, Python, the command line and the MCP server of the same computer share it.
With your project they are the EECUs of that project, against the monthly quota of its
tier: Community, 150 EECU-h per month (that
of all non-commercial projects); Contributor, 1,000 (with a billing account, at no cost); Partner, 100,000 (on
request). By default, Community; if it is another one, choose it in QGIS or in the assistant, or give it with limit
(--limit in the command line) or with the environment variable MONITOREO_EECU_LIMIT (Contributor, Partner or a
number of EECU-h). Earth Engine does not tell the tier of a project: it can be seen in the Google Cloud console, in
Earth Engine > Configuration. When the quota runs out, Earth Engine does not stop, but it computes much more slowly
until the next month. To read the usage, the project must have the Cloud Monitoring API enabled (free:
https://console.cloud.google.com/apis/library/monitoring.googleapis.com) and your account must have the Monitoring
Viewer role (project owners and editors have it).
| Tool | Where to look | Warning with less than 10 % |
|---|---|---|
| QGIS | research EECUs bar (with your project, EECUs of the month) of the Google Earth Engine group, with Check | in the message bar, once a month |
| Assistant | bar under the header, with Check | in the conversation, once a month |
| Python | mo.eecu_usage() |
EECUWarning when connecting; mo.eecu_warning()
|
| R | mo_eecu() |
warning() when connecting and computing, once a month |
| Command line | monitoreo eecu |
at the end of each command that computes |
| MCP | tool eecu_usage
|
eecu_warning in the answers |
The usage is that of the "Completed EECU-seconds" metric of Cloud Monitoring: it arrives with a delay of a few minutes and does not count the computations that fail. The tools check it at most every 5 minutes. The Earth Engine app does not show it (Cloud Monitoring cannot be read from it).
Times measured in the Sierra Nevada National Park (860 km²), the first time each thing is computed:
| Computation | Time |
|---|---|
| Monthly time series of Sentinel-2 NDVI of 2 years (24 values, 50 m pixels) | ~50 s |
| Monthly trends of MODIS NDVI of 20 years (240 values) | ~40 s |
| Monthly comparison of MODIS NDVI of 2005-2009 with 2020-2024 | ~20 s |
| Preview of the map of the median Sentinel-2 NDVI of a summer | ~1 min |
| GeoTIFF of the annual trend of MODIS NDVI of 20 years (250 m) | ~10 s |
Very long time series over large areas (years of daily data, or many regions) work better with a monthly or annual step, or exported to Google Drive.
MonitorEO es un resultado del Proyecto EVEREST (PID2023-151939OB-I00), financiado por MICIU/AEI 10.13039/501100011033 y cofinanciado por FEDER – Unión Europea, y del Proyecto NevadEO (C-EXP-074-UGR23), cofinanciado por el Programa FEDER 2014-2020 y la Consejería de Economía, Conocimiento, Empresa y Universidades de la Junta de Andalucía. Es también un resultado del Proyecto PRESINMED (Preserving the singularity of Mediterranean high-mountain biodiversity hotspots: a NBS approach, PCI 2025-163175) de la convocatoria Biodiversa+ NBS 2023.
MonitorEO is an output of the EVEREST Project (PID2023-151939OB-I00), funded by MICIU/AEI 10.13039/501100011033, and co-funded by ERDF – European Union, as well as of the NevadEO Project (C-EXP-074-UGR23), co-funded by the ERDF 2014-2020 Program and the Regional Ministry of Economy, Knowledge, Enterprise, and Universities of the Regional Government of Andalusia. It is also an output of the PRESINMED Project (Preserving the singularity of Mediterranean high-mountain biodiversity hotspots: a NBS approach, PCI 2025-163175) of the Biodiversa+ NBS 2023 call.
OBSNEV, Universidad de Granada · GPL-3.0-or-later



Empezar
Herramientas
Ayuda
Start
Tools
- Earth Engine app
- QGIS plugin
- MCP: Claude and other assistants
- Python package
- R package
- Results viewer
Help