Final Project Part 1

finalpart1
nyctreecensus
Proposal
Author

Alexa Potter

Published

March 21, 2023

Research Question

Greenery is widely recognized as a vital element to any public space. Plants and natural elements of all kinds can add immense benefits to urban areas, not only to the environment but to the humans who inhabit the space as well. Studies have shown that urban greening, specifically the planting of trees, can “combat challenges such as pollution, urban heat, and flooding, as well as to improve social cohesion, human health, and well-being.”1 The understanding and implementation of this information can lead cities, developers, and anyone with a stake in their community to consciously consider what elements they can incorporate into their own public spaces. The work does not end here though, greenery in public spaces requires maintenance and year-round management to make these efforts last long enough to see the benefits.

New York City, with a population of about 8.4 billion people and 300 square miles, is one of the largest urban spaces in the United States.2 In 1995, the New York City Department of Parks and Recreation conducted a city wide census of all the trees. They again conducted this survey in 2005 and 2015 to tackle their goal of enhancing and restoring urban forests.3 The information this survey collected has been used to create an interactive map of tree species around New York City. The Parks department then uses this data to calculate the related impacts and needs associated with the trees and tree maintenance.4

While there is a large amount of data related to the tree census published, there is a gap in information on the relation between tree data to specific neighborhoods. Critically analyzing this tree data on a neighborhood level can lead to further community involvement within and stemming from neighborhoods themselves.5 Firsthand involvement can be used to develop connections between community members and foster ownership among members with the environment they inhabit.

This informs my research question:

What are the significant differences in tree characteristics across New York City neighborhoods?

Hypothesis

New York City itself is a diverse landscape with features both conducive and preventive to tree growth and sustainability. Neighborhoods across the city can see significant changes in income, traffic, infrastructure, natural resources such water or sunlight, and attitudes towards the environment.6 Tree size can relay information to researchers on the development and sustainability of their goal to promote urban greening.7 This information can then be used to inform and direct spending and efforts. While there exists a study by Jian Lin, Qiang Wang, and Xiaojiang Li regarding tree characteristics related to socioeconomic and spatial inequalities, my research aims to focus in tree characteristics to specific named neighborhoods.8 Rather than using socioeconomic elements, my research question is focused on smaller geographic areas where individuals can identify themselves as members on a more personal level than a borough.

With these factors, I can test the hypothesis’:

H1: There is a significant difference in tree diameter across New York City neighborhoods

H2: There is a significant difference in tree health across New York City neighborhoods

H3: There is a significant difference in tree species across New York City neighborhoods

Descriptive Statistics

Code
library(tidyverse)
-- Attaching packages --------------------------------------- tidyverse 1.3.2 --
v ggplot2 3.4.0      v purrr   0.3.5 
v tibble  3.1.8      v dplyr   1.0.10
v tidyr   1.2.1      v stringr 1.5.0 
v readr   2.1.3      v forcats 0.5.2 
-- Conflicts ------------------------------------------ tidyverse_conflicts() --
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()
Code
library(ggplot2)
library(formattable)
library(dbplyr)

Attaching package: 'dbplyr'

The following objects are masked from 'package:dplyr':

    ident, sql
Code
library(summarytools)

Attaching package: 'summarytools'

The following object is masked from 'package:tibble':

    view
Code
library(readxl)
treecensus <- read_excel("C:/Users/aep05/Documents/UMASS_GRAD_SCHOOL/DACSS 603/603_Spring_2023/posts/finalproject/2015_Street_Tree_Census.xls")
print(treecensus)
# A tibble: 16,383 x 45
   tree_id block_id created_at          tree_dbh stump_d~1 curb_~2 status health
     <dbl>    <dbl> <dttm>                 <dbl>     <dbl> <chr>   <chr>  <chr> 
 1  180683   348711 2015-08-27 00:00:00        3         0 OnCurb  Alive  Fair  
 2  200540   315986 2015-09-03 00:00:00       21         0 OnCurb  Alive  Fair  
 3  204026   218365 2015-09-05 00:00:00        3         0 OnCurb  Alive  Good  
 4  204337   217969 2015-09-05 00:00:00       10         0 OnCurb  Alive  Good  
 5  189565   223043 2015-08-30 00:00:00       21         0 OnCurb  Alive  Good  
 6  190422   106099 2015-08-30 00:00:00       11         0 OnCurb  Alive  Good  
 7  190426   106099 2015-08-30 00:00:00       11         0 OnCurb  Alive  Good  
 8  208649   103940 2015-09-07 00:00:00        9         0 OnCurb  Alive  Good  
 9  209610   407443 2015-09-08 00:00:00        6         0 OnCurb  Alive  Good  
