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

Aside) Getting the latest version of REAPER from CVS

cvs -d msslc6:/cpnet/linux2b/djb/cvsroot checkout REAPER_SRC

Let me know of permissions problems etc.

Task 1) Writing a L1b input algorithm. Routine to read into IDL. IDL routine to create dummy data. The actual read L1b part is partially done.

RP_L1b.h RP_L1b_reader.c RP_L1b_reader.h

Input product defined in REA-DD-IODD-L1b-6002 p51 section 3.3. There is an ASCII header to this product which we will ignore for now.

So in the algorithm


we should use the above to read from a file and then copy the values from the RP_L1b structure into the appropriate fields in the structure PRODUCT defined in REAPER_INTERNAL.h. The internal product is specified by the spreadsheet reaper_internal_V8 working.xls

Done. In CVS 09/02/11. LKG

Task 2) Writing a L2 output algorithm. Ditto. Routine to read into IDL

See section 4.1 REAPER L2 output from L2 chain on p9 of REA-IS-IODD-MSL-6002 issue 1.0 for a definition of the netCDF format L2 output product.


Task 3) Starting to code algorithms.

Algorithms are in ./REAPER_SRC/src/Algorithms/MSSL

  • Merge Ionospheric Correction (L2UIONO) Done and in CVS. LKG
  • Ice-1 (OCOG) Retracking (L2UOCOG). Allocated to Chris, updated by LKG, in CVS. Best reference for code for this is Cryosat src/ALGORITHMS/COMMON/CL2.SAR.SARIN.Backscatter which has a version of OCOG which works on an array of doubles
  • Sea-ice Retracking (L2USIRT) Done and in CVS. LKG - Best reference for code for this is Cryosat IceFitRetracker
  • Range Calculation (L2URNGE) Done and in CVS. LKG
  • Slope Correction (L2USLPC) - Done and in CVS. LKG Best reference for code for this is Cryosat SlopeCorr
  • Surface Height Calculation (L2UHIGH) Done and in CVS. LKG - Best reference for code for this is Cryosat Cl2.LRM.Elevation
  • Doppler Correction (L2UDOPL) Done and in CVS. LKG - Best reference for code for this is Cryosat SlopeDoppler
  • External Bias Correction (L2UBIAS) Done and in CVS. LKG

All of the algorithms currently have a file skeleton in the REAPER CVS. The code inside needs to be written to implement the algorithms as described in REA-DD-DPM-MSL-6001.

For Cryosat source code see IPF2_NEW_RELEASE.tgz

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

Task 4) Internal structure ASCII dump algorithm

A simple function that takes a pointer to the internal structure and a pointer to a FILE* and does

fprintf( pt_file, "j_foo_var = %"PRId32"\n", pt_struct->j_foo_var );

This is probably easiest to do by modifying one of the perl programs Lin has written that parse the structure CSV file generated from the Excel spreadsheet.

Done. In CVS 09/02/11. In /REAPER_SRC/src/Algorithms/MSSL/L2UOUPT. LKG

Task 5) CLS integration re-testing

CLS supplied an archive that should allow us to duplicate their testing (/home/djb/Shared_Tasks/REAPER/CLS_REAPER_0.0.0_Tests.tar.gz). Get the copy of REAPER with their delivery integrated into it:

cvs -d msslc6:/cpnet/linux2b/djb/cvsroot export -r FRAMEWORK_4 REAPER_SRC

Build it and try and rerun their test run. The binary for their chain will be in ../build_root/LINUX/Chains/CLS/L2/l2_chain

There is a Job Order file to pass to the chain included in the Tests archive file.

Had to set up CentOS 5.5 on VirtualBox in my laptop to install the necessary additional libraries. Made some changes to mergePRODUCT_types.h and fix a couple of bugs Got the test to run after removing the supplied libnetcdf.a file (for version 4.1.1 when the agreed version was 3.6.3) and directing Makefile_top to find the version on my machine instead. Test exits successfully. Put into CVS 26/01/11. LKG

Task 6) Ionospheric algorithm

Integration of Ionospheric algorithm. Remko has supplied FORTRAN code to interpolate ionospheric models (gimsubs.f90, see /home/djb/Shared_Tasks/REAPER/00FromRemco.tgz ). We need a REAPER algorithm (REAPER_SRC/src/Algorithms/MSSL/L2UIONO) that uses them to index a model file, the filename of which is supplied by the Job Order. The processing part of the algorithm will retrieve the correction for the lat/lon/time of the current record and store it into the internal data structure.

Outstanding questions are:

  • Do we rewrite his code as C or add the capability to compile FORTRAN code to the build system (up to you)

Done. Rewritten as C. In CVS 09/02/11. LKG

Task 7) Integration of isardSAT contributions

isardSAT have supplied /home/djb/Shared_Tasks/REAPER/isardSAT_REAPER_v1_20101227.tar

Integrate the code that it contains into REAPER, check that it builds, and place it under configuration control in CVS.

What they have sent is derived from tag FRAMEWORK_1 of the REAPER CVS.

You will need to copy the code from REAPER_isardSAT_v1_20101227/src/Library/isardSAT and REAPER_isardSAT_v1_20101227/src/Chains/IsardSAT/ and REAPER_isardSAT_v1_20101227/src/Algorithms/isardSAT/ into your sandbox. That should be simple as those areas were private to isardSAT. They may (will) also have made changes in REAPER_isardSAT_v1_20101227/src/Library/REAPER_FRAMEWORK/ which is a shared area. We need to preserve changes that they have made without breaking anything that we have changed. That should be fairly obvious, but have a look at files that differ using sdiff (or similar) to see what has changed. If that gets complicated there are 3-way merge tools that we can use to make it more obvious.

Did integration. Made updates to L2UOCOG (waveform array type changed from uint16_t to double) and name changes in 3 CLS routines. Checked that it built on CentOS 5.5 virtual machine. Put into CVS 02/02/11. LKG

-- DavidBrockley - 22 Nov 2010

This topic: Software > ReaperTasks
Topic revision: r15 - 2011-04-15 - LindaGilbert
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