atmospheric-science-calculations

Calculate atmospheric parameters including Coriolis parameter, geostrophic wind, heat index, potential temperature, and dewpoint for meteorology and climate science.

Best use case

atmospheric-science-calculations is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Calculate atmospheric parameters including Coriolis parameter, geostrophic wind, heat index, potential temperature, and dewpoint for meteorology and climate science.

Teams using atmospheric-science-calculations should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/atmospheric-science-calculations/SKILL.md --create-dirs "https://raw.githubusercontent.com/SpectrAI-Initiative/InnoClaw/main/.claude/skills/atmospheric-science-calculations/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/atmospheric-science-calculations/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How atmospheric-science-calculations Compares

Feature / Agentatmospheric-science-calculationsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Calculate atmospheric parameters including Coriolis parameter, geostrophic wind, heat index, potential temperature, and dewpoint for meteorology and climate science.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Atmospheric Science Calculations

## Usage

### 1. MCP Server Definition

```python
import asyncio
import json
from contextlib import AsyncExitStack
from mcp.client.streamable_http import streamablehttp_client
from mcp import ClientSession

class AtmSciClient:
    """Atmospheric Science Tools 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._stack = AsyncExitStack()
            await self._stack.__aenter__()
            self.read, self.write, self.get_session_id = await self._stack.enter_async_context(self.transport)
            self.session_ctx = ClientSession(self.read, self.write)
            self.session = await self._stack.enter_async_context(self.session_ctx)
            await self.session.initialize()
            print("✓ connect success")
            return True
        except Exception as e:
            print(f"✗ connect failure: {e}")
            return False

    async def disconnect(self):
        """Disconnect from server"""
        try:
            if hasattr(self, '_stack'):
                await self._stack.aclose()
            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. Atmospheric Calculations Workflow

Calculate key atmospheric parameters for meteorology, climate science, and weather forecasting applications.

**Workflow Steps:**

1. **Calculate Coriolis Parameter** - Compute Earth's rotation effect
2. **Calculate Geostrophic Wind** - Determine wind from pressure gradients
3. **Calculate Heat Index** - Assess human heat stress
4. **Calculate Potential Temperature** - Standardize temperature measurements
5. **Calculate Dewpoint** - Determine moisture content

**Implementation:**

```python
## Initialize client
client = AtmSciClient(
    "https://scp.intern-ai.org.cn/api/v1/mcp/35/AtmSci-Tool",
    "<your-api-key>"
)

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

print("=== Atmospheric Science Calculations ===\n")

## Step 1: Calculate Coriolis parameter
print("Step 1: Coriolis Parameter")
latitude = 45.0  # degrees
result = await client.session.call_tool(
    "atm_calc_coriolis_parameter",
    arguments={"latitude": latitude}
)
result_data = client.parse_result(result)
print(f"Latitude: {latitude}°")
print(f"Coriolis parameter: {result_data} s⁻¹\n")

## Step 2: Calculate geostrophic wind
print("Step 2: Geostrophic Wind")
result = await client.session.call_tool(
    "atm_calc_geostrophic_wind",
    arguments={
        "pressure_gradient_x": 1.0,  # Pa/m
        "pressure_gradient_y": 0.5,  # Pa/m
        "latitude": latitude,
        "air_density": 1.225         # kg/m³
    }
)
result_data = client.parse_result(result)
print(f"Geostrophic wind (u, v): {result_data} m/s\n")

## Step 3: Calculate heat index
print("Step 3: Heat Index")
result = await client.session.call_tool(
    "atm_calc_heat_index",
    arguments={
        "temperature_f": 95.0,       # °F
        "relative_humidity": 65.0    # %
    }
)
result_data = client.parse_result(result)
print(f"Temperature: 95°F, Humidity: 65%")
print(f"Heat index: {result_data}°F\n")

