knitr::opts_chunk$set(cache = TRUE)
library(eucs)
library(raster)
library(sp)
rasters <- read.csv("../../data-cache/rasters.csv", stringsAsFactors = FALSE)
grampians <- subset(map_ibra_southeast, IBRA_SUB_N == "Greater Grampians")
grampians_json <- tempfile(fileext = ".json")
rgdal::writeOGR(grampians, grampians_json, "grampians", driver = "GeoJSON")
se_aus <- subset(
map_ibra_southeast,
IBRA_SUB_N %in% unique(
subset(occupancy_southeast, ibra_subregion_coverage > .5)$ibra_subregion
)
)
se_aus@data$ID <- 1
se_aus <- aggregate(se_aus, by = "ID")
se_aus_json <- tempfile(fileext = ".json")
rgdal::writeOGR(se_aus, se_aus_json, "se_aus", driver = "GeoJSON")
plot_r <- function(x) {
src_file <- paste0("../../", rasters$File[[x]])
info <- attr(rgdal::GDALinfo(src_file, returnStats = FALSE), "df")
gdtype <- as.character(info$GDType[[1]])
r_crs <- if (tools::file_ext(src_file) == "vrt") {
gdalUtils::gdalsrsinfo(src_file, as.CRS = TRUE)
} else {
crs(raster::raster(src_file))
}
r_crs <- if (is.na(r_crs)) "+init=epsg:4326" else as.character(r_crs)
tmp <- tempfile()
srcnodata <- if (gdtype == "Byte") 255 else c(-3.40282346638528e+38, -9999)
if (x %in% 70:71) srcnodata <- info$NoDataValue[[1]]
gdalUtils::gdalwarp(
src_file, tmp, r_crs, "+init=epsg:4326", ot = "Float32",
srcnodata = srcnodata, dstnodata = -3.40282346638528e+38,
cutline = grampians_json, crop_to_cutline = TRUE, dstalpha = TRUE,
overwrite = TRUE
)
r_gr <- raster(tmp)
tmp2 <- tempfile()
gdalUtils::gdalwarp(
src_file, tmp2, r_crs, "+init=epsg:4326", ot = "Float32",
srcnodata = srcnodata, dstnodata = -3.40282346638528e+38,
cutline = se_aus_json, crop_to_cutline = TRUE, dstalpha = TRUE,
overwrite = TRUE
)
r_se <- raster(tmp2)
par(mfrow = 1:2, oma = c(3, 3, 1, 1), mar = c(1, 1, 1, 1))
plot(
grampians,
font.main = 1,
panel.first = grid()
)
plot(
r_gr, col = grey.colors(256, 1, 0), add = TRUE,
horizontal = TRUE, legend.mar = 0
)
plot(
se_aus,
font.main = 1,
panel.first = grid()
)
plot(
r_se, col = grey.colors(256, 1, 0), add = TRUE,
horizontal = TRUE, legend.mar = 0
)
title(rasters$Attribute[[x]], outer = TRUE)
}
for (i in seq(nrow(rasters))) plot_r(i)

















































































