# Juvenile Fish Analysis with Tivy

    library(Tivy)

## Juvenile Fish Analysis

Analyze juvenile fish proportions in catches using length-weight relationships and catch data.

### Basic Juvenile Analysis

Calculate juvenile percentages from length frequency data:

    # Calculate juvenile percentages
    juvenile_results <- summarize_juveniles_by_group(
      data = your_length_data,
      group_cols = c("date", "fishing_zone"),
      length_cols = c("8", "9", "10", "11", "12", "13"),
      juvenile_limit = 12,  # Size threshold in cm
      a = 0.0012,          # Length-weight coefficient
      b = 3.1242           # Length-weight exponent
    )

### Length-Weight Relationships

Use species-specific parameters for weight calculations:

    # Calculate fish weights from lengths
    weights <- calculate_fish_weight(
      length = c(8, 10, 12, 14),
      a = 0.0048,  # Coefficient for anchoveta
      b = 3.067    # Exponent for anchoveta
    )

    # Apply catch weighting to length frequencies
    weighted_data <- apply_catch_weighting(
      data = your_data,
      length_cols = c("8", "9", "10", "11", "12"),
      catch_col = "total_catch",
      a = 0.0048,
      b = 3.067
    )

### Juvenile Percentage Calculation

Calculate juvenile proportions:

    # Single sample calculation
    juv_percent <- calculate_juvenile_percentage(
      frequency = c(10, 25, 40, 30, 15),  # Frequencies by length
      length = c(8, 9, 10, 11, 12),       # Length classes
      juvenile_limit = 10                  # Juvenile threshold
    )

    # Get length ranges from frequency data
    min_length <- get_length_range(
      frequency = c(0, 5, 10, 20, 15, 0),
      length = c(8, 9, 10, 11, 12, 13),
      type = "min"
    )

### Convert Numbers to Weight

Convert length frequencies to weight estimates:

    # Convert frequency data to weight
    weight_data <- convert_numbers_to_weight(
      data = your_frequency_data,
      length_cols = c("8", "9", "10", "11", "12"),
      a = 0.0012,
      b = 3.1242
    )

### Visualization

Create juvenile analysis plots:

    # Plot juvenile analysis
    juvenile_plot <- plot_juvenile_analysis(
      data = your_data,
      x_var = "date",
      length_cols = c("8", "9", "10", "11", "12"),
      plot_type = "bars",
      title = "Juvenile Analysis Over Time"
    )

    # Create comprehensive dashboard
    dashboard <- create_fishery_dashboard(
      data = complete_data,
      date_col = "date",
      length_cols = find_columns_by_pattern(complete_data, "^[0-9]")
    )

### Length-Weight Parameters

Common parameters for Peruvian species:

Species | a | b | Juvenile Limit (cm)
--- | --- | --- | ---
Anchoveta | 0.0048 | 3.067 | 12
Sardina | 0.0091 | 3.152 | 15
Jurel | 0.0079 | 3.089 | 20

### Parallel Processing

For large datasets:

    # Use parallel processing for catch weighting
    weighted_data <- apply_catch_weighting(
      data = large_dataset,
      length_cols = length_columns,
      catch_col = "catch",
      a = 0.0048,
      b = 3.067,
      parallel = TRUE,
      num_cores = 4
    )

## Analysis Tips

1. Juvenile thresholds: Base on biological criteria (size at maturity)
2. Species parameters: Use species-specific length-weight coefficients
3. Data quality: Validate length frequency data before analysis
4. Both metrics: Consider both number and weight-based percentages

For parameter recommendations and detailed examples, see the function documentation.

## References

- Froese, R. (2006). Cube law, condition factor and weight–length relationships: history, meta-analysis and recommendations. Journal of Applied Ichthyology, 22(4), 241-253. https://doi.org/10.1111/j.1439-0426.2006.00805.x

- IMARPE (2020). Protocolo Elaboración de la Tabla de Decisión para la determinación del Límite Máximo Total Permisible por temporada de pesca en la pesquería del stock norte-centro de la anchoveta peruana. IMP-DGIRP/AFDPERP, Edición: 05, Revisión 00, 40p.