PDS-SBN DART shapemodel bundle review =================================================================== Alyssa Bailey/NAIF - September, 2023. Based on the data provided in: https://sbnreview.astro.umd.edu/revpro/dart202309/dart_shapemodel/ on the collections: urn:nasa:pds:dart_shapemodel:data_derived_didymos_model_v003::1.0 urn:nasa:pds:dart_shapemodel:data_derived_dimorphos_model_v003::1.0 urn:nasa:pds:dart_shapemodel:data_derived_dimorphos_model_v004::1.0 urn:nasa:pds:dart_shapemodel:document::1.0 Overview ------------------------- These collections contain a number of shape models and derived physical properties of these shape models along with the adequate documentation. The documentation is provided as PDF and text files whereas the shape models are provided as OBJ and FITS files. There are two kinds of FITS files: the Image Cubes and Binary Tables --also called Ancillary files--. The Image Cubes should contain all the information of the Binary Tables as different layers that can be overlayed in the shape model. Opening Remarks ------------------------- Only the data and documentation in accordance to NAIF's area of expertise have been reviewed. This mainly excludes the validation of the physical properties from the FITS Image Cubes and/or Binary Tables. Items that are considered liens, and therefore required to be addressed to pass the review from NAIF side are marked with [LIEN], the other items are --strong-- suggestions. PDS Validate Tool ------------------------- Running the PDS Validate Tool is the first step to validate a PDS4 product, collection or bundle. It would be appropriate to provide the context products of the bundles or collections in order to be able run the PDS Validate Tool at its full capacity. Because it is not available I have run validate with the --skip-context-validation flag on. I ran a bundle validation as well as individual collection validations. % validate -t dart202309/ -R pds4.bundle --skip-context-validation -r validate_bundle.txt % validate -t dart202309/document/ -R pds4.collection --skip-context-validation -r validate_document.txt % validate -t dart202309/data_derived_dimorphos_model_v003/ -R pds4.collection --skip-context-validation -r validate_data_derived_dimorphos_model_v003.txt % validate -t dart202309/data_derived_dimorphos_model_v004/ -R pds4.collection --skip-context-validation -r validate_data_derived_dimorphos_model_v004.txt % validate -t dart202309/data_derived_didymos_model_v003/ -R pds4.collection --skip-context-validation -r validate_data_derived_didymos_model_v003.txt Additionally, given all of the PDS4 Validation errors I have run it with --skip-product-validation which according to the PDS4 Validate Tool documentation will "Execute bundle validation but only check bundle/collection validity and ignore the product" %validate -t dart202309/ -R pds4.bundle --skip-product-validation -r validate_bundle_skip_product_validation.txt The following PDS4 Validate issues are present: [LIEN] ERROR [error.label.missing_file] Missing the readme.txt file as part of the bundle -- From the --skip-product-validation bundle validation -- - Warnings and Errors - data_derived_dimorphos_model_v004/collection_data_derived_dimorphos_model_v004.xml WARNING [warning.integrity.member_not_found] The member 'urn:nasa:pds:dart_shapemodel:data_derived_dimorphos_model_v004:dimorphos_impact_point_model::1.0' could not be found in any product within the given target. document/collection_document.xml WARNING [warning.integrity.unreferenced_member] Identifier 'urn:nasa:pds:dart_shapemodel:document::1.0' is not a member of any bundle within the given target data_derived_dimorphos_model_v003/collection_data_derived_dimorphos_model_v003.xml WARNING [warning.integrity.member_not_found] The member 'urn:nasa:pds:dart_shapemodel:data_derived_dimorphos_model_v003:dimorphos_impact_point_model::1.0' could not be found in any product within the given target. data_derived_didymos_model_v003/collection_data_derived_didymos_model_v003.xml ERROR [error.table.records_mismatch] Number of records read is not equal to the defined number of records in the collection (expected 77, got 76). [LIEN] data_derived_didymos_model_v003/shape/didymos_g_4657mm_spc_obj_0000n00000_v003.xml data_derived_didymos_model_v003/shape/didymos_g_2329mm_spc_obj_0000n00000_v003.xml data_derived_didymos_model_v003/shape/didymos_g_9309mm_spc_obj_0000n00000_v003.xml data_derived_didymos_model_v003/shape/didymos_g_1165mm_spc_obj_0000n00000_v003.xml data_derived_dimorphos_model_v003/shape/dimorphos_g_0250mm_spc_obj_0000n00000_v003.xml data_derived_dimorphos_model_v003/shape/dimorphos_g_0490mm_spc_obj_0000n00000_v003.xml data_derived_dimorphos_model_v003/shape/dimorphos_g_0980mm_spc_obj_0000n00000_v003.xml data_derived_dimorphos_model_v003/shape/dimorphos_g_1960mm_spc_obj_0000n00000_v003.xml data_derived_dimorphos_model_v003/local/dimorphos_l_00050mm_spc_obj_0884s26430_v003.xml data_derived_dimorphos_model_v004/shape/dimorphos_g_0243mm_spc_obj_0000n00000_v004.xml data_derived_dimorphos_model_v004/shape/dimorphos_g_0487mm_spc_obj_0000n00000_v004.xml data_derived_dimorphos_model_v004/local/dimorphos_l_0050mm_spc_obj_0896s25122_v004.xml data_derived_dimorphos_model_v004/shape/dimorphos_g_1940mm_spc_obj_0000n00000_v004.xml data_derived_dimorphos_model_v004/shape/dimorphos_g_0972mm_spc_obj_0000n00000_v004.xml ERROR [error.table.bad_field_read] line 0: Data Object #0 (): Cannot invoke "java.math.BigInteger.multiply(java.math.BigInteger)" because the return value of "gov.nasa.arc.pds.xml.generated.TableCharacter.getRecords()" is null [LIEN] data_derived_didymos_model_v003/tilt/didymos_g_4657mm_spc_nvf_0000n00000_v003.xml data_derived_didymos_model_v003/tilt/didymos_g_2329mm_spc_nvf_0000n00000_v003.xml data_derived_didymos_model_v003/tilt/didymos_g_9309mm_spc_nvf_0000n00000_v003.xml data_derived_didymos_model_v003/tilt/didymos_g_1165mm_spc_nvf_0000n00000_v003.xml data_derived_dimorphos_model_v003/tilt/dimorphos_g_0490mm_spc_nvf_0000n00000_v003.xml data_derived_dimorphos_model_v003/tilt/dimorphos_g_1960mm_spc_nvf_0000n00000_v003.xml data_derived_dimorphos_model_v003/tilt/dimorphos_g_0980mm_spc_nvf_0000n00000_v003.xml data_derived_dimorphos_model_v003/tilt/dimorphos_g_0250mm_spc_nvf_0000n00000_v003.xml data_derived_dimorphos_model_v004/tilt/dimorphos_g_0243mm_spc_nvf_0000n00000_v004.xml data_derived_dimorphos_model_v004/tilt/dimorphos_g_0972mm_spc_nvf_0000n00000_v004.xml data_derived_dimorphos_model_v004/tilt/dimorphos_g_0487mm_spc_nvf_0000n00000_v004.xml data_derived_dimorphos_model_v004/tilt/dimorphos_g_1940mm_spc_nvf_0000n00000_v004.xml ERROR [error.label.table_definition_problem] line 3: Data Object #3 (Normal Vector): Invalid fields count definition. Expected: 6, Actual: 10 [LIEN] data_derived_didymos_model_v003/gravity/didymos_g_2329mm_spc_grv_0000n00000_v003.xml data_derived_didymos_model_v003/gravity/didymos_g_9309mm_spc_grv_0000n00000_v003.xml data_derived_didymos_model_v003/gravity/didymos_g_4657mm_spc_grv_0000n00000_v003.xml data_derived_didymos_model_v003/gravity/didymos_g_1165mm_spc_grv_0000n00000_v003.xml data_derived_dimorphos_model_v003/gravity/dimorphos_g_1960mm_spc_grv_0000n00000_v003.xml data_derived_dimorphos_model_v003/gravity/dimorphos_g_0250mm_spc_grv_0000n00000_v003.xml data_derived_dimorphos_model_v003/gravity/dimorphos_g_0490mm_spc_grv_0000n00000_v003.xml data_derived_dimorphos_model_v003/gravity/dimorphos_g_0980mm_spc_grv_0000n00000_v003.xml data_derived_dimorphos_model_v004/gravity/dimorphos_g_0972mm_spc_grv_0000n00000_v004.xml data_derived_dimorphos_model_v004/gravity/dimorphos_g_0243mm_spc_grv_0000n00000_v004.xml data_derived_dimorphos_model_v004/gravity/dimorphos_g_1940mm_spc_grv_0000n00000_v004.xml data_derived_dimorphos_model_v004/gravity/dimorphos_g_0487mm_spc_grv_0000n00000_v004.xml ERROR [error.label.table_definition_problem] line 3: Data Object #3 (Gravity Vector): Invalid fields count definition. Expected: 6, Actual: 10 * Validation reports are included in the review materials * Miscellaneous PDS4 Issues ------------------------- [LIEN] Document collection is not in the bundle xml [LIEN] collection_data_derived_didymos_model_v003.csv – - has 4 files that have truncated filenames Product Validation (Minimal) ------------------------- * OBJ file labels and headers have been reviewed [LIEN] Headers - the file headers do not match the header example in the SIS in section 5.2.2 Unclear if this is a documentation or a file issue. [LIEN] Labels - The is identical for all products The resolution in the description does not match the file Dimorphos is referenced as the shape for Didymos obj files -------------------------- The shape of 65803 Dimorphos is obtained using stereophotoclinometry where stereo techniques with photoclinometry is used to derive the tilt of an asteroid’s surface from DRACO images. The model resolution is approximately 8.4m between vertices. The model has the format v x1 y1 z1 v x2 y2 z2 v x3 y3 z3 (etc.) f i1 j1 k1 f i2 j2 k2 (etc.) where the letter 'v' denotes a vertex and the letter 'f' denotes a triangular facet. A comment with # is provided at the beginning of the file providing More details about the shape. See DART Shape Model SIS for more details. -------------------------- * Binary table FITS files have been opened with PDS4 Viewer. The image cube DTM FITS files were also opened with PDS4 Viewer. 1 file from each type was opened (ex. 1 Tilt/spc_fdi.xml). The label, table, plot were looked at. -data_derived_didymos_model_v003 [LIEN] Most of the Global DTM data was not viewable via image and table Checked all 26 PLANES of 1 file and only 1 PLANE image/table was viewable. Planes 2- 26 image & table does not open -data_derived_dimorphos_model_v003 [LIEN] Some of the Local and Global DTM data was not viewable via image and table Local - Checked all 31 planes. 4 PLANES showed an error when trying to view the image Elevation, Gravitational potential, Gravitational magnitude, Gravity Vector Z showed an error when trying to view the image Global - Checked one all 26 PLANES. PLANES 7- 26 image & table does not open. -data_derived_dimorphos_model_v004 No isses, all files opened. * Image Cube DTM FITS files have been tested with SBMT. These files have been opened in the 'Regional DTM' window All 14 DTM files were opened and loadable/viewable. Quantities were overlayed using the 'Analyze DTM' feature with no issue. * Image Cube FITS files have been tested with AstroimageJ From 2022 review - The header has an incorrect value for the target keyword (or the documentation is wrong): - TARGET = 'DIMORPHOS' instead of '920065803 Dimorphos’ Now - TARGET = '20065803 DIMORPHOS’ OR TARGET = '20065803 DIDYMOS’ - These values differ from the SIS. This sis says – TARGET = ‘920065803 Dimorphos’ OR ‘120065803 Didymos’ [LIEN] * Strings that include NAIF ID and name are not (and will not be) recognized by SPICE. The header TARGET naming convention should be updated [LIEN] [LIEN] Please update to something along the lines of 'DIDYMOS'/'DIMORPHOS', or  '65803 DIDYMOS'/'DIMORPHOS', or '65803 Didymos'/'(65803) Didymos I (Dimorphos)’ - (XML labels fields) From 2022 review - There is a plane (ALBEDO) missing in the global image cube, that is present as an ancillary FITS file: g_08440mm_spc_alb_dimo_0000n00000_v002.fits Now - Local Dimorphos DTMs v3 & v4 have albedo [LIEN] - Global DTMs are still missing Albedo QUESTION - Why do the Dimorphos v3 and v4 local DTMs have different PLANEs? V3 Local has 31 PLANES V4 Local have 10 PLANES All Global have 26 PLANES Documents ------------------------- -- dimorphos_impact_point_model_v003.txt Verified Lat with Daly et al. 2023, RECLAT SPICE API, and impact site XYZ with v1 Impact SPK -- dimorphos_impact_point_model_v004.txt Verified Lat with RECLAT SPICE API, and impact Site XYZ with v2 Impact SPK [LIEN] REFERENCE_SHAPE = dimorphos_g_1960mm_spc_obj_0000n00000_v004.obj – File does not exist -- Should this be dimorphos_g_1940mm_spc_obj_0000n00000_v004.obj ? -- dart_shapemodel_sis.pdf Typos/suggestions - 4.2 - 1b does not mention _l_ is used for local but 1a says _g_ ... 4.3.2 - remove extra 'in' 'In both cases, the products will be in delivered in identical formats.' - 'not to be able to' sounds weird 'In this mission, we will make use of uniform density model as DART will not to be able to identify density heterogeneity within Didymos and Dimorphos' 5.1 - versions should be version 'Higher versions numbers are typical of higher quality' LIENS - From the 2020 review - dart_coordinate_system_for_didymos_and_dimorphos_v1.pdf is incorrect, the PDF/A version must be corrected. [LIEN] This document no longer exists but is referenced in sections 4.3.7 & 5.2.4 4.3.4 Wording makes it sound like the SPICE-kernel products are in this archive. [LIEN] Please make the wording clearer to emphasize these products are in the DART SPICE archive at the NAIF Node. 4.3.5 states this archive conforms to PDS 1.7 IM - BUT 1.4 is used in the labels [LIEN] 5.2.5 talks about SPICE PCK kernels and mentions 'BODY920065803_NUT_*' terms which are not included in the DART 'didymos_system' PCK. [LIEN] This should be removed if they are not planning on being added to the PCK file 5.2.5 section states 920065803 is assigned for Dimorphos which is incorrect [LIEN] This ID is assigned for Didymos. From the NAIF IDs - 920065803 'DIDYMOS' 120065803 'DIMORPHOS’ 5.2.7 says spacecraft pointing and trajectory will be provided as SPICE kernels - [LIEN] please make it clear they are located at NAIF in the DART SPICE archive and not within this archive 7.1 The SPICE definition should be changed to ‘NASA's observation geometry information system developed and maintained by NAIF. SPICE acronym comes from Spacecraft ephemeris (SPK), Planetary constants (PCK), Instrument (IK), Camera-matrix (CK), and Events (EK).’ [LIEN] Shape Models (obj) ------------------------- Shape model validation was carried out by Boris Semenov/NAIF -- examined DSK "comments" * noted duplicate vertices/Euler formula violations -- converted all shape-archive OBJs to SPICE DSKs * success (after stripping OBJ comments which MKDSK cannot process) -- visualized shape-archive-based DSKs in Cosmographia * v3 and v4 _g_ shapes appear consistent, a with small rotational shift * corresponding _g_ and _l_ shapes appear consistent * side-by-side visual comparison with SPICE-archive DSKs looked OK -- dumped DSKs from SPICE-archive to OBJs and compared with shape-archive OBJs * consistent data for all Dimorphos _g_ shapes * SPICE archive does not include DSKs for _l_ shapes and for Didymos (a lien on DART SPICE archive) -- independently checked archive-based DSKs for Euler formula violations * same results as reflected in OBJ comments -- rendered a few shape-archive OBJs in Blender * success Dimorphos obj files are consistent with dart_spice DSKs! Conclusions ------------------ Validate Tool Runs should result in no errors or warnings -including context products 9 Document related Liens - dimorphos_impact_point_model_v004.txt * REFERENCE_SHAPE = dimorphos_g_1960mm_spc_obj_0000n00000_v004.obj – File does not exist [LIEN] - Should this be dimorphos_g_1940mm_spc_obj_0000n00000_v004.obj ? - dart_shapemodel_sis.pdf * LIEN from 2022 review - dart_coordinate_system_for_didymos_and_dimorphos_v1.pdf is incorrect, the PDF/A version must be corrected. - This document no longer exists but is referenced in sections 4.3.7 & 5.2.4 [LIEN] * 4.3.4 Wording makes it sound like the SPICE-kernel products are in this archive. Please make the wording clearer to emphasize these products are in the DART SPICE archive at the NAIF Node. [LIEN] * 4.3.5 states this archive conforms to PDS 1.7 IM - BUT 1.4 is used in the labels [LIEN] * 5.2.2 The obj file headers do not match the header example in the SIS * 5.2.5 talks about SPICE PCK kernels and mentions 'BODY920065803_NUT_*' terms which are not included in the DART 'didymos_system' PCK. This should be removed if they are not planning on being added to the PCK file [LIEN] * 5.2.5 section states 920065803 is assigned for Dimorphos which is incorrect [LIEN] * 5.2.7 says spacecraft pointing and trajectory will be provided as SPICE kernels - please make it clear they are located at NAIF in the DART SPICE archive and not within this archive [LIEN] * 7.1 The SPICE definition should be changed to ‘NASA's observation geometry information system developed and maintained by NAIF. SPICE acronym comes from Spacecraft ephemeris (SPK), Planetary constants (PCK), Instrument (IK), Camera-matrix (CK), and Events (EK).’ [LIEN] -- 6 PDS4 label/wrapping Liens * [LIEN] [1 Error] ERROR [error.table.records_mismatch] Number of records read is not equal to the defined number of records in the collection (expected 77, got 76). - data_derived_didymos_model_v003/collection_data_derived_didymos_model_v003.xml * [LIEN] [24 Errors] ERROR [error.label.table_definition_problem] - Number of fields for binary tables in the following labels are incorrect : In the label: -- 6 … but there are 10 fields. - data_derived_didymos_model_v003/gravity/didymos*spc_grv*v003.xml - data_derived_dimorphos_model_v003/gravity/dimorphos*spc_grv*v003.xml - data_derived_dimorphos_model_v004/gravity/dimorphos*spc_grv*v004.xml - data_derived_didymos_model_v003/tilt/didymos*spc_nvf*v003.xml - data_derived_dimorphos_model_v003/tilt/dimorphos*spc_nvf*v003.xml - data_derived_dimorphos_model_v004/tilt/dimorphos*spc_nvf*v004.xml * [LIEN] [14 Errors] ERROR [error.table.bad_field_read] line 0: Data Object #0 (): Cannot invoke "java.math.BigInteger.multiply(java.math.BigInteger)" because the return value of "gov.nasa.arc.pds.xml.generated.TableCharacter.getRecords()" is null - data_derived_didymos_model_v003/shape/didymos_g_*spc_obj*v003.xml - data_derived_dimorphos_model_v003/shape/dimorphos_g_*spc_obj*v003.xml - data_derived_dimorphos_model_v004/shape/dimorphos_g_*spc_obj*v004.xml - data_derived_dimorphos_model_v003/local/dimorphos_l_00050mm_spc_obj_0884s26430_v003.xml - data_derived_dimorphos_model_v004/local/dimorphos_l_0050mm_spc_obj_0896s25122_v004.xml * Readme.txt is missing [LIEN] ERROR [error.label.missing_file] URI reference does not exist: file: ... readme.txt * Document collection is not in the bundle xml [LIEN] * collection_data_derived_didymos_model_v003.csv - has 4 files that have truncated filenames [LIEN] -- 5 data related liens * The of all files is identical [LIEN] - Resolution in description does not match the file - Dimorphos is used for all Didymos shape models * Some of the Local and Global DTM data was not viewable via image and table [LIEN] - data_derived_dimorphos_model_v003 * Most of the Global DTM data was not viewable via image and table [LIEN] - data_derived_dimorphos_model_v004 * Image Cube FITS headers have incorrect value for the target keyword[LIEN]: - TARGET = '20065803 DIMORPHOS’ OR TARGET = '20065803 DIDYMOS’ - These values differ from the SIS. This sis says – TARGET = ‘920065803 Dimorphos’ OR ‘120065803 Didymos’ - Please update to something along the lines of 'DIDYMOS'/'DIMORPHOS', or  '65803 DIDYMOS'/'DIMORPHOS', or '65803 Didymos'/'(65803) Didymos I (Dimorphos)’ as used in the XML labels fields * From 2022 review - There is a plane (ALBEDO) missing in the global image cube, that is present as an ancillary FITS file [LIEN]: - Local Dimorphos DTMs v3 & v4 have albedo - Global DTMs are still missing Albedo [LIEN] -- Question - Why do the Dimorphos v3 and v4 local DTMs have different PLANEs? OBJ files are consistent with dart_spice DSKs :) ! -- End.