10  192755   207508 2015-08-31 00:00:00       21         0 Offset~ Alive  Fair  
# ... with 16,373 more rows, 37 more variables: spc_latin <chr>,
#   spc_common <chr>, steward <chr>, guards <chr>, sidewalk <chr>,
#   user_type <chr>, problems <chr>, root_stone <chr>, root_grate <chr>,
#   root_other <chr>, trunk_wire <chr>, trnk_light <chr>, trnk_other <chr>,
#   brch_light <chr>, brch_shoe <chr>, brch_other <chr>, address <chr>,
#   postcode <dbl>, zip_city <chr>, `community board` <dbl>, borocode <dbl>,
#   borough <chr>, cncldist <dbl>, st_assem <dbl>, st_senate <dbl>, ...

This data set is obtained from the 2015 tree census through NYC Open Data provided by the New York City Department of Parks and Recreation.9

The information was collected by predominantly volunteers in addition to the New York City Department of Parks and Recreation staff.

There are 45 variables and 16,383 observations.

Code
summary(treecensus)
    tree_id          block_id        created_at                 
 Min.   :   306   Min.   :100078   Min.   :2015-05-19 00:00:00  
 1st Qu.:182110   1st Qu.:216192   1st Qu.:2015-08-28 00:00:00  
 Median :195703   Median :301941   Median :2015-09-01 00:00:00  
 Mean   :189968   Mean   :283657   Mean   :2015-08-30 16:07:33  
 3rd Qu.:206443   3rd Qu.:345725   3rd Qu.:2015-09-06 00:00:00  
 Max.   :276846   Max.   :516315   Max.   :2015-10-01 00:00:00  
                                                                
    tree_dbh        stump_diam         curb_loc            status         
 Min.   :  0.00   Min.   :  0.0000   Length:16383       Length:16383      
 1st Qu.:  4.00   1st Qu.:  0.0000   Class :character   Class :character  
 Median :  9.00   Median :  0.0000   Mode  :character   Mode  :character  
 Mean   : 10.87   Mean   :  0.5174                                        
 3rd Qu.: 15.00   3rd Qu.:  0.0000                                        
 Max.   :425.00   Max.   :140.0000                                        
                                                                          
    health           spc_latin          spc_common          steward         
 Length:16383       Length:16383       Length:16383       Length:16383      
 Class :character   Class :character   Class :character   Class :character  
 Mode  :character   Mode  :character   Mode  :character   Mode  :character  
                                                                            
                                                                            
                                                                            
                                                                            
    guards            sidewalk          user_type           problems        
 Length:16383       Length:16383       Length:16383       Length:16383      
 Class :character   Class :character   Class :character   Class :character  
 Mode  :character   Mode  :character   Mode  :character   Mode  :character  
                                                                            
                                                                            
                                                                            
                                                                            
  root_stone         root_grate         root_other         trunk_wire       
 Length:16383       Length:16383       Length:16383       Length:16383      
 Class :character   Class :character   Class :character   Class :character  
 Mode  :character   Mode  :character   Mode  :character   Mode  :character  
                                                                            
                                                                            
                                                                            
                                                                            
  trnk_light         trnk_other         brch_light         brch_shoe        
 Length:16383       Length:16383       Length:16383       Length:16383      
 Class :character   Class :character   Class :character   Class :character  
 Mode  :character   Mode  :character   Mode  :character   Mode  :character  
                                                                            
                                                                            
                                                                            
                                                                            
  brch_other          address             postcode       zip_city        
 Length:16383       Length:16383       Min.   :   83   Length:16383      
 Class :character   Class :character   1st Qu.:10308   Class :character  
 Mode  :character   Mode  :character   Median :11207   Mode  :character  
                                       Mean   :10858                     
                                       3rd Qu.:11356                     
                                       Max.   :11697                     
                                                                         
 community board    borocode      borough             cncldist    
 Min.   :101.0   Min.   :1.00   Length:16383       Min.   : 1.00  
 1st Qu.:212.0   1st Qu.:2.00   Class :character   1st Qu.:17.00  
 Median :315.0   Median :3.00   Mode  :character   Median :29.00  
 Mean   :322.4   Mean   :3.16                      Mean   :28.15  
 3rd Qu.:407.0   3rd Qu.:4.00                      3rd Qu.:39.00  
 Max.   :503.0   Max.   :5.00                      Max.   :51.00  
                                                                  
    st_assem       st_senate         nta              nta_name        
 Min.   :23.00   Min.   :10.00   Length:16383       Length:16383      
 1st Qu.:36.00   1st Qu.:15.00   Class :character   Class :character  
 Median :52.00   Median :21.00   Mode  :character   Mode  :character  
 Mean   :51.51   Mean   :21.06                                        
 3rd Qu.:65.00   3rd Qu.:26.00                                        
 Max.   :87.00   Max.   :36.00                                        
                                                                      
    boro_ct           state              latitude       longitude     
 Min.   :1000201   Length:16383       Min.   :40.50   Min.   :-74.25  
 1st Qu.:2044200   Class :character   1st Qu.:40.64   1st Qu.:-73.98  
 Median :3063800   Mode  :character   Median :40.72   Median :-73.95  
 Mean   :3196724                      Mean   :40.71   Mean   :-73.94  
 3rd Qu.:4071900                      3rd Qu.:40.77   3rd Qu.:-73.89  
 Max.   :5030302                      Max.   :40.91   Max.   :-73.71  
                                                                      
      x_sp              y_sp        council district  census tract   
 Min.   : 914125   Min.   :121318   Min.   : 1.0     Min.   :     1  
 1st Qu.: 990034   1st Qu.:171719   1st Qu.:18.0     1st Qu.:   159  
 Median : 998821   Median :200164   Median :29.0     Median :   393  
 Mean   : 999537   Mean   :196583   Mean   :28.2     Mean   :  8356  
 3rd Qu.:1015348   3rd Qu.:219429   3rd Qu.:39.0     3rd Qu.:  1113  
 Max.   :1065861   Max.   :269471   Max.   :51.0     Max.   :157901  
                                    NA's   :169      NA's   :169     
      bin               bbl           
 Min.   :1000000   Min.   :1.000e+09  
 1st Qu.:2112823   1st Qu.:2.054e+09  
 Median :3255106   Median :3.067e+09  
 Mean   :3272538   Mean   :3.200e+09  
 3rd Qu.:4143916   3rd Qu.:4.041e+09  
 Max.   :5166656   Max.   :5.079e+09  
 NA's   :267       NA's   :267        

