Code Monkey home page Code Monkey logo

python-training's Introduction

Welcome to Unidata's Python Training Site for atmospheric science and meteorology. This site is meant to be a one-stop website for learning how to use Python for earth-science education and research for any experience level. You can visit the site at unidata.github.io/python-training!

python-training's People

Contributors

dcamron avatar deeplycloudy avatar dopplershift avatar jrleeman avatar julienchastang avatar kgoebber avatar lprox2020 avatar srcarter3 avatar zbruick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

python-training's Issues

Merge builds not publishing to gh-pages

When a PR is merged, it should trigger nikola deploy_github and publish the new pages to the gh-pages branch. It is not currently doing that, as the changes in #4 are not in the gh-pages version of index.rst.

Fix exercise in Pythonic Data Analysis

One of the exercises (involving making a power function), has the solution in the cell. This probably escaped the check because it doesn't have the %load in the cell.

Point data

Obvious thing to do is the station plot. Could also throw in some gridding and contouring to make a nice composite plot. Bonus points to also include a satellite image. Probably most easily done with the upper air data.

NCEP TDS links outdated/inconsistent

In reviewing some support tickets for separate issues, I discovered that multiple notebooks across the gallery and workshop

pages/gallery/500hPa_Vorticity_Advection.ipynb
pages/gallery/850hPa_Temperature_Advection.ipynb
pages/gallery/Ageostrophic_Wind_Example.ipynb
pages/gallery/declarative_500_hPa.ipynb
pages/gallery/HILO_Symbol_Plot.ipynb
pages/gallery/miller_composite.ipynb
pages/gallery/MSLP_temp_winds.ipynb
pages/gallery/Smoothing_Contours.ipynb
pages/gallery/xarray_500hPa_map.ipynb
pages/workshop/MetPy_Advanced/QG Analysis.ipynb
pages/workshop/MetPy_Case_Study/MetPy Case Study.ipynb

attempt to access data or guide users with outdated ncei.noaa.gov/thredds/<access>/grid/<product> data access URLs for GFS/NAM/NARR products. These can now generally be found at ncdc.noaa.gov/thredds/<access>/<product> (NCDC data access) which was correctly described in some of these same notebooks. If this was already known or expected, let me know; I didn't see anything on this elsewhere!

Point data oddities in model data

  • We should probably get back the actual grid point instead of just what we requested.
  • Where's the reference for the time in the return?

Surface notebook very slow

The query on the surface obs notebook takes many minutes to get from THREDDS and is not cached. We've discussed trying to get the METAR products from THREDDS test and use the METAR parser. Worth a shot - certainly a good real world test!

Standardize on some idioms

We should only do things one way:

  • Consistent imports
  • use of subplots vs. add_subplots vs. axes()
  • Use Matplotlib OO interface rather than pyplot where possible

