Changes between Initial Version and Version 1 of Processing/Py6S_vs_Hyperspectral/Advanced_techniques


Ignore:
Timestamp:
Oct 21, 2015 10:53:14 AM (4 years ago)
Author:
asm
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Processing/Py6S_vs_Hyperspectral/Advanced_techniques

    v1 v1  
     1=== Py6S advanced techniques ===
     2
     3On this section you will find how to run the Py6S for:
     4  -Plot sepectra for only one flightline in a directory with several ones. Or a specific flightline with different names on IGM, NAV and level1b.[[BR]]
     5  -Chose a pixel by its given (lat,lon) or by its position on the grid (x,y).[[BR]]
     6  -Use in-situ reflectance instead of the predefined by Py6S.[[BR]]
     7
     8
     9Let's assume that you are doing the delivery check for hyperspectral data. Go to delivery project directory that you want to check. Example:
     10~arsf/arsf_data/2015/flight_data/spain/EUFAR15_38-2015_170_Mallorca/processing/delivery/EUFAR15_38-170-hyperspectral-20151014
     11
     12Create a new folder as airborne:
     13mkdir ../../../processing/plot_fenix_vs_py6s
     14
     15In this case, the script to run is plot_fenix_vs_py6s.py
     16You will need to specify for the same flightline the .bil on level1b, the .igm and the postprocessed .nav file. Be careful not to take the mask files and the same flightline for every file (the script will exit if not). Run the model as the example:
     17{{{
     18plot_fenix_vs_py6s.py -i ./flightlines/level1b/f169b141b.bil -m ../../../processing/hyperspectral/flightlines/georeferencing/igm/f169b143b_p_sct20.37.igm -n ./flightlines/navigation/f169b141b_nav_post_processed.bil --plot ../../../processing/plot_fenix_vs_py6s/test
     19}}}
     20On the example above a pixel is not specified and the script will look for a ramdom vegetation pixel at nadir and create a plot called test.png on the given folder.
     21
     22You can however specify:
     23  -s INGROUND, --inground INGROUND
     24                        Input ground spectra to run on Py6S (ground measures:
     25                        .sig, .txt)
     26  --lat LAT             If you want a specific pixel instead of a random one
     27  --lon LON             If you want a specific pixel instead of a random one
     28  -x X                  Sample number
     29  -y Y                  Line number
     30
     31If you want to look for a specific pixel, you can select it by its position (lat,lon) or by its coordinates (x,y) on the flightline's grid. Note that the script with only accept (lat, lon) inputs within the range of latitude and longitude of the flightline to prevent human errors.
     32
     33Verbose mode is recomended when running this script and will print on screen information about the given pixel and the viewing angles needed to run the py6s model if the pixel is not a Nadir.
     34
     35This will plot the Fenix spectra against the at-sensor Py6S vegetation model. In this case, both figures will only match if the pixel given as input is a vegetation one and therefore, some caution is recomended when interpreting the plot.
     36
     37
     38=== Ground Reflectance ===
     39If an in-situ ground spectra has been measured and is available, you can run a more precisse Py6S model by giving its path. In this case, the ground reflectance will not be a vegetation type predefined by py6s and your reflectances values will be computed on the model.
     40You will need to add -s when running the script:
     41plot_fenix_vs_py6s.py -v -s ./GROUND_SPECTRA_PATH                               (-i -m. -n, --plot are still required)
     42
     43Currently, suported formats for ground spectra are .text and .sig files:
     44*If a .sig file is given, the script will take the latitude and longitude from the file.
     45*If a text file is given, you need to specify lat, lon or otherwise the script will look for a ramdom vegetation pixel that could not have the same reflectance features that your ground reflectance values.