Version 4 (modified by lah, 10 years ago) (diff)

--

Owl Processing Guide

The Owl thermal hyperspectral sensor is new to the arsf and does not yet have a complete processing chain. As this is developed this wiki page will be updated. Details on the Owl sensor are available here and information on Owl testing is available here.

Rename Files

Our scripts require that data be named according to the standard convention e.g. OWL219b-14-1, where 219 is the julian day, b the sortie, 14 the year and 1 the flightline. If this is not the case, you must rename both the files and the directories. renameOwl.py can be run with -p specifying the project directory. You will need to set write permissions for all the raw directories and files to do this; taking a backup is strongly recommended.

Radiometric Calibration

Specim have provided a tool to process the Owl raw data into calibrated data. Details on using this tool are located here if required.

To batch process the data use: processOWL.py -p <project directory>

To process individual lines use: process_OWL_line.py -p <project directory> -f <flightline>

Each flightline should have it's own calibration data in the form of additional files prefixed T1 and T2 in the capture directory. If these are not present the script will produce a warning. Run the script again with the option -c auto once the submitted flightlines have produced the required calibration files (Check the log has passed the "Writing calibration file..." step), or manually specify a calibration file with -c <flightline with calibration data_calibration.rad>.

All output files are written to the flight line subdirectory of /processing/owl/flightlines/level1b and logs written to /processing/owl/logfiles. The output files consist of the data (*_proc.bil) and if not specified as inputs, the calibration (*_calibration.rad) and blinker files (*blinkers.dat), each with their own header file. During processing a symlink appears in the output flight line folder to prevent simultaneous processing over the same line. You may need to remove this if processing is aborted before it is automatically removed.

Blinking Pixels/Vertical Stripes

During the radiometric calibration blinking pixels are tested for and removed from the data. It is likely that the default settings will not remove all the blinking pixels and the data will have vertical stripes. To remove these reprocess with a lower value of pixstabi e.g.

process_OWL_line.py -p <project directory> -f <flightline> -m pixstabi=0.005

The pixstabi modifier defines the standard deviation of the time series allowed for a normal pixel, so reducing this removes more pixels above this range. It is not expected that all blinking pixels can be removed as the blinking pixel routine does not yet appear to be optimal. Do not make the value too low as this will remove too many pixels and result in thick vertical stripes where the data has been replaced. It will also remove a considerable amount of spectral information, so check that the spectra still look reasonable. Somewhere between the first 2 images below is desirable.

No image "pixstabi238.png" attached to Procedures/OwlProcessing
Level 1b Owl data (2014 238) calibrated with different values of pixstabi (default 0.011, 0.005, 0.003, 0.0025, 0.002)

Geocorrection

Create a dem in exactly the same way as for fenix. This should be saved in the processing/hyperspectral/dem directory, not the owl directories, so only 1 copy is required. e.g. from the project directory type create_apl_dem.py --aster.

Geocorrection is conducted in the same way as for fenix data, using APL. Generate a config file using generate_apl_config.py -o processing/owl/o2014219b.cfg to keep processing separate from fenix. Currently you need to add the boresight values to the config file (owl_boresight = 0.12 -0.32 0.32). You may want to delete or set to false the fenix lines if only processing owl data. Make sure the project directory structure is complete (same as fenix). Submit to the grid using specim_qsub.py <config_file> and calculate the SCTs. Once you have done this you can generate the mapped data (102 bands) by setting owl_bandlist = ALL and setting the SCT value for each line.

Making a delivery

This currently needs to be done manually and there are no data quality reports to add yet.

Problems

There are likely to be problems with this newly developed processing chain. Please add problems (and solutions!) below and they will be fixed in due course.

  • The xml files are not produced.
  • The boresight needs entering into the config file / needs adding to table.
  • Bad pixels remain - will eventually look into a masking routine &/ get a better blinker detection routine from Specim