knitr::opts_chunk$set(cache = TRUE, dev = c("png", "pdf"))
library(eucs)
library(leaflet)
library(sp)
source("euctraits_targets.R")
taxa_available_region <- function(occupancy, bb) {
ans <- subset(
occupancy,
longitude_gda94 > bb[[1]] & latitude_gda94 > bb[[2]] &
longitude_gda94 < bb[[3]] & latitude_gda94 < bb[[4]]
)
ans <- do.call(rbind, ans$occupancy)
data.frame(taxon = names(which(colMeans(ans) > 0)))
}
map_taxa <- function(occupancy, taxon, bb) {
occupancy <- occupancy[
occupancy$occupancy &
occupancy$taxon %in% taxon &
occupancy$longitude_gda94 > bb[[1]] &
occupancy$latitude_gda94 > bb[[2]] &
occupancy$longitude_gda94 < bb[[3]] &
occupancy$latitude_gda94 < bb[[4]],
c("longitude_gda94", "latitude_gda94", "taxon", "occupancy")
]
occupancy$color <- factor(occupancy$taxon)
occupancy$color <- rainbow(nlevels(occupancy$color))[occupancy$color]
m <- leaflet(occupancy)
m <- addTiles(m)
addCircleMarkers(
m,
lat = ~jitter(latitude_gda94, amount = .001),
lng = ~jitter(longitude_gda94, amount = .001),
label = ~taxon,
color = ~color
)
}
Northeast Victoria region
northeast_bb <- list(145.966, -36.883, 147.288, -36.007)
plot(map_southeast)
do.call(rect, c(northeast_bb, lty = 3))

