Tags:
create new tag
view all tags
These are the outstanding tasks to complete for the development of the Sentinel-3 source code for delivery in January 2011.

For files and documents mentioned below, see /home/djb/Shared_Tasks on the CPG UNIX systems.

Task 1) Creating an input routine for the flat ASCII text file that stores the constants and maintaining the constants file. Reading into a structure.

See S3PAD-RS-CLS-SD08-00018 p 7 section 3.2.1.1 Configuration data

For lines 1 to 105 of the following table, create an ASCII file that contains dummy values. 1 per line, except if there are comma separated items in Name, Type and Unit, then one per item. Create a C function that takes a filepointer and a structure pointer and fills the structure from the file. Taking the first 5 lines as an example

The file:

1.0 2.0 3.0,4.0 5,6 7.0

The structure

struct S3_Conf { double d_Time_Interp; double d_power_ths; double d_pp_lo; double d_pp_hi; long int j_noise_gate_lo; long int j_noise_gate_hi; double d_noise_ths;

Should end up filled as

d_Time_Interp = 1.0 d_power_ths = 2.0 d_pp_lo = 3.0 d_pp_hi = 4.0 j_noise_gate_lo = 5 j_noise_gate_hi = 6 d_noise_ths = 7.0

Task 1 claimed by LKG 25/11/10

Completed and SVNed. Test data file included, values not even close to correct. LKG 29/11/10.

Task 2) Creating an internal structure. L1 and L2 product docs with netCDF files as a reference for variable names.

We need a structure that contains all of the variables in the L1 and L2 netCDF files, probably in 2 struct L1Data and struct L2Data substructures.

We need to slice the variables by time/record index, so for a particular time we will have some 1Hz values and some 20Hz values.

L1 product is in S3-IF-CLS-SY-00061-5-0_L0_L1 ProdSpec.pdf L2 product is in S3PAD-RS-CLS-SD02-00013-7-0_L2 Prod_Spec.pdf

The L1 structure has been created by DJB.

Task 3) Creating L1 and L2 IO routines for the netCDF products. Creating routines to read these into IDL. IDL routine to create dummy L1 data.

We need functions to read from the netCDF files into the structures above. All of the 1Hz and 20Hz values for a particular time/record index.

L1 and L2 read routines done by DJB.

IDL is still to do. DJB looking at this

L2 Output still to do. LKG looking at this

Task 4) Starting to code algorithms.

Algorithms as defined in SD03_S3PAD-RS-CLS-SD03-00017-5-0_L2_ADAS.pdf, but we only have to code a subset of these as the rest are done by CLS. Ours are:

  • ALT_MAN_WAV_02 - Discriminator (GenericDiscriminator). First version completed but TODOs need reviewing. Unit tests completed
  • ALT_COR_RAN_06 - Corrections (CL2.Corrections) In progress by DJB as an example
  • ALT_MAN_WAV_01 - Waveform QA First version completed but TODOs need reviewing * DJB Reviewing, adding unit-tests and integration tests *
  • ALT_COR_RAN_02 - Doppler (SlopeDoppler) In progress by DJB. Unit tests implemented but not yet cross-checking correctness of result
  • ALT_PHY_GEN_01 - Elevation (CL2.LRM.Elevation) In progress by DJB. Unit tests implemented but not yet cross-checking correctness of result, and TODOs need reviewing
  • ALT_RET_ICE_01 - OCOG retrack for LRM (CL2.LRM.CFI.Retracker - first part only) First version completed but TODOs need reviewing. Unit tests completed for algorithm but not for sub-functions
  • GEN_ENV_ECH_01 - SAR slope correction. There is an issue here about where to get the boresight vector from. At present, presume nadir pointing. In progress by DJB. Unit tests implemented but not yet cross-checking correctness of result
  • ALT_RET_ICE_04 - Dummy algorithm to merge MLE4 results. Currently does not need any actual code.
  • GEN_ENV_ECH_02 - LRM slope correction (SlopeCorr) In progress by DJB
  • ALT_RET_ICE_05 - SAR margin retracker (CL2.SARIN.retracker) First version completed but TODOs need reviewing
  • ALT_PHY_BAC_02 - Backscatter for SAR. First version completed but TODOs need reviewing. Unit tests completed
  • ALT_PHY_RAN_03 - Freeboard (FreeboardEstimation). First version completed but TODOs need reviewing. Unit tests completed
  • ALT_MAN_INT_01 - Short-arc interpolation (ShortArcInterpolation) First version completed but TODOs need reviewing. Unit tests completed for algorithm but not for sub-functions
  • ALT_RET_ICE_03 - SAR sea-ice fitting retracker (IceFitRetracker) First version completed but TODOs need reviewing. Unit tests completed for algorithm but not for sub-functions, and not yet cross-checking correctness of result. Also, TODOs need reviewing
  • ALT_PHY_RAN_02 - Height Anomaly (OceanElevation). First version completed but TODOs need reviewing. Unit tests completed
  • ALT_PHY_BAC_03 - Backscatter for LRM. First version completed but TODOs need reviewing. Unit tests completed

