An exploration of dingo observations in the ALA

Dingoes are the subject of ongoing debate about whether they should be considered a protected species or a pest species. Here we explore dingo observations in the ALA to understand how differing attitudes affect dingo data, plotting spatial and temporal trends using {ggplot2}.

Eukaryota
Animalia
Mammalia
Summaries
Maps
R
Intern-post
Authors

Amos Smith

Dax Kellie

Published

May 16, 2023

Author

Amos Smith Olivia Torresan
Dax Kellie

Date

5 May 2023

Intern Post

The dingo (Canis familiaris) is among Australia’s most recognisable species internationally. However, debate continues about whether dingoes are considered invasive or native species.

Dingoes arrived in Australia around 3,000–5,000 years ago, and their rapid dispersal was likely facilitated by humans. Dingoes hold great significance to many Aboriginal and Torres Strait Islander communities. In some communities, women and children often took dingoes with them to hunt small game or collect food, regarded as protection from danger.

In the present day, dingoes negatively impact livestock producers, especially sheep farmers. To reduce these impacts, landowners and government agencies spend an estimated ~$30 million annually across Australia to control dingo populations. Control methods include using traps, baits and shooting, along with constructing a physical barrier to limit their movement: the Dog Fence (also known as the Dingo Fence).

The Dog Fence is a wire fence made to protect from the loss of sheep and livestock; currently, it is the longest fence in the world (5,614 km). Since its construction 80 years ago, the Dog Fence has shaped the landscape of Australia. However, perhaps unintentionally, the Dog Fence has acted as a natural experiment. On the side where dingoes remain present there is more vegetation and fewer invasive species like foxes than on the side where dingoes are absent. The difference between sides of the fence is so distinct that you can even see it from space! Nearly a century later, the Dog Fence has shown the importance of apex predators like dingoes in ecosystems and their benefit to native biodiversity1.

To understand the debate about the dingo’s role in Australia’s ecosystems, it’s useful to know the species’ current distribution. Here, we’ll explore where and how often dingo observations are recorded in the Atlas of Living Australia (ALA) to understand how historical and ongoing differences in attitudes toward dingo conservation affect data collection.

Summarise observations

Let’s start by finding how many observations of dingoes are in the ALA and where they are.

# packages
library(galah)
library(tidyverse)
library(ozmaps)
library(sf)
library(patchwork)
library(here)
library(rmapshaper)
library(ggpointdensity)
library(glue)
library(ggtext)
library(viridis)

Records by state

Find fields to filter data

We’ll use the {galah} package to download our data.

The taxonomic name for dingoes—Canis familiaris—is broadly the name for all wild dogs, though recent genomic research has found pure dingoes are genomically distinct from wild dogs2. This means that if we search using the scientific name Canis familiaris, we’ll likely return more than just dingo records. To fix this, let’s filter our records to those specified by the data provider with the common name “Dingo”.

Let’s use search_fields() to help us find which fields we can use to filter the taxonomic name. There are a few options, but the raw_vernacularName field seems to hold original common names specified by data providers.

search_fields("common name")
# A tibble: 1 × 3
  id                 description               type  
  <chr>              <chr>                     <chr> 
1 raw_vernacularName Common name (unprocessed) fields
search_fields("raw_vernacularName") |> search_values("dingo")
# A tibble: 5 × 1
  raw_vernacularName 
  <chr>              
1 Dingo, domestic dog
2 Dingo              
3 Dingo / Wild Dog   
4 Dingo & Dog (feral)
5 dingo              

We can use the same method to find a field that contains states & territories.

search_fields("australian states")
# A tibble: 2 × 3
  id     description                            type  
  <chr>  <chr>                                  <chr> 
1 cl2013 ASGS Australian States and Territories fields
2 cl22   Australian States and Territories      fields
search_fields("cl22") |> show_values()
# A tibble: 11 × 1
   cl22                        
   <chr>                       
 1 New South Wales             
 2 Victoria                    
 3 Queensland                  
 4 South Australia             
 5 Western Australia           
 6 Northern Territory          
 7 Australian Capital Territory
 8 Tasmania                    
 9 Unknown1                    
