Python for Physics and Astronomy: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(40 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
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 | 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 | |||
[http://prancer.physics.louisville.edu/astrowiki/index.php/Research_Methods Research Methods] class. Various examples that may be useful for | |||
developing small Python programs are collected [http://prancer.physics.louisville.edu/astrowiki/index.php/Python_examples here]. They are a basis for a few exercises that were assigned during the course are are available [http://prancer.physics.louisville.edu/astrowiki/index.php/Python_assignments here]. | |||
The topics and examples | The topics and examples cover -- | ||
#[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#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#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] | ||
Line 18: | Line 18: | ||
##[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/Elements_of_Python_programming Elements of Python programming] | #[http://prancer.physics.louisville.edu/astrowiki/index.php/Elements_of_Python_programming Elements of Python programming] | ||
##Input and output | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/Elements_of_Python_programming#Input_and_output Input and output] | ||
##Data types: numbers and strings | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/Elements_of_Python_programming#Numbers.2C_text.2C_and_data_types Data types: numbers and strings] | ||
##Lists, tuples, dictionaries, and statements | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/Elements_of_Python_programming#Lists.2C_tuples.2C_dictionaries.2C_and_statements Lists, tuples, dictionaries, and statements] | ||
## | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/Python_examples Examples] | ||
##[http://prancer.physics.louisville.edu/astrowiki/index.php/Python_assignments Assignments] | |||
##Assignments | #[http://prancer.physics.louisville.edu/astrowiki/index.php/Solving_problems_with_Python Solving problems with Python] | ||
#Solving problems with Python | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/Solving_problems_with_Python#Flow.2C_control Flow control] | ||
##Flow control | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/Solving_problems_with_Python#Functions Functions] | ||
##Functions | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/Solving_problems_with_Python#Iteration Iteration] | ||
##Iteration | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/Python_examples Examples] | ||
##Examples | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/Python_assignments Assignments] | ||
##Assignments | #[http://prancer.physics.louisville.edu/astrowiki/index.php/Graphical_User_Interface_with_Python Graphical User Interfaces with Python] | ||
#Graphics | #[http://prancer.physics.louisville.edu/astrowiki/index.php/Graphics_with_Python Graphics with Python] | ||
##Matplotlib | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/Graphics_with_Python#Installation_of_matplotlib Matplotlib] | ||
##Examples | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/Graphics_with_Python#Learning_the_basics_of_2D_data_and_function_plotting Learning the basics of 2D data and function plotting] | ||
##Assignments | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/Graphics_with_Python#Interactive_plotting Interactive plotting] | ||
# | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/Graphics_with_Python#A_little_3D_plotting A little 3D plotting] | ||
##Numpy | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/Graphics_with_Python#Bokeh Bokeh] | ||
## | ##[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/NumPy,_SciPy_and_SciKits NumPy, SciPy and SciKits] | ||
## | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/NumPy,_SciPy_and_SciKits#Numpy Numpy] | ||
## | ###Arrays | ||
# | ###Indexing | ||
## | ###Functions | ||
## | ###Matrix and vector math | ||
## | ###Fourier Transforms | ||
## | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/NumPy,_SciPy_and_SciKits#SciPy_and_SciKits SciPy and SciKits] | ||
## | ###Interpolation | ||
##Examples | ###Integration | ||
##Assignments | ###Differentiation | ||
# | ###Statistics | ||
## | ##[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/Image_processing_with_Python_and_SciPy Image processing with Python and SciPy] | ||
## | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/Image_processing_with_Python_and_SciPy#Python_Imaging_Library_-_PIL Python Imaging Library - PIL] | ||
## | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/Image_processing_with_Python_and_SciPy#Images_with_NumPy_and_SciPy Images with NumPy and SciPy] | ||
##Examples | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/Image_processing_with_Python_and_SciPy#Astronomical_FITS_files_with_PyFITS Astronomical FITS files with PyFITS] | ||
##Assignments | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/Image_processing_with_Python_and_SciPy#Other_processing Other processing] | ||
#User interfaces | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/Image_processing_with_Python_and_SciPy#SciKits SciKits] | ||
##Command line and the operating system | ##[http://prancer.physics.louisville.edu/astrowiki/index.php/Python_examples Examples] | ||
##Graphical user | ##[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#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#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] | |||
These topics may be added to a longer version of this course or as working notes when time allows. | |||
#Real world interfacing | |||
##Instrumentation and communication | |||
##Serial ports | |||
##USB | |||
##TCPIP | |||
##Threading | |||
##Incorporating manufacturer's code | |||
#Working with the web | #Working with the web | ||
##HTTP servers | ##HTTP servers | ||
Line 69: | Line 83: | ||
##Using Python with CGI | ##Using Python with CGI | ||
##Programming for server-side processing | ##Programming for server-side processing | ||
# | #Python and other languages | ||
##Bash scripting in Unix-like systems | ##Bash scripting in Unix-like systems | ||
##Very simple C | ##Very simple C | ||
Line 77: | Line 89: | ||
##Android for web development | ##Android for web development | ||
##LabVIEW for instrument control and data analysis | ##LabVIEW for instrument control and data analysis | ||
##Java for astronomical calculations: AstroCC | ##Java for astronomical calculations: AstroCC and AstroImageJ | ||
Revision as of 02:08, 12 March 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 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 --
- Why program? Choosing a language.
- Very simple Python
- Elements of Python programming
- Solving problems with Python
- Graphical User Interfaces with Python
- Graphics with Python
- NumPy, SciPy and SciKits
- Numpy
- Arrays
- Indexing
- Functions
- Matrix and vector math
- Fourier Transforms
- SciPy and SciKits
- Interpolation
- Integration
- Differentiation
- Statistics
- Examples
- Assignments
- Numpy
- Image processing with Python and SciPy
- User interfaces
- 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.
- Real world interfacing
- Instrumentation and communication
- Serial ports
- USB
- TCPIP
- Threading
- Incorporating manufacturer's code
- Working with the web
- HTTP servers
- Getting data from servers
- Sending data to servers
- Common gateway interface - CGI
- Using Python with CGI
- Programming for server-side processing
- Python and other languages
- Bash scripting in Unix-like systems
- Very simple C
- Using Python with other code
- Android for web development
- LabVIEW for instrument control and data analysis
- Java for astronomical calculations: AstroCC and AstroImageJ