Atlas / Skills / brycewang-stanford / Climate Modeling Guide

Climate Modeling GuideSAFE

skills/brycewang-stanford/climate-modeling-guide

🔬 A curated collection of 23,000+ agent skills for empirical research across 8 social science disciplines. | 精选 23,000+ AI Agent 技能库,覆盖8大社会科学学科的实证研究。CoPaper.AI 20分钟完成一篇可复现的规范实证论文,并支持用户上传 Skills。-- Maintained by CoPaper.AI from Stanford REAP.

Verdict
SAFE
Grade
B
Trust score
89 /100
Version
—
Hosts
1 documented
License
NOASSERTION
Stars
4,535
01

Overview

🔬 A curated collection of 23,000+ agent skills for empirical research across 8 social science disciplines. | 精选 23,000+ AI Agent 技能库,覆盖8大社会科学学科的实证研究。CoPaper.AI 20分钟完成一篇可复现的规范实证论文,并支持用户上传 Skills。-- Maintained by CoPaper.AI from Stanford REAP.

Read from source at commit e1ba289846fdOBSERVED · 2026-10-08
02

Host compatibility

What the documentation claims. We have not run a compatibility test.

HostStatusNotes
openclawmentioned
03

What it tells the agent

The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.

---
name: climate-modeling-guide
description: "Climate simulation, modeling tools, and climate data analysis methods"
metadata:
  openclaw:
    emoji: "☁️"
    category: "domains"
    subcategory: "geoscience"
    keywords: ["climate", "modeling", "simulation", "netcdf", "cmip", "atmosphere", "global-warming"]
    source: "wentor"
---

# Climate Modeling Guide

A skill for working with climate models and climate data in research contexts. Covers accessing CMIP archives, processing NetCDF data, running idealized climate simulations, statistical downscaling, and analyzing climate projections with Python tools.

## Climate Data Standards

### NetCDF and CF Conventions

Climate data is stored in NetCDF (Network Common Data Form) files following CF (Climate and Forecast) conventions:

```python
import xarray as xr
import numpy as np

# Open a CMIP6 temperature dataset
ds = xr.open_dataset("tas_Amon_CESM2_ssp585_r1i1p1f1_gn_201501-210012.nc")

print(ds)
# Dimensions:  (time: 1032, lat: 192, lon: 288)
# Variables:   tas (surface air temperature, K)
# Attributes:  CF-1.6 compliant, CMIP6 metadata

# Basic inspection
print(f"Variable: {ds.tas.long_name}")
print(f"Units: {ds.tas.units}")
print(f"Time range: {ds.time.values[0]} to {ds.time.values[-1]}")
print(f"Spatial resolution: {np.diff(ds.lat.values[:2])[0]:.2f} deg")
```

### CMIP6 Data Access

The Coupled Model Intercomparison Project Phase 6 provides standardized multi-model climate projections:

```python
# Using intake-esm to search the CMIP6 catalog
import intake

# Open the Pangeo CMIP6 catalog (cloud-hosted on Google Cloud)
url = "https://storage.googleapis.com/cmip6/pangeo-cmip6.json"
col = intake.open_esm_datastore(url)

# Search for monthly surface temperature under SSP5-8.5
query = col.search(
    experiment_id="ssp585",
    variable_id="tas",
    table_id="Amon",
    source_id=["CESM2", "GFDL-ESM4", "UKESM1-0-LL", "MPI-ESM1-2-HR"],
    member_id="r1i1p1f1",
)
print(f"Found {len(query)} datasets from {query.nunique()['source_id']} models")

# Load as xarray datasets (lazy, Zarr-backed)
dsets = query.to_dataset_dict(zarr_kwargs={"consolidated": True})
```

## Climate Analysis Techniques

### Global Mean Temperature Anomaly

