Skip to content

QianyeSu/Skyborn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

883 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Skyborn Logo

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

โšก