Actions

Difference between revisions of "Python for Physics and Astronomy"

From AstroEd

Line 12: Line 12:
 
#[http://prancer.physics.louisville.edu/astrowiki/index.php/Programming_for_Physics_and_Astronomy  Why program? Choosing a language.]  
 
#[http://prancer.physics.louisville.edu/astrowiki/index.php/Programming_for_Physics_and_Astronomy  Why program? Choosing a language.]  
 
#[http://prancer.physics.louisville.edu/astrowiki/index.php/Very_simple_Python Very simple Python]
 
#[http://prancer.physics.louisville.edu/astrowiki/index.php/Very_simple_Python Very simple Python]
##[http://prancer.physics.louisville.edu/astrowiki/index.php/Very_simple_Python&section=1 Installing it on your computer]
+
##[http://prancer.physics.louisville.edu/astrowiki/index.php/Very_simple_Python#Installing_Python_on_your_computer Installing it on your computer]
##[http://prancer.physics.louisville.edu/astrowiki/index.php/Very_simple_Python&section=2 Using it in real time]
+
##[http://prancer.physics.louisville.edu/astrowiki/index.php/Very_simple_Python#Using_Python_in_real_time Using it in real time]
##[http://prancer.physics.louisville.edu/astrowiki/index.php/Very_simple_Python&section=3 Using code as a standalone program]
+
##[http://prancer.physics.louisville.edu/astrowiki/index.php/Very_simple_Python#Using_Python_code_as_a_standalone_program Using code as a standalone program]
 
##[http://prancer.physics.louisville.edu/astrowiki/index.php/Python_examples Examples]  
 
##[http://prancer.physics.louisville.edu/astrowiki/index.php/Python_examples Examples]  
 
##[http://prancer.physics.louisville.edu/astrowiki/index.php/Python_assignments Assignments]
 
##[http://prancer.physics.louisville.edu/astrowiki/index.php/Python_assignments Assignments]

Revision as of 22:37, 11 February 2013

The Python programming language is a widely used tool for basic research and engineering. Its rapid rise in popularity is supported by comprehensive, largely open-source, contributions from scientists who use it for their own work. This short course offers an introduction to Python with examples drawn from physics and astronomy as part of a full semester Research Methods class.

The examples are collected here.

All the assignments are here.

Homework should be uploaded here.

The topics and examples covered are --

  1. Why program? Choosing a language.
  2. Very simple Python
    1. Installing it on your computer
    2. Using it in real time
    3. Using code as a standalone program
    4. Examples
    5. Assignments
  3. Elements of Python programming
    1. Input and output
    2. Data types: numbers and strings
    3. Lists, tuples, dictionaries, and statements
    4. Mathematics
    5. Examples
    6. Assignments
  4. Solving problems with Python
    1. Flow control
    2. Functions
    3. Iteration
    4. Examples
    5. Assignments
  5. Graphics
    1. Matplotlib
    2. Examples
    3. Assignments
  6. Numpy, Scipy and Scikit
    1. Numpy arrays
    2. Numpy math
    3. Scipy interpolation and integration
    4. Scipy statistics
    5. Examples
    6. Assignments
  7. Images
    1. Python Imaging Library - PIL
    2. Astronomical FITS files with Pyfits
    3. FITS headers
    4. Processing and displaying images
    5. Scipy and Scikit for image processing
    6. Examples
    7. Assignments
  8. Data acquisition and processing
    1. Real world interfacing
    2. Numerical data from images
    3. Fourier Transforms
    4. Spectra
    5. Probability and statistics
    6. Examples
    7. Assignments
  9. User interfaces
    1. Command line and the operating system
    2. Graphical user interfaces in Python (GUI)
    3. Examples
    4. Assignments
  10. Working with the web
    1. HTTP servers
    2. Getting data from servers
    3. Sending data to servers
    4. Common gateway interface - CGI
    5. Using Python with CGI
    6. Programming for server-side processing
    7. Examples
    8. Assignments
  11. Comparing Python to other languages
    1. Bash scripting in Unix-like systems
    2. Very simple C
    3. Using Python with other code
    4. Android for web development
    5. LabVIEW for instrument control and data analysis
    6. Java for astronomical calculations: AstroCC
    7. Java for astronomical image processing and photometry: AstroImageJ