---
title: "Introduction"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{aa-introduction}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  out.width = "90%"
)
```

```{r setup, message=FALSE}
library(dplyr)
library(raster)
library(cartomisc)
library(ggplot2)
```

## Extract part of the data with `gplot_data`

To draw multiple raster on the same ggplot2, or to draw raster after other objects (points, polygons, lines)

- data are extracted as a tibble
- data can then be added to a ggplot2 with `geom_tile`

```{r}
# Read some data
slogo <- stack(system.file("external/rlogo.grd", package = "raster")) 
slogo

# Get partial raster data to plot in ggplot
r.gg <- gplot_data(slogo)

# Remove NA to reduce size of table
r.gg.nona <- r.gg %>% 
  filter(!is.na(value))

r.gg.nona
```

### Plot with ggplot2

```{r, fig.width=12, fig.height=4}
# Plot
ggplot(r.gg.nona) +
  geom_tile(aes(x = x, y = y, fill = value)) +
  scale_fill_gradient("Probability", low = 'yellow', high = 'blue') +
  facet_wrap(vars(variable)) +
  coord_equal()
```

# Sun position

Calculate sun position for hillShade

```{r}
sun_position <- sun_position(2019, 04, 26,
  hour = 12, min = 0, sec = 0,
  lat = 46.5, long = 6.5
)
sun_position
```

Use with hillShade
```{r}
r <- raster(system.file("external/rlogo.grd", package = "raster"))
# slope and aspect
r_slope <- terrain(r, opt = "slope")
r_aspect <- terrain(r, opt = "aspect")
# hillshade
r_hillshade <- hillShade(r_slope, r_aspect, angle = sun_position$elevation, direction = sun_position$azimuth)
# plot
image(r)
image(r_hillshade, col = grey(seq(0, 1, 0.1), alpha = 0.5), add = TRUE)
```

