Tuesday, December 20, 2005

Mesh/Grid Generation Software

Here is an alarminly long (perhaps complete) list of Mesh/Grid Generation Software . Aside from those known to the ROMS community, Pavel Sakov has a powerful set of grid generation utilities.

Also of interest, NCARs ngmath, a set of 2- and 3D interpolation utilities, and TSFIT by Oleg Davydov

Wednesday, December 14, 2005

Tuesday, December 13, 2005

Calling Java classes within Python

Here are some interesting candidates for calling Java classes from within Python. As for Jython, I think there is a reasonable case against it (for the sorts of things I want to do) on the JPype front page.

Thursday, December 8, 2005

Disk Inventory X

Daring Fireball posted a link to Disk Inventory X. This is an excelent example of functional design. Now I know that those history files are what is using all my disk space.. my music collection has nothing to do with it..

Wednesday, December 7, 2005

Gtk on Mac OS X

tcltkaqua, but TclTk does not seem to use the full potential of either matplotlib or aqua. Gtk is a much more mature windowing environment (developed for Gnome and GIMP), but it is quite difficult to install.

There is a new effort in getting Gtk working on OS X. Presently, it just gives
Gtk Mac OS X/Build Instructions, but perhaps it will someday come as a Mac OS X package, like TclTkAqua does.

Wednesday, November 30, 2005

HistoryShots

HistoryShots sells graphics of the sort E. T. would approve of. They are good examples of narrative graphics. I wish I could make my posters look like that.

NetworkX

NetworkX is a python package for "reation, manipulation, and study of the structure, dynamics, and functions of complex networks." It looks quite cool.

Saturday, November 12, 2005

Big screens really are better

During his lecture, Edward Tufte discussed the merits of a large screen. His basic argument is that a greater percentage of your screen real estate is used for applications (i.e., useful information), and less for operating system bloat. This argument seems compelling in its simplicity. (This is another reason I prefer non-MS machines; Windows seems to waste quite a bit screen space, leaving only a sliver for useful information.) Following this advice, I recently purchased a 30" Apple Cinema display. Perhaps not surprisingly, I absolutely love it. However, it is more than just having a giant screen -- it helps me get my work done. Now here's the proof


On the bigger screen, people completed the tasks at least 10 percent more quickly - and some as much as 44 percent more quickly. They were also more likely to remember the seven-digit number, which showed that the multitasking was clearly less taxing on their brains.
(from Meet the Life Hackers)

Friday, November 11, 2005

Licensing

Many consider the GPL to be the gold standard of lisencing. However, in instances where public and private might meet, there might be some unforseen issues. John Hunter writes about the subtle differences in his Licensing Pitch . The advantages for programing languages and analysis tools to work with for-profit comanies is obvious -- look at MATLAB et al.

I encourage people to consider a BSD style license, particularly for things that might be of comercial use.

Thursday, November 10, 2005

Subversion

After extolling the merits of monotone, I have had a change of heart. Given the enormous weight of CVS, it seems more logical to use the natural CVS successor. There is a binary for Mac OS X available, that seems to work just fine.

Thursday, October 13, 2005

Keyboards.

I have been interested in alternate keyboards ever since I ordered my FingerWorks TouchStream keyboard. Unfortunately, Fingerworks was bought out by another larger company (many suspect Apple), and their product line has been discontinued. Hopefully, whoever bought the technology will use it to create the same type of keyboards again.

One interesting keyboard I have found is the TypeMatrix EZ-Reach 2030. This is a standard keyboard, with some extra features that seem like it would be nice to use. Notice that the keys are not displaced, but all are in a vertical row (just like my TouchStream, which is easier to type on). Also, note the heavy use of modifier keys to gain access to other keyboard features.

Slightly less conventional is the iFrog bluetooth enabled keyboard. This is a one-handed keyboard, which would be ideal for putting information into small devices like PDAs and mobile phones. I think it could even be good for standard keyboard entry, but I'm not sure how it would be at code entry. Agan, this keyboard makes heavy use of modifier keys, so much that you need to use modifiers to get the othe other half of the letters.

Wednesday, September 28, 2005

New Python Page

I have been developing some packages in python for use in analyzing and plotting model results. An essay describing the merits of python as an analysis tool, along with some packages and examples can be found at my new Python Page

Friday, September 2, 2005

Illustrator, Fonts, and Mac OS X

