ESCI 7205 Data Analysis in Geophysics
Fall 2011
TuTh 09:40-11:05 AM
CERI House 3 Conference Room or UNIX Lab

Instructor: Bob Smalley
Office hours: 2-4 M, Tu & Th, and when you see me in my office.

gps orbit
GPS orbit in Earth Fixed Frame

Course Description:

The course provides an overview of common tools used by geoscientists. Homework assignments are designed to develop a working knowledge of a wide range of computer tools. Emphasis is placed on working in a UNIX environment. Topics will include UNIX (MacOS-X Darwin), programming in MATLAB®,  scripting (sh and csh), AWK/NAWK, Seismic Analysis Code (SAC), Generic Mapping Tools (GMT), network tools such as FTP, VNC, X display, and Adobe Illustrator, EXCEL, Web page development, and an overview of Fortran and C. The course will include hands on experience on the CERI comptuer system.


The Univerity is licensed to access many UNIX books online at safaribooksonline. Access to this website is free from the Univerity of Memphis network.

UNIX Visual Quickstart Guide, Fourth Edition, D.S. Ray and E.J. Ray. This book will serve as the "textbook" for the introduction to UNIX part of the course. It is available at (thorugh the link given). Reading assignments from this book will be assigned.

We will also reference:

Classic Shell Scripting, A. Robbins and N.H.F. Beebe.

The "AWK book"
Awk Article 1
Awk Article 2
Awk Article 3

Generic Mapping Tools (GMT)

Seismic Analysis Code (SAC)


Getting started with Matlab: html, pdf
Course requirements:
Students must attend all lectures and labs. Class absences must be discussed PRIOR to the missed class.

Homework assignments must be handed in on time; 10% will be taken off for each day late.

The class will include completing a computer based research project that uses the tools discussed in class. The project can, but is not required to, be related to your primary research interest or topic. The project must be approved before starting work. The project should not also be used for another class you are currently taking. Each student will give a 20 minute presentation the last day of class.

70% homework, 10% class participation, 20% final project. There is no final exam.
Homework assignments will be posted on the class web page and distributed by email.
Each student will design, implement and present a small-scale data analysis project. The project should use programs and/or techniques discussed in the class. Geophysics data is preferred and a project releated to the student's own research is encouraged. Use of SAC, and/or MATLAB, and/or GMT as part of the project is mandatory. The topic should be discussed with me, decided on and approved no later than Nov 3rd. Each student will give a 20 minute PowerPoint presentation the last two days of class. The project should be thoroughtly documented and all scripts/programs/macros turned in as part of the project. There will be no final exam.

        (Clicking on links opens a pdf of the class. Notes are uploaded after class.)
Aug    30    Tu    Class 1 - intro, class 1 - intro, UNIX
Sep     1      Th    Class 2 - class 2 - UNIX
Sep     6      Tu    Class 3 - class 3 - UNIX
Sep     8      Th    NO CLASS - to be made up
Sep     13    Tu    Class 4 - class 4 - UNIX
Sep     15    Th    Class 5 - class 5 - VI and other editors 
Sep     20    Tu    Class 6 - class 6 - UNIX, Shell scripts (intro programming)
Sep     22    Th    Class 7 - class 7 - scripts
Sep     27    Tu    Class 8 - class 8 - awk
Sep     29    Th    Class 9 - class 9 - awk
Oct     4      Tu    Class 10 - class 10 - awk
Oct     6      Th    Class 11 - class 11 - GMT, intro gmt script
Oct     10    Tu    Class 12 - class 12 - GMT, topo map example
Oct     11    Tu    Class 13 - class 13 - GMT, representation of numbers on computer, math on computer
Oct     13    Th    Class 14 - class 14 - MATLAB
Oct     18    Tu    Fall Break - NO CLASS
Oct     20    Th    Class 15 - class 15 - MATLAB
Oct     25    Tu    Class 16 - class 16 -MATLAB
Oct     27    Th    Class 17 - class 17 - MATLAB
Nov    1      Tu    Class 18 - class 18 - MATLAB, here are the two files for the GUI example done in class (draw a function): GUI fig file GUI m file.
Nov    3      Th    Class 19 - class 19 - SAC
Nov    8      Tu    Class 20 - class 20 - SAC
Nov   10     Th    Class 21 - class 21 - SAC, IRIS DMC, ftp
Nov   15     Tu    Class 22 - class 22 - misc MATLAB, editing GMT and MATLAB figures with Adobe Illustrator
Nov   17     Th    Class 23 - class 23 - Fortran
Nov   22     Tu    Class 24 - GIS - guest lecture by Kathy Tucker and make-up for Dec 6 class 24 - C
Nov   24     Th    Thanksgiving - NO CLASS
Nov   29     Tu    Class 25 - Present projects - 15 mins each, 5 students - John, Cecilia, Wes, Nayeem, Sara
Dec      1    Th    Class 26 - Present projects - 15 mins each, 4 students - Bryan, Moji, Ali, Amanda
Dec      6     Tu   NO CLASS - out of town for AGU meeting