Full list of variables:

Code
colnames(treecensus)
 [1] "tree_id"          "block_id"         "created_at"       "tree_dbh"        
 [5] "stump_diam"       "curb_loc"         "status"           "health"          
 [9] "spc_latin"        "spc_common"       "steward"          "guards"          
[13] "sidewalk"         "user_type"        "problems"         "root_stone"      
[17] "root_grate"       "root_other"       "trunk_wire"       "trnk_light"      
[21] "trnk_other"       "brch_light"       "brch_shoe"        "brch_other"      
[25] "address"          "postcode"         "zip_city"         "community board" 
[29] "borocode"         "borough"          "cncldist"         "st_assem"        
[33] "st_senate"        "nta"              "nta_name"         "boro_ct"         
[37] "state"            "latitude"         "longitude"        "x_sp"            
[41] "y_sp"             "council district" "census tract"     "bin"             
[45] "bbl"             

The columns I am interested in are:

tree_id - Unique identification number for each tree point.
tree_dbh - Diameter of the tree, measured at approximately 54” / 137cm above the ground. Data was collected for both living and dead trees; for stumps, use stump_diam
status - Indicates whether the tree is alive, standing dead, or a stump.
health - Indicates the user’s perception of tree health.
spc_latin - Scientific name for species, e.g. “Acer rubrum”
spc_common - Common name for species, e.g. “red maple”
postcode - Five-digit zipcode in which tree is located
zip_city - City as derived from zipcode. This is often (but not always) the same as borough.
borocode - Code for borough in which tree point is located: 1 (Manhattan), 2 (Bronx), 3 (Brooklyn), 4 (Queens), 5 (Staten Island)
borough - Name of borough in which tree point is located
nta - This is the NTA Code corresponding to the neighborhood tabulation area from the 2010 US Census that the tree point falls into.
nta_name - This is the NTA name corresponding to the neighborhood tabulation area from the 2010 US Census that the tree point falls into.
boro_ct - This is the boro_ct identifyer for the census tract that the tree point falls into.

