Difference between revisions of "Python for Physics and Astronomy"

From AstroEd
Jump to navigation Jump to search
Line 68: Line 68:
##[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/astrowiki/index.php/User_Interfaces User interfaces]
#[http://prancer.physics.louisville.edu/astrowiki/index.php/User_Interfaces User Interfaces]
##[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/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/astrowiki/index.php/User_Interfaces#Graphical_User_Interfacing Graphical user interfacing]
##[http://prancer.physics.louisville.edu/astrowiki/index.php/User_Interfaces#Graphical_User_Interface_to_Plotting Graphical User Interface to Plotting]
##[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/User_Interfaces#Running_a_Server_for_Javascript_in_a_Browser_Engine Running a Server for Javascript in a Browser Engine]
#[http://prancer.physics.louisville.edu/astrowiki/index.php/How_to_Create_a_Javascript_Program How to create a javascript program]
#[http://prancer.physics.louisville.edu/astrowiki/index.php/How_to_Create_a_Javascript_Program How to create a javascript program]

Revision as of 07:06, 10 April 2018

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 a component of a 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.

This resource is maintained so that it is reasonable current with the latest releases of Python 3 and component modules. The code discussed has been tested in Python 3.6, though some pieces of older code may still be lurking, they should be recognizable and easily modified if errors occur.

The topics and examples covered --

  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. Graphical User Interfaces with Python
    1. A Tk Tutorial
    2. Building a Program
    3. Interfacing an Instrument
    4. Events and Control
    5. Widgets
  6. Graphics with Python
    1. Matplotlib
    2. Learning the basics of 2D data and function plotting
    3. Interactive plotting
    4. A little 3D plotting
    5. Bokeh
    6. Examples
    7. Assignments
  7. NumPy, SciPy and SciKits
    1. NumPy
      1. Arrays
      2. Indexing
      3. Functions and Broadcasting
      4. Matrix and Vector Math
      5. Fourier Transforms in NumPy
    2. SciPy and SciKits
      1. Interpolation
      2. Integration
      3. Differentiation
      4. Statistics
    3. Examples
    4. Assignments
  8. Image processing with Python and SciPy
    1. Python Imaging Library - PIL
    2. Images with NumPy and SciPy
    3. Astronomical FITS Files
    4. Other Processing
    5. SciKits
    6. AstroImageJ and Alsvid
    7. Examples
    8. Assignments
  9. User Interfaces
    1. Command Line Interfacing and Access to the Operating System
    2. Graphical User Interface to Plotting
    3. Running a Server for Javascript in a Browser Engine
  10. 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. Bayesian methods with Python and Markov Chain Monte Carlo (MCMC) analyses
  2. Real world interfacing
    1. Instrumentation and communication
    2. Serial ports
    3. USB
    4. Ethernet and TCPIP
  3. Parallel processing
    1. Using all the processors (CPUs) in your computer
    2. Using graphical processing units (GPUs)
    3. Artificial intelligence computing with tensor processing units (TPUs)
  4. Working with the web
    1. HTTP servers
    2. Getting data from servers
    3. Sending data to servers
    4. Using Python with the Common Gateway Interface (CGI)
    5. Programming for server-side processing
  5. Python and other languages
    1. Bash scripting in Unix-like systems
    2. Gnu Data Language (GDL) as a replacement for IDL or bridge to Python
    3. Very simple C
    4. Connecting Python to the browser engine
    5. Chrome and Firefox for web development
    6. Java for astronomical calculations: AstroCC and AstroImageJ