10 Coral Sea Islands           
11 Ashmore and Cartier Islands 

Download counts

We’ll download the number of dingo observations in each state/territory with atlas_counts() and arrange the resulting counts in descending order.

Around 75% of dingo observations are recorded in the Northern Territory and South Australia.

dingo_counts <- galah_call() |>
  galah_identify("canis familiaris") |>
  galah_filter(raw_vernacularName == c("Dingo", "dingo")) |>
  galah_group_by(cl22) |>
  atlas_counts() |>
  arrange(desc(count))

dingo_counts |> gt::gt()
cl22 count
South Australia 2915
New South Wales 1695
Northern Territory 1397
Queensland 1276
Victoria 428
Western Australia 109
Australian Capital Territory 4

Data providers

Next let’s find out who the main data providers are of dingo observations to see whether observations come from citizen science programs or state monitoring programs. We’ll filter to only display providers that have provided more than 5 observations of dingoes.

data_providers <- galah_call() |>
  galah_identify("canis familiaris") |>
  galah_filter(raw_vernacularName == c("Dingo", "dingo")) |>
  galah_group_by(dataResourceName)|>
  galah_apply_profile(ALA) |>
  atlas_counts()

counts_filtered <- data_providers |>
  filter(count > 5)
# A tibble: 8 × 2
  dataResourceName                                           count
  <chr>                                                      <int>
1 SA Fauna                                                    2841
2 Australian National Wildlife Collection provider for OZCAM  2035
3 NSW BioNet Atlas                                            1632
4 WildNet - Queensland Wildlife Data                          1118
5 Victorian Biodiversity Atlas                                 101
6 Australian Museum provider for OZCAM                          76
7 Museums Victoria provider for OZCAM                           51
8 Northern Gulf Fauna Survey                                    18

Download observations

We can check to see where each data provider’s observations are recorded. We’ll download dingo observations using atlas_occurrences(). Then we’ll filter our observations to only those supplied by providers in counts_filtered.

You will need to first provide a registered email with the ALA using galah_config() before retrieving records.

# Use a ALA-registered email (register at ala.org.au)
galah_config(email = "your-email-here")
dingo_obs <- galah_call()|>
  galah_identify("canis familiaris") |>
  galah_filter(raw_vernacularName == c("Dingo", "dingo")) |>
  galah_apply_profile(ALA) |>
  atlas_occurrences()
Retrying in 1 seconds.
Retrying in 2 seconds.
Retrying in 4 seconds.
points_filtered <- dingo_obs |>
  filter(dataResourceName %in% counts_filtered$dataResourceName)
# A tibble: 7,872 × 8
   recordID       scientificName taxonConceptID decimalLatitude decimalLongitude
   <chr>          <chr>          <chr>                    <dbl>            <dbl>
 1 0006dc99-2c9d… Canis familia… https://biodi…           -25.2             132.
 2 001bded1-70cb… Canis familia… https://biodi…           -25.7             135.
 3 001c548b-76ce… Canis familia… https://biodi…           -26.7             152.
 4 001db624-6d0f… Canis familia… https://biodi…           -29.0             138.
 5 002239bc-89b3… Canis familia… https://biodi…           -30.3             153.
 6 0026084c-e259… Canis familia… https://biodi…           -28.6             131.
 7 0031bfb0-0781… Canis familia… https://biodi…           -31.2             152.
 8 0031f7bf-1a93… Canis familia… https://biodi…           -21.3             149.
 9 003e4206-dcbc… Canis familia… https://biodi…           -36.9             147.
10 0043756a-5dc6… Canis familia… https://biodi…           -36.1             148.
# ℹ 7,862 more rows
# ℹ 3 more variables: eventDate <dttm>, occurrenceStatus <chr>,
#   dataResourceName <chr>

Visualise

We can create a bar plot and a map of observations to visualise our results.

Just five data providers account for ~98% of dingo records, with Fauna Atlas N. T. contributing ~40% of records. All major data providers are government monitoring programs, rather than citizen science providers like iNaturalist.