Code
treecensus_clean <- select(treecensus, 
                    tree_id, 
                    tree_dbh, 
                    status, 
                    health, 
                    spc_latin,
                    spc_common,
                    postcode,
                    zip_city,
                    borocode,
                    borough,
                    nta,
                    nta_name,
                    boro_ct,
                    )
Code
group_by(treecensus_clean, status, health)%>%
 summarize()
`summarise()` has grouped output by 'status'. You can override using the
`.groups` argument.
# A tibble: 5 x 2
# Groups:   status [3]
  status health
  <chr>  <chr> 
1 Alive  Fair  
2 Alive  Good  
3 Alive  Poor  
4 Dead   <NA>  
5 Stump  <NA>  

Because I am only interested in trees with the status “Alive”, I’ll also need to clean the data set to exclude trees labeled as “Dead” or “Stump”.

Code
treecensus_clean <- treecensus_clean[treecensus_clean$status != "Dead" & treecensus_clean$status != "Stump",]
group_by(treecensus_clean, status, health)%>%
 summarize()
`summarise()` has grouped output by 'status'. You can override using the
`.groups` argument.
# A tibble: 3 x 2
# Groups:   status [1]
  status health
  <chr>  <chr> 
1 Alive  Fair  
2 Alive  Good  
3 Alive  Poor  

Now we return to the summary function to view the cleaned data frame.

Code
summary(treecensus_clean)
    tree_id          tree_dbh         status             health         
 Min.   :   306   Min.   :  0.00   Length:15442       Length:15442      
 1st Qu.:181321   1st Qu.:  5.00   Class :character   Class :character  
 Median :195362   Median : 10.00   Mode  :character   Mode  :character  
 Mean   :189311   Mean   : 11.38                                        
 3rd Qu.:206165   3rd Qu.: 16.00                                        
 Max.   :227192   Max.   :425.00                                        
  spc_latin          spc_common           postcode       zip_city        
 Length:15442       Length:15442       Min.   :   83   Length:15442      
 Class :character   Class :character   1st Qu.:10308   Class :character  
 Mode  :character   Mode  :character   Median :11207   Mode  :character  
                                       Mean   :10855                     
                                       3rd Qu.:11355                     
                                       Max.   :11697                     
    borocode      borough              nta              nta_name        
 Min.   :1.00   Length:15442       Length:15442       Length:15442      
 1st Qu.:2.00   Class :character   Class :character   Class :character  
 Median :3.00   Mode  :character   Mode  :character   Mode  :character  
 Mean   :3.16                                                           
 3rd Qu.:4.00                                                           
 Max.   :5.00                                                           
    boro_ct       
 Min.   :1000201  
 1st Qu.:2044200  
 Median :3063800  
 Mean   :3196920  
 3rd Qu.:4072100  
 Max.   :5030302  
Code
dfSummary(treecensus_clean)
Data Frame Summary  
treecensus_clean  
Dimensions: 15442 x 13  
Duplicates: 0  

-----------------------------------------------------------------------------------------------------------------------
No   Variable      Stats / Values                   Freqs (% of Valid)      Graph                  Valid      Missing  
---- ------------- -------------------------------- ----------------------- ---------------------- ---------- ---------
1    tree_id       Mean (sd) : 189310.8 (27189.2)   15442 distinct values                   :      15442      0        
     [numeric]     min < med < max:                                                         :      (100.0%)   (0.0%)   
                   306 < 195361.5 < 227192                                                  : :                        
                   IQR (CV) : 24844 (0.1)                                                 : : :                        
                                                                                        . : : :                        

2    tree_dbh      Mean (sd) : 11.4 (8.7)           54 distinct values      :                      15442      0        
     [numeric]     min < med < max:                                         :                      (100.0%)   (0.0%)   
                   0 < 10 < 425                                             :                                          
                   IQR (CV) : 11 (0.8)                                      :                                          
                                                                            :                                          

