Differences between revisions 8 and 68 (spanning 60 versions)
Revision 8 as of 2012-07-11 07:09:04
Size: 3620
Comment:
Revision 68 as of 2012-12-19 13:14:36
Size: 6409
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= LES python seminar series (Thursday, 10:30 - 12:00) = = LES python seminar series (Thursday, 10:30 - 12:00, Geomatikum, 1729) =
contact: Alex Loew, Julia Pongratz
Line 3: Line 4:
Python related announcements and questions:''' python-friends@lists.zmaw.de '''
Line 4: Line 6:
contact: Alex Loew, Julia Pongratz Join the list by sending: ''' python-friends-join@lists.zmaw.de '''
Line 19: Line 21:
== Seminar outline == = Seminar outline =
== Part 1 ==
=== Working with arrays (Gernot, Michael) (19.07.2012) ===
 . [[PythonCourse/PythonLES/SeminarLog1|Commented examples from the seminar]]
Line 21: Line 26:
=== Working with arrays (Gernot, Michael) (19.07.2012) ===
* general information on [[http://docs.python.org/reference/datamodel.html|python data model]] ([[http://docs.python.org/library/copy.html | copy, references, deepcopy]])
 * general information on [[http://docs.python.org/reference/datamodel.html|python data model]] ([[http://docs.python.org/library/copy.html|copy, references, deepcopy]])
Line 37: Line 41:
 * subplots, figure, axis objects; easy and more sophisticated appraoches [[PythonCourse/PythonLES/SeminarLog2|Course material for plotting]]

* subplots, figure, axis objects; easy and more sophisticated appraoches
Line 39: Line 46:
 * a brief tour through matplotlib gallery  * a brief tour through [[http://matplotlib.sourceforge.net/gallery.html|matplotlib gallery]]
Line 41: Line 48:
  * fill between   * fill_between
Line 44: Line 51:
 * working with different axes in a single plot; twinx()
Line 46: Line 54:
 * [[http://matplotlib.sourceforge.net/users/tight_layout_guide.html|tight_layout]]
Line 47: Line 56:
=== Geospatial data format handling and vizualization (Mikhail) (09.08.2012) ===
 * Nio - handling netCDF
=== Geospatial data format handling and vizualization (Mikhail) (16.08.2012) ===
[[IoBasemapNgl|Lesson code examples]]

* [[http://www.pyngl.ucar.edu/Nio.shtml|PyNio]] - handling netCDF
Line 51: Line 62:
   * data type conversions
 * GDAL: the door to all available data formats ?
 * Basemap
 * pyNGL
 
   * data type conversion
    * how to write a numpy array (double) in a float netcdf variable?
    * how to store data as scaled integers?
 * [[http://www.gdal.org/|GDAL]]: the door to a huge number of different file formats. [[http://www.gdal.org/gdal_tutorial.html|GDAL (Python) API tutorial]]
 * [[http://matplotlib.github.com/basemap/|Basemap]]
 * [[http://www.pyngl.ucar.edu/|PyNGL]] [[http://www.pyngl.ucar.edu/Tutorial/|Tutorial]]
Line 57: Line 70:
 * replacing BASH: working with os adn system objects [[PythonCourse/PythonLES/SeminarLog4|Commented examples from the seminar]]

* replacing BASH: working with os and system objects
Line 62: Line 77:
=== structuring a program (Mikhail) (13.9.2012) ===
 * python functions with optional and kwargs
 * python object oriented programming (classes etc)
=== Structuring a program (Mikhail) (13.9.2012) ===
[[PythonCourse/PythonLES/SeminarLog5|Commented program from the seminar]]

 * general structure of python scripts
 * writing python functions, what are the keyworded and the non-keyworded arguments
 * writing modules and classes, why and how to create custom objects
 * naming convention
 * how to parse command line input for options and arguments

== Part 2 ==
=== pyCMBS (Alex) (31.10. as part of the Wednsday seminar) ===
 * introduction to pyCMBS
 * cdo interfacing
 * anomaly calculations, hovmoeller plots etc ...
 * EOF, SVD analysis

=== time series analysis: the Pandas module (Mikhail) (25.10.) ===
[[PythonCourse/PythonLES/Pandas|Lesson code]]

 * Indexed arrays
 * Merging, aligning and restructuring timeseries
 * Reindexing timeseries
 * [[http://www.youtube.com/watch?v=w26x-z-BdWQ|Video tutorial by Wes McKinney]]
 * [[http://pandas.pydata.org/pandas-docs/dev/api.html|Official site with documentation]]

=== parallel programming (Heinrich Widmann) (08.11.) ===
[[PythonCourse/PythonLES/Parallel_Programming|Lesson code]] [[PythonCourse/PythonLES/ParallelSlides|... and slides]]

 * Threading vs. multiprocessing
  * The GIL issue
 * ParallelPython module (pp)
 * Processing module
 * Further approaches and techniques ...
 * Not (really) addressed :
  * openMP, MPI
  * more sophuisticated clustering, scheduling and load balancing ....
 * [[https://github.com/ianozsvald/ParallelPython_EuroSciPy2012|Ian Ozsvald's lesson at SciPy2012]]

=== python CDO interface (Ralf Mueller) (22.11.) ===
 * [[https://code.zmaw.de/projects/cdo/wiki/Cdo{rbpy}|cdo - python/ruby interface]]

=== Integration of other programming languages (Nikolay Koldunov, Mikhail Itkin, 06.12) ===
 * Ipython Notebook [[https://wiki.zmaw.de/lehre/PythonCourse/PythonLES?action=AttachFile&do=get&target=map.ipynb|Ipython lesson notebook]]
 * f2py | [[PythonCourse/PythonLES/F2Py|f2py lesson code]]
 * R and Python tutorials:
  * [[http://www.r-bloggers.com/accessing-r-from-python-using-rpy2/|rpy2: Accessing R from Python video tutorial]]
  * [[http://rpy.sourceforge.net/rpy2/doc-dev/html/introduction.html|Gentle RPY2 tutorial]]
 * [[http://wiki.python.org/moin/IntegratingPythonWithOtherLanguages|Python integration with other languages]]
 * Bonus: [[http://code.google.com/p/pyresample/|Pyresample]]- reprojection of geospatial data


= Tips and Tricks =
 * Spearman rank correlation revisited in python [[attachment:Spearman.pdf | Documentation how to do it (PDF)]], [[ attachment:TestSpearman.py | script ]]
Line 68: Line 133:
=== time series analysis: the Pandas module (Mikhail) ===
 * introduction to pandas timeseries analysis module



=== pyCMBS (Alex) ===
 * introduction to pyCMBS
 * cdo interfacing
 * anomaly calculations, hovmoeller plots etc


=== Integration of other programming languages (Alex, no date yet) ===
 * R
 * f2py
 * C-code
 * matlab

=== scientific data analysis in python ===
 * EOF, SVD analysis

=== running JSBACH offline in a python environment (Gernot) ===

=== parallel programming (Heinrich Widmann) ===
 * openMP, MPI, subprocesses, threads

=== statistics in python (???) ===
 * statistical analysis of large data sets

=== other topics ===
== other topics ==
 * statistical analysis of large data sets
Line 101: Line 139:


= projects to work on ... =
 * MPI-ESM in python (Christian) ;-)



 

LES python seminar series (Thursday, 10:30 - 12:00, Geomatikum, 1729)

contact: Alex Loew, Julia Pongratz

Python related announcements and questions: python-friends@lists.zmaw.de

Join the list by sending: python-friends-join@lists.zmaw.de

What you should be able to do in advance

  • python programming structures
  • if clauses
  • function calling
  • print statements
  • well, running python scripts (in python shell and interactive shell like ipython)
  • edit python scripts in the editor of your choice
  • ...


Seminar outline

Part 1

Working with arrays (Gernot, Michael) (19.07.2012)

Plotting (1D,2D,3D) (Alex) (2.8.2012)

Course material for plotting

* subplots, figure, axis objects; easy and more sophisticated appraoches

  • always use figure/ax
  • a brief tour through matplotlib gallery

    • lineplots
    • fill_between
    • contour plots
  • nice colorbars, colormaps handling etc.
  • working with different axes in a single plot; twinx()
  • saving figures
    • fitting to actual content
  • tight_layout

Geospatial data format handling and vizualization (Mikhail) (16.08.2012)

Lesson code examples

  • PyNio - handling netCDF

    • read netCDF
    • write netCDF
      • data type conversion
        • how to write a numpy array (double) in a float netcdf variable?
        • how to store data as scaled integers?
  • GDAL: the door to a huge number of different file formats. GDAL (Python) API tutorial

  • Basemap

  • PyNGL Tutorial

system operations (Michael) (30.8.2012)

Commented examples from the seminar

  • replacing BASH: working with os and system objects
  • os.system, subprocess etc.
  • python as a replacement for bash
  • how to debug a python program?

Structuring a program (Mikhail) (13.9.2012)

Commented program from the seminar

  • general structure of python scripts
  • writing python functions, what are the keyworded and the non-keyworded arguments
  • writing modules and classes, why and how to create custom objects
  • naming convention
  • how to parse command line input for options and arguments

Part 2

pyCMBS (Alex) (31.10. as part of the Wednsday seminar)

  • introduction to pyCMBS
  • cdo interfacing
  • anomaly calculations, hovmoeller plots etc ...
  • EOF, SVD analysis

time series analysis: the Pandas module (Mikhail) (25.10.)

Lesson code

parallel programming (Heinrich Widmann) (08.11.)

Lesson code ... and slides

  • Threading vs. multiprocessing
    • The GIL issue
  • ParallelPython module (pp)

  • Processing module
  • Further approaches and techniques ...
  • Not (really) addressed :
    • openMP, MPI
    • more sophuisticated clustering, scheduling and load balancing ....
  • Ian Ozsvald's lesson at SciPy2012

python CDO interface (Ralf Mueller) (22.11.)

Integration of other programming languages (Nikolay Koldunov, Mikhail Itkin, 06.12)

Tips and Tricks


other topics

  • statistical analysis of large data sets
  • animations
  • GUI programming (Alex, remon???)
  • H5PY - simple access to HDF5 files
  • python2.x or python3.x (does it make a difference?)

LehreWiki: PythonCourse/PythonLES (last edited 2012-12-19 13:14:36 by AlexanderLoew)