Version 11 (modified by mark1, 12 months ago) (diff)

--

Processing the InfraTec IR8300 data

The data are in ascii files with a .asc extension. They have 3 sections, the first 2 containing metadata and the 3rd containing the image data.

The procedure to process the data is:

  • convert asc to tif files for easier managing / tagging using convert_infratec_to_tif.sh
  • tag the images with the navigation information using get_nav_for_infratec_image.py

After this the images are ready to be geocorrected with APL using the photo geocorrection methodology, using photo_geocorrection.py

There is a helper script infratec_quick_run.sh and container process_infratec that can be used to make this a little easier, but loses some functionality of the individual scripts.

Instructions for container method

Build the container if it doesn't already exist (it does!) by using the make_docker.sh script and the -I flag.

Then run it with the following inputs:

COMPULSORY
-i <dir> = input directory of asc files from Infratec instrument
-o <dir> = output directory where tifs and geocorrected imagery goes
-s <file> = SBET file of navigation to tag to images
-c <file> = the config file for the geocorrection

OPTIONAL
-d = delete the intermediate geocorrection files
-r = rotate the Infratec imagery by 180 degrees
-T = input data are TIFF format files

It's important that the container can see the drives where the data are - if not in the user home space or /tmp then you must bind the drives to the container. This is easiest done by exporting the global variable SINGULARITY_BIND, e.g. to add the arsf data you may mount like this:

export SINGULARITY_BIND="/users/rsg/arsf/arsf_data/:/users/rsg/arsf/arsf_data/

The command then can be run:

process_infratec.sif -i  /users/rsg/arsf/arsf_data/2022/flight_data/uk/GB22_02-2022_230_Alconbury/thermal/infratec/ImageIR_8300/220818_151730_line14 \
    -o /tmp/quickouts/ \
    -s /users/rsg/arsf/arsf_data/2022/flight_data/uk/GB22_02-2022_230_Alconbury/posatt/applanix/proc/sbet_2022230.out  \
    -c photo_geocorrection.cfg \
    -d \
    -r

Geocorrection config file

For doing the photograph geocorrection you need to create a config file based from the template at: internal-code/tools/frame_camera_tools/photo_geocorrection.cfg

A very basic example will look like this:

[DEFAULT]

[navdata]
run: false

[aplcorr]
run: true
exe: aplcorr
vvfile: /users/rsg/arsf/calibration/2022/infratec/infratec_vv.bil
boresight: 0 0 0
dem: /users/rsg/arsf/arsf_data/2022/flight_data/uk/GB22_02-2022_230_Alconbury/processing/hyperspectral/dem/GB22_02-2022_230-SRTM.dem

[apltran]
run: true
exe: apltran
projstr: EPSG:32630

[aplmap]
run: true
exe: aplmap

Creation of view vectors or running scripts independently

If view vectors don't exist for the camera then you can create some using the make_camera_vv.py script. You will need a camera parameter config file such as the examples in internal-code/tools/frame_camera_tools/parameter_files.

To run this within the singularity container you can open a shell in it:

singularity shell /tmp/process_infratec.sif and then run e.g., make_camera_vv.py --help

or in docker it'll be something like:

docker exec -it <mycontainer> bash

Running scripts individually

This may be necessary if you don't want to use the basic automated workflow, for instance to work from files other than in the ascii format.

Go into a shell (see above) and then run the scripts individually. These are:

/usr/bin/convert_infratec_to_tif.sh convert the ASCII to TIFFs and copy the metadata into XMP tags

/usr/bin/get_nav_for_infratec_image.py Tag the TIFFs with the Navigation information

/usr/bin/make_camera_vv.py Generate view vector file for the camera based on given parameters

/usr/bin/photo_geocorrection.py Geocorrect the TIFF images