## Step 4: Calculate potential temperature
print("Step 4: Potential Temperature")
result = await client.session.call_tool(
    "atm_calc_potential_temperature",
    arguments={
        "temperature_k": 288.15,     # K (15°C)
        "pressure_pa": 85000.0       # Pa (850 hPa)
    }
)
result_data = client.parse_result(result)
print(f"Temperature: 288.15 K, Pressure: 850 hPa")
print(f"Potential temperature: {result_data} K\n")

## Step 5: Calculate dewpoint
print("Step 5: Dewpoint Temperature")
result = await client.session.call_tool(
    "atm_calc_dewpoint",
    arguments={
        "temperature_c": 25.0,       # °C
        "relative_humidity": 60.0    # %
    }
)
result_data = client.parse_result(result)
print(f"Temperature: 25°C, Humidity: 60%")
print(f"Dewpoint: {result_data}°C\n")

## Step 6: Check for heatwave conditions
print("Step 6: Heatwave Detection")
temperatures = [32, 34, 35, 36, 35, 34]  # °C over 6 days
result = await client.session.call_tool(
    "atm_check_heatwave",
    arguments={
        "temperatures": temperatures,
        "threshold": 32.0,           # °C
        "min_duration": 3            # days
    }
)
result_data = client.parse_result(result)
print(f"Temperatures: {temperatures}°C")
print(f"Heatwave detected: {result_data}\n")

