Release Notes
Contents
Release Notes¶
Every major release (in line with GEOGEN development milestones) are tested. Test reports are all available in the
test/reports/ directory of the psa_geo repository master
or dev branch.
Version 5.0.0¶
RC2 (Feb 28, 2022)¶
Introduced PDS_NAIF_MAPPING and mechanism to defined allowed mission IDs in configuration file.
New
--source-codeoption forconfigcommand.Updated documentation and training materials.
RC1 (Jan 20, 2022)¶
Features added
SPICEPCR-680: “Allow configuration of GEOGEN parameters per instruments”. Actually allows for the configuration of a new
IN-SITUdetector type (new default), for which all instrument pointing-dependent geometry parameters and footprint geometry remain set tonull.Note
IN-SITUdetector type is the new default type and thereforePOINTdetector must be explicitly defined as such in IK addendum kernels. For example TGO/NOMAD:\begindata INS-143310_GG_DETECTOR_TYPE = 'POINT' INS-143311_GG_DETECTOR_TYPE = 'POINT' INS-143312_GG_DETECTOR_TYPE = 'POINT' INS-143320_GG_DETECTOR_TYPE = 'POINT' INS-143331_GG_DETECTOR_TYPE = 'POINT' INS-143332_GG_DETECTOR_TYPE = 'POINT' \begintextNew
--force-detectoroption to force computation for SPICE-unknown detector names, assuming anIN-SITUdetector type. This new approach allows for the quick configuration of new mission/instruments data product types, and the generation of pointing-independent geometry parameters searchable by PSA end-users. Example of minimal configuration:{ "id": "AMIE", "products": [ { "type": "EDR", "py_class": "", "req_props": [] } ] }
Note
By default, an [ERROR] is thrown when GEOGEN is
enable to retrieve SPICE instrument code for a detector nameand no computation is done for corresponding observations. Otherwise, when using the new--force-detectoroption, a [WARNING] is thrown and pointing-independent geometry parameters are computed, assuming the dectector is ofIN-SITUtype.All addendum IK files for MEX, ROSETTA and TGO, and the
psa_config.jsonfile (defining new SMART-1 and VEX missions/instruments/data product types) have been updated accordingly. A newsmart1_sample_test.plfPLF file is available for testing this new functionality.SPICEPCR-671: “Coverage GeoJSON reference target body metadata”. These new metadata include the following attributes:
target_name,target_id,target_frame,surface_model,antimeridian_split,instrument_host_id,instrument_idandproduct_type. Surface model can be one of the two following types:ELLIPSOIDorDSK/UNPRIORITIZED. See examples below:"coverage": { "target_name": "MARS", "target_id": 499, "target_frame": "IAU_MARS", "surface_model": { "type": "ELLIPSOID", "a_axis_radius": 3396.19, "b_axis_radius": 3396.19, "c_axis_radius": 3376.2 }, "antimeridian_split": true, "instrument_host_id": "MEX", "instrument_id": "HRSC", "product_type": "RDR" }
"coverage": { "target_name": "CHURY", "target_id": 1000012, "target_frame": "67P/C-G_CK", "surface_model": { "type": "DSK/UNPRIORITIZED", "dsk_file": [ "ROS_CG_M004_OSPGDLR_N_V1.BDS", "ROS_CG_K104_NSPCESA_N_V1.BDS" ] }, "antimeridian_split": true, "instrument_host_id": "ROSETTA", "instrument_id": "ALICE", "product_type": "REFDR" }
SPICEPCR-464: “Pixel resolution as a new geometry parameter”. Across-track pixel surface and/or off-surface
min_spatial_resolutionandmax_spatial_resolutionare computed for every (nonIN-SITU) detectors for which aINS*_IFOVparameter is defined, whether in the SPICE Kernels Dataset or GEOGEN addendum IK files. This is currently the case for the following instruments: MEX/HRSC, MEX/OMEGA, MEX/PFS, MEX/VMC, ROSETTA/OSIRIS, ROSETTA/ALICE, ROSETTA/NAVCAM, and ROSETTA/VIRTIS.Warning
IK
INS*_IFOVvariable values must be provided in radians, and only the first element is used and considered to be the cross-track iFOV.
Issues fixed
SPICEPCR-674: “Footprint boundary box parameters not always correct”. Boundary box coordinates and antimeridian and/or the pole(s) crossing flags are now handled by the new
geogen.tamn.get_bbox()function that is called when deriving observation footprints (not by thegeogen.coverage.GeometryParameters.derive()method anymore). It handles all GEOGEN detector types.SPICEPCR-620: “Geogen geometry value wrong for OSIRIS image”. Sub-solar and sub-spacecraft points computation now respectively uses INTERCEPT (spice.subslr) and NADIR (spice.subpnt) methods.
SPICEPCR-571: “Dateline/pole-crossing issues with OMEGA”. TAMN
DEFAULT_POLE_DISTANCEwas set back to 500 km.
Package structure reorganised
The GEOGEN package has been reorganised into five logical modules:
geogen(CLI),config,coverage,product, andtamn. Code is being cleaned up and documented.
Version 4.0.0¶
RC2 (Dec 15, 2021)¶
This second release candidate fixes issues raised during the validation of RC1 (reported during Progress Meeting #28, Nov 29th, 2021).
Fixed “ERROR XX000: geometry requires more points” error which occurred (in
geogen.coverage.Observation.derive_footprint()method for FRAME detectors) for some Mars Express VMC and HRSC data products.Added basic configuration for Rosetta’s OSINAC/WAC DDR, MIRO RDR and ALICE REFDR data products in
psa_config.jsonfile.
RC1 (Oct 21, 2021)¶
New features
New dynamic (centered) sub-frame FOV definition for FRAME detectors (initially developed for CaSSIS). A sub-frame for a given FRAME detector is defined using
INS-<nnnnn>_GG_DETECTOR_SUBFRAME = 'TRUE'in an addendum IK file, and two new Product class properties:detector_fov_ref_ratioanddetector_fov_cross_ratiothat are set within the corresponding Instrument-Product class using required PLF product properties values , defined in thepsa_config.jsonfile. The sub-frame FOV is computed by thegeogen.coverage.Detector.getGeometry()method. Example for CaSSIS, in thetgo_addendum.tifile:\begindata INS-143421_GG_DETECTOR_TYPE = 'FRAME' INS-143421_GG_DETECTOR_SUBFRAME = 'TRUE' \begintext
In the
psa_config.jsonfile:{ "name": "samples", "path": "pds:File_Area_Observational/pds:Array_2D_Image/pds:Axis_Array[pds:axis_name=\"Sample\"]/pds:elements"}, { "name": "lines", "path": "pds:File_Area_Observational/pds:Array_2D_Image/pds:Axis_Array[pds:axis_name=\"Line\"]/pds:elements"}In the
geogen.product.TGO_CASSIS_CALclass:# Set detector sub-frame parameters max_samples = 2048 max_lines = 280 if self.filter == 'PAN' else 256 self.detector_fov_ref_ratio = self.samples / max_samples self.detector_fov_cross_ratio = self.lines / max_lines
New
productcommand that return a PLF Product item (JSON object) corresponding to an input PDS4 XML label file. This is used to check the required product properties paths defined in thepsa_config.jsonfile (or optionally any other configuration file). It throws a warning when a property can not be retrieved. Example:$ geogen product cas_raw_sc_20191101T011751-20191101T011755-8650-69-PAN-554586220-27-0.xml { "product_id": "urn:esa:psa:em16_tgo_cas:data_raw:cas_raw_sc_20191101t011751-20191101t011755-8650-69-pan-554586220-27-0", "instrument_host_id": "TGO", "instrument_id": "CASSIS", "product_type": "Raw", "target_name": "MARS", "start_time": "2019-11-01T01:17:51.062Z", "stop_time": "2019-11-01T01:17:55.062Z", "samples": "1920", "lines": "280" }
Updated configuration file
psa_config.jsonUpdated PDS4 product properties paths so as to be a valid XPath usable by the
lxmlPython package (and potentially any other programming language). For example, before:/Product_Observational/Identification_Area/logical_identifier
now:
pds:Identification_Area/pds:logical_identifier
Added
samplesandlinesrequired properties for Raw and Calibrated CaSSIS data products.Added/modified ACS and NOMAD updated definitions from D. Coia.
ACS Calibrated:
{ "name": "identifier", "path": "pds:Observation_Area/pds:Mission_Area/psa:Sub-Instrument/psa:identifier" }, { "name": "mir_observation_type", "path": "pds:Observation_Area/pds:Mission_Area/em16_tgo_acs:ACS_Data/em16_tgo_acs:MIR_Observation/em16_tgo_acs:type_ACS"}, { "name": "nir_observation_type", "path": "pds:Observation_Area/pds:Mission_Area/em16_tgo_acs:ACS_Data/em16_tgo_acs:NIR_Observation/em16_tgo_acs:type_ACS"}, { "name": "tir_observation_type", "path": "pds:Observation_Area/pds:Mission_Area/em16_tgo_acs:ACS_Data/em16_tgo_acs:TIR_Observation/em16_tgo_acs:tir_observation_type"}, { "name": "records", "path": "pds:File_Area_Observational/pds:Array[pds:name=\"Data\"]/pds:Axis_Array[pds:axis_name=\"ROWS\"]/pds:elements" }NOMAD Calibrated:
{ "name": "identifier", "path": "pds:Observation_Area/pds:Mission_Area/psa:Sub-Instrument/psa:identifier" }, { "name": "records", "path": "pds:File_Area_Observational/pds:File/pds:records" }
See “PDS4 product property path open issues” below.
New/updated Instrument-Product classes
All Product classes: renamed
detector_acquisitionston_data_records.CASSIS:
Handling of new
detector_fov_ref_ratioanddetector_fov_cross_ratioparameters required to derive detector sub-frame FOV from input PLFsamplesandlinesrequired properties values.Included a new
time_offsetProduct class property, and set it 2.88 seconds to accommodate for current timing issue in PDS4 labels. For example:
ACS:
New
geogen.product.TGO_ACS_CALclass based on latest development from D. Coia, mapping the following SPICE detectors:TGO_ACS_MIR,TGO_ACS_NIR_OCC,TGO_ACS_NIR_NAD,TGO_ACS_TIRVIM.Updated
geogen.product.TGO_ACS_RAW, mapping the following SPICE detectors:TGO_ACS_MIR,TGO_ACS_TIRVIM.
NOMAD:
New
geogen.product.TGO_NOMAD_CALclass based on latest development from D. Coia, mapping the following SPICE detectors:TGO_NOMAD_UVIS_NADandTGO_NOMAD_UVIS_OCC.
Updated addendum IK files
Added
GG_DETECTOR_SUBFRAMESPICE text kernel variable for CASSIS detectorsRenamed all GEOGEN-specific SPICE text kernel variables, in all addendum IK files, as follow:
DETECTOR_TYPE → GG_DETECTOR_TYPE OBS_MODES → GG_DETECTOR_MODES AOV_ROT_VEC → GG_AOV_ROT_VECTOR AOV_ANGLES → GG_AOV_ANGLES AOV_ANGLE_UNITS → GG_AOV_ANGLE_UNITS
Corrected MEX/HRSC LINE detectors Angle-Of-View (AOV) angle in
mex_addendum.tifrom 11.21 (in red) to 11.88085 degrees (in green), 0.000040 rad/pix * 5184 pixels.
Test report summary
Test reports are now located in
psa_geo/test/reports. The full report for this release is available here[WARNING] Unable to retrieve SPICE instrument code for detector name:
MEX_ASPERA_ASPMEX_SPICAM_UV1_NADIR_BIN_0TGO_ACS_NIRTGO_ACS_TIRTGO_NOMAD_SINBAD
[ERROR] SPICE(NOFRAMECONNECT). Example:
At epoch 4.7211462090236E+08 TDB (2014 DEC 17 18:57:00.902 TDB), there is insufficient information available to transform from reference frame -226213 (ROS_VIRTIS-M_IR) to reference frame -1000012000 (67P/C-G_CK). Frame ROS_VIRTIS-M_IR could be transformed to frame -226215 (ROS_VIRTIS-M_SCAN). The latter is a CK frame; a CK file containing data for instrument or structure -226215 at the epoch shown above, as well as a corresponding SCLK kernel, must be loaded in order to use this frame. Frame 67P/C-G_CK could be transformed to frame 1 (J2000). Failure to find required CK data could be due to one or more CK files not having been loaded, or to the epoch shown above lying within a coverage gap or beyond the coverage bounds of the loaded CK files. It is also possible that no loaded CK file has required angular velocity data for the input epoch, even if a loaded CK does have attitude data for that epoch. You can use CKBRIEF with the -dump option to display coverage intervals of a CK file.
Affected data products are:
I1_00377483311.QUB
I1_00377463271.QUB
I1_00377461470.QUB
PDS4 product property path open issues
Could not retrieve
instrument_host_idproperty using the following path:pds:Observation_Area/pds:Observing_System/pds:Observing_System_Component[pds:type="Spacecraft"]/pds:nameAffected data products (see details in
psa_geo/test/pds4_plf_product_items.txtfile):ACS calibrated
CASSIS calibrated
“Host” or “Spacecraft” as observing system component type ?:
<Observing_System_Component> <name>TGO</name> <type>Host</type> ...
some other times:
<Observing_System_Component> <name>TGO</name> <type>Spacecraft</type> ...
Issue retrieving
recordsrequired property for ACS raw and calibrated products.there might several
File_Area_ObservationalXML tags per PDS4 label,there might be several
Arrayand/orAxis_Arraywhose the name may be differ from one data product to another (eg: ‘FRAMES’ or ‘ROWS’ as axis array name).
As a consequence, more than one Instrument-Product class might be needed depending of the ACS observations type: MIR, NIR or TIR.
Dev1 (Sep 16, 2021)¶
New PLF-Config model design/implementation for handling of PDS4 products, see Product List File (PLF) and Configuration File.
Updated configuration and test PLF files according to new model for MEX, ROSETTA and TGO.
Implemented
geogen.config.Config.get_kernels_reference_time()method to improvegeogen fovcommand (checking SPICE detectors for a given mission).
Version 3.0.0¶
RC2 (May 17, 2021)¶
New features
“Ability to run GEOGEN on multiple targets* SPICEPCR-552 – Implemented through the new
--forced-targetCLI option that forces a given target name to be used, superseding PLFTARGET_NAMEproperty.“Set to null non-applicable geometry parameters” SPICEPCR-550 – Values for
solar_longitude,local_true_solar_timefor 67P/C-G; and valuessolar_longitude,sub_solar_longitude,sub_solar_latitudefor the Sun will now be set to null in output Coverage GeoJSON files.New
--pidCLI option to filter input PLF file and compute geometry metadata for only one product, specified by itsPRODUCT_ID; very useful for testing.
Bug fixes
“Define properly the target reference frame in GEOGEN” SPICEPCR-548 – Tested against products having
"21 LUTETIA"asTARGET_NAME; updatedros_sample_test.plffile.“Errors computing geometry for MEX VMC (limb) observations” SPICEPCR-662 – Fixed “Beagle 2” and “Zero Vector” errors reported from
v3.0.0-rc1testing; updatedmex_targetless_test.plfandlimb_sample_test.plffiles.“Instruments product type (definition) error” SPICEPCR-669 – Corrected issue reported from
v3.0.0-rc1testing:psa_config.jsonandProductFactoryclass have been updated accordingly to enable computation of MEX VMC, ROSETTA OSIRIS, ALICE and MIRO geometry metadata.
Other
“Deal with limb images” SPICEPCR-465 – Latest tests have been done against MEX SPICE SKD
v222_20210510_001, correcting an important issue with the MEX VMC FOV definition.PDS4 TGO/CaSSIS: Updated
test_tgo-cassis_config.json,CASSIS_RAWclass,tgo_addendum.tiandtgo_cassis_sample.plfbased on Tanya Lim’s feedback; definingSAMPLESas required PLF product property (“keyword”).
RC1 (Mar 23, 2021)¶
New feature: Limb Observations for FRAME detectors
Returns the sorted footprint coordinates of the target limb points within the detector FOV, and/or of the FOV surface intersect points (excluding tangent points)
Tested with MEX_HRSC_SRC and MEX_VMC detectors/observations of Mars/Phobos (see
limb_sample_test.plf).Further development is required to handle LINE detector observations.
Footprint boundary box parameters are not updated after splitting (currently only updated for LINE detectors)
Fixed issue with splitting POINT detector footprint geometry (LineString)
This fix applies to a LineString for which a set of successive points cross the antimeridian.
It simply prevents outputting a MultiLineString geometry from containing one-point LineString, but provides a good approximation/improvement.
Further development is required to correctly split an input LineString in these edge cases.
Updated configuration enabling for MEX VMC computation, and - IMPORTANT - removing dependency with addendum MEX_V14.TF (modified for PFS) and MEX_SPICAM_V00.TI kernels
Updated
psa_config.jsonNew
geogen.product.MEX_VMC_RDRclassUpdated
geogen.product.SPICAM_RDRclassUpdated
mex_addendum.ti
New/updated test PLF files
New
limb_sample_test.plf(detectors: MEX_HRSC_SRC, MEX_VMC; targets: MARS, PHOBOS)Split all_sample_test.plf into
mex_sample_test.plfandros_sample_test.plf
Minor (but useful) improvements
Clearer
fovcommand output display, now indicating the GEOGEN Detector Type (POINT, LINE, FRAME)computecommand, now returning the name of the LOG file (in addition to B3F and GeoJSON directories path).
Version 2.0.0¶
Note
No operational release for this version. Issues identified during testing were addressed and solved by version 3.0.0.
RC2 (Feb 2, 2021)¶
Mirror updates to the documentation.
RC1 (Jan 29, 2021)¶
Improved Product model, enabling handling of PDS4 products.
New config utility command to check configuration for a given mission, instrument or product type
Improved target handling/assignment method (see Target Assignment)
New splitting algorithm for point detector footprint geometry (LineString)
New fov utility command to check SPICE detectors for a given mission.
New
--addendum-dirfor thecomputeandconfigcommands, allowing for user-defined configuration of addendum kernels.Improved handling of SPICE errors (eg: missing CK data…), allowing to continue computation of other product/observation to occurs.
New way of configuring spice kernels through the required
ESA_SPICE_KERNELSenvironment variable.New required
TAMN_URLenvironment variable to set TAMN API end-point URL (eg: http://tamn.spacefrog.design/)Improved testing framework.
Version 1.0.2¶
New required
TAMN_URLenvironment variable to set TAMN API end-point URL (eg: http://tamn.spacefrog.design/)
Version 1.0.1¶
Minor update to set
TAMN_URItohttp://tamn.openplanetary.org:3333/.
Version 1.0.0¶
Minor settings updates in VIRTIS (observationMode) and MIRO (detectorName) classes by Angel Montero.
Prevents from computation to stop when an error occurs (related product/observation is discarded).
RC3 (Sep 25, 2020)¶
Improved split algorithm
Tested ‘targetless’ products
New logging system
New check command (beta), to help check configuration for a given mission or instrument
Slightly improved code documentation
RC2 (Aug 13, 2020)¶
Excludes computation for products with invalid start and stop time.
RC1 (Jul 2, 2020)¶
GEOGEN CLI has now two commands:
compute(identical to formergeogencommand), andsplit(TAMN-based).“Built-in” poles and antimeridian crossing detection, and new related geometry parameters:
antimeridian_crossing,npole_crossing, andspole_crossing.New footprint
westernmost_longitude,easternmost_longitude,minimum_latitude,maximum_latitudegeometry parameters calculation method, taking into account for poles and/or antimeridian crossing states.Split footprint GeoJSON polygons when crossing poles and/or antimeridian (TAMN-based), using
GeoJSON features
bboxattribute added (based on westernmost_longitude, easternmost_longitude, minimum_latitude, maximum_latitude values).Includes a first basic test script (
run_tests.sh) generating B3F and GeoJSON outputs from different PLF test files.
Version 0.4.0¶
Added new MEX SPICAM detector names for SUN target: MEX_SPICAM_[channel_id]_SOLAR. PSAPCR-1960
Assigned CALIBRATION and N/A targets to MEX_SPICAM_[channel_id]_STELLAR detector name. [PSAPCR-1960]
3 parameters excluded from computation for IAU_SUN target frame, because of SPICE warnings: solar_longitude, sub_solar_longitude, sub_solar_latitude. [PSAPCR-1960]
Version 0.3.0¶
Added Rosetta MIRO (Point detector).
Modified Rosetta VIRTIS AOV_ANGLES values (ros_addendum.ti).
Version 0.2.0¶
Fixed HRSC (FRAME detector) bowtie-shape issue PSAPCR-1782.
Improved invalid/no-target handling by introducing primary_target concept.
Changed DSK/surface model dependency to target, instead of mission.
Improved error handling when deriving AOV from to product observation mode.
Improved paths handling by removing path dependency in config file.
Added versioning and release notes.
Version 0.1.0¶
Initial release.

