Introduction
In 2007, NYC Parks launched MillionTreesNYC, an initiative to plant and care for one million trees to New York City’s parks, streets, and backyards. This project wasn’t just about adding the sheer quantity of trees, but was also designed to build up ecologically healthy urban forests, increase natural biodiversity, and increase environmental health benefits for all New Yorkers. The millionth tree was planted in NYC in 2015, and I want to see some of the effects of the program. Are trees more equally dispersed across the 5 boroughs after the project? Did species biodiversity increase, i.e. is there a wider variety of trees distributed across the city? Are there more native species and fewer introduced/invasive species of tree after the project? A comparison of street tree data from 1995 and 2015 should be able to provide the answers to these questions.
1995 NYC Street Tree Census
library(dplyr) library(ggplot2) library(ggrepel) library(readr) trees1995 <- read_csv(“/Users/meredithpowers/Desktop/tree1995.csv”)
2015 NYC Street Tree Census
trees2015 <- read_csv(“/Users/meredithpowers/Desktop/tree2015.csv”)
1995 Street Tree Map
ggplot(trees1995, aes(x = Longitude, y = Latitude)) +
geom_point(na.rm = TRUE, show.legend = FALSE, shape = ".", color="seagreen4") +
ylim(c(40.5, 40.92)) +
xlim(c(-74.22, -73.69)) +
theme(axis.title.x=element_blank(), axis.title.y=element_blank(), axis.text.x=element_blank(), axis.text.y=element_blank()) +
labs(title="Street Trees NYC Density Map 1995")

2015 Street Tree Map
ggplot(trees2015, aes(x = longitude, y = latitude)) +
geom_point(na.rm = TRUE, show.legend = FALSE, shape = ".", color="seagreen4") +
theme(axis.title.x=element_blank(), axis.title.y=element_blank(), axis.text.x=element_blank(), axis.text.y=element_blank()) +
labs(title="Street Trees NYC Density Map 2015")

Tree species diversity, 1995
library(plyr)
div95 = count(trees1995, "Spc_Common")
div95
g <- ggplot(div95, aes(Spc_Common, freq, color = Spc_Common))
g + geom_count(na.rm = TRUE, show.legend = FALSE) +
theme(axis.text.x=element_blank()) +
labs(subtitle="Tree Types",
x="different species of tree",
y="frequency",
title="Tree Diversity 1995")

Tree species diversity, 2015
div15 = count(trees2015, "spc_common")
div15
g2 <- ggplot(div15, aes(spc_common, freq, color = spc_common))
g2 + geom_count(na.rm = TRUE, show.legend = FALSE) +
theme(axis.text.x=element_blank()) +
labs(subtitle="Tree Types",
x="different species of tree",
y="frequency",
title="Tree Diversity 2015")

Frequency of street trees by type, 1995
theme_set(theme_bw())
ggplot(div95, aes(x=Spc_Common, y=freq)) +
geom_bar(stat="identity", width=.5, fill="seagreen4") +
theme(axis.text.x=element_blank()) +
labs(subtitle="number of trees by type",
x="different tree species",
y="frequency",
title="Tree Diversity 1995")

Frequency of street trees by type, 2015
theme_set(theme_bw())
ggplot(div15, aes(x=spc_common, y=freq)) +
geom_bar(stat="identity", width=.5, fill="seagreen4") +
theme(axis.text.x=element_blank()) +
labs(subtitle="number of trees by type",
x="different tree species",
y="frequency",
title="Tree Diversity 2015")

Frequency and Diversity of Street Trees by Borough, 1995
theme_set(theme_bw())
b <- ggplot(trees1995, aes(Borough, fill = Spc_Latin))
b + geom_bar(show.legend = FALSE) +
theme(axis.title.x=element_blank()) +
labs(subtitle="number of trees by borough",
y="count",
title="Distribution of Different Species of Street Trees, 1995")

Frequency and Diversity of Street Trees by Borough, 2015
theme_set(theme_bw())
b2 <- ggplot(trees2015, aes(borough, fill = spc_latin))
b2 + geom_bar(show.legend = FALSE) +
theme(axis.title.x=element_blank()) +
labs(subtitle="number of trees by borough",
y="count",
title="Distribution of Different Species of Street Trees, 2015")

