@@ -13,13 +13,14 @@ options(scipen=999)
1313# )
1414bety_src <- src_postgres(dbname = " bety" ,
1515 password = ' bety' ,
16- host = ' terra-bety.default' ,
16+ # host = 'terra-bety.default',
17+ host = ' localhost' ,
1718 user = ' bety' ,
1819 port = 5432 )
1920
2021# get all relevant data from BETYdb for a given season, write to cache file
2122get_data_for_season <- function (season ) {
22-
23+
2324 # destination for all data for given season
2425 # save season start date and end date
2526 season_data <- list (start_date = season [[ ' start_date' ]], end_date = season [[ ' end_date' ]])
@@ -29,50 +30,50 @@ get_data_for_season <- function(season) {
2930 select(site_id ) %> %
3031 collect() %> % unlist(use.names = FALSE )
3132
32- if (is.null(site_ids ))
33+ if (is.null(site_ids )){
3334 return ()
35+ }
3436
3537 # only use trait records associated with the relevant sites
36- traits_table <- tbl(bety_src , ' traits' ) %> %
38+ traits_table <- tbl(bety_src , ' traits' , n = Inf ) %> %
3739 filter(date > = season [[ ' start_date' ]] & date < = season [[ ' end_date' ]]) %> %
3840 filter(site_id %in% site_ids ) %> %
3941 select(date , mean , variable_id , cultivar_id , treatment_id , site_id )
4042
43+ n_traits <- traits_table %> % summarize(n = n()) %> % collect(n = Inf )
44+ if (n_traits == 0 ) return ()
4145 sites_table <- tbl(bety_src , sql(" select ST_AsText(sites.geometry) AS geometry, id from sites" )) %> %
4246 filter(! is.na(geometry )) %> %
4347 filter(id %in% site_ids ) %> %
44- mutate (site_id = id )
48+ rename (site_id = id )
4549
4650 cultivars_table <- tbl(bety_src , ' cultivars' ) %> %
47- mutate (cultivar_id = id , cultivar_name = name ) %> %
51+ rename (cultivar_id = id , cultivar_name = name ) %> %
4852 select(cultivar_id , cultivar_name )
4953
5054 traits <- traits_table %> %
5155 left_join(sites_table , by = ' site_id' ) %> %
52- left_join(cultivars_table , by = ' cultivar_id' ) %> %
53- collect() %> % as.data.frame()
56+ left_join(cultivars_table , by = ' cultivar_id' )
5457
55- if (nrow(traits ) == 0 )
56- return ()
58+ variables <- tbl(bety_src , ' variables' ) %> %
59+ rename(variable_id = id ) %> %
60+ semi_join(traits , by = ' variable_id' )
5761
58- variable_ids <- unique(na.omit(
59- traits [[ ' variable_id' ]]
60- ))
62+ variable_ids <- variables %> % select(variable_id ) %> % collect
6163
6264 trait_data <- list ()
63- for (curr_variable_id in variable_ids ) {
64-
65+ for (curr_variable_id in variable_ids $ variable_id ) {
66+
6567 variable_data <- list ()
6668
67- variable_record <- tbl(bety_src , ' variables' ) %> %
68- filter(id == curr_variable_id ) %> %
69- select(id , name , units ) %> % collect()
69+ variable_record <- variables %> % filter(variable_id == curr_variable_id ) %> %
70+ select(variable_id , name , units ) %> % collect
7071
71- variable_name <- toTitleCase(gsub(' _' , ' ' , variable_record [[ ' name' ]] ))
72- variable_traits <- subset( traits , variable_id == curr_variable_id )
72+ variable_name <- tools :: toTitleCase(gsub(' _' , ' ' , variable_record % > % select( name ) % > % collect ))
73+ variable_traits <- traits % > % filter( variable_id == curr_variable_id ) % > % collect( n = Inf )
7374
74- variable_data [[ ' units' ]] <- variable_record [[ ' units' ]]
75- variable_data [[ ' id' ]] <- variable_record [[ ' id ' ]]
75+ variable_data [[ ' units' ]] <- variable_record % > % select( units )
76+ variable_data [[ ' id' ]] <- variable_record % > % select( variable_id )
7677 variable_data [[ ' traits' ]] <- variable_traits
7778
7879 # subset trait data by variable
@@ -81,13 +82,9 @@ get_data_for_season <- function(season) {
8182 # save trait data for all variables
8283 season_data [[ ' trait_data' ]] <- trait_data
8384
84- treatment_ids <- unique(na.omit(
85- traits [[ ' treatment_id' ]]
86- ))
87-
8885 # only use management records associated with the relevant treatments
8986 management_ids <- tbl(bety_src , ' managements_treatments' ) %> %
90- filter( treatment_id %in% treatment_ids ) %> %
87+ semi_join( traits , by = ' treatment_id ' ) %> %
9188 collect() %> % unlist(use.names = FALSE )
9289
9390 managements <- tbl(bety_src , ' managements' ) %> %
0 commit comments