IycgLS0tCiMnIHRpdGxlOiAiTWFwcyBvZiBjb3ZhcmlhdGVzIgojJyBhdXRob3I6ICJXaWxsaWFtIEsuIE1vcnJpcyIKIycgZGF0ZTogImByIFN5cy5EYXRlKClgIgojJyBvdXRwdXQ6CiMnICAgcm1hcmtkb3duOjpodG1sX25vdGVib29rOgojJyAgICAgY29kZV9mb2xkaW5nOiBoaWRlCiMnIC0tLQoKIysgbWVzc2FnZT1GQUxTRQprbml0cjo6b3B0c19jaHVuayRzZXQoY2FjaGUgPSBUUlVFKQpsaWJyYXJ5KGV1Y3MpCmxpYnJhcnkocmFzdGVyKQpsaWJyYXJ5KHNwKQoKIysgaW5wdXQtZGF0YSwgbWVzc2FnZT1GQUxTRSwgY2FjaGU9RkFMU0UKcmFzdGVycyA8LSByZWFkLmNzdigiLi4vLi4vZGF0YS1jYWNoZS9yYXN0ZXJzLmNzdiIsIHN0cmluZ3NBc0ZhY3RvcnMgPSBGQUxTRSkKCmdyYW1waWFucyA8LSBzdWJzZXQobWFwX2licmFfc291dGhlYXN0LCBJQlJBX1NVQl9OID09ICJHcmVhdGVyIEdyYW1waWFucyIpCmdyYW1waWFuc19qc29uIDwtIHRlbXBmaWxlKGZpbGVleHQgPSAiLmpzb24iKQpyZ2RhbDo6d3JpdGVPR1IoZ3JhbXBpYW5zLCBncmFtcGlhbnNfanNvbiwgImdyYW1waWFucyIsIGRyaXZlciA9ICJHZW9KU09OIikKCnNlX2F1cyA8LSBzdWJzZXQoCiAgbWFwX2licmFfc291dGhlYXN0LAogIElCUkFfU1VCX04gJWluJSB1bmlxdWUoCiAgICBzdWJzZXQob2NjdXBhbmN5X3NvdXRoZWFzdCwgaWJyYV9zdWJyZWdpb25fY292ZXJhZ2UgPiAuNSkkaWJyYV9zdWJyZWdpb24KICApCikKc2VfYXVzQGRhdGEkSUQgPC0gMQpzZV9hdXMgPC0gYWdncmVnYXRlKHNlX2F1cywgYnkgPSAiSUQiKQpzZV9hdXNfanNvbiA8LSB0ZW1wZmlsZShmaWxlZXh0ID0gIi5qc29uIikKcmdkYWw6OndyaXRlT0dSKHNlX2F1cywgc2VfYXVzX2pzb24sICJzZV9hdXMiLCBkcml2ZXIgPSAiR2VvSlNPTiIpCgojKyBwbG90cwpwbG90X3IgPC0gZnVuY3Rpb24oeCkgewoKICBzcmNfZmlsZSA8LSBwYXN0ZTAoIi4uLy4uLyIsIHJhc3RlcnMkRmlsZVtbeF1dKQoKICBpbmZvIDwtIGF0dHIocmdkYWw6OkdEQUxpbmZvKHNyY19maWxlLCByZXR1cm5TdGF0cyA9IEZBTFNFKSwgImRmIikKCiAgZ2R0eXBlIDwtIGFzLmNoYXJhY3RlcihpbmZvJEdEVHlwZVtbMV1dKQoKICByX2NycyA8LSBpZiAodG9vbHM6OmZpbGVfZXh0KHNyY19maWxlKSA9PSAidnJ0IikgewogICAgZ2RhbFV0aWxzOjpnZGFsc3JzaW5mbyhzcmNfZmlsZSwgYXMuQ1JTID0gVFJVRSkKICB9IGVsc2UgewogICAgY3JzKHJhc3Rlcjo6cmFzdGVyKHNyY19maWxlKSkKICB9CgogIHJfY3JzIDwtIGlmIChpcy5uYShyX2NycykpICIraW5pdD1lcHNnOjQzMjYiIGVsc2UgYXMuY2hhcmFjdGVyKHJfY3JzKQoKICB0bXAgPC0gdGVtcGZpbGUoKQoKICBzcmNub2RhdGEgPC0gaWYgKGdkdHlwZSA9PSAiQnl0ZSIpIDI1NSBlbHNlIGMoLTMuNDAyODIzNDY2Mzg1MjhlKzM4LCAtOTk5OSkKICBpZiAoeCAlaW4lIDcwOjcxKSAgc3Jjbm9kYXRhIDwtIGluZm8kTm9EYXRhVmFsdWVbWzFdXQoKICBnZGFsVXRpbHM6OmdkYWx3YXJwKAogICAgc3JjX2ZpbGUsIHRtcCwgcl9jcnMsICIraW5pdD1lcHNnOjQzMjYiLCBvdCA9ICJGbG9hdDMyIiwKICAgIHNyY25vZGF0YSA9IHNyY25vZGF0YSwgZHN0bm9kYXRhID0gLTMuNDAyODIzNDY2Mzg1MjhlKzM4LAogICAgY3V0bGluZSA9IGdyYW1waWFuc19qc29uLCBjcm9wX3RvX2N1dGxpbmUgPSBUUlVFLCBkc3RhbHBoYSA9IFRSVUUsCiAgICBvdmVyd3JpdGUgPSBUUlVFCiAgKQoKICByX2dyIDwtIHJhc3Rlcih0bXApCgogIHRtcDIgPC0gdGVtcGZpbGUoKQoKICBnZGFsVXRpbHM6OmdkYWx3YXJwKAogICAgc3JjX2ZpbGUsIHRtcDIsIHJfY3JzLCAiK2luaXQ9ZXBzZzo0MzI2Iiwgb3QgPSAiRmxvYXQzMiIsCiAgICBzcmNub2RhdGEgPSBzcmNub2RhdGEsIGRzdG5vZGF0YSA9IC0zLjQwMjgyMzQ2NjM4NTI4ZSszOCwKICAgIGN1dGxpbmUgPSBzZV9hdXNfanNvbiwgY3JvcF90b19jdXRsaW5lID0gVFJVRSwgZHN0YWxwaGEgPSBUUlVFLAogICAgb3ZlcndyaXRlID0gVFJVRQogICkKCiAgcl9zZSA8LSByYXN0ZXIodG1wMikKCiAgcGFyKG1mcm93ID0gMToyLCBvbWEgPSBjKDMsIDMsIDEsIDEpLCBtYXIgPSBjKDEsIDEsIDEsIDEpKQogIHBsb3QoCiAgICBncmFtcGlhbnMsCiAgICBmb250Lm1haW4gPSAxLAogICAgcGFuZWwuZmlyc3QgPSBncmlkKCkKICApCiAgcGxvdCgKICAgIHJfZ3IsIGNvbCA9IGdyZXkuY29sb3JzKDI1NiwgMSwgMCksIGFkZCA9IFRSVUUsCiAgICBob3Jpem9udGFsID0gVFJVRSwgbGVnZW5kLm1hciA9IDAKICApCiAgcGxvdCgKICAgIHNlX2F1cywKICAgIGZvbnQubWFpbiA9IDEsCiAgICBwYW5lbC5maXJzdCA9IGdyaWQoKQogICkKICBwbG90KAogICAgcl9zZSwgY29sID0gZ3JleS5jb2xvcnMoMjU2LCAxLCAwKSwgYWRkID0gVFJVRSwKICAgIGhvcml6b250YWwgPSBUUlVFLCBsZWdlbmQubWFyID0gMAogICkKICB0aXRsZShyYXN0ZXJzJEF0dHJpYnV0ZVtbeF1dLCBvdXRlciA9IFRSVUUpCn0KCmZvciAoaSBpbiBzZXEobnJvdyhyYXN0ZXJzKSkpIHBsb3RfcihpKQo=