Often, I like to edit figures after I have made the basic plots in *LAB. I was inspired to go throgh all this trouble by Edward Tufte's excelent books. For this, I usually use Adobe Illustrator, as that is just simply the best vector editing tool around. However, there are issues. Jens Nöckel's page offers some tips on how to solve common problems in when combining Adobe Illustrator and scientific Fonts on Mac OS X

Monday, July 25, 2005

Tuesday, June 21, 2005

Structured grid operators

I have finished the first draft of some structured grid operators, using MATLAB. The idea is to create a very simple, minimalist set of functions that can be used to work with structured grids. For example, there are tools to average grid points to reduce the size of a matrix to match anther (like you need to do to get velocity on rho-points). There is a very general tool for extracting isosurfaces. There are a few bonus tools for working with the s-coordinate used in roms.

Take a look.

Sunday, June 12, 2005

Unison File Synchronizer

A nifty alternitive to the checkout/checkin sequence required by rsync the Unison File Synchronizer. Be careful not to confuse this with the panic newsreader unison, which comes up first if mac os x is added..

Getting MacPython and TK working together

Basically just go here to get all your Python Stuff

First you need to install Tcl/Tk Aqua, then you can install the "official unofficial" MacPython 2.4.1. This version has all the goodies already installed, notably (for me) Tkinter and readline.

Wednesday, May 11, 2005

Python as a platform for ROMS

It appears that python is gaining a lot of momentum in scientific computing. There are a few packages in particular that seem interesting to me right now:
SciPy Scientific Tools for Python - SciPy - Scientific tools for Python
Matplotlib / pylab - matlab style python plotting (plots, graphs, charts)

nanohub offers some tips on using pyton for scientific computing (in particular, using scipy, since they are the primary developers):
NANOHUB.ORG - Scientific Computing with Python

Of particular interest to people who use the right kind of computers:
SciPy Scientific Tools for Python - OSX Build instructions

Underneath both of these programs is a library that allows pyton to deal with arrays and other numerical issues: Numerical Python.

Perhaps it would be good to model any system built around ROMS on the Earth System Modeling Framework, or even better, steel the best parts of their code.

Friday, April 22, 2005

Using monotone for distributed ROMS development

Here is how it is done. First get monotone, I would suggest getting one of the compiled binaries, since compiling does not appear to be trivial. Read on for an example of how to use this program to link to a ROMS project. This tutorial is based heavily on the turorial available on the monotone site.

Thursday, April 21, 2005

Shelf break front simulation

Here is a sample cross-section from an idealized shelf break front simulation. The contours are salinity, the colorfill velocity.

SBF movie frame

Click the image for an animated gif movie.

Version Control Systems Comparison

Hmmm. What are the differences between all those different version control systems?

Version Control Systems Comparison

I think I might try monotone

Thursday, March 24, 2005

Designing a better (Linux) desktop

Seth at designfu is working on improving x-windows for Linux. There is other good stuff there as well. The wobbly windows are great...

Wednesday, March 23, 2005

Parameter space exploration in ROMS

Often, I find that I want to run roms over some set of parameters. The best way to do this is to make critical parameters dependent on the USER parameters in the roms.in file. I have written a program in python which does just this, automatically.

Monday, March 21, 2005

Changed NetCDF fixed dimension to record dimension

Sometimes it is neccissary to change a fixed length dimension to a record dimension (an UNLIMITED) dimension. There is no straightforward way to do this, unfortunately, but I have found this relatively simple hack to be useful:

First make a new NetCDF file that contains only one record dimension, the same name as the dimension you wish to change, say time. I do this in MATLAB like this

f = nc('rec_dim.nc','noclobber');
f('time') = 0;
close(f);


Now, simply append the information in the NetCDF file using ncks (part of the nco package), like this

ncks -A orig.nc rec_dim.nc


You can now delete orig.nc. (You could also overwrite the origional directly).

Wednesday, March 9, 2005

Geowall 3D visualization

Information on hardware and software required to set up a 3D visualization lab can be found at geowall.org.

Tuesday, March 8, 2005

MexCDF now at sourceforge

The invaluable MexCDF (MATLAB NetCDF interface) may now be found here [sourceforge]. I was having issues with the old MexCDF versions, where MATLAB was complaining about the subrutine "subs" also being a variable. I installed this package on my mac using the Mac OS X binary provided. This binary requires a few shared libraries in the /sw/lib directory -- i.e., from fink. You need to get the NetCDF and TIFF (wtf?) shared libraries. You also need to adjust the matlab path as:


