The presence of trees in the city has numerous benefits: they mitigate extreme temperature, help with stormwater management, absorb air pollution, and help support wildlife and biodiversity. They have also been shown to increase real estate value, improve people’s health and stress level, and even lower violence rates!

However, in most North American cities, the “urban forest”, as it is called, is much less developed than it could. The canopy coverage is often much lower than recommended, and can be particularly low in underprivileged neighborhoods. Fortunately, many actors are at work to improve the situation.

What it does / Purpose

Over the last few years, many cities have developed geolocated applications to support the management of the existing urban forest. However, what does not seem to exist is an app to help plan for the development and future growth of the urban forest. Our goal is to develop such an app.

The app will enable a more strategic approach when planning for new tree locations. And this, despite the fact that is it by nature a very distributed process. It will help increase the level of community engagement, and make the urban forest planning process more intentional, efficient, and coordinated.

An app for cities

This app could work for any city that is trying to develop its urban forest working collaboratively with its city residents. However, for the purpose the project, we will take the example of Philadelphia, PA.

Note that in the rest of this proposal, we will use the term “urban forest” specifically to refer to the trees on sidewalks.

More about the actors and their roles

To understand our proposed workflow, it is important to know about how the urban forest management is organized in cities. In a city like Philadelphia, the development of the urban forest is a highly distributed effort:

  • The City of Philadelphia approves tree locations and chooses the species. They also pay for certain costs and ensure some high-level tree care.
  • The Pennsylvania Horticultural Society, a non-profit organization, pays for many of the new trees (through grant funding) and manages the “Tree Tenders” program.
  • The Tree Tenders are city residents who volunteer their time, received specialized training, and are organized into neighborhood groups. They identify potential locations for new trees in their neighborhood, discuss with home owners to get their approval and commitment for tree care, plant the trees, help water them, prune them, and monitor their growth.

How we will build it

Technology used

  • ArcGIS Pro -- For data preparation

  • ArcGIS API for Javascript -- For distributed tree planning and data entry by tree volunteers, the city and/or the NGO --> Oops, this turned out to be challenging for our team in the short timeframe, and we proceeded to using the Web App Builder instead.

  • Operations Dashboard -- For the "big picture" view of the data.

  • Survey 123 – For anyone from the public to apply for a tree.

  • Arcgis API for Python (or ArcPy) and Windows Task Scheduler – for the creation of scripts that will update the analysis layers automatically as more data is entered. --> Oops, we ran out of time and did not develop that part.

  • Story Map -- For our presentation.

Data used

  • Philadelphia Street Tree Inventory (City of Philadelphia open data)

  • Street Centerlines (City of Philadelphia open data)

  • Schools (City of Philadelphia open data)

  • Census tract and block boundaries for Philadelphia (U.S. Census Bureau)

  • Population above 65 (U.S. Census Bureau)

  • Tree Tenders group boundaries (Pennsylvania Horticultural Society)

  • Tree density per street and Census tract (Pennsylvania Horticultural Society)

Core Functionalities

Data entry

Tree volunteers, City, and NGO actors enter data through Web app developed with ArcGIS Api for Javascript and Bootstrap. The app uses responsive design and can work on any device from desktop computer to tablet to cell phone.

  • The tree volunteers drop pins on new potential tree location and enter information about the current “approval status” for each tree candidate (Did they check that there is enough space and clearance? Did they get the approval from the homeowner? Did they find someone committed to watering the tree during the first year?

  • They can regularly add updates through the app as the tree progresses through the different approval steps.

  • When the tree candidate is ready, the City and then the NGO enter the data regarding their own approval.

  • Several preexisting layers are available in the app to help having a more strategic approach when choosing potential tree locations:

    • All existing trees
    • All streets symbolized by priority (this is based on the current tree density: lowest tree density = highest priority for canopy increase)
    • Census tracts similarly symbolized by canopy increase priority.
    • Tree Tenders group boundaries.
    • Location of schools (children are a high priority population)
    • Census blocks with high proportion of people above 65 (senior citizens are a high priority population)

Dashboard view

The City, NGO, and tree volunteer groups can view the data in a "big picture" view through Operations Dashboard. This view is used for monitoring and analysis purposes.

  • It shows a mix of map, bar/pie charts, summary statistics, etc.
  • The new tree candidates are symbolized based on their approval level.
  • The existing trees, tree density and Tree Tenders group boundary layers are also available.
  • On the dashboard, it is possible to see all tree candidates or filter them by:
    • Approval status
    • Tree volunteer group
  • All the layers described for the app are also available.
  • One of the dashboard widgets displays a list of the top 5 most active tree tenders groups.
  • Probably other neat dashboard features that we will be able to think of.

Public form

Anyone from the public can submit their own tree application, for instance to put a tree on the sidewalk in front of their house, their church, or school through Survey 123. They fill out information like their name, contact information, exactly proposed location for the tree, etc.

  • Those tree candidates also appear on the same Tree Candidates layer
  • Tree volunteers monitor the requests that fall in their neighborhood and evaluate them.

Analysis layer updates

The dashboard will show updated density maps based on the tree candidates added to the map. Those layers will be refreshed every few minutes.

  • This will be implemented with a python script scheduled in the Windows Task Scheduler.
  • Ideally, the script would be run on a server to ensure the stability of the schedule task. However, for the purpose of the hackathon, we will run the script on one of our laptops.
  • We will use either of two methods:

    • Use the ArcPy module calling Pro commands to perform the analysis and to republish the layers to ArcGIS Online to refresh them.
    • Uses ArcGIS API for Python calls to perform the analysis directly on ArcGIS online layers.
  • The type of analysis that the script will run looks like this:

    • Append the Existing Trees and the Proposed Trees layers, and put the result in the Total Trees layer
    • Do a spatial join on the Streets and Total Trees layer, so that you get a count of the tree for each street segment.
    • For each street segment, divide the number of trees by the area of the street to get the density, and save as the Future Street Density layer.
    • Republish the new version of the Future Street Density layer to our ArcGIS Online account.

Challenges encountered

  • We started by developing our app with the ArcGIS API for Javascript, but it turned out to be challenging for our team in the short timeframe, and we proceeded to used the Web App Builder instead.
  • We ran out of time for some of the data processing and the automated data update using the ArcGIS API for Python and the Windows Task Scheduler.

Future steps

  • A custom-designed app would be optimal. In particular, it would allows us to implement more business rules and fine-grained permission management.
  • Implement the automated data updates using the ArcGIS API for Python to show how the new planned trees will improve the tree density by street and Census tract.
  • Add more data layer, showing urban heat islands, impervious surfaces, stormwater management issues.
  • Find more ways to show how the new planned tree would positively impact their environment on those different factors.


Thank you to Lauren Medsker and Dana Dentice from the Pennsylvania Horticultural Society, and Marcus Ferreira, Tree Tender volunteer, for their input, support, and encouragement. Some of the data displayed comes from a map developed by Lauren Medsker and Xi Wei, as well some other layers available in ArcGIS Online.

Links to the deliverables


Share this project: