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
- Host: GitHub
- URL: https://github.com/qianyesu/skyborn
- Owner: QianyeSu
- License: bsd-3-clause
- Created: 2024-08-02T15:34:16.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-04-08T16:09:27.000Z (11 days ago)
- Last Synced: 2026-04-11T10:05:45.096Z (8 days ago)
- Topics: atmospheric-science, climate, climate-change, meteorology, meteorology-library, physics, python, statistical-analysis
- Language: Fortran
- Homepage: https://skyborn.readthedocs.io/en/latest/
- Size: 72.6 MB
- Stars: 45
- Watchers: 3
- Forks: 5
- Open Issues: 5
- Releases: 19
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Zenodo: .zenodo.json
README.md
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:

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:

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:

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.

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_vectorAPI - Projection-Aware Rendering: Supports global rendering with different
central_longitudesettings and Cartopy projections
Skyborn curly_vector also supports vertical cross-section rendering, for example latitude-pressure plots using meridional wind and scaled omega:

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:

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:

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

Accuracy Validation:
- Correlation coefficient > 0.99 with reference implementations
- RMSE < 1% for both VMAX and PMIN calculations

📖 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
- Name: Qianye Su
- Login: QianyeSu
- Email:
- Kind: user
- Description: After three days without programming, life becomes meaningless
- Website:
- Location: Zhanjiang, China
- Twitter:
- Company: Guangdong Ocean University
- Icon url: https://avatars.githubusercontent.com/u/112712604?u=313e58adce093f7592ba2dd1bb1da58439fc6c87&v=4
- Repositories: 1
- Last ynced at: 2026-01-29T05:30:56.843Z
- Profile URL: https://github.com/QianyeSu
GitHub Events
Total
- Release event: 5
- Delete event: 10
- Pull request event: 37
- Fork event: 2
- Watch event: 21
- Issue comment event: 6
- Push event: 326
- Pull request review event: 2
- Create event: 14
Last Year
- Release event: 5
- Delete event: 10
- Pull request event: 37
- Fork event: 2
- Watch event: 21
- Issue comment event: 6
- Push event: 326
- Pull request review event: 2
- Create event: 14
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 | 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:
- qq.com: 2
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
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
- Total packages: 1
-
Total downloads:
- pypi: 2,987 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 23
- Total maintainers: 1
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