@@ -16,8 +16,9 @@ library(sp) # for implicitly called rbind.SpatialPolygons method
1616library(leaflet)
1717
1818
19- betyurl <- "https://terraref.ncsa.illinois.edu/bety/"
20- betykey <- "9999999999999999999999999999999999999999"
19+ options(betydb_key = readLines('~/.betykey', warn = FALSE),
20+ betydb_url = "https://terraref.ncsa.illinois.edu/bety/",
21+ betydb_api_version = 'beta')
2122```
2223
2324
@@ -29,9 +30,7 @@ query sites for season 2
2930``` {r}
3031sites <- betydb_query(
3132 table = "sites",
32- city = "Maricopa", sitename = "~Season 2 range",
33- limit = "none",
34- betyurl = betyurl, key = betykey, api_version = "beta")
33+ city = "Maricopa", sitename = "~Season 2 range", limit = "none")
3534```
3635
3736plot polygons on a map
@@ -49,33 +48,27 @@ leaflet() %>% addTiles() %>% addPolygons(data=site_bounds)
4948## Cultivars
5049
5150``` {r}
52- cultivars <- (
53- betydb_query(
54- table = "cultivars", limit = "none",
55- betyurl = betyurl, key = betykey, api_version = "beta")
56- %>% rename(cultivar_id = id))
57-
58- cultivars_traits <- (cultivars
59- %>% group_by(cultivar_id)
60- %>% do(trait_id = betydb_record(
61- id = .$cultivar_id, table = "cultivars",
62- betyurl = betyurl, key = betykey, api_version = "beta"
63- )$traits$trait.id)
64- %>% unnest())
65-
66- sites_traits <- (sites
67- %>% group_by(id)
68- %>% do(trait_id = betydb_record(
69- id = .$id, table = "sites",
70- betyurl = betyurl, key = betykey, api_version = "beta"
71- )$traits$trait.id)
72- %>% unnest())
73-
74- sites <- (sites
75- %>% left_join(sites_traits, by = "id")
76- %>% left_join(cultivars_traits, by = "trait_id")
77- %>% left_join(cultivars, by = "cultivar_id")
78- %>% unique())
51+ cultivars <- betydb_query(
52+ table = "cultivars", limit = "none") %>%
53+ rename(cultivar_id = id)
54+
55+ cultivars_traits <- cultivars %>%
56+ group_by(cultivar_id) %>%
57+ do(trait_id = betydb_record(id = .$cultivar_id, table = "cultivars"
58+ )$traits$trait.id) %>%
59+ unnest()
60+
61+ sites_traits <- sites %>%
62+ group_by(id) %>%
63+ do(trait_id = betydb_record(id = .$id, table = "sites"
64+ )$traits$trait.id) %>%
65+ unnest()
66+
67+ sites <- sites %>%
68+ left_join(sites_traits, by = "id") %>%
69+ left_join(cultivars_traits, by = "trait_id") %>%
70+ left_join(cultivars, by = "cultivar_id") %>%
71+ unique()
7972
8073```
8174
@@ -86,23 +79,25 @@ First look up variables by name. Let's look for measurements related to canopy s
8679
8780``` {r}
8881variables <- betydb_query(
89- table = "variables", name = "~^(NDVI|canopy_height|canopy_cover|)$",
90- betyurl = betyurl, key = betykey, api_version = "beta")
82+ table = "variables", name = "~^(NDVI|canopy_height|canopy_cover|)$")
9183
92- variables %>% select(id, name, units, n_records = `number of associated traits`)
84+ variables %>%
85+ select(id, name, units, n_records = `number of associated traits`)
9386```
9487
9588Exercise: Why are there two variables named canopy_height, and what database fields should you examine to decide which one you want?
9689
9790Now retrieve all available measurements for each variable.
9891
9992``` {r}
93+ traits <- list()
94+ for(var in variables$name){
95+ traits[[var]] <- betydb_record(name = var, table = "variables")
96+ }
10097vars_measures <- (variables
10198 %>% group_by(id, name)
10299 %>% do(traits = betydb_record( # Get full trait list by variable ID
103- id = .$id, table = "variables",
104- betyurl = betyurl, key=betykey, api_version = "beta"
105- )$traits))
100+ id = .$id, table = "variables")$traits))
106101
107102# Only needed if some variables may contain zero traits
108103# If none are empty, can just do `vars_measures %>% unnest()`
0 commit comments