Skip to article frontmatterSkip to article content
Your First Python Tutorial
A tutorial for getting started with Python aimed at scientists with experience in at least one other coding language. Designed to teach you Python, not package specific syntax.
pure pythontutorialpythiaxdev
Unidata Python Training
Introduction to Python for Atmospheric Science and Meteorology. Unidata is working to create a collection of online training materials focused on the use of Python in the atmospheric sciences. While our examples and scenarios may feature Unidata tools and data technologies, our aim is to present a generic set of freely available tools that are generally useful to scientists, educators, and students in the geosciences, broadly defined.
courseunidata
Unidata Python Workshop - Jupyter Notebooks Introduction
Jupyter notebooks are a great way to have code, output, images, video, and other information in one place. Notebooks are an ideal tool for the student, research scientist, and even software developer. In this lesson we will go over the basic features of Jupyter notebooks and how to use them.
jupyterunidata
An Introduction to Earth and Environmental Data Science
This book grew out of a course developed at Columbia University called Research Computing in Earth Science. It was written mostly by Ryan Abernathey, with significant contributions from Kerry Key. By separating the book from the class, we hope to create an open-source community resource for python education in the Earth and Environmental Sciences.
coursepangeo
The Climate Laboratory
A hands on approach to climate physics and climate modeling. Fundamental climate processes are introduced through interactive and reproducible Python-based modeling exercises. This JupyterBook serves as a course textbook at the University of Albany.
coursebookclimate scienceatmospheric scienceclimlab
Earth Analytics Python Course
Earth analytics is an intermediate, multidisciplinary course that addresses major questions in Earth science and teaches students to use the analytical tools necessary to undertake exploration of heterogeneous ‘big scientific data’. This course is designed for graduate students and students participating in the Earth Data Analytics Professional Certificate.
course
Earth Data Science
This site contains open, tutorials and course materials covering topics including data integration, GIS and data intensive science.
course
Geohackweek 2019
Geohackweek is a 5-day hackweek to be held at the University of Washington eScience Institute. Tutorials from the hackweek are available for everyone to follow (participants and non-participants alike).
course
Research Software Engineering with Python
We believe every researcher should know how to write short programs that clean and analyze data in a reproducible way and how to use version control to keep track of what they have done. But just as some astronomers spend their careers designing telescopes, some researchers focus on building the software that makes research possible. People who do this are called research software engineers; the aim of this book is to get you ready for this role by helping you go from writing code for yourself to creating tools that help your entire field advance.
course
Data Analysis with Python- Zero to Pandas
"Data Analysis with Python: Zero to Pandas" is a practical and beginner-friendly introduction to data analysis covering the basics of Python, Numpy, Pandas, Data Visualization, and Exploratory Data Analysis.
course
MTH271- Mathematical Computing with Data
In this course, we will have multiple occasions to procure, analyze, and visualize data. We will study mathematical and statistical techniques to discern patterns in complex data. We shall do so in an ecosystem of python computing modules developed by open-source enthusiasts worldwide.
course
ATSC301- Atmospheric Radiation and Remote Sensing
This course teaches radiation and remote sensing, but also covers: how to write clear, documented and tested code that can ingest, manipulate and display data, and how to turn equations into computer algorithms in Python.
courseremote sensing
Introduction to Geospatial Concepts
The goal of this lesson is to provide an introduction to core geospatial data concepts. It is intended for learners who have no prior experience working with geospatial data, and as a pre-requisite for the R for Raster and Vector Data lesson . This lesson can be taught in approximately 75 minutes and covers the following topics: Introduction to raster and vector data format and attributes, examples of data types commonly stored in raster vs vector format, an introduction to categorical vs continuous raster data and multi-layer rasters, an introduction to the file types and R packages used in the remainder of this workshop, an introduction to coordinate reference systems and the PROJ4 format, and an overview of commonly used programs and applications for working with geospatial data.
course
Dani Arribas-Bel Course Repositories
A collection of courework repositories for various data science classes taught by Dani Arribas-Bel.
coursedata science
Cartopy Documentation
Cartopy is a Python package designed for geospatial data processing in order to produce maps and other geospatial data analyses.
cartopydocumentation
Cartopy Gallery
Visual examples demonstrating some of the functionality of Cartopy, particularly its matplotlib interface.
cartopygallery
Contextily Documentation
contextily is a small Python 3 (3.6 and above) package to retrieve tile maps from the internet. It can add those tiles as basemap to matplotlib figures or write tile maps to disk into geospatial raster files. Bounding boxes can be passed in both WGS84 (EPSG:4326) and Spheric Mercator (EPSG:3857).
contextilydocumentationgallery
Contextily Tutorial
Welcome to the taster guide for contextily, the package for contextual tiles in Python. In this notebook, we will show the basic functionality available in contextily, a package to work with web-tiles for background maps. To do that, we will use additional data to illustrate contextily can be integrated with other libraries such as geopandas and rasterio.
contextilytutorial
Dask
Dask provides advanced parallelism for analytics, enabling performance at scale for the tools you love.
daskdocumentation
Dask Tutorial
Dask is a parallel computing library that scales the existing Python ecosystem. This tutorial will introduce Dask and parallel data analysis more generally.
dasktutorial
GeoCAT Tutorial
The examples below show GeoCAT-comp functions being utilized in real-world use cases. They also demonstrate how GeoCAT-comp can be used to make plots with Matplotlib (using Cartopy) and PyNGL (work in progress).
geocat-comptutorial
GeoCAT Gallery
A gallery of plotting examples from GeoCat.
geocat-compgeocat-vizgallerydata visualization
GeoPandas Documentation
GeoPandas is an open source project to make working with geospatial data in python easier. GeoPandas extends the datatypes used by pandas to allow spatial operations on geometric types. Geometric operations are performed by shapely. Geopandas further depends on fiona for file access and matplotlib for plotting.
geopandasdocumentation
GeoPandas Gallery
Examples that show off the functionality in GeoPandas. They highlight many of the things you can do with this package, and show off some best-practices.
geopandasgallery
hvPlot
hvPlot provides a high-level plotting API built on HoloViews that provides a general and consistent API for plotting data in all the abovementioned formats. hvPlot can integrate neatly with the individual libraries if an extension mechanism for the native plot APIs is offered, or it can be used as a standalone component.
hvPlotdocumentation
hvPlot Tutorial
The user guide provides a detailed introduction to the API and features of hvPlot. In the Introduction you will learn how to activate the plotting API and start using it. Next you will learn to use the API for tabular data and get an overview of the types of plots you can generate and how to customize them; including how to customize interactivity using widgets. Next is an overview on how to display and save plots in the notebook, on the commandline, and from a script. Another section will introduce you to generating subplots from your data. Once the basics are covered you can learn how to use the plotting API for specific types of data including streaming data, gridded data network graphs, geographic data, and timeseries data.
hvPlottutorialdata visualization
hvPlot Gallery
Incomplete Reference Gallery containing some small examples of different plot types using hvPlot.
hvPlotgallerydata visualization
Ipyleaflet
Interactive maps in the Jupyter notebook.
ipyleafletdocumentation
Matplotlib
Matplotlib is a comprehensive library for creating static, animated, and interactive visualizations in Python.
matplotlibdocumentationdata visualization
Matplotlib Tutorial
This page contains more in-depth guides for using Matplotlib. It is broken up into beginner, intermediate, and advanced sections, as well as sections covering specific topics.
matplotlibtutorialdata visualization
Matplotlib Gallery
This gallery contains examples of the many things you can do with Matplotlib.
matplotlibgallerydata visualization
MetPy
MetPy is a collection of tools in Python for reading, visualizing, and performing calculations with weather data.
metpydocumentation
MetPy Tutorial
This collection of tutorials (under development) demonstrates the use of MetPy to perform common meteorological tasks.
metpytutorial
Unidata Python Workshop- MetPy
MetPy is a modern meteorological open-source toolkit for Python. It is a maintained project of Unidata to serve the academic meteorological community. MetPy consists of three major areas of functionality: plots, calculations, and file i/o.
metpytutorial
MetPy Gallery
Examples of using a variety of MetPy’s functionality together.
metpygallery
Unidata Gallery
Check out detailed examples for atmospheric science and meteorology, from data analysis to publication-quality figures.
atmospheric sciencegallery
Unidata MetPy Mondays
A weekly video series showing how to use MetPy or other Python libraries to solve problems relevant to geoscience applications.
metpyvideo
Numpy
The fundamental package for scientific computing with Python.
numpydocumentation
Numpy Tutorials
A curated collection of external resources teaching numpy from beginner to advanced uses.
numpy
Unidata Numpy Workshop
Unidata Numpy tutorial that covers how to create an array of ‘data’, perform basic calculations on this data using python math functions, and slice and index the array.
numpytutorial
Intro to Numerical Computing with NumPy
NumPy provides Python with a powerful array processing library and an elegant syntax that is well suited to expressing computational algorithms clearly and efficiently. We'll introduce basic array syntax and array indexing, review some of the available mathematical functions in NumPy, and discuss how to write your own routines. Along the way, we'll learn just enough about matplotlib to display results from our examples.
numpyvideo
Pandas
Pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool, built on top of the Python programming language.
pandasdocumentation
Pandas Tutorials
Tutorial for getting started with pandas.
pandastutorial
Pandas Gallery
A gallery of example pandas functionality.
pandasgallery
Rasterio
Geographic information systems use GeoTIFF and other formats to organize and store gridded raster datasets such as satellite imagery and terrain models. Rasterio reads and writes these formats and provides a Python API based on Numpy N-dimensional arrays and GeoJSON.
rasteriodocumentation
Rasterio Tutorial
This document explains how to use Rasterio to read existing files and to create new files. Some advanced topics are glossed over to be covered in more detail elsewhere in Rasterio’s documentation.
rasteriotutorial
Siphon
Siphon is a collection of Python utilities for downloading data from remote data services. Much of Siphon’s current functionality focuses on access to data hosted on a THREDDS Data Server. It also provides clients to a variety of simple web services.
siphondocumentation
Siphon Tutorial
An overview on Siphon from the Unidata Python Workshop that: uses Siphon to access a THREDDS catalog, filters data, and uses Siphon to perform remote data access.
siphontutorial
Siphon Gallery
Examples of using Siphon’s functionality.
siphongallery
WRF-Python
A collection of diagnostic and interpolation routines for use with output from the Weather Research and Forecasting (WRF-ARW) Model.
wrf-pythondocumentation
WRF-Python Gallery
Examples of how wrf-python can be used to make plots with matplotlib (with basemap and cartopy) and PyNGL. None of these examples make use of xarray’s builtin plotting functions, since additional work is most likely needed to extend xarray in order to work correctly.
wrf-pythongallery
Xarray
xarray (formerly xray) is an open source project and Python package that makes working with labelled multi-dimensional arrays simple, efficient, and fun! Xarray introduces labels in the form of dimensions, coordinates and attributes on top of raw NumPy-like arrays, which allows for a more intuitive, more concise, and less error-prone developer experience. The package includes a large and growing library of domain-agnostic functions for advanced analytics and visualization with these data structures. Xarray is inspired by and borrows heavily from pandas, the popular data analysis package focused on labelled tabular data. It is particularly tailored to working with netCDF files, which were the source of xarray’s data model, and integrates tightly with dask for parallel computing.
xarraydocumentation
Unidata Xarray Workshop
An introduction to Xarray through the Unidata Python Workshop that asks, "What is XArray and how does XArray fit in with Numpy and Pandas?"" by creating a DataArray, openning netCDF data using XArray, and subsetting the data.
xarraytutorial
Xarray Tutorial
A collection of tutorials provided by the Xarray developers.
xarraydasktutorial
Python Programming for Earth Science Students
Python Programming for Earth Science Students
tutorialpure pythonpandasscipynumpymatplotlib
Pangeo Gallery
A gallery of different Pangeo use cases
jupyterxarraydaskmatplotlibintakexgcmholoviewspandasnumpygallerytutorialglaciologyremote sensingphysical oceanographyhydrologypangeo
Python for Atmosphere and Ocean Science
Lesson materials for a one-day workshop on using Python in the atmosphere and ocean sciences. Useful for any geoscientist working with raster (a.k.a. “gridded”) data, the lessons cover packages/tools including conda, xarray, dask and netCDF, as well as best practices including functions, command line programs, defensive programming, provenance tracking and version control via git/GitHub.
xarraydaskcartopynumpymatplotlibcourseatmospheric scienceclimate science
Python for Geosciences
This is a short overview of how Python is used in science and particularly in geosciences targeting people who already know programming (e.g. Matlab).
matplotlibscipypandasxarraycartopycoursetutorialvideoatmospheric scienceclimate sciencephysical oceanographydata science
Environmental Data Science Book
A living, open and community-driven resource to showcase and support computational notebooks for collaborative, reproducible and transparent Environmental Science
pangeopoochintakepystacpandasgeopandasxarraydaskmatplotlibholoviewscartopybookgalleryenvironmental scienceclimate scienceecologyhydrologyphysical geographyremote sensingdata scienceThe Alan Turing Institute
Your First Python Tutorial - Reading in a .txt File
Recording from the Python Tutorial Seminar Series designed to teach you Python, not package specific syntax. This lessons covers setting up a work environment and opening a .txt file. The content to follow along with this video is hosted on the <A href="https://ncar.github.io/python-tutorial/tutorials/yourfirst.html">Xdev Python Tutorial website</A>.
pure pythonvideotutorialpythiaxdev
Your First Python Tutorial - Creating a Data Dictionary
Recording from the Python Tutorial Seminar Series designed to teach you Python, not package specific syntax. This lessons covers creating a data dictionary. The content to follow along with this video is hosted on the <A href="https://ncar.github.io/python-tutorial/tutorials/yourfirst.html#creating-a-data-dictionary">Xdev Python Tutorial website</A>.
pure pythonvideotutorialpythiaxdev
Your First Python Tutorial - Writing Functions
Recording from the Python Tutorial Seminar Series designed to teach you Python, not package specific syntax. This lessons covers how to write and call functions in Python. The content to follow along with this video is hosted on the <A href ="https://ncar.github.io/python-tutorial/tutorials/yourfirst.html#writing-functions">Xdev Python Tutorial website</A>.
pure pythonvideotutorialpythiaxdev
Your First Python Tutorial - Creating Your Own Package
Recording from the Python Tutorial Seminar Series designed to teach you Python, not package specific syntax. This lessons covers how to create and call modules and packages. The content to follow along with this video is hosted on the <A href="https://ncar.github.io/python-tutorial/tutorials/yourfirst.html#first-python-package">Xdev Python Tutorial website</A>.
pure pythonvideotutorialpythiaxdev
Your First Python Tutorial - Using a Built-In Package and Publishing Your Package
Recording from the Python Tutorial Seminar Series designed to teach you Python, not package specific syntax. This lessons covers how to use your first external buil-in package, `math`, and how to publish your package. The content to follow along with this video is hosted on the <A href="https://ncar.github.io/python-tutorial/tutorials/yourfirst.html#using-a-built-in-package">Xdev Python Tutorial website</A>.
pure pythonvideotutorialpythiaxdev
Python Tutorial Seminar Series - Jupyter Notebooks
Recording from the Python Tutorial Seminar Series introducing JupyterLab and Jupyter Notebooks.
jupytervideotutorialpythiaxdev
Python Tutorial Seminar Series - Numpy
Recording from the Python Tutorial Seminar Series introducing the Python Package `numpy`. The content to follow along with this video is hosted on this <A href="https://colab.research.google.com/drive/1zcjaGXofLzUXkQzJKnANE9Z3yFUt0q7E?">Numpy Google Collab</A>.
numpyvideotutorialpythiaxdev
Python Tutorial Seminar Series - Matplotlib
Recording from the Python Tutorial Seminar Series introducing the Python Package `matplotlib`. The content to follow along with this video is hosted on this <A href="https://github.com/anissa111/matplotlib-tutorial">Matplotlib Tutorial GitHub Repository</A>.
matplotlibvideotutorialdata visualizationpythiaxdev
Python Tutorial Seminar Series - Object Oriented Programming
Recording from the Python Tutorial Seminar Series introducing Object Oriented Programming. The content to follow along with this video is hosted in this <A href="https://github.com/pilotchute/oop_hrrr_tutorial">Object Oriented Programming Tutorial GitHub Repository</A>.
videotutorialpythiaxdev
Python Tutorial Seminar Series - Cartopy
Recording from the Python Tutorial Seminar Series introducing the Python Package `cartopy`. The content to follow along with this video is hosted in this <A href="https://github.com/michaelavs/cartopy_tutorial">Cartopy Tutorial GitHub Repository</A>.
matplotlibcartopyvideotutorialdata visualizationpythiaxdev
Python Tutorial Seminar Series - Git and GitHub
Recording from the Python Tutorial Seminar Series introducing the tools Git and GitHub. The content to follow along with this tutorial is hosted in this <A href="https://github.com/NCAR/git-github-demo">Git and GitHub Demo GitHub Repository</A>.
gitvideotutorialpythiaxdev
Python Tutorial Seminar Series - Pandas
Recording from the Python Tutorial Seminar Series introducing the Python Package `pandas`. The content to follow along with this video is hosted in this <A href="https://github.com/mgrover1/ncar_pandas_tutorial">Pandas Tutorial GitHub Repository</A>.
pandasvideotutorialpythiaxdev
Python Tutorial Seminar Series - Xarray Part 1
Recording from the Python Tutorial Seminar Series introducing the Python Package `xarray`. This is the first lesson of a two part series. The content to follow along with this video is hosted in this <A href="https://github.com/andersy005/xarray-tutorial">Xarray Tutorial GitHub Repository</A>.
xarrayvideotutorialpythiaxdev
Python Tutorial Seminar Series - Xarray Part 2
Recording from the Python Tutorial Seminar Series introducing the Python Package `xarray`. This is the second lesson of a two part series. The content to follow along with this video is hosted in this <A href="https://github.com/andersy005/xarray-tutorial">Xarray Tutorial GitHub Repository</A>.
xarrayvideotutorialpythiaxdev
Python Tutorial Seminar Series - Dask Part 1
Recording from the Python Tutorial Seminar Series introducing the Python Package `dask`. This is the first lesson of a two part series. The content to follow along with this video is hosted in this <A href="https://github.com/andersy005/xarray-tutorial">Xarray Tutorial GitHub Repository</A>.
daskvideotutorialpythiaxdev
Python Tutorial Seminar Series - Dask Part 2
Recording from the Python Tutorial Seminar Series introducing the Python Package `dask`. This is the second lesson of a two part series. The content to follow along with this video is hosted in this <A href="https://github.com/andersy005/xarray-tutorial">Xarray Tutorial GitHub Repository</A>.
daskvideotutorialpythiaxdev
Python Tutorial Seminar Series - Plotting with GeoCAT
Recording from the Python Tutorial Seminar Series introducing advanced plotting techniques and highlighting tools developed by GeoCAT. The content to follow along with this video is hosted in this <A href="https://github.com/anissa111/plotting-with-geocat-tutorial">Plotting with GeoCat GitHub Repository</A>.
geocat-vizvideotutorialdata visualizationpythiaxdev
Python Tutorial Seminar Series - GeoCAT-Comp
Recording from the Python Tutorial Seminar Series introducing `geocat-comp`. The content to follow along with this video is hosted in this <A href="https://github.com/pilotchute/geocat_comp_tutorial">GeoCat-Comp GitHub Repository</A>.
geocat-compvideotutorialpythiaxdev
The Pythia Foundations Book
Brought to you by Project Pythia, this growing collection covers the foundational skills everyone needs to get started with scientific computing in the open-source Python ecosystem.
bookpythia
Pythia Foundations - Getting started with Python
This chapter of the Pythia Foundations book covers Python spin-up for new users. Here you will look at your first Python code and learn to run/install Python on various platforms.
bookpythiapure python
Pythia Foundations - Getting started with Jupyter
This chapter of the Pythia Foundations book covers Python spin-up using Jupyter. Here you will learn about the JupyterLab interface and markdown formatting.
bookpythiajupyter
Pythia Foundations - Getting started with GitHub
This chapter of the Pythia Foundations book covers GitHub: what it is, basic version control, and how to open a pull request.
bookpythiagit
Pythia Foundations - Numpy
This chapter of the Pythia Foundations book covers the Python package NumPy: NumPy basics, intermediate NumPy, and NumPy broadcasting.
bookpythianumpy
Pythia Foundations - Matplotlib
This chapter of the Pythia Foundations book covers basics of the Python package Matplotlib.
bookpythiamatplotlibdata visualization
Pythia Foundations - Cartopy
This chapter of the Pythia Foundations book introduces the Python package Cartopy, a package designed for geospatial data processing and used for its ability to produce maps.
bookpythiacartopydata visualization
Pythia Foundations - Datetime
This section of the Pythia Foundations book contains tutorials on dealing with times and calendars in scientific Python, beginning with use of the datetime standard library.
bookpythiadatetime
Pythia Foundations - Pandas
This section of the Pythia Foundations book covers Pandas, a very powerful library for working with tabular data (i.e. anything you might put in a spreadsheet – a common data type in the geosciences).
bookpythiapandas
Pythia Foundations - Data Formats
This section of the Pythia Foundations book covers how to interact in Python with data file formats in widespread use in the geosciences, such as NetCDF.
bookpythiadata formatsnetCDF4
Pythia Foundations - Xarray
This section of the Pythia Foundations book contains tutorials on using Xarray. Xarray is used widely in the geosciences and beyond for analysis of gridded N-dimensional datasets.
bookpythiaxarray
Climatematch Academy
Climatematch Academy (CMA) is a wide-reaching, inclusive and approachable program aimed to introduce computational methods for climate science. CMA strives to create a globally diverse climate sciences community, trained on cutting edge techniques to access and analyze open-source modeled and observational climate data.
courseclimate scienceneuromatchpythia
Plotting Earth Science Data
A guide to analyze and plot Earth Science data for Scientist of all programming skill levels, using L-1 data product from CYGNSS mission as an example.
cartopyxarraynumpymatplotlibnetCDF4data visualizationremote sensing
Herbie: Retrieve NWP Model Data
Herbie is a python package that downloads recent and archived numerical weather prediction (NWP) model output from different cloud archive sources. Its most popular capability is to download HRRR model data. NWP data in the GRIB2 format can be read with xarray+cfgrib.
xarraycfgrib