
Real-Time Resampling and Visualization of Magnetic Data
PR/BA/DA
Michael Wimmer, Georg Zotti (LBI ArchPro)
Description
An array of sensitive magnetometers is used in archaeological prospection to detect small changes in Earth's magnetic field caused by soil-filled pits and ditches or small items like ceramics buried in the soil. The magnetometers are mounted on a cart pulled by hand or a motor vehicle, and the system records GPS positions and various signal values every few milliseconds as the cart is pulled over the ground in (mostly) parallel tracks. From these millions of data samples, raster images are created which show the position of archaeological features.
Sometimes the tracks are not so parallel, however, when obstacles like trees have to be circumnavigated. Sometimes tracks may overlap, or on the other hand, there may also be holes in the data when the tracks are too far apart. That means, for some raster pixels, we have many measurements (oversampling), while other pixels are undersampled and may at best be reconstructed from values falling into neighboring pixels. The positioning accuracy may vary between samples, which means the measured value may with some probability be better placed in the neighboring pixels. This can be modelled by distributing the signal with a Gaussian blob. Also the quality of the sample may depend on various parameters like distance from ground or even instrument age, all these, pointwise recorded data and data set metadata should be taken into account for a system with 10 or even 12 channels.
Point-based rendering has been developed to create images directly from a 3D point cloud collected e.g. with a laser scanner. Also here, instead of points, Gaussian sprites can be used to avoid visible holes between undersampled regions in the point cloud.
We would like to experiment to find out the best filter settings to create optimal visual representations from our multi-scalar data.
Task
Your task will be to create an application that reads our data (XML; we will provide the format info/interface/reading code), and creates 2D images dependent on settings that can be interactively changed with sliders or other standard desktop GUI instruments. A technically interesting approach using modern graphics hardware can be based on Gaussian sprites rendered with diameters and weights depending on the measurement values. The images may become large, potentially exceeding the maximum texture size, so tiling will be a requirement.
Tools
Environment: The software must work with Windows 7 (32/64bit), OpenGL, TIFFlib. Cost-free development tools are preferred - You can use QtCreator with Qt 4.8 or higher for platform-independent GUI creation, or you use MS Visual C++ Express 2010.
A modern multi-core CPU with 4GB or more of RAM and post-2007 graphics hardware (NVidia GeForce 8 series or later or equivalent AMD/ATI cards) with 512MB or more of dedicated graphics memory can be assumed. The program should test hardware capababilities and may fail gracefully if requirements are not fulfilled. If later hardware or requiring 1GB of GPU memory offers significant advantage, this limit is not strict and can be raised.
Requirements
For a full completion of your work, you need to deliver:
- An installer that installs a running GUI application that allows
- loading of our XML data (we will help you with this)
- creation of images and interactive changes with GUI instruments
- an "automatic" mode should create new, random parameter sets (with some parameters frozen) that may create different images and may help to identify better parameter sets.
- storing of raster images into TIFF format.
- The complete project directory, source code, etc.
- Documentation: User manual and description of your algorithm.