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
Tuesday, December 20, 2005
Wednesday, December 14, 2005
NetCDF CF conventions File Checker
The NetCDF(CF) File Checker uses CDMS (Climate Data Management System) from CDAT (Climate Data Analysis Toolkit).
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.
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.
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.
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.
Tuesday, November 1, 2005
Python, NetCDF, and visualization
Here are some random links regarding python, NetCDF and visualization packages that are available.
Graphics (+ analysis):
NetCDF:
Graphics (+ analysis):
NetCDF:
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.
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.
Thursday, September 29, 2005
Article on High-performance Linux clustering
An article by IBM, called High-performance Linux clustering, Part 1: Clustering fundamentals seems like a good introduction to the basics.
They have also completed Part 2: Building a Cluster.
They have also completed Part 2: Building a Cluster.
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
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.
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.
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.
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
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
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
Now, simply append the information in the NetCDF file using ncks (part of the nco package), like this
You can now delete orig.nc. (You could also overwrite the origional directly).
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:
After I did this, everything seems to be working fine. You may want to add
to prevent your screen from filling up with "ncattinq: ncid 12; varid 0; attname "_FillValue": Attribute not found" and the like.
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.
This configuration also compiled udunits.
I also, finally, got nco to work using
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.
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.
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).
[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.
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;
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
Interesting web visualization techniques
At style.org, there are a number of interesting visualization techniques.
Subscribe to:
Posts (Atom)