Notification texts go here Contact Us Buy Now!

How to reorder facets in tmap r?

There seems to be some kind of an issue with layer names and tmap (v3) facets when changing SpatRaster layer order though subsetting. Here's a partial answer that might provide a workaround by first sorting by encoded dates so layers in the resulting SpatRaster would be ordered chronologically, presumably fixing facet order:

library(tidyverse)

file_list <- c("RF_04.Apr.2022_LL", "RF_13.Dec.2021_LL", "RF_15.Feb.2022_LL", "RF_17.Dec.2020_LL", "RF_18.Nov.2021_LL", "RF_19.Feb.2021_LL")

# extract dates, use file_list vector for names
date_list <- 
  file_list |> 
  stringr::str_extract("(?<=_).*(?=_)") |> 
  lubridate::dmy() |>
  setNames(file_list)
date_list
#> RF_04.Apr.2022_LL RF_13.Dec.2021_LL RF_15.Feb.2022_LL RF_17.Dec.2020_LL 
#>      "2022-04-04"      "2021-12-13"      "2022-02-15"      "2020-12-17" 
#> RF_18.Nov.2021_LL RF_19.Feb.2021_LL 
#>      "2021-11-18"      "2021-02-19"

# sort by dates, extract names
(file_list_sorted <- sort(date_list) |> names())
#> [1] "RF_17.Dec.2020_LL" "RF_19.Feb.2021_LL" "RF_18.Nov.2021_LL"
#> [4] "RF_13.Dec.2021_LL" "RF_15.Feb.2022_LL" "RF_04.Apr.2022_LL"

# import rasters
x = rast(file_list_sorted)

# alter names to only keep date values, part between _ & _
names(x) <- names(x) |> stringr::str_extract("(?<=_).*(?=_)")
names(x)
#> [1] "17.Dec.2020" "19.Feb.2021" "18.Nov.2021" "13.Dec.2021" "15.Feb.2022" "04.Apr.2022"


# continue with tmap

Post a Comment

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.