Programming and programming practices
Programming is a fundamental skill in data analysis. Listed below are several programming languages and packages that are commonly used to perform solar data analysis. There is also a short section with links to resources that promote good programming practices such as version control and reproducible science.
The Interactive Data Language (IDL), provided by Exelis, is a programming language heavily used in solar physics. It is a proprietary and closed source language, and a license must be purchased in order to use it for most purposes.
- IDL home page
- Language documentation
- IDL programming books (maintained by Exelis)
- IDL Tutorials (Google search)
The GNU Data Language is a free/libre/open source incremental compiler compatible with IDL.
- GDL home page
- download and installation instructions, documentation
A large collection of routines used in solar physics data analysis. Most, but not all of Solarsoft is written in IDL.
The Python programming language is become increasingly popular for scientific computing. Python itself is free and open source, and is installed by default on many platforms. There are thousands of tutorials online concerning Python programming, and scientific programming using Python. If you have a Python programming problem, the quickest way to obtain help is to type your question into a search engine and read the results.
- Introductory Python programming books (list maintained by python.org)
- Introductory Python tutorials (list maintained by python.org)
For help on getting a working scientific Python installation, please see the section below on SunPy.
SunPy is a community-developed free and open-source Python software package for solar physics. The aim of the SunPy project is to provide the software tools necessary so that anyone can analyze solar data. SunPy is written using the Python programming language and is built upon the scientific Python environment.
- SunPy installation instructions
- installation instructions for SunPy and the scientific Python packages it depends on.
- SunPy homepage
- documentation, functionality and code examples.
The Perl Data Language (PDL) gives standard Perl the ability to compactly store and speedily manipulate the large N-dimensional data arrays which are the bread and butter of scientific computing. PDL turns Perl into a free, array-oriented, numerical language similar to such commercial packages as IDL and MatLab. Perl itself is free and open source, and is installed by default on many platforms. There are thousands of tutorials online concerning Perl programming. PDL installation instructions, documentation and tutorials can be found at via the links below.
R is a very popular, well supported and freely available language and environment for statistical computing and graphics which provides a wide variety of statistical and graphical techniques: linear and nonlinear modelling, statistical tests, time series analysis, classification, clustering, etc. There are many freely available packages implementing a wide range of analyses. There are also many tutorials and online resources for R. Below is a small selection of resources to get you started using R.
- R homepage
- download and install R, documentation.
- R Tutorials (Google search)
- R books (maintained by the R Project)
- looking for a particular type of analysis? you can use rseek.org search through thousands of R packages.
- articles on research using R, new packages, code tips, etc.