Version 5, 06.21.2012
Corelyzer is a scalable, extensible visualization tool developed to enhance the study of geological cores. The strength of Corelyzer is the ability to display large sets of core imagery, with multi-sensor logs, annotations and plugin supported visuals alongside the core imagery. This document describes how to download, setup and use the software.
Table of Contents
List of Figures
The CoreWall Suite is a collaborative development for a real-time stratigraphic correlation, core description (CD) and data visualization system to be used by the marine, terrestrial and Antarctic science communities. The development will be carried out in broad collaboration with stakeholders in these science communities.
To ensure that the software development does not occur independent of related IT activities, in particular, the development of the U.S. IODP-Phase 2 Scientific Ocean Drilling Vessel (SODV), a Steering Committee will be constituted. The Steering Committee will be comprised of key U.S. IODP and related database (e.g., CHRONOS, SedDB) developers and users as well as representatives of other core-based enterprises (e.g., ANDRILL, ICDP, LacCore). Data will be made available directly from the numerous hard rock and sediment databases or through access provided by a portal such as CHRONOS. CoreWall's software displays section images from one or more cores along with discrete data streams and nested images to provide a robust approach to the description of sediment cores. Split-core surface images are the fundamental template of sediment descriptive work. Loaded horizontally and viewed in high resolution along a sliding plane, features such as lithologic variation, macroscopic grain size variation, bioturbation intensity, chemical composition and micropaleontology are easier to interpret and annotate.
In particular, the CoreWall Suite will incorporate the new Correlator software, the updated version of CLIP (e.g. Sagan and Splicer) that was developed by the Lamont group more than 10 years ago, into a new portable visualization tool that will work across multiple platforms and interact seamlessly with both JANUS (ODP's relational database), CHRONOS, PetDB, SedDB, dbSEABED and other databases. This functionality will result in a CoreWall Suite module that can be used and distributed anywhere for stratigraphic and age correlation tasks. The versatility and flexibility of these enhanced software tools will allow geoscientists to integrate shipboard data entered into the JANUS database with third-party analyses of samples distributed to other scientists or generated by other programs and projects. While doing this, we will abstract the functional algorithms that drive NCLIP into software libraries that will be used in the CoreWall Suite so that they are available for other software development projects that want to build on these modules. In this way, the critical depth mapping functionality and enhancements that resulted in NCLIP will be integrated into the remarkable visualization capability that is CoreWall, which is envisioned to be at the heart of a next-generation suite of tools required by the IODP and other ocean science research programs, as well as ICDP and other terrestrial core-based research programs.
CoreWall's high-resolution tiled LCD display gives geoscientists a large-scale perspective, helpful in processing and comparing high-resolution digital line-scan images of cores measuring up to hundreds of feet long. A prototype desktop environment for CoreWall is Personal GeoWall2 (PG2) , a system that uses a single computer to drive four LCD panels as well as a single-screen stereo GeoWall display.
CoreWall Affiliate Partners
|USIO Science Services, TAMU: Integrated Ocean Drilling Program at Texas A & M University|
|ANDRILL: Antarctic Geological Drilling Program|
|LacCore: U.S. National Lacustrine Core Repository at University of Minnesota|
|Electronic Visualization Laboratory, University of Illinois at Chicago|
Corelyzer is being developed by the University of Illinois at Chicago’s Electronic Visualization Laboratory with funding provided by the National Science Foundation under the agreement number OCE-0602121.
Table of Contents
Corelyzer takes advantage of hardware-accelerated graphics. While a primarily 2D visualization program, Corelyzer uses OpenGL to accelerate the rendering and take advantage of modern day graphics boards. This means that the performance of the application is not only dependent on the speed of your CPU but also the power of your Graphics Processing Unit (GPU). Any modern day graphics card that can run video games from a few years back can easily run Corelyzer. Currently the leaders in graphics card technologies are Nvidia and ATI.
Corelyzer can use lots of hard drive space and main memory. It is recommended to have at least 2GB of RAM on your machine if you intend on looking at a hundred meters of high-resolution core images, or more. Also note that Corelyzer does not currently support heterogeneous display settings. This means that if you have a monitor that only goes up to 1280x1024 and another at 1600x1200, you will have to choose one or the other when setting up your Corelyzer display settings when running the application.
Corelyzer will work on most laptops or desktops built since ~2005, running Mac OS 10.5 or higher or Windows XP or higher, and is compatible with both 32-bit and 64-bit systems. To maximize performance, we suggest prioritizing high-end 3D graphics cards, processor speed, and RAM (in that order). Solid-state drives may offer a further performance boost. Larger monitors give more workspace and a better view, but performance does degrade somewhat as each monitor is added to the system. In multi-panel setups, monitors with thin bezel (border/edge strip) will provide a better experience. Some examples of CoreWall setups are described below. For more information, please contact the people listed.
ANDRILL's CoreWall Hardware Spec: an Apple Mac Pro with
nVidia Quadro FX 4500 graphics card. 2 30" Apple Cinema
Contact: Josh Reed
<jareed at andrill.org>
EVL's CoreWall Hardware Spec: a Dell Pentium 4 XPS PC with 3
PCI nVidia Quadro FX500 graphics cards. 5 20" ViewSonic LCD
Displays. Contact: Andy Johnson
<ajohnson at uic.edu>
LacCore's CoreWall Hardware Spec:
Dell Precision T3500 with Intel Xeon W3550 3.0GHz / 8M L3 processor at 4.8 GT/s, 4GB 1066MHz DDR3 SDRAM, dual 768MB NVIDIA Quadro FX1800 graphics cards running 4 x 30-inch Dell displays. WinXP. Contact: Anders Noren
<noren021 at umn.edu>
Corelyzer makes use of the Java Runtime Environment (JRE). The current version of Corelyzer requires Java 1.7 or greater, which can be downloaded here.
You can download copies of the application for the following platforms at the main download page: http://www.corewall.org/downloads.html .
Extract the downloaded .zip archive by right-clicking the file and select "Extract All...". Extract Corelyzer to the desired directory and double-click the Corelyzer icon to launch.
If you use Safari browser, the application should be downloaded and extracted in your "Downloads" directory. If you use other browsers, please unzip the downloaded file (double-click it) and you will get the application.
You can drag-and-drop the application in your preferred disk location like the “/Applications” directory or even your Desktop. Double click the icon will launch the Corelyzer program.
Table of Contents
Before we start Corelyzer, we must first make sure our display settings are correct. On both the Mac and Windows, the default monitor should be the “upper left most monitor”.
To setup the monitors on Windows, you must first go to your "Display". You can do this by going to the Start menu, selecting "Control Panel" and double-clicking on "Display".
Once opened, please go to the Settings tab. Here you will see boxes with numbers representing the monitors connected to your machine. If you have a monitor that is not displaying your desktop then it will show up as a slightly grayed-out box, indicating this monitor is disabled. If the box indicates the monitor is disabled and you click on the box, you will be able to modify the options for that monitor. To enabled the monitor, make sure that the check box next to Extend my desktop... is checked. Do this for all the monitors you would like to use, presumably all of them. Once you have done that, click on the Apply button. If you did this correctly, your desktop should be visible on all the monitors.
Note: Some monitors need to be turned off and on again to realize that they are enabled by Windows. Now that the desktops are visible on your monitors, you will need to set the display resolution for all of the monitors. Corelyzer requires that all monitors use the same resolution. Example resolutions are 1280x1024 and 1600x1200. There is a slider on your display settings dialog to modify the resolution. Once set for all monitors, click on the Apply button again. If you are prompted to restart your machine in order for the changes to take affect, then do so. Otherwise, the resolution of your monitors will change and you will be prompted to keep the settings or change them back.
Note: If your monitors do not support a particular resolution they will likely display that or they will stay black. If you do not like your settings, wait for some time and Windows will revert back. After you have enabled your monitors and configured their display settings, you should make sure that the layout of the monitors matches the layout of the boxes in your display settings. First we need to identify which box represents which monitor, and we can do this by seeing what number has been assigned to each monitor by Windows. To do this, click on the Identify button. When you do this, your monitors will display a number indicating which box refers to which monitor. If your monitors are ordered differently than the boxes that are shown on your display settings, then you will need to re-arrange your monitors. This is easily done by clicking and dragging the boxes in your settings window. Again, you should make sure that the upper left most box matches with your upper left most monitor and that monitor is enabled as your Primary Monitor.
Note that the desktop numbering in Microsoft Windows depends on the order in which you've connected monitors to your graphics card(s). It may not appear in ascending order from left to right. All you have to make sure is the ordering is matched in the onscreen identify result and the display properties display, as shown in the following two screenshots.
To setup your monitors on your Mac you will need to get to the display settings. To do this, open the Apple menu in the upper-left of the screen and select "System Preferences". Then choose "Displays" and you will see a dialog window on each monitor that is connected to your machine.
Make sure the display resolution on each monitor is the same. After fixing the resolution, go to your main window and select the "Arrangement" tab. You will then see a layout of boxes that indicate how your monitors are laid out. Unfortunately there is no way to identify which monitor is represented by which box, as you can on Windows. You will need to arrange the boxes to match your monitor arrangement.
You will have to make sure the upper left most monitor in your arrangement will be the main monitor. On the Mac, the main monitor is visible in the Arrangement tab as the box that contains a white rectangle along the top of the box. To designate a different monitor to be the main monitor, simply drag the white rectangle to the box that should be the main monitor. This white rectangle is actually the menu bar you see on top of your monitor. Once the rectangle has been moved, the menu bar will also move.
If you are making a presentation then you may want to mirror your display, but normally you don't want to mirror your display so that you will have more screen real estate to view your core images and data.
To launch Corelyzer, double-click on the Corelyzer icon. If you're launching Corelyzer for the first time, the Corelyzer Preferences dialog will appear, in which you can specify your scratch disk location, display settings, and user interface features.
Image Block Directory: The first time you load a core section image, Corelyzer processes that image into a series of "blocks": sub-images at low, medium, and high resolutions. This processing is done in order to improve performance. Because this initial processing takes a fair amount of time, the "blocks" are stored locally in this directory for future use. Download Directory: In this directory, Corelyzer stores local copies of images downloaded from remote servers.
Here you can set the display configuration that Corelyzer will use. More often than not you will have it match the display configuration you setup with your operating system (See above sections). After establishing inital settings, Corelyzer will load the saved configurations on future launches without popping up the preferences window.
Rows, Columns: define how many monitors do you have and how they are arranged.
Screen Width, Screen Height: define the size of a single monitor in pixels. If you start the Preferences configuration for the first time, the full screen dimension will be used.
Screen DPI X, Screen DPI Y: DPI stands for "dots per inch". These defines the mapping from pixels to physical measurement. In most cases, you can leave them as default values.
Column Offset, Row Offset: Defines the offsets of the visualization area from the origin (upper-left corner of the primary monitor).
Border Tickness: The visualization takes into account the monitor border in tiled displays setup. In most cases, you can leave them with the default values.
Auto check version in startup: Corelyzer will automatically check for a newer version of the software at launch.
Lock depth of core section images after loading: cores loaded while this option is enabled cannot be moved up or down stratigraphically.
Use Quaqua look and feel: when enabled, makes user interface elements like buttons and checkboxes look more "Mac-like" in OS X 10.3 and earlier.
Double-clicking section name zooms to that section: double-clicking the section name in the session/iCores window shows the entire section at the highest zoom level that can accommodate its length.
Show crosshair at origin: show the visualization canvas' origin axes.
Show labels for sections with data but no image: show section label for dummy sections (those with plotted data but no image).
Canvas always draws below external application windows: windows of non-Corelyzer applications will always draw below the visualization canvas. We recommend disabling this option.
Scroll wheel/gesture zooms in Vertical Depth Mode: in Vertical Depth Mode, scroll wheel or gesture will zoom/unzoom when this option is enabled. If disabled, they will pan along the depth axis.
Horizontal or Vertical Depth Mode: defines the depth orientation. In Horizontal Depth Mode, depth increases from left to right. In Vertical Depth Mode, depth increases from top to bottom.
Canvas background color: defines the background color of the visualization canvas.
Canvas grid: enable/disable and defines the background measurement grid parameters. In "Grid Type", 5 types of grid are supported: Basic Cross, Horizontal Lines, Vertical Lines, Points and Cross Points.
Table of Contents
Once the OK button is clicked in the initial preferences configuration, a window (or multiple windows) will be created, according to your configuration, for the visualization display.
Corelyzer has three primary windows:
Session Window (aka "iCores")
The Tool Palette contains frequently-used functions and modes. In a multi-display setup, the Tool Palette will follow the cursor from one display to another.
The Tool Palette buttons, from left to right:
Normal mode: Use drag-and-drop mouse gesture to pan and the mouse scroll wheel to zoom/out the visualization area.
Create annotation mode: Crop a rectangle area to create annotation over loaded core images.
Modify annotation marker mode: Select and highlight a created annotation to modify circled area and the annotation flag icon's position.
Measure mode: To specify the start and end of an interested segment. The physical measurement will be calculated based on the mapping information specified in the Display settings of Preferences configuration.
Regular navigation cursor: Only the mouse cursor will be displayed in the visualization canvas.
CrossHair cursor: In additional to the mouse cursor, a crosshair indicating the current depth will be displayed in the visualization canvas.
Common system actions:
Show/Hide main window: Show or hide the session/iCores window.
Minimize Corelyzer: Minimize all Corelyzer windows.
Quit Corelyzer: Close Corelyzer application.
The main session/iCores window is used to manage sessions, tracks, section images, and datasets.
The menubar has "File", "Edit", "Share", "Plugins", "Lists", "Tools" and "Help" menus. Each menu option will be described in later chapters.
Clicking on the "Local" item in the "My Core Repository" panel will show the currently-loaded sessions, tracks, core sections, datafiles and the fields available in each dataset. Corelyzer can have multiple sessions, each containing multiple tracks, sections, and datafiles.
Corelyzer supports core data list syndication (CoreCast) via Atom feeds. If you subscribed to feeds, they will be attached to the "Subscription" label in "My Core Repository". Clicking on the subscribed feed entry will show the core summary in the right hand panel as pictured below.
Core images, plotted data, etc. are displayed on the visualization canvas.
A screen capture video of start and quit Corelyzer can be found in this link online (size: 1.2MB).
Table of Contents
Before you proceed, make sure you know the following properties of the images to be loaded:
Orientation: Are the images horizontally or vertically oriented? For horizontally-oriented images, depth is assumed to increase from left to right. For vertically-oriented images, top to bottom.
Resolution: What's the resolution of the images in dots-per-inch (DPI)?
Corelyzer requires these properties to process and render section images at the correct scale.
How do you determine the DPI of your image? This depends on the equipment in which the image was retrieved. Most line-scan cameras that are manufactured for the creation of high-resolution images of core sections indicate DPI on their packaging, but it seems that many don't save in the expected DPI. One method of ensuring a correct DPI is described in Making Sure the DPI of an Image is Correct. When loading images you can also specify the length of a core section image, from which Corelyzer can calculate the appropriate DPI value.
To start the image loading process, select the menu item "File > Load Images > Open Local Image Files...". Choose the files you wish to load in the resulting dialog:
By default, Corelyzer displays core imagery by placing section images in horizontal tracks. Each track corresponds to a single hole. After images to load are selected, Corelyzer will attempt to organize these images into new and/or existing tracks based on image filenames and existing track names (if present). The following dialog displays the suggested organization and allows the user to modify it as needed.
In Figure 5.2, note that the seven loaded sections have been organized into three tracks. Tracks are indicated by "Track" prefixing their name and a beige background. Note that all sections and tracks have a green dot to their left indicating that they've just been loaded (sections) or created (tracks). Most operations in this dialog apply only to these new tracks and sections. To adjust the structure and arrangement of tracks and sections, use the buttons described below:
Move Up/Down: Move selected sections up/down within a track or between tracks.
Delete: Remove selected section or track from the list. Tracks containing sections cannot be deleted until emptied.
Rename Track: Rename selected track.
New Track: Create a new track.
Once the arrangement of sections and tracks is satisfactory, input your images' DPI values in the DPI X/Y fields. Because DPI X and DPI Y are almost always the same, the value entered in the X field will be immediately copied into the Y field if it's blank. Orientation defaults to Horizontal, change it to Vertical if necessary. Now that image properties and section order have been established, Corelyzer can place sections in appropriate tracks and position them end-to-end. To proceed, click the "Next >" button. The resulting dialog allows the user to review and modify image properties, if necessary:
As you can see in the (rightmost) Depth column, the first three sections start from depth zero: each is the first section in a new track. The last four sections are part of the third track: each is placed at the bottommost depth of the preceding section.
The section image properties can be modified individually by selecting the cell you wish to change and hitting the Return/Enter key, or by double-cliking the desired cell. To modify a value(s) for multiple sections, you can use the Batch Input controls below the section property table. Check the "Batch input..." checkbox to enable the controls, and enter the desired settings. If you want to apply these settings to all sections in the table, click the Apply to All Rows button. If you want to apply these settings only to certain sections, select those sections in the section property table, then click the Apply to Selected Rows button. In both cases, only populated fields will modify the corresponding table cells.
If you modify DPI values on the depth axis (DPI X for horizontal images, DPI Y for vertical), section lengths and depths will be updated automatically so sections in each track are positioned end-to-end when loaded.
When you are satisfied with the image properties, click the Finish button. Corelyzer will begin loading images with the specified parameters.
Once completed, the visualization window will display core images and the Section listbox in the main session/iCores window will update with the image filenames loaded in each track. Notice in the image below that the ruler in the core image closely matches the depth measurements at the bottom of the visualization window. This visual check is an excellent way to confirm the proper DPI values were used.
Corelyzer includes a simple interface to retrieve high-resolution core section images from online services like the IODP's Janus database and LIMS service.
Currently, Corelyzer supports three online core image services: JANUS database with CHRONOS service, IODP LIMS on-shore database, and the IODP LIMS on-ship database. For two IODP LIMS services, the query web service protocol is used to retrieve core images' metadata. Corelyzer uses the CHRONOS web service's capabilities to access JANUS and retrieve the URLs to the images. Because IODP images are vertically oriented, Corelyzer will rotate the images 90 degrees counter-clockwise. This plugin accurately positions core sections by using the CHRONOS web service to access the curated length and top depth (mbsf) of each core section image.
The user interface has been designed in a stream-lined manner. To bring up the plugin select the menu item File->"Show IODP lists..."->"Image list from services" tab. In order to get an image listing and load selected images:
Select which online service to use. Currently CHRONOS, on-shore LIMS and on-ship LIMS services are available.
Enter an IODP site to search for (e.g. site number 1215)
Click on the Search button. A listing of core section images should become available
You can optionally input the depth range to filter the returned available image section in the result table. Depth range should be input as string like "0-20", meaning only image sections with top depth zero to twenty meters (mbsf). The default value 0.0 will list all image sections returned by the online service.
Select the images to load
Click on the "Load selected image files" button
Image files will then be downloaded, processed, and displayed. A progress bar indicating the status will update during the process in the session/iCores window.
Each loaded image will be placed in the session and track named with the combination of "leg", "site", "hole" and "core" metadata information from the online core image server.
A screen capture video of these actions can be found in this link online (size: 1.6MB).
Corelyzer supports core data list syndication (CoreCast) via Atom feeds. If you subscribed to feeds, they will be attached to the "Subscription" label in "My Core Repository".
First, show the session/iCores window (if necessary) with the Show/Hide button in the Tool Palette. Then click on the plus icon to add a new feed.
If you know the feed's URL, enter the URL in the popup dialog. Otherwise, you can click on the "Browse" button to list available feeds.
Here the "Browse" button is clicked. Next click on the "Refresh" button to show available feeds.
Check the desired feeds, then click on "OK" to subscribe to them. These feeds will be added to the main session/iCores window. Selecting a feed under the "Subscription" label will display the list of core images in the feed. Clicking a core image entry will display a summary report of the image in the panel below.
Select one or more core images of interest and right-click to see available options.
Select "Load" to download and load selected core images into Corelyzer. Select or fill in the intended track name for the selected core images.
Clicking "OK" will start the download and load process. Click on the "Local" label at the left hand side to see if the selected sections are loaded.
A screen capture video of these actions can be found in this link online (size: 10MB).
Click on the meun "File" -> "IODP" -> "Load section list" and select a section list file in format like example file (remote image files) and example file (local image files) will load and show the content of the list as shown in the following screen captures.
The section list file can be generated by any text editor or Excel. You will have to save the file as "tab-separated format". The file will need to include the following columns, in order:
|"Image Source URL"|
The "TopOffset" and "BottomOffset" columns are not currently used, so any placeholder value (e.g. 0.0) is acceptable.
Select the section(s) to be loaded, then click on the "Load selected section" button to begin downloading and loading section images into Corelyzer.
The Integrated Ocean Drilling Program, United States Implementing Organization provides the logging database accessing service described in the webpage. The service serves not only numerical data but also some Formation MicroScanner (FMS) represented in image form stored in GIF format.
To load FMS images from the IODP-USIO logging database, select the "IODP" meun item from the "File" menu and then select "Show IODP lists...". Then clicking on the "Logging DB" tab in the popup window as shown in the following figure.
Depending on where you're running Corelyzer, you can choose to access the on-ship version or the Internet version of the service. The on-ship version will use the service provider URL "http://loa.ship.iodp.tamu.edu/services/" and the Internet version will use the service provider URL "http://brg.ldeo.columbia.edu/". Once the service provider is selected, the available site and tool options will be downloaded and populated in the selectable combobox options. Or you can also type in interested site and tool and then click on the "Search" button to search for available data. The search result will be shown in the table rows below. You can use mouse to highlight multiple rows and click on the "Load selected data files" button to download and load the data/image files.
For FMS images, since the depth and length information is not directly available, Corelyzer will attempt to load these images by guessing from their file name. For example a FMS image file named "306-642E_p2_D_372_442.gif" will be parsed and implies that the FMS image will contain data from 372 to 442 meters. Corelyzer will use these two values to determine the depth and length of the interval of interest. Be aware that the FMS images are not cropped to the exact range, and there are white space form borders around the image, so the estimation may not be accurate. Image properties can be fine-tuned in the Properties dialog, opened by right-clicking a section image and choosing "Properties...".
A screen capture video of these actions can be found in this link online (size: 6MB in 1920x1200 resolution).
Table of Contents
Corelyzer loads data using the Corelyzer data XML schema (see appendix). A Corelyzer XML format datset file can contain multiple fields in a single file. Data files can be loaded at anytime during the execution of the program. To do so you will need to choose the menu item under "File -> Open Dataset Files" and a file selection dialog will appear. Corelyzer data files are in XML and properly have a .xml extension appended to them.
Once a data file is selected, the Corelyzer application will process the data and then update the Dataset and Fields list boxes (click on the "Local" label in "My Core Repository" to show the lists). If you load up multiple data files, you can click on a dataset to view what fields were retrieved from the data file.
A screen capture video of these actions can be found in this link online (size: 868KB).
In many cases, numerical data are a list of depth-value pairs for a single property. Use the "Quick Data Import" function, you can import data files that can be easily edited or generated by external programs like spreadsheet or even raw text data files generated by multiple sensor core loggers. The "Quick Data Import" function will accept plain text files that follows the format described below.
The plain text file should be in tsv (Tab-Separated-Values) or csv (Comma-Separated-Values) formats (filename ended with .csv or .tsv). The first line of the file will describe the meaning of the values and its contents will also be used for data field labels. The rest of the file should be one depth with multiple values per line. And example .tsv plain text file might look like this (values separated by tabs):
MyDepth Cr Mg m mg ion 0.1 0.1 0.4 0.2 0.3 3.2 0.3 0.5 -2.9 0.4 3.2 4.22 0.5 -2.1 -2.48 0.6 4.7 -1.90 0.7 -6.2 7.2 0.8 1.33 5.0 0.9 4.23 2.2 1.0 5.0 -1.0
To use "Quick Data Import", select the menu item from the "File" menu. Corelyzer will popup a file selection dialog to select the text file in the format described above.
A screen capture video of these actions can be found in this link online (size: 665KB).
In the case your data file is not in Corelyzer dataset XML schema yet, you can use the “Custom Data Import” feature under “File” menu to specify few parameters and have the program to convert your data file into Corelyzer dataset XML format. A user can convert a plain text tabular data file or a Geotek generated data (after pre-processing and data cleaning) to Corelyzer XML data format and directly imported into Corelyzer working session.
File name: Original input file name. Use "File..." button to select your input file.
Field Separator: Input what is used to separate each fields in the input file. Commonly used separator might be comma(,) for CSV file. Or Tab(type in \t) delimited file.
Section Prefix: The prefix used for naming each section
Start Line Number: In the input file, the starting line number of data values, starting from 1.
End Line Number: In the input file, the ending line number of data values
Fields Label Line Number: What is the line number for labels of each value in columns.
Unit Label Line Number: What is the line number for units of each value in columns. If there is no such line, just input the same line number as "Field Label Line Number"
Name Column Number: Which column field should be picked used as the name of section. The final section name will be composed with "Section Prefix" and "Name Column Number". A simple comma separated expression is allowed to compose the section name.
Depth Column Number: Which column will be treated as depth values. Column index starts with 1.
Select Value Columns: From previous inputs, the field labels will be identified. Then you can check which fields do you want to select to the final dataset file.
Next is a step by step walkthrough example. The example source data file is downloaded from IODP Log database at Lamont-Doherty Earth Observatory, Columbia University. The data file used in this example is 763B-ngt.dat. The resulting Corelyzer dataset file is output_data.xml.
Select the "Custom Data Import" from the "File" menu.
The selected file will be loaded into "Plain Text Data Import" dialog. The upper half of the dialog shows different data format parameters in tabs. The lower half shows the content of the text file with line number attached to the beginning of each line.
In the "File Info" tab, the selected file will be shown and you have to select from one of the available separator (comma, tab or space). In the this example, tab separator is selected.
Because some text files will have certain number of comments lines in the header to describe the data file. In the "Data Range" tab, you can specify the actual data line range. Notice that the first number in each in the lower "File Content" panel shows the line number starting from one. In this example, the actual data starts from 6th line till the very end of the file (line 1586). In some equipments, bad or invalid values will be recorded during data acquisition with some fixed numbers like -999.99. If you want to ignore these bad values, check the "Ignore some bad values?" checkbox and type in the designated value.
Next, you need to specify the lines showing the labels for fields and units. If the data file does not have the unit label line, just select the same line as the field label. In this example 5th line shows the labels for data fields.
Next, depth information parameters have to be specified. You have to specify which column means depth. In this example, the depth is in the first column.
In the "Depth Mode" selection, you can select from either "Section Depth" or "Accumulated Depth". "Section Depth" means the depth values are measured from the beginning of each section that the data are acquired from. "Accumulated Depth" means the depth is measured from the bottom of the sea/lake floor.
Because internally Corelyzer arranges depth values into sections, it in one way fits how certain parties obtain the data from sections of cores. In the other way, it helps renderning performance. So if the "Customize Section Name" is not checked, the data will be put into sections suffixed with section numbers automatically. If your data files has section information embedded (like data files from LacCore repository), or you have your own section naming convension, you can customize your section names with "Section Prefix" and "Name Column Number".
For example, if you have a data file looks like this:
Geotek MSCL Version 3.0 - GLAD4-HST03-1A.OUT created at 12:37:15 on 08-21-2003.,,,,,,,,, ... SB DEPTH ,SECT NUM ,SECT DEPTH,ST ,PWAmp ,PWVel ,Den1 ,MS1 ,Imp ,FP m , ,cm ,cm , ,m/s ,gm/cc ,SI , , 0.06,1H-1,6,6.605,50,130.9347,1.2618,82.5908,165.2135,0.8632 0.07,1H-1,7,6.605,50,131.1427,1.1873,89.2873,155.7109,0.9064 0.08,1H-1,8,6.605,50,130.9736,1.2688,95.0648,166.1739,0.8592 ... 2.41,1H-2,92,6.604,50,130.9019,1.5467,152.7585,202.4669,0.698 2.42,1H-2,93,6.604,50,131.1098,1.5654,152.2331,205.2369,0.6871 2.43,1H-2,94,6.604,50,130.9408,1.6787,148.03,219.8154,0.6214 ... 4.41,2H-2,20,6.605,50,5436.214,1.9546,271.8012,10625.5,0.4614 4.42,2H-2,21,6.605,50,130.9477,2.0751,287.0326,271.7301,0.3915 4.43,2H-2,22,6.606,50,130.9545,1.9434,300.9818,254.4949,0.4679 ...
Each section's name can be composed by prefix "GLAD4-HST03-1A" with suffix from the string in the "SECT NUM" column. So check the "Customize Section Name" checkbox with "GLAD4-HST03-1A" section prefix and the number "2" in the "Name Column Number" will give the sections named "GLAD4-HST03-1A-1H-1", "GLAD4-HST03-1A-1H-2" and "GLAD4-HST03-1A-2H-2". Also notice that you need to use values from multiple columns to compose your full section name, you can also fill in string like, "2,-,4,-,7" to have values from multiple columns in the full section name separated by "-".
In the "Fields Selection" tab, you then can select the data field columns that you want to import into Corelyzer.
The data import process will then ask you to save the converted file (in Corelyzer native xml format) to your disk for future use. After saving, the data will be loaded into current Corelyzer session.
Notice that just like core images, data plots have to belong to a track grouping. So if you haven't have a track created or you want to have dedicated track grouping for data graph plots, create a new track from the "File" menu.
A screen capture video of these actions can be found in this link online (size: 6.7MB).
The Integrated Ocean Drilling Program, United States Implementing Organization provides the logging database accessing service described in the webpage.
To load logging data from the IODP-USIO logging database, select the "IODP" meun item from the "File" menu and then select "Show IODP lists...". Then clicking on the "Logging DB" tab in the popup window as shown in the following figure.
Then depending on where do you run the program, you can choose to access the on-ship version or the Internet version of the service. On-ship version will use the service provider URL "http://loa.ship.iodp.tamu.edu/services/" and the Internet version will use the service provider URL "http://brg.ldeo.columbia.edu/". Once the service provider is selected, the available site and tool options will be downloaded and populated in the selectable combobox options. Or you can also type in interested site and tool and then click on the "Search" button to search for available data. The search result will be shown in the table rows below. You can use mouse to highlight multiple rows and click on the "Load selected data files" button to download, convert and load the data files. Then follow the "Plot dataset graph" steps to show data plots of these loaded data files.
A screen capture video of these actions can be found in this link online (size: 6MB in 1920x1200 resolution).
If you have dataset files loaded and tracks created, your main iCores control window should resemble that pictured below. To plot data, right-click on the desired data file and choose "Graph...". This opens the Graph dialog.
Alternately, you can right-click a section image in the visualization canvas and choose "Graph..." from the menu as seen below:
Select one or more sections and the available data fields will be shown in the "Properties fields" list. Checking a field's checkbox in the "Show" column will plot that data in the main visualization area. To change the color of plotted data, click the field's color cell and select from the resulting palette. Corelyzer attempts to use the same color across all sections for fields of the same name. The "Data Range" column indicates the min/max range of data across all selected sections.
Graph type: Change apperance of graph (points, lines, etc.).
Collapse graphs: When checked, all selected data fields will be plotted on a single coordinate plane for each section (see example below).
Scale min/max: Change the minimum and maximum range of the coordinate plane.
Excluded values: When populated, don't graph datapoints that fall within the excluded range. One or both fields can be filled. When multiple sections are selected, the broadest exclusion range will be displayed (that is, the minimum of minimums and maximum of maximums).
Leave gaps at excluded values: When checked, the Line and Line & Points graph types will not draw a line connecting points with excluded values between them.
In some cases, you may want to expand the vertical size of graph plots, e.g. those with a large depth range. To increase or decrease the graph (vertical) scale, you can first click on the visualization canvas area, and then press '[' or ']' to decrease or increase the graph's size on-screen. A screen capture video of these actions can be found in this link online (size: 2.0MB)
Table of Contents
The basic interaction scheme is a mouse-based interaction. The application is best run using a two-button mouse with a scroll wheel. In the most recent version of Corelyzer, the mouse clicks and events are context sensitive. This means, depending on what your mouse pointing to, the response of the application to mouse events can vary.
To automatically begin panning using the Click-and-drag style, first left-click on the visualization window, making sure not to click on any objects (e.g. core section images, graphs, annotation markers, etc.)
If you successfully clicked and are in the panning-mode, then the mouse pointer should change. In Windows, it will likely change to a four-direction pointer. On Mac OS X, it will change from a black mouse to a white mouse cursor. To pan, keep holding down the left mouse button and drag the mouse to move the view of the scene.
If you have a mouse wheel, zooming is as easy as scrolling the wheel back to zoom out and forward to zoom in. Assuming a particular area is of interest and you want to zoom in on it, simply point at that area of interest and use the mouse wheel to zoom in. The area will stay in the same place as the scene changes in scale. Similarly, you can zoom out to see more of the context that surrounds a particular area.
You can also use keyboard for navigation in Corelyzer. You can use the four-direction arrow key to pan around the main visualization area. To zoom in and out around the mouse cursor position, you can press the "+" and "-" keys. If you want to jump to a certain depth directly, first click on the main visualization area and then press the "j" key to bring up the "Jump to..." dialog. Input the depth in meter and the main visualization area will jump to designated depth directly.
To slide a section image, first left-click on the section image, the image will be highlighted by a yellow bounding box. If you successfully do this, the mouse pointer will change to a hand pointer. The core section image will also be brought to the front of the other images. This is noticeable if any of the core section images overlap. At this point you can slide the section image left or right by moving your mouse left or right with Alt key pressed at the same time.
A track can be slid vertically. To do this, first select a core section image, and then hold down the Shift key. The mouse pointer will remain looking like a hand cursor. Move the mouse up or down and the track will be moved in the direction of the mouse motion.
NOTE: Corelyzer loads all images and tracks at the origin. It is recommended to slide a track away so that new images on a different track do not overlap an existing track.
Right-clicking on a section image opens a menu with several options to modify that section's (or its parent track's) appearance, properties and positioning relative to other sections within its track.
Annotations are currently shown using a marker along the top of a core. The marker is a simple interactive visual to indicate that an annotation exists. Different markers can mean different types of annotations. Annotations types will be added as development continues.
Currently, text and image annotations are supported. Annotations come in the form of HTML and property list XML files.
First an image must be loaded. A user can then select "Create annotation mode" to start creating annotations.
Once you are in creating annotation mode, you can create a region of interest rectangle by pressing-and-dragging to show interested region. A dialog asking for which kind of annotation you are creating will show up once you release the the mouse button. Currently Corelyzer supports the following types of annotations.
Freefrom: a threaded discussion freeform annotation.
Clast: a structured annotation which keeps track of clastology information.
Sample Request: a front-end annotation for sample requests.
Property Values: a generic property-value pairs annotation. Default properties is defined in the dictionary file specified in the preferences panel.
After an annotation is created, it can be edited in the future. To edit an annotation, or review it, a user simply clicks on an annotation marker. The same dialog used when creating an annotation will display.
Currently, the comments will be attached into a discussion thread-like display in a freeform annotation. By clicking the tool buttons at the top of the editing area of annotation window, the user can do simple HTML formatting and insert images and attachment files with URLs or by selecting files from local hard disk.
Any time after the marker is created, the user can change to marker manipulation mode by clicking icon at the toolbox in the upper left screen. Next, select the marker icon and then by click-and-drag the green box to change the region of interest.
A screen capture video of these actions can be found in this link online (size: 14.0MB).
Switch to measuring mode by click the measurement icon in the toolbox at the upper left corner. To measure, click two points on the visualization screen, the physical length measurement will be calculated and saved to measuring history. The last value will also be copied to system’s clipboard so you can easily paste to other applications or the annotation.
A screen capture video of these actions can be found in this link online (size: 5.7MB).
You can save your current working session by selecting “Save Session As ...” under “File” menu. This function will save all the information that you loaded into the scene into a XML-based “CML” file. CML file schema description can be found in here.
This file doesn’t save all the images and dataset files with it, it keeps track of where all the related files are located. You can later load everything back by selecting “Open a Session File” under the same “File” menu.
The “cml” file is small, and if the resource you loaded into the scene are all downloaded from the Internet within Corelyzer, these resources’ URL will be kept and by passing just the “cml” file around, other people can load back the same session that you were working on.
But if the resources you loaded in your working session are all files in your local hard disk, and you want to pass the working session to your colleague? Please use the “Export…” and “Import…” functions under “Core Archive” menu in the "File" menu. The “Export…” function will pack all the resources along with a session “cml” file into a big compressed “Core ARchive”, a “.car” file. It will contain all the images, datasets, annotations and their attachments within. The other people can just use “Import…” to open it up and restore everything you were working on his/her screen.
Table of Contents
Corelyzer server and plugin support was developed by Arun Rao, Yu-Chung "Julian" Chen and Sangyoon "James" Lee in 2006 for supporting ANDRILL MIS Project.
Before starting the server, a few things must be prepared. First, the machine will need to have the Java Runtime Environment (JRE) 1.5 or greater. Second, a web-server must be running. Third, configuration files will need to be made.
Setting up the JRE and a web-server are beyond the scope of this document, but many resources are available on the Web to do so.
The server program requires two files. The first file contains the server settings and is specifically named “server-settings.txt”. This file contains only four lines and are as follows:
<the base web address for all annotation pages> <the directory where the annotations are placed in the server for access> <the directory where the annotations are backed-up to> <the last time that the server performed a backup> <"backenabled" or "backupdisabled" to enable or disable data backups>
Here is an example of that file:
http://188.8.131.52/~corewallDB/annotations /Users/corewallDB/Sites/annotations /Users/corewallDB/Sites/annotations 1155613264194 backupenabled
NOTE: The second last line should be 0 when first starting the server. After which the server will automatically update that line every day.
The second file needed by the server is named “users.txt.” This file contains a listing of tuples that identifies a unique user. The tuple is (user name, real name, password). The first three lines of the file describe the user name, real name and password for the administrator of the server.
NOTE: It should be stated that permissions to this file should be setup so that only the administrator has read and write permissions to the file.
An example of the file can be as follows:
admin administrator admin arun Arun G. Rao melodr@mat1c jason Jason Leigh th3bo55
Anytime a new user is going to be created, it is as easy as adding the user name, real name and password to the end of the file.
To run the server you will need to perform the following command:
java –cp CorelyzerSessionServer.jar corelyzer.plugin.andrill.CorelyzerSessionServer
After running that command you can logout of the server machine and the server program will continue to run. To properly shutdown the server, use the “server-shutdown” command available to the admin client.
You can run the admin client from anywhere. Simply have the JRE 1.5 or greater and keep a copy of the CorelyzerSessionServer.jar file. To run the client simply run the command:
java –cp CorelyzerSessionServer.jar corelyzer.plugin.andrill.CorelyzerSessionAdminClient 192.168.1.1
Where you would replace the I.P. 192.168.1.1 with the proper hostname or IP of the machine running the server. Following is a detailed look at the set of administrator commands.
Command: "new-section". Arguments: "Section name", "Starting depth" in meters" and "Length in meters".
Purpose: The main purpose of the command is to notify to the server that a new core sections exists. Effectively creating empty slots of split-core image and whole-core image entries. This is also used so that when a new data comes in, there are correlations to depth intervals and section names.
Command: "new-missing-section". Arguments: "Section name prefix", "Starting depth in meters" and "Length in meters".
Purpose: The main purpose of the command is to notify to the server that a new missing core sections exists. Effectively creating empty slots of split-core image and whole-core image entries. Using command like “new-missing-section and001 0.0 1.5” will create a new section with section name “and001_0.0-1.5-missing”.
Command: "new-split-core". Arguments: "The URL to the image file", "The name of the section the image comes from", "The DPI (dots-per-inch) of the image in X (horizontal) direction" and (Optional) "The DPI of the image in Y (vertical) direction"
Purpose: The purpose of this command is to let the server know the web address of the split-core image that was created from the core section. This will let the server then notify the clients that the image exists and is available for download and viewing in Corelyzer.
Command: "new-missing-split-core". Arguments: "The section name of missing split core"
Purpose: The purpose of this command is to assign a empty split core image to a core section due to there might be no split core image available but users still need to access the data and whole core images. The missing section name convention will be like <prefix>_<start_depth>-<end_depth>, eg: “and001_186.7-187.5”.
Command: "new-whole-core". Arguments: "The URL to the image file", "The name of the section the image comes from" and "The DPI (dots-per-inch) of the image".
Purpose: The purpose of this command is to let the server know the web address of the whole-core image that was created from the core section. This will let the server then notify the clients that the image exists and is available for download and viewing in Corelyzer.
Command: "new-dataset". Arguments: "Data file to parse" and "The name of the dataset to append/overwrite".
Purpose: This command will parse a tab-delimited data file and feed the server new data tables. The tab delimited data file must follow the formatting exampled in Appendix B. This command will retrieve a listing of sections to use the depth and length of the sections to determine how to partition the data file into tables.
Once the tables are created the tables are sent to the server and stored in a file with the following name convention:
dataset.<section name>.<dataset name>.tab
If the dataset name does not exist in the server, it will be created automatically. If the name exists then the files created on the server will automatically be appended.
NOTE: Existing files will be overwritten automatically! If this is an undesired effect, please make sure that there are no rows that contain depths of sections that would previously had a table made for them for the dataset. If you are only appending to a single tab-delimited file without changing previous rows then the overwrite will effectively be doing nothing for previously created tables.
Command: "list-sections". Arguments: None
Purpose: The purpose of this command is to list the existing sections known to the server. Returned is a listing of section names, their depth and length in meters. The output is displayed to the command-line.
Command: "list-datasets". Arugments: None
Purpose: The purpose of this command is to display datasets known to the server. Displayed are the names of the datasets followed by the attributes in the dataset and their respective minimum and maximum values within the whole dataset.
Command: "list-tables". Arguments: "The name of the dataset"
Purpose: This command will display a listing of tables within a given dataset. This is useful if you do not know if a given section is covered by a dataset because the names of the tables are the names of the sections.
Command: "list-table-data". Arguments: "The name of the dataset" and "The name of the section/table to view"
Purpose: This command will display the data of a table from a given dataset. The data is displayed in a tab-delimited form with the first line as the header followed by lines of numerical values. Table cells that are invalid will appear blank.
Command: "run-backup". Arguments: None
Purpose: The server runs backups automatically if the last backup has occurred more than 24 hours ago. This command forces the current day’s backup to occur.
Command: "logout". Arguments: None
Purpose: This command allows the administrator to logout and ends the client program.
Command: "server-shutdown". Arguments: None
Purpose: This command allows the server to properly shutdown.
Table 10.1. Commands reference table
|new-section||section_name> depth_in_mbsf length_in_meter|
|new-split-core||image_url section_name image_dpi|
|new-whole-core||image_url section_name image_dpi|
In the client side, a client plugin is provided in Corelyzer software. To activate the client user interface, select "Collaborative Corelyzer" from the "Plugins" menu.
To connect to the session server, you can either select or type in the server name from the drop down menu on the top of the client plugin user interface and click on the "Connect" button. The interface then will prompt to ask for the user name and password for accessing the server.
After logging in, the user interface will display available split core and whole core section images and numerical datasets for plotting. To load the available images, click on the checkboxes in each section row. The client plugin will start downloading and loading the section images in the background and show in the main visualization canvas.
The basic formatting of this file is simple. The first row will contain unique column headers that are tab-delimited (i.e. separated by tabs). The first column of the data, by default, is assumed to be the column that contains the depth reference for the data in the row. Every row of data is also tab-delimited, and must contain the same number of tabs as the header row; in order to positively determine which data value belongs to which column. Microsoft® Excel can export a worksheet as a tab-delimited file in the same way. An empty entry is considered to be two consecutive tabs, and will be dealt with properly. Any data that appears to be invalid should be deleted in your spreadsheet program of choice to create an empty entry.
Depth [m] Porosity [% vol] WBD [g/ccm] Sus [units] 12.250 0.454 1.937 241.46 12.270 245.60 12.290 0.420 1.995 244.68 12.310 0.408 2.015 257.45 12.330 0.365 2.087 280.15 12.350 0.387 2.050 305.97 12.370 0.383 2.057 390.86 12.390 0.434 1.971 620.38 12.410 0.282 2.226 762.53 12.430 0.376 2.069 644.55 12.450 0.441 1.959 435.98
NOTE: In this example you can see that on the third row there are two blank entries for both Porosity and WBD columns.
Table 10.2. Handy scripts
|Script name||Function description|
|startserver.sh||Server startup script|
|adminlogin.sh||Interactive administrator client startup script|
|import_img.cron||Sample script that can be placed in crontab to import section image summary report|
|import_data.cron||Sample script that can be placed in crontab to import dataset summary report|
|img_summ||Section image summary report example file (tab separated fields in each line)|
|CRP||Dataset summary report example file. Notice that the data’s depth must be within the range of sections existed in server|
Convert raw scanned image files from BMP or TIFF to JPEG files, to reduce file size and save some network transmission time.
The server assume the splitcore images are in ‘vertical’ orientation and it will tell clients to rotate them so images will be layout horizontal way.
Before import the dataset, make sure the data are in the range of sections already available in the server.
Table of Contents
In the following section, we will show step-by-step how to connect to Corelyzer from Correlator to use available core images assisting choosing tie points in creating affine tables.
Double click on the Corelyzer icon to start Corelyzer. You might want to properly setup the visualization area of Corelyzer if you do not want it overlaps with Correlator's data plot window. Please refer to Corelyzer Display Configuration section for setting up Corelyzer visualization area.
Double click on the Correlator icon to start Correlator. Please refer to Correlator documentation for start using Correlator.
Before using the fine tune function, you have to make sure you have loaded both the data table and the image table of the cores. Please refer to Correlator document on "How to load data files into Correlator Data Manager".
In the following example, 3 data files (Bulk Density GRA) and a image list data file are loaded into Correlator's Data Manager.
Right click on the log data entries and select "Load" to load the data into the plotting area in the Correlator.
Figure 11.4. Right click on the data entries and click on the "Load" to load the log data into the plotting area of Correlator
The data will be plotted in the Correlator window. In the following screenshot, it shows a 1920x1200 screen with Corelyzer showing in the left half and Correlator showing the right half with log data loaded and plotted.
Click on the "Connect to Corelyzer" button on the Correlator command window as shown in the following screenshot.
A confirmation dialog will popup asking whether you want to unload previous loaded images in Corelyzer. Click on "YES" will unload previous tracks and images in Corelyzer.
After successfully connected, if the user use the scrollbar in Correlator to change the viewing depth range, the view range will also be updated accordingly in the Corelyzer visualization area.
Core images will be loaded in the Corelyzer side, if the connection between Correlator and Corelyzer is established during choosing both 2 tie points (red and green points) in Correlator. A red horizontal line will appear in the Corelyzer as the reference tie depth.
Dragging the green tie point in Correlator like you always do, it will update/shift the core images accordingly like the data plots segments. You can use the core image texture for correlation reference.
If you right click the (green) tie point and select the "Clear" option, the core images will be placed to their original position. After your adjustments, right click on the (green) tie point to choose adjustment option as described in Correlator document. The core images will be positioned using the result affine table. If you click on the "Undo To" button in the Correlator, the affine table will be restored and re-read by Corelyzer to shift core images according to the affine table.
When you disconnect from Corelyzer, a dialog will popup in Corelyzer main window. By default selecting "YES" it will close all opened core images during the composite session. If you want to keep the arrangements setup on screen, you can save the session file as described in the "Save and Load Sessions".
To compare 2 cores images or data side-by-side, you can arrange cores to be compared in different "tracks". To do that, first create and highlight a new track. Then load first batch of images to be compared using "Load images" item in the "File" menu. The second batch of core images can be loaded into another newly created track using similar steps. To arrange them side-by-side, use keyboard+mouse gesture "Shift-Drag" one track away from another in the vertical direction. If you need to move individual section along the depth direction, you can use "Alt-Drag" gesture to move sections to different depths.
Table of Contents
Corelyzer is a system that intends to bridge core imagery from multiple sources and scale as time moves on and resolution improves. To do this, the system scales all the images so that these varying resolution imagery can map to a space that will indicate what the dimensions of these images actually represent. In other words, so that an image of a 1.5-meter section appears to be 1.5 meters in length despite how high of a resolution image you take. Does this mean that getting higher resolution imagery is a bad idea? No, because you can always zoom in to see the finest detail available on the image. The higher the resolution the image is (i.e. the higher the DPI), then the more details that can be seen.
Here we will discuss about how to make sure a core image has the correct DPI. At this point, let's assume that your digital-line-scanner scans the core at 100 dots per centimeter. This is equal to 254 DPI.
The first thing to do is open the image in a program like Adobe Photoshop, or The Gimp. At this point, we will assume that you are working with Photoshop.
In Photoshop, you will want to view the image's properties by going to Image -> Image Size. A dialog will appear showing the image width, height, etc. If the resolution does not match the expected DPI then we will need to change it. Before doing that make sure that the Resample Image checkbox is unchecked. Otherwise, when you change the DPI of the image, the image will get resized. After you uncheck the Resample Image option, edit the Resolution text field and enter the correct DPI. At the time of this writing, most core section images have a DPI of 254.
If you realize that more than one image contains the wrong DPI, you can create a batch process in Photoshop to help you deal with all the images.
The Corelyzer Data XML Schema is a fairly simple XML schema. It is based off of a version of the Geotek data XML format. Examples are available at Sample Data.
The root of the Corelyzer XML Schema is >corewall_data<. Inside this node are blocks of section tags. The XML schema is simply a set of tables, one for each core section. Inside section tags are tags to identify which section the table belongs to, units of depth, listing of fields and the data retrieved from sensors at particular depths. Here is a complete example of the XML schema, with sample data processed from JANUS: