Python logo

Useful Python links:

Python offsite ink warning is a great programming language, and I am heavily into using it to solve a variety of problems. One of the nice things is that Python has modules written for every possible task (interacting with Unix OS, php, even Fortran) and so one can leverage off of a large community that has written probably what you need (or nearly) already and its freely available. Unlike CSH or Perl, the language elements are very readable so that someone can very quickly figure out what is going on and probably even alter the code.

Python has an excellent set of language features, including:

  • Built in ability to interface to Fortran-90, C, C++, and Objective-C modules through the CXX, SWIG and Pyfort utilities
  • Completely open source and freely distributable under GPL
  • Runs on almost all available platforms (Unix, Mac, Windows, NT, Linux)
  • An object orientated programing model
  • Built in ability to interface to Fortran-90, C, C++, and Objective-C modules through the CXX, SWIG and Pyfort utilities
  • Has a large community developing and maintaining source modules
  • Can be implemented as a scripting language as well as a program language
  • Has numerical, scientific, Tkinter/GUI bindings and modules for doing a wide variety of tasks
  • Is simple to learn

The following papers offer more opinions on the advantages/disadvantages of Python:

How we use Python for our work

Over the last several years David Dowell, Ted Mansell, and I have been developing a Ensemble Kalman filter control system for convective scale data assimilation of radar and other types of data (such as surface or sounding data). We are designing the system using Python as the top level control language. We have done some work integrating Python and our Fortran codes using the F2PY offsite ink warning utility, but for now use Python as the glue for managing our parameter data and connecting our fortran codes together.

Python in scientific computing: Advocacy

Python reference books I use

  • Learning Python, Mark Lutz and David Ascher, O'Reilly Publishers.
    This is an excellent overview book which can get you started. I have the 1st edition, and there is an updated one out, but I actually like the 1st edition better. Nevertheless, I use it often.
  • Python (Visual Quick Start Guide), Chris Fehly, Peach Pit Press.
    Once you know the language to a certain degree, this book is full of examples of small bits of code to do all the little tasks needed to create a bigger piece of code. I use this a lot just for a reference.
  • Python Scripting for Computational Science, Hans Petter Langtangen, Springer
    If you liked the lecture notes from Dr. Lantangen, then buy the book. This has about all you need to know about using Python in scientific programing. Once you know the language to a certain degree, this book is full of examples of small bits of code to do all the little tasks needed to create a bigger piece of code. I use this a lot as a algorithm reference.