Write a transect design to GPX file(s).

WriteTransectDesign(
  TransectDesignData,
  Format = c("GPX"),
  TrackGroupingVariables = character(),
  FileGroupingVariables = character()
)

Arguments

TransectDesignData

The TransectDesignData data.

Format

The format of the output files. Currently the only option is "GPX", which prodices files that can be read by the Olex software.

TrackGroupingVariables

Character: A vector of one or more variables to group the tracks by in the file(s). Possible values are "Stratum", "Direction" and "Transect".

FileGroupingVariables

Character: A vector of one or more variables to group the files by. Possible values are "Stratum" and "Direction". One file is written for each combination of the FileGroupingVariables.

Value

An object of StoX data type WriteTransectDesignData.

Examples


library(sf)
#> Linking to GEOS 3.13.0, GDAL 3.8.5, PROJ 9.5.1; sf_use_s2() is TRUE

stratumFile <- system.file(
  "testresources", 
  "strata_sandeel_2020_firstCoverage.wkt", package = "RstoxBase"
 )
stratumPolygon<- DefineStratumPolygon(
  DefinitionMethod = "ResourceFile", 
  FileName = stratumFile
)

# Harbitz zigzag survey design along each stratum:
transectDesignZZ_Along <- TransectDesign(
  TransectType = "ZigZagRectangularEnclosure", 
  StratumPolygon = stratumPolygon, 
  SurveyTime = 200, 
  SurveySpeed = 10, 
  Seed = 1, 
  Bearing = "Along"
)
#> StoX: TransectDesign for Stratum AlbjoernLing...
#> StoX: numIter: 1
#> StoX: numIter: 2
#> StoX: TransectDesign for Stratum Engelsk_Klondyke_2020...
#> StoX: numIter: 1
#> StoX: numIter: 2
#> StoX: TransectDesign for Stratum Inner_Shoal_East_2016...
#> StoX: TransectDesign for Stratum Inner_Shoal_North_2020...
#> StoX: numIter: 1
#> StoX: numIter: 2
#> StoX: TransectDesign for Stratum Inner_Shoal_West_2018...
#> StoX: numIter: 1
#> StoX: numIter: 2
#> StoX: TransectDesign for Stratum Nordgyden...
#> StoX: numIter: 1
#> StoX: numIter: 2
#> StoX: TransectDesign for Stratum Ostbanken_2020...
#> StoX: numIter: 1
#> StoX: numIter: 2
#> StoX: TransectDesign for Stratum Outer_Shoal_2020_1...
#> StoX: TransectDesign for Stratum VestbankenSouthEast...
#> StoX: TransectDesign for Stratum VestbankenSouthWest...
#> StoX: TransectDesign for Stratum Vestbanken_North_2020...
#> StoX: numIter: 1
#> StoX: numIter: 2
#> StoX: TransectDesign for Stratum Vikingbanken...
#> StoX: numIter: 1
#> StoX: numIter: 2

# Convert the transect design to an sf object and write this as a gpx file 
# (this is done automatically by RstoxFramework in StoX):
gpxData <- WriteTransectDesign(transectDesignZZ_Along)
filePath <- tempfile(fileext = ".gpx")
layers <- c("geometry", "track_name", "track_fid", "track_seg_id", "track_seg_point_id")
st_write(
     subset(gpxData, select = layers),
     dsn = filePath,
     layer = "track_points",
     driver = "GPX"
 )
#> writing: substituting ENGCRS["Undefined Cartesian SRS with unknown unit"] for missing CRS
#> Writing layer `track_points' to data source 
#>   `/var/folders/q0/wmf37v850txck86cpnvwm_zw0000gn/T//Rtmpm8upCD/file40db21731678.gpx' using driver `GPX'
#> Writing 354 features with 4 fields and geometry type Point.
 
 # Read the data back in:
 gpxData_backin <- st_read(filePath)
#> Multiple layers are present in data source /private/var/folders/q0/wmf37v850txck86cpnvwm_zw0000gn/T/Rtmpm8upCD/file40db21731678.gpx, reading layer `waypoints'.
#> Use `st_layers' to list all layer names and their type in a data source.
#> Set the `layer' argument in `st_read' to read a particular layer.
#> Warning: automatically selected the first layer in a data source containing more than one.
#> Reading layer `waypoints' from data source 
#>   `/private/var/folders/q0/wmf37v850txck86cpnvwm_zw0000gn/T/Rtmpm8upCD/file40db21731678.gpx' 
#>   using driver `GPX'
#> Simple feature collection with 0 features and 23 fields
#> Bounding box:  xmin: NA ymin: NA xmax: NA ymax: NA
#> Geodetic CRS:  WGS 84
 identical(gpxData, gpxData_backin)
#> [1] FALSE