A spatial data collection of trees planted within municipal right of way in Los Angeles and parts of Los Angeles County, in geojson
and Esri Shapefile
formats. (Some larger cities are stored here as csv
to avoid Github's 100MB file size restriction.)
This repository contains 1.6 million records of individual trees in 40+ cities collected in recents years as a hobby project and during my time as a reporter at the Los Angeles Times. Tree records in a county the size of Los Angeles become immediately dated and incomplete after their inital collection, so I can't guarantee the accuracy or completeness of the data.
The data are used to create this interactive map showing LA's Jacaranda locations: https://jacarandamap.com.
The data used in the Jacaranda project is too large to store here, but it's on S3 in GeoJSON format:
Questions? Email me.
Municipality ↓ | Tree count | Population |
---|---|---|
Agoura Hills | 5,100 | 20,330 |
Alhambra | 20,100 | 83,653 |
Arcadia | 15,600 | 56,364 |
Artesia | 2,500 | 16,522 |
Bell Gardens | 7,000 | 42,072 |
Bellflower | 8,400 | 76,616 |
Beverly Hills | 29,000 | 34,109 |
Burbank | 37,000 | 103,340 |
Carson | 22,500 | 91,714 |
Cerritos | 31,300 | 49,041 |
Covina | 14,600 | 47,796 |
Culver City | 16,900 | 38,883 |
Diamond Bar | 20,100 | 55,544 |
Downey | 18,500 | 111,772 |
Duarte | 7,900 | 21,321 |
El Monte | 11,000 | 113,475 |
El Segundo | 6,400 | 16,654 |
Glendale | 56,000 | 203,054 |
Glendora | 12,600 | 50,073 |
Inglewood | 21,800 | 109,673 |
La Mirada | 17,000 | 48,527 |
Lancaster | 46,000 | 160,316 |
Lawndale | 7,400 | 32,769 |
Lomita | 3,000 | 20,256 |
Long Beach | 140,000 | 462,257 |
Los Angeles City | 545,000 | 3,792,621 |
Los Angeles County | 99,000 | 10,100,000 |
Malibu | 7,400 | 12,645 |
Norwalk | 21,400 | 105,549 |
Palmdale | 19,000 | 152,750 |
Paramount | 7,800 | 54,098 |
Pasadena | 71,000 | 137,122 |
Pomona | 50,000 | 149,058 |
Rancho Palos Verdes | 13,500 | 41,643 |
Redondo Beach | 13,000 | 66,748 |
San Dimas | 10,400 | 33,371 |
San Fernando | 9,500 | 23,645 |
San Gabriel | 9,900 | 39,718 |
San Marino | 9500 | 13147 |
Santa Clarita | 112,000 | 210,888 |
Santa Fe Springs | 8,700 | 16,223 |
Santa Monica | 32,000 | 89,736 |
South Gate | 20,900 | 94,396 |
South Pasadena | 11,400 | 25,619 |
Temple City | 9,000 | 35,558 |
Ventura County/Simi Valley | 16,400 | 126,000 |
Walnut | 3,200 | 29,172 |
West Covina | 33,000 | 106,098 |
West Hollywood | 9,000 | 34,399 |
Whittier | 27,800 | 85,331 |
Records collected from municipalities via the California Public Records Act or official open-data portals. Population via the US Census Bureau.
This repository also includes a script to access historical geospatial data from the National Geospatial-Intelligence Agency for Los Angeles, as of 2012. The dataset has 8.9 million trees in and around the city — part of a 130-plus city series that captured 3D trees (and buidings). Each record includes spatial coordinates and associated attributes, such as height in meters. The data is derived from imagery, not a census, so it doesn't include species.
The records were intially hosted on a legacy USGS server that experience timeouts and slower response times. After I inquired about this issue, the agency unfortunately took the data down. I had already downloaded and processed the Los Angeles data, adding features such as neighborhood or city name. It's now stored on S3 as GeoJSON (1.6GB) and GeoPackage (1 GB).
Much of the overall city series (including the buildings features for each) is also now stored by an Esri employee working on fascinating 3D scenes.
The City of Los Angeles uses TreeKeeper software to manage its street tree inventory, containing over 920,000 individual tree records with locations and species (tree_common
) information. The repository includes a Python script (scripts/fetch_la_treekeeper.py
) that downloads this dataset directly from the city's WFS service using the streetsla_UFDSpeciesLabel
layer, which contains both geographic coordinates and tree species data in a single endpoint.
The script downloads data in 5,000-feature chunks, transforms coordinates from California State Plane Zone V to standard latitude/longitude and then exports the results to multiple formats including GeoJSON, zipped Shapefile and zipped File Geodatabase. All the files are uploaded to S3. This method bypasses the gnarly authentication and rate-limiting issues when dealing with TreeKeeper's internal APIs.
Download from S3 (current as of June 6, 2025): Shapefile, GeoJSON, GDB.
Numerous other cities in LA County store their tree inventories in Esri services, including:
And researchers have posted other potentially fruitful repos:
- US Department of Agriculture: Raw urban street tree inventory data for 49 California cities
- Urban Forest Ecosystems Institute, Cal Poly: California urban forest inventory