| Developer Portal

Data catalogResourcesContactAbout the project

| Developer Portal

  • Data catalog
  • Resources
  • Contact
  • About the project
  • Cookies
  • The OpenEPI project partners
  • Knowit
  • Capto
  • Creative Commons
  • Open Future

2025 - Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution 4.0 International license.

Back to how-to articles

Using OpenEPI's Super Resolved Sentinel 2 Raster

Last updated: August 18, 2025
Super Resolved Satellite Image of Brazil

Table of Contents

  1. Sentinel 2
  2. What is Super Resolved?
  3. WMS and WMTS
  4. Using the raster in MapLibre

Sentinel 2

Sentinel 2 is a set of satellites operated by the ESA which provides regular, free satellite images at 10 meter resolution. They also provide cloudless mosaics once every quarter. These are the baseline images we use in our mapping services.

What is Super Resolved?

Our super resolved images are upscaled from 10 meter resolution to 5 meters. This provides clearer and more accurate images for image analysis tasks. The code for the image upscaling is of course open-source and available at this repo.

For now, the satellite images are restricted to Brazil only. All original satellite photos were taken in the first quarter of 2023. In the future, we hope to provide both images on a worldwide scale and images from before and after 2023.

WMS and WMTS

OpenEPI provides WMS and WMTS services for Super Resolved Sentinel 2 raster. Per now, the raster is limited to the country of Brazil. The raster can be accessed on our Geoserver, with a layer preview available here.

Using the raster in MapLibre

If you are new to using MapLibre in a React application, please check out our tutorial below

Getting started using Map Components

Getting started using Map Components

To use the raster, the first step is to create a style specification for the Maplibre Map component. The style specification defines the visual appearance of a map: what data to draw, the order to draw it in, and how to style the data when drawing it.

JAVASCRIPT
1import { StyleSpecification } from "react-map-gl/maplibre";
2
3export const sentinelStyleSpecification: StyleSpecification = {
4  version: 8,
5  name: 'OpenEPI Super Resolved Sentinel 2',
6  sources: {
7    'openepi-wms-imagery': {
8      type: 'raster',
9      tiles: [
10        'https://api.openepi.io/geoserver/ows?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=true&LAYERS=sentinel:2023Q1&CRS=EPSG:3857&WIDTH=256&HEIGHT=256&BBOX={bbox-epsg-3857}',
11      ],
12      tileSize: 256,
13      maxzoom: 18,
14    },
15  },
16  layers: [
17    {
18      id: 'background',
19      'source-layer': 'aeroway_fill',
20      source: 'openepi-wms-imagery',
21      type: 'raster',
22      paint: {},
23    },
24  ],
25};

The style specification can then be inserted into the Map components mapStyle attribute.

JAVASCRIPT
1import { Map } from "react-map-gl/maplibre";
2import 'maplibre-gl/dist/maplibre-gl.css';
3...
4return (
5  <div className="h-screen w-screen">
6    <Map
7      initialViewState={{
8        latitude: -15,
9        longitude: -55,
10        zoom: 4,
11      }}
12      style={{ width: '100%', height: '100%' }}
13      mapStyle={sentinelStyleSpecification}
14    >
15    </Map>
16  </div>
17)
MapLibre with OpenEPI's Super Resolution Sentinel 2 Image

As OpenEPI currently only supports Super Resolved raster off Brazil, the style specification can be extended with e.g. Sentinel 2 Cloudless, which is not super resolved, but offer cloudless satellite raster for the rest of the world. To do this, a link to the Sentinel 2 Cloudless WMS or WMTS is required, and we will need to create an additional source, and layer in our style specification.

JAVASCRIPT
1export const sentinelStyleSpecification: StyleSpecification = {
2  version: 8,
3  name: 'OpenEPI Super Resolved Sentinel 2',
4  sources: {
5    'openepi-wms-imagery': {
6      type: 'raster',
7      tiles: [
8        'https://api.openepi.io/geoserver/ows?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=true&LAYERS=sentinel:2023Q1&CRS=EPSG:3857&WIDTH=256&HEIGHT=256&BBOX={bbox-epsg-3857}',
9      ],
10      tileSize: 256,
11      maxzoom: 18,
12    },
13    'cloudless-wmts-imagery': {
14      type: 'raster',
15      tiles: [
16        'https://tiles.maps.eox.at/wmts/1.0.0/s2cloudless-2023_3857/default/GoogleMapsCompatible/{z}/{y}/{x}.jpg',
17      ],
18      tileSize: 256,
19      maxzoom: 14,
20    },
21  },
22  layers: [
23    {
24      id: 'background-cloudless',
25      'source-layer': 'aeroway_fill',
26      source: 'cloudless-wmts-imagery',
27      type: 'raster',
28      paint: {},
29    },
30    {
31      id: 'background',
32      'source-layer': 'aeroway_fill',
33      source: 'openepi-wms-imagery',
34      type: 'raster',
35      paint: {},
36    },
37  ],
38};
OpenEPI's Super Resolution Sentinel 2 Images supplemented with Sentinel 2 Cloudless

In addition, are also able to extend the Style Specification further by adding data, e.g. place names, road outlines from other sources. There are a lot of providers, both free and commercial. Check out the style specifications from e.g. OpenFreeMap, and OpenMapTiles.


Last updated: August 18, 2025

Latest How-To's

Getting started using Global Forest Watch Data API

Getting started using Global Forest Watch Data API

Getting started using Map Components

Getting started using Map Components

Natural Forest Map  x  Global Forest Watch API

Natural Forest Map x Global Forest Watch API

Relevant Resources

settingsOpenEPI Super Resolved Sentinel 2 Raster
Dataset