Skyborn

A comprehensive Python package for climate data analysis, featuring advanced statistical methods, emergent constraint techniques, and data conversion utilities.
https://github.com/qianyesu/skyborn

Category: Climate Change
Sub Category: Climate Data Processing and Analysis

Keywords

atmospheric-science climate climate-change meteorology meteorology-library physics python statistical-analysis

Last synced: about 23 hours ago
JSON representation

Repository metadata

Climate & Atmospheric Science Python Toolkit

README.md

PyPI version
PyPI - Python Version
PyPI - Downloads
codecov
License
Tests
Platform
Code style
Build Status
Documentation
DOI

System Requirements

Operating System: 🖥️ Cross-Platform

This package supports Windows, Linux, and macOS. However, it has been primarily developed and tested on Windows.

Note: While the package can be installed on different platforms, some Windows-specific features may not work on other operating systems.

Installation

To install the Skyborn package, you can use pip:

pip install skyborn

or

pip install -U --index-url https://pypi.org/simple/ skyborn

📚 Documentation

Full documentation is available at: Documentation

🎯 Key Features & Submodules

📊 Spatial Trend Analysis & Climate Index Regression

Skyborn provides ultra-fast spatial trend calculation and climate index regression analysis for atmospheric data:

Precipitation Trends Comparison

Key Capabilities:

  • High-Speed Spatial Trends: Calculate long-term climate trends across global grids

    • Linear trend analysis for temperature, precipitation, and other variables
    • Statistical significance testing
    • Vectorized operations for massive datasets
  • Climate Index Regression: Rapid correlation and regression analysis with climate indices

    • NINO 3.4, PDO, NAO, AMO index integration
    • Pattern correlation analysis
    • Teleconnection mapping

Other Applications:

  • Climate change signal detection
  • Decadal variability analysis
  • Teleconnection pattern identification
  • Regional climate impact assessment

🌍 Skyborn Windspharm Submodule - Atmospheric Analysis

The Skyborn windspharm submodule provides powerful tools for analyzing global wind patterns through streamfunction and velocity potential calculations:

Streamfunction and Velocity Potential

Key Capabilities:

  • Streamfunction Analysis: Identifies rotational (non-divergent) wind components

    • Visualizes atmospheric circulation patterns
    • Reveals jet streams and vortices
    • Essential for understanding weather systems
  • Velocity Potential Analysis: Captures divergent wind components

    • Shows areas of convergence and divergence
    • Critical for tropical meteorology
    • Identifies monsoon circulation patterns

Applications:

  • Climate dynamics research
  • Weather pattern analysis
  • Atmospheric wave propagation studies
  • Tropical cyclone formation analysis

🔧 Skyborn Gridfill Submodule - Data Interpolation

The Skyborn gridfill submodule provides advanced interpolation techniques for filling missing data in atmospheric and climate datasets:

Gridfill Missing Data Interpolation

Key Features:

  • Poisson-based Interpolation: Physically consistent gap filling
  • Preserves Data Patterns: Maintains spatial correlations and gradients
  • Multiple Methods Available:
    • Basic Poisson solver
    • High-precision iterative refinement
    • Zonal initialization options
    • Relaxation parameter tuning

Applications:

  • Satellite data gap filling
  • Model output post-processing
  • Climate data reanalysis
  • Quality control for observational datasets

The example above demonstrates filling gaps in global precipitation data, where the algorithm successfully reconstructs missing values while preserving the underlying meteorological patterns.

Curly Vector Plotting

Skyborn provides an NCL-like curly_vector renderer for atmospheric wind fields while keeping a Matplotlib and Cartopy compatible API.

Curly Vector WRF Example

Key Capabilities:

  • NCL-like Curved Vectors: Curved tails and lighter arrow heads for cleaner large-scale flow visualization
  • Matplotlib-Compatible API: Works with standard axes and Cartopy projections without switching to a separate plotting stack
  • Flexible Inputs: Supports regular lat-lon grids, xarray datasets, and curvilinear grids such as WRF mass-grid wind fields
  • Vertical Cross-Section Support: Supports latitude-pressure and similar vertical profile plots through the same curly_vector API
  • Projection-Aware Rendering: Supports global rendering with different central_longitude settings and Cartopy projections

Skyborn curly_vector also supports vertical cross-section rendering, for example latitude-pressure plots using meridional wind and scaled omega:

Curly Vector Vertical Profile Example

Minimal Example:

import cartopy.crs as ccrs
import matplotlib.pyplot as plt
from skyborn.plot import curly_vector

fig = plt.figure(figsize=(12, 6))
ax = plt.axes(projection=ccrs.Robinson(central_longitude=180))

curly_vector(
    ds,
    x="longitude",
    y="latitude",
    u="u",
    v="v",
    ax=ax,
    transform=ccrs.PlateCarree(),
    density=0.9,
    color="black",
    arrowstyle="->",
    linewidth=1.2,
    arrowsize=1.2,
    zorder=3,
    integration_direction='both',
    ref_magnitude=30.0,
    ref_length=0.1,
)
ax.coastlines()
ax.set_global()

Performance Benchmarks

🚀 Windspharm Performance

The Skyborn windspharm submodule delivers ~25% performance improvement over standard implementations through modernized Fortran code and optimized algorithms:

Windspharm Performance Comparison

Key Performance Metrics:

  • Vorticity Calculation: ~25% faster
  • Divergence Calculation: ~25% faster
  • Helmholtz Decomposition: ~25% faster
  • Streamfunction/Velocity Potential: ~25% faster

⚡ GPI Module Performance

The Genesis Potential Index (GPI) module achieves dramatic speedups through vectorized Fortran implementation and native 3D processing:

GPI Speed Comparison

Performance Highlights:

  • 19-25x faster than point-by-point implementations
  • Processes entire atmospheric grids in seconds
  • Native multi-dimensional support (3D/4D data)

GPI Global Distribution

Accuracy Validation:

  • Correlation coefficient > 0.99 with reference implementations
  • RMSE < 1% for both VMAX and PMIN calculations

GPI Scatter Comparison

📖 Citation

If you use Skyborn in your research, please cite it using the following format:

@software{su2025skyborn,
  author = {Su, Qianye},
  title = {Skyborn: Climate Data Analysis Toolkit},
  year = {2025},
  doi = {10.5281/zenodo.18075252},
  url = {https://doi.org/10.5281/zenodo.18075252}
}

Or in text:

Su, Q. (2025). Skyborn: Climate Data Analysis Toolkit. Zenodo. https://doi.org/10.5281/zenodo.18075252


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 4 days ago

Total Commits: 847
Total Committers: 6
Avg Commits per committer: 141.167
Development Distribution Score (DDS): 0.054

Commits in past year: 817
Committers in past year: 6
Avg Commits per committer in past year: 136.167
Development Distribution Score (DDS) in past year: 0.038

Name Email Commits
Qianye Su 9****5@q****m 801
dependabot[bot] 4****] 22
Qianye Su 1****e 19
Skyborn 1****7@q****m 3
decadeneo 1****o 1
Skyborn 1****e 1

Committer domains:


Issue and Pull Request metadata

Last synced: 12 days ago

Total issues: 1
Total pull requests: 23
Average time to close issues: N/A
Average time to close pull requests: 17 days
Total issue authors: 1
Total pull request authors: 5
Average comments per issue: 0.0
Average comments per pull request: 0.52
Merged pull request: 12
Bot issues: 0
Bot pull requests: 15

Past year issues: 1
Past year pull requests: 23
Past year average time to close issues: N/A
Past year average time to close pull requests: 17 days
Past year issue authors: 1
Past year pull request authors: 5
Past year average comments per issue: 0.0
Past year average comments per pull request: 0.52
Past year merged pull request: 12
Past year bot issues: 0
Past year bot pull requests: 15

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/qianyesu/skyborn

Top Issue Authors

  • sqyyqssqyyqs (1)

Top Pull Request Authors

  • dependabot[bot] (15)
  • sqyyqssqyyqs (3)
  • Copilot (2)
  • decadeneo (2)
  • QianyeSu (1)

Top Issue Labels

  • enhancement (1)

Top Pull Request Labels

  • github_actions (15)
  • dependencies (15)

Package metadata

pypi.org: skyborn

Atmospheric science research utilities

  • Homepage: https://github.com/QianyeSu/Skyborn
  • Documentation: https://skyborn.readthedocs.io/
  • Licenses: BSD-3-Clause
  • Latest release: 0.3.19 (published 12 days ago)
  • Last Synced: 2026-04-15T12:01:24.386Z (4 days ago)
  • Versions: 23
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 2,987 Last month
  • Rankings:
    • Dependent packages count: 9.475%
    • Average: 31.419%
    • Dependent repos count: 53.362%
  • Maintainers (1)

Score: 13.706142020908908