Code: EOCFI-DMS-SRN-000 Date: 31/01/2011 Issue: 4.2 |
This note describes the changes introduced in the current release of the Earth Observation CFI software C++ libraries. This note consists of the following sections:
The current release of the Earth Observation CFI consist of the following items:
CFI dynamic libraries for C++ (For Windows there exists a set of static libraries as well):
Library | Issue | Date |
---|---|---|
EECommon | 4.2 | 31/01/11 |
FileHandling | 4.2 | 31/01/11 |
DataHandling | 4.2 | 31/01/11 |
Lib | 4.2 | 31/01/11 |
Orbit | 4.2 | 31/01/11 |
Pointing | 4.2 | 31/01/11 |
Visibility | 4.2 | 31/01/11 |
Title | Reference | Issue | Date |
---|---|---|---|
General Software User Manual | EO-MA-DMS-GS-017 | 4.2 | 31/01/11 |
EE Common Software User Manual | EO-MA-DMS-GS-010 | 4.2 | 31/01/11 |
FileHandling Software User Manual | EO-MA-DMS-GS-011 | 4.2 | 31/01/11 |
DataHandling Software User Manual | EO-MA-DMS-GS-012 | 4.2 | 31/01/11 |
Lib Software User Manual | EO-MA-DMS-GS-013 | 4.2 | 31/01/11 |
Orbit Software User Manual | EO-MA-DMS-GS-014 | 4.2 | 31/01/11 |
Pointing Software User Manual | EO-MA-DMS-GS-015 | 4.2 | 31/01/11 |
Visibility Software User Manual | EO-MA-DMS-GS-016 | 4.2 | 31/01/11 |
The libraries have been created with the following computer systems and compilers:
Machine | OS |
---|---|
Sun under Solaris 64-Bits | Solaris 5.9 |
PC under Linux 32-Bits | Linux 2.6.16 (RedHat) |
PC under Linux 64-Bits | Linux 2.6.16 (RedHat) |
Macintosh under MacOS X 32-Bits | Mac OS X 10.4.6 |
Macintosh with Intel processor under MacOS X 32-Bits | Mac OS X 10.4.9 |
Macintosh with Intel processor under MacOS X 64-Bits | Mac OS X 10.4.9 |
PC under Windows XP | Microsoft Windows XP |
The following table shows for every OS the list of additional libraries that are needed in order to link an application with the Earth Observation CFI libraries.
OS | Compiler | External libraries |
---|---|---|
Solaris 64-Bits | g++ 4.2.2 | libxml2 version 2.4.23 or later |
libpthread.so (POSIX thread library) | ||
Linux 32-Bits | g++ 4.2.2 | libxml2 version 2.6.23 or later |
libpthread.so: POSIX thread library | ||
glibc 2.4 | ||
GLIBCXX 3.4.9 | ||
Linux 64-Bits | g++ 4.2.2 | libxml2 version 2.6.23 or later |
libpthread.so: POSIX thread library | ||
glibc 2.4 | ||
GLIBCXX 3.4.9 | ||
Mac OS X 32-Bits | g++ 4.2.1 | libxml2 version 2.6.22. |
libpthread.so: POSIX thread library | ||
Mac OS X Intel 32-Bits | g++ 4.2.1 | libxml2 version 2.6.16 |
libpthread.so: POSIX thread library | ||
Mac OS X Intel 64-Bits | g++ 4.2.1 | libxml2 version 2.6.22. |
libpthread.so: POSIX thread library | ||
MS Windows(*) | MS Visual C++ 8.0 | libxml2 version 2.6.20 or later (including iconv-1.9.1 and zlib-1.2.3) |
pthread.lib: POSIX thread library |
(*) When linking an application for Windows using the CFI dynamic libraries, the linking with the LIBC.LIB or LIBCM.LIB should be avoided. The library MSVCRT.DLL should be used instead. This library is not provided with the CFI installation package, as it is included with the Windows OS (It also can be downloaded from: http://support.microsoft.com/default.aspx?scid=kb;en-us;259403).
The CFI software and documents can be downloaded from the ESA EOP System Support Division Web Server:
http://eop-cfi.esa.int (main page)
From there, just follow the links until you reach the Earth Observation CFI page:
http://eop-cfi.esa.int/CFI/ee_cfi_software.html Follow the instructions given on the page and you will be able to save the distribution file(s) on your local disk.
The CFI libraries are provided in different formats depending on the platform:
Upon completion the installation procedure, the following items will be on your computer:
Finally, the validation program should be compiled and run to check that the installation has been sucsessful.
For every library the CFI installation contains a directory called "validation". This directory contains the validation program (LibraryNameValid.cpp) and associated makefile (make.OS). This program should be run to verify the proper installation of the CFI Library. The procedure is the following:
The validation program is created, executed and a validation status message printed. The message should look like:
or:
In the latter case, check again your installation, and run the validation program again if necessary. If the message persists, report the problem.
During the execution of the validation program a log file LibraryNameValid.OS.out (OS stands for the different allowed operative systems) is also created. It can be consulted for a detailed listing of the validation run.
For every library the CFI installation contains a directory called "example".
This directory contains example program (LibraryNameExample.cpp), the associated makefile (make.OS) and the data files (under the data directory). The example program is provided to illustrate how the interface with the CFI functions works, and in particular how to handle the returned errors through exceptions.
The examples should be self-explanatory. To use them, use the same procedure as for the validation program.
In an user application, the same conventions to compile and link as in the example makefiles should be followed.
Note that CFI libraries are dynamic and, when using dynamic linking libraries, proper setting of the environment must be performed at run-time. This means:
The following new features/requirements have been implemented:
General:
DataHandling:
Orbit:
Pointing:
Visibility:
The following Software problems have been fixed:
ANR Nr. | Description |
---|---|
418 | The CFI algorithm for SAR modes produces wrong results when pointing to the left of the boresight direction (i.e. when target azimuth = 270.0 deg). In particular the left and right points are incorrectly geo-located. |
419 | DEM target computation fails when using ray tracing model. |
432 | Wrong error message returned by TimeCorrelation file constructor when called with a time interval outside the validity time of the input orbit file. |
434 | Empty list of station visibility segments when using OSF. |
435 | Error in Attitude::changeFrame when attitude frame contains offsets. |
436 | OrbitId::osvComputeExtra does not compute the osculating elements when used in combination with the precise orbit propagator. |
437 | OEF Format is obsolete, however is still described in the SUMs (e.g. Data Handling) |
440 | Instrument offsets not taken into account in target computation functions. |
441 | Yaw Steering Attitude Mode: Earth Fixed velocity should be computed at the spacecraft instead of nadir. |
442 | Failure in thread safety: some low level function mutexes cannot prevent simultaneous access to Id lists. |
443 | OrbitId file constructor fails with ROF (ANX not found). |
444 | For some missions, files are generated without Mission ID in the name |
446 | Memory leak in Attitude::changeFrame |
451 | Nodal period and seconds since ANX are computed incorrectly when using TLE |
458 | Typo in nominal eccentricity for Sentinel1B |
The following new features have been implemented:
ANR Nr. | Description |
---|---|
220 | Check on normalization of input vectors, matrices and quaternions. |
347 | MLST non linear drift supported (Linear, Quadratic and Harmonic terms). |
383 | New DEM dataset (ACE2 9SECS resolution) supported. |
384 | DEM Data source extraction supported. |
402 | Visibility computations supported with TLE and precise propagators. |
406 | Partial (regional) DEM datasets supported. |
414 | Cryosat-2, GOCE, SMOS supported with TLE propagator. |
416 | OrbitId file constructor: Re-computation of OSV times in case of discrepancy with time correlations defined in TimeCorrelation. |
459 | Support for File Format Standard version 2.0. |
The following precautions shall be taken into account when using the CFI software libraries:
CFI library | Problem | Work around solution |
- | - | - |