environmentaltools.processes.bulk_fluid_density

environmentaltools.processes.bulk_fluid_density(T, S, C, rhos=2650)[source]

Compute bulk fluid density from suspended sediment concentration.

Calculates the density of water-sediment mixture accounting for temperature, salinity, and suspended sediment concentration (turbidity).

Parameters:
  • T (pd.DataFrame or np.ndarray) – Water temperature (°C)

  • S (pd.DataFrame or np.ndarray) – Salinity (psu - practical salinity units)

  • C (pd.DataFrame or np.ndarray) – Turbidity, suspended sediment concentration (FNU - Formazin Nephelometric Units)

  • rhos (float, optional) – Sediment particle density (kg/m³). Default: 2650 (typical quartz sand)

Returns:

  • rho (pd.DataFrame or np.ndarray) – Clear water density (kg/m³) from temperature and salinity

  • rho_bulk (pd.DataFrame or np.ndarray) – Bulk fluid density (kg/m³) including suspended sediment effects

Notes

Conversion factor: Multiply turbidity C by 1.6015e-3 to convert FNU to g/L.

The bulk density accounts for:

  • Base seawater density from EOS (temperature and salinity effects)

  • Volume displacement by sediment particles

  • Mass contribution from suspended sediment

Formula: ρ_bulk = ρ_water + (1 - ρ_water/ρ_sediment) * C * 1.6015e-3

Examples

>>> import pandas as pd
>>> T = pd.Series([20, 20, 20])
>>> S = pd.Series([35, 35, 35])
>>> C = pd.Series([0, 100, 500])  # Turbidity in FNU
>>> rho, rho_bulk = bulk_fluid_density(T, S, C)
>>> print(f"Clear water: {rho[0]:.2f} kg/m³")
>>> print(f"With sediment: {rho_bulk[2]:.2f} kg/m³")