Copyright © 1998 The California Institute of Technology
All rights reserved.

The Mars 2001 Mission

Last update on April 20, 1998
Send questions, comments and corrections to DBA


Introduction

    The Mars 2001 Mission is supported by a database named mars01.

    Click on a table in the diagram above to view the table's detailed documentation. You can get a listing of different types of objects in the database from the documents listed below. These documents contain links to detail object specifications.

Camera Calibration

    Types Of Data

    The camera-image calibration process uses the following data types:

      Calibration records
      This is the information stored in the database. See the database description above and the discussion in the next section.

      Calibration image files
      512 x 512 image files. There is one associated with each calibration record stored in the database. To get the file, we retrieve the imageId from the database record and then get the file having that identifier from FEI. The file type used for these images is marsCalImages.

      Camera image files
      The image files to be calibrated. They are supplied via FEI from the real-time process or from a query of the FEI system.

    Database Tables

    Three tables support camera calibration directly for the Mars 2001 Mission. They're shown in blue in the diagram above. The calibrations table contains calibration records for all of the cameras. These records are used by the calibration program for image processing. The cameras table describes each camera, associates it with a Rover, and relates camera information to a set of calibration records in the calibrations table.

    The vectors table contains vectors of real numbers that are part of calibration records. A separate table is used for vectors so that each vector element is not a separate field in a calibration record. (This would make the set of attributes in the table very long and hard to query.) Since calibration records have several vectors, elements in the table are identified by:

    • calid A calibration record identifier found in the calibrations table.
    • name The name of a particular vector associated with the calibration record.
    • i The index of a vector element: v[0],...,v[i],...,v[n].

    MIPL uses Sybase's Adaptive Enterprise Server as its database server. Sybase has announced that it plans to incorporated Java objects as fields in database tables. (The best estimate is late 1998.) With this feature, a vector, single or multi-dimensional, can be stored as a single field in a table. The data for a calibration vector, along with methods to manipulate the vector's elements, may then be stored as single elements in a calibration record. For a description of this functionality, see the Sybase white paper Java In The Database.

    Processing Steps

    The diagram below illustrates the processing steps and data stores used for image calibration processing.

    Initialization
    When the calibration program starts, it reads a set of calibration records from the database and gets the associated calibration image files from FEI. This information is cached in the calibration program and also written to a local persistent store. The store is an local copy of the information just retrieved from the database. If for some reason, the calibration program could not reach the database and had to be restarted, it uses this copy of the calibration records.

    Since the calibration records are cached, the calibration program need not go out to the database again. However, if updated calibration records are placed in the database, the administrator can direct the program to stop processing while it re-reads one or more calibration records. Processing then continues on.

    Processing
    After the calibration records are read in, the calibration process subscribes to a FEI data type, or a set of data types. The subscription session delivers new camera image files as they arrive from real-time. This is an event driven stream. The calibration just waits on the subscription queue until FEI sends a file and then the program processes it.

    Alternatively, the administrator can get files from FEI without subscribing, by passing the names of files to calibrate to the calibration program.

    Once a file is calibrated, it is returned to FEI using either the add or replace commands. A different file type from the one used for subscription is used so the calibrated files are stored in their own area. Other processes, or users, can subscribe to the calibrated file type. They then receive a copy of the calibrated file as soon as it's produced. (This function is not shown in the diagram.)

    Automatic restart
    The administrator can send a command to the calibration program to re-read one or more calibration records from the database. Whenever new calibrations are read, a copy is saved locally to a persistent store, ie, structured file, that can be used to read in calibration information if the database is not available.

    If the calibration program is subscribing to an FEI file type, a subscription restart file is also written to disk. This file saves the subscription state, so when the program restarts, it picks up where it left off in the subscription stream. That is, it gets the next file that arrived in FEI while the program was not running and continues on from that point.

    This restart mode is already a standard part of FEI. For a more detailed explanation, see the description of the utility program FeiSubscribe.

    Shutdown
    During normal shutdown, the calibration program stops the subscription session and processes any files currently in the subscription queue. When that processing is complete, the program exits. The program can be starts from a fresh state, or it can continue later using the automatic restart mechanism.

    Program Administration

    The calibration program has a CORBA interface that connects to an administration application, or applet, written in Java. An administrator can send commands to the calibration program and receive status information back through this interface. If a Java applet is used, the administrator's interface is in a Web browser.

    Failure Mode

    Calibration can run without accessing either the database or FEI server in the unlikely event that both are unavailable. The diagram below shows the processing topology.

    In this mode, the real-time process writes raw image files to a local directory The calibration process is started with command line parameters that instruct it to read from the specified directory at a stipulated time interval, like once every 5 minutes. Only new files found in the directory are read and processed at each interval - files whose modified time is later than that of the last file processes.) After each file is processed, it is written to an output directory, also specified as a command line argument to the program.

    The calibration data used by the calibration program is read from the local persistent store that was taken from the database by the calibration process at an earlier time.

    In this mode, no network connections are needed. Not only does the program not connect to FEI or the database server, but the Administration front-end is also not needed; the program runs independently using its command line arguments. In this mode, processing can be restarted by supplying a file name as one of the command line arguments. Processing starts with that file and continues to process all files with a modified time later than the initial file processed.

    Once full service is restored, the real-time and calibrated image files are added manually to FEI using FEI's standard FeiAdd utility program. Alternatively, the files can be reprocessed.