Plotlay

Showcase · Data layers · City of Melbourne open data

Where the canopy runs out

The City of Melbourne’s 82,064 trees shade 274 hectares. The council rates each tree’s useful life left. On those ratings, 21.8 ha (8%) of the shade is on trees whose useful life ends by 2045. The ten years after that are the cliff: by 2055 it is 57%. The biggest group going first is elms, 37% of that shade, many planted together along the same streets and in the same gardens.

Map of the City of Melbourne's 603 census blocks coloured by the share of their council-tree shade on trees whose useful life ends by 2045, darkest where most is lost, with the street segments losing most marked.
Share of each block’s council-tree shade on trees whose useful life ends by 2045. Blocks with under 500 m² of shade are pale.
Open in PlotlayThe 603 blocks with the decade slider. No account needed.The dataBlocks, streets and precincts (GeoJSON, TopoJSON, WKT) and the trees, CC BY 4.0Data, notebook and Power BI files on GitHubThe plotlay-melbourne-canopy repository

Twenty years, then a drop

Take each tree as gone by the top of its useful life band, and add up the shade still standing. Through 2035 almost nothing changes: the 663 trees with under ten years left carry only 1.4 ha. By 2045, 4,946 trees and 21.8 ha have gone. Then the 21,115 trees rated 21 to 30 years go, and with them most of the city’s council shade: 117 ha left in 2055, of 274 ha now.

The inner city, 2025 to 2065: each dot a council tree, sized by its shade. A ring once its useful life has ended.
8%of the shade ends by 2045 (21.8 ha)
57%by 2055
37%of the 2045 loss is elms
9blocks lose a quarter or more by 2045
Column chart of the council trees' shade standing: 274 ha in 2025, 273 ha in 2035, 252 ha in 2045, then 117 ha in 2055 and 59 ha in 2065, with the share gone in each column.
Shade standing at each decade. Trees not assessed are counted as standing; new planting is not counted. Made in Plotlay from the Blocks layer’s Canopy by year table.

The map

Each block coloured by the council-tree shade still standing in the year on the slider, as a share of the block. Switch to Share lost by 2045 to see where the next twenty years bite, or to Streets for the road segments. Zoom in to street level for every tree as a dot. Hover over a block or a street, or tap it on a phone, for its numbers and its decades as a small chart.

2025

The streets and blocks

By 2045 the biggest losses are in the large gardens: Royal Park (block 931) loses 3.1 ha, Kings Domain and the Domain parklands (block 852) 1.9 ha and Fawkner Park (block 866) 1.7 ha. Some smaller blocks lose much more of what they have. Of the 262 blocks with at least 2,000 m² of council-tree shade, 9 lose a quarter or more by 2045. Block 605 in East Melbourne loses 47%, and Melbourne General Cemetery and its streets (block 273) 41%.

Along the streets, St Kilda Road loses the most street-tree shade by 2045: 5,259 m², 10% of its shade now. Then Swanston Street (2,385 m²) and Punt Road (2,170 m²). The single segment losing most is Swanston Street between Elgin Street and College Crescent: 2,117 m².

Bar chart of the streets losing most street-tree shade by 2045: St Kilda Road 5,259 m², Swanston Street 2,385 m², Punt Road 2,170 m², then seven more, with each street's share of its shade now.
Street-tree shade ending by 2045, by street: the road segments added up by name. Made in Plotlay from the Streets layer.
Bar chart of the species carrying the shade that ends by 2045: English elm first with 5.28 ha, then London plane 2.29 ha and river red gum 1.47 ha, the elms in red.
The species whose shade ends by 2045. Elms of every kind carry 37% of it. Made in Plotlay from the Blocks layer’s Trees table.

How it was made in Plotlay

The council publishes each tree as a point with its useful life band, and its canopy as outlines traced from 2021 aerial imagery. Neither says which streets and blocks lose their shade. A point has no shade, and an outline has no years left. One Plotlay project put them together:

  1. Each tree’s share of the canopy (in Python, before Plotlay): the part of the 2021 outline its trunk stands in that is nearer to it than to any other council tree, within 15 m. That gives 274 ha to 59,440 trees.
  2. A map on the Geoscience Australia base map and a data layer called Blocks (Data layers, in the Site workspace).
  3. Pick from a layer, Take all. The council’s census blocks file, with its licence: all 603 blocks in one step, keyed by their block_id.
  4. Place rows by their position. The trees, as a table with a row for every decade each tree still stands, drop into the block they stand in. The year is the time axis, so the slider steps from 2025 to 2065. The trees again, one row each, show as 82,064 dots.
  5. Formula columns: canopy_2025 to canopy_2065 (coalesce(sum(canopy_m2, year = 2045), 0)), the shade lost by 2045 and its share, and the trees ending by 2045 (count(end_by <= 2045)).
  6. A second layer, Streets: the 1,809 road corridor segments that hold a council tree, taken the same way and keyed by seg_id, with the same columns.
  7. A third, Precincts: the 13 census small areas, with roll-up columns adding up the blocks inside each (602 of 603 blocks).
  8. Colour by the shade standing, divided by the block area, with breaks set by hand; then by the share lost by 2045.
  9. Export each layer as GeoJSON, TopoJSON for the Power BI Shape Map, CSV with WKT for Azure Maps, the linked tables and a Python starter.
Plotlay's Take all dialog over the council's census blocks file: every area in the file, keyed by block_id.
Take all: the council’s 603 blocks, keyed by block_id.
Plotlay with the blocks coloured by council-tree shade per square metre for 2055, with the legend and the decade slider.
The blocks in 2055, with the decade slider.
Plotlay with every council tree as a dot over the blocks in Carlton and Parkville.
Every council tree as a dot, placed in its block by position.

Plotlay’s block totals were checked against the same trees placed in the blocks by GeoPandas: the largest difference for any block is 153.3 m². Nothing here comes from OpenStreetMap, and no imagery was traced.

More about Data layers · Make a data layer of your own · Melbourne pedestrians: footpaths through a day · New York City: twenty years of street trees

Power BI

Power BI report page for 2025: a Shape Map of the city blocks on suburb outlines with the Yarra and the bay, each block shaded by council-tree shade per m², darker for more, cards reading 273.4 ha of shade standing and 8.0% of 2025 shade ending by 2045, and shade standing at each decade falling from 273.4 ha to 58.4 ha.
In Power BI Desktop, from the repo’s .pbip: where the canopy runs out, with the shade left at each decade.
Power BI report page: the 15 species with most shade ending by 2045, English Elm first at 5.3 ha, and shade by useful life left, the largest band 21 to 30 years at 135.3 ha.
In Power BI Desktop, from the repo’s .pbip: which trees. Elms carry most of the shade that ends by 2045.

The same layers and tables as a Power BI Project (.pbip): a Shape Map of the blocks from the TopoJSON with a year slicer, the shade at each decade, the blocks and streets losing most, the species, the precincts, and Azure Maps with every tree. It reads the data straight from the GitHub repository, so it refreshes with no gateway.

The Power BI project is in the plotlay-melbourne-canopy repository on GitHub, with steps to open it in Power BI Desktop.

Python

A narrated Jupyter notebook loads the trees and the three layers with GeoPandas, works out the shade at each decade again, places the trees in the blocks a second way and checks Plotlay’s numbers against it.

Download the notebook (with its outputs) and the data. It is also in the plotlay-melbourne-canopy repository on GitHub.

Read it carefully

Sources and licences

Trees, with species and dimensions (Urban Forest), updated 22 September 2025, and Tree Canopies 2021 (Urban Forest): City of Melbourne Open Data, data.melbourne.vic.gov.au, licensed under CC BY 4.0. Changes: each tree given its share of the 2021 canopy and the year its useful life band ends, counted from 2025.

Blocks and small areas for the Census of Land Use and Employment (CLUE), and road corridors: City of Melbourne Open Data, CC BY 4.0, taken into Plotlay whole and keyed by their own ids. Base map: © Commonwealth of Australia (Geoscience Australia), CC BY 4.0.

Our shapes and tables are CC BY 4.0 and the code is MIT: see the licence files in the data download and the plotlay-melbourne-canopy repository on GitHub. Map: Leaflet. Charts made with Matplotlib. This is independent work using open data, not endorsed by the City of Melbourne.

Put your own points in your own places

Plotlay is free to start: every tool, three cloud projects.

Create free accountThen open Data layers in any map project