Changes between Initial Version and Version 1 of Processing/Py6S_vs_Hyperspectral


Ignore:
Timestamp:
Oct 21, 2015, 10:17:47 AM (9 years ago)
Author:
asm
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Processing/Py6S_vs_Hyperspectral

    v1 v1  
     1=== Py6S ===
     2
     3What is Py6S?
     4
     5Py6S is an open tool that provides an interface to the Second Simulation of the Satellite Signal in the Solar Spectrum (6S) atmospheric Radiative Transfer Model through the Python programming language.
     6
     7Py6S v1.0 was described in Wilson (2012). You must cite this paper if you use Py6S as part of any research which you publish:
     8Wilson, R. T., 2012, Py6S: A Python interface to the 6S radiative transfer model, Computers and Geosciences, 51, p166-171. (See what I've done here?)
     9
     10It is also well documented by the author including a list of papers citing Py6S on this link:
     11https://py6s.readthedocs.org/en/latest/publications.html
     12
     13
     14
     15=== Running Py6S for hyperspectral delivery check ===
     16
     17You can plot the at-sensor radiance spectra recorded by hyperspectral sensonr and compare it to the at-sensor py6s model using the script check_fenix_spectra_py6s.py. This procedure should be done during the hyperespectral delivery check.
     18
     19The simplest version of the script looks for a ramdom vegetation pixel at nadir and plots its spectra recorded by the Fenix sensor versus the predefined py6s vegetation type without atmospheric correction.
     20
     21Go to delivery project directory that you want to check. Example:
     22~arsf/arsf_data/2015/flight_data/spain/EUFAR15_38-2015_170_Mallorca/processing/delivery/EUFAR15_38-170-hyperspectral-20151014
     23If you are airborne user at the selected delivery directory, you can follow the steps on this wiki and simply copy and paste the comands on the terminal.
     24
     25Create a new folder as airborne on the processing directory
     26{{{
     27mkdir ../../../processing/fenix_vs_py6s
     28}}}
     29
     30You can run several plots per flightline to avoid error caused by a erroneous pixel. You can choose the number of plots to output but suggested number is 3. To run the script select as -i the level1b folder on the delivery created
     31{{{
     32check_fenix_spectra_py6s.py -i ./flightlines/level1b/  --num_plots 3 -o ../../../processing/fenix_vs_py6s/ -v
     33}}}
     34This will run the py6s model 3 times for flightline and can take some time to complete. It will create 3 .png files per flightline that you will need to check carefully. To this end, you can find some essential tips on the bottom of this page.
     35
     36The script also needs the IGM directory and the NAV files for every file on the level1b directory. If the location is not the usual one and the script can't find it, you can specify their paths on the command line by using:
     37 -m INIGM, --inigm INIGM
     38                        Input IGM directory (optional, only required if non-standard location)
     39 -n INNAV, --innav INNAV
     40                        Input post-processed navigation file directory (optional, only required if non-standard location)
     41
     42
     43If you want to run the model with different setings, click here for more advanced techniques such as:
     44  -Plot sepectra for only one flightline in a directory with several ones. Or a specific flightline with different names on IGM, NAV and level1b.
     45  -Chose a pixel by its given (lat,lon).
     46  -Chose a pixel by its position on the grid (x,y).
     47  -Use in-situ reflectance instead of the predefined by Py6S.
     48
     49
     50 
     51=== Checking the spectra===
     52The Py6S model selected for this simulation has no atmospheric correction and should have always higher values than the spectra measured by the Fenix instrument.
     53
     54Py6S has several parameters needed to run the model. For this script, ARSF have selected the most convenient ones for our use but do not expect perfect match of the hyperspectral spectra recorded from our sensor against the Py6S. A more detailed explanation about Py6S parameters and settings used by ARSF can be found here
     55
     56Both curves (Fenix and Py6S) should match general features. The peaks and depression (reflecfance-absorption) caused by vegetation have to match and there should be no other spikes on the Fenix spectra that does not match the Py6s. However, note that it is probably to have a spike on some Fenix spectra flightlines on the bands around band 349, close to 900-950 nm. This is caused by the shift on the SWIR bands detected on on October 2014 and those pixels are listed as bad pixels, therefore the spectra recorded by Fenix is correct. You can find a picture ilustrating this issue which also suggest the type of spike you have to look for when they are not on the overlapping region.
     57
     58Under_picture: Figure shows Fenix vs Py6S. Both spectra matches except for a Fenix spike close to 950 nm. No other spikes or depressions like which does not match the Py6S model should be found outside that region.
     59
     60Moreover, peaks VNIR (around 750-850 nm) and SWIR (1000 nm) has to be present on the Fenix spectra. The SWIR peak should be lower than the VNIR but both of them should be comparable. (Print pictures from wiki)