Skip to content
EOCube.ro — Powered by ROCSEOCube.ro RO
Sign in

Seasonal mosaics

Every season, EOCube.ro publishes a (near-)cloudless true-colour mosaic of its whole area of interest (Romania, the Republic of Moldova and their neighbours) from Sentinel-2 Level-2A imagery: 10 m pixels, one seamless image per season. The files are public Cloud-Optimized GeoTIFFs (COG) you can open from any GIS without downloading them whole, and the platform’s TiTiler serves them as map tiles.

© OpenStreetMap · Protomaps · Copernicus Sentinel data · EOCube.ro
Loading…

The map shows the newest season on the tiles.eocube.ro basemap.

Available seasons

Seasons are meteorological: winter (DJF) is December to February and carries the year of its January, spring (MAM) March to May, summer (JJA) June to August, autumn (SON) September to November. A season appears once it has ended and its mosaic is built.

SeasonPeriodCOG filesTiles (TiTiler)
Loading…

Each season is a STAC item in the collection sentinel-2-l2a-mosaic-seasonal (the AOI-wide items; the same collection holds one mosaic per Sentinel-2 tile). A season can be rebuilt when the method improves, and its file addresses then change: find them through the catalog, as the examples below do, rather than hard-coding them.

Files

AssetContentSize
visualTrue colour (red, green, blue), 8 bits, JPEG-compressed COG. For viewing and maps~2 GB
visual_losslessThe same image, lossless (LZW). For analysis and print~19 GB
qualityPer pixel, the quality class of the observation used (1 = clear … 9 = cloud, 0 = no observation)35–450 MB
thumbnailA small JPEG preview—

All the rasters are in EPSG:3035 (ETRS89 / LAEA Europe) on a fixed 10 m grid, with nodata 0. They are Sentinel-2 L2A surface-reflectance composites; the colours are a fixed display stretch, the same for every season, so seasons compare directly.

Map tiles (TiTiler)

Each item links its tiles: rel="xyz" (a {z}/{x}/{y} template) and rel="tilejson". They are TiTiler URLs over the visual COG, in Web Mercator, zoom 4–13:

XYZ template
https://titiler.functions.svc.uvt-01.eocube.ro/cog/tiles/WebMercatorQuad/{z}/{x}/{y}.png?url=<visual COG URL, URL-encoded>

Use the XYZ · Copy button in the table above, or read the link from the item:

bash · the newest summer mosaic's tiles
curl -s -G 'https://stac.eocube.ro/search' \
  --data-urlencode 'collections=sentinel-2-l2a-mosaic-seasonal' \
  --data-urlencode 'filter-lang=cql2-text' \
  --data-urlencode "filter=\"eocube:mosaic_scope\" = 'aoi' AND id LIKE '%-JJA-%'" \
  --data-urlencode 'sortby=-start_datetime' --data-urlencode 'limit=1' \
  | jq -r '.features[0].links[] | select(.rel == "xyz") | .href' | head -n 1

In QGIS: XYZ Tiles ▸ New Connection with that URL, or, better for analysis, Layer ▸ Add Layer ▸ Add Raster Layer… ▸ Protocol: HTTP(S) with the COG URL, which keeps the native 10 m grid.

Reading the COGs

Python · rasterio: a window around Timișoara
import rasterio
from rasterio.warp import transform_bounds
from rasterio.windows import from_bounds

url = "https://storage.svc.uvt-01.eocube.ro/mosaic/…/visual.tif"   # the item's visual asset href
with rasterio.open(url) as src:
    bounds = transform_bounds("EPSG:4326", src.crs, 21.1, 45.7, 21.35, 45.8)
    rgb = src.read(window=from_bounds(*bounds, src.transform))
print(rgb.shape)   # (3, rows, cols), read with HTTP range requests
bash · GDAL
gdalinfo /vsicurl/https://storage.svc.uvt-01.eocube.ro/mosaic/…/visual.tif

Attribution

Credit the imagery with the item’s attribution property, for example:

Attribution · text
EOCube.Ro Product (ROCS Project, EOCube.ro, West University of Timișoara). Contains modified Copernicus Sentinel data 2026.

On a map with the basemap, add the basemap attribution as well.

Also in the catalog: monthly mosaics, per Sentinel-2 tile and AOI-wide, in the collection sentinel-2-l2a-mosaic-monthly.