3    status        1. Alive                         15442 (100.0%)          IIIIIIIIIIIIIIIIIIII   15442      0        
     [character]                                                                                   (100.0%)   (0.0%)   

4    health        1. Fair                           3085 (20.0%)           III                    15442      0        
     [character]   2. Good                          11434 (74.0%)           IIIIIIIIIIIIII         (100.0%)   (0.0%)   
                   3. Poor                            923 ( 6.0%)           I                                          

5    spc_latin     1. Platanus x acerifolia         1981 (12.8%)            II                     15442      0        
     [character]   2. Gleditsia triacanthos var     1610 (10.4%)            II                     (100.0%)   (0.0%)   
                   3. Quercus palustris             1354 ( 8.8%)            I                                          
                   4. Pyrus calleryana              1350 ( 8.7%)            I                                          
                   5. Acer platanoides               936 ( 6.1%)            I                                          
                   6. Tilia cordata                  783 ( 5.1%)            I                                          
                   7. Zelkova serrata                752 ( 4.9%)                                                       
                   8. Styphnolobium japonicum        733 ( 4.7%)                                                       
                   9. Ginkgo biloba                  629 ( 4.1%)                                                       
                   10. Fraxinus pennsylvanica        399 ( 2.6%)                                                       
                   [ 105 others ]                   4915 (31.8%)            IIIIII                                     

6    spc_common    1. London planetree              1981 (12.8%)            II                     15442      0        
     [character]   2. honeylocust                   1610 (10.4%)            II                     (100.0%)   (0.0%)   
                   3. pin oak                       1354 ( 8.8%)            I                                          
                   4. Callery pear                  1350 ( 8.7%)            I                                          
                   5. Norway maple                   936 ( 6.1%)            I                                          
                   6. littleleaf linden              783 ( 5.1%)            I                                          
                   7. Japanese zelkova               752 ( 4.9%)                                                       
                   8. Sophora                        733 ( 4.7%)                                                       
                   9. ginkgo                         629 ( 4.1%)                                                       
                   10. green ash                     399 ( 2.6%)                                                       
                   [ 105 others ]                   4915 (31.8%)            IIIIII                                     

7    postcode      Mean (sd) : 10855.4 (740.9)      169 distinct values                       :    15442      0        
     [numeric]     min < med < max:                                                           :    (100.0%)   (0.0%)   
                   83 < 11207 < 11697                                                       : :                        
                   IQR (CV) : 1047 (0.1)                                                    : :                        
                                                                                            : :                        

8    zip_city      1. Brooklyn                      4384 (28.4%)            IIIII                  15442      0        
     [character]   2. New York                      2612 (16.9%)            III                    (100.0%)   (0.0%)   
                   3. Staten Island                 1970 (12.8%)            II                                         
                   4. Bronx                         1311 ( 8.5%)            I                                          
                   5. Astoria                        914 ( 5.9%)            I                                          
                   6. Jackson Heights                377 ( 2.4%)                                                       
                   7. Forest Hills                   366 ( 2.4%)                                                       
                   8. Flushing                       288 ( 1.9%)                                                       
                   9. Ridgewood                      257 ( 1.7%)                                                       
                   10. Kew Gardens                   252 ( 1.6%)                                                       
                   [ 34 others ]                    2711 (17.6%)            III                                        

9    borocode      Mean (sd) : 3.2 (1.3)            1 : 2646 (17.1%)        III                    15442      0        
     [numeric]     min < med < max:                 2 : 1311 ( 8.5%)        I                      (100.0%)   (0.0%)   
                   1 < 3 < 5                        3 : 4384 (28.4%)        IIIII                                      
                   IQR (CV) : 2 (0.4)               4 : 5131 (33.2%)        IIIIII                                     
                                                    5 : 1970 (12.8%)        II                                         

10   borough       1. Bronx                         1311 ( 8.5%)            I                      15442      0        
     [character]   2. Brooklyn                      4384 (28.4%)            IIIII                  (100.0%)   (0.0%)   
                   3. Manhattan                     2646 (17.1%)            III                                        
                   4. Queens                        5131 (33.2%)            IIIIII                                     
                   5. Staten Island                 1970 (12.8%)            II                                         

