North
[This article was first published on r.iresmi.net, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Day 22 of 30DayMapChallenge: « North » (previously).
Indeed, north is not always up. Actually, north is not even always north…
Setup
library(tidyverse) library(rnaturalearth) library(sf) library(ggrepel) library(glue)
Data
Using the movement of magnetic poles From 1590 to 2025.
north_pole_file <- "NP.xy"
if (!file.exists(north_pole_file)) {
download.file("https://www.ngdc.noaa.gov/geomag/data/poles/NP.xy",
north_pole_file)
}
np <- read_delim(north_pole_file,
delim = " ",
col_names = c("x", "y", "year")) |>
filter(year <= year(Sys.Date())) |>
mutate(lon = if_else(x <= 180, x, x - 360),
lat = y) |>
st_as_sf(coords = c("lon", "lat"),
crs = "EPSG:4326") |>
st_transform("EPSG:3995")
countries <- ne_countries(scale = 50, returnclass = "sf") |>
st_transform("EPSG:3995")
Map
bbox <- np |>
st_buffer(1.2e6) |>
st_bbox(np)
np |>
ggplot() +
geom_sf(data = countries, fill = "wheat3", color = "wheat3") +
geom_sf(aes(color = year), size = 1.2) +
geom_text_repel(aes(label = if_else(!year %% 100, year, NA), geometry = geometry),
bg.color = "white",
bg.r = 0.1,
stat = "sf_coordinates",
size = 3) +
scale_color_viridis_c() +
coord_sf(xlim = bbox[c(1, 3)],
ylim = bbox[c(2, 4)]) +
labs(title = "Wandering of the Geomagnetic North Pole",
subtitle = glue("1590-{max(np$year)}"),
x = "",
y = "",
caption = glue("Data: NOAA - IGRF Pole Locations
Basemap: Natural Earth
http://r.iresmi.net/ {Sys.Date()}")) +
theme(legend.position = "none",
plot.caption = element_text(size = 6),
panel.background = element_rect(fill = "azure2"),
panel.grid = element_line(color = "paleturquoise3"))

To leave a comment for the author, please follow the link and comment on their blog: r.iresmi.net.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.