---
title: "RGDrivers"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{RGDrivers}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
```
```{r setup}
library(RGDrivers)
library(terra)
```
## Introduction
`RGDrivers` provides tools for analyzing stream networks, including the
construction of directed graphs from stream reaches, the calculation of
Link Magnitude (Shreve stream order) and D-LINK (downstream reach order),
and the export of results back to a spatial file.
This vignette uses the small sample set of stream reaches included in the
package (`inst/extdata/rede_exemplo.gpkg`).
## Loading the sample data
```{r}
network <- vect(system.file("extdata", "rede_exemplo.gpkg", package = "RGDrivers"))
network
```
## Creating the directed graph
```{r}
g <- create_network_graph(network, col_id = "id", col_downstream = "jus")
g
```
## Calculating the Link Magnitude (Shreve)
```{r}
lm <- calculate_link_magnitude(g)
lm
```
## Calculating the D-LINK
```{r}
df <- as.data.frame(network)
df$link_mag <- lm[as.character(df$id)]
df <- calculate_dlink(df, col_id = "id", col_downstream = "jus", col_order = "link_mag")
df
```
## Writing the result to a new spatial vector
```{r}
network$link_mag <- df$link_mag
network$D_LINK <- df$D_LINK
output <- tempfile(fileext = ".gpkg")
write_network_with_orders(
original_vector = network,
updated_df = df,
col_id = "id",
additional_cols = c("link_mag", "D_LINK"),
output_path = output
)
file.exists(output)
```