Code
custom_colours <- c(
  "Museums Victoria provider for OZCAM" = "#604830",
  "Victorian Biodiversity Atlas" = "#486030",
  "Australian National Wildlife Collection provider for OZCAM" = "#6090d8",
  "NSW BioNet Atlas" = "#604830",
  "WildNet - Queensland Wildlife Data" = "#6fab3f",
  "SA Fauna (BDBSA)" = "#d89060",
  "Australian Museum provider for OZCAM" = "#FFC300",
  "Fauna Atlas N.T." = "#a84830"
)

# Bar plot
bar_plot <- counts_filtered |>
  ggplot(aes(
    x = reorder(str_wrap(dataResourceName, 28), count),
    y = count, fill = dataResourceName)) +
  geom_bar(stat = "identity", width = .8) +
  scale_fill_manual(values = custom_colours) +
  scale_x_discrete(expand = c(0, 0)) +
  scale_y_continuous(labels = scales::label_comma()) +
  coord_flip() +
  xlab("") +
  pilot::theme_pilot(grid = "v",
                     axes = "b") +
  theme(legend.position = "none",
        axis.text = element_text(size = 12))

# Map
aus <- ozmap_data(data = "states")

map <- ggplot() +
  geom_sf(data = aus, fill = "#FBFBEF") +
  geom_point(
    data = points_filtered,
    mapping = aes(
      x = decimalLongitude,
      y = decimalLatitude,
      colour = dataResourceName),
    alpha = 0.5) +
  scale_color_manual(values = custom_colours) +
  theme_void() +
  coord_sf(
    ylim = c(-45, -10),
    xlim = c(110, 155)) +
  theme(legend.position = "none")

Time of year

Next, let’s investigate what months of the year have more dingo records. Viewing observations over time can show us patterns of when a species is most active. It can also reveal human biases in data collection. We’ll look specifically at observations in Northern Territory and South Australia because these states have the most data. Given the huge temperature gradient between the north and south of Australia, we might expect the timing of dingo observations to differ between NT and SA.

Download data

First we’ll download observations by month in the Northern Territory by using the month field inside galah_group_by().

# download data
dingo_NT <- galah_call() |>
  galah_identify("canis familiaris") |>
  galah_filter(raw_vernacularName == c("Dingo", "dingo"),
               cl22 == "Northern Territory") |>
  galah_group_by(month) |>
  atlas_counts()
# A tibble: 12 × 2
   month count
   <chr> <int>
 1 4       190
 2 6       180
 3 1       151
 4 3       136
 5 7       127
 6 9       122
 7 5       115
 8 2       103
 9 12       91
10 11       76
11 8        53
12 10       44

We’ll use the lubridate::month() function to convert the class of our month column from character to ordered factor.

# format months for plotting
month_NT <- dingo_NT |>
  mutate(
    month = lubridate::month(as.numeric(month), label = TRUE) # format month
    )
# A tibble: 12 × 2
   month count
   <ord> <int>
 1 Apr     190
 2 Jun     180
 3 Jan     151
 4 Mar     136
 5 Jul     127
 6 Sep     122
 7 May     115
 8 Feb     103
 9 Dec      91
10 Nov      76
11 Aug      53
12 Oct      44

Make bar plot

Now we can make a bar chart to see observations over the year. We’ll do the same for South Australia, too.

Northern Territory’s dingo observations are recorded mainly over winter months (June–August). Alternatively, South Australia’s dingo observations are mainly recorded during autumn months (April–June).

# Northern Territory plot
barplot_nt <- ggplot(data = month_NT, 
                     aes(x = month, y = count)) +
  geom_bar(stat = "identity", fill = "#a84830") +
  labs(title = "Northern Territory", 
       x = "Month", 
       y = "No. of observations") +
  scale_x_discrete(expand = c(0,0)) +
  scale_y_continuous(limits = c(0, 1000),
                     expand = c(0,0)) +
  pilot::theme_pilot(grid = "h")
Code
## South Australia

# download data
dingo_SA <- galah_call() |>
  galah_identify("canis familiaris") |>
  galah_filter(raw_vernacularName == c("Dingo", "dingo"),
               cl22 == "South Australia") |>
  galah_group_by(month) |>
  atlas_counts() |>
  mutate(
    month = month(as.numeric(month), label = TRUE) # format month
    )

