Skip to content

Documents · Verb reference

synchrony_surface_diagnostics

Describe structure in one local synchrony surface.

Callable type: Grammar verb / pipe stage · Browse: Synchrony and comparison

Usage

from cubedynamics import verbs as v
v.synchrony_surface_diagnostics(*, metric='delta_s', radial_bin_width_km=5.0, angular_bin_width_degrees=15.0, min_count=3)

Arguments

Argument Meaning Default
metric Surface variable to describe: cold_synchrony, warm_synchrony, or delta_s. 'delta_s'
radial_bin_width_km Width of fine radial-profile bins. 5.0
angular_bin_width_degrees Width of bearing sectors; must divide 360 degrees. 15.0
min_count Minimum valid values required for a radial or angular bin. 3

Accepts

One Dataset produced by v.local_synchrony_surface(...).

Returns

Experimental radial spread, radially adjusted directional profiles, harmonic anisotropy, half-plane contrast, candidate-scale censoring, low-order 2-D reconstruction, and residual-complexity diagnostics.

Order / grammar behavior

Compare candidates against the full surface before adopting a compact signature. Near-limit scales remain right-censored or unresolved.

Minimal example

Run from the repository root after python -m pip install -e '.[vignettes]'. Uses the checked observational PRISM fixture; no network is required.

from pathlib import Path
import xarray as xr
import matplotlib.pyplot as plt
from cubedynamics import pipe, verbs as v

# Frozen, reviewed PRISM observations; run from the repository root.
path = Path("tests/fixtures/real_data/prism_boulder_january_2024.nc")
with xr.open_dataset(path, engine="scipy") as observed:
    cube = observed["tmax"].load()
assert cube.attrs["units"] == "degC"

with xr.open_dataset(path, engine="scipy") as observed:
    temperature = observed[["tmin", "tmax"]].isel(y=slice(0, 12), x=slice(0, 12)).load()
pairs = (pipe(temperature) | v.local_synchrony_pairs(lower_var="tmin", upper_var="tmax", max_radius_km=30, window_days=30, min_t=3)).unwrap()
surface = (pipe(pairs) | v.local_synchrony_surface(focal_y_index=5, focal_x_index=5)).unwrap()
result = (pipe(surface) | v.synchrony_surface_diagnostics(radial_bin_width_km=5, angular_bin_width_degrees=30, min_count=2)).unwrap()
result["radial_profile"].plot(x="radius_km")
plt.show()

Works with

One Dataset produced by v.local_synchrony_surface(...).

See also

Implementation notes

Radial, directional, harmonic, anisotropy, half-plane, low-order reconstruction, and residual-complexity outputs are experimental descriptors. They are not a finalized signature or climate classification.

Implementation source. Signatures and descriptions on this page are generated from this checkout, not hand-maintained copies.