Algorithm completeness table. 'UT Calc' indicates whether the unit tests check the calculations made within the algorithm. 'IT state' is for integration tests. 'Done' does not imply that there are no outstanding TODO issues. Consult the bullet point list above for more detailed information.

ID Code State UT State UT CalcSorted ascending IT State
ALT_COR_RAN_06 Done Done - Done
ALT_COR_RAN_02 Done Done - -
ALT_PHY_GEN_01 Done Done - -
GEN_ENV_ECH_01 Done Done - -
ALT_RET_ICE_04 Done not required - -
GEN_ENV_ECH_02 Done Done - -
ALT_RET_ICE_05 Done Done - -
ALT_RET_ICE_03 Done Done - -
ALT_MAN_WAV_02 Done Done Done Done
ALT_MAN_WAV_01 Done Done Done In Progress DJB
ALT_RET_ICE_01 Done Done Done -
ALT_PHY_BAC_02 Done Done Done -
ALT_PHY_RAN_03 Done Done Done -
ALT_MAN_INT_01 Done Done Done -
ALT_PHY_RAN_02 Done Done Done -
ALT_PHY_BAC_03 Done Done Done -

Again, as for REAPER, most of these have parallels in Cryosat listed after them.

If you grab an algorithm to code here for S3, it is probably worth grabbing the same one for REAPER i.e. do OCOG for both.

Task 5) Internal structure ASCII dump algorithm.

Take the internal structure and output every variable in ASCII format.

Task 6) Reading S3 characterisation file

Attached to an email I circulated were a pair of files, one is the S3 characterisation file in netCDF format and the other is a dump of the same in text. Could I have a routine to read the netCDF into a C structure please? Is there a way to automatically generate this from the .txt file?

Done by DJB

Task7) Reading the S3 Geophysical file.

Another small task is a routine to read the S3 geophysical file into a structure. This is another CLS flat ASCII file like the configuration file.

See S3PAD-RS-CLS-SD08-00018 p29 section 3.2.2.1. Universal constants

Task 7 claimed by LKG 23/11/10

Completed and SVNed. Added S3_UT branch beside S3_SRC for test data and code. LKG 25/11/10

Task 8 ) Interpolation routine for snow depth and ice concentration files

There is an overview of what is needed in ALT_COR_RAN_06 (p21 of the culled version that just contains our stuff) of the S3 algorithms document.

The code needs to go into the function d_interpolate_model() which has been created in the ALT_COR_RAN_06 algorithm directory.

An email has been circulated with file format and sample code.

This code needs to duplicate an existing set of routines that were supplied as binary only. I'll create a unit test that verifies that it does so.

Task 8 claimed by LKG 02/12/10

Finished by DJB

TODO and FIXME comments in source code S3_SRC

Open Issues

  • In copy_global_attributes.c, "TODO should some attributes should be modified during copying, e.g. the "history", dates and/or file names?"

  • In ALT_MAN_INT_01 (in several source files), interpolation metrics are commented out because it's not clear if/where they should be stored. Are they wanted in S3?

  • In alg_ALT_MAN_WAV_02.c, there is a "TODO - decide whether to scale these or leave in L1 units" referring to: d_candidate_param[DISC_BEAMWIDTH_PARAM] = ...

  • In alg_GEN_ENV_ECH_01.c:
    • should a failure of j_CalcSARAttAz be fatal?
    • uncertainty on five inputs - are they the right values?

  • In ErrorManager.c, in vSignalFatalHandler(), "TODO Put the name of the signal into this message, if possible".

  • In jReadALGORITHM_CONSTANTS.c:
    /* Some useful values not from config file because we don't want them to be easily modified at this stage */
    /* TODO Decide whether these need to be in config or as annotations to the ADAS */

  • In jReadJobOrder.c, in jTimeASCIItoS3(), "TODO Make this appropriate for S3".

  • In nrcutil.c, in nrerror(), "TODO is this the right argument to SETUP_BREAKPOINT()".

  • In breakpoint.c, "FIXME Make i_outlog the correct type". May be an out-of-date comment?

  • In ALT_RET_ICE_03, min/max iteration limits are currently commented out (previously the 'min' value was being used as a max limit). The spec only mentions a maximum. Could be compared with ALT_RET_ICE_05 at some point.
    PARTIALLY FIXED on 16/3/2011: A max iterations limit pt_algorithm_constants->j_nb_max_fititerations_lr is now used. This value is currently (as of 16/3/2011) hard-coded to 30 in jReadALGORITHM_CONSTANTS.c. No minimum is used. The termination conditions should ideally be reviewed at some point, and compared with ALT_RET_ICE_05.

Closed Issues

  • In jReadJobOrder.c: "Hacked breakpoints to always be on".
    DONE FIXED on 16/3/2011: The job order specifies whether breakpoints should be on or off. If not specified they default to being off.


-- DavidBrockley - 22 Nov 2010

Edit | Attach | Watch | Print version | History: r49 < r48 < r47 < r46 < r45 | Backlinks | Raw View | More topic actions
Topic revision: r49 - 2011-04-05 - ChrisDolding
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback