Exploring Land Cover Data (Impact Observatory)
Exploring Land Cover Data (Impact Observatory)¶
General Exploration Standard Python
Introduce manipulation and exploratory analysis of classified land use and cover data, using example data created by Impact Observatory from ESA Sentinel-2 imagery.
There are now many classified (categorical) land cover data products freely available that are useful for Environmental Data Science. These include:
ESA CCI land cover, 300m spatial resolution global extent for years 1992-2015
Copernicus Global Land Cover, 100m spatial resolution global extent for years 2015-2019
USGS LCMAP, 30m spatial resolution for USA for years 1985-2020
UKCEH LCMs, various spatial resolutions for UK for various years 1990-2020
mapbiomas, 30m spatial resolution for Brazil for years 1985-2020
Impact Observatory, 10m spatial resolution global extent for 2017-2021
These products are provided as 2D rasters (spatial) or 3D data cubes (spatio-temporal). The number and classification of discrete land cover classes varies between products, but at their most basic will distinguish between broad land covers such as ‘crops’, ‘forest’ and ‘built-up’. The nominal (categorical) character of the data influences the types of analysis appropriate.
This notebook uses data created by Impact Observatory. The data are a time series for 2017-2021 of annual global land use and land cover (LULC) mapped at 10m spatial resolution. The data are derived from ESA Sentinel-2 imagery with each annual map specifying individual pixels as belonging to one of 9 LULC classes. The Impact Observatory LULC model uses deep learning methods to infer a single annual LULC class for each pixel in a Sentinel-2 image. Each annual global LULC map is produced by aggregating multiple inferences for images from across a given year (requiring processing approximately 2 million images to create each annual map).
Fetch land cover product data from an online repository
Visualise the data (maps and spatio-temporal plots)
Analyse aggregate change through bar charts and similar visualisation
Analyse pixel-by-pixel change including use of sankey diagrams
Analyse zonal change using ancillary vector data
James Millington (author), Dept of Geography, King’s College London, @jamesdamillington
Anne Fouilloux (reviewer), Dept of Geosciences, University of Oslo, @annefou
Amandine Debus (reviewer), Dept of Geography, University of Cambridge, @aedebus
Impact Observatory (processor, producer, licensor)
The data are available under a Creative Commons BY-4.0 license.
Dataset reference and documentation¶
Krishna Karra, Caitlin Kontgis, Zoe Statman-Weil, Joseph C. Mazzariello, Mark Mathis, and Steven P. Brumby. Global land use / land cover with sentinel 2 and deep learning. In 2021 IEEE International Geoscience and Remote Sensing Symposium IGARSS, volume, 4704–4707. 2021. doi:10.1109/IGARSS47720.2021.9553499.
Impact Observatory. Methodology & accuracy summary. URL: https://www.impactobservatory.com/static/lulc_methodology_accuracy-ee742a0a389a85a0d4e7295941504ac2.pdf (visited on 2022-07-01).
Data loading code built on snippet from @acocac via ODC.stac docs and a Microsoft Planetary example notebook.
#system import os import warnings warnings.filterwarnings(action='ignore') #data handling import pystac_client import odc.stac from pystac.extensions.item_assets import ItemAssetsExtension import geopandas as gpd import rasterio as rio import numpy as np import pandas as pd from shapely.geometry import Polygon import xarray as xr import rioxarray #visualisation import matplotlib.pyplot as plt import matplotlib.colors as mplc import holoviews as hv import hvplot.pandas from holoviews import opts, dim #data analysis from sklearn import metrics #for confusion matrix from rasterstats import zonal_stats