Skip to content
oceanographic-seawater-properties logo

Oceanographic Seawater Properties (TEOS-10)

oceanographic-seawater-properties

Calculate seawater thermodynamic properties using TEOS-10 standard including density, salinity, sound speed, and freezing temperature for oceanography.

InternScience/scp0installs169stars

SKILL.md

Full skill instructions

Oceanographic Seawater Properties (TEOS-10)

Usage

1. MCP Server Definition

import asyncio
import json
from mcp.client.streamable_http import streamablehttp_client
from mcp import ClientSession

class OceanGSWClient:
    """Ocean GSW (Gibbs SeaWater) MCP Client"""

    def __init__(self, server_url: str, api_key: str):
        self.server_url = server_url
        self.api_key = api_key
        self.session = None

    async def connect(self):
        print(f"Connecting to: {self.server_url}")
        try:
            self.transport = streamablehttp_client(
                url=self.server_url,
                headers={"SCP-HUB-API-KEY": self.api_key}
            )
            self.read, self.write, self.get_session_id = await self.transport.__aenter__()
            self.session_ctx = ClientSession(self.read, self.write)
            self.session = await self.session_ctx.__aenter__()
            await self.session.initialize()
            print("✓ connect success")
            return True
        except Exception as e:
            print(f"✗ connect failure: {e}")
            return False

    async def disconnect(self):
        try:
            if self.session:
                await self.session_ctx.__aexit__(None, None, None)
            if hasattr(self, 'transport'):
                await self.transport.__aexit__(None, None, None)
            print("✓ already disconnect")
        except Exception as e:
            print(f"✗ disconnect error: {e}")

    def parse_result(self, result):
        try:
            if hasattr(result, 'content') and result.content:
                content = result.content[0]
                if hasattr(content, 'text'):
                    return json.loads(content.text)
            return str(result)
        except Exception as e:
            return {"error": f"parse error: {e}", "raw": str(result)}

2. Seawater Properties Calculation Workflow

Calculate seawater thermodynamic properties following the TEOS-10 (Thermodynamic Equation of Seawater - 2010) international standard.

Workflow Steps:

  1. Convert to Absolute Salinity - Convert practical salinity to absolute salinity
  2. Calculate Density - Compute seawater density
  3. Calculate Sound Speed - Determine speed of sound in seawater
  4. Calculate Freezing Temperature - Find freezing point
  5. Calculate Conservative Temperature - Get conservative temperature from potential temperature

Implementation:

## Initialize client
client = OceanGSWClient(
    "https://scp.intern-ai.org.cn/​api/​v1/​mcp/​34/​OceanGSW-Tool",
    "<your-api-key>"
)

if not await client.connect():
    print("connection failed")
    exit()

print("=== Oceanographic Seawater Properties (TEOS-10) ===\n")

## Input parameters for typical ocean conditions
practical_salinity = 35.0  # PSU (practical salinity units)
temperature = 10.0          # °C (in-situ temperature)
pressure = 1000.0           # dbar (approximately 1000m depth)
longitude = -30.0           # degrees E
latitude = 20.0             # degrees N

## Step 1: Convert practical salinity to absolute salinity
print("Step 1: Convert to Absolute Salinity")
result = await client.session.call_tool(
    "SA_from_SP",
    arguments={
        "SP": practical_salinity,
        "p": pressure,
        "lon": longitude,
        "lat": latitude
    }
)
absolute_salinity = client.parse_result(result)
print(f"Practical Salinity: {practical_salinity} PSU")
print(f"Absolute Salinity: {absolute_salinity} g/​kg\n")

## Step 2: Calculate seawater density
print("Step 2: Calculate Seawater Density")
result = await client.session.call_tool(
    "rho",
    arguments={
        "SA": absolute_salinity,
        "CT": temperature,
        "p": pressure
    }
)
density = client.parse_result(result)
print(f"Density: {density} kg/​m³\n")

## Step 3: Calculate speed of sound
print("Step 3: Calculate Sound Speed")
result = await client.session.call_tool(
    "sound_speed",
    arguments={
        "SA": absolute_salinity,
        "CT": temperature,
        "p": pressure
    }
)
sound_speed = client.parse_result(result)
print(f"Sound Speed: {sound_speed} m/​s\n")

