TO-DO: cite images, name attitude determination
The FINCH payload is a hyperspectral push broom camera. One-pixel wide rows (scanlines) are captured at a time, perpendicular to the flight path.
Scanlines captured over a pass are stitched together to create an image. Sensors measure the spectral irradiance of each pixel over many narrow bands in a continuous range. This is in contrast to a multispectral sensor, which captures data over fewer, wider and spaced out bands.
Images take the form of a hyperspectral data cube: they have two spatial dimension and one spectral dimension.
Due to the curvature of the Earth and the tilt of the satellite, areas and positions in images are warped. Since irradiance is radiant flux over area, the area distortion of each pixel must be corrected for.
Another important step in data processing is finding the mapping from pixels in satellite images to coordinate points on the earth. An image is georeferenced if such a mapping is known.
Orthorectification is the process of correcting for distortion caused by foreshortening and tilt effects and allows one to achieve both of these objectives.
The satellite’s position and orientation (pose) should maximize target area coverage and minimize area distortion. The entire flight path must be considered since subsequent scanlines should cover adjacent areas but not overlap.
Oculus is a Python package which crudely corrects for pixel area distortion and georeferences images by modelling the FINCH hyperspectral camera as a pinhole camera. Pixels are projected onto a reference ellipsoid which approximates the earth. Terrain effects (e.g. geological features, man-made structures) are therefore ignored.
_______ finds optimally rotates the spacecraft along a given flight path using gradient descent. Target area coverage, area distortion, and scanline orientation are factored into the cost function. The parameters of the cost function are calculated by Oculus.