# plot
barplot_sa <- ggplot(data = dingo_SA, 
       aes(x = month, y = count)) +
  geom_bar(stat = "identity", fill = "#d89060") +
  labs(title = "South Australia", 
       x = "Month", 
       y = "No. of observations") +
  scale_x_discrete(expand = c(0,0)) +
  scale_y_continuous(limits = c(0, 1000),
                     expand = c(0,0)) +
  pilot::theme_pilot(grid = "h")

Does this suggest dingoes are more active during winter, or are data collectors surveying during cooler times of the year? The answer might be “both”. One dingo tracking research study found that dingoes are far more active in winter, spending 46% of their day stationary in winter compared to 91% of their day in summer. Similarly, it’s easier for data collectors to survey during winter months when the heat is less extreme. Cooler winter temperatures might allow dingoes and surveyors to be more active, increasing the likelihood of incidental observations.

Dingo observations in nationally protected areas

In the Northern Territory and South Australia, dingoes are protected within nationally protected areas. Does this mean that the majority of observations are recorded within these areas? To answer this question, let’s map locations of dingo observations over protected areas using the Collaborative Australian Protected Areas Database (CAPAD).

Northern Territory

Download CAPAD shapefile

We’ll first need the CAPAD shapefile. We can get it by downloading the CAPAD2020_terrestrial.zip folder from their website. Download and save this folder in your R Project or working directory and unzip it.

# read in capad shapefile
capad <- st_read(here("posts",
                      "data",
                      "CAPAD",
                      "CAPAD2020_terrestrial.shp"),
                 quiet = TRUE) |>
  ms_simplify(keep = 0.1) |>
  st_transform(crs = st_crs("WGS84")) |>
  st_make_valid()

We will filter our CAPAD layer to only the Northern Territory for our plot.

# filter to NT
capad_nt <- capad |>
  filter(STATE == "NT")

Download records

Now we can download dingo observations in the Northern Territory (and remove any NAs with drop_na()).

# download dingo observations in NT
dingo_obs_nt <- galah_call() |>
  galah_identify("canis familiaris") |>
  galah_filter(raw_vernacularName == c("Dingo", "dingo"),
               cl22 == "Northern Territory") |>
  atlas_occurrences() |>
  drop_na() # filter any NA values out
# A tibble: 1,388 × 8
   recordID       scientificName taxonConceptID decimalLatitude decimalLongitude
   <chr>          <chr>          <chr>                    <dbl>            <dbl>
 1 0006dc99-2c9d… Canis familia… https://biodi…           -25.2             132.
 2 001bded1-70cb… Canis familia… https://biodi…           -25.7             135.
 3 008c10ea-6f29… Canis familia… https://biodi…           -17.3             133.
 4 009e0dbf-403e… Canis familia… https://biodi…           -18.8             134.
 5 00a4077b-b38e… Canis familia… https://biodi…           -23.3             134.
 6 00c54f1e-de56… Canis familia… https://biodi…           -25.3             132.
 7 012328bc-326c… Canis familia… https://biodi…           -25.2             132.
 8 01488211-a59f… Canis familia… https://biodi…           -23.5             133.
 9 01734d32-91d6… Canis familia… https://biodi…           -23.3             134.
10 01ea8409-3605… Canis familia… https://biodi…           -19.0             137.
# ℹ 1,378 more rows
# ℹ 3 more variables: eventDate <dttm>, occurrenceStatus <chr>,
#   dataResourceName <chr>

Make map

We’ll make our map of the Northern Territory by plotting each of our components and adding a colour scale to indicate places where there is more than one observation in a single point.

