└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # awesome-atmos 2 | A curated list of awesome Python libraries, software and resources in Atmosphere, Environment and Machine Learning 3 | 4 | Inspired by [awesome-python](https://github.com/vinta/awesome-python) 5 | 6 | * Awesome Atmosphere 7 | * Numerical Model 8 | * Data Assimilation 9 | * Radar 10 | * Satellite 11 | * Calculating Index 12 | * Data Processing/Analysis 13 | * Machine Learning 14 | * Visualization 15 | * Resources 16 | 17 | --- 18 | 19 | ## Numerical Model 20 | * [wrf-python](https://wrf-python.readthedocs.io/en/latest/): WRF results postprocessing 21 | * [CAMxtools](https://github.com/jaegunjung/CAMxtools): CAMx and CMAQ results postprocessing 22 | * [salem](https://salem.readthedocs.io/en/latest/): Model results post-processing, including WRF pre/post processing 23 | * [geos2cmaq](https://github.com/barronh/geos2cmaq): Map GEOS-Chem results to CMAQ boundary condition 24 | * [ingest_cm1](https://github.com/cwebster2/ingest_cm1): A Fortran library to read CM1 output files 25 | * [CESM_postprocessing](https://github.com/NCAR/CESM_postprocessing): Project repository for the CESM python based post-processing code, documentation and issues tracking. 26 | * [SuPy](https://github.com/sunt05/SuPy): a Python-enhanced urban climate model with [SUEWS](https://github.com/Urban-Meteorology-Reading/SUEWS) as its computation core. 27 | * [xskillscore](https://github.com/raybellwaves/xskillscore): xskillscore is an open source project and Python package that provides verification metrics of deterministic (and probabilistic from properscoring) forecasts with xarray. 28 | * [climpred](https://climpred.readthedocs.io/): An xarray wrapper for analysis of ensemble forecast models for climate prediction. 29 | * [esmlab](https://esmlab.readthedocs.io/): Tools for working with earth system multi-model analyses with xarray. 30 | * [pysplit](https://github.com/mscross/pysplit): A package for HYSPLIT air parcel trajectory analysis. 31 | * [MET](https://github.com/NCAR/MET): Model Evaluation Tools 32 | * [MONET](https://github.com/noaa-oar-arl/MONET): The Model and Observation Evaluation Toolkit (MONET). Currently, it handles CMAQ 4.7.1+, EPA AQS surface data, EPA AirNow, and the IMPROVE Aerosol data network. Current effort is being added to add in the ASOS network, the Climate Reference Network, sonde data and more. It will compute statistics, make time series, spatial and scatter plots, and more! 33 | 34 | ## Data Assimilation 35 | * [DAPPER](https://github.com/nansencenter/DAPPER): Data Assimilation with Python: a Package for Experimental Research (DAPPER). DAPPER enables the numerical investigation of DA methods through a variety of typical test cases and statistics. 36 | * [pyWRFDART](https://github.com/lmadaus/pyWRFDART): A collection of Python scripts for running WRF with the DART data assimilation system 37 | * [PSU_WRF_EnKF](https://github.com/myying/PSU_WRF_EnKF): PSU WRF Ensemble-Variational Data Assimilation System 38 | 39 | ## Radar 40 | * [PyART](https://github.com/ARM-DOE/pyart): A data model driven interactive toolkit for working with weather radar data. 41 | * [wradlib](https://wradlib.org/): An open source library for weather radar data processing. 42 | * [DualPol](https://github.com/nasa/DualPol): Python Interface to Dual-Pol Radar Algorithms. 43 | * [SingleDop](https://github.com/nasa/DualPol): Single Doppler Retrieval Toolkit. 44 | * [ARTView](https://github.com/nguy/artview): Interactive radar viewing browser. 45 | * [PyCINRAD](https://github.com/CyanideCN/PyCINRAD):Decode CINRAD radar data and visualize. 46 | * [pyrad](https://github.com/meteoswiss-mdr/pyrad): Pyrad is a real-time data processing framework developed by MeteoSwiss. 47 | * [PyCWR](https://github.com/YvZheng/pycwr): The China Weather Radar Toolkit, support most of China's radar formats(WSR98D, CINRAD/SA/SB/CB, CINRAD/CC/CCJ, CINRAD/SC/CD) 48 | 49 | ## Satellite 50 | * [satpy](https://github.com/pytroll/satpy): For Multiple sattlelite data product 51 | * [PyCAMA](https://dev.knmi.nl/projects/pycama): For TROPOMI Sentinel-5P Level2 product 52 | * [pys5p](https://github.com/rmvanhees/pys5p): For TROPOMI Sentinel-5P Level1B product 53 | * [pyresample](https://pyresample.readthedocs.io/en/latest/): resample sattlelite image 54 | * [TorchSat](https://github.com/sshuair/torchsat):TorchSat is an open-source deep learning framework for satellite imagery analysis based on PyTorch. 55 | 56 | ## Calculating Index 57 | * [Metpy](https://unidata.github.io/MetPy/latest/index.html): To calculate many of atmos index 58 | * [Sharppy](https://github.com/sharppy/SHARPpy): Sounding/Hodograph Analysis and Research Program 59 | * [atmos](https://github.com/atmos-python/atmos): An atmospheric sciences library for Python 60 | * [GeoCAT-comp](https://github.com/NCAR/geocat-comp): GeoCAT-comp is the computational component of the GeoCAT project. GeoCAT-comp wraps NCL's non-WRF Fortran routines into Python. 61 | 62 | ## Data Processing/Anslysis 63 | * [siphon](https://unidata.github.io/siphon/latest/index.html): Siphon is a collection of Python utilities for downloading data from remote data services 64 | * [cfgrib](https://github.com/ecmwf/cfgrib): processing grib format file 65 | * [h5netcdf](https://github.com/shoyer/h5netcdf): Pythonic interface to netCDF4 via h5py 66 | * [PseudoNetcdf](https://github.com/barronh/pseudonetcdf): PseudoNetCDF like NetCDF except for many scientific format backends 67 | * [netcdf4-python](https://github.com/Unidata/netcdf4-python): python/numpy interface to the netCDF C library 68 | * [xarray](http://xarray.pydata.org/en/stable/): N-D labeled arrays and datasets in Python 69 | * [iris](https://scitools.org.uk/iris/docs/v1.9.0/html/index.html): in- memory manipulation of labeled arrays supported by the UK Met office 70 | * [PyNio](https://github.com/NCAR/pynio): PyNIO is a multi-format data I/O package with a NetCDF-style interface 71 | * [xESMF](https://github.com/JiaweiZhuang/xESMF): Universal Regridder for Geospatial Data 72 | * [esmlab-regrid](https://github.com/NCAR/esmlab-regrid): a lightweight library for regridding in Python. 73 | * [geopandas](https://github.com/geopandas/geopandas): Python tools for geographic data 74 | * [Pandas](https://pandas.pydata.org/):Data structures and computational tools for working with tabular datasets 75 | * [PySAL](https://github.com/pysal/PySAL): Python spatial analysis library 76 | * [cdat](https://github.com/CDAT/cdat): Community Data Analysis Tools 77 | * [aospy](https://github.com/spencerahill/aospy): Python package for automated analysis and management of gridded climate data 78 | * [climlab](https://climlab.readthedocs.io/en/latest/):Process-oriented climate modeling 79 | * [CDMS](https://cdms.readthedocs.io/en/latest/index.html):Python Object-oriented data management system for multidimensional, gridded data used in climate analysis and simulation 80 | * [eof2](https://github.com/ajdawson/eof2):EOF analysis in Python 81 | * [statsmodels](http://www.statsmodels.org/devel/):statsmodels is a Python module that provides classes and functions for the estimation of many different statistical models 82 | * [Pysteps](https://pysteps.readthedocs.io/en/latest/auto_examples/index.html):an open-source Python library for probabilistic precipitation nowcasting 83 | * [QGIS](https://qgis.org/):C++ GIS platform to visualize, manage, edit, analyse data, and compose printable maps 84 | * [pyproj](https://github.com/pyproj4/pyproj):Python interface to PROJ (cartographic projections and coordinate transformations library). 85 | * [DASK](https://dask.org/): advanced parallelism for analytics, enabling performance at scale for the tools you love. 86 | * [tobac](https://github.com/climate-processes/tobac): tobac is a Python package for identifiying, tracking and analysing of clouds in different types of gridded datasets, i.e. 3D model output from cloud resolving model simulations or 2D data of satellite observations. 87 | 88 | ## Machine Learning 89 | * [hageleslag](https://github.com/djgagne/hagelslag): Hagelslag is an object-based severe storm hazard forecasting system 90 | * [IDEA Lab](http://www.mcgovern-fagg.org/idea/index.html): Research in data science and applied artificial intelligence/machine learning with a focus on high-impact real-world applications 91 | * [EarthML](https://github.com/pyviz-topics/EarthML): Tools for working with machine learning in earth science 92 | * [sklearn](https://scikit-learn.org/stable/index.html): A Python module for machine learning built on top of SciPy. 93 | * [keras](https://github.com/keras-team/keras) - High-level neural networks frontend for [TensorFlow](https://github.com/tensorflow/tensorflow), [CNTK](https://github.com/Microsoft/CNTK) and [Theano](https://github.com/Theano/Theano). 94 | * [TensorFlow](https://github.com/tensorflow/tensorflow/) - Open source software library for numerical computation using data flow graphs. 95 | * [PyTorch](https://github.com/pytorch/pytorch) - Tensors and Dynamic neural networks in Python with strong GPU acceleration 96 | * [MXNet](https://github.com/apache/incubator-mxnet) - Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Go, Javascript and more. 97 | * [XGBoost](https://github.com/dmlc/xgboost) - A parallelized optimized general purpose gradient boosting library. 98 | * [CatBoost](https://github.com/catboost/catboost) - General purpose gradient boosting on decision trees library with categorical features support out of the box for R. 99 | * [LightGBM](https://github.com/Microsoft/LightGBM) - Microsoft's fast, distributed, high performance gradient boosting (GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks. 100 | * [hur-detect](https://github.com/eracah/hur-detect): Deep Semi-Supervised Object Detection for Extreme Weather Events. 101 | * [pyod](https://github.com/yzhao062/pyod): A Python Toolbox for Scalable Outlier Detection (Anomaly Detection) 102 | 103 | ## Visualization 104 | * [matplotlib](https://github.com/matplotlib/matplotlib): plotting with Python 105 | * [PyNGL](https://github.com/NCAR/pyngl): PyNGL ("pingle") is a Python module built on top of NCL's graphics library. 106 | * [Seaborn](https://github.com/mwaskom/seaborn): Statistical data visualization using matplotlib 107 | * [Basemap](https://matplotlib.org/basemap/): Plot on map projections (with coastlines and political boundaries) using matplotlib. 108 | * [Cartopy](https://scitools.org.uk/cartopy/docs/latest/): Cartopy is a Python package designed to make drawing maps for data analysis and visualisation easy. 109 | * [cmaps](https://github.com/hhuangwx/cmaps):Make it easier to use user defined colormaps in matplotlib.Default colormaps are from [NCL](http://www.ncl.ucar.edu/Document/Graphics/color_table_gallery.shtml) website. 110 | * [holoviews](https://github.com/pyviz/holoviews): make data analysis and visualization seamless and simple 111 | * [earth wind map](https://github.com/cambecc/earth): a project to visualize global weather conditions [http://earth.nullschool.net](http://earth.nullschool.net/) 112 | 113 | --- 114 | 115 | ## Resources 116 | * [pangeo](https://pangeo.io/): A community platform for Big Data geoscience 117 | * [ECCO](https://ecco-v4-python-tutorial.readthedocs.io/index.html): global ocean and sea-ice state estimate tutorial. 118 | * [NMC-WFT](https://github.com/nmcdev): The R & D Center for Weather Forecasting Technology in NMC, CMA 119 | * [Python & Practical Application on Climate Variability Studies](https://github.com/royalosyin/Python-Practical-Application-on-Climate-Variability-Studies): Main objective of this tutorial is the transference of know-how in practical applications and management of statistical tools commonly used to explore meteorological time series, focusing on applications to study issues related with the climate variability and climate change. 120 | * [Python for Climate and Meteorological Data Analysis and Visualisation](https://github.com/nicolasfauchereau/Auckland_Python_Workshop): Python for Climate and Meteorological Data Analysis and Visualisation. 121 | * [Example notebooks showing how to work with ECMWF services and data](https://github.com/ecmwf/notebook-examples) 122 | 123 | --------------------------------------------------------------------------------