Data Processing with Tivy

library(Tivy)

Data Processing Workflow

This vignette demonstrates the basic workflow for processing fisheries data with Tivy.

Step 1: Process Individual Datasets

# Process hauls data
hauls <- process_hauls(
  data_hauls = raw_hauls,
  correct_coordinates = TRUE,
  verbose = TRUE
)

# Process trips data  
trips <- process_fishing_trips(
  data_fishing_trips = raw_trips,
  verbose = TRUE
)

# Process length data
lengths <- process_length(
  data_length = raw_lengths,
  verbose = TRUE
)

Step 2: Data Validation

# Check data quality
haul_quality <- validate_haul_data(hauls)
trip_quality <- validate_fishing_trip_data(trips)
length_quality <- validate_length_data(lengths)

# Print quality scores
print(paste("Hauls quality:", haul_quality$quality_score, "%"))
print(paste("Trips quality:", trip_quality$quality_score, "%"))
print(paste("Lengths quality:", length_quality$quality_score, "%"))

Step 3: Merge Datasets

# Merge length and trip data first
length_trips <- merge(
  x = lengths,
  y = trips,
  by = "fishing_trip_code",
  all = TRUE
)

# Then merge with hauls data
complete_data <- merge_length_fishing_trips_hauls(
  data_hauls = hauls,
  data_length_fishing_trips = length_trips
)

Step 4: Add Derived Variables

# Add juvenile analysis and distance variables
enhanced_data <- add_variables(
  data = complete_data,
  JuvLim = 12,
  distance_type = "haversine",
  unit = "nm"
)

Coordinate Processing

Convert various coordinate formats:

# Example coordinates in different formats
coords <- c(
  "15°30'25\"S",     # Complete DMS
  "75°45'W",         # DM format  
  "16 15 30 S"       # Space-separated
)

# Convert to decimal degrees
decimal <- dms_to_decimal(
  coordinates = coords,
  hemisphere = "S",
  correct_errors = TRUE
)

Error Handling

# Handle missing columns gracefully
tryCatch({
  processed <- process_hauls(incomplete_data)
}, error = function(e) {
  message("Processing failed: ", e$message)
})

Column Detection

The package automatically detects columns using pattern matching:

# Find columns by pattern
species_col <- find_column(
  patterns = c("especie", "species", "sp"),
  column_names = names(your_data)
)

# Find numeric length columns
length_cols <- find_columns_by_pattern(
  data = your_data,
  pattern = "^[0-9]+(\\.[0-9]+)?$"
)

Tips

  1. Consistent naming: Use consistent column names across files
  2. Data validation: Always validate data quality after processing
  3. Error correction: Enable coordinate error correction for better results
  4. Pattern matching: The package is flexible with column name variations

For function-specific details, see the individual function documentation.

mirror server hosted at Truenetwork, Russian Federation.