Buildings & Urban Form¶
| Class | Key params | Returns | Data source | Description |
|---|---|---|---|---|
AverageNetBuildingHeight |
(none) | raster | GEE projects/wri-datalab/GHSL/GHS-BUILT-H-ANBH_GLOBE_R2023A |
Average building height per cell (GHSL). |
BuiltUpHeight |
(none) | raster | GEE JRC/GHSL/P2023A/GHS_BUILT_H/2018 |
Built-up structure height, 2018. |
GlobalBuildingAtlas |
(none) | vector | GEE asset tiles (sat-io Global Building Atlas) | Building footprint polygons with height estimates. |
OpenBuildings |
country='USA' |
vector | GEE projects/sat-io/open-datasets/VIDA_COMBINED/{country} |
Open building footprints for a country (VIDA). |
OvertureBuildings |
(none) | vector | Overture Maps (downloaded via CLI) | Building footprint polygons from Overture Maps. |
OvertureBuildingsHeight |
city="" |
vector | composes OvertureBuildings, GlobalBuildingAtlas, UtGlobus, AverageNetBuildingHeight |
Best-estimate building height per Overture footprint, with a provenance column. |
OvertureBuildingsDSM |
city="" |
raster | composes OvertureBuildingsHeight + FabDEM |
Digital surface model from rasterized buildings plus bare-earth DEM. |
UtGlobus |
city="" |
vector | GEE projects/sat-io/open-datasets/UT-GLOBUS/{city} |
Building footprints with height/volume/surface-area attributes. |
ImperviousSurface |
year=2018 |
raster | GEE Tsinghua/FROM-GLC/GAIA/v10 |
Binary impervious/built-surface mask as of a given year. |
UrbanExtents |
year=2020, buffer=None |
vector | GEE projects/wri-datalab/cities/urban_land_use/.../urbanextents_unions_{year} |
WRI's official urban extent boundary polygon(s) for a city/year. |
UrbanLandUse |
band='lulc', ulu_class=None |
raster | GEE projects/wri-datalab/cities/urban_land_use/V1 |
WRI urban land-use classification (open space, informal/formal housing, etc.). |
OpenStreetMap |
osm_class=OpenStreetMapClass.ALL, worldpop_version=1 |
vector | OpenStreetMap (via osmnx) |
OSM features (buildings, roads, parks, etc.) filtered by category. |
OpenStreetMapAmenityCount |
osm_class=OpenStreetMapClass.ALL, worldpop_version=1 |
raster | OpenStreetMap rasterized onto the WorldPop grid |
Gridded count of OSM amenity features per cell. |
API¶
city_metrix.layers.average_net_building_height.AverageNetBuildingHeight ¶
AverageNetBuildingHeight(**kwargs)
city_metrix.layers.built_up_height.BuiltUpHeight ¶
BuiltUpHeight(**kwargs)
city_metrix.layers.global_building_atlas.GlobalBuildingAtlas ¶
GlobalBuildingAtlas(**kwargs)
Bases: Layer
MINOR_NAMING_ATTS
class-attribute
instance-attribute
¶
MINOR_NAMING_ATTS = None
Global Building Atlas (GBA) building footprints with height estimates. Source: https://gee-community-catalog.org/projects/gba/ Tiles are stored per 5°x5° grid cell under: projects/sat-io/open-datasets/GLOBAL_BUILDING_ATLAS/{tile_id} Tile naming: e030_n25_e035_n20 (e/w + lon, n/s + lat, repeated for second corner) Feature properties: id, bbox, height, region, source, var
get_data ¶
get_data(bbox: GeoExtent, spatial_resolution=None, resampling_method=None, force_data_refresh=False)
city_metrix.layers.open_buildings.OpenBuildings ¶
OpenBuildings(country='USA', **kwargs)
city_metrix.layers.overture_buildings.OvertureBuildings ¶
OvertureBuildings(**kwargs)
city_metrix.layers.overture_buildings_w_height.OvertureBuildingsHeight ¶
OvertureBuildingsHeight(city='', **kwargs)
city_metrix.layers.overture_buildings_dsm.OvertureBuildingsDSM ¶
OvertureBuildingsDSM(city='', **kwargs)
Bases: Layer
PROCESSING_TILE_SIDE_M
class-attribute
instance-attribute
¶
PROCESSING_TILE_SIDE_M = 5000
Attributes: city: city id from https://sat-io.earthengine.app/view/ut-globus
get_data ¶
get_data(bbox: GeoExtent, spatial_resolution: int = DEFAULT_SPATIAL_RESOLUTION, resampling_method: str = DEFAULT_RESAMPLING_METHOD)
city_metrix.layers.ut_globus.UtGlobus ¶
UtGlobus(city='', **kwargs)
city_metrix.layers.impervious_surface.ImperviousSurface ¶
ImperviousSurface(year=2018, **kwargs)
city_metrix.layers.urban_extents.UrbanExtents ¶
UrbanExtents(year=2020, buffer=None, **kwargs)
city_metrix.layers.urban_land_use.UrbanLandUse ¶
UrbanLandUse(band='lulc', ulu_class=None, **kwargs)
Bases: Layer
MINOR_NAMING_ATTS
class-attribute
instance-attribute
¶
MINOR_NAMING_ATTS = ['ulu_class']
Attributes: band: raster band used for data retrieval ulu_class: urban land use class value used to filter the land use type 0 (open space), 1 (non-res), 2 (Atomistic), 3 (Informal), 4 (Formal), 5 (Housing project)
get_data ¶
get_data(bbox: GeoExtent, spatial_resolution: int = DEFAULT_SPATIAL_RESOLUTION, resampling_method=None)
city_metrix.layers.open_street_map.OpenStreetMapClass ¶
Bases: Enum
ALL
class-attribute
instance-attribute
¶
ALL = {'aerialway': True, 'aeroway': True, 'amenity': True, 'barrier': True, 'boundary': True, 'building': True, 'craft': True, 'emergency': True, 'geological': True, 'healthcare': True, 'highway': True, 'historic': True, 'landuse': True, 'leisure': True, 'man_made': True, 'military': True, 'natural': True, 'office': True, 'place': True, 'power': True, 'public_transport': True, 'railway': True, 'route': True, 'shop': True, 'sport': True, 'telecom': True, 'tourism': True, 'water': True, 'waterway': True}
OPEN_SPACE
class-attribute
instance-attribute
¶
OPEN_SPACE = {'leisure': ['park', 'nature_reserve', 'common', 'playground', 'pitch', 'track'], 'boundary': ['protected_area', 'national_park']}
OPEN_SPACE_HEAT
class-attribute
instance-attribute
¶
OPEN_SPACE_HEAT = {'leisure': ['park', 'nature_reserve', 'common', 'playground', 'pitch', 'garden', 'golf_course', 'dog_park', 'recreation_ground', 'disc_golf_course'], 'boundary': ['protected_area', 'national_park', 'forest_compartment', 'forest']}
WATER
class-attribute
instance-attribute
¶
WATER = {'water': True, 'natural': ['water'], 'waterway': True}
ROAD
class-attribute
instance-attribute
¶
ROAD = {'highway': ['residential', 'service', 'unclassified', 'tertiary', 'secondary', 'primary', 'turning_circle', 'living_street', 'trunk', 'motorway', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link', 'tertiary_link', 'motorway_junction', 'turning_loop', 'road', 'mini_roundabout', 'passing_place', 'busway']}
COMMERCE
class-attribute
instance-attribute
¶
COMMERCE = {'building': ['bank', 'commercial', 'office', 'pub', 'restaurant', 'retail', 'shop', 'store', 'supermarket'], 'landuse': ['commercial', 'retail'], 'amenity': ['animal_boarding', 'animal_shelter', 'bank', 'biergarten', 'cafe', 'casino', 'childcare', 'fast_food', 'food_court', 'mortuary', 'nightclub', 'restaurant', 'studio', 'theatre', 'veterinary']}
HEALTHCARE_SOCIAL
class-attribute
instance-attribute
¶
HEALTHCARE_SOCIAL = {'building': ['clinic', 'hospital'], 'amenity': ['dentist', 'doctors', 'hospital', 'nursing_home', 'pharmacy', 'social_facility']}
MEDICAL
class-attribute
instance-attribute
¶
MEDICAL = {'building': ['clinic', 'hospital'], 'amenity': ['doctors', 'hospital']}
HOSPITAL
class-attribute
instance-attribute
¶
HOSPITAL = {'building': ['hospital'], 'amenity': ['hospital']}
AGRICULTURE
class-attribute
instance-attribute
¶
AGRICULTURE = {'building': ['poultry_house'], 'landuse': ['animal_keeping', 'aquaculture', 'farm', 'farmyard', 'greenhouse_horticulture', 'orchard', 'paddy', 'plant_nursury', 'vinyard'], 'amenity': ['animal_breeding']}
GOVERNMENT
class-attribute
instance-attribute
¶
GOVERNMENT = {'building': ['government', 'government_office'], 'amenity': ['courthouse', 'fire_station', 'library', 'police', 'post_office', 'townhall']}
INDUSTRY
class-attribute
instance-attribute
¶
INDUSTRY = {'building': ['factory', 'industrial', 'manufacture'], 'landuse': ['industrial', 'quarry'], 'industrial': True}
TRANSPORTATION_LOGISTICS
class-attribute
instance-attribute
¶
TRANSPORTATION_LOGISTICS = {'building': ['warehouse'], 'landuse': ['harbour'], 'amenity': ['bus_station', 'ferry_terminal'], 'railway': ['station'], 'aeroway': ['terminal'], 'industrial': ['port'], 'cargo': True}
EDUCATION
class-attribute
instance-attribute
¶
EDUCATION = {'building': ['college', 'school', 'university'], 'landuse': ['education'], 'amenity': ['college', 'kindergarten', 'music_school', 'prep_school', 'research_institute', 'school', 'university'], 'school': True}
PRIMARY_SECONDARY_EDUCATION
class-attribute
instance-attribute
¶
PRIMARY_SECONDARY_EDUCATION = {'building': ['school'], 'amenity': ['school', 'kindergarten'], 'school': True}
HIGHER_EDUCATION
class-attribute
instance-attribute
¶
HIGHER_EDUCATION = {'amenity': ['college', 'university', 'research_institute'], 'building': ['college', 'university']}
SUBWAY_STATION
class-attribute
instance-attribute
¶
SUBWAY_STATION = {'railway': ['subway_entrance']}
TRANSIT_STOP
class-attribute
instance-attribute
¶
TRANSIT_STOP = {'amenity': ['ferry_terminal'], 'railway': ['stop', 'platform', 'halt', 'tram_stop', 'subway_entrance', 'station'], 'highway': ['bus_stop', 'platform'], 'public_transport': ['platform', 'stop_position', 'stop_area'], 'station': ['subway'], 'aerialway': ['station']}
ECONOMIC
class-attribute
instance-attribute
¶
ECONOMIC = _merge_osm_classes([COMMERCE, HEALTHCARE_SOCIAL, AGRICULTURE, GOVERNMENT, INDUSTRY, TRANSPORTATION_LOGISTICS, EDUCATION])
city_metrix.layers.open_street_map.OpenStreetMap ¶
OpenStreetMap(osm_class: OpenStreetMapClass = OpenStreetMapClass.ALL, worldpop_version=1, **kwargs)
city_metrix.layers.open_street_map.OpenStreetMapAmenityCount ¶
OpenStreetMapAmenityCount(osm_class: OpenStreetMapClass = OpenStreetMapClass.ALL, worldpop_version=1, **kwargs)