.. title: Introduction to Python for Atmospheric Science & Meteorology
.. slug: intro-to-python
.. date: 2019-07-29 13:51:42 UTC-06:00
.. tags: 
.. category: 
.. link: 
.. description: 
.. type: text

With support from the National Science Foundation, 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.

This page is intended for new Python users looking to gain an understanding of the
scientific Python ecosystem. All things related to getting started with Python
are hosted here, including download instructions, basic syntax, and general 
usage examples. For more detailed examples of how to analyze data and produce
publication-quality figures specifically for atmospheric science and meteorology,
please see our [Example Gallery](/gallery/gallery-home) or [Python Workshop](/workshop/workshop-intro)
materials.

Unidata staff are actively developing and curating the material here, but what
you see today is an early version of what we envision for this resource. Please
forgive the unfinished nature of the materials here, and feel free to give us
your suggestions for additions or improvements by contacting
[Unidata Python Support](/python/support).

## Introduction

- [What Is This?](/python/what)
- [Why Python and Jupyter Notebooks?](/python/introduction)

## Getting Started

### Git and Github

GitHub is a online platform for hosting code that promotes collaboration.

- [What Is Git, Github and Why Do You Care?](/python/git)
- [Introduction to GitHub](https://guides.github.com/activities/hello-world/)
- [Creating a GitHub Account](https://egghead.io/lessons/javascript-introduction-to-github?series=how-to-contribute-to-an-open-source-project-on-github) (*Free* video from egghead.io)
- [GitHub's Guides](https://guides.github.com/)
- [How to Contribute on Github](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github) (*Free* video series from egghead.io)
- [Online Interactive Git Tutorial (from GitHub)](https://try.github.io/)
- [Mac OS X and Windows Desktop Applications for Using Git and Github](https://git-scm.com/download/gui/windows)

### Installing Python

- [Which Python?](/python/choosing)
- [Installing Python on Mac OS X](/python/conda-osx)
- [Installing Python on Microsoft Windows](/python/conda-windows)

### Jupyter Notebooks

- [How to Start and Run a Jupyter Notebook](/python/notebook)
- [Unidata's Jupyter Notebook Gallery](http://unidata.github.io/notebook-gallery)
- [Whetting Your Appetite for Python](/python/whetting_your_appetite_for_python)

## Basic Python Syntax
Here are some good sources for learning the basics of Python's Syntax:

- [Codecademy](https://www.codecademy.com/learn/python) has some free lessons on learning Python
- [learnpython.org](http://www.learnpython.org/) also has some free, interactive materials
- The [official](https://docs.python.org/3.5/tutorial/index.html) Python tutorial is pretty good as well

## Beginning Python Concepts
What follows is a series of Jupyter notebooks on learning Python with geoscience objectives. You can either peruse this material with the nbviewer links below or [run the Jupyter notebooks interactively](notebook.html#how-to-run-opt-notebooks).

- [Control Flow](/python/controlflowintro)
    * [Conditional Statements](/python/conditionals)
    * [Loops](/python/loops)
    * [Functions](/python/functionsb)
- [Basic Data Structures](/python/basic_data_structures)
- [Basic Input and Output](/python/basic_input_and_output)
- [Times and Dates](/python/times_and_dates)

## Scientific Python Packages
- [NumPy](https://numpy.org)
- [Matplotlib](https://matplotlib.org)
    * [Basic Line Plots](/python/beginning_plots_with_matplotlib)
- [netCDF](https://unidata.github.io/netcdf4-python/netCDF4/index.html)
- [xarray](http://xarray.pydata.org/en/stable/)
- [CartoPy](https://scitools.org.uk/cartopy/docs/latest/)
- [Pandas](https://pandas.pydata.org/pandas-docs/stable/)

## Python Packages for Meteorology & Atmospheric Science
- [MetPy](https://unidata.github.io/MetPy/latest/)
- [Siphon](https://unidata.github.io/siphon/)

### Support or Contact
- [Unidata Python Support](/python/support)