# make map
nt_plot <- ggplot() +
  geom_sf(data = ozmap_states |> filter(NAME == "Northern Territory"), 
          fill = "#F8FBEF", 
          colour = "grey60", 
          linewidth = 0.3) +
  geom_pointdensity(data = dingo_obs_nt,
                    mapping = aes(x = decimalLongitude,
                                  y = decimalLatitude),
                    size = 2.4, 
                    alpha = 0.6) +
  geom_sf(data = capad_nt, 
          fill = "#1F901F", 
          colour = "#1F901F", 
          linewidth = 0.5, 
          alpha = 0.2, 
          linetype = "dashed") +
  scale_color_viridis(option = "D", 
                      direction = -1,
                      begin = 0.0,
                      end = 0.4,
                      guide = guide_colorbar(title = ("Number of overlapping observations"),
                                     title.position = "top",
                                     title.hjust = 0.5)) +
  theme_void() +
  theme(legend.position = "bottom",
        legend.title = element_text(face = "bold"),
        legend.key.width = unit(15, 'mm'),
        plot.margin = unit(c(1,0,1,0),"cm"))

Add coloured title

Finally, we can avoid adding more than one legend by using colour in our title to specify the colour of protected areas and dingo observations on our map (using a clever method by Cara Thompson). We’ll need to use ggnewscale::new_scale_color() to add our custom colour palette for our text because we are already using another colour palette for our observation points (you can check out our previous post on using {ggnewscale} to learn more).

# create palette for title
dingo_palette <- list("protected" = "#1F901F",
                      "obs" = "#404788")

