Skip to content
dankrusi edited this page Apr 22, 2012 · 24 revisions

Screenshot

About

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.

Features

  • Cross-platform (Linux, OS X, Windows)
  • Automatic tiling engine
  • Map abstraction
  • Responsive user interface with support for 3D acceleration
  • Easily extensible
  • Multi-threaded computation

Build Instructions

Linux

  • Install the Qt SDK (sudo aptitude install qt-sdk qt-creator)
  • Run qmake && make

Windows

  • Install the Qt SDK from [http://qt-project.org/downloads]
  • Open the .pro project file with QT Creator and press Run

OS X

  • Install the Qt SDK from [http://qt-project.org/downloads]
  • Run qmake && make

Getting Started

  • 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 precalculate 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
{
Q_OBJECT

private:
    ElevationDataMap *_elevationMap;

public:
    explicit SlopeAnalysisMap(ElevationDataMap *elevationMap, QSettings *settings, QObject *parent = 0) {
        // Init
        _name = "Slope Analysis";
        _elevationMap = elevationMap;
    }

    virtual double calculateScoreForPoint(int x, int y) {
        return _elevationMap->getElevationAtPoint(x,y)/255.0;
    }
};

Screenshots

###Linux Screenshot Screenshot Screenshot Screenshot

###OS X Screenshot

Clone this wiki locally