## Step 4: Calculate freezing temperature
print("Step 4: Calculate Freezing Temperature")
result = await client.session.call_tool(
    "t_freezing",
    arguments={
        "SA": absolute_salinity,
        "p": pressure,
        "saturation_fraction": 0.0  # 0 for air-free, 1 for air-saturated
    }
)
freezing_temp = client.parse_result(result)
print(f"Freezing Temperature: {freezing_temp}°C\n")

## Step 5: Calculate potential temperature
print("Step 5: Calculate Potential Temperature")
result = await client.session.call_tool(
    "pt_from_t",
    arguments={
        "SA": absolute_salinity,
        "t": temperature,
        "p": pressure,
        "p_ref": 0.0  # Reference pressure (0 for surface)
    }
)
potential_temp = client.parse_result(result)
print(f"In-situ Temperature: {temperature}°C")
print(f"Potential Temperature: {potential_temp}°C\n")

await client.disconnect()

Tool Descriptions

OceanGSW-Tool Server (TEOS-10 Standard):

  • SA_from_SP: Convert practical salinity to absolute salinity

    • Args: SP (PSU), p (dbar), lon (deg E), lat (deg N)
    • Returns: Absolute salinity (g/​kg)
  • rho: Calculate seawater density

    • Args: SA (g/​kg), CT (°C), p (dbar)
    • Returns: Density (kg/​m³)
  • sound_speed: Calculate speed of sound in seawater

    • Args: SA (g/​kg), CT (°C), p (dbar)
    • Returns: Sound speed (m/​s)
  • t_freezing: Calculate freezing temperature

    • Args: SA (g/​kg), p (dbar), saturation_fraction (0-1)
    • Returns: Freezing temperature (°C)
  • pt_from_t: Calculate potential temperature from in-situ temperature

    • Args: SA (g/​kg), t (°C), p (dbar), p_ref (dbar)
    • Returns: Potential temperature (°C)

Input/​Output

Inputs:

  • Practical Salinity (SP): PSU (practical salinity units), typically 32-37 for open ocean
  • Absolute Salinity (SA): g/​kg, accounts for non-salt materials
  • Temperature (t, CT): °C, in-situ or conservative temperature
  • Pressure (p): dbar, approximately equal to depth in meters
  • Longitude: degrees East
  • Latitude: degrees North

Outputs:

  • Absolute salinity: g/​kg
  • Density: kg/​m³
  • Sound speed: m/​s
  • Freezing temperature: °C
  • Potential temperature: °C

Use Cases

  • Oceanographic research and monitoring
  • Climate modeling and ocean circulation studies
  • Underwater acoustics and sonar applications
  • Marine biology habitat characterization
  • Ocean engineering and offshore operations
  • Fisheries science
  • Sea level and ocean heat content studies

TEOS-10 Overview

TEOS-10 (Thermodynamic Equation of Seawater - 2010) is the international standard for seawater properties:

  • Replaces the older EOS-80 standard
  • Uses Absolute Salinity instead of Practical Salinity
  • Uses Conservative Temperature instead of Potential Temperature
  • Provides consistent thermodynamic framework
  • Essential for accurate ocean property calculations

Physical Interpretations

Absolute vs Practical Salinity:

  • Practical Salinity: Based on conductivity measurement
  • Absolute Salinity: Mass fraction of dissolved material (includes non-salt components)
  • Difference typically ~0.5 g/​kg but varies regionally

Seawater Density:

  • Increases with salinity and pressure
  • Decreases with temperature
  • Typical ocean: 1020-1030 kg/​m³
  • Critical for ocean circulation and stratification

Sound Speed:

  • Increases with temperature, salinity, and pressure
  • Typical ocean: 1480-1540 m/​s
  • Critical for sonar, acoustic communication, seismic studies

Freezing Temperature:

  • Decreases with salinity
  • Increases with pressure (unusual property)
  • Seawater freezes at ~-2°C at surface

Additional Ocean Tools

