= 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) === . [[PythonCourse/PythonLES/SeminarLog1|Commented examples from the seminar]] * general information on [[http://docs.python.org/reference/datamodel.html|python data model]] ([[http://docs.python.org/library/copy.html|copy, references, deepcopy]]) * [[http://docs.python.org/library/functions.html#map|map]] and [[http://docs.python.org/tutorial/controlflow.html#lambda-forms|lambda]] functions * [[http://docs.scipy.org/doc/numpy/reference/arrays.ndarray.html|numpy arrays]] (indexing, slicing, views ...) * array functions (mean, sum etc. along axes) * data type conversions * [[http://docs.scipy.org/doc/numpy/reference/routines.math.html|elementwise functions]] * [[http://docs.scipy.org/doc/numpy/reference/routines.linalg.html|linear algebra]] * [[http://docs.scipy.org/doc/numpy/reference/routines.statistics.html|array statistics]] * [[http://docs.scipy.org/doc/numpy/reference/maskedarray.generic.html|masked arrays]] * reading ASCII files etc. * [[http://docs.scipy.org/doc/numpy/reference/routines.io.html|numpy input and output]] * general input and output ([[http://docs.python.org/library/functions.html#open|opening a file]] and [[http://docs.python.org/library/stdtypes.html#file-objects|working with a file]]) * [[http://docs.python.org/library/pickle.html|pickle]], cPickle === Plotting (1D,2D,3D) (Alex) (2.8.2012) === [[PythonCourse/PythonLES/SeminarLog2|Course material for plotting]] * subplots, figure, axis objects; easy and more sophisticated appraoches * always use figure/ax * a brief tour through [[http://matplotlib.sourceforge.net/gallery.html|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 * [[http://matplotlib.sourceforge.net/users/tight_layout_guide.html|tight_layout]] === Geospatial data format handling and vizualization (Mikhail) (16.08.2012) === [[IoBasemapNgl|Lesson code examples]] * [[http://www.pyngl.ucar.edu/Nio.shtml|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? * [[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]] === system operations (Michael) (30.8.2012) === [[PythonCourse/PythonLES/SeminarLog4|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) === [[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 ]] ---- == 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?)