Airborne Processing Library - Development
This page tracks the process of APL development and highlights major/minor changes to the software between recent release versions. The change log can be downloaded if you wish to see changes for all previous versions. It is always recommended that you make sure you have the most up to date version of APL as major bugs may be discovered and fixed at any time. These apply to both the Windows and Linux versions of the software. Note that the version numbers may not appear to increase regularly as sometimes bugs are detected and fixed on internal releases prior to being externally released.
You can get the most up to date version (binaries and source) by going to Downloads.
The following summarises developments between listed versions.
Mainly minor bug fixes and minor updates.
Fix to calibration of Fenix data when binned data are used.
New method of bad pixel detection added.
Many updates to navigation code to use per-second syncing for Fenix data
Many updates to calibration code for Fenix data and file import
Bug fixes to aplmap including some floating point rounding errors (potentially could give a difference of a pixel offset)
Can define -area in aplmap using 6 parameters if you wish to specify the number of output rows/cols rather than pixel size
Can use multifile reading (a list of 1 band files rather than 1 multiband file)
Update to take into account if calibration file has been binned
Updated the navigation code to accept the per second pulse information if there is no usual sync message
Updating licence and copyright information in src code
Added IGM ignore value for if we ever have a pixel without a calculatable lat/lon value.
Gridded no data value can be specified by user (no longer needs to be 0)
Fix to DEM intersection routine to prevent floating point rounding off setting search by one extra DEM cell
Fix to prevent cubic interpolation segfaulting and crashing.
Minor changes to add fixes and extra items into the meta-data files (e.g sensor focal length).
Minor fix to aplmap -buffersize option for when a value larger than 3GB was given.
Aplmap can now output a file containing the level-1 row/col indices in the geocorrected map grid.
Reverted previous update to extrapolation - failed to work on lines which overlap oneself.
DEM handling in aplcorr has been updated to allow a maximum of 2GB RAM for DEM reading. This is primarily to fix 32-bit versions crashing when more than 3GB RAM is requested.
64-bit Windows version has been created. Fix to allow reading of grid shift files from directories with spaces in the name.
Update to algorithm that defines which pixels need updating in the level 3 image, means that there should be no extrapolation at flight line edge. Aplmap will now check for disk space and exit if not enough
Processing efficiency improvements for aplmap.
Added new flag to masks for QC failure pixels.
Minor fixes to DEM AOI calculation if aircraft is banking for the entire flight line.
Addition of "wavelength" output to mapped hdr files.
Other efficiency improvements for ARSF-DAN in-house data processing.
Fix to correct the number of lines in mapped image header file - sometimes recorded as 1 more than data content.
Added new cubic interpolation method for mapping the data.
Aplmask can now mask Hawk bad pixels depending on the method used to detect them.
Improved raw navigation parsing.
Fix to issue with 32-bit (and Windows) processing where large files would sometimes not process, and throw an exception.
Fix to aplmap for band number checking, introduction of ignore values and able to ignore scan lines when mapping, with mapper interpolating over these regions. Increased default interpolation distance to reduce number of holes when mapping masked data.
Introduction of aplmask utility for applying mask data to level-1 data.
Calibration and navigation software updated to include additional mask file for Hawk data, and handle new Specim .nav files.
Fix to aplmap where the data was not being saved correctly when processing is split up into multiple segments (when large numbers of bands were being mapped). Would result in files containing only the first part of a flight line and then 0's everywhere else.
Level 1 data units are now output as nW/cm2/sr/nm instead of uW/cm2/sr/nm and removed comment about data scaling from the meta-data.
aplcorr: fix to DEM area of interest, sometimes would access the incorrect part of the DEM due to floating point errors.
aplnav: Added some comments and improved warning if suspected wrong sync has been identified
general: added a function to get absolute path, to ensure the grid shift file in apltran for OS transformations is given absolutely. It appears that with a relative path it may be ignored (without throwing an error).
Allow Eagle/Hawk calibration to continue if average dark frame value is = to maximum raw value (4095/16383). Will warn as appropriate.
aplcal: Added standard deviation checks to dark frame values to discard unusually high/low ones. Restructuring to allow improved functionality.
aplnav: Added leap seconds for 2012 (to be applied to July onwards)
apltran: Added a percentage counter to allow users to estimate how long processing may take.
aplmap: Can output mapped data to any format (int/float/double etc) defaults to 32-bit floating point. Level-1 BIL data can be of any (real) format (int/float/double etc) to allow mapping of atmospherically corrected data that is stored as floating point.
aplcorr: Improvements to DEM AOI handling and intersection algorithm. Added functions to calculate DEM slope and aspect values. Can also calculate meridional distance for wgs84 ellipsoid and calculation of sensor->intersect view vectors (azimuth/zenith) for input into atmospheric processing software.
aplnav: Can handle IPAS SOL file format so can use the same navigation data files as the LiDAR system. Can also handle new Specim nav files with new style messages (#998) although does nothing with them at the moment. Improved handling of multiple identical sync messages.
apltran: Correction to work properly on windows with uk OS grid shift file - requires PROJ4 built from v4.7.0 rather than the pre-built packaged proj.dll file.