Differences between revisions 3 and 4
Revision 3 as of 2009-10-18 10:55:43
Size: 3632
Editor: anonymous
Comment:
Revision 4 as of 2009-10-19 10:39:23
Size: 3881
Editor: anonymous
Comment:
Deletions are marked like this. Additions are marked like this.
Line 123: Line 123:
 * Read [[http://www.greenteapress.com/thinkpython/html/| Think Python: How to Think Like a Computer Scientist]] [[http://www.greenteapress.com/thinkpython/thinkpython.pdf|pdf]] Chapter 1-3 and solve the exercises 2.1, 2.2, 2.3, 3.1, 3.2, 3.3, 3.4

This lesson motivates the use of Python. The Python programming language is compared with other systems for geo-scientific data processing and analysis.

Software for geo-scientific data processing and analysis

Comparison of Programming Languages

Ideal programming language for geo-scientific data processing and analysis

  • Fast array operations
  • Image processing and numeric/scientific routines
  • Visualization
  • Various data formats
  • Processing of files and metadata
  • Short development cycles
  • Very high level of abstraction
  • Interactive

Ideal programming language for geo-scientific data processing and analysis?

  • Assembler
  • Fortran, C/C++, Java
  • Perl, Python
  • Matlab, IDL
  • Visual and menu driven environments, ENVI, GIS

Programming versus visual environments

  • Visual environments are very useful for specific tasks
  • Closed commerical software
  • Programming offers more flexibility
  • GIS scripting with python

Scripting verus Traditional Programming

  • Traditional programming refers to building usually large, monolithic systems
  • Fortran, C/C++, Java
  • Scripting means programming at a high and flexible abstraction level
  • Perl, Python, Ruby, Scheme, Tcl
  • Scientific computing environments
  • IDL, Matlab/Octave, Maple, Mathematica, R

Why Python?

Scalability

  • The ability to scale from easy to difficult problems and the ability for beginners and experts to be comfortable.
  • Python is easy enough to be a first language and powerful enough to write complex applications
  • Scientific computing is more than number crunching
    • Converting data formats
    • Extracting metadata from text
    • Working with a large number of files and directories
  • Object oriented programming possible, but not required
  • Simple interfacing of C,C++ and Fortran code
  • Heterogeneous data structures are easy to use
  • Readable and compact code
  • Freely available, open source, and runs on Unix, Mac and Windows

Scientific Python Environment

  • Basic Python has limited instruction set
  • Extensions (modules)
  • Scientific modules (scipy/numpy)
  • Interactive environment (ipython)
  • Plots and visualization (pylab)

Getting started with IPython and Pylab

Invoking the IPython shell

ipython -pylab

loads matplotlib module and enables interactive plotting

Quit with CTRL-D

Getting help

help()
help modules

list available modules

Features of IPython:

  • Command history (up, down)
  • Word completion by typing TAB
  • System commands through magic functions cd, ls, env, pwd
  • Access to Unix shell by prefix !, e.g. !ls -s | sort -g

  • Debugging and profiling
  • Program control: run

  • Print interactive variables who, whos

Are you a Matlab user?

The exercise is to plot a sine wave:

Matlab/Octave:

octave:1> x=linspace(0,2*pi,100)
octave:2> y=sin(x)
octave:3> plot(x,y)

Pylab:

In [1]: x=linspace(0,2*pi,100)
In [2]: y=sin(x)
In [3]: plot(x,y)

So, it works pretty much the same way!

Of course there are some differences but many similarities.

Exercise

LehreWiki: OpenSource2010/Lesson1 (last edited 2010-10-18 11:49:45 by anonymous)