CMP 161 -- Programming Assignment 1

Due date:
11:59 pm, Wed, 2/13/2019

Objectives:

Learn about sparse data interpolation, and scalar and vector field visualization using pseudo-coloring and streamlines respectively.

Description:

There are many meteorological sensors around us. Each site usually have different types of sensors e.g. for wind, humidity, etc. They're often referred to as metstations. Your objective for this assignment is to create wind maps based on the wind sensor readings from metstations within a geographical region of interest. A wind map is a dense representation of the wind pattern derived from a few sensor readings. The user should have the ability to see:

Data, Spatial Extent, Interpolation:

Data: There are many potential sources of data for metstations e.g. accuweather.com sites, windalert.com, etc. One that also provides the coordinates as well as real-time data is the Bay Area Air Quality Management District site. To get to their metstations, scroll down to the Weather Data Map Layer, and click on the navigation icon on the upper left of the map. Select Meteorological Sites. Clicking on one of the triangular icons will provide information about that site. Associated meteorological data is obtained through a different page e.g. wind speed

Spatial extent: After obtaining the coordinates for the set of metstations, specify a spatial extent that is slightly larger so that all the metstations are contained within this bounding box.

Interpolation: Use inverse square distance Shepard's interpolation to populate a sampling grid over the spatial extent. The sampling grid should be at least 100x100. Higher resolution will produce nicer/smoother looking images. When placing glyphs for your arrow plots or seeding streamlines, you can use every nth point of the sampling grid. For example, with a 100x100 resolution grid, you could represent the wind map with a 10x10 arrow plot, or by seeding 10x10 streamlines.

Bonus: (2% of your course grade)

For extra credit, add another option of displaying the velocity field using LIC.

Documentation

Each and every assignment should have proper documentation. Documentation includes: (i) code documentation, (ii) user documentation, (iii) technical writeup of the assignment. The 1st two items are self-explanatory and you should have experience with these from previous classes.

The 3rd item is a short technical paper, about 4-6 pages long, that describes the problem, your approach, and results. In this case, you want to talk about your data, representation, spatial extents and resolution, limitations/constraints and/or features of your implementation. Also include a section on user interface e.g. what's needed to run your code, how the user can access the different features, etc. If you observe something interesting in your data, you may include that as well. Make sure the captions for your images are clear. Add relevant discussions about visualization choices/parameters that you've made, advantages/disadvantages of different options, etc.

The technical paper should be a pdf file. Single spaced. You can use a single column or a double column format. Font size should be 8 or 10 points. If using single column, you can conserve space by laying out your images in a row (i.e. a row of images across the page).

Items To Submit:

Grading:

This program nominally accounts for 20% of your final grade. Programs turned in at least a full day early will earn 1% bonus credit. Late programs will not be accepted. Bonus credits may be accumulated up to a total of 50% toward program and final project credits. This program is graded 70% for functionality and correctness, 30% for experimentation, readability, documentation/writeup. Additional points may also be earned for extra features.

Submission:

Submission must be done using the submit utility from CATS (e.g. unix.ic.ucsc.edu).

Last modified Sunday, 02-Jun-2019 10:38:30 PDT.