11   nta           1. QN72                            726 ( 4.7%)                                  15442      0        
     [character]   2. SI25                            611 ( 4.0%)                                  (100.0%)   (0.0%)   
                   3. MN12                            547 ( 3.5%)                                                      
                   4. BK37                            533 ( 3.5%)                                                      
                   5. QN28                            486 ( 3.1%)                                                      
                   6. QN17                            419 ( 2.7%)                                                      
                   7. QN70                            323 ( 2.1%)                                                      
                   8. SI48                            306 ( 2.0%)                                                      
                   9. QN60                            286 ( 1.9%)                                                      
                   10. SI45                           272 ( 1.8%)                                                      
                   [ 172 others ]                   10933 (70.8%)           IIIIIIIIIIIIII                             

12   nta_name      1. Steinway                        726 ( 4.7%)                                  15442      0        
     [character]   2. Oakwood-Oakwood Beach           611 ( 4.0%)                                  (100.0%)   (0.0%)   
                   3. Upper West Side                 547 ( 3.5%)                                                      
                   4. Park Slope-Gowanus              533 ( 3.5%)                                                      
                   5. Jackson Heights                 486 ( 3.1%)                                                      
                   6. Forest Hills                    419 ( 2.7%)                                                      
                   7. Astoria                         323 ( 2.1%)                                                      
                   8. Arden Heights                   306 ( 2.0%)                                                      
                   9. Kew Gardens                     286 ( 1.9%)                                                      
                   10. New Dorp-Midland Beach         272 ( 1.8%)                                                      
                   [ 172 others ]                   10933 (70.8%)           IIIIIIIIIIIIII                             

13   boro_ct       Mean (sd) : 3196920 (1267854)    1015 distinct values                  :        15442      0        
     [numeric]     min < med < max:                                                   .   :        (100.0%)   (0.0%)   
                   1000201 < 3063800 < 5030302                              .         :   :                            
                   IQR (CV) : 2027900 (0.4)                                 :   .     :   :   :                        
                                                                            :   :   . :   :   :                        
-----------------------------------------------------------------------------------------------------------------------

Footnotes

  1. Cavender, N., & Donnelly, G. (2019). Intersecting Urban Forestry and botanical gardens to address big challenges for healthier trees, people, and cities. PLANTS, PEOPLE, PLANET, 1(4), 315–322. https://doi.org/10.1002/ppp3.38↩︎

  2. U.S. Census Bureau . (n.d.). U.S. Census Bureau quickfacts: New York City, New York. Retrieved March 20, 2023, from https://www.census.gov/quickfacts/newyorkcitynewyork↩︎

  3. Merriman, D. (2017) Volunteers count every street tree in New York City. US Forest Service. Retrieved March 20, 2023, from https://www.fs.usda.gov/features/volunteers-count-every-street-tree-new-york-city-0↩︎

  4. Cochran, C., & Greer, B. (2016, June 29). Treescount! 2015: NYC’s Third Street-Tree Census. New York State Urban Forestry Council. Retrieved March 20, 2023, from https://nysufc.org/treescount/2016/04/26/↩︎

  5. Ma, Q., Lin, J., Ju, Y. et al. Individual structure mapping over six million trees for New York City USA. Sci Data 10, 102 (2023). https://doi.org/10.1038/s41597-023-02000-w↩︎

  6. Neckerman, K., Lovasi, G., Davies, S. et al. Disparities in Urban Neighborhood Conditions: Evidence from GIS Measures and Field Observation in New York City. Public Health Pol 30 (Suppl 1), S264–S285 (2009). https://doi.org/10.1057/jphp.2008.47↩︎

  7. Colleen E. Reid, Laura D. Kubzansky, Jiayue Li, Jessie L. Shmool, Jane E. Clougherty. It’s not easy assessing greenness: A comparison of NDVI datasets and neighborhood types and their associations with self-rated health in New York City. Health & Place 54, 92-101 (2018).https://doi.org/10.1016/j.healthplace.2018.09.005.↩︎

  8. Jian Lin, Qiang Wang, Xiaojiang Li. Socioeconomic and spatial inequalities of street tree abundance, species diversity, and size structure in New York City. Landscape and Urban Planning, Volume 206. 2021. 103992. https://doi.org/10.1016/j.landurbplan.2020.103992.↩︎

  9. https://data.cityofnewyork.us/Environment/2015-Street-Tree-Census-Tree-Data/uvpi-gqnh↩︎