Sometimes it is easier to augment these programs by writing a small program to do
one step in the processing or to convert data formats.
2. Special programs: freeware, shareware and commercial. Some programs are readily
available (e.g. CSDCorrections, NIHImage) while others can be very expensive.
Most freeware is not available in all operating systems. However, Java programs
(e.g. ImageJ) can be used on most operating systems. There are a number of large and
comprehensive statistical packages that can be used to manipulate data (SAS, SPSS).
3. Macros (procedures) for high-level languages, such as Mathematica, Maple, Matlab
(Middleton, 2000), ImageJ and IDL . Such languages are very powerful but are not
so readily available. They have a steep learning curve for beginners. Many aca-
demic researchers may not realise that they already have access to these packages,
sometimes via e ngineering departments. Many compiled IDL programs can be run,
but not modified, with the aid of a free program called a ‘Virtual Machine’.
4. Uncompiled program code in common languages such as FORTRAN, C, Pascal or
Basic. Such code must be compiled for the operating systems that will be used.
Many compilers are commercial and can be expensive. Minor code modifications
are commonly needed and necessitate some knowledge of programming or a help-
ful assistant.
5. Mathematical equations and algorithms. Some equations are easily applie d but
others necessitate that software must be written before the method can be applied.
6. ‘Home-made’ software. Software development with ‘visual’ compilers like Visual
Basic, Visual C or Delphi (¼ visual Pascal) is relatively easy for simple applications,
but difficult to perfect. If you have no programming experience you should expect
to spend a week before you can make a simple program. Visual Basic is slow and
should not be used for calculation intensive applications. Visual C or Delphi are
not much more difficult to learn and produce a faster program.
All methods should ideally be tested with standard materials or synthetic data
derived using independent methods, but this is not always available. Software
‘bugs’ and operating system incompatibilities are inevitable – producers of
scientific software cannot usually test their programs on all systems and generally
welcome constructive comments. They are generally geologists and not program-
mers. They do not like to hear ‘your program never worked so I abandoned it’.
Software mentioned in this book is described in the Appendix and also on a
website, which will be updated regularly (http:/ /geol ogie .uqac.c a/% 7Emhig gins/
CSD.html).
Notes
1. In this book I will address igneous and metamorphic petrology. Quantification of textures is
an important part of sedimentary petrology, particularly grain-size analysis of unconsoli-
dated sediments, but the subject is too vast and distant from the petrology of crystalline rocks
to be bridged by one author in one book.
6 Introduction