await client.disconnect()
```

### Tool Descriptions

**AtmSci-Tool Server:**

- `atm_calc_coriolis_parameter`: Calculate Coriolis parameter (f = 2Ω sin φ)
  - Args: `latitude` (float) - Latitude in degrees
  - Returns: Coriolis parameter in s⁻¹

- `atm_calc_geostrophic_wind`: Calculate geostrophic wind from pressure gradient
  - Args: `pressure_gradient_x`, `pressure_gradient_y` (Pa/m), `latitude` (deg), `air_density` (kg/m³)
  - Returns: Wind components (u, v) in m/s

- `atm_calc_heat_index`: Calculate heat index (apparent temperature)
  - Args: `temperature_f` (°F), `relative_humidity` (%)
  - Returns: Heat index in °F

- `atm_calc_potential_temperature`: Calculate potential temperature
  - Args: `temperature_k` (K), `pressure_pa` (Pa)
  - Returns: Potential temperature in K

- `atm_calc_dewpoint`: Calculate dewpoint temperature
  - Args: `temperature_c` (°C), `relative_humidity` (%)
  - Returns: Dewpoint temperature in °C

- `atm_check_heatwave`: Detect heatwave conditions
  - Args: `temperatures` (list), `threshold` (°C), `min_duration` (days)
  - Returns: Boolean indicating heatwave presence

### Input/Output

**Inputs:**
- Temperatures in K, °C, or °F (as specified)
- Pressures in Pa or hPa
- Relative humidity in %
- Latitude in degrees
- Air density in kg/m³

**Outputs:**
- Coriolis parameter: s⁻¹
- Wind speeds: m/s
- Temperatures: K, °C, or °F
- Boolean flags for conditions

### Use Cases

- Weather forecasting and analysis
- Climate model validation
- Heat stress assessment for public health
- Aviation meteorology
- Agricultural meteorology
- Renewable energy site assessment
- Atmospheric research

### Physical Interpretations

**Coriolis Parameter:**
- Positive in Northern Hemisphere, negative in Southern
- Zero at equator, maximum at poles
- Critical for large-scale atmospheric circulation

**Geostrophic Wind:**
- Theoretical wind resulting from pressure gradient force and Coriolis effect
- Valid above atmospheric boundary layer
- Actual winds deviate due to friction and other forces

**Heat Index:**
- >80°F: Caution (fatigue possible)
- >90°F: Extreme caution (heat exhaustion possible)
- >103°F: Danger (heat stroke likely)
- >125°F: Extreme danger

**Potential Temperature:**
- Temperature air parcel would have if brought adiabatically to reference pressure (1000 hPa)
- Conserved for adiabatic processes
- Used to identify air masses and atmospheric stability

**Dewpoint:**
- Temperature at which air becomes saturated
- Higher dewpoint = more moisture
- Dewpoint > 65°F feels humid
- Dewpoint depression (T - Td) indicates saturation level

### Additional Atmospheric Tools

- `atm_calc_standard_atmosphere`: Calculate standard atmosphere properties
- `generate_synthetic_sounding`: Create atmospheric sounding profiles
- `workflow_storm_diagnosis`: Analyze storm conditions
- `workflow_wind_site_assessment`: Assess wind energy potential
- `geo_calc_distance`: Calculate geographic distances
- `stats_calc_anomaly`: Calculate climate anomalies
- `stats_calc_rolling_mean`: Compute running averages
- `stats_linear_trend`: Determine climate trends

Related Skills

wind-site-assessment

370
from SpectrAI-Initiative/InnoClaw

Assess wind energy potential and perform site analysis using atmospheric science calculations.

web_literature_mining

370
from SpectrAI-Initiative/InnoClaw

Scientific Literature Mining - Mine scientific literature: PubMed search, arXiv search, web search, and Tavily deep search. Use this skill for scientific informatics tasks involving pubmed search search literature search web tavily search. Combines 4 tools from 2 SCP server(s).

virus_genomics

370
from SpectrAI-Initiative/InnoClaw

Virus Genomics Analysis - Analyze virus genomics: NCBI virus dataset, annotation, taxonomy, and literature search. Use this skill for virology tasks involving get virus dataset report get virus annotation report get taxonomy search literature. Combines 4 tools from 2 SCP server(s).

virtual_screening

370
from SpectrAI-Initiative/InnoClaw

Virtual Screening Pipeline - Virtual screening: search PubChem by substructure, compute similarity, filter by drug-likeness, and predict binding affinity. Use this skill for drug discovery tasks involving search pubchem by smiles calculate smiles similarity calculate mol drug chemistry boltz binding affinity. Combines 4 tools from 3 SCP server(s).

variant_pathogenicity

370
from SpectrAI-Initiative/InnoClaw

Variant Pathogenicity Assessment - Assess variant pathogenicity: Ensembl VEP prediction, ClinVar lookup, variation details, and gene phenotype associations. Use this skill for clinical genetics tasks involving get vep hgvs clinvar search get variation get phenotype gene. Combines 4 tools from 2 SCP server(s).

variant-population-frequency

370
from SpectrAI-Initiative/InnoClaw

Query gnomAD for variant allele frequency across populations. Uses FAVOR to convert rsID→variant_id first, then queries gnomAD.

variant-pharmacogenomics

370
from SpectrAI-Initiative/InnoClaw

Query PharmGKB (clinPGx) for pharmacogenomic clinical annotations — how a variant affects drug response, dosing, and adverse reactions.

variant-gwas-associations

370
from SpectrAI-Initiative/InnoClaw

Query EBI GWAS Catalog for GWAS statistical associations (p-value, effect size, risk allele) between a variant and traits/diseases.

variant-genomic-location

370
from SpectrAI-Initiative/InnoClaw

Query dbSNP + NCBI Gene to get variant genomic position (chromosome, coordinates, ref/alt alleles, mutation type) and associated gene coordinates.

variant-functional-prediction

370
from SpectrAI-Initiative/InnoClaw

Query FAVOR API for variant functional prediction scores (CADD, SIFT, PolyPhen, REVEL, etc.) and gene annotation.

variant-cross-database-ids

370
from SpectrAI-Initiative/InnoClaw

Query ClinGen Allele Registry to map variant rsID to identifiers in other databases (ClinVar, gnomAD, COSMIC, UniProtKB, OMIM, etc.).

variant-clinical-significance

370
from SpectrAI-Initiative/InnoClaw

Query NCBI ClinVar for variant clinical pathogenicity classification (Pathogenic/Benign/VUS), review status and associated diseases.