LS0tCnRpdGxlOiAnSG9tZXdvcmsgOTogVHdvIERlY2FkZXMgb2YgTllDIFN0cmVldCBUcmVlcycKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICB0aGVtZTogbHVtZW4KICBodG1sX2RvY3VtZW50OgogICAgZGZfcHJpbnQ6IHBhZ2VkCi0tLQoKIyBJbnRyb2R1Y3Rpb24KCkluIDIwMDcsIE5ZQyBQYXJrcyBsYXVuY2hlZCAqTWlsbGlvblRyZWVzTllDKiwgYW4gaW5pdGlhdGl2ZSB0byBwbGFudCBhbmQgY2FyZSBmb3Igb25lIG1pbGxpb24gdHJlZXMgdG8gTmV3IFlvcmsgQ2l0eSdzIHBhcmtzLCBzdHJlZXRzLCBhbmQgYmFja3lhcmRzLiBUaGlzIHByb2plY3Qgd2Fzbid0IGp1c3QgYWJvdXQgYWRkaW5nIHRoZSBzaGVlciBxdWFudGl0eSBvZiB0cmVlcywgYnV0IHdhcyBhbHNvIGRlc2lnbmVkIHRvIGJ1aWxkIHVwIGVjb2xvZ2ljYWxseSBoZWFsdGh5IHVyYmFuIGZvcmVzdHMsIGluY3JlYXNlIG5hdHVyYWwgYmlvZGl2ZXJzaXR5LCBhbmQgaW5jcmVhc2UgZW52aXJvbm1lbnRhbCBoZWFsdGggYmVuZWZpdHMgZm9yIGFsbCBOZXcgWW9ya2Vycy4gVGhlIG1pbGxpb250aCB0cmVlIHdhcyBwbGFudGVkIGluIE5ZQyBpbiAyMDE1LCBhbmQgSSB3YW50IHRvIHNlZSBzb21lIG9mIHRoZSBlZmZlY3RzIG9mIHRoZSBwcm9ncmFtLiBBcmUgdHJlZXMgbW9yZSBlcXVhbGx5IGRpc3BlcnNlZCBhY3Jvc3MgdGhlIDUgYm9yb3VnaHMgYWZ0ZXIgdGhlIHByb2plY3Q/IERpZCBzcGVjaWVzIGJpb2RpdmVyc2l0eSBpbmNyZWFzZSwgaS5lLiBpcyB0aGVyZSBhIHdpZGVyIHZhcmlldHkgb2YgdHJlZXMgZGlzdHJpYnV0ZWQgYWNyb3NzIHRoZSBjaXR5PyBBcmUgdGhlcmUgbW9yZSBuYXRpdmUgc3BlY2llcyBhbmQgZmV3ZXIgaW50cm9kdWNlZC9pbnZhc2l2ZSBzcGVjaWVzIG9mIHRyZWUgYWZ0ZXIgdGhlIHByb2plY3Q/IEEgY29tcGFyaXNvbiBvZiBzdHJlZXQgdHJlZSBkYXRhIGZyb20gMTk5NSBhbmQgMjAxNSBzaG91bGQgYmUgYWJsZSB0byBwcm92aWRlIHRoZSBhbnN3ZXJzIHRvIHRoZXNlIHF1ZXN0aW9ucy4KCiMgRGF0YQoKTllDIE9wZW4gRGF0YSBwcm92aWRlcyBhIGh1Z2UgbnVtYmVyIG9mIGRhdGFzZXRzLCBpbmNsdWRpbmcgY2Vuc3VzIGRhdGEgb24gc3RyZWV0IHRyZWVzIHBsYW50ZWQgd2l0aGluIHRoZSBjaXR5LiBJIGFtIHVzaW5nIHRoZSAxOTk1IFN0cmVldCBUcmVlIENlbnN1cyAoZG93bmxvYWRlZCBmcm9tIGh0dHBzOi8vZGF0YS5jaXR5b2ZuZXd5b3JrLnVzL0Vudmlyb25tZW50LzE5OTUtU3RyZWV0LVRyZWUtQ2Vuc3VzL2t5YWQtem00aikgYW5kIHRoZSAyMDE1IFN0cmVldCBUcmVlIENlbnN1cyAoZG93bmxvYWRlZCBmcm9tIGh0dHBzOi8vZGF0YS5jaXR5b2ZuZXd5b3JrLnVzL0Vudmlyb25tZW50LzIwMTUtU3RyZWV0LVRyZWUtQ2Vuc3VzLVRyZWUtRGF0YS91dnBpLWdxbmgpLiBNeSBrZXkgdmFyaWFibGVzIGFyZSB0aGUgbG9uZ3RpdHVkZS9sYXRpdHVkZSBjb29yZGluYXRlcyBvZiBlYWNoIHRyZWUsIHRoZSBzcGVjaWVzIGFuZCBMYXRpbiBuYW1lIG9mIGVhY2ggdHJlZSwgYW5kIHRoZSBib3JvdWdoIHdoZXJlIGVhY2ggdHJlZSBpcyBsb2NhdGVkLiAKCiMgMTk5NSBOWUMgU3RyZWV0IFRyZWUgQ2Vuc3VzCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsIGVjaG89RkFMU0V9CmxpYnJhcnkoZHBseXIpCmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShnZ3JlcGVsKQpsaWJyYXJ5KHJlYWRyKQp0cmVlczE5OTUgPC0gcmVhZF9jc3YoIi9Vc2Vycy9tZXJlZGl0aHBvd2Vycy9EZXNrdG9wL3RyZWUxOTk1LmNzdiIpCmBgYApsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoZ2dyZXBlbCkKbGlicmFyeShyZWFkcikKdHJlZXMxOTk1IDwtIHJlYWRfY3N2KCIvVXNlcnMvbWVyZWRpdGhwb3dlcnMvRGVza3RvcC90cmVlMTk5NS5jc3YiKQoKIzIwMTUgTllDIFN0cmVldCBUcmVlIENlbnN1cwpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBlY2hvPUZBTFNFfQp0cmVlczIwMTUgPC0gcmVhZF9jc3YoIi9Vc2Vycy9tZXJlZGl0aHBvd2Vycy9EZXNrdG9wL3RyZWUyMDE1LmNzdiIpCmBgYAp0cmVlczIwMTUgPC0gcmVhZF9jc3YoIi9Vc2Vycy9tZXJlZGl0aHBvd2Vycy9EZXNrdG9wL3RyZWUyMDE1LmNzdiIpCgojIDE5OTUgU3RyZWV0IFRyZWUgTWFwCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CmdncGxvdCh0cmVlczE5OTUsIGFlcyh4ID0gTG9uZ2l0dWRlLCB5ID0gTGF0aXR1ZGUpKSArIAogIGdlb21fcG9pbnQobmEucm0gPSBUUlVFLCBzaG93LmxlZ2VuZCA9IEZBTFNFLCBzaGFwZSA9ICIuIiwgY29sb3I9InNlYWdyZWVuNCIpICsKICB5bGltKGMoNDAuNSwgNDAuOTIpKSArIAogIHhsaW0oYygtNzQuMjIsIC03My42OSkpICsKICB0aGVtZShheGlzLnRpdGxlLng9ZWxlbWVudF9ibGFuaygpLCBheGlzLnRpdGxlLnk9ZWxlbWVudF9ibGFuaygpLCBheGlzLnRleHQueD1lbGVtZW50X2JsYW5rKCksIGF4aXMudGV4dC55PWVsZW1lbnRfYmxhbmsoKSkgKwogICBsYWJzKHRpdGxlPSJTdHJlZXQgVHJlZXMgTllDIERlbnNpdHkgTWFwIDE5OTUiKQpgYGAKCiMyMDE1IFN0cmVldCBUcmVlIE1hcApgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQpnZ3Bsb3QodHJlZXMyMDE1LCBhZXMoeCA9IGxvbmdpdHVkZSwgeSA9IGxhdGl0dWRlKSkgKyAKICBnZW9tX3BvaW50KG5hLnJtID0gVFJVRSwgc2hvdy5sZWdlbmQgPSBGQUxTRSwgc2hhcGUgPSAiLiIsIGNvbG9yPSJzZWFncmVlbjQiKSArCiAgdGhlbWUoYXhpcy50aXRsZS54PWVsZW1lbnRfYmxhbmsoKSwgYXhpcy50aXRsZS55PWVsZW1lbnRfYmxhbmsoKSwgYXhpcy50ZXh0Lng9ZWxlbWVudF9ibGFuaygpLCBheGlzLnRleHQueT1lbGVtZW50X2JsYW5rKCkpICsKICAgbGFicyh0aXRsZT0iU3RyZWV0IFRyZWVzIE5ZQyBEZW5zaXR5IE1hcCAyMDE1IikKYGBgCgojVHJlZSBzcGVjaWVzIGRpdmVyc2l0eSwgMTk5NQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQpsaWJyYXJ5KHBseXIpCmRpdjk1ID0gY291bnQodHJlZXMxOTk1LCAiU3BjX0NvbW1vbiIpCmRpdjk1CmBgYAoKYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgcmVzdWx0cz0nYXNpcycsIHdhcm4uY29uZmxpY3RzID0gRkFMU0V9CmcgPC0gZ2dwbG90KGRpdjk1LCBhZXMoU3BjX0NvbW1vbiwgZnJlcSwgY29sb3IgPSBTcGNfQ29tbW9uKSkKZyArIGdlb21fY291bnQobmEucm0gPSBUUlVFLCBzaG93LmxlZ2VuZCA9IEZBTFNFKSArCiAgdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF9ibGFuaygpKSArCiAgbGFicyhzdWJ0aXRsZT0iVHJlZSBUeXBlcyIsIAogICAgICAgeD0iZGlmZmVyZW50IHNwZWNpZXMgb2YgdHJlZSIsCiAgICAgICB5PSJmcmVxdWVuY3kiLCAKICAgICAgIHRpdGxlPSJUcmVlIERpdmVyc2l0eSAxOTk1IikKYGBgCgojVHJlZSBzcGVjaWVzIGRpdmVyc2l0eSwgMjAxNSAKYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgd2Fybi5jb25mbGljdHMgPSBGQUxTRX0KZGl2MTUgPSBjb3VudCh0cmVlczIwMTUsICJzcGNfY29tbW9uIikKZGl2MTUKYGBgCgpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCByZXN1bHRzPSJhc2lzIiwgd2Fybi5jb25mbGljdHMgPSBGQUxTRX0KZzIgPC0gZ2dwbG90KGRpdjE1LCBhZXMoc3BjX2NvbW1vbiwgZnJlcSwgY29sb3IgPSBzcGNfY29tbW9uKSkKZzIgKyBnZW9tX2NvdW50KG5hLnJtID0gVFJVRSwgc2hvdy5sZWdlbmQgPSBGQUxTRSkgKwogIHRoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfYmxhbmsoKSkgKwogIGxhYnMoc3VidGl0bGU9IlRyZWUgVHlwZXMiLCAKICAgICAgIHg9ImRpZmZlcmVudCBzcGVjaWVzIG9mIHRyZWUiLAogICAgICAgeT0iZnJlcXVlbmN5IiwgCiAgICAgICB0aXRsZT0iVHJlZSBEaXZlcnNpdHkgMjAxNSIpCmBgYAoKIyBGcmVxdWVuY3kgb2Ygc3RyZWV0IHRyZWVzIGJ5IHR5cGUsIDE5OTUKYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgd2Fybi5jb25mbGljdHMgPSBGQUxTRX0KdGhlbWVfc2V0KHRoZW1lX2J3KCkpCmdncGxvdChkaXY5NSwgYWVzKHg9U3BjX0NvbW1vbiwgeT1mcmVxKSkgKyAKICBnZW9tX2JhcihzdGF0PSJpZGVudGl0eSIsIHdpZHRoPS41LCBmaWxsPSJzZWFncmVlbjQiKSArIAogIHRoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfYmxhbmsoKSkgKwogIGxhYnMoc3VidGl0bGU9Im51bWJlciBvZiB0cmVlcyBieSB0eXBlIiwgCiAgICAgICB4PSJkaWZmZXJlbnQgdHJlZSBzcGVjaWVzIiwKICAgICAgIHk9ImZyZXF1ZW5jeSIsCiAgICAgICB0aXRsZT0iVHJlZSBEaXZlcnNpdHkgMTk5NSIpCmBgYAoKIyBGcmVxdWVuY3kgb2Ygc3RyZWV0IHRyZWVzIGJ5IHR5cGUsIDIwMTUKYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgd2Fybi5jb25mbGljdHMgPSBGQUxTRX0KdGhlbWVfc2V0KHRoZW1lX2J3KCkpCmdncGxvdChkaXYxNSwgYWVzKHg9c3BjX2NvbW1vbiwgeT1mcmVxKSkgKyAKICBnZW9tX2JhcihzdGF0PSJpZGVudGl0eSIsIHdpZHRoPS41LCBmaWxsPSJzZWFncmVlbjQiKSArIAogIHRoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfYmxhbmsoKSkgKwogIGxhYnMoc3VidGl0bGU9Im51bWJlciBvZiB0cmVlcyBieSB0eXBlIiwgCiAgICAgICB4PSJkaWZmZXJlbnQgdHJlZSBzcGVjaWVzIiwKICAgICAgIHk9ImZyZXF1ZW5jeSIsIAogICAgICAgdGl0bGU9IlRyZWUgRGl2ZXJzaXR5IDIwMTUiKQpgYGAKCgojIEZyZXF1ZW5jeSBhbmQgRGl2ZXJzaXR5IG9mIFN0cmVldCBUcmVlcyBieSBCb3JvdWdoLCAxOTk1CmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CnRoZW1lX3NldCh0aGVtZV9idygpKQpiIDwtIGdncGxvdCh0cmVlczE5OTUsIGFlcyhCb3JvdWdoLCBmaWxsID0gU3BjX0xhdGluKSkKYiArIGdlb21fYmFyKHNob3cubGVnZW5kID0gRkFMU0UpICsKICB0aGVtZShheGlzLnRpdGxlLng9ZWxlbWVudF9ibGFuaygpKSArCiAgbGFicyhzdWJ0aXRsZT0ibnVtYmVyIG9mIHRyZWVzIGJ5IGJvcm91Z2giLCAKICAgICAgIHk9ImNvdW50IiwgCiAgICAgICB0aXRsZT0iRGlzdHJpYnV0aW9uIG9mIERpZmZlcmVudCBTcGVjaWVzIG9mIFN0cmVldCBUcmVlcywgMTk5NSIpCmBgYAoKCiMgRnJlcXVlbmN5IGFuZCBEaXZlcnNpdHkgb2YgU3RyZWV0IFRyZWVzIGJ5IEJvcm91Z2gsIDIwMTUKYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KdGhlbWVfc2V0KHRoZW1lX2J3KCkpCmIyIDwtIGdncGxvdCh0cmVlczIwMTUsIGFlcyhib3JvdWdoLCBmaWxsID0gc3BjX2xhdGluKSkKYjIgKyBnZW9tX2JhcihzaG93LmxlZ2VuZCA9IEZBTFNFKSArCiAgdGhlbWUoYXhpcy50aXRsZS54PWVsZW1lbnRfYmxhbmsoKSkgKwogIGxhYnMoc3VidGl0bGU9Im51bWJlciBvZiB0cmVlcyBieSBib3JvdWdoIiwgCiAgICAgICB5PSJjb3VudCIsIAogICAgICAgdGl0bGU9IkRpc3RyaWJ1dGlvbiBvZiBEaWZmZXJlbnQgU3BlY2llcyBvZiBTdHJlZXQgVHJlZXMsIDIwMTUiKQpgYGAKCgoKCgoKCgoKCgoKCgoKCgo=