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



Instructor: Bob Smalley
Office hours: 2-4 M Th&Th

Course Description:

The course provides an overview of common tools used by geoscientists. Homework assignments are designed to develop a working knowle, VAdge of a wide range of computer tools. Emphasis is placed on working in a Unix environment. Topics will include Unix, programming in MATLAB®,  scripting (sh and csh), AWK, Seismic Analysis Code (SAC), network tools such as FTP, VNC, X display, Generic Mapping Tools (GMT) 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.

Texts:

Unix Visual Quickstart Guide, Fourth Eddition, D.S. Ray and E.J. Ray

The Univerity is licensed to access many Unix books online.

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)

Mathworks
Getting started with Matlab

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 be related to your primary research interest or topic. The project must be approved before starting work. Each student will give a 20 minute presentation the last day of class.

Grading:

70% homework, 10% class participation, 20% final project.
Project:

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 day 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.

Classes:

        (links open pdf of class)
Sep      1    NO CLASS - to be made up
Sep      3    NO CLASS - to be made up
Sep      8    Class 1 - intro
Sep      8    Class 1 - basics-1
Sep    10    Class 2 - basics-2
Sep    15    Class 3 - basics-3
Sep    17    Class 4, 5 -  basics-4, make up 1 - class (2 pm) basics-5
Sep    22    Class 6 - shell scripting 101
Sep    24    NO CLASS - to be made up
Sep    29    Class 7 - shell scripting 201+intro awk, make up 2 - lab (2 pm).
Oct      1    Class 8 - awk
Oct      6    Class 9 - SAC (1)
Oct      8    Class 10 - SAC (2)
Oct    13    Class 11 - GMT (1), make up 3 - lab (2:30 pm).
Oct    15    Class 12 - GMT (2)
Oct    20    Fall Break - NO CLASS
Oct    22    Class 13 - GMT (3)
Oct    27    Class 14 - computer representation of numbers
Oct    29    NO CLASS - to be made up - attend USGS meeting on New Madrid
Nov     3    Class 15 - MATLAB - 1
Nov     5    Class 16 - MATLAB - 2, newton's method and convergence speed example
Nov   10    Class 17 - MATLAB - 3
Nov   12    Class 18 - MATLAB - 4, Typinski-EarthGrav
Nov   17    Class 19 - MATLAB and GMT output to Adobe Illustrator, Newtons Method convergence for complex functions
Nov   19    Class 20 - MATLAB - 5
Nov   24    Class 21 - MATLAB - 6, PCA example
Nov   26    Thanksgiving - NO CLASS
Dec      1    Class 22 - MATLAB 7, GUIs
Dec      3    Class 23 - FORTRAN and C
Dec      8    Present projects.

(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.)


Homeworks:

        Sep 10 - HW-1, distributed by email. Due: Tue, Sep. 15.
        Sep 15 - HW-1a, correct HW-1, additional questions. Due: Th, Sep. 17.
        Sep 17 - HW-2, Due: Tue, Sep. 22. Since no-one finished this one - it is extended till Tue, Sep 29 (when HW3 is also due)
        Sep 22 - HW-3, Due: Tue, Sep. 29.
        Oct 2 -   HW-4, Due: Thu Oct 8.
        Oct 9 -   HW-5,  Due: Tue., Oct. 13. This is going to be a big exercise that we will work on in several installments, so it will be broken down into little parts.
        Oct 13 - HW-5-2,  Due: Thu., Oct. 15. This adds the next installment (question 6). Feel free to come to my office or email me.
        Oct 25 - HW-5-3, Due: Thu., Oct. 22. Adds another installment (questions 7-9)
        Nov 3 - HW-6, Due: Thu., Nov. 5. Short Matlab homework.
        Nov 9 - HW-7, Due: Thu., Nov. 12. Short Matlab homework.
        Nov 12 - HW-8, Due: Thu., Nov.19. Short Matlab homework.
        Nov 24 - HW-9, Due: Tue Dec 1, another Short Matlab homework.



Additional files/link:


        Unix_tutorial
        Unix_book
        unix-intro

        (home for unix wizards)
        metacharacters and quotes
        regular expressions
        another regular expressions
        more regular expressions

        printf format specification
       

       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
       ARE unix tutorial
       UNIX Power Tools
       Permissions
       redirection


    BASH programming

       How-to BASH
       bash internal variables
       bash beginners guide

    man pages

       wiki man entry


    nedit

       Nirvana Editor (nedit)


     vi and vim editors

       viRef
       whyVI
       vi graphical cheat sheet
       vi editing
       wiki vi entry
       wiki vim entry
       vim quick reference card
       vim doc
       vim tutorial book (572 pages!)

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

       vim tutorial
       another vim tutorial
       vim regular expressions
       vim tips


    AWK

       Intro&Tutorial
       arrays

  
    SAC

       manual page at iris
       general info
       tutorial
       another tutorial


      GMT

       Andrew Newman's intro

      Matlab

       David Jacobs, U. Maryland
       Tim Marks, UCSD
       Joseph Bradley, Carnegie Mellon U.
       Peter Acklam array manipulation
       U Florida (plus other computer stuff)
       cell arrays to structures and back - the "deal" function
       how to vectorize code


     CERI Computer informatoin

       CERI Computer Network Facts (and some opinion) (from 2007, somewhat out of date)


    Sesimic Data sources

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

    Geosciences Freeware/Shareware

       from J. Butler
       R. Allmendinger
       C. Ammon/SLU

    Opinions/fun stuff

       Matt's rants

PCA

      Tutorial - Shlens   


Geoff Blewitt's - intro GPS processing
       Docu 1
       Docu 2

      Inversion Class - guest lecture GPS and earthquake location