The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Working with user-supplied rasters

library(blueterra)
library(terra)

blueterra starts with a local raster path or an existing terra::SpatRaster. Region, datum, grid resolution, and depth sign convention stay visible in the analysis code because those choices affect interpretation.

Raster Paths and SpatRasters

path <- blueterra_example("hoyo")
hoyo <- read_bathy(path)
same_hoyo <- as_bathy(hoyo)

class(path)
#> [1] "character"
class(hoyo)
#> [1] "SpatRaster"
#> attr(,"package")
#> [1] "terra"
class(same_hoyo)
#> [1] "SpatRaster"
#> attr(,"package")
#> [1] "terra"
bathy_info(hoyo)
#> # A tibble: 1 × 13
#>   layer    nrow  ncol ncell    xmin   xmax   ymin   ymax  xres  yres   min   max
#>   <chr>   <dbl> <dbl> <dbl>   <dbl>  <dbl>  <dbl>  <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 bathy_m   123   124 15252 135452. 1.36e5 2.05e5 2.05e5  4.00  4.00 -269. -19.4
#> # ℹ 1 more variable: crs <chr>

read_bathy() is the local file reader. as_bathy() is useful when functions need to accept either file paths or raster objects.

Vector Inputs

Use terra::vect() for local vector files. Functions that take zones, masks, or transect boundaries also accept a local vector path.

rectangles <- terra::vect(blueterra_example("sampling_rectangles"))
rectangles[, c("site_id", "site_name", "feature_type")]
#> class       : SpatVector
#> geometry    : polygons
#> dimensions  : 3, 3  (geometries, attributes)
#> extent      : 134960.3, 138741.2, 204155.7, 205950.2  (xmin, xmax, ymin, ymax)
#> source      : laparguera_sampling_rectangles.gpkg
#> coord. ref. : NAD83 / Puerto Rico & Virgin Is. (EPSG:32161)
#> names       : site_id        site_name       feature_type
#> type        :   <chr>            <chr>              <chr>
#> values      :    hitw Hole-in-the-Wall sampling_rectangle
#>                  hoyo          El Hoyo sampling_rectangle
#>                 slope       Slope Clip    analysis_extent

hoyo_rect <- rectangles[rectangles$site_id == "hoyo", ]
masked <- mask_bathy(hoyo, hoyo_rect)
class(masked)
#> [1] "SpatRaster"
#> attr(,"package")
#> [1] "terra"

CRS

check_bathy_crs(hoyo)
#> # A tibble: 1 × 4
#>   has_crs is_lonlat is_projected crs                                            
#>   <lgl>   <lgl>     <lgl>        <chr>                                          
#> 1 TRUE    FALSE     TRUE         "PROJCRS[\"NAD83 / Puerto Rico & Virgin Is.\",…
terra::crs(hoyo, proj = TRUE)
#> [1] "+proj=lcc +lat_0=17.8333333333333 +lon_0=-66.4333333333333 +lat_1=18.4333333333333 +lat_2=18.0333333333333 +x_0=200000 +y_0=200000 +datum=NAD83 +units=m +no_defs"
terra::res(hoyo)
#> [1] 3.996743 3.996743

Slope, buffers, transects, focal windows in map units, and isobath corridors should be interpreted in a projected CRS. blueterra requires explicit reprojection when a CRS conversion is part of the analysis design.

coarse_template <- terra::aggregate(hoyo, fact = 2)
projected <- project_bathy(coarse_template, terra::crs(hoyo))
class(projected)
#> [1] "SpatRaster"
#> attr(,"package")
#> [1] "terra"

Depth Convention

Bathymetric rasters are commonly stored as negative elevation or positive depth. blueterra preserves the stored convention unless conversion is requested explicitly.

check_bathy_units(hoyo, units = "m", positive_depth = FALSE)
#> # A tibble: 1 × 5
#>   layer     min   max units positive_depth
#>   <chr>   <dbl> <dbl> <chr> <lgl>         
#> 1 bathy_m -269. -19.4 m     FALSE
range(terra::values(hoyo), na.rm = TRUE)
#> [1] -269.02957  -19.40236

positive_depth <- set_depth_positive(hoyo)
range(terra::values(positive_depth), na.rm = TRUE)
#> [1]  19.40236 269.02957

Depth bands follow the stored values unless positive_depth = TRUE is used.

summarize_depth_bands(
  hoyo,
  breaks = c(-260, -180, -120, -60, -20)
)
#> # A tibble: 4 × 8
#>   depth_band  metric  n_cells   mean    sd    min    max median
#>   <chr>       <chr>     <int>  <dbl> <dbl>  <dbl>  <dbl>  <dbl>
#> 1 [-260,-180) bathy_m    2152 -224.   22.1 -260.  -180.  -225. 
#> 2 [-180,-120) bathy_m     423 -160.   16.9 -180.  -120.  -166. 
#> 3 [-120,-60)  bathy_m    1982  -83.8  10.9 -120.   -60.0  -84.3
#> 4 [-60,-20]   bathy_m    3077  -30.0  10.6  -60.0  -20.0  -25.3

Visual Check

The first map should show the measured bathymetric surface and the relief structure that will influence slope, position, and curvature metrics.

plot_bathy(
  hoyo,
  contours = TRUE,
  contour_interval = 25,
  vectors = hoyo_rect,
  title = "El Hoyo Bathymetry",
  subtitle = "Hillshade, contours, and sampling rectangle"
)

El Hoyo bathymetry with hillshade, contours, and sampling rectangle.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.