Skip to content

mdsumner/ozmaps

Repository files navigation

Build Status Build Status AppVeyor Build Status CRAN status cranlogs Coverage Status

Overview

The goal of ozmaps is to get maps of Australia to plot!

Installation

Install from CRAN with

install.packages("ozmaps")

The development version of ozmaps may be installed directly from github.

devtools::install_github("mdsumner/ozmaps")

The package includes some simple features data, which can be used independently of ozmaps with the sf package. If required, install sf from CRAN.

NOTE: Since April 2020) we must have sf installed because of requirements of the tibble package.

If sf causes you problems or you can’t work with it get in touch and I will help you.

install.packages("sf")

Usage

Plot Australia with states.

library(ozmaps)
ozmap()

Plot Australia without states.

ozmap(x = "country")

Add to an existing plot.

plot(quakes[c("long", "lat")], xlim = c(120, 190))
ozmap(add = TRUE)

Obtain the data used in sf form.

sf_oz <- ozmap_data("states")

tibble::as_tibble(sf_oz)
#> # A tibble: 9 x 2
#>   NAME                                                                  geometry
#>   <chr>                                                       <MULTIPOLYGON [°]>
#> 1 New South Wales      (((150.7016 -35.12286, 150.6611 -35.11782, 150.6373 -35.…
#> 2 Victoria             (((146.6196 -38.70196, 146.6721 -38.70259, 146.6744 -38.…
#> 3 Queensland           (((148.8473 -20.3457, 148.8722 -20.37575, 148.8515 -20.3…
#> 4 South Australia      (((137.3481 -34.48242, 137.3749 -34.46885, 137.3805 -34.…
#> 5 Western Australia    (((126.3868 -14.01168, 126.3625 -13.98264, 126.3765 -13.…
#> 6 Tasmania             (((147.8397 -40.29844, 147.8902 -40.30258, 147.8812 -40.…
#> 7 Northern Territory   (((136.3669 -13.84237, 136.3339 -13.83922, 136.3532 -13.…
#> 8 Australian Capital … (((149.2317 -35.222, 149.2346 -35.24047, 149.2716 -35.27…
#> 9 Other Territories    (((167.9333 -29.05421, 167.9188 -29.0344, 167.9313 -29.0…

Plot with a custom palette.

library(sf)
if (utils::packageVersion("paletteer") < '1.0.0') {
 pal <- paletteer::paletteer_d(package = "ochRe", palette = "namatjira_qual")
} else {
  pal <- paletteer::paletteer_d(palette = "ochRe::namatjira_qual")
} 

opal <- colorRampPalette(pal)
nmjr <- opal(nrow(sf_oz))
plot(st_geometry(sf_oz), col = nmjr)

## plot directly with ggplot2
library(ggplot2)
ggplot(sf_oz, aes(fill = NAME)) + geom_sf() + coord_sf(crs = "+proj=lcc +lon_0=135 +lat_0=-30 +lat_1=-10 +lat_2=-45 +datum=WGS84") + scale_fill_manual(values = nmjr)

Plot the ABS layers (from 2016).

ozmap("abs_ced", col = opal(nrow(abs_ced)))

ozmap("abs_ste", col = opal(nrow(abs_ste)))

Resolution

These ABS layers abs_ced, abs_lga, and abs_ste are derived from the 2016 sources and simplified using rmapshaper::ms_simplify(, keep = 0.05, keep_shapes = TRUE) so all the original polygons are there. There is sufficient detail to map many (most?) of the regions on their own, which was a major goal for this package.

The cache of the source data at original resolution is available in ozmaps.data.

Compare the detail of Bruny Island here in this box, compared with the very basic maps package layer.

library(dplyr)
kbor <- abs_lga %>% dplyr::filter(grepl("Kingborough", NAME))
bb <- st_bbox(kbor)

layout(matrix(c(1, 1, 1, 2, 2, 2, 2, 2, 2), nrow = 3))
plot(kbor, reset = FALSE, main = "Kingborough (TAS)")
rect(bb["xmin"], bb["ymin"], bb["xmax"], bb["ymax"])
library(mapdata)
#> Loading required package: maps
par(mar = rep(0, 4))
plot(c(145, 148.5), c(-43.6, -40.8), type = "n", asp = 1/cos(mean(bb[c(2, 4)]) * pi/180), axes = FALSE, xlab = "", ylab = "")
maps::map(database = "worldHires", regions = "australia", xlim = c(145, 148.5), ylim = c(-43.6, -40.8), add = TRUE)
rect(bb["xmin"], bb["ymin"], bb["xmax"], bb["ymax"])


Please note that the ‘ozmaps’ project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.