library(fluvgeo)
library(sf)
library(dplyr)
library(knitr)
library(ggplot2)
library(ggrepel)
library(patchwork)
library(tmap)
library(terra)
library(terrainr)

Study Area Overview

if(aerial) {
  print(fluvgeo::map_reach_overview(flowline = params$flowline_sf, 
                                    cross_section = params$cross_section_sf,
                                    background = "aerial",
                                    xs_label_freq = params$xs_label_freq,
                                    extent_factor = params$extent_factor))
}
if(elevation) {
  print(fluvgeo::map_reach_overview(flowline = params$flowline_sf, 
                                    cross_section = params$cross_section_sf,
                                    background = "elevation",
                                    xs_label_freq = params$xs_label_freq,
                                    exaggeration = params$exaggeration,
                                    extent_factor = params$extent_factor))
}

Longitudinal Profile

print(fluvgeo::compare_long_profile(stream = params$stream,
                            flowline_pts_sf_list = params$flowline_pts_sf_list,
                            features_sf = params$features_sf,
                            profile_units = params$profile_units))
print(fluvgeo::compare_xs_long_profile(stream = params$stream,
                                     xs_pts_sf_list = params$xs_pts_sf_list,
                                     features_sf = params$features_sf,
                                     xs_label_freq = params$xs_label_freq,
                                     profile_units = params$profile_units))

Cross Section Metrics

print(fluvgeo::xs_metrics_plot_L1(xs_dims_sf = params$cross_section_sf,
                                  features_sf = params$features_sf,
                                  xs_label_freq = params$xs_label_freq,
                                  profile_units = params$profile_units))

Cross Section Profiles

# Get dem raster
dem_rast <- fluvgeo::gdb_raster2SpatRast(raster_path = params$dem)

# Calculate cross section bearings and sequentially order
cross_section <- params$cross_section_sf %>%
  fluvgeo::xs_bearing() %>%
  dplyr::arrange(Seq)

# Iterate through cross sections
for(j in cross_section$Seq) {
  # Create cross section profiles plot
  print(fig_xs_profiles_L1(cross_section = cross_section,
                           xs_number = j,
                           dem = dem_rast,
                           channel = params$channel_sf,
                           floodplain = params$floodplain_sf,
                           extent_factor = params$extent_factor,
                           xs_pts_sf_list = params$xs_pts_sf_list))
  # Insert vertical white space so that next figure in loop is recognized
  cat('\n')
  # Must set chunk option`results='asis'` to ensure table is drawn properly
}

Version: 0.1.51



FluvialGeomorph/fluvgeo documentation built on Feb. 19, 2025, 4:24 p.m.