Skip to content

Commit 5cc901a

Browse files
author
Nick Heyek
committed
Heatmap improvements
1 parent f4b3dc2 commit 5cc901a

3 files changed

Lines changed: 24 additions & 16 deletions

File tree

experiment-trait-data-visualizer/app.R

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ render_season_ui <- function(season_name) {
4949
),
5050
tabPanel('Map',
5151
div(class = 'map-container push-out',
52-
p(class = 'map-message', 'Showing data from latest recorded observation date'),
53-
leafletOutput(paste0('site_map_', season_name), width = '750px', height = '1000px')
52+
uiOutput(paste0('map_date_slider_', season_name)),
53+
leafletOutput(paste0('site_map_', season_name), width = '600px', height = '600px')
5454
)
5555
)
5656
)
@@ -107,7 +107,7 @@ render_trait_plot <- function(season_name, input, output, full_cache_data) {
107107
if (selected_cultivar != 'None') {
108108
title <- paste0(title, ' for ', selected_cultivar)
109109
geom_line(data = subset(plot_data, cultivar_name == selected_cultivar),
110-
size = 0.5, color = "#00C49F", aes(x = as.Date(date), y = mean, group = site_id))
110+
size = 0.5, color = '#00C49F', aes(x = as.Date(date), y = mean, group = site_id))
111111
}
112112
} +
113113

@@ -196,13 +196,22 @@ render_timeline_hover <- function(season_name, input, output, full_cache_data) {
196196

197197
render_map <- function(season_name, input, output, full_cache_data) {
198198

199+
output[[ paste0('map_date_slider_', season_name) ]] <- renderUI({
200+
sliderInput(paste0('map_date_', season_name), 'Date',
201+
as.Date(full_cache_data[[ season_name ]][[ 'start_date']]),
202+
as.Date(full_cache_data[[ season_name ]][[ 'end_date' ]]),
203+
as.Date(full_cache_data[[ season_name ]][[ 'end_date' ]]))
204+
})
205+
199206
output[[ paste0('site_map_', season_name) ]] <- renderLeaflet({
200207

201208
req(input[[ paste0('selected_variable_', season_name) ]])
202209
req(input[[ paste0('selected_cultivar_', season_name) ]])
210+
req(input[[ paste0('map_date_', season_name) ]])
203211

204212
selected_variable <- input[[ paste0('selected_variable_', season_name) ]]
205213
selected_cultivar <- input[[ paste0('selected_cultivar_', season_name) ]]
214+
render_date <- input [[ paste0('map_date_', season_name) ]]
206215

207216
traits <- full_cache_data[[ season_name ]][[ 'trait_data' ]][[ selected_variable ]][[ 'traits' ]]
208217

@@ -214,10 +223,11 @@ render_map <- function(season_name, input, output, full_cache_data) {
214223
units <- paste0('(', units, ')')
215224
legend_title <- paste0(selected_variable, ' ', units)
216225

217-
render_site_map(traits, legend_title)
226+
render_site_map(traits, legend_title, render_date)
218227
})
219228
}
220229

230+
221231
render_season_output <- function(season_name, input, output, full_cache_data) {
222232

223233
render_variable_menu(season_name, output, full_cache_data)
@@ -233,6 +243,7 @@ render_season_output <- function(season_name, input, output, full_cache_data) {
233243
render_timeline_hover(season_name, input, output, full_cache_data)
234244

235245
render_map(season_name, input, output, full_cache_data)
246+
236247
}
237248

238249
# render page elements

experiment-trait-data-visualizer/render-site-map.R

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,23 @@ bety_src <- src_postgres(
99
user = Sys.getenv('bety_user')
1010
)
1111

12-
render_site_map <- function(traits, legend_title) {
12+
render_site_map <- function(traits, legend_title, render_date) {
1313

1414
site_ids <- na.omit(unique(traits[[ 'site_id' ]]))
1515
sites <- tbl(bety_src, sql("select ST_AsText(sites.geometry) AS geometry, id from sites")) %>%
1616
filter(!is.na(geometry)) %>%
1717
filter(id %in% site_ids) %>%
1818
collect() %>% data.frame()
1919

20-
latest_date <- max(as.Date(traits[['date']]))
21-
latest_traits <- subset(traits, as.Date(date) == latest_date)
20+
latest_traits <- subset(traits, date <= render_date) %>% group_by(site_id) %>% top_n(1, date)
2221

23-
map <- leaflet(options = leafletOptions(minZoom = 20, maxZoom = 22)) %>% addTiles()
24-
2522
pal <- colorNumeric(
26-
palette = "GnBu",
27-
domain = latest_traits[[ 'mean' ]]
23+
palette = 'Greens',
24+
domain = traits[[ 'mean' ]]
2825
)
2926

27+
map <- leaflet(options = leafletOptions(minZoom = 20, maxZoom = 21)) %>% addTiles()
28+
3029
if (nrow(sites) > 0) {
3130
for (i in 1:nrow(sites)){
3231
site <- sites[i,]
@@ -35,14 +34,12 @@ render_site_map <- function(traits, legend_title) {
3534
if ('polygons' %in% names(attributes(geo_object))) {
3635

3736
trait <- subset(latest_traits, site_id == site[[ 'id' ]])
38-
map <- addPolygons(map, data = geo_object, color = pal(trait[['mean']]), smoothFactor = 0.5)
37+
map <- addPolygons(map, data = geo_object, color = pal(trait[['mean']]))
3938
}
4039
}
4140
}
4241

43-
legend_title <- paste0(legend_title, '<br>', latest_date)
44-
45-
map <- addLegend(map, "topright", pal = pal,
42+
map <- addLegend(map, "bottomright", pal = pal,
4643
title = legend_title,
4744
values = traits[[ 'mean' ]])
4845
map

experiment-trait-data-visualizer/www/style.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ html, body {
2121
height: auto;
2222
}
2323
.map-container {
24-
width: 750px;
24+
width: 600px;
2525
margin-left: auto;
2626
margin-right: auto;
2727
}

0 commit comments

Comments
 (0)