forked from Metropolitan-Council/growing.shade
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreport_new.Rmd
294 lines (207 loc) · 20.8 KB
/
report_new.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
---
title: "Growing Shade Report"
date: "`r format(Sys.time(), '%d %B %Y')`"
params:
param_geo: NA
param_area: NA
param_equitypara: NA
param_treeplot: NA
param_ranktext: NA
param_rankplot: NA
param_prioritytable: NA
param_equityplot: NA
param_otherparea: NA
param_tempplot: NA
param_equitytext: NA
para_heattext: NA
urlcolor: blue
always_allow_html: true
---
```{css, echo=FALSE, include = F, eval =F}
caption {
font-size: .9em;
font-color: #A9A9A9
}
```
```{r assignments, echo=F, message=F, warning=F, results='hide'}
library(dplyr)
library(stringr)
library(ggplot2)
library(tidyr)
knitr::opts_chunk$set(echo = TRUE, fig.align="center", echo = F)
fancyname <- if (params$param_geo == "tracts") {
paste0(if (substr(params$param_area, 3, 5) == "053") {"Hennepin County tract "
} else if (substr(params$param_area, 3, 5) == "003") {"Anoka County tract "
} else if (substr(params$param_area, 3, 5) == "019") {"Carver County tract "
} else if (substr(params$param_area, 3, 5) == "037") {"Dakota County tract "
} else if (substr(params$param_area, 3, 5) == "123") {"Ramsey County tract "
} else if (substr(params$param_area, 3, 5) == "139") {"Scott County tract "
} else if (substr(params$param_area, 3, 5) == "163") {"Washington County tract "},
as.numeric(substr(params$param_area, 6, 11))/100)} else {params$param_area}
```
# Report for `r fancyname`
```{r map, echo = F, message = F, warning = F, fig.alt = "Outline of the Twin Cities region, the area which this report was made for is mapped in green.", fig.align="right", out.width= "43%", out.extra='style="float:right; padding:10px"'}
#, fig.cap = "\\label{fig:map}The geographic location of the selected area. The selected area is highlighed in green."
if(params$param_geo == "tracts") {
metc_region %>% ggplot() + geom_sf(fill = NA, color = "grey80") +
geom_sf(data = filter(mn_tracts, GEOID == params$param_area), color = councilR::colors$cdGreen, fill = councilR::colors$cdGreen) +
theme_void()
} else if (params$param_geo == "ctus") {
metc_region %>% ggplot() + geom_sf(fill = NA, color = "grey80") +
geom_sf(data = filter(ctu_list, GEO_NAME == params$param_area), color = councilR::colors$cdGreen, fill = councilR::colors$cdGreen) +
theme_void()
} else if (params$param_geo == "nhood") {
metc_region %>% ggplot() + geom_sf(fill = NA, color = "grey80") +
geom_sf(data = filter(nhood_list, GEO_NAME == params$param_area), color = councilR::colors$cdGreen, fill = councilR::colors$cdGreen) +
theme_void()}
# Growing Shade was developed for planners and foresters, but is available to anyone who wants this information.
#
# Trees provide critical ecosystem services and are important components of the human, natural and built environments. Enhancing and maintaining tree canopy cover is an actionable step to create healthy places for people to live and a resilient future.
# This report synthesizes and summarizes data about trees, people, and the built environments. Understanding the tree canopy within this larger context is important for prioritization and planning efforts. Please review "what's next for Growing Shade" or contact us at SOME EMAIL HERE if this report does not address your data needs - we welcome the feedback and may be able to accommodate requests.
```
This report was generated from the Growing Shade interactive tool produced by the Metropolitan Council in collaboration with The Nature Conservancy and Tree Trust.
Trees help communities thrive. Community-wide benefits of trees include cooler temperatures, improved air quality, cleaner stormwater, improved mental health, and enhanced biodiversity. Enhancing tree canopy cover is an actionable step to create healthy places for people to live and a resilient future. The Growing Shade Project provides data and resources to inform tree planting and canopy maintenance for the greater Twin Cities region.
Trees connect to regional issues and priorities. Public health, environmental justice, climate change, and natural resource conservation all intersect with the tree canopy. Understanding the tree canopy within this larger context is important for prioritization and planning efforts.
## Tree canopy
`r params$param_equitypara`
Note that native tallgrass prairie occurs throughout our region - lower tree coverage in areas dominated by tallgrass prairie should not be penalized.
```{r treeplot, fig.align="center", out.width= "70%", fig.asp = .4, fig.alt = "Figure showing the distribution of tree canopy across the region and within the selected geography."}
params$param_treeplot
# Census block groups have different areas and may overlap with other geographies, thus the existing tree canopy cover in the selected area may not be the mean of the block group canopy covers.
```
```{r include = F, eval = F}
### Methodology note
# The method used to detect tree canopy varies across tools. The 30% goal of canopy coverage and values about current canopy coverage in Growing Shade may not align with goals or values presented in other tools. In Growing Shade, we prioritize using current data. Current data is particularly important as our region continues to feel the impact of emerald ash borer on the tree canopy.
#
# To get current (near real-time) data, Growing Shade leverages metrics of greenness (normalized difference vegetation index, NDVI) and seasonal patterns in plant growth (phenology) to detect trees from Sentinel-2 satellite data. Sentinel collects data approximately every 10 days, and our method does not need to rely on older data (for instance, LiDAR data for our region is from 2011 and out-of-date). While Sentinel's temporal resolution is excellent, the satellite data has a spatial resolution of 10 meters squared. This is often a bigger area than tree canopies.
#
# When comparing tree canopy coverage from Sentinel with a more spatially accurate (but less temporally accurate) 1 meter squared landcover data set, we found that Sentinel tree cover has high correlation with 1 meter landcover, but Sentinel detects about twice as much tree canopy. Essentially, this means that we are detecting areas with at least 50% tree canopy coverage. We re-scaled our data using this relationship to improve the clarity of messaging. Thus, another way to view the goal of 30% canopy cover is to have 60% of land area covered by at least 50% tree canopy.
```
## Priortization
`r params$param_ranktext`
Values for all potential variables can be obtained by downloading the raw data from the "mapping tool" tab.
```{r priorityplot, fig.align="center", out.width= "80%", fig.asp = .5, fig.alt = "Figure showing the priority ranking (climate change, conservation, environmental justice, public health) for all block groups within the selected geography."}
params$param_rankplot
```
<br>
```{r priority-table, results='markup', tidy = F}
knitr::kable(params$param_prioritytable,
booktabs = TRUE) %>%
# caption = "Average values for the selected area as compared to the region-wide average. Variables shown are those used in prioritization layer. Values for all potential variables can be obtained by downloading the raw data from the Growing Shade Mapping Tool.") %>%
# kableExtra::kable_styling(full_width = F) %>%
kableExtra::kable_classic("striped", full_width = F, html_font = "Cambria")# %>%
# kableExtra::footnote(general = "Average values for the selected area as compared to the region-wide average. Variables shown are those used in prioritization layer. Values for all potential variables can be obtained by downloading the raw data from the Growing Shade Mapping Tool.",
# general_title = "")
```
## Race & income disparities
`r params$param_equitytext`
```{r include = T, eval = F}
# Research shows that trees are unevenly distributed across communities. In particular, areas with a high percent of the population identifying as a person of color or low-income populations have less tree canopy (<a href = "https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0249715" target="_blank">MacDonald 2021</a>) as do historically redlined areas (<a href = "https://www.npr.org/2020/01/14/795961381/racist-housing-practices-from-the-1930s-linked-to-hotter-neighborhoods-today" target = "_blank">NPR 2020</a>, <a href = "https://www.nature.com/articles/s42949-021-00022-0" target = "_blank">Locke et al. 2021</a>, <a href = "https://www.sciencedirect.com/science/article/abs/pii/S0277953619307531?via%3Dihub" target = "_blank">Namin et al. 2020</a>). Addressing inequity in tree canopy cover may reduce heat-related deaths by up to 25% (<a href = "https://www.fs.fed.us/nrs/pubs/jrnl/2021/nrs_2021_paramita_001.pdf" target = "_blank">Sinha 2021</a>).
# (358 / 2)/(.12*620961) * 100
# Results indicate that approximately 251 deaths (95% confidence interval of 143 to 358) can be avoided in the city of Baltimore (total population of 620,961) with a 10% increase in tree cover. We also find that more than half of the reduced mortality impacts are for the population over the age of 65 (which is about 12% of the total population)
```
```{r equityplot, fig.align="center", out.width= "70%", fig.asp = .9, fig.alt = "Figure showing the trends between tree canopy and median household income and the percent of population identifying as a person of color."}
params$param_equityplot
```
## Temperature
`r params$para_heattext`
<center>
`){width=70%}
</center>
```{r tempplot, fig.align="center", out.width= "70%", fig.asp = .5}
# NDVI .77 =minnehaha/hidden falls park; https://www.google.com/maps/@44.9083306,-93.194874,3a,90y,314.57h,93.43t/data=!3m8!1e1!3m6!1sAF1QipNbybtAen_ewnzAt-wDAfVWJJ7MV95h2HJfv-rF!2e10!3e11!6shttps:%2F%2Flh5.googleusercontent.com%2Fp%2FAF1QipNbybtAen_ewnzAt-wDAfVWJJ7MV95h2HJfv-rF%3Dw203-h100-k-no-pi-0-ya138.57913-ro-0-fo100!7i8704!8i4352
# NDVI = .67; summit ave w/ prior; https://www.google.com/maps/@44.9413624,-93.1831969,3a,75y,66.54h,99.45t/data=!3m10!1e1!3m8!1sJNm6kjokIM8RTR-mVuFp9A!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fpanoid%3DJNm6kjokIM8RTR-mVuFp9A%26cb_client%3Dmaps_sv.tactile.gps%26w%3D203%26h%3D100%26yaw%3D50.330505%26pitch%3D0%26thumbfov%3D100!7i16384!8i8192!9m2!1b1!2i21
#NDVI = .42; wheelock entering phalen park: https://www.google.com/maps/@44.984721,-93.0666344,3a,90y,73.59h,101.6t/data=!3m9!1e1!3m7!1sfM_KmqUJNW7P8A_x0LHCUw!2e0!7i13312!8i6656!9m2!1b1!2i14
#NDVI = .17; university and lexington lightrail stop: https://www.google.com/maps/@44.9558413,-93.1471069,3a,75y,258.4h,91.27t/data=!3m9!1e1!3m7!1s0B4cR94lKaxQc_GIJI464Q!2e0!7i16384!8i8192!9m2!1b1!2i14
# labs <- c("<img src='./inst/app/www/NDVI_.17.png' width='100' /><br>Low greenness",
# "<img src='./inst/app/www/NDVI_.42.png' width='100' />",
# "<img src='./inst/app/www/NDVI_.67.png' width='100' />")
#
# bg_growingshade_main %>%
# filter(variable %in% c("ndvi", "avg_temp")) %>%
# select(tract_string, variable, raw_value) %>%
# pivot_wider(names_from = variable, values_from = raw_value) %>%
# ggplot(aes(x = ndvi, y = avg_temp)) +
# geom_point() +
# scale_x_continuous(
# name = NULL,
# breaks = c(.17, .42, .67),
# labels = labs,
# position = "bottom") +
# theme(axis.text.x.bottom = ggtext::element_markdown(size = 15))+
# labs(x = "TEST")
# remotes::install_github("wilkelab/ggtext")
```
```{r old_threats, include = F, eval = F}
### Methodology note
# The normalized difference vegetation index (NDVI) ranges from -1 to 1. Areas with bare ground, or brown vegetation have NDVI values closer to zero. Areas with lots of greenness have values closer to one. The calculation for land surface temperature *does* rely on information about NDVI, so these two variables are not fully independent from each other. Land surface temperature is calculated using other data as well. The NDVI data shown here comes from the Sentinel-2 satellite (resolution of 10 x 10 meters) and is from year 2021. Land surface temperature shown here comes from data collected by the Landsat-8 satellite (resolution of 30 x 30 meters) and is from year 2016.
## Threats
# `r params$param_otherparea`
```
# Other resources
Growing Shade is a unique tool that highlights stories and allows users to create custom reports to inform tree canopy enhancement and preservation for the Twin Cities region.
There are additional tools and resources that may be useful for this work. Please consider the list below as a starting point. Additionally, when planning and prioritizing urban forestry work, tools and data cannot substitute for stakeholder engagement to understand community-specific concerns or opportunities. The on-the-ground knowledge of residents and the expertise of local practitioners are valuable sources of information.
- **Tools**
- *What additional tools and assessments exist to help prioritize where to plant trees and maintain tree canopy?*
- <a href = "https://www.itreetools.org/tools/which-tool-should-i-use" target = "_blank">iTree tools</a> to quantify the benefits and values of trees, including tools for individuals such as homeowners concerned with individual or small amounts of trees
- <a href = "https://www.americanforests.org/our-work/tree-equity-score/" target = "_blank">American Forests Tree Equity Score project</a>
- <a href = "https://gis-hennepin.opendata.arcgis.com/pages/tree-planting" target = "_blank">Hennepin County, MN Tree Canopy Tree Planting Priority Areas</a>
- <a href = "https://www.stpaul.gov/departments/parks-recreation/natural-resources/forestry/urban-tree-canopy-assessment" target = "_blank">City of Saint Paul Urban Tree Canopy Assessment 2011</a>
- *Where can I lean more about the benefits provided by urban forests and learn how to build them?*
- <a href = "https://www.vibrantcitieslab.com/" target = "_blank">Vibrant Cities Lab</a>
- *Where can I learn more about the impact of emerald ash borer?*
- <a href = "https://mnag.maps.arcgis.com/apps/webappviewer/index.html?id=63ebb977e2924d27b9ef0787ecedf6e9" target = "_blank">Minnesota Department of Agriculture's Emerald Ash Borer Map</a>
- **Planting Trees and Native Vegetation**
- *What trees are predicted to do well in future climate conditions?*
- <a href = "https://forestadaptation.org/sites/default/files/2021-03/TwinCitiesMN_TreeSpeciesVulnerability.pdf" target = "_blank">Climate Change Vulnerability of Urban Trees: Twin Cities, Minnesota</a>
- *What the best way to plant a tree?*
- <a href = "https://www.youtube.com/watch?v=yQ0Xo7cfMqs" target = "_blank">Tree Trust video</a>
- *Where can I learn about native plants (trees, grasses, wildflowers): the benefits, purchasing and planting?*
- <a href = "https://mnnps.org/links/" target = "_blank">Minnesota Native Plant Society</a>
- <a href = "https://extension.umn.edu/find-plants/native-plants" target = "_blank">University of Minnesota Extension</a>
- **Climate Change**
- *Where can I find more information about climate change impacts in the Twin Cities?*
- <a href = "https://www.fs.usda.gov/sites/default/files/fs_media/fs_document/urbannatureforhumanhealthandwellbeing_508_01_30_18.pdf%22 %EF%BF%BDHYPERLINK %22https://metrocouncil.org/Communities/Planning/Local-Planning-Assistance/CVA.aspx" target = "_blank">Climate Vulnerability Assessment by Metropolitan Council for the Twin Cities</a>
- <a href = "https://metrocouncil.maps.arcgis.com/apps/webappviewer/index.html?id=fd0956de60c547ea9dea736f35b3b57e"
target = "_blank">Extreme Heat Map Tool </a> by Metropolitan Council
- <a href = "https://metrocouncil.maps.arcgis.com/apps/MapJournal/index.html?appid=7d9cdd3929e9439bb5b25aa1186d5783"
target = "_blank">Extreme Heat Story Map </a> by Metropolitan Council
- **Human Health**
- *Where can I learn about the impacts of tree on human health?*
- <a href = "https://www.fs.usda.gov/sites/default/files/fs_media/fs_document/urbannatureforhumanhealthandwellbeing_508_01_30_18.pdf" target = "_blank">US Forest Service Report: Urban Nature for Human Health and Well-being 2018</a>
- **Connect and Learn**
- *Where can I connect with others working to grow our tree canopy in the Twin Cities or across Minnesota?*
- <a href = "https://www.mnstac.org/" target = "_blank">Minnesota Shade Tree Advisory Committee</a>
- <a href = "https://trees.umn.edu/minnesota-shade-tree-short-course" target = "_blank">Minnesota Shade Tree Short Course</a>
- *How can my city receive recognition or a certification for our urban forestry work?*
- <a href = "https://www.arborday.org/programs/treeCityUSA/index.cfm" target = "_blank">Tree City USA</a>
- <a href = "https://greenstep.pca.state.mn.us/bp-detail/81726" target = "_blank">GreenStep Cities program</a>
- **What’s Next**
- *What new projects are underway that could support and inform urban forests in the Twin Cities?*
- <a href = "https://mspurbanlter.umn.edu/overview" target = "_blank">Urban LTER (Long-term Ecological Research) in the Twin Cities</a>
# FAQ
Please refer to the <a href="www/Growing Shade User Guide (November 2021).pdf" target="_blank">text user guide</a> or the <a href="https://www.youtube.com/watch?v=R3Qbhaq4gWs" target="_blank">video user guide</a> for help using the tool. Short answers to frequently asked questions can be found below.
<br>
**Q. How are the priority layers created?**
<span style='line-height: .1;'><br></span>
A. Priority scores are calculated using equally-weighted variables.
**Q. How did you choose the variables for the priority layers?**
<span style='line-height: .1;'><br></span>
A. Presets are developed to provide starting points for various stakeholder groups.
**Q. How can I isolate individual variables? Can I visualize the patterns for a single variable?**
<span style='line-height: .1;'><br></span>
A. Click on the "Custom" priority layer, then select a single variable.
**Q. I'm interested in understanding how the tree canopy intersects with a specific racial or ethnic group rather than all communities of color.**
<span style='line-height: .1;'><br></span>
A. Raw data can be downloaded from within the "mapping tool" tab if you wish explore relationships not shown in the report.
**Q. Why do different canopy tools show different priority areas?**
<span style='line-height: .1;'><br></span>
A. There several tools, like the <a href = "https://www.americanforests.org/our-work/tree-equity-score/" target = "_blank">American Forests’ Tree Equity Score</a>, that are worth exploring. The Growing Shade Project was created to specifically address to the unique challenges and opportunities of our region, reflecting priorities that may not be so readily detailed in a national, more generalized tool. Growing Shade responds to the specific climate change, conservation, environmental justice, and public health issues in our region. Also, users can customize our tool to address their individualized needs, which can be highly specific (for instance, a user may want to focus on planting trees in areas to enhance health benefits in children).
**Q. Why do different canopy tools show different canopy coverage percents? How did you decide on a goal of 30% tree canopy coverage?**
<span style='line-height: .1;'><br></span>
A. We created this tool to respond to the stakeholder need of providing up-to-date, actionable data. Therefore, we focus on satellite data to provide current data that can be used in decision-making. Current data is necessary to manage impacts from invasive species like emerald ash borer or respond to emerging climate hazards.
To get current (near real-time) data, Growing Shade leverages Sentinel-2 satellite data. While Sentinel-2 data has excellent temporal resolution, the spatial resolution is 10 meters squared. This is often a bigger area than the canopy from a single tree. When comparing tree canopy detected from Sentinel-2 data with a more spatially accurate (but less temporally accurate) <a href = "https://gisdata.mn.gov/dataset/base-landcover-twincities" target = "_blank">1 meter squared landcover data set</a>, there was high correlation but Sentinel-2 data detects about twice as much tree canopy as the 1 meter squared landcover data. Essentially, this means that the methods in Growing Shade detect areas with at least 50% tree canopy coverage. We re-scaled our data using this relationship to improve the clarity of messaging. Thus, another way to view the goal of 30% canopy cover is to have 60% of land area covered by at least 50% tree canopy. More information is given in the "methods" tab.
**Q. Why doesn't the tool show trees where there are trees? Why does the tool show trees where there are not trees?**
<span style='line-height: .1;'><br></span>
A. Calibration revealed that the tree layer mapped in Growing Shade identifies areas which have at least 50% tree canopy cover. The tree canopy has been identified from satellite imagery using a machine learning method rather than collecting on-the-ground data. More information is given in the "methods" tab.
<br><br>