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-code
option forconfig
command.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-SITU
detector type (new default), for which all instrument pointing-dependent geometry parameters and footprint geometry remain set tonull
.Note
IN-SITU
detector type is the new default type and thereforePOINT
detector 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' \begintext
New
--force-detector
option to force computation for SPICE-unknown detector names, assuming anIN-SITU
detector 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 name
and no computation is done for corresponding observations. Otherwise, when using the new--force-detector
option, a [WARNING] is thrown and pointing-independent geometry parameters are computed, assuming the dectector is ofIN-SITU
type.All addendum IK files for MEX, ROSETTA and TGO, and the
psa_config.json
file (defining new SMART-1 and VEX missions/instruments/data product types) have been updated accordingly. A newsmart1_sample_test.plf
PLF 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_id
andproduct_type
. Surface model can be one of the two following types:ELLIPSOID
orDSK/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_resolution
andmax_spatial_resolution
are computed for every (nonIN-SITU
) detectors for which aINS*_IFOV
parameter 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*_IFOV
variable 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_DISTANCE
was 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.json
file.
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_ratio
anddetector_fov_cross_ratio
that are set within the corresponding Instrument-Product class using required PLF product properties values , defined in thepsa_config.json
file. The sub-frame FOV is computed by thegeogen.coverage.Detector.getGeometry()
method. Example for CaSSIS, in thetgo_addendum.ti
file:\begindata INS-143421_GG_DETECTOR_TYPE = 'FRAME' INS-143421_GG_DETECTOR_SUBFRAME = 'TRUE' \begintext
In the
psa_config.json
file:{ "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_CAL
class:# 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
product
command 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.json
file (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.json
Updated PDS4 product properties paths so as to be a valid XPath usable by the
lxml
Python package (and potentially any other programming language). For example, before:/Product_Observational/Identification_Area/logical_identifier
now:
pds:Identification_Area/pds:logical_identifier
Added
samples
andlines
required 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_acquisitions
ton_data_records
.CASSIS:
Handling of new
detector_fov_ref_ratio
anddetector_fov_cross_ratio
parameters required to derive detector sub-frame FOV from input PLFsamples
andlines
required properties values.Included a new
time_offset
Product 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_CAL
class 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_CAL
class based on latest development from D. Coia, mapping the following SPICE detectors:TGO_NOMAD_UVIS_NAD
andTGO_NOMAD_UVIS_OCC
.
Updated addendum IK files
Added
GG_DETECTOR_SUBFRAME
SPICE 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.ti
from 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_ASP
MEX_SPICAM_UV1_NADIR_BIN_0
TGO_ACS_NIR
TGO_ACS_TIR
TGO_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_id
property using the following path:pds:Observation_Area/pds:Observing_System/pds:Observing_System_Component[pds:type="Spacecraft"]/pds:name
Affected data products (see details in
psa_geo/test/pds4_plf_product_items.txt
file):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
records
required property for ACS raw and calibrated products.there might several
File_Area_Observational
XML tags per PDS4 label,there might be several
Array
and/orAxis_Array
whose 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 fov
command (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-target
CLI option that forces a given target name to be used, superseding PLFTARGET_NAME
property.“Set to null non-applicable geometry parameters” SPICEPCR-550 – Values for
solar_longitude
,local_true_solar_time
for 67P/C-G; and valuessolar_longitude
,sub_solar_longitude
,sub_solar_latitude
for the Sun will now be set to null in output Coverage GeoJSON files.New
--pid
CLI 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.plf
file.“Errors computing geometry for MEX VMC (limb) observations” SPICEPCR-662 – Fixed “Beagle 2” and “Zero Vector” errors reported from
v3.0.0-rc1
testing; updatedmex_targetless_test.plf
andlimb_sample_test.plf
files.“Instruments product type (definition) error” SPICEPCR-669 – Corrected issue reported from
v3.0.0-rc1
testing:psa_config.json
andProductFactory
class 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_RAW
class,tgo_addendum.ti
andtgo_cassis_sample.plf
based on Tanya Lim’s feedback; definingSAMPLES
as 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.json
New
geogen.product.MEX_VMC_RDR
classUpdated
geogen.product.SPICAM_RDR
classUpdated
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.plf
andros_sample_test.plf
Minor (but useful) improvements
Clearer
fov
command output display, now indicating the GEOGEN Detector Type (POINT, LINE, FRAME)compute
command, 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-dir
for thecompute
andconfig
commands, 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_KERNELS
environment variable.New required
TAMN_URL
environment variable to set TAMN API end-point URL (eg: http://tamn.spacefrog.design/)Improved testing framework.
Version 1.0.2¶
New required
TAMN_URL
environment variable to set TAMN API end-point URL (eg: http://tamn.spacefrog.design/)
Version 1.0.1¶
Minor update to set
TAMN_URI
tohttp://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 formergeogen
command), 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_latitude
geometry 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
bbox
attribute 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.