(I sometimes make changes to the notes presented in class - based on questions/comments during the class or because I found something interesting. The files at the links above are therefore not completely static during the semester.)

        Aug   30   - HW 1, Due: Th, Sep 1, Read Ch 1 of "UNIX and LINUX" by Ray and Ray
        Sep    1    -  HW 2, Due: Th, Sep 15, (no class Th, Sep 8), Read Ch 2 of "UNIX and LINUX" by Ray and Ray for Sep 6.
        Sep    6     -
        Sep    13   - HW 3, Due: Th, Sep 22, Read Ch 3-6 of "UNIX and LINUX" by Ray and Ray.
        Sep    20   - HW 4, Due: Tu, Sep 27.
        Sep    27   - HW 5, Due: Tu, Oct 4.
        Oct    4     - HW 6, Due: Tu, Oct 11.
        Oct    11   - HW 7, Due: Th, Oct 20.
        Oct    20   - HW 8, Due: Tu, Oct 25.
        Oct    25   - HW 9, Due: Tu, Nov 1.
        Nov   1     - no HW.
        Nov   3    - Written project descriptions due. These descriptions will serve as the specifications against which the project will be judged.
        Nov   8     - no HW.
        Nov   15   - HW 10,  Due: Tu, Nov 22.
        Dec   1    - All projects due.

Additional UNIX files/link:

        UNIX_tutorial (Havill, 2006)
        UNIX_book (Fiamingo et al, 1998)
        UNIX_in a nutshell (3rd ed., not latest, Robbins, 1999)
        unix-intro (Satten, 1989. Unlike a traditional introduction to Unix, the emphasis of this one is on philosophy and brevity. When
                           you understand how the creators of Unix intended you to use it, you’ll approach Unix on it’s "best side". This
                           introduction intends to help a new Unix user get started on the right foot quickly.)
        The Linux Development Project Excellent collection of documentation, tutorials, etc. See especially the The Advanced Bash Scripting Guide
        The Grymoire - home for UNIX wizards
        UNIX SHELL Quote Tutorial (Grymoire)
       The UNIX Haters Handbook
       The truth about UNIX: The user interface is horrid
       UNIX is a four letter word
       The rise and fall of UNIX

Links and other useful info:

        Most useful non-human resource --- GOOGLE. You can find just about anything you need on the web.

       list of typical unix commands
       UNIX Power Tools
       another Permissions
       A UNIX/Linux Find Command Tutorial
       file globbing

    BASH programming

       How-to BASH
       bash internal variables
       bash beginners guide

       csh vs bash in scripting - Top Ten Reasons not to use the C shell

       Tests and arrays from Advanced Bash-scripting guide html or Advanced Bash-scripting guide pdf This tutorial assumes no previous knowledge of scripting or programming, but progresses rapidly toward an intermediate/advanced level of instruction . . . all the while sneaking in little nuggets of UNIX® wisdom and lore.

    man pages

       wiki man entry


       Nirvana Editor (nedit)

     sed (plus more on regular expressions)

       Sed - an introduction
       GNU/Linux Sed (Prasad, 2008)

    vi and vim editors
    Google on "vi tutorial" or "vim tutorial" for a large number of additional tutorials and references on vi and vim.

       vi graphical cheat sheet
       vi editing - jmcpherson
       vi editing - dheller
       wiki vi entry
        Vi pages - Substitution guide
       The Vi editor and its clones
       wiki vim entry
       vim quick reference card
       vim tutorial book (572 pages!)
       vim tutorial
       another vim tutorial
       yet another vim tutorial
       vim regular expressions
       vim tips
       vi/vim tutorial
       vi lover's home page
       vi (Hruza, good list of commands)

    Editor Wars

    Regular Expressions

        regular expressions (Grymoire)
        regular expressions (from
        regular expressions (zytrax)
        regular expressions (Sedgwick and Wayne, Princeton)


       Intro & Tutorial
       Awk Programming language ( Robbins, Close, Rubin, and Stallman, Utah Math department, 1996)
       The AWK Programming Language, Robbins, Unix in a Nutshell, Ch 11, sample chapter
       Awk Introduction Tutorial - 7 Awk Print Examples
       awk arrays

       printf format specification

       manual page at iris
       users guide at iris
       general info
       Zhigang Peng's tutorial
       Chuck Ammon's tutorial

      SAC alternatives
      Project SEIZMO


      Tutorial by Wessell (one of the co-authors of GMT)
      my "Tools of the Trade" (TOT) presentation
      Andrew Newman's intro
      GMT (X11) color names - gmtcolors - info on using color names, gmtcolors and man gmtcolors do ont work on CERI mac system.

      DEM data
      CGIAR - SRTM 90m Digital Elevation Database v4.1


       David Jacobs, U. Maryland
       Tim Marks, UCSD
       Peter Acklam array manipulation
       U Florida (plus other computer stuff)
       cell arrays to structures and back - the "deal" function
       how to vectorize code from Matlab tips and tricks by Mario Athineos
       Vectorization Drea's notes
       control tutorials
       Tutorials on Analysis of Data using MATLAB
       Textbooks by Cleve Moler one of the authors of Matalb - "Numerical Computing with Matlab" and "Numerical Experiments with Matlab"


       Fortran tutorial


       C tutorial short
       C tutorial longer
       pointer tutorial

     CERI Computer informatoin

       CERI Computer Network Facts (and some opinion) (updated June 2011)

    Sesimic Data sources

       seismosurfing the internet (very old and now static, but many of the links still work)

    Geosciences Freeware/Shareware

       J. Butler
       R. Allmendinger
       C. Ammon/SLU
       Mike Thorne's software downloads - SAC to Matlab and ohter stuff.

    Mac Stuff

       Mac Keyboard shorcuts Dan Rodney, Mac Central

    Opinions/fun stuff

       Matt's rants


      Tutorial - Shlens   

Finding old web pages. An archive of some old links that have gone away. Beta version.

       Wayback page

Missing links.

Just about everything on the Web is "under construction" as links are ephermeal. I usually link to the source pages, rather than offer a local copy. This means they can go away. Please resport broken links. Some are recoverable, but many just disappear into the ether.

If you find this web site useful and have any questions, have found any errors, etc., please feel free to contact me - rsmalley at memphis dot edu