Mini Assignment - Due Friday May 1:

From Craig:

I've pushed a README file to the class repository on github that contains a simple programming assignment for this week.

Main Assignment - Due Thursday May 7 by 10pm

Upload the assignment here



DO NOT PUT OFF WORKING ON THIS - BUILD YOUR TEAM and GET STARTED

This assignment will center on another common element of working with data that is distributed in space and time and with correlated and clustered events. In this case the data is occurence of moderate to strong earthquakes over the time period 1900--2008. This assignment can be done using any programming language or application that you can.

You are ENCOURAGED to do this project collaboratively by sharing code on GITHUB. For instance, your team might divide itself among the FIVE tasks below.

You are to produce the following FIVE products from this data and note that a single program should be sufficient to populate all the data required for the graphs and tables below.

  1. An event counter interface where the use enters latitude, longtiude, begin year, end year, and magnitude threshold and the counter returns the values. While you are strongly encouraged to make some kind of GUI inteface for these queries, you don't have too. As an alternative you can enter in parameters on a command line to some python program for sorting and printing. An example of this will be shown in class on Friday May 1.

    See this example hurricane event counter for reference to a GUI interface that counts and return events within parameter ranges.

    Provide a sample output of your table that contains earthquake occurences within a radius of 100 miles from Seattle Washington. Note that negative longitudes (like Seattle would be) represent those longtitudes WEST of Greenwich.

  2. Write a clustering detection algorithm where clustering are events that occur at nearly the same latitude and longtitude and nearly the same time (you can decide what nearly means). Provide an output table of those clustered events and represent this clustering in some visual way.

    Note: this is hard, you will likely make the mistake of finding way too many cluster events. You need to think scientifically about what physically might define a clustered set of earthquakes.

  3. Using one of the visuals in the D3 Gallery plot the location (latitude and longtitude) of all events that occurred within the longtitude range -75 to -150.

  4. Using one of the visuals in the D3 Gallery make a time line of all events of magnitude > 7.0

  5. Using the "What Makes People Happy" multiple axis graph in the D3 library, set it up with the following variables that could populate either the X or Y axis. Note there are now many alternatives to the multiple axis plot, this is just one example.

    • Longtitude
    • Depth
    • Magnitude
    • Year


    Here is an example of an interchangeable X,Y axis plot

    Be happy code example to steal from


  1. Get the Data File

    This time I have preformatted the data and thrown away extraneous stuff.

    There are six columns of information:

    • Column 1 a technique descriptor which you do not need
    • Column 2 year of occurrence
    • Column 3,4 is lat/long
    • Column 5 is depth under the surface; 0 indicates no data
    • Column 6 richter scale magnitude of the quake


  2. This is due by 10 pm on Thursday May 7