nt_plot +
  ggnewscale::new_scale_color() +
  scale_colour_manual(values = dingo_palette) +
  labs(
    title = glue(
      "<span style='color:{dingo_palette$obs}'>Dingo observations</span> in 
      <span style='color:{dingo_palette$protected}'>**protected areas**</span>"),
    subtitle = "Northern Territory") +
  theme(plot.title = element_markdown(face = "bold", size = 16, hjust = 0.5),
        plot.subtitle = element_markdown(hjust = 0.5, size = 15))
Warning: `stat(n_neighbors)` was deprecated in ggplot2 3.4.0.
ℹ Please use `after_stat(n_neighbors)` instead.

Calculate proportion inside protected areas

By comparing the number of records in CAPAD areas to the total observations in Northern Territory, we find that more than half of all dingo observations are recorded inside of protected areas.

Tip

Searching for CAPAD fields in {galah} shows us that {galah} has the CAPAD 2020 layer available for us to use in a query.

search_all(fields, "capad") |> print(n = 5)
# A tibble: 9 × 3
  id      description            type  
  <chr>   <chr>                  <chr> 
1 cl10944 CAPAD 2016 Terrestrial fields
2 cl10945 CAPAD 2016 Marine      fields
3 cl10957 CAPAD 2018 Marine      fields
4 cl11032 CAPAD 2020 Marine      fields
5 cl11033 CAPAD 2020 Terrestrial fields
# ℹ 4 more rows

We can return the number of dingo observations in each CAPAD area by using galah_group_by(cl11033) in our query. Adding the observation counts together will give us the total observations in CAPAD areas.

# Download dingo record counts inside CAPAD areas
dingo_capad_nt <- galah_call() |>
  galah_identify("canis familiaris") |>
  galah_filter(raw_vernacularName == c("Dingo", "dingo"),
               cl22 == "Northern Territory") |>
  galah_group_by(cl11033) |> # capad
  atlas_counts() |>
  drop_na() # filter any NA values out

# Proportion inside vs outside of protected areas
in_protected <- dingo_capad_nt|> summarise(total = sum(count))
out_of_protected <- nrow(dingo_obs_nt)

paste(round(in_protected / out_of_protected * 100, 2), "%", sep = "")
[1] "5.62%"

South Australia

Let’s do the same as above to make a map of South Australia.

We’ll also include a map of where the Dog Fence is within South Australia to compare observations on either side of the fence. We obtained a shapefile of the Dog Fence by contacting the Department of Primary Industries and Regions.

dog_fence <- st_read(here("posts",
                          "data",                    
                          "Dog Fence",
                          "Dog_Fence.shp"),
                     quiet = TRUE) |>
  ms_simplify(keep = 0.1) |>
  st_transform(crs = st_crs("WGS84")) |>
  st_make_valid()

The Dog Fence is labelled in our map below. There are noticeably fewer observations recorded of dingoes on the southern side of the fence, and those that are recorded appear to be mostly inside protected areas.

Code
# filter to SA
capad_sa <- capad |>
  filter(STATE == "SA")

# download dingo observations in SA
dingo_obs_sa <- galah_call() |>
  galah_identify("canis familiaris") |>
  galah_filter(raw_vernacularName == c("Dingo", "dingo"),
               cl22 == "South Australia") |>
  atlas_occurrences() |>
  drop_na() # filter any NA values out
Retrying in 1 seconds.
Code
# Start and end points of arrow
arrow <- 
  tibble(
    x1 = c(132.4),
    x2 = c(134),
    y1 = c(-34),
    y2 = c(-32.2))

# make map
sa_plot <- ggplot() +
  geom_sf(data = ozmap_states |> filter(NAME == "South Australia"), 
          fill = "#F8FBEF", 
          colour = "grey60", 
          linewidth = 0.5) +
  geom_pointdensity(data = dingo_obs_sa,
                    mapping = aes(x = decimalLongitude,
                                  y = decimalLatitude),
                    size = 2.4, 
                    alpha = 0.6) +
  geom_sf(data = capad_sa, 
          fill = "#1F901F", 
          colour = "#1F901F", 
          linewidth = 0.5, 
          alpha = 0.2, 
          linetype = "dashed") +
  geom_sf(data = dog_fence, color = "#F0A202", linewidth = 1.8) +
  geom_curve(
    data = arrow, aes(x = x1, y = y1, xend = x2, yend = y2),
    arrow = arrow(length = unit(0.08, "inch")),
    colour = "#392704",
    linewidth = 1.5,
    curvature = 0.3) +
  annotate("text", x = 130.9, y = -34, label = "Dog Fence", size = 5.5, colour = "#EFA81A") +
  scale_color_viridis(option = "D", 
                      direction = -1,
                      begin = 0.0,
                      end = 0.4,
                      guide = guide_colorbar(title = ("Number of overlapping observations"),
                                     title.position = "top",
                                     title.hjust = 0.5)) +
  theme_void() +
  theme(legend.position = "bottom",
        legend.title = element_text(face = "bold"),
        legend.key.width = unit(15, 'mm'),
        plot.margin = unit(c(1,0,1,0),"cm"))

# add title
sa_plot +
  ggnewscale::new_scale_color() +
  scale_colour_manual(values = dingo_palette) +
  labs(
    title = glue(
      "<span style='color:{dingo_palette$obs}'>Dingo observations</span> in 
      <span style='color:{dingo_palette$protected}'>**protected areas**</span>"),
    subtitle = "South Australia") +
  theme(plot.title = element_markdown(face = "bold", size = 16, hjust = 0.5),
        plot.subtitle = element_markdown(hjust = 0.5, size = 15))

By comparing the number of records in CAPAD areas to the total observations in South Australia, we find that around 4 in 10 dingo observations are recorded inside of protected areas.

Code
# Download dingo record counts inside CAPAD areas
dingo_capad_sa <- galah_call() |>
  galah_identify("canis familiaris") |>
  galah_filter(raw_vernacularName == c("Dingo", "dingo"),
               cl22 == "South Australia") |>
  galah_group_by(cl11033) |> # capad
  atlas_counts() |>
  drop_na() # filter any NA values out

# Proportion inside vs outside of protected areas
in_protected <- dingo_capad_sa |> summarise(total = sum(count))
out_of_protected <- nrow(dingo_obs_sa)

paste(round(in_protected / out_of_protected * 100, 2), "%", sep = "")
[1] "38.97%"

Overall, in the Northern Territory and South Australia, the number of dingo observations is fairly comparable between between those made inside and outside of nationally protected areas. We also saw how few observations are on the southern side of the Dog Fence in South Australia.

Final thoughts

Our small investigation on the ALA’s dingo data has shown that observations are mainly recorded by government monitoring programs, with the large majority made in Northern Territory and South Australia. But why do two-thirds of all dingo records come from only two out of the seven states or territories where they occur?

One possible explanation could be due to differences in legislation between states. The Northern Territory is one of only two states/territories that recognises dingoes as a protected species (the other is Victoria). In these states, there are likely surveys or programs in place to collect data to maintain their distribution for conservation.

However, South Australia is one of several states with a mixed wild dog control policy, where wild dogs and dingoes are controlled in some areas and protected in others3. Similar mixed policy strategies exist in New South Wales and Queensland, while in Western Australia dingoes are classified as a pest species and required to be controlled. In these states, there is a risk that control methods sometimes take precedence over data collection, despite monitoring programs being in place. Still, there are lots of dingo observations recorded in South Australia, suggesting that legislation explains some but not all of the trends we see in the data.

Ultimately, dingoes are currently listed as vulnerable to extinction under the IUNC’s Red List of Threatened Species. Those interested in estimating the dingo’s current distribution may have to be mindful that the accuracy of estimates may depend on where data were collected.

Expand for session info
─ Session info ───────────────────────────────────────────────────────────────
 setting  value
 version  R version 4.3.2 (2023-10-31 ucrt)
 os       Windows 10 x64 (build 19045)
 system   x86_64, mingw32
 ui       RTerm
 language (EN)
 collate  English_Australia.utf8
 ctype    English_Australia.utf8
 tz       Australia/Sydney
 date     2024-05-06
 pandoc   3.1.1 @ C:/Program Files/RStudio/resources/app/bin/quarto/bin/tools/ (via rmarkdown)

─ Packages ───────────────────────────────────────────────────────────────────
 package        * version date (UTC) lib source
 dplyr          * 1.1.4   2023-11-17 [1] CRAN (R 4.3.2)
 forcats        * 1.0.0   2023-01-29 [1] CRAN (R 4.3.2)
 galah          * 2.0.2   2024-04-12 [1] CRAN (R 4.3.3)
 ggplot2        * 3.4.4   2023-10-12 [1] CRAN (R 4.3.1)
 ggpointdensity * 0.1.0   2019-08-28 [1] CRAN (R 4.3.2)
 ggtext         * 0.1.2   2022-09-16 [1] CRAN (R 4.3.2)
 glue           * 1.6.2   2022-02-24 [1] CRAN (R 4.3.2)
 here           * 1.0.1   2020-12-13 [1] CRAN (R 4.3.2)
 htmltools      * 0.5.7   2023-11-03 [1] CRAN (R 4.3.2)
 lubridate      * 1.9.3   2023-09-27 [1] CRAN (R 4.3.2)
 ozmaps         * 0.4.5   2021-08-03 [1] CRAN (R 4.3.2)
 patchwork      * 1.1.3   2023-08-14 [1] CRAN (R 4.3.1)
 purrr          * 1.0.2   2023-08-10 [1] CRAN (R 4.3.2)
 readr          * 2.1.5   2024-01-10 [1] CRAN (R 4.3.3)
 rmapshaper     * 0.5.0   2023-04-11 [1] CRAN (R 4.3.2)
 sessioninfo    * 1.2.2   2021-12-06 [1] CRAN (R 4.3.2)
 sf             * 1.0-16  2024-03-24 [1] CRAN (R 4.3.3)
 stringr        * 1.5.1   2023-11-14 [1] CRAN (R 4.3.2)
 tibble         * 3.2.1   2023-03-20 [1] CRAN (R 4.3.2)
 tidyr          * 1.3.1   2024-01-24 [1] CRAN (R 4.3.3)
 tidyverse      * 2.0.0   2023-02-22 [1] CRAN (R 4.3.2)
 viridis        * 0.6.4   2023-07-22 [1] CRAN (R 4.3.2)
 viridisLite    * 0.4.2   2023-05-02 [1] CRAN (R 4.3.1)

 [1] C:/Users/KEL329/R-packages
 [2] C:/Users/KEL329/AppData/Local/Programs/R/R-4.3.2/library

──────────────────────────────────────────────────────────────────────────────

Footnotes

  1. Some research suggests dingoes might not always benefit mammal species richness.↩︎

  2. However, all wild dogs in Australia possess some percentage of dingo genes.↩︎

  3. In South Australia, inside the Dog Fence landholders have a legal responsibility to control wild dogs—including dingoes—on their properties, whereas outside of the Dog Fence dingoes are listed as unprotected native wildlife.↩︎