addpath('/Users/rob/matlab/mexnc');
addpath('/Users/rob/matlab/snctools');
addpath('/Users/rob/matlab/netcdf_toolbox/netcdf');
addpath('/Users/rob/matlab/netcdf_toolbox/netcdf/ncutility');
addpath('/Users/rob/matlab/netcdf_toolbox/netcdf/nctype');


After I did this, everything seems to be working fine. You may want to add


ncquiet


to prevent your screen from filling up with "ncattinq: ncid 12; varid 0; attname "_FillValue": Attribute not found" and the like.

Friday, March 4, 2005

Compiling NetCDF on Mac OS X

Based on this script, I compiled NetCDF 3.6.0 on my Mac, using xlf.

export CC=/usr/bin/cc
export CPPFLAGS="-O -DNDEBUG -DIBMR2Fortran"
export CFLAGS="-O"
export CXX=/usr/bin/c++
export CXXFLAGS="-O"


export FC=xlf
export F77=xlf
export F90=xlf90
export FFLAGS="-O5 -qtune=auto -qarch=auto -qhot -qinitauto -qsave"
export F90FLAGS=-qsuffix=f=f90:cpp=F90

./configure - -prefix=/usr/local

make
make test
make install


This configuration also compiled udunits.

I also, finally, got nco to work using

./configure - -disable-regex - -disable-shared

It was also recommended to use the latest version of bison, but it seems that the version that ships with the latest Apple developer tools was fine.

del.icio.us

The bookmark site to end all bookmark sites: del.icio.us. You can save your own links, and see everybody elses as well.

Thursday, March 3, 2005

Direct gigabit connection from mac to cluster

Using the last hint to get my mac recognized by the cluster (I run a wire from a second NIC card to the switch), I tested by throughput using NetPIPE. I used netpipe to compare the gigabit connection to the normal university connection, and this was the result:



Both seem pretty close to the theoretical limits for large packet sizes, so I can expect to get about a ten-fold increase in the speed of my network mounted disks over the private, gigabit network.

External devices on Rocks

I inserted a new appliance into the set of Rocks nodes by hacking the mysql database containing the node information. This was started with

[root@frontend-0 root]# mysql -u apache cluster

then I added a database entry (for dbreport to use) with:

mysql> insert into nodes (MAC, Name, Membership, CPUs, Rack, Rank, IP)
-> values ("xx:xx:xx:xx:xx", "external-0-0", 4, 0, 0, 0, "10.255.255.1");

You can update the database entry with the command:

mysql> update nodes set IP="10.255.255.1" where Name="external-0-0";

(since, at first, I put in the wrong IP address).

Monday, February 7, 2005

How to make animated gif images

Animated GIF images are a good choice for creating animations of model results because the files are relatively small and portable compared to other movie formats. You make an animated GIF using, for example, gifsicle, as such:

gifsicle --colors 256 -O1 -l0 -d20 frames*.gif > movie.gif

The options are -O1 stores only the changed pixels, -l0 loops forever, and -d20 sets the delay to 20 hundreths of a second between frames. The trick is creating a bunch of GIF frames. I do this in MATLAB by first outputting to TIFF files, like this:

print -dtiff -r100 -zbuffer frame03.tiff

In matlab, use the eval function to write a series of frames like this:

frame = 1;
for n = 1:TOTALFRAMES;
plot commands;
eval(['print -dtiff -r100 -zbuffer frame',num2str(frame,'%2.2i'),'.tiff']);
frame=frame+1;
end


I make the figure as big in inches as I want it in hundreds of pixles (the -r100 gives me 100 pixels per inch). Then convert these images to GIFS using convert by ImageMagick like this:

convert frame03.tiff frame03.gif

Here is a script that gets you from a bunch of numbered TIFF frames to an animated GIF. Go knock yourself out.

The TGLO/TABS Current Prediction System: 2003 Annual Report

A year late, but still hot off the presses: the The TGLO/TABS Current Prediction System: 2003 Annual Report. This document covers basic information about the TGLO TABS modeling effort, covering input fields, model and grid information, output data styles and formats, and visualization techniques. Enjoy.

TAMU GCOOS Wiki

A new 'superblog' has been created to cover ongoing GCOOS and TABS developments, the TAMU GCOOS Wiki found at http://pong.tamu.edu/tiki

Thursday, February 3, 2005