Lobster vis
From SuperMe
My focus in the Lobster Larvae Visualization project is using the mountain of data we have to visualize lobster larvae migration.
This is a challenge because we do not yet know of visualization software that is compatible with our data. Prior, the team had been looking to UNH's visualization software, GeoZui4D -- however, our data isn't quite compatible with the software and UNH has been slow to produce their code for tailoring.
This is a personal challenge because I am unfamiliar with oceanography, MatLab, netCDF, and visualization software. I hope to learn a lot about a field that I have never considered.
Weekly Progress -- Week 1: June 8 - June 14
This week was spent ascertaining what my involvement in the Lobster Larvae visualization project will be. I have made a To-Do list for the coming week:
- familiarize myself with the files and file formats that I am to be working with
- go over the shell scripts Steve Cousins has written to understand how the data is currently being output to a netCDF file
- download GeoZui4D and see if our data is compatible with it
- look for visualization software alternatives to GeoZui4
Weekly Progress -- Week 2: June 15 - 21
June 15
- Read up on Shell Scripting with the following tutorial: Shell Scripting Tutorial
- Read up on NetCDF with the following tutorial: NetCDF Tutorial
June 16
- Read up on CDL Syntax with this page: CDL Syntax
- Read up on Perl with the following tutorial Perl Tutorial
- Tried to determine what purpose each file in the tracer-to-geozui4d directory serve
- all-days.nc: This is the netCDF file generated from ncgen of the CDF file all-days.ncl via the utm-to-nc shell script
- all-days.ncl: CDL file that provides the information for the generation of the netCDF file all-days.nc
- utm-to-nc: Converts CDL file all-days.ncl to netCDF file all-days.nc
- utm-subsample-to-nc: same as utm-to-nc except a few differences; works with a subsample of the data
- go: calls convert-tracer-to-utm.pl to convert all tracer files to UTM (Universal Transverse Mercator) coordinates
- go.subsample: does the same thing as go on a subsample
- header.template: contains the header for the CDL file used to create the netCDF file
- figure-seconds.sh: for all numbers i from 0 to 79, $TOTAL = i*10800+1117584000; thus, 1117584000 through 1118437200 printed
- sedXgxIzZ, test.txt: These two files are very similar to all-days.ncl except they contain less info; not sure what this is used for yet.
- convert-tracer-to-utm.pl
- convert-and-subsample-tracer-to-utm.pl
June 17
- Read up on MatLab with the following document: Getting Started with MATLAB
Jim Manning has sent a helpful email about one approach to visualizing data. He has outlined the following steps for animation using Matlab:
- loop through time making a new ppm figure with each time step
- make a list of figure filenames
- run ppm2fli listname flifilename
- view result with xanim or some other viewer that handles it
- convert fli to flash with flash software (for optional web viewing)
- ppm: Netpbm color image format; PPM format is a lowest common denominator color image file format.
- ppm2fli: generates FLI animation files form a series of images
- xanim: a program for playing a wide variety of animation, audio and video formats on unix X11 machines
he advises to run code on a subset, as he has never run as many particles as we use. he also provided his animate.m file but suggests that i write my own from scratch.
Weeding through Jim's file has not been particularly illuminating, so I am setting off to explore his methodology on my own. I thought it might expedite progress if I wrote in a language I was more familiar with, such as C or Java. I decided to explore the option of using C-based Matlab compatible MEX-files.
- Read up on MEX-files using the following tutorial: MEX-Files Tutorial
June 18
- Read up on PPM formatting with its man page and this website: Using PPM/PGM
- Experimented with PPM files
- Looked for other viable 3D visualization software
- started a program in C that tries to convert tracer files to PPM images
Tomorrow I will look into implementing this program in Matlab or Perl, as C is complicated when dealing with files and strings. The reason I am trying C is because I have had experience with it. I am having a hard time getting the hang of Matlab.
Weekly Progress -- Week 3: June 22 - 28
June 22
- trying to get the data for tracers at 1 depth in order to plot them on the coastline plot
- trying to get a subsample of the data using Matlab
June 23
- worked on plotting tracers at a single depth in Matlab
- worked on editing existing Perl files in order to output a subsample of the data
Weekly Progress: Week 4: June 29 - July 3
June 29
- edited the Perl subsample script to take in a tracer file and a depth and to output a file that contains only the longitudes and latitudes for that depth
July 2
- getting movie function to work
Weekly Progress: Week 5: July 6 - 10
July 6
- made file names compatible with Matlab
- changed 2 for loops in move.m to 1
- worked on having tracers from the previous frame not show up in the next while maintaining the plot coast