-
Notifications
You must be signed in to change notification settings - Fork 2
Home
dankrusi edited this page Apr 22, 2012
·
24 revisions
The Optimal Lunar Landing Analysis software is part of the International Space Apps Challege, and serves as a platform for processing lunar data in order to find optimal landing sites for spacecrafts.
The idea is to create an extensible platform for which multiple data sets are used by a series of analysis strategies to come up with a good landing solution while providing strong visual feedback mechanisms for both the strategy development phase and the strategy analysis phase.
- Cross-platform (Linux, OS X, Windows)
- Automatic tiling engine
- Map abstraction
- Responsive user interface with support for 3D acceleration
- Easily extensible
- Multi-threaded computation
The Optimal Lunar Landing Analysis software is built ontop of two main concepts: Data Maps and Analysis Maps. Data Maps provide sources of information for performing analysis on. Further reading can be found on the following pages:
- [Data Maps](Data Maps)
- [Analysis Maps](Analysis Maps)
- Install the Qt SDK (
sudo aptitude install qt-sdk qt-creator
) - Run
qmake && make
- Install the Qt SDK from [http://qt-project.org/downloads]
- Open the .pro project file with QT Creator and press Run
- Install the Qt SDK from [http://qt-project.org/downloads]
- Run
qmake && make
- Run the application OptimalLunarLandingAnalysis from the bin directory.
- From the File menu, select Open Map... and find the .map file under the maps directory.
- The first time a map is loaded, the framework needs to pre-calculate some data and create all the tiles. Depending on the map size, this can take a while.
- Use the mouse to pan the map, and the zoom controls to zoom in/out. See how the tiles are loaded on the fly as needed.
- Select the Slope Analysis map to see an example implementation overlay.
- Implement your own strategy by extending the class AnalysisMap:
class SlopeAnalysisMap : public AnalysisMap
{
private:
ElevationDataMap *_elevationMap;
public:
explicit ElevationAnalysisMap(ElevationDataMap *elevationMap, QSettings *settings, QObject *parent = 0) {
// Init
_name = "Elevation Analysis";
_elevationMap = elevationMap;
}
virtual double calculateScoreForPoint(int x, int y) {
// Really trivial implementation: the higher the better...
int elevation = _elevationMap->getElevationAtPoint(x,y);
int minElevation = -9150;
int maxElevation = 10760;
return (double)(elevation - minElevation) / (double)(maxElevation - minElevation);
}
};
###Linux
###Windows
###OS X