| Larkins, David | |
|
QtDEM: An elevation model viewer for USGS Digital Elevation Maps
David Larkins Jr.
May 2003
Advisor: Susan Reiser
Project Description: Three Dimensional visualization has become a very powerful tool for computer users in recent years. It gives users the ability to see data in a very natural and intuitive state. Perhaps the data that can benefit most from this 3D visualization is terrain. The United States Geological Survey (USGS) provides elevation data sets for nearly every region of the U.S. and its territories. This data is stored as arrays of elevation points in specifically formatted files called Digital Elevation Maps (DEM). I created QtDEM as a tool to read this stored elevation data. It creates a 3D representation of the data and allows the user to navigate through the image. QtDEM presents the data so it can be viewed from any direction and angle as well as providing the ability to zoom to specific regions of the model. I decided to create QtDEM using TrollTech's Qt library for two reasons. First of all it is "Free" software released under the GNU GPL. Since I intend on releasing QtDEM under the GPL in the future I thought this would be appropriate. Second, Qt is platform independent. It will run on any X server, Win32, or Mac system.
Hardware and Software Used: Primary Development Hardware: Athlon 1100; 768mb ram; Nvidia Riva TNT2 Ultra 32mb agp graphics Primary Development Software: Debian Linux version 3.0 release 1, Stable "Woody"; Default Linux 2.2.20 kernel; KDE 3.1.0; Qt 2.3.1 and 3.1.1; Kdevelop IDE 2.1.5 ; GNU gcc 2.95.4 Secondary Development Hardware: Dell Inspiron 8200 Laptop; Pentium4 1.6; 384mb ram; Nvidia GeForce4 440 Go 64mb agp graphics Secondary Development Software: Debian Linux version 3.0 release 1, Unstable "Sid"; Custom compiled Linux 2.4.20 kernel; KDE 3.1.1a; Qt 3.1.2; Kdevelop IDE 2.1.5; GNU gcc 2.95.4
Implementation: QtDEM was created using the Kdevelop IDE along with its integrated Emacs simulating editor. It is linked to the Qt, GL, and GLU libraries. It basically functions in three different layers that work together to create the finished application. The first layer extracts the necessary data from the DEM file and populates an easily accessible array with elevation values. The second layer generates the 3D image using OpenGL. It gets the specific data it needs from the array created in the previous layer. The third and final layer is the Qt app. This layer controls the user interface and usual application operations.
Conclusions: When I declared this project I decided to use the Linux platform of which I had little experience. I had never even heard of Qt and my OpenGL experience was limited to that from CSCI 346 more than two years ago. Throughout the development of this project I have been subjected to more and more new things that I had to adapt to. I now feel confident working in the Linux environment. I know more about windowing systems then ever before. My OpenGL knowledge has been refreshed and refined. Finally, I have mastered the art of a Google search. I feel that undertaking this project has elicited the knowledge I've gained from all my CS classes and focused it into one project. |
|