Janus / Guides / Seeing a series

Analysis · visual

Seeing a series

A line chart shows one place's values. Four views show other sides of a series: a map of the places that behaved like this one, the cycles a place goes through, every band at once, and every pixel's behaviour in one plane linked to the map. This guide shows each on Sentinel-2 over Rondônia and on 41 years of Landsat in north-eastern Brazil.

01Four views

Each view answers a different question. The similarity map is a mode of the map; the other three are tabs of the Analysis panel, open next to Time series whenever a series is (View → Analysis hides it). Cycles and Bands are about one place (the cursor, a pin or the ROI's mean); the similarity map and the Atlas about every pixel at once.

ViewAnswersNeeds
Similarity to a series (map)Which places behaved like this one over time, by their values or by the shape of their curve.3 dates or more
CyclesWhich cycles a place goes through (a year, a second crop, none) and when.4 dates or more a year, over two years
BandsHow every band of a place moved over time, side by side.Several bands a date
AtlasWhat kinds of behaviour the region has, where each one is, and how much of the region it covers.3 dates or more

The Analysis panel only shows the tabs that work on the data open. The others are counted at the end of the row (+3 on the Sentinel-2 series, +6 on the annual Landsat one), and hovering the count lists them with what each one needs: Seasonal and Cycles need several dates a year, Bands several bands a date, Classes and Areas a categorical layer, Zonal a vector layer. A tab chosen stays chosen: open data it fits and it comes back.

02The examples

  • Sentinel-2 over Rondônia: the series of the STAC guide, 107 dates from June 2019 to September 2024 (5% of clouds at most, so mostly dry-season dates), six bands, the NDVI shown. Pin 1 (195, 837) is in a forest, pin 2 (179, 761) in a pasture.
  • Landsat over Sergipe and Alagoas: 41 annual medoid composites of a vegetation index, 1985 to 2025, the 2000 × 2000 pixels around the mouth of the São Francisco river of the Maps to numbers guide, at the date 2018.

03The similarity map

Choose Similarity to a series in the Display panel and the map shows, for every pixel, how alike its series is to one place's: the cursor's (the map follows the mouse), a pin's or the ROI's mean. It is the question an embedding's similarity map answers, asked of the series itself: where else did this happen?

Janus with the Sentinel-2 series of Rondônia shown as Similarity to pin 1 (values): the forest of pin 1 and the other forests in yellow, the pastures and clearings in dark purple, the colour bar from 0.5 to 1; below, the NDVI of pin 1 (forest, high and steady) and pin 2 (pasture, low and seasonal), with the Analysis tab next to Time series.
Where else is the forest of pin 1. Every pixel's NDVI from 2019 to 2024 compared with pin 1's: the forests that stood all those years are yellow, the pastures and the clearings dark purple.

Two pixels are compared over the dates both have (the season's, if the map shows only part of the year), on the band or index shown:

  • Values: 1 less the RMS difference of the two series over the layer's range of values (2 to 98%): 1 the same values at every date, 0.5 half the range apart. The colours run from 0.5 to 1.
  • Shape: the correlation of the two series: 1 the same curve whatever its level, 0 unrelated, below 0 opposite. A crop's calendar on poorer and richer soils, or a pasture that greens and dries like another, are alike by shape though not by values.
The same region twice as similarity to pin 1, a pasture: at the left by values, the pastures green and the forests dark purple; at the right by shape, the pastures and most of the land bright, the forests and the rivers blue-green.
A pasture, two ways. Similarity to a pasture: by values (left) only the pastures with about its NDVI are bright and the forests dark; by shape (right) every place that greens and dries with its seasons is bright whatever its level, and the forests, whose curve is flat, stand apart.

Reference and Compare sit under the mode in the Display panel. The map is computed on the GPU from the dates already there for the map, again whenever the reference changes, so with the cursor as reference the comparison moves with the mouse. The status line shows the similarity under the pointer.

04Cycles

A wavelet transform shows which periods a series oscillates at, and when. The horizontal axis is time, the vertical one the period (from two weeks to two years here), and the colour the power: how strongly the series oscillates at that period at that time.

The Cycles tab for pin 1: a wavelet scalogram from 2019 to 2024 with period on the vertical axis from 2 weeks to 2 years, a bright band at 1 year outlined in black in 2022 and 2023, the cone of influence darkened at the edges, and at the right the global spectrum peaking at 1 year above the dashed red-noise line.
The forest's cycles. The strongest power is at one year, the dry season every year, and it is significant (outlined) in 2022 and 2023. The vertical streaks at short periods are single dates far from their neighbours. At the right, the global spectrum: the power's mean over time, peaking at one year above the dashed red-noise level.
  • The dates are put on a regular step first (here 5 days, Sentinel-2's revisit), the gaps filled linearly; columns across a gap longer than two steps are pale. Trend out removes the linear trend as well as the mean.
  • The power is over the series' variance: white noise is 1 on average.
  • Outlined: above red noise at 95%, that is, stronger than a series with only the same memory from one date to the next (its lag-1 correlation, 0.87 here) would give by chance.
  • The cone of influence (darkened) is where the series' ends weigh on the power: long periods near the start or the end are not to be trusted.

The method is the Morlet wavelet as computed by Torrence & Compo's (1998) code, and Janus' scalogram matches it computed again in numpy. A double crop shows as a second band at six months; a clearing as the yearly band stopping.

05Bands

Every band of a place over time, as a heatmap: a row a band, a column a date. It shows at once what a line chart of six bands mixes up.

The Bands tab for pin 1: six rows (blue, green, red, NIR, SWIR 1, SWIR 2) and columns for the dates from 2019 to 2024, each band coloured over its own range; the visible bands dark and steady, the NIR and SWIR high in some years and low in others; the date shown outlined in orange.
The forest's six bands, each over its own range. The visible bands stay low, as in a forest; the near and short-wave infrared vary from year to year, and together. The date on the map is outlined in orange.

The colours are each band's own range (to see each band's changes), One range for all (to compare their levels, as a spectrum would) or Z-scores (each band's departures from its mean, in standard deviations). Copy CSV copies the dates and every band's value.

06Atlas

The Atlas puts every pixel's series in one picture. Pixels that behaved alike over time land close together in a plane, so each cluster is a kind of behaviour of the place: a forest, a crop, water, a clearing. The plane is linked to the map both ways.

Janus with the Landsat series of Sergipe and Alagoas at 2018: the map coloured by four groups (blue on the sea and the river, orange and green on the land), and in the Analysis panel the Atlas tab with Groups set to 4, the plane of points with the four groups found, their shares (A 27.2%, B 43.2%, C 25.2%, D 2.2%, others 2.2%) and their curves from 1985 to 2025.
41 years, four behaviours. 17,689 pixels laid out (one in 15 × 15), Groups set to 4 and Find groups pressed, the groups coloured on the map. A (blue) is the sea and the river, near 0 every year; B (orange) and C (green) are two kinds of land, B greener; D (purple), a few pixels apart in the plane, drops sharply in 2016. Each group's curve is its mean, with the range of its pixels (10th to 90th percentile) shaded.
  1. SampleUp to 20,000 pixels on a grid of the ROI or the image, each series as its values at every date (gaps filled linearly from the dates around them).
  2. ReduceThe series projected on their 16 principal components (here 94% of the variation).
  3. NeighboursEach pixel's 15 nearest neighbours, exactly.
  4. Lay outUMAP: a plane where those neighbours stay close. The plane settles as it runs.
  5. PlaceEvery pixel of the region, not only the sample, placed with its nearest sampled pixel, so a group's share is of the whole region.

Drag around points to make a group (A, B, C...), or press Find groups to have them found by k-means. Groups, next to it, is how many Find groups finds and the most you can draw: 3 at first, from 2 to 10. The pointer over the plane lights the pixels like the ones under it on the map; over the map, it rings its pixel in the plane; a click on a point pins its pixel. Colour shows the points' density, their group, or their value at the date, mean, amplitude or trend. Shapes compares the curves' form whatever their level (each series standardized): the same crop calendar on poorer and richer soils lands together.

Reading the plane

UMAP keeps neighbours together, not distances: two clusters far apart are different, but how far apart says little. Read the clusters, not the gaps between them, and check a cluster on the map and in its curve before naming it.

07Speed

Measured on a whole Landsat scene of the Trend test guide (41 dates of 7478 × 7319 pixels, read as an overview of 5.5 million pixels):

StepTime
Atlas: 18,900 series sampled, reduced to 16 components15 ms
Atlas: every sample's 15 nearest neighbours, exact0.3 s
Atlas: the UMAP layout (8 threads)0.7 s
Atlas: the 5.5 million pixels placed (4 threads)1.2 s

The Atlas runs on its own thread with the processing threads (File → Settings), and the interface stays responsive meanwhile; the plane appears as soon as the layout starts and settles as it runs. The similarity map is computed on the GPU like the other modes of the map, so it follows the cursor as it moves.

08From the command line

--mode shows the similarity map and --analysis opens the panel at a tab, with their options after commas:

janus SERIES --mode similarity[,shape][,pin|roi]
janus SERIES --analysis cycles[,trend]
janus SERIES --analysis bands[,common|zscore]
janus SERIES --analysis atlas[,shapes][,groups[=N]][,density|value|mean|amplitude|trend]

shape compares the curves' shape rather than their values, pin and roi with the first pin or the ROI's mean rather than the cursor; trend keeps the trend in the cycles; common and zscore are the bands' scales; groups finds three groups once the atlas is laid out, groups=N N of them. With --screenshot, Janus waits for the Atlas to settle before taking it.

09References