The OceanGSW-Tool server provides 50+ TEOS-10 functions including:

  • alpha: Thermal expansion coefficient
  • beta: Haline contraction coefficient
  • chem_potential_water: Chemical potential
  • cp: Specific heat capacity
  • enthalpy: Specific enthalpy
  • entropy: Specific entropy
  • internal_energy: Specific internal energy
  • Nsquared: Brunt-Väisälä frequency (ocean stability)
  • sigma0, sigma1, sigma2, sigma3, sigma4: Potential density anomalies
  • spiciness0, spiciness1, spiciness2: Water mass spiciness

Pressure Conversion

  • 1 dbar ≈ 1 meter depth (very close approximation)
  • Surface pressure: 0 dbar
  • 1000 m depth: ~1000 dbar
  • 10000 m depth (Mariana Trench): ~10000 dbar

More skills from InternScience

Clinical Pharmacology Report - Generate clinical pharmacology report: PK, PD, mechanism, drug interactions, and special populations. Use this skill for clinical pharmacology tasks involving get pharmacokinetics by drug name get pharmacodynamics by drug name get mechanism of action by drug name ge...

169 0
View
geometry_trigonometry logo
InternScience/scp

geometry_trigonometry

Geometry & Trigonometry Suite - Solve geometry problems: calculate area, height from sine, angle in degrees, and increase factor. Use this skill for mathematics tasks involving calculate area calculate height from length and sine calculate phi deg calculate increase factor. Combines 4 tools from ...

169 0
View
drug_metabolism_study logo
InternScience/scp

drug_metabolism_study

Drug Metabolism Study - Study drug metabolism: FDA metabolism data, ChEMBL metabolism records, PubChem compound data, and clinical pharmacology. Use this skill for drug metabolism tasks involving get metabolism by id get pharmacokinetics by drug name get compound by name get clinical pharmacology...

169 0
View
chembl-molecule-search logo
InternScience/scp

chembl-molecule-search

Search ChEMBL database for molecule information by name to retrieve bioactivity data and chemical structures.

169 0
View
affinity_maturation logo
InternScience/scp

affinity_maturation

Affinity Maturation Pipeline - Affinity maturation: compute binding affinity, predict mutations, compute hydrophilicity, and predict drug-target interaction. Use this skill for antibody engineering tasks involving ComputeAffinityCalculator zero shot sequence prediction ComputeHydrophilicity Predi...

169 0
View

Convert laboratory protocols to executable JSON format using Thoth-OP for automated lab equipment control.

169 0
View

Cross-Species Protein Comparison - Compare proteins across species: get orthologs from NCBI, compute properties for each, and compare similarity. Use this skill for comparative biology tasks involving get gene orthologs calculate protein sequence properties calculate smiles similarity get homolog...

169 0
View
admet_druglikeness_report logo
InternScience/scp

admet_druglikeness_report

ADMET & Drug-Likeness Report - Generate comprehensive ADMET and drug-likeness report: molecular properties, H-bond analysis, hydrophobicity, topology, and ADMET prediction. Use this skill for medicinal chemistry tasks involving calculate mol basic info calculate mol hbond calculate mol hydrophobi...

169 0
View

Protein Classification Analysis - Classify protein: ChEMBL protein classification, UniProt entry, InterPro domains, and Ensembl biotypes. Use this skill for protein science tasks involving search protein classification get uniprotkb entry by accession query interpro get info biotypes. Combines 4 ...

169 0
View

Protein Structure Quality Assessment - Assess structure quality: basic info, geometry analysis, quality metrics, composition, and visualization. Use this skill for structural biology tasks involving calculate pdb basic info calculate pdb structural geometry calculate pdb quality metrics calculate...

169 0
View

Given an rsID, query multiple databases (dbSNP, FAVOR, GWAS Catalog, ClinVar, gnomAD, PharmGKB, ClinGen) for comprehensive annotation. Use when user asks a general question about a variant without specifying which aspect.

169 0
View

Statistical Error Analysis - Analyze measurement errors: absolute error, scientific notation, max value, mean square, and formatting. Use this skill for statistics tasks involving calculate absolute error convert to scientific notation calculate max value calculate mean square format scientific n...

169 0
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View