You are here
Feature-Based Eddy Computation Program
1. About This Program
This standalone C++ program is the first module of our "Framework of 3D Eddy Visual Exploration in Web Browsers". The program reads time varying "Regional Ocean Modeling System" (ROMS) data and creates a set of metadata (text files) for visualization and data analysis. The program can works with any structured (curvilinear), rectilinear, or image (grid) type of data. It is also trivial to convert the code to run on unstructured data sets too. The visualization module in the framework is separate and uses the created files by this code. A flowchart of the program can be found below.
2. About the Data
Currently, the program reads the ocean simulation data from a multi-decadal regional ocean model simulation. The simulation was performed using the Regional Ocean Modeling System (ROMS), which solves the incompressible, hydrostatic, primitive equations with a nonlinear free surface. For the access to the data, please contact: Dr. Dujuan Kang or Dr. Enrique Curchitser.
Below are the grid information of ROMS and some examples (each example contains some variables extracted from the real ROMS data frame) for testing the program:
ROMS Grid |
Frame 1 |
Frame 2 | Frame 3 |
3. Source Code and Running
Before running the code, there are three third-party libraries or softwares that are needed to install in your machine:
NetCDF. The ROMS data in this project is saved in NetCDF format. If your data is saved in other format (e.g., HDF5), you can ignore this. NetCDF is a set of software libraries and data formats that support the creation, access, and sharing of array-oriented scientific data. A NetCDF installation guide can be found here.
VTK. Several parts of the eddy computation program (e.g., the Marching Cube algorithm) depends on the functions from VTK libraries. The software can be found here.
CMake. CMake is used to build the program into an executable from many modules. If you can write your own makefiles, then you don't need to install CMake. CMake is a cross platform build system. Among other things, cmake will generate makefiles for you. It is particularly useful for large projects, for builds that use lots of libraries, and for dealing with platform-specific compilation issues.The software can be found here and this is an introduction.
Source Code
Compiling and building the code
Step 1: Edit the CMakeLists.txt in the source code folder "../eddycp". The line: "set(NETCDF_LIBS /usr/local/lib/libnetcdf.dylib)" may need to be changed to the place where you install the NetCDF libraries.
Step 2: Edit the Config.txt in the folder "../eddycp/build".
Step 3: Open the terminal in your computer and go to the directory "../eddycp/build".
Step 4: Type "CMake .."
Step 5: Type "make"
4. Descriptions of The Generated Files
*.trakTable file. Saves the evolution history (correspondence information) of each eddy feature (recorded as a unique index in each data frame) frame by frame.
*.sequence file. Saves each eddy path as a sequence of triples: time step, feature ID, and evolution state (i.e., birth, continuation, merge, split, and death).
*.day files. Save vertices of isosurfaces and the connectivity information of these vertices for the extracted eddy features in every data frames. These files are used for eddy path isolation and visual exploration.
*.attr files. Save the attributes of each eddy feature in details.
*.uocd files. Save data points of the extracted eddy features in every data frames. These files are used for eddy tracking following eddy extraction.
*.path files. Save vertices of isosurfaces and the connectivity information of these vertices for the extracted eddy features in an eddy path. These files are generated from eddy path isolation and are used for visual exploration.