Actions

Difference between revisions of "Python for Physics and Astronomy"

From AstroEd

 
(5 intermediate revisions by the same user not shown)
Line 12: Line 12:
 
#[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#Installing_Python_on_your_computer 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#IDE.27s_and_Editors_and_Python_environments Editors and environments]
[http://prancer.physics.louisville.edu/astrowiki/index.php/Very_simple_Python#IDE.27s_and_Editors_and_Python_environments Editors and environments]
+
##[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#Using_Python_in_real_time Using it in real time]
 
 
##[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/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]  
Line 60: Line 58:
 
##[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]
#[http://prancer.physics.louisville.edu/astrowiki4/index.php/User_Interfaces User interfaces]
+
#[http://prancer.physics.louisville.edu/astrowiki/index.php/User_Interfaces User interfaces]
##[http://prancer.physics.louisville.edu/astrowiki4/index.php/User_Interfaces#Command_Line_Interfacing_and_Access_to_the_Operating_System  Command line interfacing and access to the operating system]  
+
##[http://prancer.physics.louisville.edu/astrowiki/index.php/User_Interfaces#Command_Line_Interfacing_and_Access_to_the_Operating_System  Command line interfacing and access to the operating system]  
##[http://prancer.physics.louisville.edu/astrowiki4/index.php/User_Interfaces#Graphical_User_Interfacing  Graphical user interfacing]
+
##[http://prancer.physics.louisville.edu/astrowiki/index.php/User_Interfaces#Graphical_User_Interfacing  Graphical user interfacing]
 +
##[http://prancer.physics.louisville.edu/astrowiki/index.php/User_Interfaces#Running_a_Server_with_Javascript  Running a server with javascript]
 +
#[http://prancer.physics.louisville.edu/astrowiki/index.php/How_to_Create_a_Javascript_Program How to create a javascript program]
  
  

Latest revision as of 08:57, 8 February 2017

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.


This resource was developed as part of a full semester Research Methods class. Various examples that may be useful for developing small Python programs are collected here. They are a basis for a few exercises that were assigned during the course are are available here.


The topics and examples cover --

  1. Why program? Choosing a language.
  2. Very simple Python
    1. Installing it on your computer
    2. Editors and environments
    3. Using it in real time
    4. Using code as a standalone program
    5. Examples
    6. Assignments
  3. Elements of Python programming
    1. Input and output
    2. Data types: numbers and strings
    3. Lists, tuples, dictionaries, and statements
    4. Examples
    5. Assignments
  4. Solving problems with Python
    1. Flow control
    2. Functions
    3. Iteration
    4. Examples
    5. Assignments
  5. Graphics with Python
    1. Installation of matplotlib
    2. Learning the basics of 2D data and function plotting
    3. Interactive plotting
    4. A little 3D plotting
    5. Examples
    6. Assignments
  6. NumPy, SciPy and SciKits
    1. Numpy
      1. Arrays
      2. Indexing
      3. Functions
      4. Matrix and vector math
      5. Fourier Transforms
    2. SciPy and SciKits
      1. Interpolation
      2. Integration
      3. Differentiation
      4. Statistics
    3. Examples
    4. Assignments
  7. Image processing with Python and SciPy
    1. Python Imaging Library - PIL
    2. Images with NumPy and SciPy
    3. Astronomical FITS files with PyFITS
    4. Other processing
    5. SciKits
    6. Examples
    7. Assignments
  8. User interfaces
    1. Command line interfacing and access to the operating system
    2. Graphical user interfacing
    3. Running a server with javascript
  9. How to create a javascript program


These topics may be added to a longer version of this course or as working notes when time allows.

  1. Real world interfacing
    1. Instrumentation and communication
    2. Serial ports
    3. USB
    4. TCPIP
    5. Threading
    6. Incorporating manufacturer's code
  2. 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
  3. Python and 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 and AstroImageJ