---
title: "Tourism data"
format:
  html:
    toc: true
    toc-depth: 2
    number-sections: true
    toc-location: left
    fig-cap-location: top
    code-fold: false
    code-tools: true
    theme: flatly
    page-layout: full
editor: visual
vignette: >
  %\VignetteIndexEntry{tourism data}
  %\VignetteEngine{quarto::html}
  %\VignetteEncoding{UTF-8}
---

```{r, echo=FALSE, message=FALSE, warning=FALSE}
# Ensure the temporary library from R CMD check is visible (esp. on Windows)
libdir <- Sys.getenv("R_LIBS")
if (nzchar(libdir)) {
  parts <- strsplit(libdir, .Platform$path.sep, fixed = TRUE)[[1]]
  .libPaths(unique(c(parts, .libPaths())))
}

# now load your package
suppressPackageStartupMessages(library(ecotourism))
```

**What this vignette covers**\

This vignette provides a quick tour of the `ecotourism` package’s tourism datasets. You’ll learn how to join quarterly counts with regional metadata, and optionally how to enrich the data by linking each region to its nearest weather station.

-   Because of its size, the tourism dataset was split into two separate datasets, with a shared key provided for joining them.

## Data overview

This is the glimpse of your data :

```{r, echo=TRUE, eval=TRUE, message=FALSE, warning=FALSE}
library(dplyr)
library(ecotourism)

data("tourism_region")
tourism_region |> glimpse()
```

```{r, echo=TRUE, eval=TRUE, message=FALSE, warning=FALSE}
data("tourism_quarterly")
tourism_quarterly |> glimpse()
```

------------------------------------------------------------------------

## Join regional metadata to quarterly counts

We keep only rows with a valid region name after the join.

```{r, echo=FALSE, eval=TRUE, message=FALSE, warning=FALSE}

tourism <- tourism_quarterly |>
  left_join(tourism_region, by = c("region_id", "ws_id")) |>
  filter(!is.na(region))

glimpse(tourism)
```

If you only need a subset of columns, select them first to keep memory small, for example: `select(region_id, quarter, visitors, lon, lat)`.

## Optional: add nearest weather station metadata

If your quarterly table contains a `ws_id`, you can join station attributes:

```{r, echo=FALSE, eval=TRUE, message=FALSE, warning=FALSE}

  tourism <- tourism |>
    dplyr::left_join(ecotourism::weather_stations, by = "ws_id")
```

## A quick map

We’ll plot tourism site coordinates and, when available, their weather stations.

```{r echo=TRUE, fig.width=6, fig.height=4, eval=FALSE}
library(ggplot2)
library(ggthemes)

ggplot() +
  geom_sf(data = oz_lga) +
  geom_point(data = tourism, aes(x = lon, y = lat),
               alpha = 0.8, size = 0.5) +
  theme_map()
```

If station coordinates `stn_lon` and `stn_lat` are present, overlay them too:

```{r echo=TRUE, fig.width=6, fig.height=4, eval=TRUE}
library(ggplot2)
library(ggthemes)

ggplot() +
    geom_sf(data = oz_lga) +
    geom_point(data = tourism, aes(x = lon, y = lat),
               alpha = 0.5, size = 0.4, color = "blue") +
    geom_point(data = tourism, aes(x = stn_lon, y = stn_lat),
               shape = 17, size = 0.5, alpha = 0.5, color = "red") +
  theme_map()
```