Taxa in northeast
(taxa_available_northeast <-
taxa_available_region(occupancy_southeast, northeast_bb))
map_taxa(
long_southeast,
which_match(
taxa_available_northeast$taxon,
subset(taxa_sampled, trees > 3)$taxon,
invert = TRUE
),
northeast_bb
)
IycgLS0tCiMnIHRpdGxlOiAiVGFyZ2V0IHRheGEgaW4gTm9ydGgtZWFzdCBWaWN0b3JpYSIKIycgYXV0aG9yOiAiV2lsbGlhbSBLLiBNb3JyaXMiCiMnIGRhdGU6ICJgciBTeXMuRGF0ZSgpYCIKIycgb3V0cHV0OgojJyAgIHJtYXJrZG93bjo6aHRtbF9ub3RlYm9vazoKIycgICAgIGNvZGVfZm9sZGluZzogaGlkZQojJyAtLS0KCiMrIHNldHVwLCBtZXNzYWdlPUZBTFNFLCBmaWcuc2hvdz0iaGlkZSIsIHJlc3VsdHM9ImhpZGUiCmtuaXRyOjpvcHRzX2NodW5rJHNldChjYWNoZSA9IFRSVUUsIGRldiA9IGMoInBuZyIsICJwZGYiKSkKbGlicmFyeShldWNzKQpsaWJyYXJ5KGxlYWZsZXQpCmxpYnJhcnkoc3ApCgpzb3VyY2UoImV1Y3RyYWl0c190YXJnZXRzLlIiKQoKdGF4YV9hdmFpbGFibGVfcmVnaW9uIDwtIGZ1bmN0aW9uKG9jY3VwYW5jeSwgYmIpIHsKICBhbnMgPC0gc3Vic2V0KAogICAgb2NjdXBhbmN5LAogICAgbG9uZ2l0dWRlX2dkYTk0ID4gYmJbWzFdXSAmIGxhdGl0dWRlX2dkYTk0ID4gYmJbWzJdXSAmCiAgICBsb25naXR1ZGVfZ2RhOTQgPCBiYltbM11dICYgbGF0aXR1ZGVfZ2RhOTQgPCBiYltbNF1dCiAgKQogIGFucyA8LSBkby5jYWxsKHJiaW5kLCBhbnMkb2NjdXBhbmN5KQogIGRhdGEuZnJhbWUodGF4b24gPSBuYW1lcyh3aGljaChjb2xNZWFucyhhbnMpID4gMCkpKQp9CgptYXBfdGF4YSA8LSBmdW5jdGlvbihvY2N1cGFuY3ksIHRheG9uLCBiYikgewogIG9jY3VwYW5jeSA8LSBvY2N1cGFuY3lbCiAgICBvY2N1cGFuY3kkb2NjdXBhbmN5ICYKICAgIG9jY3VwYW5jeSR0YXhvbiAlaW4lIHRheG9uICYKICAgIG9jY3VwYW5jeSRsb25naXR1ZGVfZ2RhOTQgPiBiYltbMV1dICYKICAgIG9jY3VwYW5jeSRsYXRpdHVkZV9nZGE5NCAgPiBiYltbMl1dICYKICAgIG9jY3VwYW5jeSRsb25naXR1ZGVfZ2RhOTQgPCBiYltbM11dICYKICAgIG9jY3VwYW5jeSRsYXRpdHVkZV9nZGE5NCAgPCBiYltbNF1dLAogICAgYygibG9uZ2l0dWRlX2dkYTk0IiwgImxhdGl0dWRlX2dkYTk0IiwgInRheG9uIiwgIm9jY3VwYW5jeSIpCiAgXQogIG9jY3VwYW5jeSRjb2xvciA8LSBmYWN0b3Iob2NjdXBhbmN5JHRheG9uKQogIG9jY3VwYW5jeSRjb2xvciA8LSByYWluYm93KG5sZXZlbHMob2NjdXBhbmN5JGNvbG9yKSlbb2NjdXBhbmN5JGNvbG9yXQogIG0gPC0gbGVhZmxldChvY2N1cGFuY3kpCiAgbSA8LSBhZGRUaWxlcyhtKQogIGFkZENpcmNsZU1hcmtlcnMoCiAgICBtLAogICAgbGF0ICAgPSB+aml0dGVyKGxhdGl0dWRlX2dkYTk0LCBhbW91bnQgPSAuMDAxKSwKICAgIGxuZyAgID0gfmppdHRlcihsb25naXR1ZGVfZ2RhOTQsIGFtb3VudCA9IC4wMDEpLAogICAgbGFiZWwgPSB+dGF4b24sCiAgICBjb2xvciA9IH5jb2xvcgogICkKfQoKIycgTm9ydGhlYXN0IFZpY3RvcmlhIHJlZ2lvbgojKyBub3J0aGVhc3RfbWFwCm5vcnRoZWFzdF9iYiA8LSBsaXN0KDE0NS45NjYsIC0zNi44ODMsIDE0Ny4yODgsIC0zNi4wMDcpCnBsb3QobWFwX3NvdXRoZWFzdCkKZG8uY2FsbChyZWN0LCBjKG5vcnRoZWFzdF9iYiwgbHR5ID0gMykpCgojJyBUYXhhIGluIG5vcnRoZWFzdAojKyB0YXhhX2F2YWlsYWJsZV9ub3J0aGVhc3QKKHRheGFfYXZhaWxhYmxlX25vcnRoZWFzdCA8LQogIHRheGFfYXZhaWxhYmxlX3JlZ2lvbihvY2N1cGFuY3lfc291dGhlYXN0LCBub3J0aGVhc3RfYmIpKQoKbWFwX3RheGEoCiAgbG9uZ19zb3V0aGVhc3QsCiAgd2hpY2hfbWF0Y2goCiAgICB0YXhhX2F2YWlsYWJsZV9ub3J0aGVhc3QkdGF4b24sCiAgICBzdWJzZXQodGF4YV9zYW1wbGVkLCB0cmVlcyA+IDMpJHRheG9uLAogICAgaW52ZXJ0ID0gVFJVRQogICksCiAgbm9ydGhlYXN0X2JiCikK