# How do you create a spectral plot and then later a heat or intensity map from 2d data?

I'm a programmer, but I'm no mathematician, so I need a little help understanding what is required to accomplish this task.

Here's a short explanation of the data I have from the Coastal Data Information Program (CDIP) site:

//h-----------------------------------------------------------------------------
//h .root/data_access/MEM_2dspectra.cdip
//h
//h Creates a 2D (dir/freq) energy spectra from a standard CDIP spectral
//h file using the Maximum Entropy Method (MEM).
//h
//h NOTE: This is ONE WAY to estimate a 2d spectrum from the buoy data.
//h CDIP uses it because it makes narrow directional spectra for swell in the
//h Pacific.
//h
//h By default the directions are grouped in 5-degree bins, and the
//h frequencies bands are the same as in the sp file. Values are given
//h in units of m*m/Hz/deg.
//h
//h Data is output as a matrix:                   +------Direction bands------>
//h   - First column is centered at 5 degrees;    |        72 columns
//h   - Last column is centered at 360 degrees;   |
//h   - First row is the lowest freq (.025 Hz     |
//h       for directional buoys);              Frequency bands
//h   - Last row is the highest freq (.58 Hz      |  64 rows for
//h       for directional buoys);                 |  directional buoys
//h                                               |
//h                                               v
//h
//h Arguments: 1 - either a 3-digit station ID (or 5-digit MO ID) for the
//h                  latest data, or a 19-character sp (or mp) filename.
//h            2 - optional; set to 'even' to get evenly spaced freq bands,
//h                  all with a bandwidth of 0.01Hz (0.03Hz-0.58Hz)
//h
//h Usage:
//h   http://cdip.ucsd.edu/data_access/MEM_2dspectra.cdip?{args}
//h   where {args} examples are:
//h     1. h                          -> returns this help
//h     2. 029                        -> MEM spectra for most recent 029 sp
//h     3. sp10001200606232058        -> MEM spectra for sp10001200606232058
//h     4. 106+even                   -> Latest 106 spectra, 0.01Hz bands


Here's a sample of the data for buoy 100 (Torrey Pines): http://cdip.ucsd.edu/data_access/MEM_2dspectra.cdip?100

Here's the resulting heat or intensity map from CDIP: http://cdip.ucsd.edu/?nav=recent&sub=observed&units=metric&tz=UTC&pub=public&map_stati=1,2,3&stn=100&stream=p1&xitem=dir_spectrum

How do I take this data and create the heat or intensity map?

P.S. I'm looking at various image processing and graphics libraries, such as GD, ImageMagic and GnuPlot, as well as Ruby-specific solutions like RMagick or the ruby-gd gem, and also looked at Google Visualization options. If you have any suggestions with respect to the programming side of things, by all means make a suggestion, but overall I need to understand the idea first before I can approach the programming aspects of this problem.

-
 Have you tried looking up what the Maximum Entropy Method is? There should be some good papers explaining the method. – Raskolnikov Mar 2 '11 at 10:35 Yes, but as I mentioned, I'm no mathematician, so I really need more of a written (e.g., English, pseudocode, etc.) explanation that doesn't focus entirely on formulas. Any suggestions would be appreciated. Thanks. – user7670 Mar 2 '11 at 16:16 I see there is still no response, you should try on Cross Validated, they are the data guys. – Raskolnikov Mar 5 '11 at 22:44