Commit 38cab1d315446468afeffa9e983719bd840e7154

Authored by Erwan Motte
1 parent 987bed7a
Exists in master

Started with PRO module

source/PRO/PRO_L0toL1a.rst
  1 +.. _PRO_L0_L1a:
  2 +
1 3 *********************
2 4 Level 0 to Level 1a
3 5 *********************
4 6 \ No newline at end of file
... ...
source/PRO/PRO_L1atoL1b.rst
  1 +.. _PRO_L1a_L1b:
  2 +
1 3 *********************
2 4 Level 1a to Level 1b
3 5 *********************
4 6 \ No newline at end of file
... ...
source/PRO/PRO_ancillary.rst
1   -*************************
2   -Ancillary data processing
3   -*************************
4 1 \ No newline at end of file
  2 +.. _PRO_anc:
  3 +
  4 +*******************************
  5 +Ancillary data processing (ANC)
  6 +*******************************
  7 +
  8 +Description
  9 +===========
  10 +
  11 +The aim of the ancillary data processing subsystem is to read and convert
  12 +into a usable format all the ancillary data provided by the instrument.
  13 +This includes: Ublox positioning and GPS observables raw data and
  14 +SAFIRE altitude. Also, this subsystem computes approximate
  15 +specular points position from low precision satellite position
  16 +and performs DEM lookup for the plane track and reflection point tracks.
  17 +Finally two modules generate a kmz file with track visualization,
  18 +and png figures with time series of ancillary information.
  19 +
  20 +.. figure:: /img/PRO_anc_1.png
  21 + :align: center
  22 + :alt:
  23 +
  24 + Description of the ancillary processing chain
  25 +
  26 +
  27 +
  28 +Anc_read_rtk.py
  29 +===============
  30 +
  31 +Module description
  32 +------------------
  33 +This module reads the Ublox “raw” data (Phase, Pseudorange information, Doppler)
  34 +reprocessed with rtklib. This allows to provide a more precise
  35 +source of information for satellite elevation, azimuth as seen from the plane.
  36 +This information will be in turn be used by the processing chain
  37 +for specular point calculation and altimetric corrections.
  38 +The module just reads a plain-text file using pandas read_table() function
  39 +and store it into a pickled pandas file.
  40 +
  41 +inputs
  42 +------
  43 +
  44 +The processing chain configuration file specifying paths and parameters
  45 +is the only needed input.
  46 +The related fields in the configuration files are the following:
  47 +
  48 +ubx_dir, ubx_prefix
  49 +
  50 +The routine will be looking for the file in the folder “ubx_dir”
  51 +with filename “ubx_prefix” and extension “.azel”
  52 +
  53 +in order to generate the azel file, the following procedure shall be followed.
  54 +
  55 +1. Download the following tools :
  56 +
  57 + * teqc_ command line tool
  58 + * RTKLIB_ graphical tool
  59 +
  60 +.. _teqc: https://www.unavco.org/software/data-processing/teqc/teqc.html
  61 +.. _RTKLIB: http://www.rtklib.com/
  62 +
  63 +2. Convert the ubx raw file into rinex observation file: run the teqc tool on
  64 +the raw ubx file with the following command:
  65 +
  66 +.. code-block:: shell
  67 +
  68 + tecq -ublox ubx ubxrawfile.ubx > ubxrawfile.obs
  69 +
  70 +3. download the gps broadcast navigation file from cddis ftp server
  71 +
  72 + * ftp://cddis.gsfc.nasa.gov/gnss/data/daily/YYYY/DDD/YYn/brdcDDD0.YYn.Z
  73 + where YY and YYYY stand for the year number,
  74 + and DDD for the day of the year (can be found on the `NOAA NGS`_).
  75 + If the measurement spans over several days,
  76 + several navigation files should be downloaded.
  77 +
  78 +.. _`NOAA NGS`: http://www.ngs.noaa.gov/CORS/Gpscal.shtml
  79 +
  80 +
  81 +4. Unzip the downloaded file(s).
  82 +
  83 +5. Open RTKLib RTKplot
  84 +
  85 + * Select **File>Open Obs Data** and load the ubxrawfile.obs
  86 + * Select **File>Open nav data** and select the brdcDDD0.YYn.n file(s)
  87 + * Check in the skyplot and elevation plots that azimut
  88 + and elevations are correctly computed
  89 + * save the azel file in File>Save AZ/EL/SNR/MP… and name it ubxrawfile.azel
  90 +
  91 +Outputs
  92 +-------
  93 +One file in the pickled pandas format is generated:
  94 +**{Flight_id}_rtk.p**: Space Vehicles Azimuth and elevation from
  95 +GLORI Ublox receiver processed by RTKLib
  96 +Field
  97 +Unit
  98 +Description
  99 +DateTime
  100 +Python DateTime
  101 +Date and time of the sample
  102 +sv
  103 +N/A
  104 +Satellite Space Vehicle ID (PRN ID for GPS)
  105 +azim_te
  106 +
  107 +
  108 +integer degrees
  109 +GLORI UBlox RTKLib processed SV azimuth relative to receiver location
  110 +elev_te
  111 +integer degrees
  112 +GLORI UBlox RTKLib processed SV elevation relative to receiver location
  113 +
  114 +Anc_read_UBX_v2.py
  115 +==================
  116 +
  117 +Module description
  118 +The purpose of this module is to read the data recorded by the Ublox GPS receiver included in the GLORI instrument. Depending on the version of the instrument, data was saved in different formats (UBX + NMEA for the first campaign, UBX only for the second campaign). The module is based on the pyUblox (https://github.com/tridge/pyUblox) and pynmea2 (https://github.com/Knio/pynmea2) packages.
  119 +inputs
  120 +The processing chain configuration file specifying paths and parameters is the only needed input.
  121 +The related fields in the configuration files are the following:
  122 +Field
  123 +Description
  124 +Example
  125 +ubx_dir
  126 +directory of the ubx files relative to the base directory
  127 +‘UBlox/’
  128 +ubx_prefix
  129 +Name of the ublox file, without the ‘.ubx’ extension
  130 +ubx_type
  131 +Type of data format 'UBX+NMEA' or ‘UBX_ONLY’
  132 +‘UBX_ONLY’
  133 +
  134 +Outputs
  135 +2 files are generated by the anc_read_UBX_v2.py module, in the pickled pandas format:
  136 +{Flight_id}_ubx_pos.p: 3D position GLORI from Ublox receiver
  137 +Field
  138 +Unit
  139 +Description
  140 +DateTime
  141 +Python DateTime
  142 +Date and time of the sample
  143 +sow
  144 +seconds
  145 +GPS Time of the Week of the sample
  146 +lat
  147 +decimal degrees
  148 +GLORI UBlox-based latitude
  149 +lon
  150 +decimal degrees
  151 +GLORI UBlox-based longitude
  152 +hMSL
  153 +m
  154 +GLORI UBlox-based height over mean sea level
  155 +hOE
  156 +m
  157 +GLORI UBlox-based height over Ellipsoid
  158 +course
  159 +decimal degrees
  160 +GLORI UBlox-based course
  161 +gSpeed
  162 +m/s
  163 +GLORI UBlox-based ground speed
  164 +hAcc
  165 +m
  166 +GLORI UBlox-based horizontal Accuracy
  167 +vAcc
  168 +m
  169 +GLORI UBlox-based vertical Accuracy
  170 +
  171 +{Flight_id}_ubx_SVs.p: Space Vehicles information from GLORI Ublox receiver
  172 +Field
  173 +Unit
  174 +Description
  175 +DateTime
  176 +Python DateTime
  177 +Date and time of the sample
  178 +sow
  179 +seconds
  180 +GPS Time of the Week of the sample
  181 +sv
  182 +N/A
  183 +Satellite Space Vehicle ID (PRN ID for GPS)
  184 +azim
  185 +
  186 +
  187 +integer degrees
  188 +GLORI UBlox-based SV azimuth relative to receiver location
  189 +elev
  190 +integer degrees
  191 +GLORI UBlox-based SV elevation relative to receiver location
  192 +cn0
  193 +dB
  194 +GLORI UBlox-based SV Carrier to Noise Ratio
  195 +cpMes
  196 +radians
  197 +GLORI UBlox-based SV Code Phase
  198 +doMes
  199 +Hz
  200 +GLORI UBlox-based SV Doppler
  201 +prMes
  202 +m
  203 +GLORI UBlox-based SV PseudoRange
  204 +Issues / Recommendations
  205 +Various format and time resolution depending on campaigns (UBX+NMEA, UBX only)
  206 +Solution: Create specific cases for each configuration
  207 +Issues in the computation of the UTC time (jumps of 16s in one case.)
  208 +Recompute time from received iTOW
  209 +
  210 +Anc_read_SAFIRE_v2.py
  211 +=====================
  212 +
  213 +Module description
  214 +The purpose of this module is to read the data recorded by SAFIRE ATR-42 on-board instrumentation, i.e. from an AIRINS system. This mainly include information from an independant GPS receiver attached to an Inertial Navigation System (INS) as well as a Radio Altimeter providing independent estimate of range under the plane track. Is has to be noted that depending on the flights, data fields, data frequency and data format was changed. See Post-Campaign instrument analysis document for more information.
  215 +inputs
  216 +The processing chain configuration file specifying paths and parameters is the only needed input.
  217 +The related fields in the configuration files are the following:
  218 +Field
  219 +Description
  220 +Example
  221 +SAFIRE_dir
  222 +directory of the SAFIRE files relative to the base directory
  223 +'SAFIRE/'
  224 +SAFIRE_file
  225 +Name of the SAFIRE file, with the extension
  226 +‘ATR_10Hz-as_kuros_20141120_as140040.txt'
  227 +SAFIRE_type
  228 +Type of data format 'xls', ‘txt_v1’ or ‘txt_v2’
  229 +'xls'
  230 +
  231 +Outputs
  232 +1 file is generated by the anc_read_SAFIRE_v2.py module, in the pickled pandas format:
  233 +{Flight_id}_saf.p: SAFIRE ancillary information
  234 +Field
  235 +Unit
  236 +Description
  237 +DateTime
  238 +Python DateTime
  239 +Date and time of the sample
  240 +lat_ins
  241 +decimal degrees
  242 +SAFIRE AIRINS-based latitude
  243 +lon_ins
  244 +decimal degrees
  245 +SAFIRE AIRINS-based longitude
  246 +hMSL_ins
  247 +m
  248 +SAFIRE AIRINS-based height over mean sea level
  249 +heading_ins
  250 +m
  251 +SAFIRE AIRINS-based aircraft heading
  252 +pitch_ins
  253 +decimal degrees
  254 +SAFIRE AIRINS-based aircraft pitch
  255 +roll_ins
  256 +m/s
  257 +SAFIRE AIRINS-based aircraft roll
  258 +alt_ra
  259 +m
  260 +SAFIRE Radio altimeter estimated range under the plane track
  261 +
  262 +Anc_post_process.py
  263 +===================
  264 +
  265 +Module description
  266 +This modules takes the output of the Anc_read_UBX.py and Anc_read_SAFIRE.py modules in order to generate consolidated ancillary data files ready to be used by other procedures. It performs the following tasks:
  267 +Process Plane position info
  268 +Read Ublox information
  269 +Filter data for a minimum flight altitude
  270 +SRTM DEM lookup for the flight path (using https://github.com/tkrajina/srtm.py)
  271 +Read Safire information
  272 +Compute Zenith Antenna Elevation and Azimuth from Attitude information
  273 +Interpolate SAFIRE according to Ublox position info
  274 +Process SVs info
  275 +Filter for SV elevation angle and SV type
  276 +Compute the approximate footprint location for the filtered SVs, using pyProj
  277 +SRTM DEM lookup for the Specular point location
  278 +Inputs
  279 +The processing chain configuration file specifying paths and parameters is the only needed input
  280 +Outputs
  281 +3 files are generated by the anc_post_process.py module, all of them inthe pickled pandas format:
  282 +{Flight_id}_post_pos.p: GLORI Ublox position + SAFIRE INS attitude information + DEM information interpolated (nearest neighbour) at the Ublox GPS rate
  283 +Field
  284 +Unit
  285 +Description
  286 +DateTime
  287 +Python DateTime
  288 +Date and time of the sample
  289 +sow
  290 +seconds
  291 +GPS Time of the Week of the sample
  292 +lat
  293 +decimal degrees
  294 +GLORI UBlox-based latitude
  295 +lon
  296 +decimal degrees
  297 +GLORI UBlox-based longitude
  298 +gSpeed
  299 +m/s
  300 +GLORI UBlox-based ground speed
  301 +hMSL
  302 +m
  303 +GLORI UBlox-based height over mean sea level
  304 +course
  305 +decimal degrees
  306 +UBlox-based true course
  307 +DEM
  308 +m
  309 +Digital Elevation Model (SRTM) height under the flight track
  310 +heading_ins
  311 +decimal degrees
  312 +SAFIRE AIRINS-based aircraft heading
  313 +pitch_ins
  314 +decimal degrees
  315 +SAFIRE AIRINS-based aircraft pitch
  316 +roll_ins
  317 +decimal degrees
  318 +SAFIRE AIRINS-based aircraft roll
  319 +lat_ins
  320 +decimal degrees
  321 +SAFIRE AIRINS-based aircraft latitude
  322 +lon_ins
  323 +decimal degrees
  324 +SAFIRE AIRINS-based aircraft longitude
  325 +hMSL_ins
  326 +m
  327 +SAFIRE AIRINS-based aircraft altitude over mean sea level
  328 +alt_ra
  329 +m
  330 +SAFIRE Radio altimeter estimated range under the plane track
  331 +el_zen
  332 +decimal degrees
  333 +Zenith antenna boresight elevation angle (computed from SAFIRE attitude information)
  334 +az_zen
  335 +decimal degrees
  336 +Zenith antenna boresight azimuth direction (computed from SAFIRE attitude information)
  337 +
  338 +{Flight_id}_post_SVs.p: GLORI Ublox-based Space Vehicles information: Approximate azimuth and elevation relative to plane, and related computed position of specular point on ground.
  339 +Field
  340 +Unit
  341 +Description
  342 +sow
  343 +seconds
  344 +GPS Time of the Week of the sample
  345 +sv
  346 +N/A
  347 +Satellite Space Vehicle ID (PRN ID for GPS)
  348 +azim
  349 +
  350 +
  351 +integer degrees
  352 +GLORI UBlox-based satellite azimuth relative to receiver location
  353 +elev
  354 +integer degrees
  355 +GLORI UBlox-based satellite elevation relative to receiver location
  356 +speclat
  357 +decimal degrees
  358 +Computed specular point approximate latitude
  359 +speclon
  360 +decimal degrees
  361 +Computed specular point approximate longitude
  362 +specDEM
  363 +m
  364 +Digital Elevation Model (SRTM) value at the specular point location
  365 +heightOG
  366 +m
  367 +Height difference between DEM at specular point location and flight altitude (can be used for altimetric validation purposes)
  368 +
  369 +{Flight_id}_post_SVs.p: Same fields as above, but with a reduced temporal resolution defined by cfg[‘lowres_step’], typically 2 seconds. File used for generating kml files.
  370 +Issues / recommendations
  371 +Data rate and interpolation need to be checked for output files. Maybe set a common frequency (5Hz?) for each output measurement could be a good way to get uniform ancillary datasets.
  372 +Compare SV az/el against CStarlight-derived az/el
  373 +
5 374 \ No newline at end of file
... ...
source/PRO/PRO_common.rst
  1 +.. _PRO_common:
  2 +
1 3 *********************
2 4 Glori Common routines
3   -*********************
4 5 \ No newline at end of file
  6 +*********************
  7 +
  8 +The GLORI common routines are stored in the common/ folder of the
  9 +pyGLORI project. It contains several functions that are used
  10 +at various stage of the processing
  11 +
  12 +
  13 +geom.py
  14 +=======
  15 +
  16 +Geometry related functions
  17 +
  18 +
  19 +glori_antennas.py
  20 +=================
  21 +
  22 +antenna related functions
  23 +
  24 +
  25 +glori_common.py
  26 +===============
  27 +
  28 +general purpose functions (related with time manipulation among others)
  29 +
  30 +
  31 +glori_io.py
  32 +===========
  33 +
  34 +I/O related routines, linked to netCDF, HDF and Pickle specific formats for
  35 +L0, L1a and L1b
  36 +
  37 +
  38 +local_angle.py
  39 +==============
  40 +
  41 +Functions related to calculation of angle differences and rotations.
... ...
source/PRO/PRO_config.rst
  1 +.. _PRO_config:
  2 +
1 3 *********************
2 4 Configuration files
3 5 *********************
... ...
source/PRO/PRO_intro.rst
1   -*********************
2   -Introduction
3   -*********************
4 1 \ No newline at end of file
  2 +.. _PRO_intro:
  3 +
  4 +******************************************
  5 +Introduction to the GLORI processing chain
  6 +******************************************
  7 +
  8 +Presentation
  9 +============
  10 +
  11 +The GLORI processing chain performs all the computations and processing
  12 +required to go from raw ADC signals (RAW) and ancillary data (ANC) to
  13 +geolocalized calibrated polarimetric reflectivity products (L1b).
  14 +
  15 +This chain does NOT include the generation of geophysical products such as soil
  16 +moisture content (SMC), Plant Water Content (PWC)
  17 +or above-ground biomass (AGB).
  18 +
  19 +It is mainly based on Python_ 2.7 but also uses external executable for the
  20 +raw data processing. It makes extensive use of NumPy_ for numerical operations,
  21 +matplotlib_ for plotting, and pandas_ for data storage and manipulation.
  22 +
  23 +It also uses other python packages that will be presented in the detailed
  24 +description of the processing chain.
  25 +
  26 +.. _Python: https://en.wikipedia.org/wiki/Python_(programming_language)
  27 +.. _NumPy: http://www.numpy.org/
  28 +.. _matplotlib: http://matplotlib.org/
  29 +.. _pandas : http://pandas.pydata.org/
  30 +
  31 +
  32 +General Structure
  33 +=================
  34 +
  35 +The Processing chain is based in the following subsystems
  36 +
  37 +- :ref:`PRO_anc`: Reads, converts and processes the ancillary data in order to
  38 + provide precise location and attitude information for the flight track.
  39 +
  40 +- :ref:`PRO_raw_L0`: Reads, converts and processes Raw ADC data
  41 + to provide uncalibrated waveforms.
  42 +
  43 +- :ref:`PRO_L0_L1a`: Integrates L0 data to reduce noise, add ancillary
  44 + information to the file. Check and interpolate time information.
  45 +
  46 +- :ref:`PRO_L1a_L1b`: calibrates L1A signal for attitude,
  47 + antenna radiation pattern, direct signal strength and produces
  48 + polarimetric reflectivity products and polarimetric phase products.
  49 +
  50 +
  51 +Configuration
  52 +=============
  53 +
  54 +The GLORI processing chain is configured from text files in YAML format.
  55 +Their description is provided in the :ref:`PRO_config` section.
  56 +
  57 +
  58 +Additional Modules
  59 +==================
  60 +
  61 +Additionally, several companion modules are used in order to provide
  62 +general purpose functions an plot the output results:
  63 +
  64 +- :ref:`PRO_common`: General purpose routines related to Time/Date
  65 + manipulations among other things
  66 +
  67 +- :ref:`PRO_plot`: Plotting routines providing visual output for the whole chain.
5 68 \ No newline at end of file
... ...
source/PRO/PRO_plot.rst
  1 +.. _PRO_plot:
  2 +
1 3 *********************
2 4 Plotting routines
3 5 *********************
4 6 \ No newline at end of file
... ...
source/PRO/PRO_rawtoL0.rst
  1 +.. _PRO_raw_L0:
  2 +
1 3 *********************
2 4 Raw to Level 0
3 5 *********************
4 6 \ No newline at end of file
... ...
source/examples/config/flight_conf.yaml
1   -# Flight Info
  1 +## Flight Info
2 2  
3   -flight_id : 'GLORIE_Flight_2'
4   -desc : 'GLORIE Flight 2, Short'
5   -date : '2015-06-22'
  3 +flight_id : 'GLORIE_Flight_2' # Flight id, for file names, no space allowed
  4 +desc : 'GLORIE Flight 2, Short' # Full description
  5 +date : '2015-06-22' # Flight date in format 'YYYY-MM-DD'
6 6  
7   -min_dt : '1979-12-23-103000'
8   -max_dt : '2079-12-23-103000'
  7 +min_dt : '1979-12-23-103000' # processing start time 'YYYY-MM-DD-HHmmss'
  8 +max_dt : '2079-12-23-103000' # processing stop time 'YYYY-MM-DD-HHmmss'
9 9  
10   -# Base Paths
  10 +## Base Paths
11 11  
  12 +# Path to campaign data
12 13 base_dir : '/media/sf_F_DRIVE/2015-06_Campagne_GLORIE/'
13   -flight_dir : '20150622_Flight_2_Short/'
  14 +flight_dir : '20150622_Flight_2_Short/' # Path to flight data
14 15  
15 16 # Ancillary Data
16 17  
17   -ubx_dir : 'UBlox/'
18   -ubx_prefix : 'COM12_150622_052826'
19   -ubx_type : 'UBX_ONLY'
  18 +ubx_dir : 'UBlox/' # path to directory with ublox data
  19 +ubx_prefix : 'COM12_150622_052826' # Ublox file name (no extension)
  20 +ubx_type : 'UBX_ONLY' # Type of Ublox file (UBX_ONLY or UBX+NMEA)
20 21  
21   -SAFIRE_dir : 'SAFIRE/'
22   -SAFIRE_file : 'as150002_5.xlsx'
23   -SAFIRE_type : 'xls'
  22 +SAFIRE_dir : 'SAFIRE/' # path to directory with SAFIRE ancillary data
  23 +SAFIRE_file : 'as150002_5.xlsx' # SAFIRE data filename (with extension)
  24 +SAFIRE_type : 'xls' # SAFIRE file tue (xls or txt)
24 25  
25   -leapsec : 16
  26 +leapsec : 16 # number of GPS leapseconds at the time of the flight
26 27  
  28 +# relative path to the processing setting file
27 29 proc_settings : proc_settings/GLORIE2015_v0.cfg
28 30 \ No newline at end of file
... ...
source/examples/config/proc_conf.yaml
1 1 ## Raw data Paths
2 2  
3   -Flight_dir : 'SDRNav/Flight/'
4   -Cal_0_dir : 'SDRNav/Cal_0/'
5   -Cal_1_dir : 'SDRNav/Cal_1/'
6   -Cal_2_dir : 'SDRNav/Cal_2/'
7   -Cal_3_dir : 'SDRNav/Cal_3/'
  3 +Flight_dir : 'SDRNav/Flight/' # Location of flight mode data
  4 +Cal_0_dir : 'SDRNav/Cal_0/' # Location of cal-0 mode data
  5 +Cal_1_dir : 'SDRNav/Cal_1/' # Location of cal-1 mode data
  6 +Cal_2_dir : 'SDRNav/Cal_2/' # Location of cal-2 mode data
  7 +Cal_3_dir : 'SDRNav/Cal_3/' # Location of cal-3 mode data
8 8  
9 9  
10 10 ## Output structure
11 11  
  12 +# Full path of main output directory
12 13 out_dir : '/media/sf_F_DRIVE/2015-06_Campagne_GLORIE_out/'
13   -anc_dir : 'anc/'
14   -L0_dir : 'L0/01ms/'
15   -calib_dir : 'calib/'
16   -L1a_dir : 'L1a/'
17   -L1b_dir : 'L1b/'
18   -conf_dir : '../conf_05ms/'
19   -tp_dir : 'timepos/'
20   -fig_dir : 'figs/'
21   -kml_dir : 'kml/'
22   -tiff_dir : 'tiffs_cal/'
  14 +anc_dir : 'anc/' # path of output ancillary data
  15 +L0_dir : 'L0/01ms/' # path of Level 0 data
  16 +calib_dir : 'calib/' # path of calibration data
  17 +L1a_dir : 'L1a/' # path to Level 1a data
  18 +L1b_dir : 'L1b/' # path to Level 1b data
  19 +fig_dir : 'figs/' # path to output Figures
  20 +kml_dir : 'kml/' # path to kmls of georeferenced files
  21 +tiff_dir : 'tiffs_cal/' # path to output geotiffs
23 22  
24 23 # Regexp for parsing date from file names
25 24 dt_regex : '(\d{4}-\d{2}-\d{2}-\d{6})'
... ... @@ -28,7 +27,7 @@ dt_regex : '(\d{4}-\d{2}-\d{2}-\d{6})'
28 27 ## Processing
29 28  
30 29 t_coh : 0.005 # Coherent averaging time
31   -t_incoh : 0.200 # time to be integrated
  30 +t_incoh : 0.200 # Incoherent averaging time
32 31 n_sm : 3 # n of samples to be smoothed for interpolation
33 32 max_time_diff : 2700 # Maximum interval (seconds) between two measurements
34 33  
... ... @@ -38,7 +37,10 @@ reprocess : False # Whether to reprocess formerly processed files
38 37 exec_dir : '/media/sf_F_DRIVE/processing/' # Location of the exectutable folder
39 38 cStarlight_dir : 'CStarlight_bin/bin_nix64/' # Location of cStarlight
40 39 rawtoLev0_exe : 'raw_to_Lev0' # name of the raw to level 0 executable
41   -rawtoLev0_cfg : 'L0_gps_settings.txt' # Location of raw to lev0 settings
  40 +
  41 +conf_dir : '../conf_05ms/' # path to CStarlight configuration files
  42 +rawtoLev0_cfg : 'L0_gps_settings.txt' # Raw to Level 0 settings file
  43 +tp_dir : 'timepos/' # Path to cStarlight timepos files
42 44  
43 45 # Location of raw file converter executable
44 46 decompress_exe : 'dataConverters/raw_to_1bit_bin_IF_3ch_skip500kS'
... ...
source/img/spyder_light.svg
... ... @@ -1,366 +0,0 @@
1   -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2   -<!-- Created with Inkscape (http://www.inkscape.org/) -->
3   -
4   -<svg
5   - xmlns:dc="http://purl.org/dc/elements/1.1/"
6   - xmlns:cc="http://creativecommons.org/ns#"
7   - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8   - xmlns:svg="http://www.w3.org/2000/svg"
9   - xmlns="http://www.w3.org/2000/svg"
10   - xmlns:xlink="http://www.w3.org/1999/xlink"
11   - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
12   - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
13   - version="1.0"
14   - width="150.56873"
15   - height="150.31233"
16   - id="svg2"
17   - sodipodi:version="0.32"
18   - inkscape:version="0.48.2 r9819"
19   - sodipodi:docname="spyder_light.svg"
20   - inkscape:output_extension="org.inkscape.output.svg.inkscape"
21   - inkscape:export-filename="D:\Python\spyder\img_src\ico24.png"
22   - inkscape:export-xdpi="14.35"
23   - inkscape:export-ydpi="14.35">
24   - <metadata
25   - id="metadata2193">
26   - <rdf:RDF>
27   - <cc:Work
28   - rdf:about="">
29   - <dc:format>image/svg+xml</dc:format>
30   - <dc:type
31   - rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
32   - <dc:title></dc:title>
33   - <cc:license
34   - rdf:resource="http://creativecommons.org/licenses/by/3.0/" />
35   - </cc:Work>
36   - <cc:License
37   - rdf:about="http://creativecommons.org/licenses/by/3.0/">
38   - <cc:permits
39   - rdf:resource="http://creativecommons.org/ns#Reproduction" />
40   - <cc:permits
41   - rdf:resource="http://creativecommons.org/ns#Distribution" />
42   - <cc:requires
43   - rdf:resource="http://creativecommons.org/ns#Notice" />
44   - <cc:requires
45   - rdf:resource="http://creativecommons.org/ns#Attribution" />
46   - <cc:permits
47   - rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
48   - </cc:License>
49   - </rdf:RDF>
50   - </metadata>
51   - <sodipodi:namedview
52   - inkscape:window-height="813"
53   - inkscape:window-width="1643"
54   - inkscape:pageshadow="2"
55   - inkscape:pageopacity="0.0"
56   - borderopacity="1.0"
57   - bordercolor="#666666"
58   - pagecolor="#ffffff"
59   - id="base"
60   - inkscape:zoom="2.0279948"
61   - inkscape:cx="-228.44418"
62   - inkscape:cy="56.434504"
63   - inkscape:window-x="0"
64   - inkscape:window-y="22"
65   - inkscape:current-layer="svg2"
66   - showgrid="false"
67   - inkscape:window-maximized="0" />
68   - <defs
69   - id="defs4">
70   - <linearGradient
71   - id="linearGradient3350">
72   - <stop
73   - style="stop-color:#00cb2b;stop-opacity:0.24793388;"
74   - offset="0"
75   - id="stop3352" />
76   - <stop
77   - style="stop-color:#00cb2b;stop-opacity:1;"
78   - offset="1"
79   - id="stop3354" />
80   - </linearGradient>
81   - <linearGradient
82   - id="linearGradient3342">
83   - <stop
84   - style="stop-color:#005a85;stop-opacity:1;"
85   - offset="0"
86   - id="stop3344" />
87   - <stop
88   - style="stop-color:#005a85;stop-opacity:0.75206614;"
89   - offset="1"
90   - id="stop3346" />
91   - </linearGradient>
92   - <linearGradient
93   - id="linearGradient3310">
94   - <stop
95   - id="stop3312"
96   - offset="0"
97   - style="stop-color:#ae0202;stop-opacity:1;" />
98   - <stop
99   - id="stop3314"
100   - offset="1"
101   - style="stop-color:#e39494;stop-opacity:1;" />
102   - </linearGradient>
103   - <inkscape:perspective
104   - sodipodi:type="inkscape:persp3d"
105   - inkscape:vp_x="0 : 71.887497 : 1"
106   - inkscape:vp_y="0 : 1000 : 0"
107   - inkscape:vp_z="486.04999 : 71.887497 : 1"
108   - inkscape:persp3d-origin="243.02499 : 47.924998 : 1"
109   - id="perspective47" />
110   - <linearGradient
111   - id="linearGradient2795">
112   - <stop
113   - style="stop-color:#b8b8b8;stop-opacity:0.49803922"
114   - offset="0"
115   - id="stop2797" />
116   - <stop
117   - style="stop-color:#7f7f7f;stop-opacity:0"
118   - offset="1"
119   - id="stop2799" />
120   - </linearGradient>
121   - <linearGradient
122   - id="linearGradient2787">
123   - <stop
124   - style="stop-color:#7f7f7f;stop-opacity:0.5"
125   - offset="0"
126   - id="stop2789" />
127   - <stop
128   - style="stop-color:#7f7f7f;stop-opacity:0"
129   - offset="1"
130   - id="stop2791" />
131   - </linearGradient>
132   - <linearGradient
133   - id="linearGradient3676">
134   - <stop
135   - style="stop-color:#b2b2b2;stop-opacity:0.5"
136   - offset="0"
137   - id="stop3678" />
138   - <stop
139   - style="stop-color:#b3b3b3;stop-opacity:0"
140   - offset="1"
141   - id="stop3680" />
142   - </linearGradient>
143   - <linearGradient
144   - id="linearGradient3236">
145   - <stop
146   - style="stop-color:#f4f4f4;stop-opacity:1"
147   - offset="0"
148   - id="stop3244" />
149   - <stop
150   - style="stop-color:#ffffff;stop-opacity:1"
151   - offset="1"
152   - id="stop3240" />
153   - </linearGradient>
154   - <linearGradient
155   - id="linearGradient4671">
156   - <stop
157   - style="stop-color:#ffd43b;stop-opacity:1"
158   - offset="0"
159   - id="stop4673" />
160   - <stop
161   - style="stop-color:#ffe873;stop-opacity:1"
162   - offset="1"
163   - id="stop4675" />
164   - </linearGradient>
165   - <linearGradient
166   - id="linearGradient4689">
167   - <stop
168   - style="stop-color:#5a9fd4;stop-opacity:1"
169   - offset="0"
170   - id="stop4691" />
171   - <stop
172   - style="stop-color:#306998;stop-opacity:1"
173   - offset="1"
174   - id="stop4693" />
175   - </linearGradient>
176   - <linearGradient
177   - x1="224.23996"
178   - y1="144.75717"
179   - x2="-65.308502"
180   - y2="144.75717"
181   - id="linearGradient2987"
182   - xlink:href="#linearGradient4671"
183   - gradientUnits="userSpaceOnUse"
184   - gradientTransform="translate(100.2702,99.61116)" />
185   - <linearGradient
186   - x1="172.94208"
187   - y1="77.475983"
188   - x2="26.670298"
189   - y2="76.313133"
190   - id="linearGradient2990"
191   - xlink:href="#linearGradient4689"
192   - gradientUnits="userSpaceOnUse"
193   - gradientTransform="translate(100.2702,99.61116)" />
194   - <linearGradient
195   - x1="172.94208"
196   - y1="77.475983"
197   - x2="26.670298"
198   - y2="76.313133"
199   - id="linearGradient2587"
200   - xlink:href="#linearGradient4689"
201   - gradientUnits="userSpaceOnUse"
202   - gradientTransform="translate(100.2702,99.61116)" />
203   - <linearGradient
204   - x1="224.23996"
205   - y1="144.75717"
206   - x2="-65.308502"
207   - y2="144.75717"
208   - id="linearGradient2589"
209   - xlink:href="#linearGradient4671"
210   - gradientUnits="userSpaceOnUse"
211   - gradientTransform="translate(100.2702,99.61116)" />
212   - <linearGradient
213   - x1="172.94208"
214   - y1="77.475983"
215   - x2="26.670298"
216   - y2="76.313133"
217   - id="linearGradient2248"
218   - xlink:href="#linearGradient4689"
219   - gradientUnits="userSpaceOnUse"
220   - gradientTransform="translate(100.2702,99.61116)" />
221   - <linearGradient
222   - x1="224.23996"
223   - y1="144.75717"
224   - x2="-65.308502"
225   - y2="144.75717"
226   - id="linearGradient2250"
227   - xlink:href="#linearGradient4671"
228   - gradientUnits="userSpaceOnUse"
229   - gradientTransform="translate(100.2702,99.61116)" />
230   - <linearGradient
231   - x1="224.23996"
232   - y1="144.75717"
233   - x2="-65.308502"
234   - y2="144.75717"
235   - id="linearGradient2255"
236   - xlink:href="#linearGradient4671"
237   - gradientUnits="userSpaceOnUse"
238   - gradientTransform="matrix(0.562541,0,0,0.567972,-11.5974,-7.60954)" />
239   - <linearGradient
240   - x1="172.94208"
241   - y1="76.176224"
242   - x2="26.670298"
243   - y2="76.313133"
244   - id="linearGradient2258"
245   - xlink:href="#linearGradient4689"
246   - gradientUnits="userSpaceOnUse"
247   - gradientTransform="matrix(0.562541,0,0,0.567972,-11.5974,-7.60954)" />
248   - <radialGradient
249   - cx="61.518883"
250   - cy="132.28575"
251   - r="29.036913"
252   - fx="61.518883"
253   - fy="132.28575"
254   - id="radialGradient2801"
255   - xlink:href="#linearGradient2795"
256   - gradientUnits="userSpaceOnUse"
257   - gradientTransform="matrix(1,0,0,0.177966,0,108.7434)" />
258   - <linearGradient
259   - x1="150.96111"
260   - y1="192.35176"
261   - x2="112.03144"
262   - y2="137.27299"
263   - id="linearGradient1475"
264   - xlink:href="#linearGradient4671"
265   - gradientUnits="userSpaceOnUse"
266   - gradientTransform="matrix(0.562541,0,0,0.567972,-9.399749,-5.305317)" />
267   - <linearGradient
268   - x1="26.648937"
269   - y1="20.603781"
270   - x2="135.66525"
271   - y2="114.39767"
272   - id="linearGradient1478"
273   - xlink:href="#linearGradient4689"
274   - gradientUnits="userSpaceOnUse"
275   - gradientTransform="matrix(0.562541,0,0,0.567972,-9.399749,-5.305317)" />
276   - <radialGradient
277   - cx="61.518883"
278   - cy="132.28575"
279   - r="29.036913"
280   - fx="61.518883"
281   - fy="132.28575"
282   - id="radialGradient1480"
283   - xlink:href="#linearGradient2795"
284   - gradientUnits="userSpaceOnUse"
285   - gradientTransform="matrix(2.382716e-8,-0.296405,1.43676,4.683673e-7,-128.544,150.5202)" />
286   - <radialGradient
287   - inkscape:collect="always"
288   - xlink:href="#linearGradient2795"
289   - id="radialGradient2421"
290   - gradientUnits="userSpaceOnUse"
291   - gradientTransform="matrix(1.7490565e-8,-0.239947,1.054668,3.7915457e-7,-78.109429,148.85906)"
292   - cx="61.518883"
293   - cy="132.28575"
294   - fx="61.518883"
295   - fy="132.28575"
296   - r="29.036913" />
297   - </defs>
298   - <path
299   - sodipodi:type="star"
300   - style="fill:#808080;fill-opacity:1;stroke:#ebebeb;stroke-width:8.42870998000000070;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
301   - id="path2747"
302   - sodipodi:sides="7"
303   - sodipodi:cx="21.617718"
304   - sodipodi:cy="45.732677"
305   - sodipodi:r1="62.576824"
306   - sodipodi:r2="54.193119"
307   - sodipodi:arg1="-1.0471976"
308   - sodipodi:arg2="-0.59839865"
309   - inkscape:flatsided="true"
310   - inkscape:rounded="0"
311   - inkscape:randomized="0"
312   - d="M 52.906127,-8.4604435 83.49561,36.406083 67.489778,88.295725 16.941349,108.13452 -30.085679,80.98346 -38.178995,27.287838 -1.2441662,-12.518444 z"
313   - transform="matrix(0.9428415,-0.0659299,0.06648817,0.9508251,52.105964,29.052226)" />
314   - <path
315   - sodipodi:type="star"
316   - style="fill:#ff0000;fill-opacity:1;stroke:#ebebeb;stroke-width:17.37169838000000200;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
317   - id="path3527"
318   - sodipodi:sides="5"
319   - sodipodi:cx="21.617718"
320   - sodipodi:cy="45.732677"
321   - sodipodi:r1="62.576824"
322   - sodipodi:r2="54.193119"
323   - sodipodi:arg1="-1.0471976"
324   - sodipodi:arg2="-0.41887907"
325   - inkscape:flatsided="true"
326   - inkscape:rounded="0"
327   - inkscape:randomized="0"
328   - d="M 52.906127,-8.4604435 82.827089,58.743128 28.15878,107.9667 -35.549055,71.184968 -20.254353,-0.77096359 z"
329   - transform="matrix(0.4002816,-0.02799041,0.02822743,0.403671,63.989476,51.871855)" />
330   - <path
331   - inkscape:connector-curvature="0"
332   - style="fill:none;stroke:#ebebeb;stroke-width:7.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
333   - d="M 47.61949,3.8390312 C 52.931586,39.818101 55.890173,53.131745 55.890173,53.131745"
334   - id="path3529"
335   - sodipodi:nodetypes="cc" />
336   - <path
337   - inkscape:connector-curvature="0"
338   - style="fill:none;stroke:#ebebeb;stroke-width:7.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
339   - d="M 84.168485,47.659089 C 101.30436,17.799839 111.16632,3.5000002 111.16632,3.5000002"
340   - id="path3531"
341   - sodipodi:nodetypes="cc" />
342   - <path
343   - inkscape:connector-curvature="0"
344   - style="fill:none;stroke:#ebebeb;stroke-width:7.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
345   - d="m 147.06872,51.974892 c 0,0 -14.29984,5.917175 -47.907422,20.151072 16.336882,29.707806 34.925462,44.585576 34.925462,44.585576"
346   - id="path3533"
347   - sodipodi:nodetypes="ccc" />
348   - <path
349   - inkscape:connector-curvature="0"
350   - style="fill:none;stroke:#ebebeb;stroke-width:7.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
351   - d="M 78.262632,93.160698 C 75.599109,130.04701 73.626717,146.81234 73.626717,146.81234"
352   - id="path3535"
353   - sodipodi:nodetypes="cc" />
354   - <path
355   - inkscape:connector-curvature="0"
356   - style="fill:none;stroke:#ebebeb;stroke-width:7.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
357   - d="M 52.618595,81.32246 C 29.35082,108.46478 12.092394,117.83365 12.092394,117.83365"
358   - id="path3537"
359   - sodipodi:nodetypes="cc" />
360   - <path
361   - inkscape:connector-curvature="0"
362   - style="fill:none;stroke:#ebebeb;stroke-width:7.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
363   - d="M 55.890173,53.131745 C 17.799839,58.24195 3.5,55.77646 3.5,55.77646"
364   - id="path3539"
365   - sodipodi:nodetypes="cc" />
366   -</svg>