Fronts (Coming Soon)#
Note
This section is under development. Front detection and tracking capabilities are planned for future releases of shoot.
Overview#
Ocean fronts are sharp transitions in water properties (temperature, salinity, density) that occur at various scales throughout the ocean. shoot will provide tools to:
Detect fronts from temperature/salinity fields
Track front evolution through time
Characterize front strength and structure
Analyze frontal impacts on ecosystems
What are Ocean Fronts?#
Ocean fronts are regions of enhanced horizontal gradients in:
Temperature - Thermal fronts
Salinity - Haline fronts
Density - Density fronts (combination of T and S)
Types of Fronts#
- Boundary Current Fronts:
Associated with major currents (Gulf Stream, Kuroshio)
Strong, persistent features
Width: 10-50 km
Temperature contrast: 5-10°C
- Upwelling Fronts:
Coastal upwelling regions
Separate cold upwelled from warm offshore water
Width: 5-20 km
Seasonal variability
- Tidal Fronts:
Form due to tidal mixing
Separate stratified from mixed water
Width: 1-10 km
Associated with shelf seas
- Frontal Eddies:
Meanders and eddies along fronts
Width: 10-100 km
Dynamic, evolving features
Characteristics#
- Spatial scales:
Width: 1-50 km typically
Length: Can extend 100s-1000s km
Vertical extent: Surface to thermocline
- Temporal scales:
Persistence: Days to months
Evolution: Can meander and generate eddies
Seasonal cycles common
- Physical properties:
Horizontal gradient: >0.1°C/km for temperature
Cross-front flow: Convergent or divergent
Along-front jets: Often present
Importance#
Fronts are important because they:
Concentrate nutrients and biology
Support enhanced productivity
Affect fisheries (aggregation zones)
Influence air-sea interaction
Generate submesoscale features
Impact navigation and marine operations
Planned Detection Methods#
shoot will implement multiple front detection techniques:
Gradient-Based Detection#
# Planned API (not yet implemented)
from shoot.fronts import detect_fronts
# Detect from temperature field
fronts = detect_fronts(
ds.temp,
method='gradient',
threshold=0.1, # °C/km
min_length=20 # km
)
Edge Detection#
Using Canny or similar algorithms:
# Planned API
fronts = detect_fronts(
ds.temp,
method='canny',
sigma=2, # Smoothing scale
min_length=20
)
Contour-Based#
Following specific isotherms/isohalines:
# Planned API
fronts = detect_fronts(
ds.temp,
method='contour',
values=[15, 20], # Isotherms to track
gradient_threshold=0.1
)
Planned Tracking#
Track front positions through time:
# Planned API
from shoot.fronts import track_fronts
# Track detected fronts
tracks = track_fronts(
fronts_list,
max_distance=30, # km
max_angle_change=45 # degrees
)
Data Requirements#
For front detection, you will need:
- Temperature and/or Salinity:
High-resolution fields (< 10 km)
SST from satellites (1-4 km)
Model output with fine resolution
- Spatial Coverage:
Large enough to capture front extent
Avoid domain edge artifacts
- Temporal Resolution:
Sub-daily to daily for tracking
Sufficient to capture evolution
Interim Solutions#
While native front detection is under development, you can:
Use Custom Gradient Computation#
import xarray as xr
import numpy as np
from shoot import meta as smeta
# Load data
ds = xr.open_dataset("sst_data.nc")
# Get coordinates
lon = smeta.get_lon(ds)
lat = smeta.get_lat(ds)
# Compute gradients
dT_dx = ds.temp.differentiate('lon')
dT_dy = ds.temp.differentiate('lat')
# Gradient magnitude
grad_mag = np.sqrt(dT_dx**2 + dT_dy**2)
# Threshold for fronts
front_mask = grad_mag > 0.1 # Adjust threshold
Use External Tools#
Consider other packages for front detection:
oceanspy - Has front detection utilities
xgcm - Grid operations for gradient computation
scikit-image - Edge detection algorithms
OpenCV - Computer vision techniques
Then use shoot’s tracking framework to follow detected features.
Contributing#
If you’re interested in front detection capabilities:
Check the shoot repository for development status
Open an issue to discuss requirements
Contribute code following the Contributing to xarray guidelines
We welcome contributions for:
Detection algorithms
Validation datasets
Test cases
Documentation
Stay Tuned#
Front detection is a planned feature for shoot. Check:
Project repository for updates
Release notes for new versions
Issue tracker for development progress
For now, focus on:
Eddies - Eddy detection and tracking
Metadata and CF Conventions - Data handling
Quick Start Guide - Getting started with shoot
Questions?#
If you have specific needs for front detection:
Open an issue on the repository
Describe your use case
Share example data if possible
Suggest algorithms or references
Your input helps shape future development!