```python
def compute_global_mean_anomaly(ds, baseline_start="1850-01-01",
                                  baseline_end="1900-12-31"):
    """
    Compute area-weighted global mean temperature anomaly
    relative to a baseline period.
    """
    # Area weighting by cosine of latitude
    weights = np.cos(np.deg2rad(ds.lat))
    weights.name = "weights"

    # Weighted global mean time series
    global_mean = ds.tas.weighted(weights).mean(dim=["lat", "lon"])

    # Compute baseline climatology
    baseline = global_mean.sel(time=slice(baseline_start, baseline_end))
    climatology = baseline.groupby("time.month").mean("time")

    # Compute anomalies
    anomaly = global_mean.groupby("time.month") - climatology

    # Annual mean anomaly
    annual_anomaly = anomaly.resample(time="YE").mean()
    return annual_anomaly


def multi_model_ensemble(datasets: dict, baseline_period: tuple):
    """
    Compute multi-model ensemble mean and spread for temperature projections.
    datasets: dict of {model_name: xarray.Dataset}
    Returns ensemble mean and 5th/95th percentile bounds.
    """
    anomalies = []
    for name, ds in datasets.items():
        anom = compute_global_mean_anomaly(ds, *baseline_period)
        anom = anom.assign_coords(model=name)
        anomalies.append(anom)

    ensemble = xr.concat(anomalies, dim="model")
    return {
        "mean": ensemble.mean(dim="model"),
        "p05": ensemble.quantile(0.05, dim="model"),
        "p95": ensemble.quantile(0.95, dim="model"),
    }
```

### Climate Indices

Standard indices used in climate research:

| Index | Full Name | Definition |
|-------|-----------|-----------|
| ENSO (Nino3.4) | El Nino Southern Oscillation | SST anomaly in 5S-5N, 170W-120W |
| NAO | North Atlantic Oscillation | SLP difference Iceland - Azores |
| PDO | Pacific Decadal Oscillation | Leading PC of North Pacific SST |
| AMO | Atlantic Multidecadal Oscillation | Detrended North Atlantic SST |
| IOD | Indian Ocean Dipole | SST difference western - eastern Indian Ocean |

```python
def compute_nino34(sst_dataset, baseline="1991-01-01/2020-12-31"):
    """Compute Nino 3.4 index from SST data."""
    # Select Nino 3.4 region
    nino34_region = sst_dataset.tos.sel(
        lat=slice(-5, 5), lon=slice(190, 240)
    )
    # Area-weighted mean
    weights = np.cos(np.deg2rad(nino34_region.lat))
    nino34_ts = nino34_region.weighted(weights).mean(dim=["lat", "lon"])

    # Remove monthly climatology
    clim = nino34_ts.sel(time=slice(*baseline.split("/"))).groupby("time.month").mean()
    nino34_index = nino34_ts.groupby("time.month") - clim

    # 5-month running mean for standard definition
    nino34_smoothed = nino34_index.rolling(time=5, center=True).mean()
    return nino34_smoothed
```

## Statistical Downscaling

### Bias Correction and Spatial Disaggregation

Global climate models (GCMs) typically have 50-200 km resolution, too coarse for impact studies. Statistical downscaling bridges this gap:

```python
def quantile_mapping(obs: np.ndarray, model_hist: np.ndarray,
                     model_future: np.ndarray, n_quantiles: int = 100):
    """
    Quantile mapping bias correction.
    Maps model quantiles to observed quantiles for bias correction.
    """
    quantiles = np.linspace(0, 1, n_quantiles + 1)
    obs_q = np.quantile(obs, quantiles)
    hist_q = np.quantile(model_hist, quantiles)

    # For each future value, find its quantile in historical distribution
    # then map to corresponding observed quantile
    corrected = np.interp(model_future, hist_q, obs_q)
    return corrected
```

### Downscaling Methods Comparison

| Method | Type | Advantages | Limitations |
|--------|------|-----------|-------------|
| Quantile mapping | Statistical | Simple, preserves dis
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeNA
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
none-observed
Dependencies
pinned
Secrets in source
none-found

Findings (0)

No findings outside the package's declared scope.

Gates applied: no_behavioural_pass.

Audited 2026-10-08 · audit v0.4.1 · source sha e1ba289846fdfull audit observations/trust-audit/skill/brycewang-stanford__climate-modeling-guide.json · Report an issue / request a re-scan
05

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-08e1ba289846fdSAFEB89first audit
06

Questions

What does the Climate Modeling Guide skill do?

🔬 A curated collection of 23,000+ agent skills for empirical research across 8 social science disciplines. | 精选 23,000+ AI Agent 技能库,覆盖8大社会科学学科的实证研究。CoPaper.AI 20分钟完成一篇可复现的规范实证论文,并支持用户上传 Skills。-- Maintained by CoPaper.AI from Stanford REAP.

Is Climate Modeling Guide safe to install?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.

What can Climate Modeling Guide access on my machine?

The audit observed no filesystem, network or shell use at all in its source.

Which assistants does Climate Modeling Guide work with?

Its documentation mentions openclaw. That is what the text claims, not a compatibility test we ran.

How current is this page?

The grade is for one exact copy of the source (e1ba289846fd), read on 2026-10-08. The repository is watched, and a new audit runs when it changes — this is the first audit.

Advertisement