-
inst/workflow/00_L3bin_ucells.R - this builds a bin index for ocean colour, and populates this into the cache DB
-
a daily task extracts the southern ocean bins for MODISA (SeaWiFS already done), and the db index provides a direct look up for bin number to sector/zone
-
inst/workflow/01_bulk_aceecor - this extracts daily ICE and SST values to a faster file cache
Install the package
devtools::install_github("AustralianAntarcticDivision/aceecostats")
Get the regions and make a detailed map of the assessment zoning.
library(aceecostats)
library(sp)
library(raster)
labs <- data.frame(x= c(112406,4488211,-1734264,-4785284), y=c(4271428,-224812,-3958297,-104377), labels=c("Atlantic","Indian", "West Pacific", "East Pacific"))
labs <- SpatialPointsDataFrame(labs[,1:2],labs, proj4string = CRS(proj4string(aes_zone)))
plot(aes_zone, col = aes_zone$colour, border="grey")
text(labs$x, labs$y, labs$labels, cex=1.5)
# latitude zone labels
lat.labs<- function(the.proj="polar", cex = 1){
if(the.proj=="latlon"){
ext <- extent(aes_zone_ll)
text("Polar", x=ext@xmin, y=ext@ymin, xpd=NA, pos=2, cex=cex)
text("High latitude", x=ext@xmin, y=ext@ymin*0.8, xpd=NA, pos=2, cex=cex)
text("Mid latitude", x=ext@xmin, y=ext@ymin*0.6, xpd=NA, pos=2, cex=cex)
}
if(the.proj=="polar"){
text(c("Polar", "High latitude", "Mid latitude"), x=c(113064.6,-1017581.1,-3642294), y=c(-1518296,-2285519,-3012363), cex=cex, col=rgb(0,0,0,0.7))
}
}
lat.labs(cex = 1.1)
#library(raadtools)
#topo <- crop(readtopo("gebco_14"), extent(-180, 180, -90, -30))
#bathy2000 <- rasterToContour(topo, levels = -2000)
#usethis::use_data(bathy2000)
statareas <- readRDS("/home/shared/data/assessment/sectors/ccamlr_statareas.rds")
bathy <- spTransform(disaggregate(bathy2000), projection(aes_zone))
bathy$len <- rgeos::gLength(bathy, byid = TRUE)
plot(subset(bathy, len > 2e5 ), lty = 1, col = "navyblue", add = TRUE)
plot(spTransform(subset(orsifronts::orsifronts, front == "pf"), projection(aes_zone)), add = TRUE, lwd = 2)
grat <- graticule::graticule(lons = c(-115, -50, 55, 145), ylim = c(-90, -25), lats = c(-85, -80, -75, -70, -65, -60, -55, -50, -45, -40, -35, -30), proj =raster::projection(aes_zone), xlim = c(-180, 180))
gratlabs <- graticule::graticule_labels(lons = c(-115, -50, 55, 145), lats = c( -80, -70, -60, -50, -40, -30), yline = -25, xline = 30, proj = raster::projection(aes_zone))
plot(grat, add = TRUE, lty = 2, col = rgb(0, 0, 0, 0.5))
text(subset(gratlabs, islon), label = parse(text = gratlabs$lab[gratlabs$islon]))
text(subset(gratlabs, !islon), label = parse(text = gratlabs$lab[!gratlabs$islon]))
plot(statareas, add = T)
#plot(spTransform(orsifronts::orsifronts, raster::projection(aes_zone)), add = TRUE)
In unprojected form.
library(aceecostats)
library(raster)
library(sp)
plot(aes_zone_ll, col = aes_zone_ll$colour, border="grey")
ll_labs <- spTransform(labs, CRS(proj4string(aes_zone_ll)))
text(ll_labs$x, ll_labs$y, labels=labs$labels, cex=0.6)
lat.labs("latlon")
The data is stored on the map object itself.
knitr::kable(as.data.frame(aes_zone))
SectorName | Zone | area_km2 | colour | ID |
---|---|---|---|---|
Atlantic | High-Latitude | 19855197.0 | #7CAE0099 | 1 |
Atlantic | Continent | 1084548.0 | #7CAE00FF | 2 |
Atlantic | Mid-Latitude | 15671351.4 | #7CAE004D | 3 |
EastPacific | High-Latitude | 3241353.4 | #C77CFF99 | 4 |
EastPacific | Continent | 724857.5 | #C77CFFFF | 5 |
EastPacific | Mid-Latitude | 10573933.0 | #C77CFF4D | 6 |
Indian | High-Latitude | 11699156.9 | #00BFC499 | 7 |
Indian | Continent | 706453.8 | #00BFC4FF | 8 |
Indian | Mid-Latitude | 13068371.7 | #00BFC44D | 9 |
WestPacific | High-Latitude | 8136176.3 | #F8766D99 | 10 |
WestPacific | Continent | 885409.0 | #F8766DFF | 11 |
WestPacific | Mid-Latitude | 23025500.3 | #F8766D4D | 12 |
## TODO fix this code
library(ggplot2)
library(ggpolypath)
tab <- fortify(aes_zone)
## Regions defined for each Polygons
zcols <- as.data.frame(aes_zone)[, c("colour", "SectorName", "Zone")]
tab$SectorName <- zcols$SectorName[factor(tab$id)]
ggplot(tab) + aes(x = long, y = lat, group = group, fill = SectorName) + scale_fill_manual(values = setNames(zcols$colour, zcols$SectorName)) + geom_path() +
geom_polypath() + theme(legend.text=element_text(size=6)) + guides(position = "bottom") + coord_equal()