Scikit Gstat
by SteadfastAsArt
|
Skill Details
Repository Files
4 files in this skill directory
name: scikit-gstat description: | Geostatistical analysis with scikit-learn style API. Compute variograms, kriging interpolation, and spatial correlation analysis. Use when Claude needs to: (1) Compute experimental variograms from spatial data, (2) Fit variogram models (spherical, exponential, gaussian, matern), (3) Perform Ordinary or Universal Kriging interpolation, (4) Assess spatial anisotropy with directional variograms, (5) Cross-validate spatial models, (6) Analyze spatio-temporal data, (7) Export variogram parameters for other geostatistical software.
SciKit-GStat - Geostatistics
Quick Reference
import skgstat as skg
import numpy as np
# Create variogram
V = skg.Variogram(coordinates=coords, values=values, n_lags=15)
# Fit model
V.model = 'spherical'
print(f"Range: {V.parameters[0]:.2f}, Sill: {V.parameters[1]:.2f}")
# Kriging interpolation
ok = skg.OrdinaryKriging(V)
predictions = ok.transform(grid_coords)
Key Classes
| Class | Purpose |
|---|---|
Variogram |
Empirical and theoretical variograms |
OrdinaryKriging |
Interpolation with spatial correlation |
DirectionalVariogram |
Anisotropic variograms |
SpaceTimeVariogram |
Spatio-temporal analysis |
Essential Operations
Create and Fit Variogram
import skgstat as skg
V = skg.Variogram(
coordinates=coords, # (n, 2) array of x, y
values=values, # (n,) array of measurements
n_lags=15,
maxlag='median' # or specific distance
)
# Fit model: 'spherical', 'exponential', 'gaussian', 'matern', 'stable'
V.model = 'spherical'
# Get parameters
print(f"Range: {V.parameters[0]:.2f}")
print(f"Sill: {V.parameters[1]:.2f}")
print(f"Nugget: {V.parameters[2]:.2f}")
print(f"RMSE: {V.rmse:.4f}")
Ordinary Kriging
import skgstat as skg
import numpy as np
V = skg.Variogram(coords, values, model='spherical')
ok = skg.OrdinaryKriging(V)
# Create prediction grid
x = np.linspace(0, 100, 50)
y = np.linspace(0, 100, 50)
xx, yy = np.meshgrid(x, y)
grid_coords = np.column_stack([xx.ravel(), yy.ravel()])
# Predict
predictions = ok.transform(grid_coords)
Z = predictions.reshape(xx.shape)
# Get variance
ok.return_variance = True
predictions, variance = ok.transform(grid_coords)
Directional Variogram
import skgstat as skg
DV = skg.DirectionalVariogram(
coordinates=coords,
values=values,
azimuth=45, # Direction in degrees
tolerance=22.5, # Angular tolerance
bandwidth='q33' # Perpendicular bandwidth
)
# Check anisotropy
for az in [0, 45, 90, 135]:
DV.azimuth = az
print(f"Azimuth {az}: Range = {DV.parameters[0]:.2f}")
Cross-Validation
import skgstat as skg
from sklearn.model_selection import cross_val_score
V = skg.Variogram(coords, values, model='spherical')
ok = skg.OrdinaryKriging(V)
scores = cross_val_score(ok, coords, values, cv=5, scoring='neg_mean_squared_error')
print(f"CV RMSE: {np.sqrt(-scores.mean()):.4f}")
Robust Estimators
import skgstat as skg
# Use robust estimator for noisy data
V = skg.Variogram(
coords, values,
estimator='cressie' # 'matheron', 'cressie', 'dowd', 'genton'
)
Quick Model Reference
| Model | Behavior |
|---|---|
spherical |
Most common, linear near origin |
exponential |
Never reaches sill, gradual approach |
gaussian |
Parabolic near origin, smooth |
matern |
Flexible smoothness control |
Tips
- Maxlag should be ~50% of study area diagonal
- Use robust estimators (cressie, dowd) with noisy data
- Test multiple models and compare RMSE
- Check anisotropy with directional variograms before kriging
References
- Variogram Models - Model equations and parameters
- Kriging Methods - Kriging types and configuration
Scripts
- scripts/variogram_analysis.py - Complete variogram analysis workflow
Related Skills
Attack Tree Construction
Build comprehensive attack trees to visualize threat paths. Use when mapping attack scenarios, identifying defense gaps, or communicating security risks to stakeholders.
Grafana Dashboards
Create and manage production Grafana dashboards for real-time visualization of system and application metrics. Use when building monitoring dashboards, visualizing metrics, or creating operational observability interfaces.
Matplotlib
Foundational plotting library. Create line plots, scatter, bar, histograms, heatmaps, 3D, subplots, export PNG/PDF/SVG, for scientific visualization and publication figures.
Scientific Visualization
Create publication figures with matplotlib/seaborn/plotly. Multi-panel layouts, error bars, significance markers, colorblind-safe, export PDF/EPS/TIFF, for journal-ready scientific plots.
Seaborn
Statistical visualization. Scatter, box, violin, heatmaps, pair plots, regression, correlation matrices, KDE, faceted plots, for exploratory analysis and publication figures.
Shap
Model interpretability and explainability using SHAP (SHapley Additive exPlanations). Use this skill when explaining machine learning model predictions, computing feature importance, generating SHAP plots (waterfall, beeswarm, bar, scatter, force, heatmap), debugging models, analyzing model bias or fairness, comparing models, or implementing explainable AI. Works with tree-based models (XGBoost, LightGBM, Random Forest), deep learning (TensorFlow, PyTorch), linear models, and any black-box model
Pydeseq2
Differential gene expression analysis (Python DESeq2). Identify DE genes from bulk RNA-seq counts, Wald tests, FDR correction, volcano/MA plots, for RNA-seq analysis.
Query Writing
For writing and executing SQL queries - from simple single-table queries to complex multi-table JOINs and aggregations
Pydeseq2
Differential gene expression analysis (Python DESeq2). Identify DE genes from bulk RNA-seq counts, Wald tests, FDR correction, volcano/MA plots, for RNA-seq analysis.
Scientific Visualization
Meta-skill for publication-ready figures. Use when creating journal submission figures requiring multi-panel layouts, significance annotations, error bars, colorblind-safe palettes, and specific journal formatting (Nature, Science, Cell). Orchestrates matplotlib/seaborn/plotly with publication styles. For quick exploration use seaborn or plotly directly.
