2026 Week 21
Timeseries data explorer
New charting library - echarts
For the timeseries explorer page, we’ve switched from plotly to using echarts. This resolves some longstanding issues with plotly’s interactivity, (for example when resizing the window, plotly often failed to reliably resize the plot), and also adds some new functionality.
It’s possible to zoom in and out on the x and y axis using the blue “zoom” bars. The selected area can also be dragged, maintaining the same zoom level whilst scrolling across the plot. Panning and zooming is also possible using the mouse wheel and dragging the chart area Hovering over a location in the chart displays the values for all series at that point in time, and clicking on a variable in the legend show/hides it
Multiple plots
There is now support for adding multiple plots to the explorer page.
Each plot can be configured by clicking on the “cog wheel” icon. The title for the plot, and each axis can be edited. Y axes can also be changed between plotting the raw data values and a log scale
Presets for the date picker
Preset date ranges have now been added to the date picker, allowing easy viewing of data for the last day, week, fortnight and 30 days.
Improved colour picker with chart type configuration
Clicking on the chart icon on the left hand side of a variable entry now opens a set of options to allow easy switching of chart type (line, scatter, bar) and the plot colour
Improved variable selection options
The variable selection popup has been redesigned to make it easier to switch variables on an existing chart
Coming soon - comparison plots and editing individual plots
Currently still in developent is an additional set of options to configure individual plots has been added. This will allow custom plot titles, choosing whether to display the legend, editing individual axis titles and choosing whether each y axis should display on a log scale or not
Also still a work in progress is the ability to switch between the default plot and a comparison plot
Flux
With support from IT Infrastructure we’re now able to run end-to-end tests of retrieving data direct from the Campbell web services API from the field site at Tring, through to s3 object storage in AWS, in the toa5 format directly consumable by EddyPro. There will be refinement to do before this can move into the new staging / production infrastructure, but it’s a promising start!
Geospatial API and UI
Work has been going on behind the scenes to redesign the spatial UI and to add support for a postgis database. This is not yet available in staging / production.
Postgis database
Support for accessing a postgis database has been added. This will allow us to store a registry of layers for the UI to display, each with a basic configuration, and a spatial index to provide the ability to find nearest layers etc in the future. Details on the current postgis table structure can be found here https://github.com/NERC-CEH/fdri_words/blob/main/geospatial/geospatial_api_design.md#potential-database-design
UI improvements
With more information about individual layers now available courtesy of the postgis database, the spatial UI has been completely redesigned, with a lot of new functionality added.
The main layers panel now displays only those layers which have been selected, with a separate popup available to select layes to add to the map. The ability to filtering by data category or location, and to search by layer name has been added. Where legend information is available, it is now displayed in the bottom right hand corner. It is also now possible to choose the colour used for station location points, either from the list of presets or as a custom colour.
The “zoom to layer” button now zooms to show the entire layer by default, instead of using a fixed zoom level.
An option to change the opacity via a popup has been added.
A legend is now displayed when any layers with a legend are enabled.
And options have been added to zoom to and / or show the boundary of a location (e.g. for the UK this would be a simplified outline of the UK - the example here uses a box purely due to the test data being used)