Plotting model data

  • Why are we calling parse_cf if we’re going to hard-code the data projection to PlateCarree—should use `cartopy_crs.
  • Why index and squeeze? Should try to use sel, otherwise there’s really no point to our putting this in an xarray

Migrate OPT nbviewer notebooks

Would be good to probably migrate the nbviewer notebooks over to this repo (or at least have the hyperlink have the correct repo name). Not sure those will stay alive if the old repos are mothballed.

Add deprecation warning checks

We need an automated check to see if we are calling deprecated functions - probably limited to warnings from MetPy and siphon for sanity?

Cloud-based hosting

We should look at having easy access to running the notebooks in the cloud using something like MyBinder, or even with our own on something like Jetstream.

Add Virus Checker Note to install

We've had several systems quarantine the miniconda install - a note to turn off the virus checker for install would be good. Avast seems to be the worst about doing this.

Extra re-import

Pandas notebook has an extra import statement that should be removed.

Borrow some ideas from SciTools

SciTools (the UK Met office group) has some interesting ideas in their course materials. Things I thought were interesting:

  • Exercise breakdown into parts in different cells
  • Exercises seem different from ours, more of a jump from what's taught
  • NumPy broadcasting image
  • Numpy exercises in general

Import Conventions

While in general I think import metpy.plots as mpplots, then thinks like mpplots.ImagePlot() are "better" for certain values of "better", it flies in the face of the GEMPAK replacement spirit. Importing all the things you need as from metpy.plots import ImagePlot, MapPanel, PanelContainer, ... is also verbose. After discussion, we decided in training materials targeted towards GEMPAK users to go with from metpy.plots.declarative import *. Yes, I don't love it, but it's the most user forward solution here.

City forecast with NCSS grid as point

Could hit a few sources like:

  • GFS
  • HRRR
  • NDFD
  • National model blend

Good example that uses NCSS but is simple on the plotting. There's a variety of ways to do multi-panel. Bonus points for using widgets to allow changing plot.

Putting-it-all-together exercises

From Unidata/python-workshop#418: It would be good to develop some holistic examples where we put everything we've taught into an exercise or two at the end of a workshop (see AMS 2018 case study). Ideally, this would incorporate remote access of multiple datasets with different visualizations (likely of a specific case(s), i.e. SkewT, satellite/radar, surface & upper air plots, and model data).

GEFS spaghetti plots

Almost had this for a winter storm. Just not sure what lines are of particular interest to make a good spaghetti plot.

Upper Air Plots

In Millersville Unidata/python-workshop#143 we had a request for upper-air maps with standard dewpoint depression, etc. While we don't currently have a good data source for that, it should be on the list.

RadarServer/OPeNDAP

Would be great to hit the radar server and download data for some recent, interesting case. Could use OPeNDAP to get part of the level2 data, maybe also download NIDS for things like tornado detections.

Update for new siphon

Need to take advantage of better siphon API.

For instance, in the 250 hPa example, this:

cat = TDSCatalog('http://thredds.ucar.edu/thredds/catalog/grib/'
                 'NCEP/GFS/Global_0p5deg/latest.xml')
best_ds = list(cat.datasets.values())[0]
ncss = NCSS(best_ds.access_urls['NetcdfSubset'])

should be

cat = TDSCatalog('http://thredds.ucar.edu/thredds/catalog/grib/'
                 'NCEP/GFS/Global_0p5deg/catalog.xml')
latest_ds = cat.latest
ncss = latest_ds.subset()

Or could even elide the last two lines.

Standardize Notebook Naming

Let's name the notebooks consistently. I don't love using spaces, but that's me being an old man yelling at clouds. After conversation with @dopplershift we decided to go with that, so the repo notebook names need cleaned up.

Skew-T notebook

Skew-T notebook improvements:

  • Remove the list around zero in the isotherm plotting example

Make Exercise Boxes Consistent

We've got a mix of non green background exercise boxes (which do work in jupyter lab now) and no background boxes. Which shall we choose to standardize on?

How could we set up South Polar Projection

To report a non-security related issue, please provide:

  • the version of the software with which you are encountering an issue
  • environmental information (i.e. Operating System, compiler info, java version, python version, etc.)
  • a description of the issue with the steps needed to reproduce it

If you have a general question about the software, please view our Suggested Support Process.

Pandas teaching/exercise balance

The pandas notebook is too exercise heavy. It results in a choppy class flow and long periods of no work for the more advanced students.

Automate inclusion of new notebooks in gallery

Right now, when adding a new notebook to the gallery, we also need to:

  • Capture a thumbnail
  • Add to the main gallery page

We really should be able to automate extracting an image from the rendered notebook (Nikola handles making proper thumbnails for us). Probably also need to figure out a way to organize the gallery--maybe folders are enough?

Managing workshop materials

Right now new notebooks have to be added to the outline. We've also talked in the past about developing some system to generate a zip file, and maybe an agenda site, for each workshop. This becomes more important now that we're in this unified repository.

AMS - Model Data

Work on the model data plotting notebooks and use declarative plotting where possible.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.