Open Buildings Temporal V1

GOOGLE/Research/open-buildings-temporal/v1
Dataset Availability
2016-06-30T07:00:00Z–2023-06-30T07:00:00Z
Dataset Provider
Earth Engine Snippet
ee.ImageCollection("GOOGLE/Research/open-buildings-temporal/v1")
Tags
africa annual asia built-up height open-buildings south-asia southeast-asia
building-height
high-resolution

Description

The Open Buildings 2.5D Temporal Dataset contains data about building presence, fractional building counts, and building heights at an effective1 spatial resolution of 4m (rasters are provided at 0.5m resolution) at an annual cadence from 2016-2023. It is produced from open-source, low-resolution imagery from the Sentinel-2 collection.

The dataset is available across Africa, South Asia, South-East Asia, Latin America and the Caribbean. The goal of this data is to support organizations (e.g., governmental, non-profits, commercial) focusing on a range of applications for social good.

Explore the data interactively with the demo Earth Engine app. (In case you encounter performance issues with the Earth Engine app please try this Earth Engine script instead.)

Alternatively, if you are not an Earth Engine user, you can download the data directly from Google Cloud Storage using this notebook.

For more details on the project and FAQs about the data checkout the project website.

Example scripts:

1equivalent to what could be achieved by a high-resolution model using a single frame of 4 m resolution imagery.

Bands

Resolution
4 meters

Bands

Name Units Min Max Description
building_fractional_count 0 0.0216

Source data for deriving building counts for a given AOI. Please see accompanying example scripts.

building_height m 0 100

Building height relative to the terrain in range [0m, 100m].

building_presence 0 1

Model confidence values (i.e. how confident a model is that the pixel is part of a building) in range [0.0, 1.0]. Note that model confidence values are uncalibrated, meaning, if model confidence for a certain pixel is 0.8, it doesn't mean the actual likelihood of building presence is 80%. As such, confidence values can only be used for relative ranking (eg. thresholding) of pixels. Also, the model confidence can vary across location and time based on a number of factors such as cloud cover, imagery misalignment, etc.

Image Properties

Image Properties

Name Type Description
imagery_start_time_epoch_s DOUBLE

Oldest possible date for source Sentinel-2 imagery used to produce these rasters.

imagery_end_time_epoch_s DOUBLE

Newest possible date for source Sentinel-2 imagery used to produce these rasters.

inference_time_epoch_s DOUBLE

Time the rasters are supposed to predict the state of the world for, in seconds since epoch.

s2cell_token STRING

Token of the S2 cell this tile belongs to. Due to UTM zone boundaries, a single S2 cell that spans multiple zones may have multiple corresponding tiles in different projection zones. See http://s2geometry.io/.

Terms of Use

Terms of Use

The data is shared under the Creative Commons Attribution (CC-BY 4.0) license and the Open Data Commons Open Database License (ODbL) v1.0 license. As the user, you can pick which of the two licenses you prefer and use the data under the terms of that license.

Leverages the Copernicus Sentinel-2 data (2015-present). See the Sentinel Data Legal Notice

Citations

Citations:

Explore with Earth Engine

Code Editor (JavaScript)

var geometry = ee.Geometry.Point(
    [31.549876545106667, 30.011531513347673]);  // New Cairo, Egypt

var col = ee.ImageCollection('GOOGLE/Research/open-buildings-temporal/v1');

/**
 * Adds building presence and height layers for a given timestamp.
 * @param {number} millis Timestamp in milliseconds.
 */
function addLayers(millis) {
  // Create a mosaic of tiles with the same timestamp.
  var mosaic = col.filter(ee.Filter.eq('system:time_start', millis)).mosaic();
  var year = new Date(millis).getFullYear();
  Map.addLayer(
      mosaic.select('building_presence'), {max: 1},
      'building_presence_conf_' + year);
  Map.addLayer(
      mosaic.select('building_height'), {max: 100}, 'building_height_m_' + year,
      /*shown=*/ false);
};

// Get latest 2 years
var ts = col.filterBounds(geometry)
             .aggregate_array('system:time_start')
             .distinct()
             .sort()
             .getInfo()
             .slice(-2);


ts.forEach(addLayers);


Map.centerObject(geometry, 14);
Open in Code Editor