From 116e05b74b66da74bd1c34a6876cab334f931748 Mon Sep 17 00:00:00 2001 From: paarongiroux <47163875+paarongiroux@users.noreply.github.com> Date: Mon, 7 Oct 2019 15:36:35 -0700 Subject: [PATCH] TGO Cassis ALE driver and light time to surface correction (#295) * Adds TGO Cassis ALE driver and adds light time to surface correction * Add test data * updated cassis and kaguya tests to get them running --- ale/base/data_naif.py | 36 +- ale/drivers/tgo_drivers.py | 66 + ...O-2016-11-26T22.32.14.582-RED-01000-B1.xsp | 770 ++++ ...6-11-26T22.32.14.582-RED-01000-B1_isis.lbl | 473 ++ ...ck_p_160312_191231_190601_sliced-143410.xc | 136 + .../de-403-masses.tpc | 65 + .../em16_tgo_cassis_v07.ti | 608 +++ .../em16_tgo_ops_v02.tf | 258 ++ ...01_20170301_s20190703_v01_sliced-143000.xc | 2845 ++++++++++++ .../em16_tgo_step_20190823.tsc | 225 + .../em16_tgo_v18.tf | 3662 +++++++++++++++ .../naif0012.tls | 152 + .../pck00010.tpc | 4061 +++++++++++++++++ .../rssd0002.tf | 1424 ++++++ .../tgoCassisAddendum007.ti | 194 + tests/pytests/test_cassis_drivers.py | 294 ++ tests/pytests/test_kaguya_drivers.py | 24 +- 17 files changed, 15276 insertions(+), 17 deletions(-) create mode 100644 ale/drivers/tgo_drivers.py create mode 100644 tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1.xsp create mode 100644 tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1_isis.lbl create mode 100644 tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/cassis_ck_p_160312_191231_190601_sliced-143410.xc create mode 100644 tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/de-403-masses.tpc create mode 100644 tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/em16_tgo_cassis_v07.ti create mode 100644 tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/em16_tgo_ops_v02.tf create mode 100644 tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/em16_tgo_sc_spm_20161101_20170301_s20190703_v01_sliced-143000.xc create mode 100644 tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/em16_tgo_step_20190823.tsc create mode 100644 tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/em16_tgo_v18.tf create mode 100644 tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/naif0012.tls create mode 100644 tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/pck00010.tpc create mode 100644 tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/rssd0002.tf create mode 100644 tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/tgoCassisAddendum007.ti create mode 100644 tests/pytests/test_cassis_drivers.py diff --git a/ale/base/data_naif.py b/ale/base/data_naif.py index bd53033..8527b3c 100644 --- a/ale/base/data_naif.py +++ b/ale/base/data_naif.py @@ -1,5 +1,6 @@ import spiceypy as spice import numpy as np +import scipy.constants import ale from ale.base.type_sensor import Framer @@ -337,11 +338,36 @@ class NaifSpice(): # spkezr returns a vector from the observer's location to the aberration-corrected # location of the target. For more information, see: # https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/FORTRAN/spicelib/spkezr.html - state, _ = spice.spkezr(target, - time, - self.reference_frame, - self.light_time_correction, - observer) + if self.correct_lt_to_surface and self.light_time_correction.upper() == 'LT+S': + obs_tar_state, obs_tar_lt = spice.spkezr(target, + time, + 'J2000', + self.light_time_correction, + observer) + # ssb to spacecraft + ssb_obs_state, ssb_obs_lt = spice.spkezr(observer, + time, + 'J2000', + 'NONE', + 'SSB') + + radius_lt = (self.target_body_radii[2] + self.target_body_radii[0]) / 2 / (scipy.constants.c/1000.0) + adjusted_time = time - obs_tar_lt + radius_lt + ssb_tar_state, ssb_tar_lt = spice.spkezr(target, + adjusted_time, + 'J2000', + 'NONE', + 'SSB') + state = ssb_tar_state - ssb_obs_state + matrix = spice.sxform("J2000", self.reference_frame, time) + state = spice.mxvg(matrix, state, 6, 6); + else: + state, _ = spice.spkezr(target, + time, + self.reference_frame, + self.light_time_correction, + observer) + if self.swap_observer_target: pos.append(-state[:3]) vel.append(-state[3:]) diff --git a/ale/drivers/tgo_drivers.py b/ale/drivers/tgo_drivers.py new file mode 100644 index 0000000..a81215c --- /dev/null +++ b/ale/drivers/tgo_drivers.py @@ -0,0 +1,66 @@ +from glob import glob +import os + +import struct +import pvl +import spiceypy as spice +import numpy as np + +from ale.base import Driver +from ale.base.data_naif import NaifSpice +from ale.base.label_isis import IsisLabel +from ale.base.type_sensor import Framer + +class TGOCassisIsisLabelNaifSpiceDriver(Framer, IsisLabel, NaifSpice, Driver): + """ + Driver for reading TGO Cassis ISIS3 Labels. These are Labels that have been ingested + into ISIS from PDS EDR images but have not been spiceinit'd yet. + """ + @property + def instrument_id(self): + """ + Returns an instrument id for unquely identifying the instrument, but often + also used to be piped into Spice Kernels to acquire IKIDs. Therefore they + the same ID the Spice expects in bods2c calls. + Expects instrument_id to be defined in the Pds3Label mixin. This should + be a string of the form CaSSIS + + Returns + ------- + : str + instrument id + """ + id_lookup = { + 'CaSSIS': 'TGO_CASSIS', + } + return id_lookup[super().instrument_id] + + @property + def ephemeris_start_time(self): + """ + Returns the ephemeris_start_time of the image. + Expects spacecraft_clock_start_count to be defined. This should be a float + containing the start clock count of the spacecraft. + Expects spacecraft_id to be defined. This should be the integer Naif ID code + for the spacecraft. + + Returns + ------- + : float + ephemeris start time of the image. + """ + return spice.utc2et(str(self.label['IsisCube']['Instrument']['StartTime'])) + + @property + def sensor_frame_id(self): + return -143420 + + @property + def sensor_model_version(self): + """ + Returns + ------- + : int + ISIS sensor model version + """ + return 1 diff --git a/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1.xsp b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1.xsp new file mode 100644 index 0000000..89b96fc --- /dev/null +++ b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1.xsp @@ -0,0 +1,770 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/SPK ' +'2' +'6' +'SPKMERGE ' +BEGIN_ARRAY 1 39 +'DE-0721LE-0721 ' +'1FCC1EAE174B29^8' +'1FCC24377061B7^8' +'A' +'0' +'1' +'2' +39 +'1FCD874^8' +'A8C^5' +'7EB9214004AB84^5' +'-AFA4575239476^3' +'-1226D73F2FAC77^2' +'51F8F97C4C8C24^-1' +'-90DB673687649^-2' +'6F4FF5A90E8C6^-4' +'-F41B589FE583C^-4' +'-27B2B38F13078^-4' +'-418039FC6A82^-5' +'-4890C9912C7AA4^-6' +'-15C1FC2636FF23^-7' +'7E8C47466C70B4^5' +'1CD162EEB9034^4' +'-3B6DB4D3C2B746^1' +'1C5C94FD0CBCC8^0' +'88529DB209B48^-2' +'B54C5978E48DB^-3' +'136EF49616DBFC^-3' +'A7EB6EFA3E1D48^-5' +'-11B915D31A45F^-5' +'-4E5B790F67F628^-6' +'-A303A7C5757CC^-7' +'30951E7D45DC44^5' +'CBD0E310FAF43^3' +'-149A0E172F8874^1' +'BAF39F75DB384^-1' +'4FF3BC6ABE9AF^-2' +'677BAD1005DB98^-3' +'C083B96C0B7F78^-4' +'9B38885540DBD^-5' +'-2AEDBFCBE136E2^-6' +'-225A32BA275108^-6' +'-54F29541FC2B98^-7' +'1FC2FB4^8' +'1518^6' +'23^2' +'1^1' +END_ARRAY 1 39 +BEGIN_ARRAY 2 39 +'DE-0721LE-0721 ' +'1FCC1EAE174B29^8' +'1FCC24377061B7^8' +'4' +'0' +'1' +'2' +39 +'1FD8134^8' +'1518^6' +'C5865818718648^7' +'14DFA6D0D06EDE^6' +'-16438BAA499E3^6' +'AD89C5BC78CFF^3' +'42C2440E2933C^3' +'-8AE5DA719C8428^1' +'-A16E615240058^0' +'31B6F32D8DCF1E^-1' +'1823A5FE0C2CEF^-2' +'-EFC4560F98D818^-4' +'208CEE1467470E^-4' +'1FBB1BA9FCA8F^6' +'1F713CDA10E559^7' +'-282888116C54B8^4' +'-96D6387D4624B^4' +'B5BA006737242^2' +'17541B84D12306^2' +'-4F703FB73E4B0C^0' +'-39A4594819C08A^-1' +'17D8E9C8C4A74A^-2' +'D5F0AA9176B8A8^-4' +'-5FD374778ABC5^-5' +'-4723EF885BC164^6' +'E62E0F3097B9A8^6' +'876FE4790B182^4' +'-457A58991B7B3C^4' +'3686D0588835EA^2' +'AEF108F2EFC53^1' +'-201BD2DEDB3E36^0' +'-1BB77C0BEF8512^-1' +'A66FED638EDC^-3' +'6B2E8E82854AEC^-4' +'-2655DA668309^-5' +'1FC2FB4^8' +'2A3^6' +'23^2' +'1^1' +END_ARRAY 2 39 +BEGIN_ARRAY 3 54 +'MAR097 ' +'1FCC1EAE174B29^8' +'1FCC24377061B7^8' +'1F3' +'4' +'1' +'3' +54 +'1FCC0B9^8' +'2A3^4' +'1379C45ED0EA61^-3' +'-5B587C92726B08^-3' +'-7443BF205081C^-3' +'1C218B4639A47F^-3' +'130218AC4C740C^-3' +'-26BBB4754FBA28^-4' +'-133055D6C5B7BC^-4' +'174CD5F904D46^-5' +'23E99D1B00AD3^-3' +'7B39098B6324D4^-3' +'-5985614EA08104^-3' +'-2FE9187ECD65B4^-3' +'DD7CC40E12DFE^-4' +'4A7664BF79048^-4' +'-C8889A250394E^-5' +'-425BDB71251A6^-5' +'9C46DA8DD065C^-4' +'757C591B7DA31^-3' +'13DE10BADD0239^-3' +'-29BE91C0FAA924^-3' +'-3B39547D696658^-4' +'3E013227E09B64^-4' +'480BC96AA55504^-5' +'-30BD3035A744E^-5' +'-6FC5D07711F72^-7' +'-7C29E5431BF28^-6' +'3750D6DFA14B9^-6' +'3436CF74EDEC7E^-6' +'-8B2AC98595721^-7' +'-5754957427ACE^-7' +'7BB711AE2E1F9^-8' +'0^0' +'5BDED4A8AD7A^-8' +'-615F0517979B88^-6' +'-5CBFC10B80DD0C^-6' +'266F7E98F4B972^-6' +'1046270D13F3A^-6' +'-390A69491B300A^-7' +'-160573ADB390E8^-7' +'0^0' +'3E7AABE37797A^-7' +'14309A05F8D384^-6' +'-514E220FE2B21^-6' +'-9F325D9F67FE18^-7' +'DAFBFCBA87AA2^-7' +'147E3B9140182F^-7' +'-102C93FB0CA6F9^-7' +'0^0' +'1FCBE16^8' +'546^4' +'32^2' +'1^1' +END_ARRAY 3 54 +BEGIN_ARRAY 4 569 +'em16_tgo_fsp_048_01_20160314_20181231_v0' +'1FCC1EAE174B29^8' +'1FCC24377061B7^8' +'-8F' +'1F3' +'1' +'13' +569 +'-44E63E44A804CC^3' +'1409C2A4EEAECC^4' +'866228FBE03B2^3' +'-242DB91B459454^1' +'-306524A7565A32^1' +'30BB0E3E38B2E4^0' +'-492F2AF4B1C2EC^3' +'13AD53D589D59F^4' +'86BAE4B66D19^3' +'-240BD6614FC03E^1' +'-30FC8974E9DE1C^1' +'2CB9D5E97AFA52^0' +'-4D607BD5104CE4^3' +'13516F8D75FE5^4' +'870A815D562AC8^3' +'-23E749F08FDE1^1' +'-3193D9E665663E^1' +'28A3B2199AA0F2^0' +'-517A93F133D928^3' +'12F614164D12D1^4' +'875127FFD8C6A8^3' +'-23C00BA4FCD13E^1' +'-322B058F0B63AA^1' +'2478B364F8896^0' +'-557DD45AD03558^3' +'129B3FB711BF38^4' +'878F00A2F141D^3' +'-239613A92F7E1^1' +'-32C1FBA47893C8^1' +'2038EEA7A9B9A6^0' +'-596A9C2F598D6^3' +'1240F0B45E85A3^4' +'87C4324503CE98^3' +'-23695A7AC49102^1' +'-3358AB00AD1A38^1' +'1BE47D1C5487AC^0' +'-5D41489D7B5B18^3' +'11E72550931E51^4' +'87F0E2E179FE5^3' +'-2339D8EEC1174E^1' +'-33EF0224499D0E^1' +'177B7C7423219A^0' +'-610234EA88AA98^3' +'118DDBCC00395B^4' +'8815377454E8D^3' +'-23078835F8AC44^1' +'-3484EF3901F304^1' +'12FE0EEDB9E95F^0' +'-64ADBA77E41DE8^3' +'1135126511A993^4' +'883153FDB35538^3' +'-22D261E1720DE6^1' +'-351A601444E264^1' +'E6C5B6B1AD22D^-1' +'-684430C85EF2F4^3' +'10DCC758770B9D^4' +'88455B854BE4F8^3' +'-229A5FE6C89858^1' +'-35AF423A1A0E44^1' +'9C68D86646975^-1' +'-6BC5ED858E089^3' +'1084F8E14AF14C^4' +'8851701DDAE8F^3' +'-225F7CA487F3B4^1' +'-364382E035E364^1' +'50CD5A5582BD3^-1' +'-6F33448513DB84^3' +'102DA53938A37E^4' +'8855B2E883B8B^3' +'-2221B2E67FE454^1' +'-36D70EF143E2D2^1' +'3F690B966342E8^-2' +'-728C87CDDED20C^3' +'FD6CA98A08348^3' +'8852441825668^3' +'-21E0FDEA0DD756^1' +'-3769D310674176^1' +'-4A17E14828A8A8^-1' +'-75D2079D5AF0D^3' +'F806736BB1A168^3' +'884742F4A2ADA^3' +'-219D596259F584^1' +'-37FBBB9CF1F7FA^1' +'-995A08A644F3F8^-1' +'-7904126C96695C^3' +'F2A7949BAE2958^3' +'8834CDDE1D09B8^3' +'-2156C17C85699E^1' +'-388CB4B652472C^1' +'-E9CBA195D5475^-1' +'-7C22F4F55856DC^3' +'ED4FF06ECD6E48^3' +'881B025022E6F8^3' +'-210D32E3C789E2^1' +'-391CAA4036CF3E^1' +'-13B6816C34B0AF^0' +'-7F2EFA37292D9C^3' +'E7FF6A2D7CD288^3' +'87F9FCE4D0E64^3' +'-20C0AAC5777082^1' +'-39AB87E6E9662E^1' +'-18E2A80A674AAD^0' +'-82286B7C4C5CD^3' +'E2B5E515AABC7^3' +'87D1D957E62DD^3' +'-207126D4FF5EEC^1' +'-3A393923E0EF86^1' +'-1E20DA4F19AE38^0' +'-850F905EAAB46^3' +'DD73445C97C048^3' +'87A2B289CBC338^3' +'-201EA54FB6F564^1' +'-3AC5A9428A7A92^1' +'-2370BF61D492^0' +'-87E4AECCAD1AC^3' +'D8376B30960EE^3' +'876CA2828EE21^3' +'-1FC92500A0E15^1' +'-3B50C36549CDC6^1' +'-28D1F93124E3^0' +'-8AA80B0E0717B^3' +'D3023CBAB76A4^3' +'872FC274CE3D68^3' +'-1F70A5440833EC^1' +'-3BDA728AB13516^1' +'-2E44246F3AA42C^0' +'-8D59E7C870A93^3' +'CDD39C2069DB3^3' +'86EC2AC09A0B5^3' +'-1F15260AF933B7^1' +'-3C62A192EFE1B2^1' +'-33C6D890A33324^0' +'-8FFA86044EC16^3' +'C8AB6C85035C6^3' +'86A1F2F646AF8^3' +'-1EB6A7DE914CAC^1' +'-3CE93B457578C6^1' +'-3959A7CD3AE56C^0' +'-928A253149BAD^3' +'C389910B3CBB1^3' +'865131D931D248^3' +'-1E552BE321D806^1' +'-3D6E2A56C8B852^1' +'-3EFC1F236F896C^0' +'-9509032AD1037^3' +'BE6DECD69C0108^3' +'85F9FD6279A7A8^3' +'-1DF0B3DB21C913^1' +'-3DF1596E8E888E^1' +'-44ADC65DEA18E4^0' +'-97775C3C8B3B68^3' +'B958630CCECEA8^3' +'859C6AC3A62D08^3' +'-1D894229EAB91E^1' +'-3E72B32DBE805A^1' +'-4A6E201BB37B88^0' +'-99D56B26B20868^3' +'B448D6D6F5213^3' +'85388E69441DA^3' +'-1D1ED9D63E1DD3^1' +'-3EF2223501CC8^1' +'-503CA9DAE7DFD8^0' +'-9C23692258E83^3' +'AF3F2B62DD0E8^3' +'84CE7BFD715D^3' +'-1CB17E8C8F8114^1' +'-3F6F912B39570C^1' +'-5618DC060DEC9C^0' +'-9E618DE59E4D48^3' +'AA3B43E4300C18^3' +'845E466A5A8D88^3' +'-1C4134A1105C8A^1' +'-3FEAEAC427C0C^1' +'-5C022A0429102C^0' +'-A0900FA7C6507^3' +'A53D0395926778^3' +'83E7FFDCA97D8^3' +'-1BCE011179F41B^1' +'-406419C73B14A8^1' +'-61F8024B9E0CE4^0' +'-A2AF23253E3558^3' +'A0444DB9B5B18^3' +'836BB9C5E40F^3' +'-1B57E9869161CA^1' +'-40DB0916712AA^1' +'-67F9CE77FD2EEC^0' +'-A4BEFBA387F758^3' +'9B51059C5F0B^3' +'82E984DEBB371^3' +'-1ADEF45562048E^1' +'-414FA3B55087A4^1' +'-6E06F362BF1D9^0' +'-A6BFCAF50D02A8^3' +'96630E93627878^3' +'8261712949B578^3' +'-1A6328802A918B^1' +'-41C1D4CFEE1004^1' +'-741ED13EF8F274^0' +'-A8B1C17CD73698^3' +'917A4BFF94C1F^3' +'81D38DF342329^3' +'-19E48DB6F95E49^1' +'-423187C1F592BC^1' +'-7A40C3B7FF6768^0' +'-AA950E322F4AA8^3' +'8C96A14DB5DEE^3' +'813FE9D80C8C48^3' +'-19632C57F6215F^1' +'-429EA81DA7D288^1' +'-806C2212D6D078^0' +'-AC69DEA41FED48^3' +'87B7F1F756AD18^3' +'80A692C2D2626^3' +'-18DF0D6F5C1D9^1' +'-430921B2BD3704^1' +'-86A03F521CEBD^0' +'-AE305EFCDD9E48^3' +'82DE2183BD8128^3' +'800795F07B704^3' +'-18583AB730C0B8^1' +'-4370E0951BC9B8^1' +'-8CDC6A5BD54008^0' +'-AFE8BA0514B07^3' +'7E091388CDA5C8^3' +'7F62FFF19B01C4^3' +'-17CEBE96CF196E^1' +'-43D5D12355E578^1' +'-931FEE2043C4A^0' +'-B1931927210538^3' +'7938ABABF582^3' +'7EB8DCAC50AD8C^3' +'-1742A4226B4DF^1' +'-4437E00CF82D78^1' +'-996A11C0FAD6E8^0' +'-B32FA472358EF8^3' +'746CCDA3252EE8^3' +'7E09375E1F145C^3' +'-16B3F71AB2A562^1' +'-4496FA58C7D414^1' +'-9FBA18B799AFB8^0' +'-B4BE829D7B8118^3' +'6FA55D35CB7824^3' +'7D541A9DBB5E9^3' +'-1622C3EC9CF7F4^1' +'-44F30D6B2F0DD4^1' +'-A60F42FC6F676^0' +'-B63FD90B3101F^3' +'6AE23E3DD1FE78^3' +'7C99905CD73AB8^3' +'-158F17B15FC756^1' +'-454C070D295E7^1' +'-AC68CD2E1687B^0' +'-B7B3CBCBCC072^3' +'662354A88B9E8^3' +'7BD9A1E9E55BCC^3' +'-14F9002E3D79FE^1' +'-45A1D573FF2F5^1' +'-B2C5F0BBD931C^0' +'-B91A7DA11F2238^3' +'61688477845CA4^3' +'7B1457F1D62F0C^3' +'-14608BD3B168BC^1' +'-45F46749FC072C^1' +'-B925E41518188^0' +'-BA741001742AD^3' +'5CB1B1C1224FA8^3' +'7A49BA81C81CAC^3' +'-13C5C9BB534D6F^1' +'-4643ABB7FE016C^1' +'-BF87DAE0106A3^0' +'-BBC0A31A865638^3' +'57FEC0B10DB4E4^3' +'7979D108A467B^3' +'-1328C9A3D9547B^1' +'-468F926F4D9D1^1' +'-C5EB063A43702^0' +'-BD0055D43EBF5^3' +'534F9588648A64^3' +'78A4A2589FFF9^3' +'-12899BEAFA3237^1' +'-46D80BB2B7B5E8^1' +'-CC4E95041889B8^0' +'-BE3345D318AA08^3' +'4EA4149DD1D92^3' +'77CA34A89747C^3' +'-11E851859890D3^1' +'-471D085DA127BC^1' +'-D2B1B43735B64^0' +'-BF598F7A213D9^3' +'49FC225DB44034^3' +'76EA8D953EDA5^3' +'-1144FBF769AE97^1' +'-475E79E80078^1' +'-D9138F42A71BD^0' +'-C0734DEC9FDA98^3' +'4557A34A88E8A^3' +'7605B2222B99C8^3' +'-109FAD4BDA35C2^1' +'-479C5266FE2ABC^1' +'-DF735061DE116^0' +'-C1809B0F9155D8^3' +'40B67BFDC69DF4^3' +'751BA6BAC1EDB4^3' +'-FF87811EF1963^0' +'-47D6848B5019FC^1' +'-E5D020DF2573B^0' +'-C2818F8B35A4F8^3' +'3C189129349B9E^3' +'742C6F332A25A4^3' +'-F4F6F5C1100ED^0' +'-480D039FBE33F^1' +'-EC292934DB0218^0' +'-C37642CCF0EBF8^3' +'377DC798983578^3' +'73380EC96D24C^3' +'-EA4A6C331252F8^0' +'-483FC38AEC618^1' +'-F27D910E7E317^0' +'-C45ECB09A71EE8^3' +'32E6043365516E^3' +'723E8826CEF25^3' +'-DF8326AF008FD8^0' +'-486EB8D6E22858^1' +'-F8CC7F4046AC4^0' +'-C53B3D40865608^3' +'2E512BFE07C6CA^3' +'713FDD615B853C^3' +'-D4A27030F23D78^0' +'-4899D8BE9E33D8^1' +'-FF1519DC52F74^0' +'-C60BAD3DF5A5B8^3' +'29BF241A739B18^3' +'703C0FFD744498^3' +'-C9A99C25D28018^0' +'-48C1193EE13B34^1' +'-1055686862CEC7^1' +'-C6D02D9E2FF688^3' +'252FD1C7F2CC18^3' +'6F3320EF1DF5BC^3' +'-BE9A0593DCD18^0' +'-48E47124B6424C^1' +'-10B8FEB0172E14^1' +'-C788CFCF150458^3' +'20A31A62875B88^3' +'6E25109AECD7E8^3' +'-B3750DDDFE06^0' +'-4903D81402B688^1' +'-111C06DC8856B8^1' +'-C835A41101AAD8^3' +'1C18E3627C2DD6^3' +'6D11DED6AEFF7C^3' +'-A83C1B88470F1^0' +'-491F4683C351E8^1' +'-117E7366305DB2^1' +'-C8D6B976F8A018^3' +'1791125CB32064^3' +'6BF98AEA2DD014^3' +'-9CF0997DAFB9D^0' +'-4936B5B377D0B4^1' +'-11E036D5986D14^1' +'-C96C1DE6CC1178^3' +'130B8D03D7741^3' +'6ADC139056CE2^3' +'-9193F71E70E4E^0' +'-494A1FA1F6DA8C^1' +'-124143BF83C527^1' +'-C9F5DE19FFFE48^3' +'E88392A1154E88^2' +'69B976F8C289CC^3' +'-8627A8E070D7E^0' +'-49597F0D4EDA1C^1' +'-12A18CC55D62A5^1' +'-CA74059FA85498^3' +'A06FCC28D33B4^2' +'6891B2C91EF98^3' +'-7AAD28DBE18C04^0' +'-4964CF7C9B715^1' +'-1301049FD924E1^1' +'-CAE69EDED8A8C8^3' +'587BDE262E5EB8^2' +'6764C41DDD395C^3' +'-6F25F6A168EBC^0' +'-496C0D4C6DCCC^1' +'-135F9E322AF594^1' +'-CB4DB318DA5348^3' +'10A62C10033C63^2' +'6632A789E3E3DC^3' +'-6393964377A1D8^0' +'-496F35B3F72D9C^1' +'-13BD4C9BE6209F^1' +'-CBA94A6AA2BCF^3' +'-3712E47536EC18^2' +'64FB5915B97F6^3' +'-57F78F29E26FB8^0' +'-496E46C00BA438^1' +'-141A033E5C62EC^1' +'-CBF96BCDBD134^3' +'-7EB0EB86E2CA4C^2' +'63BED43F0CB7F^3' +'-4C536B74A31024^0' +'-49693F4C0AD6AC^1' +'-1475B5B323A36E^1' +'-CC3E1D195EEFB^3' +'-C6357EEFBE5A98^2' +'627D13F93D75^3' +'-40A8B81F086EBC^0' +'-49601F04ECE904^1' +'-14D057BDF7FEB8^1' +'-CC776304206CF^3' +'-10DA2321CC0F2F^3' +'613612AEB2F4A8^3' +'-34F90537B5A24C^0' +'-4952E679E8F0A8^1' +'-1529DD491794BB^1' +'-CCA54125F20AC8^3' +'-154F89624A4B94^3' +'5FE9CA42148578^3' +'-2945E536EC391E^0' +'-4941972ED4382C^1' +'-15823A7269814F^1' +'-CCC7B9F93F04A8^3' +'-19C3A39DB1D523^3' +'5E98340E96213^3' +'-1D90EB2D92E039^0' +'-492C339DA3BDC^1' +'-15D9639FBC5B53^1' +'-CCDECEDA735F18^3' +'-1E368A9DA56569^3' +'5D4148E77798C8^3' +'-11DBA8A7265C04^0' +'-4912BF1FEC6E6C^1' +'-162F4D87D69C99^1' +'-CCEA80063EFA9^3' +'-22A85707090BC8^3' +'5BE50117C756B8^3' +'-627AC8E51AE0D^-1' +'-48F53DCF30E5EC^1' +'-1683ED265A36FA^1' +'-CCEACC97EB7528^3' +'-271921575AB18A^3' +'5A83546384FD4^3' +'5897C63621E52^-1' +'-48D3B476E60BF^1' +'-16D737A39A0BF2^1' +'-CCDFB288F48798^3' +'-2B8901E235B0DA^3' +'591C3A0A3C4258^3' +'11364685A0EEB^0' +'-48AE28A72C6D84^1' +'-172922461F4D3F^1' +'-CCC92EB1D2E89^3' +'-2FF810D0CDC388^3' +'57AFA8C9F57F28^3' +'1CDD26F57D9DB6^0' +'-4884A0DAE242E8^1' +'-1779A27CF5FAD9^1' +'-CCA73CCAB70608^3' +'-34666623AAD898^3' +'563D96E108A1BC^3' +'287C94D182CF5E^0' +'-4857248FE1914^1' +'-17C8ADFC8F5E02^1' +'-CC79D76B060CB^3' +'-38D419B4FB44D^3' +'54C5FA0E557D8C^3' +'34130B0FD79EB6^0' +'-4825BC38DD773C^1' +'-18163AD70471C8^1' +'-CC40F807DE63E^3' +'-3D4143392D24A6^3' +'5348C790D54C64^3' +'3F9F091A3B5A1A^0' +'-47F0711071DB7^1' +'-18623F7BC9AD8B^1' +'-CBFC96F3740D7^3' +'-41ADFA3CE6842C^3' +'51C5F4281A8FE4^3' +'4B1F112C0B467^0' +'-47B74CF1754D6^1' +'-18ACB2A08DCD4C^1' +'1FCC1E5B4FF4E9^8' +'1FCC1E79AFCC16^8' +'1FCC1E97855ED2^8' +'1FCC1EB4D491C7^8' +'1FCC1ED1A1300C^8' +'1FCC1EEDEEEBD8^8' +'1FCC1F09C15F3A^8' +'1FCC1F251C0CD^8' +'1FCC1F4002607^8' +'1FCC1F5A77AFD3^8' +'1FCC1F747F3B3A^8' +'1FCC1F8E1C2E11^8' +'1FCC1FA7519F8D^8' +'1FCC1FC022933F^8' +'1FCC1FD891F9B5^8' +'1FCC1FF0A2B0FF^8' +'1FCC2008578548^8' +'1FCC201FB3315D^8' +'1FCC2036B85F34^8' +'1FCC204D69A86C^8' +'1FCC2063C996DA^8' +'1FCC2079DAA4FC^8' +'1FCC208F9F3E73^8' +'1FCC20A519C086^8' +'1FCC20BA4C7A8C^8' +'1FCC20CF39AE63^8' +'1FCC20E3E390DE^8' +'1FCC20F84C4A31^8' +'1FCC210C75F66^8' +'1FCC212062A59C^8' +'1FCC2134145CBA^8' +'1FCC21478D1584^8' +'1FCC215ACEBF22^8' +'1FCC216DDB3E76^8' +'1FCC2180B46E83^8' +'1FCC21935C20B4^8' +'1FCC21A5D41D44^8' +'1FCC21B81E238F^8' +'1FCC21CA3BEA65^8' +'1FCC21DC2F2061^8' +'1FCC21EDF96C36^8' +'1FCC21FF9C6D02^8' +'1FCC221119BA98^8' +'1FCC222272E5D^8' +'1FCC2233A978CF^8' +'1FCC2244BEF751^8' +'1FCC2255B4DEF7^8' +'1FCC22668CA781^8' +'1FCC227747C32^8' +'1FCC2287E79EB3^8' +'1FCC22986DA212^8' +'1FCC22A8DB3042^8' +'1FCC22B931A7C5^8' +'1FCC22C97262D^8' +'1FCC22D99EB78F^8' +'1FCC22E9B7F861^8' +'1FCC22F9BF7413^8' +'1FCC2309B67624^8' +'1FCC23199E46FB^8' +'1FCC2329782C23^8' +'1FCC2339456888^8' +'1FCC2349073CAE^8' +'1FCC2358BEE6EC^8' +'1FCC23686DA3A5^8' +'1FCC237814AD7F^8' +'1FCC2387B53D9C^8' +'1FCC2397508BD4^8' +'1FCC23A6E7CEE6^8' +'1FCC23B67C3CB9^8' +'1FCC23C60F0A87^8' +'1FCC23D5A16D2^8' +'1FCC23E5349918^8' +'1FCC23F4C9C3^8' +'1FCC2404621FA2^8' +'1FCC2413FEE42F^8' +'1FCC2423A14675^8' +'1FCC24334A7D2^8' +'1FCC2442FBBFE8^8' +'1FCC2452B647C5^8' +'1FCC24627B4F31^8' +'2^1' +'6^1' +'5^2' +'1FCC1E5B4FF4E9^8' +'1FCC24627B4F31^8' +'1^1' +'234^3' +'1^1' +'1^1' +END_ARRAY 4 569 +TOTAL_ARRAYS 4 + ~NAIF/SPC BEGIN COMMENTS~ +; /home/kberry/kernel_sliced_tgo_two/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1.bsp LOG FILE + +; Created 2019-09-06/14:09:03.00. +; +; BEGIN SPKMERGE COMMANDS + +LEAPSECONDS_KERNEL = /usgs/cpkgs/isis3/data/base/kernels/lsk/naif0012.tls + +SPK_KERNEL = /home/kberry/kernel_sliced_tgo_two/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1.bsp + SOURCE_SPK_KERNEL = /usgs/cpkgs/isis3/data/tgo/kernels/tspk/mar097.bsp + INCLUDE_COMMENTS = NO + BODIES = 4, 10, 499 + BEGIN_TIME = 2016 NOV 26 22:20:25.908 + END_TIME = 2016 NOV 26 22:44:03.256 +SOURCE_SPK_KERNEL = /usgs/cpkgs/isis3/data/tgo/kernels/spk/em16_tgo_fsp_048_01_20160314_20181231_v02.bsp + INCLUDE_COMMENTS = NO + BODIES = -143 + BEGIN_TIME = 2016 NOV 26 22:20:25.908 + END_TIME = 2016 NOV 26 22:44:03.256 + +; END SPKMERGE COMMANDS + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1_isis.lbl b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1_isis.lbl new file mode 100644 index 0000000..58f1e89 --- /dev/null +++ b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1_isis.lbl @@ -0,0 +1,473 @@ +Object = IsisCube + Object = Core + StartByte = 65537 + Format = Tile + TileSamples = 512 + TileLines = 256 + + Group = Dimensions + Samples = 2048 + Lines = 256 + Bands = 1 + End_Group + + Group = Pixels + Type = Real + ByteOrder = Lsb + Base = 0.0 + Multiplier = 1.0 + End_Group + End_Object + + Group = Instrument + SpacecraftName = "TRACE GAS ORBITER" + InstrumentId = CaSSIS + TargetName = Mars + StartTime = 2016-11-26T22:32:14.582 + SpacecraftClockStartCount = 2f01543131b1aa13 + ExposureDuration = 1.920e-003 <seconds> + Filter = RED + Expanded = 1 + SummingMode = 0 + End_Group + + Group = Archive + DataSetId = TBD + ProductVersionId = UNK + ProducerId = UBE + ProducerName = "Nicolas Thomas" + ProductCreationTime = 2017-10-03T10:49:49 + FileName = CAS-MCO-2016-11-26T22.32.14.582-RED-01000-- + B1 + ScalingFactor = 1.00 + Offset = 0.00 + PredictMaximumExposureTime = 1.5274 <ms> + CassisOffNadirAngle = 50.470 <deg> + PredictedRepetitionFrequency = 351.9 <ms> + GroundTrackVelocity = 3.2356 <km/s> + ForwardRotationAngle = 68.821 <deg> + SpiceMisalignment = 8.487 <deg> + FocalLength = 0.8770 <m> + FNumber = 6.50 + ExposureTimeCommand = 200 + FrameletNumber = 0 + NumberOfFramelets = 40 + ImageFrequency = 1000000 <ms> + NumberOfWindows = 6 + UniqueIdentifier = 100797368 + UID = 100797368 + ExposureTimestamp = 2f01543131b1aa13 + ExposureTimePEHK = 1.920e-003 <ms> + PixelsPossiblySaturated = 0.39 + IFOV = 1.140e-005 + IFOVUnit = rad/px + FiltersAvailable = "BLU RED NIR PAN" + FocalLengthUnit = M + TelescopeType = "Three-mirror anastigmat with powered fold + mirror" + DetectorDescription = "2D Array" + PixelHeight = 10.0 + PixelHeightUnit = MICRON + PixelWidth = 10.0 + PixelWidthUnit = MICRON + DetectorType = "SI CMOS HYBRID (OSPREY 2K)" + ReadNoise = 61.0 + ReadNoiseUnit = ELECTRON + MissionPhase = MCO + SubInstrumentIdentifier = 61.0 + WindowCount = 1 + Window1Binning = 0 + Window1StartSample = 0 + Window1EndSample = 2047 + Window1StartLine = 354 + Window1EndLine = 632 + Window2Binning = 0 + Window2StartSample = 0 + Window2EndSample = 2047 + Window2StartLine = 712 + Window2EndLine = 967 + Window3Binning = 0 + Window3StartSample = 0 + Window3EndSample = 2047 + Window3StartLine = 1048 + Window3EndLine = 1302 + Window4Binning = 0 + Window4StartSample = 0 + Window4EndSample = 2047 + Window4StartLine = 1409 + Window4EndLine = 1662 + Window5Binning = 0 + Window5StartSample = 640 + Window5EndSample = 767 + Window5StartLine = 200 + Window5EndLine = 208 + Window6Binning = 0 + Window6StartSample = 1280 + Window6EndSample = 1407 + Window6StartLine = 1850 + Window6EndLine = 1858 + YearDoy = 2016331 + ObservationId = CRUS_049217_238_0 + End_Group + + Group = BandBin + FilterName = RED + Center = 840 <nm> + Width = 100 <nm> + NaifIkCode = -143422 + End_Group + + Group = Kernels + NaifFrameCode = -143400 + LeapSecond = $base/kernels/lsk/naif0012.tls + TargetAttitudeShape = ($tgo/kernels/pck/pck00010.tpc, + $tgo/kernels/pck/de-403-masses.tpc) + TargetPosition = (Table, $tgo/kernels/tspk/de432s.bsp, + $tgo/kernels/tspk/mar097.bsp) + InstrumentPointing = (Table, + $tgo/kernels/ck/em16_tgo_sc_spm_20161101_2017- + 0301_s20190703_v01.bc, + $tgo/kernels/ck/cassis_ck_p_160312_191231_190- + 601.bc, $tgo/kernels/fk/em16_tgo_v18.tf, + $tgo/kernels/fk/em16_tgo_ops_v02.tf, + $tgo/kernels/fk/rssd0002.tf) + Instrument = $tgo/kernels/ik/em16_tgo_cassis_v07.ti + SpacecraftClock = $tgo/kernels/sclk/em16_tgo_step_20190823.tsc + InstrumentPosition = (Table, + $tgo/kernels/spk/em16_tgo_fsp_048_01_20160314- + _20181231_v02.bsp) + InstrumentAddendum = $tgo/kernels/iak/tgoCassisAddendum007.ti + ShapeModel = $base/dems/molaMarsPlanetaryRadius0005.cub + InstrumentPositionQuality = Predicted + InstrumentPointingQuality = Reconstructed + CameraVersion = 1 + End_Group + + Group = AlphaCube + AlphaSamples = 2048 + AlphaLines = 2048 + AlphaStartingSample = 0.5 + AlphaStartingLine = 712.5 + AlphaEndingSample = 2048.5 + AlphaEndingLine = 968.5 + BetaSamples = 2048 + BetaLines = 256 + End_Group +End_Object + +Object = Label + Bytes = 65536 +End_Object + +Object = Table + Name = InstrumentPointing + StartByte = 2176659 + Bytes = 64 + Records = 1 + ByteOrder = Lsb + TimeDependentFrames = (-143410, -143400, -143000, 1) + ConstantFrames = (-143420, -143410) + ConstantRotation = (0.0021039880161896, -5.08910327554815e-04, + 0.99999765711961, 0.98482103650022, 0.17356149021485, + -0.0019837290716917, -0.17356007404082, + 0.98482290292452, 8.66356891752243e-04) + CkTableStartTime = 533471602.76595 + CkTableEndTime = 533471602.76595 + CkTableOriginalSize = 1 + FrameTypeCode = 3 + Description = "Created by spiceinit" + Kernels = ($tgo/kernels/ck/em16_tgo_sc_spm_20161101_20170301_s2- + 0190703_v01.bc, + $tgo/kernels/ck/cassis_ck_p_160312_191231_190601.bc, + $tgo/kernels/fk/em16_tgo_v18.tf, + $tgo/kernels/fk/em16_tgo_ops_v02.tf, + $tgo/kernels/fk/rssd0002.tf) + + Group = Field + Name = J2000Q0 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = InstrumentPosition + StartByte = 2176723 + Bytes = 56 + Records = 1 + ByteOrder = Lsb + CacheType = Linear + SpkTableStartTime = 533471602.76595 + SpkTableEndTime = 533471602.76595 + SpkTableOriginalSize = 1.0 + Description = "Created by spiceinit" + Kernels = $tgo/kernels/spk/em16_tgo_fsp_048_01_20160314_201812- + 31_v02.bsp + + Group = Field + Name = J2000X + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Y + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Z + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000XV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000YV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000ZV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = BodyRotation + StartByte = 2176779 + Bytes = 64 + Records = 1 + ByteOrder = Lsb + TimeDependentFrames = (10014, 1) + CkTableStartTime = 533471602.76595 + CkTableEndTime = 533471602.76595 + CkTableOriginalSize = 1 + FrameTypeCode = 2 + PoleRa = (317.68143, -0.1061, 0.0) + PoleDec = (52.8865, -0.0609, 0.0) + PrimeMeridian = (176.63, 350.89198226, 0.0) + Description = "Created by spiceinit" + Kernels = ($tgo/kernels/tspk/de432s.bsp, + $tgo/kernels/tspk/mar097.bsp, + $tgo/kernels/pck/pck00010.tpc, + $tgo/kernels/pck/de-403-masses.tpc) + SolarLongitude = 269.12863680949 + + Group = Field + Name = J2000Q0 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = SunPosition + StartByte = 2176843 + Bytes = 56 + Records = 1 + ByteOrder = Lsb + CacheType = Linear + SpkTableStartTime = 533471602.76595 + SpkTableEndTime = 533471602.76595 + SpkTableOriginalSize = 1.0 + Description = "Created by spiceinit" + Kernels = ($tgo/kernels/tspk/de432s.bsp, + $tgo/kernels/tspk/mar097.bsp) + + Group = Field + Name = J2000X + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Y + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Z + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000XV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000YV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000ZV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = History + Name = IsisCube + StartByte = 2176899 + Bytes = 1487 +End_Object + +Object = OriginalXmlLabel + Name = IsisCube + StartByte = 2163248 + Bytes = 13411 + ByteOrder = Lsb +End_Object + +Object = NaifKeywords + BODY_CODE = 499 + BODY499_RADII = (3396.19, 3396.19, 3376.2) + BODY_FRAME_CODE = 10014 + INS-143400_SWAP_OBSERVER_TARGET = TRUE + INS-143400_LIGHTTIME_CORRECTION = LT+S + INS-143400_LT_SURFACE_CORRECT = TRUE + INS-143400_FOCAL_LENGTH = 874.9 + INS-143400_PIXEL_PITCH = 0.01 + INS-143400_TRANSX = (0.0, 0.01, 0.0) + INS-143400_TRANSY = (0.0, 0.0, 0.01) + INS-143400_ITRANSS = (0.0, 100.0, 0.0) + INS-143400_ITRANSL = (0.0, 0.0, 100.0) + INS-143400_BORESIGHT_SAMPLE = 1024.5 + INS-143400_BORESIGHT_LINE = 1024.5 + INS-143400_OD_A1_CORR = (0.0037613053094827, -0.013415415606581, + -1.86749521007237e-05, 1.0002135268184, + -4.32362371703953e-04, + -9.48065735350123e-04) + INS-143400_OD_A2_CORR = (9.9842559363676e-05, 0.0037354370795816, + -0.013329991887393, -2.15311328389359e-04, + 0.99529601553729, -0.018354271771078) + INS-143400_OD_A3_CORR = (-3.13320167004204e-05, + -7.35655125749807e-06, + -1.57664245066771e-05, 0.0037354946543915, + -0.014167194693093, 1.0) + INS-143400_OD_A1_DIST = (0.0021365879556062, -0.007117857650642, + 1.10355974742147e-05, 0.57360718262538, + 2.50884350194894e-04, + 5.50623913037132e-04) + INS-143400_OD_A2_DIST = (-5.69725741015406e-05, + 0.0021515590567915, -0.0071639299176719, + 1.24152787728634e-04, 0.57645954439243, + 0.010576940564854) + INS-143400_OD_A3_DIST = (1.78250771483506e-05, + 4.24592743471094e-06, + 9.51220699036653e-06, 0.0021515842542074, + -0.0066835595774833, 0.57374154097161) + INS-143400_FILTER_SAMPLES = 2048.0 + INS-143400_FILTER_LINES = 2048.0 +End_Object +End diff --git a/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/cassis_ck_p_160312_191231_190601_sliced-143410.xc b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/cassis_ck_p_160312_191231_190601_sliced-143410.xc new file mode 100644 index 0000000..6c46fd0 --- /dev/null +++ b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/cassis_ck_p_160312_191231_190601_sliced-143410.xc @@ -0,0 +1,136 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'CASSIS TELESCOPE FRAME CRUISE PHASE ORIENTATION ' +BEGIN_ARRAY 1 115 +'TGO_CASSIS_TEL FRAME CRUISE PHASE ORIENT' +'1542E6D0527^B' +'15433F65E21^B' +'-23032' +'-23028' +'3' +'1' +115 +'FFA75CABA1919^0' +'0^0' +'-D4F5C3AF67F31^-1' +'0^0' +'0^0' +'F06DBB34D9B1F^-2' +'0^0' +'D2F374546798C8^0' +'0^0' +'-91096CD2A95F18^0' +'0^0' +'0^0' +'0^0' +'0^0' +'D2F374546798C8^0' +'0^0' +'-91096CD2A95F18^0' +'0^0' +'0^0' +'0^0' +'0^0' +'D2F374546798C8^0' +'0^0' +'-91096CD2A95F18^0' +'0^0' +'0^0' +'-30CD8DAD988BD^-2' +'0^0' +'D937F727AAE078^0' +'0^0' +'-87784666EA028^0' +'0^0' +'0^0' +'0^0' +'0^0' +'D937F727AAE078^0' +'0^0' +'-87784666EA028^0' +'0^0' +'0^0' +'0^0' +'0^0' +'D937F727AAE078^0' +'0^0' +'-87784666EA028^0' +'0^0' +'0^0' +'0^0' +'0^0' +'D937F727AAE078^0' +'0^0' +'-87784666EA028^0' +'0^0' +'0^0' +'31F55371BE21E4^1' +'0^0' +'8560E321A801B8^0' +'0^0' +'DA824E17C5B2B^0' +'0^0' +'0^0' +'0^0' +'0^0' +'8560E321A801B8^0' +'0^0' +'DA824E17C5B2B^0' +'0^0' +'0^0' +'0^0' +'0^0' +'8560E321A801B8^0' +'0^0' +'DA824E17C5B2B^0' +'0^0' +'0^0' +'-23BE8D44A53A14^-1' +'0^0' +'818B6DC3927A38^0' +'0^0' +'DCCDB221991F38^0' +'0^0' +'0^0' +'0^0' +'0^0' +'818B6DC3927A38^0' +'0^0' +'DCCDB221991F38^0' +'0^0' +'0^0' +'0^0' +'0^0' +'818B6DC3927A38^0' +'0^0' +'DCCDB221991F38^0' +'0^0' +'0^0' +'0^0' +'0^0' +'1542E6D0527^B' +'1542F7F1CB1375^B' +'15430AB1CA9A4A^B' +'15431231CA69D3^B' +'154319B1CA395B^B' +'15431D71CA211F^B' +'15431F51CA1501^B' +'15432121CA094B^B' +'15432131CA08E3^B' +'15432141CA087C^B' +'154329F1C9D058^B' +'15432A31C9CEBA^B' +'15432D21C9BBBF^B' +'15433F65E21^B' +'1542E6D0527^B' +'1^1' +'E^1' +END_ARRAY 1 115 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /home/kberry/kernel_sliced_tgo/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/de-403-masses.tpc b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/de-403-masses.tpc new file mode 100644 index 0000000..cbc4f4f --- /dev/null +++ b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/de-403-masses.tpc @@ -0,0 +1,65 @@ +This file was produced by Bill Taber on October 3, 1997. + +The values in this file are taken from the JPL Interoffice Memorandum +(IOM 314.10-127 May 22, 1995) "JPL Planetary and Lunar Ephemerides, +DE403/LE403" by Myles Standish, et al. + + +The masses for the sun and planetary barycenters given in this file are +derived from the masses used for the integration of the planetary +ephemeris DE-403. In the ephemeris the values of the masses are given +as ratios to of Solar GM to barycenter GM. These values are given here. + + BODY1_GMSUN/GM = 6023600.0 + BODY2_GMSUN/GM = 408523.71 + BODY3_GMSUN/GM = 332946.048134 + BODY4_GMSUN/GM = 3098708.0 + BODY5_GMSUN/GM = 1047.3486 + BODY6_GMSUN/GM = 3497.898 + BODY7_GMSUN/GM = 22902.98 + BODY8_GMSUN/GM = 19412.24 + BODY9_GMSUN/GM = 135200000.0 + +These values are used by other products that use DE-403 to provide +gravitational force models for integration of trajectories. + +Given the mass ratios and the mass of the sun, you can compute the mass +of any barycenter. These values are supplied in the text data given +below. Note that the values provided are rounded to three decimal +places. + + + +\begindata + +AU = 149597870.691 + +BODY1_GM = 22032.080 +BODY2_GM = 324858.599 +BODY3_GM = 403503.235 +BODY4_GM = 42828.314 +BODY5_GM = 126712767.863 +BODY6_GM = 37940626.063 +BODY7_GM = 5794549.007 +BODY8_GM = 6836534.064 +BODY9_GM = 981.601 +BODY10_GM = 132712440023.310 + +\begintext + +The masses of bodies other than the earth and moon are simply taken to +be the masses of the barycenters given above. The masses of the earth +and moon are taken from the referenced IOM. + +\begindata + +BODY199_GM = 22032.080 +BODY299_GM = 324858.599 +BODY301_GM = 4902.799 +BODY399_GM = 398600.436 +BODY499_GM = 42828.314 +BODY599_GM = 126712767.863 +BODY699_GM = 37940626.063 +BODY799_GM = 5794549.007 +BODY899_GM = 6836534.064 +BODY999_GM = 981.601 diff --git a/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/em16_tgo_cassis_v07.ti b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/em16_tgo_cassis_v07.ti new file mode 100644 index 0000000..39c9cfb --- /dev/null +++ b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/em16_tgo_cassis_v07.ti @@ -0,0 +1,608 @@ +KPL/IK + +CaSSIS Instrument Kernel +=============================================================================== + + This instrument kernel (I-kernel) contains the ExoMars-2016 Trace Gas + Orbiter (TGO) Colour and Stereo Surface Imaging System (CaSSIS) + instrument optics, detector and field-of-view (FOV) parameters + definitions. + + +Version and Date +------------------------------------------------------------------------------- + + Version 0.7 -- May 11, 2018 -- Stepanov Tulyakov, EPFL + Marc Costa Sitja, ESAC/ESA + + Updated distortion model and focal length (all depended values, + like field of view, boresight are also updated). + + Version 0.6 -- October 16, 2017 -- Jeannie Backer, USGS + Marc Costa Sitja, ESAC/ESA + + Added description and keywords for distortion model. + + Version 0.5 -- July 20, 2017 -- Marc Costa Sitja, ESAC/ESA + Antoine Pommerol, SPACE/UNIBE + + Corrected typo as specified in [6]. Added FoV names and performed + minor decription data updates. + + Version 0.4 -- January 31, 2017 -- Marc Costa Sitja, ESAC/ESA + Antoine Pommerol, SPACE/UNIBE + + Corrected CaSSIS Filters' (TGO_CASSIS_*) FoVs boresights and the + corresponding diagram for since the +Yfsa axis was flipped as + indicated in [6]. + + Version 0.3 -- September 8, 2016 -- Marc Costa Sitja, ESAC/ESA + Jorge Diaz del Rio, ODC Space + + Corrected cross angle values for CaSSIS Filters' (TGO_CASSIS_*) FoVs + since they were full angle instead of half angle. + Corrected minor text typos. + + Version 0.2 -- August 2, 2016 -- Marc Costa Sitja, ESAC/ESA + + Updated the NAIF IDs for CASSIS definitions. + Corrected all INS_*_FOV_REF_ANGLE from 1.333 deg (full-angle) + to 0.6665 (half-angle). + Corrected minor typos. + + Preliminary version. Pending review by the CaSSIS instrument team. + + Version 0.1 -- May 24, 2016 -- Jorge Diaz del Rio, ODC Space + + Improved FoV definition comments by adding reference to the instrument + name on the definitions section header. + + Version 0.0 -- May 22, 2016 -- Jorge Diaz del Rio, ODC Space + + Preliminary version. Pending review by the TGO Science Operations and + CaSSIS instrument teams. + + +References +------------------------------------------------------------------------------- + + 1. ``Frames Required Reading'' + + 2. ``Kernel Pool Required Reading'' + + 3. ``C-kernel Required Reading'' + + 4. ExoMars-2016 Frames Definition Kernel (FK), latest version. + + 5. ``Colour and Stereo Surface Imaging System - CaSSIS,'' experiment + overview: http://www.cassis.unibe.ch/instrument/experiment_overview + + 6. E-mail "CaSSIS kernel error?" from + Antoine Pommerol (antoine.pommerol@space.unibe.ch), 2017-01-25 + + 7. E-mail ``I-kernel. Follow-up on meeting'' from Nicholas Thomas + (nicolas.thomas@space.unibe.ch), 2017-09-18. + + 8. E-mail ``CaSSIS IK update'' from Jeannie Backer + (jwbacker@usgs.gov), 2017-09-27. + + +Contact Information +------------------------------------------------------------------------------- + + If you have any questions regarding this file contact SPICE support at ESA: + + Marc Costa Sitja + (+34) 91-8131-457 + mcosta@sciops.esa.int, esa_spice@sciops.esa.int + + or SPICE support at IKI: + + Alexander Abbakumov + +7 (495) 333-40-13 + aabbakumov@romance.iki.rssi.ru + + or NAIF at JPL: + + Boris Semenov + (818) 354-8136 + Boris.Semenov@jpl.nasa.gov + + +Implementation Notes +------------------------------------------------------------------------------ + + Applications that need SPICE I-kernel data must ``load'' the I-kernel file, + normally during program initialization. The SPICE routine FURNSH loads a + kernel file into the pool as shown below. + + CALL FURNSH ( 'frame_kernel_name' ) -- FORTRAN + furnsh_c ( "frame_kernel_name" ); -- C + cspice_furnsh, frame_kernel_name -- IDL + cspice_furnsh( 'frame_kernel_name' ) -- MATLAB + furnsh( frame_kernel_name ) -- PYTHON* + + Loading the kernel using the SPICELIB routine FURNSH causes the data + items and their associated values present in the kernel to become + associated with a data structure called the ``kernel pool''. + + Once the file has been loaded, the SPICE routine GETFOV (getfov_c in + C, cspice_getfov in IDL and MATLAB and cspice.getfov in PYTHON) can be + used to retrieve FOV parameters for a given instrument or structure. + + The application program may obtain the value(s) for any other IK data + item using the SPICELIB routines GDPOOL, GIPOOL, GCPOOL (gdpool_c, gipool_c, + gcpool_c in C, cspice_gdpool, cspice_gipool, cspice_gcpool in IDL and + MATLAB, cspice.gcpool in PYTHON). See [2] for details. + + This file was created with, and can be updated with a text editor or + word processor. + + * SPICEPY is a non-official, community developed Python wrapper for the + NAIF SPICE toolkit. Its development is managed on Github. + It is available at: https://github.com/AndrewAnnex/SpiceyPy + + +Naming Conventions and Conventions for Specifying Data +---------------------------------------------------------------------------- + + Data items are specified using ``keyword=value'' assignments [2]. + All keywords referencing values in this I-kernel start with the + characters `INS' followed by the NAIF TGO instrument ID code, + constructed using the spacecraft ID number (-143) followed by the + NAIF three digit ID number for CaSSIS module. These IDs are + defined in [4] as follows: + + Name NAIF ID + --------------------- --------- + TGO_CASSIS -143400 + TGO_CASSIS_PAN -143421 + TGO_CASSIS_RED -143422 + TGO_CASSIS_NIR -143423 + TGO_CASSIS_BLU -143424 + + + The remainder of the keyword name is an underscore character + followed by the unique name of the data item. For example, the + CaSSIS camera boresight direction in the TGO_CASSIS frame is + specified by: + + INS-143400_BORESIGHT + + + The upper bound on the length of the name of any data item is 32 + characters. + + If the same item is included in more than one file, or if the same + item appears more than once within a single file, the latest value + supersedes any earlier values. + + +Instrument Description +---------------------------------------------------------------------------- + + CaSSIS (Colour and Stereo Surface Imaging System) is a high resolution + imaging system designed to complement the data acquired by the other + payload on the ExoMars-2016 TGO. The instrument comprises a number of + sub-elements (see [5]): + + Telescope: + ---------- + + The CaSSIS telescope was originally conceived as a three-mirror + anastigmat system (off-axis) with a fold mirror. The absence of a + central obscuration reduces the straylight by allowing simplified + baffling. The primary mirror is around 13.5 cm in diameter. The + mirrors are held in a carbon fiber reinforced polymer (CFRP) + structure. The focal plane will comprise a single silicon hybrid + detector with 4 colour filters mounted on it following the push-frame + technique. + + Focal Plane System: + ------------------- + + The system is based upon a Raytheon Osprey 2048x2048 hybrid CMOS + detector. The detector can be read-out extremely quickly with 14 + bit digital resolution. However, it remains a framing device + meaning that acquiring an un-smeared image along a rapidly moving + ground-track requires short exposures and a rapid imaging sequence. + The along-track dimension of the image is then built up and put + together on ground. + + To avoid mechanisms the detector is covered with a single monolithic + rad-hard fused silica substrate with filters deposited on it. + Different coatings with different transmission properties cover the + substrate to produce the CaSSIS Filter Strip Assembly (FSA). The + transmissions are relatively broad because of signal to noise + considerations. Between the filters are small dark bands needed + to reduce spectral cross-talk. + + Rotation mechanism: + ------------------- + + The telescope and focal plane are mounted on a rotation mechanism. This + solves two key problems. Firstly, the rotation of the spacecraft about + the nadir direction can be compensated for. Prior to image acquisition, + the imager can be rotated so that the lines are orthogonal to the + direction of motion. (In case of rotation mechanism failure, the + system would be able to acquire data but at reduced resolution and lower + signal to noise) Secondly, the rotation mechanism can be swiveled by + ~180 degrees to acquire a stereo image. Hence, the imager has been + designed to look 10 degrees ahead of the spacecraft for the first image + and 10 degrees behind to acquire the stereo pair. The time necessary to + complete the rotation drives the design of the rotation mechanism. + + The rotation mechanism consists of a hollow shaft supported by two + ceramic bearings and driven by a worm gear, whereby the worm wheel is + integral part of the hollow shaft. The reduction ratio is ca. 200:1. + + High-strength titanium alloys are used for the gear component, which + are hard coated to provide durability. The housing is made of AlBeMet. + A stepper motor (modified Port Escap P430) is connected to the worm + shaft via a bellow coupling. End switches are used for zeroing; backlash + is compensated by software and is calibrated in-flight. + + A cable management system (the twist capsule) has been implemented to + support cables which go from the rotating part of the instrument to + fixed electronics box. + + + The following table provides the CaSSIS camera main parameters: + + -------------------------------------------------- + Parameter Value + --------------------------------- --------------- + Focal length, mm 874.9 + + Aperture diameter, mm 135.0 + + Nominal F# 6.48 + + Pixel size, microns 10.00x10.00 + + FoV, degrees + Full 1.341x1.341 + Used 1.339x0.845 + + IFOV, micro-radians 114.31x114.31 + + Time between stereo images, s 46.91 + + Bits/px 14 + + Detector size, px 2048x2048 + + Image size, px 2048x256 + + #images/exposure 4 + + Filter center wavelength/bw, nm + PAN 675/250 + Blue-Green 485/165 + Red 840/100 + IR 985/220 + ------------------------------------------------- + + +Mounting Alignment +---------------------------------------------------------------------------- + + Refer to the latest version of the ExoMars-2016 Frames Definition + Kernel (FK) [4] for the CaSSIS reference frame definitions and mounting + alignment information. + + +CaSSIS Camera and Filters Apparent Field-of-View Layouts +---------------------------------------------------------------------------- + + This diagram illustrates the CaSSIS Camera and Filters apparent FOV + layouts in the CaSSIS Filter Strip Assembly (TGO_CASSIS_FSA) reference + frame. + + + (1,1) (1,2048) + .-------------------------------------. ------------ + | | ^ + :=====================================: 354 | + : PAN Filter : | + :=====================================: 633 | + | | | + :=====================================: 712 | + : RED Filter : | + :=====================================: 967 | + <--------------------------o | 1.3330 deg + +Xfsa :==================|==================:1048 | + : NIR Filter : | + :==================|==================:1303 | + | | | | + :==================|==================:1389 | + : BLU Filter : | + :==================|==================:1644 | + | | | v + '------------------|------------------' ------------ + (2048,1) v (2048,2048) + +Yfsa + | | + |<----------------------------------->| + | 1.341 deg | + + + The Filters FoV angles are as follows: + + ------------------------------------------------------------------------ + Filter Size (Px) Bsight offset,px(deg) FoV dim (x,y) + -------- ----------- ------------------------ -------------------- + PAN 2048x280 -530px (-0.347073 deg) 1.3413 x 0.1834 deg + RED 2048x256 -184px (-0.120493 deg) 1.3413 x 0.1677 deg + NIR 2048x256 +152px (+0.099538 deg) 1.3413 x 0.1677 deg + BLU 2048x256 +493px (+0.322843 deg) 1.3413 x 0.1677 deg + ------------------------------------------------------------------------ + + +FOV Definition +--------------------------------------------------------------------------- + + This section contains assignments defining the CaSSIS camera and its + filters FOVs. These definitions are based on the camera parameters + provided in the previous sections and are provided in a format + consistent with/required by the SPICE TOOLKIT function GETFOV. + + + CaSSIS Full (TGO_CASSIS) FoV: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + The CaSSIS FOV is defined as a square pyramid with a full angle of + 1.340 degrees. It is defined with respect to the TGO_CASSIS_FSA + frame. The boresight and the cross-reference vectors are unit along + the +Z axis and the +X axis of the frame, respectively. + + Please note that the FOV reference and cross angles are defined with half + angle values. The FoV definition corresponds to the NAIF Body Name: + TGO_CASSIS. + + \begindata + + INS-143400_NAME = 'TGO_CASSIS' + INS-143400_BORESIGHT = ( + 0.000000 0.000000 1.000000 + ) + INS-143400_FOV_FRAME = 'TGO_CASSIS_FSA' + INS-143400_FOV_SHAPE = 'RECTANGLE' + INS-143400_FOV_CLASS_SPEC = 'ANGLES' + INS-143400_FOV_REF_VECTOR = ( + 1.000000 0.000000 0.000000 + ) + INS-143400_FOV_REF_ANGLE = ( 0.670570 ) + INS-143400_FOV_CROSS_ANGLE = ( 0.670570 ) + INS-143400_FOV_ANGLE_UNITS = 'DEGREES' + + \begintext + + + CaSSIS Filters' (TGO_CASSIS_*) FoVs: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + The CaSSIS Filters (PAN, RED, NIR, BLU) FOVs are defined as rectangular + pyramids with respect to the TGO_CASSIS_FSA frame. The full-angle along + the cross-reference vector is the same for all filters and corresponds + to the full CaSSIS Field-of-View in that direction, 1.333000 degrees. + On the +Y direction, the Field-of-View is defined by the filter's + size in pixels. See the ``CaSSIS Camera and Filters Apparent Field-of-View + Layouts'' for further information. + + The boresight of each filter is defined by the direction of the center + pixel of the given filter. Based on the offset in pixels (given in + the ``CaSSIS Camera and Filters Apparent Field-of-View Layouts'' section), + the required rotation angle, along the +X TGO_CASSIS_FSA axis is + computed, from which the filter's boresight is obtained: + + Filter NAIF ID Angle, deg Bsight (x,y,z) in TGO_CASSIS_FSA + -------- ------- ------------ ---------------------------------- + PAN -143421 -0.347073 ( 0.00000, -0.00606, 1 ) + RED -143422 -0.120493 ( 0.00000, -0.00210, 1 ) + NIR -143423 +0.099538 ( 0.00000, 0.00174, 1 ) + BLU -143424 +0.322843 ( 0.00000, 0.00563, 1 ) + + + Please note that the FoV reference and cross angles are defined with half + angle values. The FoV definitions correspond to the NAIF Body Names: + TGO_CASSIS_PAN, TGO_CASSIS_RED, TGO_CASSIS_NIR and TGO_CASSIS_BLU. + + \begindata + + INS-143421_NAME = 'TGO_CASSIS_PAN' + INS-143421_BORESIGHT = ( + 0.0000000000 -0.0060578352 1.0000000000 + ) + INS-143421_FOV_FRAME = 'TGO_CASSIS_FSA' + INS-143421_FOV_SHAPE = 'RECTANGLE' + INS-143421_FOV_CLASS_SPEC = 'ANGLES' + INS-143421_FOV_REF_VECTOR = ( + 1.0000000000 0.0000000000 0.0000000000 + ) + INS-143421_FOV_REF_ANGLE = ( 0.6705703437 ) + INS-143421_FOV_CROSS_ANGLE = ( 0.0916795392 ) + INS-143421_FOV_ANGLE_UNITS = 'DEGREES' + + + INS-143422_NAME = 'TGO_CASSIS_RED' + INS-143422_BORESIGHT = ( + 0.0000000000 -0.0021030975 1.0000000000 + ) + INS-143422_FOV_FRAME = 'TGO_CASSIS_FSA' + INS-143422_FOV_SHAPE = 'RECTANGLE' + + INS-143422_FOV_CLASS_SPEC = 'ANGLES' + INS-143422_FOV_REF_VECTOR = ( + 1.0000000000 0.0000000000 0.0000000000 + ) + INS-143422_FOV_REF_ANGLE = ( 0.6705703437 ) + INS-143422_FOV_CROSS_ANGLE = ( 0.0838212930 ) + INS-143422_FOV_ANGLE_UNITS = 'DEGREES' + + + INS-143423_NAME = 'TGO_CASSIS_NIR' + INS-143423_BORESIGHT = ( + 0.0000000000 0.0017373414 1.0000000000 + ) + INS-143423_FOV_FRAME = 'TGO_CASSIS_FSA' + INS-143423_FOV_SHAPE = 'RECTANGLE' + INS-143423_FOV_CLASS_SPEC = 'ANGLES' + INS-143423_FOV_REF_VECTOR = ( + 1.000000 0.000000 0.000000 + ) + INS-143423_FOV_REF_ANGLE = ( 0.6705703437 ) + INS-143423_FOV_CROSS_ANGLE = ( 0.0838212930 ) + INS-143423_FOV_ANGLE_UNITS = 'DEGREES' + + + INS-143424_NAME = 'TGO_CASSIS_BLU' + INS-143424_BORESIGHT = ( + 0.0000000000 0.0056349297 1.0000000000 + ) + INS-143424_FOV_FRAME = 'TGO_CASSIS_FSA' + INS-143424_FOV_SHAPE = 'RECTANGLE' + INS-143424_FOV_CLASS_SPEC = 'ANGLES' + INS-143424_FOV_REF_VECTOR = ( + 1.0000000000 0.0000000000 0.0000000000 + ) + INS-143424_FOV_REF_ANGLE = ( 0.6705703437 ) + INS-143424_FOV_CROSS_ANGLE = ( 0.0838212930 ) + INS-143424_FOV_ANGLE_UNITS = 'DEGREES' + + \begintext + + +Optical Distortion +-------------------------------------------------------- + + From [7] and [8]: + + Given ideal image coordinates (x, y) and parameters of rational distortion + model A1, A2, A3 returns distorted image coordinates (i, j). + + + Correcting distorted coordinates: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Converting from distorted (i,j) to ideal (x,y). + + Rational correction model provided by Stepan Tulyakov and Anoton Ivanov, + EPFL (Ecole Polytechnique Federale de Lausanne). + + Model is described by following equations: + + chi = [ i*i i*j, j*j, i, j, 1] + + A1_corr * chi' + x = ---------------------- + A3_corr * chi' + + A2_corr * chi' + y = ---------------------- + A3_corr * chi' + + where (i, j) are distorted focal plane coordinates in millimeters, + (x, y) are ideal focal plane coordinates in millimeters, and + A1_corr, A2_corr, A3_corr are 1x6 vectors, parameters of the + \rational correction model. + + \begindata + + INS-143400_OD_A1_CORR = ( 0.00544124551618559, + 0.00242058700718023, + -2.48577907043558e-05, + 0.999359573639265, + -0.000130945991526083, + 0.00161016464782889 ) + INS-143400_OD_A2_CORR = ( 9.8077090575503e-05, + 0.00543196976741689, + 0.00248552506455258, + -0.000360689689268798, + 0.997230456361333, + -0.01765423906529 ) + INS-143400_OD_A3_CORR = ( -2.66362211929368e-05, + -4.18111444381442e-06, + -2.60434019407289e-05, + 0.00542860345347002, + 0.00164668822925175, + 1 ) + + + \begintext + + + From this equation it follows that for every distorted coordinates + (i, j), there is a unique pair of undistorted coordinates (x, y). + However, converse is not true. To find distorted coordinates from ideal + coordinates we need to solve system of equations, that potentially has + several solutions. + + + Distorting ideal coordinates: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Converting from ideal (x,y) to distorted (i,j). + + Rational correction model provided by Stepan Tulyakov and Anoton Ivanov, + EPFL (Ecole Polytechnique Federale de Lausanne). + + Model is described by following equations: + + chi = [ x*x, x*y, y*y, x, y, 1] + + A1_dist * chi' + i = ---------------------- + A3_dist * chi' + + A2_dist * chi' + j = ---------------------- + A3_dist * chi' + + where (i, j) are distorted focal plane coordinates in millimeters, + (x, y) are ideal focal plane coordinates in millimeters, and + A1_dist, A2_dist, A3_dist are 1x6 vectors, parameters of the rational + distortion model, derived by Stepan Tulyakov and Anoton Ivanov, EPFL + (Ecole Polytechnique Federale de Lausanne). + + \begindata + + INS-143400_OD_A1_DIST = ( 0.0030962215897376, + 0.00193659543570966, + 1.43799661742481e-05, + 0.575732495892843, + 7.45445812599102e-05, + -0.000924338558685123 ) + INS-143400_OD_A2_DIST = ( -5.61600987759384e-05, + 0.0031016957502374, + 0.00190053792058327, + 0.000208146838499972, + 0.576977522640326, + 0.010177651661487) + INS-143400_OD_A3_DIST = ( 1.52240896709669e-05, + 2.40452524963973e-06, + 1.5382711014407e-05, + 0.00310362726634607, + 0.00238330278037335, + 0.575374652906421 ) + + \begintext + + +Platform ID +--------------------------------------------------------------------------- + + This number is the NAIF instrument ID of the platform on which the + instrument mounted. For all CaSSIS components it is the spacecraft. + + \begindata + + INS-143421_PLATFORM_ID = ( -143000 ) + INS-143422_PLATFORM_ID = ( -143000 ) + INS-143423_PLATFORM_ID = ( -143000 ) + INS-143424_PLATFORM_ID = ( -143000 ) + + \begintext + + +End of IK file. \ No newline at end of file diff --git a/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/em16_tgo_ops_v02.tf b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/em16_tgo_ops_v02.tf new file mode 100644 index 0000000..939f020 --- /dev/null +++ b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/em16_tgo_ops_v02.tf @@ -0,0 +1,258 @@ +KPL/FK + +Frame (FK) SPICE kernel file for TGO science operations frames +=============================================================================== + + This frames kernel defines a number of frames used by the TGO + science operations centre to perform mission analysis and attitude + dependent science opportunity identification. + + These frames can be used stand-alone, i.e. referring directly to them and + assuming they correspond to the TGO spacecraft reference frame, or + in combination with the TGO spacecraft frames. The latter will allow the + user to use the existing alignments and instrument frame definitions to + perform instrument specific mission analysis and attitude dependent + science opportunity identification. Please refer to the section ``Using + these frames'' for further details. + + +Version and Date +------------------------------------------------------------------------------- + + Version 0.2 -- August 2, 2016 -- Marc Costa Sitja, ESAC/ESA + + Removed ``TGO Mars Nadir orbit-aligned pointing'' frame definition for + there is no use case in ExoMars 2016 for it. + Corrected minor typos. + + Version 0.1 -- June 6, 2016 -- Jorge Diaz del Rio, ODC Space + + Update comments to reflect new file naming conventions for ExoMars 2016 + frame kernels. + + Version 0.0 -- May 22, 2016 -- Jorge Diaz del Rio, ODC Space + + Initial version. + + +References +------------------------------------------------------------------------------- + + [1] "Frames Required Reading" + + [2] "Kernel Pool Required Reading" + + [3] ``Science Operations Centre - Flight Dynamics - Pointing + Timeline-ICD'' EXM-GS-ICD-ESC-50003 Issue 1.4, 15-12-2015 + + +Contact Information +------------------------------------------------------------------------------- + + If you have any questions regarding this file contact SPICE support at + ESAC: + + Marc Costa Sitja + (+34) 91-8131-457 + mcosta@sciops.esa.int, esa_spice@sciops.esa.int + + or SPICE support at IKI: + + Anton Ledkov + +7 (495) 333-12-66 + aledkov@rssi.ru + + or NAIF at JPL: + + Boris Semenov + (818) 354-8136 + Boris.Semenov@jpl.nasa.gov + + +Implementation Notes +------------------------------------------------------------------------------- + + This file is used by the SPICE system as follows: programs that make + use of this frame kernel must "load" the kernel normally during + program initialization. Loading the kernel associates the data items + with their names in a data structure called the "kernel pool". The + routine that loads a kernel into the pool is shown below: + + FORTRAN: (SPICELIB) + + CALL FURNSH ( frame_kernel_name ) + + C: (CSPICE) + + furnsh_c ( frame_kernel_name ); + + IDL: (ICY) + + cspice_furnsh, frame_kernel_name + + MATLAB: (MICE) + + cspice_furnsh ( 'frame_kernel_name' ) + + This file was created and may be updated with a text editor or word + processor. + + +TGO Science Operations frame names and NAIF ID Codes +------------------------------------------------------------------------------- + + The following frame is defined in this kernel file: + + SPICE Frame Name Long-name + ------------------------ --------------------------------------------- + TGO_MARS_NPO TGO Mars Nadir power-optimized pointing + + + These frame has the following centers, frame class and NAIF + ID: + + SPICE Frame Name Center Class NAIF ID + ------------------------ --------------------- ------- --------- + TGO_MARS_NPO TGO DYNAMIC -143910 + + + The keywords implementing that frame definitions is located in the + "TGO Science Operations Frame Definitions" section. + + +General Notes About This File +------------------------------------------------------------------------------- + + About Required Data: + -------------------- + All the dynamic frames defined in this file require at least one + of the following kernel types to be loaded prior to their evaluation, + normally during program initialization: + + - Planetary and Satellite ephemeris data (SPK), i.e. de432, de405, etc; + - Spacecraft ephemeris data (SPK); + + Note that loading different kernels will lead to different + orientations of the same frame at a given epoch, providing different + results from each other, in terms of state vectors referred to these + frames. + + + Using these frames + ------------------ + These frames have been implemented to define the different pointing + profiles for the TGO spacecraft. These pointing profiles can be + used in two different ways: + + [1] ``As is'' for analysis of offsets between the spacecraft + attitude defined in the corresponding CK and a given pointing + profile. Loading this kernel in combination with any TGO CK + will allow the user to perform this comparison between the + TGO_SPACECRAFT frame and any of the different frames defined + within this kernel. + + [2] In combination with the TGO Frames kernel, to define + a default pointing profile for the whole duration of the mission + together with the spacecraft and instrument frames defined in the + TGO FK. In this way, instrument-specific mission analysis + activities, for which a particular pointing profile and knowledge + of the instruments is required, can be conducted without the need + for a spacecraft CK. + + In order to define such default pointing profile, the latest + TGO frames kernel and this file shall be loaded before the + selected ``TGO spacecraft frame overwrite'' frame kernel. As + an example, imagine that the desired default pointing profile is + "Nadir power optimized with respect to Mars", then the furnish + (metakernel) file should contain the following sequence of frames + kernels, in the following order: + + ... + + $DATA/fk/em16_tgo_v00.tf + $DATA/fk/em16_tgo_ops_v00.tf + $DATA/fk/em16_tgo_sc_mars_npo_v01.tf + + ... + + (*) the example presents version 0.0 of the ExoMars-2016 frames + and TGO Science Operations frames kernels. Newer versions of + these files will produce the same results. + + By loading the ``em16_tgo_sc_mars_npo_vNN.tf'' frames kernel last, + the spacecraft frame TGO_SPACECRAFT, which is defined as a CK-based + frame in the ``TGO frames kernel'', will be overwritten as a + type-4 fixed offset frame, mapping the TGO_SPACECRAFT frame to + the TGO_MARS_NPO frame defined in the ``TGO Science + Operations Frames Kernel'' (this) file. + + +TGO Science Operations Frame Definitions +------------------------------------------------------------------------------- + + This section contains the definition of the TGO science operations + frames. + + +TGO Mars Nadir power-optimized pointing frame (TGO_MARS_NPO) +------------------------------------------------------------------------ + + Definition: + ----------- + The TGO Mars Nadir power-optimized pointing frame is defined as follows + (from [3]): + + - -Y axis is the primary vector and points from TGO to the + center of Mars (Nadir direction); + + - -X axis is the secondary vector and is the orthogonal component + to the -Y axis of the Sun position relative to TGO; + + - +Z axis completes the right-handed system; + + - the original of this frame is the spacecraft's center of mass. + + All vectors are geometric: no corrections are used. + + + Required Data: + -------------- + This frame is defined as a two-vector frame. + + Both the primary and the secondary vector are defined as an + 'observer-target position' vectors, therefore, the ephemeris data + required to compute both the TGO-Mars position and the TGO-Sun + position in J2000 frame have to be loaded before using this frame. + + + Remarks: + -------- + Since the primary and secondary vectors of this frame are defined + based on the TGO-Mars position and TGO-Sun position vectors, the usage + of different ephemerides to compute these vectors may lead to different + frame orientation at given time. + + \begindata + + FRAME_TGO_MARS_NPO = -143910 + FRAME_-143910_NAME = 'TGO_MARS_NPO' + FRAME_-143910_CLASS = 5 + FRAME_-143910_CLASS_ID = -143910 + FRAME_-143910_CENTER = -143 + FRAME_-143910_RELATIVE = 'J2000' + FRAME_-143910_DEF_STYLE = 'PARAMETERIZED' + FRAME_-143910_FAMILY = 'TWO-VECTOR' + FRAME_-143910_PRI_AXIS = '-Y' + FRAME_-143910_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' + FRAME_-143910_PRI_OBSERVER = 'TGO' + FRAME_-143910_PRI_TARGET = 'MARS' + FRAME_-143910_PRI_ABCORR = 'NONE' + FRAME_-143910_SEC_AXIS = '-X' + FRAME_-143910_SEC_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' + FRAME_-143910_SEC_OBSERVER = 'TGO' + FRAME_-143910_SEC_TARGET = 'SUN' + FRAME_-143910_SEC_ABCORR = 'NONE' + FRAME_-143910_SEC_FRAME = 'J2000' + + \begintext + diff --git a/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/em16_tgo_sc_spm_20161101_20170301_s20190703_v01_sliced-143000.xc b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/em16_tgo_sc_spm_20161101_20170301_s20190703_v01_sliced-143000.xc new file mode 100644 index 0000000..bde9a4f --- /dev/null +++ b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/em16_tgo_sc_spm_20161101_20170301_s20190703_v01_sliced-143000.xc @@ -0,0 +1,2845 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'TGO CK; MEASURED; OBTAINED FROM TELEMETRY ' +BEGIN_ARRAY 1 2822 +'TGO MEASURED ATTITUDE ' +'1542E6D0527^B' +'15433F65E21^B' +'-22E98' +'1' +'3' +'1' +1024 +'4FAEF4DC8A0F34^0' +'-D68C9AD74A0F5^0' +'6FB81C93BB4104^0' +'-19F625947FF1AA^0' +'162CF208B9BBF6^-5' +'-46D9B98810BE74^-5' +'E0ED7769D42^-8' +'4FAEF10000000C^0' +'-D68C9AFFFFFFF^0' +'6FB81D8000000C^0' +'-19F62A80000004^0' +'1BFFC59251F4FD^-5' +'-327E90A96E3A38^-5' +'-160A7F147FCB3E^-5' +'4FAEEB8000001C^0' +'-D68C99FFFFFFE^0' +'6FB821FFFFFFE4^0' +'-19F62D60000016^0' +'-2A3AD15176238C^-5' +'-5B53A1C36CCF8C^-5' +'52BCE2D8257508^-5' +'4FAEE9FFFFFFE^0' +'-D68C9C^0' +'6FB81C7FFFFFFC^0' +'-19F63C80000007^0' +'-440284BDCD0BE8^-5' +'-1888C97EADAA25^-4' +'642AA54C85DC1C^-5' +'4FAEDA7FFFFFE^0' +'-D68C99FFFFFFE^0' +'6FB8207FFFFFF^0' +'-19F66D40000015^0' +'74588764203048^-5' +'-13613C53C2D236^-6' +'-643C16A6A3FFF8^-5' +'4FAECF80000008^0' +'-D68C990000002^0' +'6FB82C80000024^0' +'-19F6631FFFFFE6^0' +'-324568DF824402^-5' +'-97E3CF2D945EA^-5' +'498B3959E2F54C^-5' +'4FAECB8000001^0' +'-D68C990000002^0' +'6FB82A0000002^0' +'-19F6789FFFFFFD^0' +'-626D6B9C84376C^-5' +'460A4D363E4E9C^-5' +'-6DD8276B837E74^-5' +'4FAEDB0000000C^0' +'-D68C9000000018^0' +'6FB8317FFFFFE4^0' +'-19F6725FFFFFF3^0' +'-9289530F91EB18^-5' +'D2DBA00D30D1B^-5' +'1654E770F264BC^-5' +'4FAEF57FFFFFE4^0' +'-D68C8DFFFFFFF8^0' +'6FB82500000014^0' +'-19F66520000007^0' +'-C0DA92EEF76048^-5' +'D9EC0EEEE37828^-5' +'16663F2101C4D4^-5' +'4FAF157FFFFFF4^0' +'-D68C8B00000018^0' +'6FB8180000001C^0' +'-19F659C000001D^0' +'-66E059D2D779F^-5' +'975C9B9751D728^-5' +'-A038F0C00D829^-5' +'4FAF2A7FFFFFE^0' +'-D68C7FFFFFFFE8^0' +'6FB8218^0' +'-19F6494000000E^0' +'B518FB142E3B^-5' +'-E24D094EBC662^-5' +'-47E6434A8CC8F4^-5' +'4FAF0C0000000C^0' +'-D68C7FFFFFFFE8^0' +'6FB833FFFFFFEC^0' +'-19F6543FFFFFE8^0' +'8545663EC98C3^-5' +'-11A75E9FB0BEA3^-5' +'-48BD819742DE68^-5' +'4FAEFE00000004^0' +'-D68C81^0' +'6FB83DFFFFFFFC^0' +'-19F64C00000005^0' +'95FBBDBEFBDBE8^-5' +'-515C0789DF2658^-5' +'235F1100EDDF6C^-5' +'4FAEE97FFFFFFC^0' +'-D68C8800000028^0' +'6FB83F7FFFFFF^0' +'-19F64DBFFFFFEB^0' +'3587286709AD8A^-5' +'-428F0D29962774^-5' +'4188564A35B02C^-5' +'4FAEDF7FFFFFEC^0' +'-D68C8CFFFFFFE8^0' +'6FB83C00000024^0' +'-19F65460000005^0' +'519B68793E4054^-5' +'92D2831651F018^-5' +'-CE617A5B9CBCF^-6' +'4FAEDF00000008^0' +'-D68C90FFFFFFE^0' +'6FB8388000000C^0' +'-19F6400000001C^0' +'35DAE3FFFBB964^-5' +'-B0914862220FE8^-5' +'-11F9C490DC125B^-5' +'4FAECFFFFFFFEC^0' +'-D68C9000000018^0' +'6FB841FFFFFFF4^0' +'-19F64EE0000019^0' +'3FB51827569A3C^-5' +'6C865E253B5E6C^-5' +'5FDABC670CC0E8^-5' +'4FAECE00000014^0' +'-D68C990000002^0' +'6FB83480000014^0' +'-19F643C0000022^0' +'A80EB34A06C6C^-6' +'-22FE002DE6816C^-5' +'-1A57AD4DA3AC6C^-5' +'4FAECB8000001^0' +'-D68C9800000008^0' +'6FB838FFFFFFF^0' +'-19F645E0000018^0' +'20360B609A694^-6' +'-830A731F2FFEE^-5' +'3093FCDE8E33EC^-5' +'4FAEC38000001C^0' +'-D68C990000002^0' +'6FB838FFFFFFF^0' +'-19F65560000016^0' +'5CCB747206DA5^-5' +'-2C809959330372^-5' +'-415358A8FDB5E^-5' +'4FAEB800000018^0' +'-D68C9800000008^0' +'6FB8428000002^0' +'-19F6525FFFFFE6^0' +'863B8A61123C28^-6' +'-8100C64C11489^-5' +'2BC385D05B09E6^-5' +'4FAEAF7FFFFFFC^0' +'-D68C990000002^0' +'6FB84300000004^0' +'-19F6612000000D^0' +'7CB07DCCA4450C^-5' +'-F78CE69A733AE8^-6' +'5230F2036A4244^-5' +'4FAEA07FFFFFE^0' +'-D68CA20000002^0' +'6FB83C80000004^0' +'-19F65F1FFFFFEE^0' +'8B430581CBB8B^-5' +'6359C42CC1D1D4^-5' +'-CC9D2A135D8D3^-6' +'4FAE8E80000024^0' +'-D68CAE00000008^0' +'6FB83B0000001^0' +'-19F63A2000001F^0' +'-3EBB383E446C76^-5' +'-3D8A1E307B1AAA^-5' +'-372E03D10F87F8^-5' +'4FAE928000001C^0' +'-D68CA7FFFFFFE8^0' +'6FB8428000002^0' +'-19F641E000001E^0' +'-DCFF074BAA796^-5' +'-36F7A3A93D9E^-5' +'69FF101D320728^-5' +'4FAEA57FFFFFE8^0' +'-D68CA5^0' +'6FB8370000001C^0' +'-19F657E000001A^0' +'-474957766B105C^-5' +'4320386E744E6^-5' +'-2DF0FDAA58E92^-5' +'4FAEB0FFFFFFF^0' +'-D68CA^0' +'6FB837FFFFFFE^0' +'-19F652E0000011^0' +'8C32EEB1282338^-6' +'22F2AA2BA6D314^-5' +'-A01EE455B0651^-5' +'4FAEB40000002^0' +'-D68C9800000008^0' +'6FB8477FFFFFE^0' +'-19F6487FFFFFF^0' +'-CC57C865AC756^-6' +'-292A0F632B237^-5' +'-88A36929684E88^-5' +'4FAEB4FFFFFFE4^0' +'-D68C9000000018^0' +'6FB8578000000C^0' +'-19F6483FFFFFFE^0' +'41CA6A6B140B68^-5' +'992986315A3F3^-5' +'-2C835EE13FE2AE^-5' +'4FAEB700000008^0' +'-D68C91FFFFFFF8^0' +'6FB856FFFFFFE^0' +'-19F632E0000004^0' +'531895106F6298^-5' +'51FC81C6920568^-5' +'-6C27D38997E964^-5' +'4FAEB40000002^0' +'-D68C9000000018^0' +'6FB85FFFFFFFE^0' +'-19F62180000001^0' +'-39B5F10FFAF71^-5' +'8E99063DCA2EC8^-5' +'-6379BF393AF314^-7' +'4FAEC1FFFFFFE^0' +'-D68C9000000018^0' +'6FB85A0000000C^0' +'-19F615C0000009^0' +'-5B3CF93E492A14^-6' +'-1163E6776FDC3F^-5' +'-72F8E136D0FD6C^-5' +'4FAEC2FFFFFFF^0' +'-D68C88FFFFFFE8^0' +'6FB86680000028^0' +'-19F61360000022^0' +'4796936100326^-5' +'-172287078D4DFF^-6' +'-567F5D50DDDFC8^-5' +'4FAEBC7FFFFFF4^0' +'-D68C8700000018^0' +'6FB8707FFFFFF^0' +'-19F60C40000025^0' +'-4EA42C738CECDC^-7' +'-AA74D63911C1B8^-5' +'-37265875175822^-5' +'4FAEB40000002^0' +'-D68C8200000008^0' +'6FB87D00000004^0' +'-19F61C00000015^0' +'-FFDCC8D68D8EF^-6' +'-7CC6AB6275A968^-5' +'240AD899E8B6B4^-5' +'4FAEAE7FFFFFEC^0' +'-D68C8200000008^0' +'6FB87E00000014^0' +'-19F62B5FFFFFF7^0' +'6A5967CFD072A^-5' +'-59BB4535C888F^-5' +'3F16E55CF79E58^-5' +'4FAE9D7FFFFFF8^0' +'-D68C8800000028^0' +'6FB87BFFFFFFF4^0' +'-19F6316000001^0' +'3074E715D73BDE^-5' +'46C837735F2E94^-5' +'-29CFCC7506EA8E^-5' +'4FAE9D00000014^0' +'-D68C88FFFFFFE8^0' +'6FB87E7FFFFFFC^0' +'-19F625BFFFFFEC^0' +'-92300D06F3ABF8^-6' +'13036098F8261E^-5' +'-3B2A633E5B56BC^-5' +'4FAE9F80000018^0' +'-D68C84FFFFFFF8^0' +'6FB8838^0' +'-19F621E0000011^0' +'-1E145BEF830253^-5' +'-3C2808FD5DD322^-5' +'-5B75AB0C3E020C^-5' +'4FAEA07FFFFFE^0' +'-D68C7E00000018^0' +'6FB88F0000000C^0' +'-19F62640000019^0' +'-3149146803D968^-5' +'8842B54829A1D8^-5' +'-1562EDFEE05AB^-5' +'4FAEAD80000024^0' +'-D68C7D00000008^0' +'6FB88B7FFFFFF4^0' +'-19F619E000001F^0' +'-1192A9F5A95BAC^-5' +'B37DFEDF510CF^-6' +'4AD29B9D01D6AC^-6' +'4FAEAFFFFFFFDC^0' +'-D68C7D00000008^0' +'6FB88A7FFFFFE4^0' +'-19F619E000001F^0' +'78C95E25A85448^-6' +'-55B7D376E0D71C^-5' +'-1546EC88129928^-6' +'4FAEAA7FFFFFF^0' +'-D68C7BFFFFFFF8^0' +'6FB88DFFFFFFFC^0' +'-19F6225FFFFFF6^0' +'1C2E869A584157^-5' +'-8202EF3620386^-5' +'-376B61CDE347F2^-5' +'4FAEA10000000C^0' +'-D68C78^0' +'6FB8990000001C^0' +'-19F62C3FFFFFEA^0' +'6123D9DA6FE69C^-5' +'-3630CC12F4C2E4^-5' +'4665B08AAD0358^-5' +'4FAE93^0' +'-D68C7F00000028^0' +'6FB8950000002^0' +'-19F62F5FFFFFEF^0' +'2D01AB72F1D^-6' +'-9A3FD508E171B8^-7' +'1AA3CFADCC9B83^-5' +'4FAE928000001C^0' +'-D68C81^0' +'6FB8928000001C^0' +'-19F6305FFFFFFF^0' +'402B6CE7BFC46C^-5' +'-9232ACC4295F7^-6' +'A6631C3436A^-5' +'4FAE88FFFFFFF^0' +'-D68C8C0000002^0' +'6FB8820000001^0' +'-19F63440000023^0' +'61AA3739847914^-5' +'-B5FF3126D6119^-5' +'4C5751C33B3414^-5' +'4FAE7400000004^0' +'-D68C91FFFFFFF8^0' +'6FB8827FFFFFF^0' +'-19F64500000023^0' +'27D6D67D370D4A^-5' +'-44B8D891569968^-5' +'-6B38B95EEA39E4^-5' +'4FAE6D80000008^0' +'-D68C8CFFFFFFE8^0' +'6FB890FFFFFFE^0' +'-19F645E0000018^0' +'-2DDEA2C77B7D72^-5' +'92BBA41B08B748^-5' +'-5D5DE1D63AF3C4^-5' +'4FAE7B80000014^0' +'-D68C8800000028^0' +'6FB8947FFFFFF4^0' +'-19F63560000008^0' +'-2EFD54B71B5E66^-5' +'58A927279125BC^-6' +'-21A1F55C5EB1D2^-5' +'4FAE80FFFFFFFC^0' +'-D68C83FFFFFFE8^0' +'6FB896FFFFFFFC^0' +'-19F63600000009^0' +'24C577C7298E4E^-5' +'3249B87D2B6B58^-5' +'-29CEB7EA4BEE46^-5' +'4FAE808000001C^0' +'-D68C83FFFFFFE8^0' +'6FB899FFFFFFE^0' +'-19F62D1FFFFFDD^0' +'7363E01C208508^-5' +'-734A77D500213C^-5' +'EAD65E048878B^-6' +'4FAE6DFFFFFFEC^0' +'-D68C8800000028^0' +'6FB89E80000004^0' +'-19F63380000005^0' +'1A5AA805D6BEA1^-5' +'-336A8FC6292DFC^-5' +'45422702CDF12^-5' +'4FAE677FFFFFEC^0' +'-D68C8C0000002^0' +'6FB8998^0' +'-19F63A2000001F^0' +'1558D8B964E135^-5' +'6224BDFFC20A0C^-5' +'-6E78A98510C34C^-5' +'4FAE6C00000014^0' +'-D68C8800000028^0' +'6FB8A17FFFFFF^0' +'-19F62A5FFFFFE6^0' +'592FAA4499851C^-5' +'-1CD4164463B5DC^-5' +'-3ECFC2391A17A4^-5' +'4FAE62^0' +'-D68C8800000028^0' +'6FB8AA7FFFFFF^0' +'-19F6261FFFFFFC^0' +'28595B3138897E^-5' +'-5C2AD20A462CA^-5' +'2EA934F461D11A^-6' +'4FAE588000001C^0' +'-D68C8800000028^0' +'6FB8AE00000004^0' +'-19F62DA0000009^0' +'1330CB72CC6DD6^-5' +'16BE41AD19DA1^-5' +'1D261DDE747BA5^-5' +'4FAE578000000C^0' +'-D68C8B00000018^0' +'6FB8AA7FFFFFF^0' +'-19F62B5FFFFFF7^0' +'-5B6BC9E3570414^-5' +'4307BBDBA0653C^-6' +'65B5270782CB8^-5' +'4FAE5FFFFFFFE^0' +'-D68C8CFFFFFFE8^0' +'6FB89E80000004^0' +'-19F633E0000014^0' +'-5A11FFB67BD9B^-5' +'7D41247179A028^-5' +'127D6587A922AA^-5' +'4FAE7000000008^0' +'-D68C8C0000002^0' +'6FB89680000014^0' +'-19F62C60000007^0' +'-51923F24918F28^-5' +'AAB9854BA5A6B8^-6' +'-1626EAD926F50A^-5' +'4FAE797FFFFFF^0' +'-D68C8800000028^0' +'6FB8977FFFFFE^0' +'-19F62EE000000A^0' +'-1DEABC9C7289DB^-5' +'-B241EEEE20CB7^-5' +'36F4BA241138B6^-5' +'4FAE71FFFFFFE4^0' +'-D68C8700000018^0' +'6FB8980000000C^0' +'-19F64540000016^0' +'-1413CCBC0FBCC^-5' +'-516E11F1028C^-5' +'3F1315E3D9E236^-5' +'4FAE6EFFFFFFFC^0' +'-D68C88FFFFFFE8^0' +'6FB8947FFFFFF4^0' +'-19F6516000001D^0' +'1206A68BE3BD17^-5' +'C19BA6724A867^-6' +'-1BD8720DD11CAE^-5' +'4FAE6DFFFFFFEC^0' +'-D68C8800000028^0' +'6FB896FFFFFFFC^0' +'-19F64DFFFFFFDE^0' +'-34D9991DCCF49E^-5' +'10AD6E42753DAB^-5' +'-749369F60424DC^-5' +'4FAE7600000024^0' +'-D68C7FFFFFFFE8^0' +'6FB8A20000001C^0' +'-19F64A9FFFFFE6^0' +'-10581333435F53^-5' +'38711DF6A88A0C^-5' +'-1283674EA314C1^-5' +'4FAE7AFFFFFFE4^0' +'-D68C7F00000028^0' +'6FB8A17FFFFFF^0' +'-19F644E0000007^0' +'29EE75FAC2A2C8^-5' +'D7AAD7C22A678^-6' +'6EA587542AC0B8^-5' +'4FAE7600000024^0' +'-D68C8700000018^0' +'6FB895FFFFFFEC^0' +'-19F64580000008^0' +'8436A807C5BBB8^-5' +'-48901510DDAD4C^-5' +'5A0235E9B93438^-5' +'4FAE630000001^0' +'-D68C9000000018^0' +'6FB890FFFFFFE^0' +'-19F6495FFFFFE3^0' +'-18D11A67A7507A^-5' +'36396501CC144^-6' +'-768F73643E58E8^-6' +'4FAE65FFFFFFFC^0' +'-D68C8F00000008^0' +'6FB8918000000C^0' +'-19F64A20000001^0' +'-2EBC6928EDE67^-5' +'-A37FFA7DDD3058^-5' +'63FE1F4FA71C1^-5' +'4FAE608000000C^0' +'-D68C9000000018^0' +'6FB88C80000004^0' +'-19F6619FFFFFF2^0' +'-47DB35C42478EC^-5' +'422FB0CD316BB4^-5' +'-16BF9119DCE0A3^-5' +'4FAE6C00000014^0' +'-D68C8CFFFFFFE8^0' +'6FB88B7FFFFFF4^0' +'-19F65DC0000016^0' +'-86FDEE2CB27A3^-5' +'91329593C4FC6^-5' +'2C45056B259C46^-5' +'4FAE817FFFFFE4^0' +'-D68C8C0000002^0' +'6FB87F8000000C^0' +'-19F6579FFFFFE1^0' +'-38DC32D2AFA9F4^-5' +'CB5108D5177FD8^-5' +'-4E214FE9EB617^-5' +'4FAE937FFFFFE4^0' +'-D68C8800000028^0' +'6FB87F00000024^0' +'-19F64260000003^0' +'598FCE7C39AC68^-6' +'1B2058477713EB^-5' +'-2407075F264462^-5' +'4FAE9500000024^0' +'-D68C8700000018^0' +'6FB8820000001^0' +'-19F63DDFFFFFDE^0' +'-6EF363B9AE1CB4^-5' +'77E765662F204C^-5' +'33B348C543487C^-5' +'4FAEA67FFFFFF8^0' +'-D68C8700000018^0' +'6FB8768000000C^0' +'-19F63960000001^0' +'-7418C0A63C0DC8^-5' +'B9DECFF67237D^-6' +'-18934B5E39E06E^-5' +'4FAEB37FFFFFF4^0' +'-D68C81^0' +'6FB876FFFFFFEC^0' +'-19F63D80000016^0' +'1B056BD8E22C0A^-5' +'-D9C3EBC9A4B59^-5' +'678A7AA518E598^-5' +'4FAEA38000001^0' +'-D68C84FFFFFFF8^0' +'6FB87500000014^0' +'-19F656E000000A^0' +'-262C249744A624^-5' +'-B7BFDBCF53D5D^-5' +'53E5D15623D698^-5' +'4FAE9C7FFFFFE4^0' +'-D68C860000001^0' +'6FB872FFFFFFF4^0' +'-19F66F7FFFFFDF^0' +'2DB27928B7CA8C^-5' +'-9D9012CDBC11A^-5' +'-53B8275CB1171^-6' +'4FAE8F00000008^0' +'-D68C84FFFFFFF8^0' +'6FB87A0000002^0' +'-19F67D3FFFFFF8^0' +'61AE6BC3631AF4^-5' +'7CB4D3C05DFCF8^-5' +'-115D1F93024BC2^-5' +'4FAE8C0000002^0' +'-D68C8A^0' +'6FB8787FFFFFE^0' +'-19F66A3FFFFFE4^0' +'A226409FD39B08^-5' +'-EF2A0E291BA368^-7' +'-3580E606579C44^-5' +'4FAE7B80000014^0' +'-D68C8CFFFFFFE8^0' +'6FB87FFFFFFFF^0' +'-19F65F5FFFFFDF^0' +'92B182983AFC78^-6' +'C7C896F62F0A28^-5' +'3F8D62EA1FE638^-5' +'4FAE8480000014^0' +'-D68C93^0' +'6FB8718^0' +'-19F64C60000014^0' +'-B3317FE75B6358^-6' +'3C3FDCF0E9359C^-5' +'-1F5F219495689C^-5' +'4FAE898000001C^0' +'-D68C91FFFFFFF8^0' +'6FB8728000001^0' +'-19F64580000008^0' +'-82FAA9BAAF1208^-5' +'24434B13F81C7^-5' +'-D38AF366721618^-6' +'4FAE997FFFFFFC^0' +'-D68C8CFFFFFFE8^0' +'6FB8710000001C^0' +'-19F6486000001C^0' +'-1DF8CB601B8DF6^-5' +'-74E2D5A1C909F8^-5' +'5AC61BCB0FEEEC^-5' +'4FAE9500000024^0' +'-D68C8F00000008^0' +'6FB86B7FFFFFE4^0' +'-19F659C000001D^0' +'308FAC59D5A26A^-5' +'-3FA6E511DB04EC^-5' +'9F77AC52703238^-5' +'4FAE8A7FFFFFE4^0' +'-D68C990000002^0' +'6FB85E0000000C^0' +'-19F66400000021^0' +'886AAD198E37D8^-5' +'-7DD2CA61912BC8^-5' +'6476281AF56128^-5' +'4FAE7400000004^0' +'-D68CA20000002^0' +'6FB85A0000000C^0' +'-19F66DA0000023^0' +'-39B7DE323B3F6E^-5' +'-14DD024136BC0E^-5' +'742BA5F69C386C^-5' +'4FAE7780000018^0' +'-D68CA600000018^0' +'6FB84E00000024^0' +'-19F67780000019^0' +'-D0FBA74C52804^-6' +'-170F347FE561AD^-5' +'C60F5E6F8EB59^-6' +'4FAE7780000018^0' +'-D68CA600000018^0' +'6FB84D7FFFFFF8^0' +'-19F67B20000003^0' +'-5D79063FC36E1C^-5' +'C4483DC57A3CE8^-6' +'136FCF290BA677^-5' +'4FAE817FFFFFE4^0' +'-D68CA2FFFFFFE^0' +'6FB8498^0' +'-19F67F9FFFFFDF^0' +'-281C4AEA06E356^-5' +'-30B8ACDFD35EB8^-5' +'-481CD26771D158^-5' +'4FAE83FFFFFFE4^0' +'-D68C9D0000001^0' +'6FB8528^0' +'-19F68420000004^0' +'3BFD67099E1E2E^-5' +'E3751C3E9CB5D8^-7' +'-16566033A9D202^-5' +'4FAE7E00000014^0' +'-D68C9E0000002^0' +'6FB8557FFFFFEC^0' +'-19F67FE0000019^0' +'34EA54DA341DF6^-5' +'100E694CD0C27A^-5' +'33B16B79DDFDAA^-6' +'4FAE797FFFFFF^0' +'-D68CA100000008^0' +'6FB8557FFFFFEC^0' +'-19F67B80000011^0' +'-3C0040740E1A36^-5' +'7793899DA12C3C^-5' +'-1E67AC7DF6C83A^-5' +'4FAE867FFFFFEC^0' +'-D68C9E0000002^0' +'6FB852FFFFFFE4^0' +'-19F6710000001C^0' +'-21DE385A1FB142^-5' +'64467D34ECCCE4^-5' +'-701F46A2AE8044^-5' +'4FAE90FFFFFFE^0' +'-D68C9800000008^0' +'6FB85A7FFFFFF4^0' +'-19F66400000021^0' +'-4F98A1351D55D4^-5' +'66C967205F1C94^-5' +'9E3B0232873BE^-5' +'4FAE9D00000014^0' +'-D68C9EFFFFFFE8^0' +'6FB8450000002^0' +'-19F663BFFFFFE7^0' +'-397CA3C44672DC^-5' +'-629DAD00022A48^-6' +'7A65EF09612358^-5' +'4FAEA10000000C^0' +'-D68CA2FFFFFFE^0' +'6FB8378^0' +'-19F66C40000005^0' +'-61BCB55B245E2C^-5' +'-7886449F2133A^-5' +'1F44A038EFCDFF^-5' +'4FAEA48000002^0' +'-D68CA^0' +'6FB837FFFFFFE^0' +'-19F67F8000000A^0' +'8F2C2DDF84FAB8^-6' +'-B1058E94C34C9^-5' +'21B4174074C9D6^-5' +'4FAE997FFFFFFC^0' +'-D68CA^0' +'6FB83B7FFFFFF4^0' +'-19F692DFFFFFE4^0' +'16CF9B6AF74AC^-5' +'-3834BDF6A900B^-5' +'654A7164AA11FC^-5' +'4FAE928000001C^0' +'-D68CA5^0' +'6FB8330000002^0' +'-19F69B60000001^0' +'85F398051AF7^-5' +'-3CAE8459174A6C^-5' +'DE43BE77EDAF7^-5' +'4FAE7E7FFFFFFC^0' +'-D68CB5FFFFFFF8^0' +'6FB8200000001^0' +'-19F6A320000001^0' +'21DE028AD87CDE^-5' +'186C3D1BA601D2^-5' +'3DD7C31B1810CE^-5' +'4FAE7B80000014^0' +'-D68CBB^0' +'6FB818FFFFFFE4^0' +'-19F6A11FFFFFE1^0' +'C1E4C5D160F518^-6' +'6726F2B0D0DB14^-5' +'-1D67CF67079DD6^-6' +'4FAE7FFFFFFFEC^0' +'-D68CBD0000002^0' +'6FB8158000001C^0' +'-19F695A0000022^0' +'-472A54C80C820C^-5' +'8EF77FA3F4F74^-5' +'-69F85B5D091A2^-5' +'4FAE907FFFFFFC^0' +'-D68CB5FFFFFFF8^0' +'6FB819FFFFFFF4^0' +'-19F68660000016^0' +'43AB76EA798EFC^-5' +'-3C18C8CADDA776^-5' +'-45FC29A8B4CD94^-5' +'4FAE8700000018^0' +'-D68CB400000018^0' +'6FB8247FFFFFEC^0' +'-19F6863FFFFFF9^0' +'5FF61752AA87DC^-5' +'-721688E128B978^-5' +'-47EB1EDFAD0CF8^-5' +'4FAE7780000018^0' +'-D68CB2^0' +'6FB8317FFFFFE4^0' +'-19F68A2000001D^0' +'76BAF32CD3CF8C^-5' +'-97AEE15CA6A5D8^-5' +'62E2F67A2C8DA^-5' +'4FAE618000001C^0' +'-D68CB9FFFFFFE8^0' +'6FB82E7FFFFFFC^0' +'-19F69760000009^0' +'23FC9943DDAA9A^-5' +'4F7DFA36E239C^-5' +'-377F6249EB8F02^-5' +'4FAE630000001^0' +'-D68CB9FFFFFFE8^0' +'6FB8320000001^0' +'-19F68B0000001^0' +'-40DABAF5FCEB8C^-5' +'59E8A37404BFFC^-5' +'A5BDB12833F1C^-6' +'4FAE6E80000018^0' +'-D68CB8FFFFFFE^0' +'6FB82C80000024^0' +'-19F68580000023^0' +'83755EFCE62A18^-5' +'5B2DA7DDF8A698^-5' +'-93D796DA05DC48^-5' +'4FAE677FFFFFEC^0' +'-D68CB700000008^0' +'6FB83A^0' +'-19F66EFFFFFFFB^0' +'7C7B011709A228^-6' +'87CBC605015338^-5' +'338CEFCF0971F4^-5' +'4FAE6D80000008^0' +'-D68CBC00000018^0' +'6FB82F8000000C^0' +'-19F6626000001^0' +'5AEBAD7046F314^-5' +'-505796656443C4^-5' +'9F28EF4B420A68^-5' +'4FAE5D80000024^0' +'-D68CC6FFFFFFE8^0' +'6FB822FFFFFFF4^0' +'-19F66C00000012^0' +'-4605738FE1E728^-5' +'5032F89A43053C^-5' +'651B87F5995514^-5' +'4FAE680000001C^0' +'-D68CCAFFFFFFE^0' +'6FB81480000004^0' +'-19F66B60000011^0' +'-1C478C206FE15A^-5' +'-4EEFF7732C6038^-5' +'112A9F94EBB8AC^-5' +'4FAE6680000024^0' +'-D68CCA0000002^0' +'6FB8158000001C^0' +'-19F675E0000008^0' +'-6ACA9B497B5DA^-5' +'2DB7CA86C313E6^-5' +'-7079D67C24A814^-5' +'4FAE757FFFFFF8^0' +'-D68CC000000008^0' +'6FB81DFFFFFFEC^0' +'-19F6728000001^0' +'-3DB985ED5F211^-5' +'-2F4C48C503A46^-5' +'-292CCF9F0C2834^-5' +'4FAE7A0000001C^0' +'-D68CBB^0' +'6FB8238000002^0' +'-19F6793FFFFFFF^0' +'-7B152F9373CD74^-5' +'-1873E1FA1893DC^-5' +'-6E4088B4D65A58^-5' +'4FAE8700000018^0' +'-D68CB000000028^0' +'6FB82E7FFFFFFC^0' +'-19F67E40000008^0' +'-C8CE246041B4A8^-5' +'78BAD071CB3ABC^-5' +'4715FF73BAB214^-5' +'4FAEA17FFFFFF^0' +'-D68CACFFFFFFF8^0' +'6FB81F7FFFFFE^0' +'-19F67F40000018^0' +'1D9FDE36009554^-5' +'390E7C773E7A0C^-5' +'-18C8E0E9FB48E8^-5' +'4FAEA20000001C^0' +'-D68CAE00000008^0' +'6FB8207FFFFFF^0' +'-19F676BFFFFFFB^0' +'-27977624DE8314^-6' +'-4658B2CB465C88^-5' +'-4DF94E1B6C5E9C^-5' +'4FAE9F80000018^0' +'-D68CA9^0' +'6FB82B80000014^0' +'-19F67B4000001F^0' +'813901B6E629A8^-5' +'-4235DC86F550A4^-5' +'13CD30606203B4^-5' +'4FAE8DFFFFFFF8^0' +'-D68CAE00000008^0' +'6FB82D7FFFFFEC^0' +'-19F67BE0000021^0' +'8F917A366BF8B^-5' +'16D15992609C2B^-5' +'2D58F20A0B2172^-5' +'4FAE7F8000000C^0' +'-D68CB5FFFFFFF8^0' +'6FB8297FFFFFF4^0' +'-19F67360000003^0' +'6EEB115D4409A^-5' +'405018A43DCB4C^-5' +'20DED30887CB4E^-5' +'4FAE76FFFFFFEC^0' +'-D68CBD0000002^0' +'6FB82500000014^0' +'-19F667DFFFFFFD^0' +'531A68F737F138^-5' +'-9F0F85705EE338^-5' +'C63B43AA4945D8^-6' +'4FAE6580000018^0' +'-D68CBEFFFFFFF8^0' +'6FB82AFFFFFFE4^0' +'-19F6747FFFFFE8^0' +'-36EFA0661DC98E^-5' +'-8C7DF332EF3978^-5' +'D203404682F2C8^-6' +'4FAE637FFFFFF8^0' +'-D68CBC00000018^0' +'6FB82E7FFFFFFC^0' +'-19F686BFFFFFDD^0' +'-372C131C24A59A^-5' +'-A38A38FA34715^-5' +'-D16804CF76D798^-6' +'4FAE608000000C^0' +'-D68CB700000008^0' +'6FB83580000024^0' +'-19F69A5FFFFFF2^0' +'-8D9BD3CE148C9^-5' +'A71AB3BA684F08^-5' +'-85D2BD3EE1BD08^-6' +'4FAE787FFFFFE^0' +'-D68CB300000008^0' +'6FB82E0000001C^0' +'-19F6904000000A^0' +'33FE0AC1506416^-5' +'-A7AEC0A51986A^-6' +'-4AC8C4D052D524^-5' +'4FAE738000002^0' +'-D68CB0FFFFFFE8^0' +'6FB8370000001C^0' +'-19F68BA0000011^0' +'2542E9D3B0027C^-5' +'335B25F72016B8^-5' +'3BF46B29AC9E82^-5' +'4FAE718^0' +'-D68CB5FFFFFFF8^0' +'6FB82EFFFFFFE^0' +'-19F6867FFFFFEB^0' +'909E67C99F698^-5' +'-494540B3DDFF64^-5' +'24AAEE66C9B406^-5' +'4FAE5E00000008^0' +'-D68CBD0000002^0' +'6FB82FFFFFFFF^0' +'-19F687BFFFFFEE^0' +'29DEC702FA2AD2^-5' +'1FAD16149C1978^-5' +'60C441DE09105C^-5' +'4FAE5A0000001^0' +'-D68CC4^0' +'6FB82500000014^0' +'-19F685DFFFFFEA^0' +'-4FAEB81AD1DDD4^-5' +'6C3A88AEDFCE24^-5' +'-7BCE8027830794^-5' +'4FAE69FFFFFFF4^0' +'-D68CBC00000018^0' +'6FB82D00000004^0' +'-19F67A1FFFFFF2^0' +'5725D6D03ECF0C^-6' +'22A97032EFF33E^-5' +'-AF021759501C6^-5' +'4FAE6D80000008^0' +'-D68CB300000008^0' +'6FB83DFFFFFFFC^0' +'-19F66F6000000A^0' +'369561BD6D27FE^-5' +'F1FE6F9246C69^-6' +'AF6B07D9093668^-6' +'4FAE687FFFFFFC^0' +'-D68CB5FFFFFFF8^0' +'6FB83CFFFFFFEC^0' +'-19F66B3FFFFFF4^0' +'3E6456041444C4^-5' +'-6D135D420050D^-6' +'-C54D83C3F0A1D^-6' +'4FAE618000001C^0' +'-D68CB700000008^0' +'6FB83F0000000C^0' +'-19F6680000001A^0' +'1D89CEE05E5BC3^-5' +'450E0E32805D58^-5' +'-3B3A84CF8D6196^-5' +'4FAE630000001^0' +'-D68CB5FFFFFFF8^0' +'6FB84300000004^0' +'-19F65CE0000023^0' +'35B29A89F1F996^-5' +'-15330A8936312B^-5' +'5F639C8B697D9C^-5' +'4FAE5B0000002^0' +'-D68CBD0000002^0' +'6FB83A7FFFFFE4^0' +'-19F65FE000000C^0' +'-66759E1CA5F04^-5' +'-4445386A091EFC^-5' +'2FA083A43CE3BC^-5' +'4FAE618000001C^0' +'-D68CBB^0' +'6FB8370000001C^0' +'-19F66E80000018^0' +'78B0E9CA104D1^-6' +'-1A8EB4BBDB8A28^-5' +'-5D82439AA484D8^-5' +'4FAE608000000C^0' +'-D68CB5FFFFFFF8^0' +'6FB841FFFFFFF4^0' +'-19F66D40000015^0' +'-40713364722FA4^-5' +'-552B7555799734^-6' +'45795ADF28EBC4^-5' +'4FAE65FFFFFFFC^0' +'-D68CB700000008^0' +'6FB83A^0' +'-19F67400000004^0' +'-3E366487092144^-5' +'-58CDAA4DAA5968^-5' +'87E3B020E0FA98^-5' +'4FAE65FFFFFFFC^0' +'-D68CBB^0' +'6FB82E7FFFFFFC^0' +'-19F68600000007^0' +'1FF60087251604^-5' +'1D14BC83CBD5BF^-5' +'8813706684357^-5' +'4FAE627FFFFFE4^0' +'-D68CC4^0' +'6FB81F7FFFFFE^0' +'-19F6867FFFFFEB^0' +'-86C46160EE8E28^-6' +'E6398930D9FCD^-6' +'-39786C298857BC^-5' +'4FAE64FFFFFFE8^0' +'-D68CC100000018^0' +'6FB82500000014^0' +'-19F68340000011^0' +'4CFB620E077558^-5' +'-5527BEA9B467F8^-5' +'-41B4DC748ADCE4^-5' +'4FAE59^0' +'-D68CBEFFFFFFF8^0' +'6FB82FFFFFFFF^0' +'-19F68560000007^0' +'BDA97B6B9151D8^-5' +'-40A982C83C217^-5' +'-745C8C91D5A8CC^-5' +'4FAE4300000004^0' +'-D68CBEFFFFFFF8^0' +'6FB840FFFFFFE4^0' +'-19F67D3FFFFFF8^0' +'2A67A5C4C90406^-5' +'4B61FA2709E158^-5' +'-5C511290E062F^-5' +'4FAE4400000014^0' +'-D68CBD0000002^0' +'6FB8487FFFFFF^0' +'-19F66F7FFFFFDF^0' +'4139774733D47^-5' +'-1FEEC008355763^-5' +'16AF300D9C791E^-5' +'4FAE3B00000014^0' +'-D68CC000000008^0' +1024 +'6FB8480000000C^0' +'-19F6701FFFFFE^0' +'160B8CCDEDD62E^-5' +'-1F4BDF38F11AE4^-5' +'-2B6FE8314BD04C^-5' +'4FAE377FFFFFFC^0' +'-D68CBDFFFFFFE8^0' +'6FB84E00000024^0' +'-19F6707FFFFFEF^0' +'874C4EC0331F58^-5' +'-4F383638F4A3A4^-5' +'-4E40F702E56BEC^-5' +'4FAE25FFFFFFDC^0' +'-D68CBDFFFFFFE8^0' +'6FB85B0000002^0' +'-19F66E5FFFFFF9^0' +'-92937E7AEE8FB8^-5' +'BE3B1307A0C3F^-5' +'-35D76F7B05EAE8^-5' +'4FAE408^0' +'-D68CB800000018^0' +'6FB8578000000C^0' +'-19F6605FFFFFEF^0' +'-279212EA3677E2^-5' +'65E79757DDB914^-5' +'3A021EEF581D3^-5' +'4FAE498^0' +'-D68CBB^0' +'6FB84D00000014^0' +'-19F65A1FFFFFE4^0' +'-2683D08FA0D0DC^-5' +'-506A3AF1393C2^-5' +'-41209BE7AAB0AC^-5' +'4FAE49FFFFFFE4^0' +'-D68CB4FFFFFFE8^0' +'6FB8567FFFFFFC^0' +'-19F6622000001E^0' +'-3ADF51E795E70C^-6' +'-2FC54FF734F1A2^-5' +'67ABB0ED8AD718^-5' +'4FAE4680000018^0' +'-D68CB9FFFFFFE8^0' +'6FB84D7FFFFFF8^0' +'-19F66B60000011^0' +'-5B3A359BA8D12^-5' +'4BF74B3F552C48^-5' +'CB7181645E103^-6' +'4FAE53FFFFFFF4^0' +'-D68CB800000018^0' +'6FB8480000000C^0' +'-19F668E000000D^0' +'C25318FBC40D68^-5' +'-1FF203BDB3A4C9^-6' +'7774AA0DFB8204^-5' +'4FAE3DFFFFFFFC^0' +'-D68CC60000002^0' +'6FB83DFFFFFFFC^0' +'-19F6631FFFFFE6^0' +'-2056A354FFCC0E^-5' +'-15574A7DD304DF^-5' +'-DB480F6A0DCD88^-6' +'4FAE408^0' +'-D68CC4^0' +'6FB8400000001C^0' +'-19F6669FFFFFFB^0' +'56E51CA9E4E188^-6' +'977CA2EDB12B9^-5' +'-214DE4736C0AD^-5' +'4FAE487FFFFFF^0' +'-D68CC4^0' +'6FB83D80000014^0' +'-19F65520000023^0' +'3193ADB9099F^-5' +'-9A5D489A9FE908^-5' +'-7FA19ABF22722^-5' +'4FAE3C80000004^0' +'-D68CBD0000002^0' +'6FB8517FFFFFF^0' +'-19F65D9FFFFFF9^0' +'-3310410DF6578E^-5' +'8A94A961D1BD08^-5' +'-C81AD003420F9^-5' +'4FAE4C00000004^0' +'-D68CB2^0' +'6FB8608000000C^0' +'-19F64A20000001^0' +'-3F7FF880583C4C^-5' +'4A1BD3FFFFDC2C^-5' +'265D8BE8BC7E9^-5' +'4FAE5600000018^0' +'-D68CB2^0' +'6FB8588000001C^0' +'-19F6473FFFFFEE^0' +'6D0F1386041254^-5' +'472BEDD581E12C^-5' +'5F15B3AA1A5A6^-5' +'4FAE4D7FFFFFF8^0' +'-D68CBD0000002^0' +'6FB84D7FFFFFF8^0' +'-19F63D9FFFFFEB^0' +'3DCAB31FCD1EE8^-5' +'2F5940F71B652C^-5' +'1DBBF664EC5A0D^-5' +'4FAE490000001C^0' +'-D68CC100000018^0' +'6FB8490000001C^0' +'-19F63660000019^0' +'5DCF86FB4E9C84^-5' +'-9EC70219CB3C^-5' +'4FE3A327060DE8^-5' +'4FAE3580000024^0' +'-D68CC6FFFFFFE8^0' +'6FB8480000000C^0' +'-19F64500000023^0' +'36355C0CA02656^-5' +'-C642CB7B784828^-5' +'1002A8BA0E2BB1^-5' +'4FAE2500000018^0' +'-D68CC7FFFFFFF8^0' +'6FB84EFFFFFFEC^0' +'-19F6578000000A^0' +'-643EA4C4ADFC2^-5' +'-35F1DEC03A2BA8^-5' +'-1D5B519006F5E^-5' +'4FAE2D00000008^0' +'-D68CC1FFFFFFE^0' +'6FB852FFFFFFE4^0' +'-19F6618000001D^0' +'-5305A16CC9BEC4^-5' +'450FC8A483F2B8^-5' +'-395AA86C503568^-5' +'4FAE3A00000004^0' +'-D68CBC00000018^0' +'6FB85500000004^0' +'-19F65C80000014^0' +'-34D197C1E562F6^-5' +'7B3D4FB71DCA5C^-5' +'-18667369D7A7EF^-5' +'4FAE4680000018^0' +'-D68CB9FFFFFFE8^0' +'6FB8520000002^0' +'-19F6517FFFFFF2^0' +'9CCEC2841356F^-5' +'11C3CF2169B688^-5' +'5455898A175CCC^-5' +'4FAE360000000C^0' +'-D68CC500000018^0' +'6FB84A8000001^0' +'-19F64A5FFFFFF4^0' +'F936553BD9D96^-6' +'77F0E7098C884^-5' +'-44503C9363343^-5' +'4FAE3C00000024^0' +'-D68CC4^0' +'6FB84D7FFFFFF8^0' +'-19F63A60000011^0' +'240A6B984F7314^-5' +'-264FF637D85924^-6' +'-325B317D57E334^-5' +'4FAE388000000C^0' +'-D68CC1FFFFFFE^0' +'6FB852FFFFFFE4^0' +'-19F636A000000A^0' +'-59D4C2889069C^-5' +'81947030C21078^-5' +'-8DF1AA0B24F14^-5' +'4FAE4AFFFFFFF4^0' +'-D68CB8FFFFFFE^0' +'6FB85BFFFFFFE4^0' +'-19F6287FFFFFE3^0' +'-3072D21B305314^-5' +'-BF8B321FF20658^-5' +'-3E6BB040DD090A^-6' +'4FAE4580000008^0' +'-D68CB400000018^0' +'6FB8630000001^0' +'-19F63F0000000A^0' +'-32247AFA04468C^-5' +'-220222D7D2D67E^-5' +'4707EEBC24D0B^-5' +'4FAE4A8000001^0' +'-D68CB700000008^0' +'6FB8557FFFFFEC^0' +'-19F6511FFFFFE3^0' +'-4ECEECB624FD64^-5' +'36DC1C4E9A2B8C^-5' +'-EBA18C781B93A8^-6' +'4FAE5600000018^0' +'-D68CB400000018^0' +'6FB853FFFFFFF4^0' +'-19F64F2000000A^0' +'-36211D5FF34334^-6' +'-5664BA2CD3E8D4^-7' +'-3725DA7EAF1F72^-6' +'4FAE567FFFFFFC^0' +'-D68CB400000018^0' +'6FB85480000024^0' +'-19F64F3FFFFFDF^0' +'-1D73CA0FC7EB6F^-5' +'-A32B5C89E224^-5' +'-3427353D02F5D6^-6' +'4FAE507FFFFFE^0' +'-D68CB000000028^0' +'6FB85A7FFFFFF4^0' +'-19F661C000000E^0' +'46E21122F7C634^-6' +'-30C1DEC6CC8C4A^-5' +'-247795A92BAEE4^-5' +'4FAE4E00000024^0' +'-D68CAE00000008^0' +'6FB8608000000C^0' +'-19F66540000023^0' +'2B49B28B8DD99C^-6' +'8455E57D56BB2^-5' +'976C29762C98C8^-5' +'4FAE52FFFFFFE4^0' +'-D68CB800000018^0' +'6FB84B8000002^0' +'-19F65D20000015^0' +'1615DC707332D4^-5' +'-5813E100C7F22C^-5' +'963CB55308B9C^-5' +'4FAE49FFFFFFE4^0' +'-D68CC000000008^0' +'6FB83F7FFFFFF^0' +'-19F66B00000003^0' +'-1D76E4E7BB3671^-5' +'8148966C9B8B88^-5' +'-270F4C086DEB1A^-5' +'4FAE5480000024^0' +'-D68CBDFFFFFFE8^0' +'6FB83DFFFFFFFC^0' +'-19F65D80000025^0' +'-5657DEED92B008^-5' +'-275828D6B1629A^-5' +'2111CB2C376E1A^-5' +'4FAE5B0000002^0' +'-D68CBC00000018^0' +'6FB83B0000001^0' +'-19F667A000000B^0' +'-5EBB8A956673A^-5' +'9F4FBF61EF135^-5' +'30BAAE0D3D8164^-5' +'4FAE6D00000024^0' +'-D68CBD0000002^0' +'6FB82E7FFFFFFC^0' +'-19F65E00000008^0' +'-2F40227C67C2D2^-5' +'A2E3DFF99188B8^-5' +'69A7E769400E08^-5' +'4FAE797FFFFFF^0' +'-D68CC2FFFFFFF8^0' +'6FB81C7FFFFFFC^0' +'-19F6539FFFFFE7^0' +'81D2D08EA0D08^-5' +'1F648B62138D01^-5' +'8617232B9D1888^-5' +'4FAE6C00000014^0' +'-D68CCFFFFFFFE8^0' +'6FB80F0000001C^0' +'-19F64E8000000A^0' +'763CF80D3EA4B8^-5' +'-115BED2115F266^-4' +'-330D43FD4A61BE^-5' +'4FAE510000000C^0' +'-D68CCE00000018^0' +'6FB8207FFFFFF^0' +'-19F6631FFFFFE6^0' +'5305DC08A8D2F8^-5' +'-7AE80A6DA9637C^-5' +'-10175AD2D60C83^-4' +'4FAE4500000024^0' +'-D68CC1FFFFFFE^0' +'6FB8418000001^0' +'-19F6618000001D^0' +'-A311140AE792A8^-5' +'27EF358AC2E72E^-5' +'1163623423516D^-5' +'4FAE57FFFFFFF^0' +'-D68CBD0000002^0' +'6FB83C00000024^0' +'-19F666DFFFFFEC^0' +'-56E8A1EC23845^-5' +'21023135B4C2CC^-5' +'-4EC29E766A0E1C^-5' +'4FAE6400000024^0' +'-D68CB5FFFFFFF8^0' +'6FB841FFFFFFF4^0' +'-19F66520000007^0' +'-54B286FA0F9AC^-5' +'87B5949F74B04^-5' +'5A53BD9022A02C^-5' +'4FAE72FFFFFFF4^0' +'-D68CB8FFFFFFE^0' +'6FB8320000001^0' +'-19F65F00000019^0' +'345FE25B990A16^-5' +'-392960D048BD76^-5' +'-F463CBF7836B^-5' +'4FAE6D80000008^0' +'-D68CACFFFFFFF8^0' +'6FB84E8000000C^0' +'-19F6589FFFFFF^0' +'7078599401249C^-7' +'-50FB535527D14C^-5' +'13606D6EBC62FF^-6' +'4FAE68FFFFFFE4^0' +'-D68CABFFFFFFE^0' +'6FB8517FFFFFF^0' +'-19F6612000000D^0' +'-2E30FC00A4197^-5' +'-1F98C45BC0F505^-5' +'2B7735E22A3158^-5' +'4FAE6B7FFFFFE4^0' +'-D68CABFFFFFFE^0' +'6FB84D7FFFFFF8^0' +'-19F668A000001C^0' +'56B00B5E9FCB2^-5' +'44C2652E37C6AC^-5' +'-CCAE91ACD49118^-6' +'4FAE6680000024^0' +'-D68CB000000028^0' +'6FB84D7FFFFFF8^0' +'-19F65C40000022^0' +'-1F5FA954419B6E^-5' +'B4EF72F8D74FC8^-5' +'3F0840440D4568^-6' +'4FAE738000002^0' +'-D68CB0FFFFFFE8^0' +'6FB8458000000C^0' +'-19F64B20000012^0' +'5CB373EBC895EC^-5' +'-FD276A1EF3C17^-5' +'-51FD7948F5C9F8^-6' +'4FAE5BFFFFFFE8^0' +'-D68CB0FFFFFFE8^0' +'6FB8510000001^0' +'-19F6605FFFFFEF^0' +'-BF8906077A453^-6' +'-1CDE2F2AB3CF7A^-5' +'8B4BC860155FE8^-5' +'4FAE5A0000001^0' +'-D68CB800000018^0' +'6FB8437FFFFFE4^0' +'-19F6698000000E^0' +'A03F7892CD9E28^-6' +'-20002374972656^-5' +'585102C992E09C^-5' +'4FAE52FFFFFFE4^0' +'-D68CC000000008^0' +'6FB83580000024^0' +'-19F67460000014^0' +'8DF8A2D13EEF28^-6' +'-157C2CE07C8FBB^-5' +'78913A7026D94^-5' +'4FAE4F8000001C^0' +'-D68CC6FFFFFFE8^0' +'6FB82A0000002^0' +'-19F67AE000001^0' +'2E1271ACC9AA82^-5' +'-2431490CA4944^-5' +'-3DE7D02BFDDD98^-5' +'4FAE498^0' +'-D68CC500000018^0' +'6FB8327FFFFFF4^0' +'-19F679BFFFFFE3^0' +'58F6BE90ECAD68^-5' +'574052DC3FA464^-5' +'-53B1938ED24B6^-5' +'4FAE45FFFFFFEC^0' +'-D68CC500000018^0' +'6FB838FFFFFFF^0' +'-19F6687FFFFFFD^0' +'-7F5719469E5168^-5' +'45F60BFC8491A^-5' +'3686B4C17EB53E^-5' +'4FAE567FFFFFFC^0' +'-D68CC4^0' +'6FB82EFFFFFFE^0' +'-19F66A3FFFFFE4^0' +'-3F49347F4AECCA^-5' +'-1448490FFB12CD^-4' +'-5273E108DA8CC8^-5' +'4FAE4C7FFFFFE8^0' +'-D68CB8FFFFFFE^0' +'6FB8437FFFFFE4^0' +'-19F68C80000004^0' +'-1BD6B5016D7BBE^-5' +'103327D5526F15^-4' +'-3199DE6A591472^-5' +'4FAE5E00000008^0' +'-D68CB800000018^0' +'6FB83DFFFFFFFC^0' +'-19F670DFFFFFFF^0' +'8BD8DDC606E0A8^-5' +'3F4F8570F3157E^-5' +'115F4A221A7123^-4' +'4FAE4F8000001C^0' +'-D68CCE00000018^0' +'6FB8207FFFFFF^0' +'-19F66D80000007^0' +'2C37A23B2BBD6C^-5' +'94705500853438^-5' +'-2D946DA4805E5E^-5' +'4FAE5380000014^0' +'-D68CCF0000002^0' +'6FB8200000001^0' +'-19F659C000001D^0' +'-1FC1640B9CA5B6^-5' +'-1494542D4E5DB^-5' +'-96699CFA28443^-5' +'4FAE578000000C^0' +'-D68CC500000018^0' +'6FB82FFFFFFFF^0' +'-19F657BFFFFFFD^0' +'-CA9C14757AD45^-5' +'-49167FAE134E1^-5' +'-155CE2CFA0A0D4^-5' +'4FAE68FFFFFFE4^0' +'-D68CBB^0' +'6FB8327FFFFFF4^0' +'-19F6699FFFFFE3^0' +'-2917939DA9D954^-5' +'89960FD72A45E^-5' +'-3868DE587ABD3E^-5' +'4FAE757FFFFFF8^0' +'-D68CB800000018^0' +'6FB8327FFFFFF4^0' +'-19F65B40000012^0' +'-61356A4ADA753C^-5' +'-94437D5F751498^-5' +'A5E47F880A98D8^-6' +'4FAE7780000018^0' +'-D68CB300000008^0' +'6FB8360000000C^0' +'-19F6707FFFFFEF^0' +'12A3AD80306889^-5' +'6D86686B6CFE78^-5' +'-1B121A78951DE6^-5' +'4FAE7BFFFFFFF4^0' +'-D68CB400000018^0' +'6FB834FFFFFFFC^0' +'-19F66300000011^0' +'21B40C7C0A9D34^-5' +'-25841CD0E216F4^-5' +'-170BDC09BE2B9^-5' +'4FAE7680000008^0' +'-D68CB300000008^0' +'6FB838FFFFFFF^0' +'-19F6641FFFFFF7^0' +'72F30985478348^-5' +'-4D2FBFA06F59F4^-5' +'3E3927AD5B51B4^-5' +'4FAE6580000018^0' +'-D68CB9FFFFFFE8^0' +'6FB8370000001C^0' +'-19F6685FFFFFE1^0' +'1085F8F0ED64E4^-5' +'E6156937543B18^-5' +'-573BFCECB8F208^-5' +'4FAE718^0' +'-D68CB8FFFFFFE^0' +'6FB8378^0' +'-19F64C00000005^0' +'-4C768DE53076B^-5' +'-3B0D1B53908AFA^-5' +'8221F4EA073A4^-5' +'4FAE747FFFFFE8^0' +'-D68CBC00000018^0' +'6FB82AFFFFFFE4^0' +'-19F65B5FFFFFE7^0' +'-579C6B0B2DC37^-5' +'-52D516EDFE3668^-5' +'-1BB68BDD7A0F5E^-5' +'4FAE797FFFFFF^0' +'-D68CB5FFFFFFF8^0' +'6FB82FFFFFFFF^0' +'-19F667BFFFFFE^0' +'64E8358CD59168^-5' +'-6C4A09EC15D368^-5' +'51294D6708D528^-5' +'4FAE680000001C^0' +'-D68CBD0000002^0' +'6FB82D00000004^0' +'-19F670BFFFFFE2^0' +'1D5D25D05FA0E7^-5' +'-83B6CC39805AB8^-5' +'-32FE9CDAAE9D24^-5' +'4FAE5E7FFFFFEC^0' +'-D68CB9FFFFFFE8^0' +'6FB837FFFFFFE^0' +'-19F67AFFFFFFE4^0' +'-12A9CE80FE5B2B^-5' +'33DA56C41E27BA^-5' +'-5C87917CB2015C^-5' +'4FAE6480000004^0' +'-D68CB4FFFFFFE8^0' +'6FB83F7FFFFFF^0' +'-19F672FFFFFFF4^0' +'-220179C4537EF^-5' +'479B35001CD278^-5' +'1E2FE67962E1CF^-5' +'4FAE6B7FFFFFE4^0' +'-D68CB5FFFFFFF8^0' +'6FB838FFFFFFF^0' +'-19F66E80000018^0' +'F2AEC6385E4678^-6' +'2B7B2E93EBC738^-5' +'-2DEA8751932B88^-5' +'4FAE6D00000024^0' +'-D68CB4FFFFFFE8^0' +'6FB83C80000004^0' +'-19F66760000019^0' +'318DFEBBFC957A^-5' +'38727395F7A716^-5' +'-306511D34683F6^-5' +'4FAE6B7FFFFFE4^0' +'-D68CB4FFFFFFE8^0' +'6FB8400000001C^0' +'-19F65CE0000023^0' +'-1BA49147893CBD^-6' +'-117326ADED4114^-6' +'75CCEF13CB526^-5' +'4FAE69FFFFFFF4^0' +'-D68CBB^0' +'6FB83380000004^0' +'-19F6619FFFFFF2^0' +'B38CA45C068328^-5' +'47993C2DED7D98^-5' +'-1656A5E0548AE9^-5' +'4FAE5B80000004^0' +'-D68CC1FFFFFFE^0' +'6FB83580000024^0' +'-19F64F8000001A^0' +'-18D8CB253D457A^-5' +'3A7EB13A77277A^-5' +'B766BB4506E758^-6' +'4FAE60FFFFFFF^0' +'-D68CC1FFFFFFE^0' +'6FB8317FFFFFE4^0' +'-19F64B20000012^0' +'542D84A2B362C4^-5' +'5C7604B29B27F8^-5' +'-18A8E4FF2209D^-5' +'4FAE5D80000024^0' +'-D68CC500000018^0' +'6FB8317FFFFFE4^0' +'-19F63BE0000005^0' +'267E682AFD536A^-5' +'9FF929F37B2868^-5' +'-34F34E1A74FC04^-5' +'4FAE630000001^0' +'-D68CC60000002^0' +'6FB8317FFFFFE4^0' +'-19F626FFFFFFEF^0' +'616C6229CB9CA4^-5' +'-4C3B28CBFAC3^-5' +'115EF484947BD4^-5' +'4FAE5480000024^0' +'-D68CCA0000002^0' +'6FB833FFFFFFEC^0' +'-19F62A5FFFFFE6^0' +'-460D49EF571998^-5' +'-40008A81DB7384^-6' +'1226F58884DC9B^-6' +'4FAE5B80000004^0' +'-D68CC6FFFFFFE8^0' +'6FB8330000002^0' +'-19F62EA0000019^0' +'-14530C429BD4CC^-5' +'3F46D7F3F2B25C^-5' +'3356EC689A5D1E^-5' +'4FAE608000000C^0' +'-D68CCA0000002^0' +'6FB82AFFFFFFE4^0' +'-19F62B20000004^0' +'-45E9493D113224^-5' +'C808D101756CE8^-6' +'-503AB6D8E21348^-5' +'4FAE698000000C^0' +'-D68CC2FFFFFFF8^0' +'6FB8320000001^0' +'-19F62A80000004^0' +'BB98804D37E82^-6' +'-1C880B7C45D09E^-5' +'10BF6231B49F84^-5' +'4FAE6680000024^0' +'-D68CC4^0' +'6FB8317FFFFFE4^0' +'-19F62D7FFFFFEC^0' +'75072398372CD8^-5' +'131390F8310A78^-4' +'435E480E545EE8^-5' +'4FAE69FFFFFFF4^0' +'-D68CCFFFFFFFE8^0' +'6FB8200000001^0' +'-19F609C000001F^0' +'1693063EC46A28^-4' +'520D0397E1623^-4' +'7483B5EACAE7DC^-4' +'4FAE7400000004^0' +'-D68D540000002^0' +'6FB72DFFFFFFF4^0' +'-19F5B50000000A^0' +'11F7AFA7DB7083^-4' +'-1F015D20EEB029^-4' +'3670AC43FB6CCC^-4' +'4FAE2FFFFFFFF^0' +'-D68D8900000018^0' +'6FB6E9FFFFFFE^0' +'-19F5FB3FFFFFEA^0' +'-1DCC1D7183AB11^-4' +'-93E209CB98594^-4' +'-399DA939021E58^-4' +'4FADEC80000008^0' +'-D68D26^0' +'6FB7A080000004^0' +'-19F6E94000000A^0' +'-455753698532AC^-4' +'-B433239EEA20B8^-4' +'-85FA8BC403E65^-4' +'4FADDE7FFFFFFC^0' +'-D68C60FFFFFFF8^0' +'6FB8E3^0' +'-19F8006000001^0' +'-1F089728407048^-4' +'-850706616842E^-5' +'-66102FE9D184FC^-4' +'4FAE200000000C^0' +'-D68BF300000008^0' +'6FB98D0000000C^0' +'-19F7E9DFFFFFE7^0' +'1C3AC3FA7EA3E4^-4' +'B24DAD61FD35A^-4' +'-19DDB6E6FE9566^-4' +'4FAE918000000C^0' +'-D68C12^0' +'6FB94F0000001^0' +'-19F69640000023^0' +'36024565963866^-4' +'900E01CA34B41^-4' +'1A34FCD7D3E3A7^-4' +'4FAEAF7FFFFFFC^0' +'-D68C6800000018^0' +'6FB8D48000001^0' +'-19F585FFFFFFE3^0' +'1C1B226943C234^-4' +'3BCFE3E59A1818^-4' +'253ABEF530DBAA^-4' +'4FAEACFFFFFFF4^0' +'-D68CA600000018^0' +'6FB8768000000C^0' +'-19F5205FFFFFF8^0' +'8E93CBA5E63338^-5' +'981CBC2FA48CB8^-5' +'98A656E3C951D8^-5' +'4FAEA48000002^0' +'-D68CB5FFFFFFF8^0' +'6FB8627FFFFFE4^0' +'-19F50E9FFFFFE7^0' +'-1FD2E741440F11^-6' +'-2F589C10D4D3CA^-4' +'21FB3E23601A26^-4' +'4FAE747FFFFFE8^0' +'-D68CCA0000002^0' +'6FB846FFFFFFFC^0' +'-19F57340000009^0' +'-147FE5432B1B19^-4' +'-136064DF9E33DF^-4' +'9D2C70A098138^-5' +'4FAE83FFFFFFE4^0' +'-D68CC1FFFFFFE^0' +'6FB83E7FFFFFE^0' +'-19F5ABC0000018^0' +'-55F009BA3BF80C^-5' +'-20F36F8313116E^-4' +'A9E32FB49A6688^-5' +'4FAE6DFFFFFFEC^0' +'-D68CC100000018^0' +'6FB8400000001C^0' +'-19F5EE3FFFFFEF^0' +'-9216035C762CA^-5' +'-13DB0AD049F3D6^-4' +'C3E3BAC6BA26B^-5' +'4FAE698000000C^0' +'-D68CC1FFFFFFE^0' +'6FB8360000000C^0' +'-19F61F2000001A^0' +'-A01ECD27026D3^-6' +'-79ABFA7D01961C^-5' +'-4EEF3C347A9334^-5' +'4FAE64FFFFFFE8^0' +'-D68CBC00000018^0' +'6FB84300000004^0' +'-19F6296000001E^0' +'-499D40A343FF64^-5' +'-608329E564F99^-5' +'7094382BCF8ED^-5' +'4FAE65FFFFFFFC^0' +'-D68CBDFFFFFFE8^0' +'6FB83A^0' +'-19F63BE0000005^0' +'-516BD0F563BB5^-5' +'508AD58356142^-5' +'-ABC0EC8C18811^-7' +'4FAE72FFFFFFF4^0' +'-D68CBC00000018^0' +'6FB8360000000C^0' +'-19F637E000000D^0' +'-1F5C3DDC8802D9^-5' +'380F056F3C3A5A^-5' +'-3B4BB5D5CC4DA8^-5' +'4FAE7A0000001C^0' +'-D68CB800000018^0' +'6FB8398000002^0' +'-19F6316000001^0' +'4C3E72482D2464^-5' +'-4236D37213F7D8^-5' +'-80ECDBC51177A^-5' +'4FAE7000000008^0' +'-D68CB300000008^0' +'6FB84A8000001^0' +'-19F62F1FFFFFFD^0' +'-294C34EB8C40EC^-5' +'8115C64DC9DEF8^-5' +'-2A129F13D0FE62^-5' +'4FAE7BFFFFFFF4^0' +'-D68CB0FFFFFFE8^0' +'6FB8498^0' +'-19F6224000001F^0' +'449B280368AE38^-5' +'-BAB5407906A1B8^-5' +'A2AD01AB946748^-5' +'4FAE687FFFFFFC^0' +'-D68CB9FFFFFFE8^0' +'6FB8408^0' +'-19F6385FFFFFF^0' +'-3B696AB4E82886^-5' +'78EE4490F9BA48^-5' +'1DCBFDF2751FCF^-5' +'4FAE7500000014^0' +'-D68CBB^0' +'6FB837FFFFFFE^0' +'-19F6302000000D^0' +'776C355BA0CE2C^-5' +'39D909AB39755C^-5' +'-7115405976E8E8^-5' +'4FAE6D00000024^0' +'-D68CB9FFFFFFE8^0' +'6FB84300000004^0' +'-19F61F2000001A^0' +'40EC7B1CD11528^-5' +'16AC4B619C9696^-5' +'-B2253A58CD01D^-6' +'4FAE677FFFFFEC^0' +'-D68CBC00000018^0' +'6FB84400000014^0' +'-19F618BFFFFFF3^0' +'37F40054FB2B66^-5' +'6FAD443BEFF77^-5' +'-3FE0E550356494^-5' +'4FAE687FFFFFFC^0' +'-D68CBC00000018^0' +'6FB846FFFFFFFC^0' +'-19F6078000000D^0' +'-39E24C8FFC8196^-5' +'-F4B04E7D45993^-6' +'-28E93CC3378444^-5' +'4FAE6E80000018^0' +'-D68CB800000018^0' +'6FB84B8000002^0' +'-19F60ABFFFFFE8^0' +'58D1A88D519BDC^-5' +'-F0209013BE6778^-6' +'5F2EE959649D1C^-5' +'4FAE630000001^0' +'-D68CC000000008^0' +'6FB84300000004^0' +'-19F60B1FFFFFF7^0' +'-72D95CB908AEA^-5' +'9F6F42C0EEA548^-6' +'-1F974CB0ED067D^-5' +'4FAE7000000008^0' +'-D68CB9FFFFFFE8^0' +'6FB8447FFFFFF4^0' +'-19F60F1FFFFFEF^0' +'-4833388AA6742C^-5' +'-28A3295DC8A4B8^-5' +'4A79945D526F1^-5' +'4FAE747FFFFFE8^0' +'-D68CBB^0' +'6FB83D80000014^0' +'-19F61A3FFFFFE6^0' +'117A9A006CA3A4^-5' +'-9B63B6B16A455^-6' +'-BEB8E988B396C8^-5' +'4FAE747FFFFFE8^0' +'-D68CB0FFFFFFE8^0' +'6FB8520000002^0' +'-19F612DFFFFFF7^0' +'-637E01D9DF15DC^-5' +'87E49FC1EA34^-5' +'629DC65404B464^-5' +'4FAE84FFFFFFF8^0' +'-D68CB400000018^0' +'6FB840FFFFFFE4^0' +'-19F60DDFFFFFEE^0' +'9B7F1A88648C6^-5' +'-3E7439F30F7B36^-5' +'684FF96222BFD4^-5' +'4FAE7000000008^0' +'-D68CBEFFFFFFF8^0' +'6FB83A7FFFFFE4^0' +'-19F60FFFFFFFE3^0' +'-B5296048F2EA18^-5' +'C3102B251B612^-5' +'-8CD07EE206D128^-5' +'4FAE8F7FFFFFEC^0' +'-D68CB300000008^0' +'6FB83F7FFFFFF^0' +'-19F6^0' +'B225B6C76ADBA^-5' +'-114BAD86444C9E^-4' +'3390B463D6EA32^-5' +'4FAE6D00000024^0' +'-D68CB8FFFFFFE^0' +'6FB846FFFFFFFC^0' +'-19F6153FFFFFDE^0' +'-58BA39CC684F98^-5' +'91F49121356E6^-5' +'-8856C156414DF8^-5' +'4FAE7FFFFFFFEC^0' +'-D68CB000000028^0' +'6FB84E8000000C^0' +'-19F6057FFFFFEC^0' +'16FECFF4550D47^-5' +'97D775914C538^-6' +'-17537F98E822CF^-5' +'4FAE7E7FFFFFFC^0' +'-D68CB000000028^0' +'6FB8510000001^0' +'-19F6025FFFFFE7^0' +'-3DE21E1AEEE402^-5' +'-3B819336995A52^-5' +'AB3A0075907BD^-5' +'4FAE7F8000000C^0' +'-D68CB5FFFFFFF8^0' +'6FB8408^0' +'-19F612A0000004^0' +'4A0D7E96CE607^-5' +'399CB7E3F93C3^-6' +'378FB2F7F1B8B2^-5' +'4FAE6EFFFFFFFC^0' +'-D68CC1FFFFFFE^0' +'6FB8367FFFFFEC^0' +'-19F60E1FFFFFDF^0' +'AD3DEE125A06F8^-5' +'31646ACED993D^-5' +'6E7293AC50D514^-5' +'4FAE5E00000008^0' +'-D68CCF0000002^0' +'6FB82AFFFFFFE4^0' +'-19F603C0000007^0' +'-89C628575D425^-6' +'-1AAD4E5C183C76^-5' +'2BB5D6C9E3D8C8^-5' +'4FAE5CFFFFFFF8^0' +'-D68CD1^0' +'6FB8278000001C^0' +'-19F608C000001^0' +'-84D8988697ED98^-5' +'-2AEE78F9E6A3F^-5' +'300D66BD6735FE^-5' +'4FAE680000001C^0' +'-D68CCE00000018^0' +'6FB8228000001^0' +'-19F6166000000A^0' +'-2304A7D520DFDC^-5' +'7A28AE56C7C554^-6' +'-1191BB029103D4^-4' +'4FAE6F7FFFFFDC^0' +'-D68CBD0000002^0' +'6FB83F0000000C^0' +'-19F60C80000016^0' +'-63EBB51FDFE2F4^-5' +'-522208B5139BD^-5' +'-726318528F022^-5' +'4FAE76FFFFFFEC^0' +'-D68CB2^0' +'6FB84D00000014^0' +'-19F61620000019^0' +'-797A8BEDDFA1DC^-5' +'-486D983E7A7E74^-5' +'-3BD81EE9F3B608^-5' +'4FAE808000001C^0' +'-D68CA9^0' +'6FB85480000024^0' +'-19F621FFFFFFE6^0' +'-D4D3F8D164E7F8^-5' +'40DBC179F38674^-5' +'2141DF80A0CF18^-7' +'4FAE9A8000001^0' +'-D68CA20000002^0' +'6FB84F8000001C^0' +'-19F626E000001A^0' +'1C89CF286E5273^-5' +'-272C80F278DFEA^-5' +'-AC420A78A764D^-6' +'4FAE9580000004^0' +'-D68CA20000002^0' +'6FB8528^0' +'-19F6290000000E^0' +'20D8766B803EA8^-5' +'-7930DD6E7B4CB4^-5' +'-866A7D3BEE9098^-5' +'4FAE8CFFFFFFE8^0' +'-D68C99FFFFFFE^0' +'6FB86580000014^0' +'-19F62EA0000019^0' +'-203D9F134988C4^-5' +'1C154C303ED3AA^-5' +'2D1DACB9B75432^-5' +'4FAE918000000C^0' +'-D68C9C^0' +'6FB85F7FFFFFFC^0' +'-19F62F4000001A^0' +'-27BE3FBB7764FE^-5' +'5B1330AFBA40B8^-5' +'-289776837CC60C^-5' +'4FAE9AFFFFFFF4^0' +'-D68C990000002^0' +'6FB85F7FFFFFFC^0' +'-19F62640000019^0' +'5B3C233770F70C^-5' +'9D25BB1F7C9718^-5' +'-45DA17BAAA86E4^-5' +'4FAE9AFFFFFFF4^0' +'-D68C9AFFFFFFF^0' +'6FB862^0' +'-19F60E1FFFFFDF^0' +'-31698EDC595AE^-5' +'-2C5B44E39B37AC^-5' +'-94F247B44AD1A^-5' +'4FAE9F80000018^0' +'-D68C9000000018^0' +'6FB8728000001^0' +'-19F60FA000001C^0' +'676423F3E6957^-5' +'8DF023E7A3A6E^-6' +'E63032A0438FC^-6' +'4FAE9500000024^0' +'-D68C950000002^0' +'6FB871FFFFFFE4^0' +'-19F609A0000003^0' +'-5625548D7B3D7^-5' +'B3CA60871CF^-5' +'-F8B86C7381FAD^-6' +'4FAEA7FFFFFFEC^0' +'-D68C93^0' +'6FB86B7FFFFFE4^0' +'-19F5FAE0000022^0' +'-6186C59AE050C^-5' +'2B62E596442ED^-5' +'-1528C8674694DD^-5' +'4FAEB4FFFFFFE4^0' +'-D68C8F00000008^0' +'6FB86B^0' +'-19F5FAE0000022^0' +'-3F5B128C4500CA^-5' +'2B9E21A865FBB4^-5' +'-BC3C0E6750F128^-6' +'4FAEBDFFFFFFE8^0' +'-D68C8C0000002^0' +'6FB8698000001^0' +'-19F5F940000011^0' +'1A39EA08B23F33^-5' +'-37A21B4CE0B3F^-5' +'4A9E0069D898FC^-5' +'4FAEB77FFFFFEC^0' +'-D68C90FFFFFFE^0' +'6FB86480000004^0' +'-19F600A0000001^0' +'-323C6DA94F35^-5' +'-1D39616662262A^-5' +'8C834E0A320818^-6' +'4FAEBB^0' +'-D68C8F00000008^0' +'6FB8640000002^0' +'-19F606BFFFFFEF^0' +'-4DC2CAD86865CC^-5' +'1C20BD4E73C331^-5' +'-3E70337F59659^-5' +'4FAEC57FFFFFF4^0' +'-D68C88FFFFFFE8^0' +'6FB8688^0' +'-19F605A000000A^0' +'2BCB7BA8974E74^-5' +'-65F9804DB5DFE4^-5' +'-3A39970D2D6342^-5' +'4FAEBC0000001^0' +'-D68C860000001^0' +'6FB872FFFFFFF4^0' +'-19F60BA0000023^0' +'-4F5513FA0AC878^-5' +'D97E2EC1EAD948^-5' +'90A5BF0029D43^-6' +'4FAECFFFFFFFEC^0' +'-D68C860000001^0' +'6FB8688^0' +'-19F5F980000003^0' +'-1B5E49F48763DF^-5' +'9DEF92606C801^-5' +'-258D290CAB3AF4^-5' +'4FAEDC0000001C^0' +'-D68C84FFFFFFF8^0' +'6FB865FFFFFFFC^0' +'-19F5E8FFFFFFF4^0' +'-37E7AF77B72C94^-5' +'CD294C0096CFE^-5' +'-6940E42FED5D8^-5' +'4FAEEE80000004^0' +'-D68C7FFFFFFFE8^0' +'6FB8688^0' +'-19F5D280000014^0' +774 +'78D94F59EB33BC^-5' +'32721FF2A9AF7^-5' +'-4C88571EE2EB2C^-5' +'4FAEE580000004^0' +'-D68C81^0' +'6FB8700000000C^0' +'-19F5C3A0000016^0' +'-668FA80A1B33F^-5' +'-46B342FE98786^-5' +'-2A6D1D7FA9A328^-5' +'4FAEED0000001^0' +'-D68C7A0000002^0' +'6FB87600000024^0' +'-19F5CF^0' +'-22CBFDAC55282E^-5' +'-617A07C855B3C4^-5' +'675866933FA604^-5' +'4FAEE9FFFFFFE^0' +'-D68C7D00000008^0' +'6FB86E80000014^0' +'-19F5DF2^0' +'-103150BD793D53^-5' +'-B8AEC2DDF5438^-5' +'-225D455629B5B^-5' +'4FAEE1FFFFFFEC^0' +'-D68C78^0' +'6FB8790000000C^0' +'-19F5F1FFFFFFF6^0' +'-27D6E8711D5E52^-5' +'-3E88281C74CDB2^-5' +'-5A1780848A6D84^-5' +'4FAEE40000001^0' +'-D68C7100000018^0' +'6FB88480000014^0' +'-19F5F73FFFFFF^0' +'-59A21D958FC5C^-5' +'-3C34E24CA29F3^-5' +'-456EC76111111^-5' +'4FAEEAFFFFFFF^0' +'-D68C68FFFFFFE^0' +'6FB88CFFFFFFE4^0' +'-19F5FFC000000E^0' +'2F94CEF28F38CE^-6' +'-6EF2CED3F6599C^-5' +'-3DDD0E1C392716^-6' +'4FAEE47FFFFFF4^0' +'-D68C6700000008^0' +'6FB8918000000C^0' +'-19F60B00000022^0' +'-1450E959C0220F^-5' +'-16A86B4B343A01^-5' +'2356BA48F46B6A^-5' +'4FAEE50000002^0' +'-D68C6800000018^0' +'6FB88E80000024^0' +'-19F60FE000000D^0' +'-ECAF88B9594308^-6' +'-AB81BC8F54B37^-5' +'59CD7F8A312D88^-5' +'4FAEDC0000001C^0' +'-D68C69FFFFFFF8^0' +'6FB88B7FFFFFF4^0' +'-19F6261FFFFFFC^0' +'827409C4CB3838^-5' +'225A92C7D129EA^-5' +'-EA2F43C2E7CF78^-6' +'4FAED080000018^0' +'-D68C6F^0' +'6FB88D80000014^0' +'-19F61ADFFFFFE7^0' +'-4AE0E70B18C9AC^-5' +'A6E1E63884E12^-5' +'479B063771BB94^-5' +'4FAEE07FFFFFFC^0' +'-D68C71FFFFFFE^0' +'6FB87E7FFFFFFC^0' +'-19F6104000001D^0' +'30EEF436908A1C^-5' +'5C3F5BCA9EE72C^-5' +'220D156CD775A8^-5' +'4FAEE000000018^0' +'-D68C76FFFFFFE8^0' +'6FB877FFFFFFFC^0' +'-19F6053FFFFFFB^0' +'1E032CA72DD277^-5' +'CD0C2E121B976^-6' +'23AE081DE4406E^-5' +'4FAEDCFFFFFFE4^0' +'-D68C7A0000002^0' +'6FB87400000004^0' +'-19F6039FFFFFEA^0' +'-76813AEF7B146C^-5' +'-B6369519D87F98^-6' +'-2EC4E6B6F24A98^-5' +'4FAEE97FFFFFFC^0' +'-D68C72FFFFFFF8^0' +'6FB877FFFFFFFC^0' +'-19F6097FFFFFE5^0' +'-3423BDC6692B56^-5' +'12500A4BF5AE33^-5' +'22421B7B55A32C^-5' +'4FAEEF80000014^0' +'-D68C72FFFFFFF8^0' +'6FB872FFFFFFF4^0' +'-19F60BBFFFFFF8^0' +'328EB69C6B15E4^-5' +'52DAE06F95CAB8^-5' +'-5F55F63FFA9AB^-5' +'4FAEEFFFFFFFF8^0' +'-D68C7100000018^0' +'6FB87A8^0' +'-19F5FCA0000008^0' +'-FEF63C2E8C9D68^-5' +'-6A732432F7F3^-5' +'-1676A6D70F012B^-5' +'4FAF04FFFFFFE4^0' +'-D68C640000002^0' +'6FB87D7FFFFFEC^0' +'-19F614BFFFFFF9^0' +'264AB9BE07BE88^-5' +'-B3BE6DA7E60BD^-5' +'3F77B113FEECBE^-5' +'4FAEF67FFFFFF4^0' +'-D68C6700000008^0' +'6FB87E7FFFFFFC^0' +'-19F627FFFFFFFF^0' +'-34D292FFB961F4^-5' +'-B7A46FF1A043C^-5' +'-2C35726D691EE4^-5' +'4FAEF27FFFFFFC^0' +'-D68C5FFFFFFFE^0' +'6FB8898000001C^0' +'-19F63C5FFFFFEA^0' +'D0D76A4D9AF36^-5' +'-7B8FC7A0ED0B18^-5' +'1BD2E49EAEAC46^-5' +'4FAED58000002^0' +'-D68C6800000018^0' +'6FB88DFFFFFFFC^0' +'-19F63F0000000A^0' +'940A722B7EEB4^-5' +'320748B50719FC^-5' +'49CE8B5C532C44^-5' +'4FAEC7FFFFFFF8^0' +'-D68C72FFFFFFF8^0' +'6FB8867FFFFFEC^0' +'-19F6349FFFFFEA^0' +'FC70467568E99^-5' +'-4005336F069DF^-5' +'72F807C7F43904^-5' +'4FAEA88000001C^0' +'-D68C8200000008^0' +'6FB87FFFFFFFF^0' +'-19F63200000011^0' +'-514D0B023197E8^-5' +'104910CDB34D35^-4' +'-4605284F64F6F^-5' +'4FAEC000000008^0' +'-D68C7E00000018^0' +'6FB87BFFFFFFF4^0' +'-19F6185FFFFFE3^0' +'-94B76998C5641^-5' +'14065CD2B883C9^-4' +'-185F5FC9529C4F^-4' +'4FAEE5FFFFFFE8^0' +'-D68C6700000008^0' +'6FB89680000014^0' +'-19F5EFBFFFFFE3^0' +'-EA2737105606D8^-5' +'7D960ED2CAC514^-5' +'-EB7303D4EFE74^-5' +'4FAF087FFFFFFC^0' +'-D68C52FFFFFFE8^0' +'6FB8A780000008^0' +'-19F5E63FFFFFFD^0' +'-1BA85696C16198^-5' +'BFD8CB1C1F089^-5' +'-8FECFA99E90338^-5' +'4FAF1780000014^0' +'-D68C4C^0' +'6FB8AE7FFFFFEC^0' +'-19F5CDFFFFFFEF^0' +'5C005D8297F5A^-5' +'62E7A604A6EEE4^-5' +'-118E5DCC3F5E35^-4' +'4FAF16FFFFFFE8^0' +'-D68C41FFFFFFF8^0' +'6FB8C97FFFFFF^0' +'-19F5B3C0000009^0' +'-9A11FFDE6D731^-6' +'135EBD8C8F4444^-4' +'-198B2E5C95D77A^-4' +'4FAF2DFFFFFFF4^0' +'-D68C2EFFFFFFE^0' +'6FB8E80000000C^0' +'-19F583DFFFFFEE^0' +'-A3FB6F1640013^-5' +'B0DC69E63A1AE8^-5' +'-B12F516DDE26^-5' +'4FAF4B0000001C^0' +'-D68C210000002^0' +'6FB8F17FFFFFEC^0' +'-19F5735FFFFFDF^0' +'-102B1484DAD42E^-4' +'1214C9711B1FF6^-4' +'-704806BB4ECD2^-5' +'4FAF777FFFFFF4^0' +'-D68C14FFFFFFE8^0' +'6FB8EEFFFFFFEC^0' +'-19F55EE000001F^0' +'-BCA1F22FD135C8^-5' +'8BDAC1A0F7DE9^-5' +'-393946C5A5AE74^-5' +'4FAF938000000C^0' +'-D68C0BFFFFFFE8^0' +'6FB8ED0000001^0' +'-19F55840000005^0' +'3AA2FCD07A96F^-5' +'-7DA98F0AECF644^-5' +'-78E78EB46A5E2C^-5' +'4FAF7C7FFFFFFC^0' +'-D68C^0' +'6FB9117FFFFFFC^0' +'-19F562BFFFFFFB^0' +'-13D51546F68F66^-5' +'-52B6C8BC01D954^-5' +'D32DFFD3063E2^-5' +'4FAF777FFFFFF4^0' +'-D68C0A00000018^0' +'6FB8FE7FFFFFE4^0' +'-19F574BFFFFFFE^0' +'-79EB665500D7AC^-5' +'-C999BCA3841D3^-5' +'B931F6375BF7E^-5' +'4FAF770000001^0' +'-D68C0CFFFFFFF8^0' +'6FB8F17FFFFFEC^0' +'-19F597BFFFFFF4^0' +'-775D1D83F4A79^-5' +'C36B67B86A34B8^-5' +'-4FD92BBEA01014^-5' +'4FAF8EFFFFFFE4^0' +'-D68C0600000018^0' +'6FB8F080000024^0' +'-19F5869FFFFFE4^0' +'2350E0CA409E7^-5' +'-74160FDF5ABE94^-5' +'1D14F0C4CE12E1^-7' +'4FAF850000001C^0' +'-D68C0600000018^0' +'6FB8F57FFFFFE4^0' +'-19F590DFFFFFE8^0' +'22AC3D63FC4616^-5' +'-6AB35F5C9A917C^-5' +'C968C9133B5D08^-5' +'4FAF78FFFFFFE8^0' +'-D68C10FFFFFFF8^0' +'6FB8E50000002^0' +'-19F5A1FFFFFFF8^0' +'3EFD2A8471AC8A^-5' +'-17F5FB67610553^-4' +'117A447998FE0B^-4' +'4FAF59FFFFFFEC^0' +'-D68C1DFFFFFFE8^0' +'6FB8D77FFFFFFC^0' +'-19F5D1A0000021^0' +'54CB716C9A1EBC^-5' +'-A52FD5E7920FE8^-5' +'19C0E45417EBAA^-4' +'4FAF42FFFFFFE^0' +'-D68C3600000008^0' +'6FB8B40000002^0' +'-19F5EE6000000C^0' +'234D20290C7A14^-5' +'-13E4EE4E3CE01B^-4' +'B6F453F7414^-5' +'4FAF2B7FFFFFF^0' +'-D68C3CFFFFFFE8^0' +'6FB8AD8000002^0' +'-19F614E0000016^0' +'-162AE5AC53605B^-5' +'A802B83408E6A8^-6' +'-63C8657A88A40C^-6' +'4FAF2E8000002^0' +'-D68C3C0000002^0' +'6FB8AD8000002^0' +'-19F614BFFFFFF9^0' +'-11F8551922874F^-5' +'560D6D8F81B0E8^-5' +'-1C8A5CC12C6888^-5' +'4FAF358^0' +'-D68C3B00000018^0' +'6FB8ACFFFFFFF4^0' +'-19F60BA0000023^0' +'532DA29D17C46^-5' +'6CEDDC2BF3FDF^-5' +'-1A7A598216B28D^-5' +'4FAF32FFFFFFFC^0' +'-D68C3DFFFFFFF8^0' +'6FB8AC8000001^0' +'-19F5FA9FFFFFE8^0' +'1724CF5B53BADC^-5' +'BBF52FCE7D5B28^-5' +'68CF76DC820EB^-5' +'4FAF397FFFFFFC^0' +'-D68C47^0' +'6FB89A8000001^0' +'-19F5E9C0000012^0' +'ED6C8637686FD^-5' +'-111D1BC1C4C974^-5' +'8D67CD6767673^-5' +'4FAF1E00000014^0' +'-D68C57FFFFFFF^0' +'6FB88F7FFFFFEC^0' +'-19F5E420000008^0' +'23506DF93246BC^-5' +'7534FBDB53284C^-5' +'387D6BCF041F9A^-5' +'4FAF1FFFFFFFE8^0' +'-D68C5E00000008^0' +'6FB88580000024^0' +'-19F5D82000001E^0' +'12CE3473471A84^-4' +'12A16776E0B4F4^-5' +'-563EA79F2B7224^-5' +'4FAF027FFFFFE^0' +'-D68C64FFFFFFE8^0' +'6FB8918000000C^0' +'-19F5C260000015^0' +'-108C7D42AAEE79^-6' +'-3F5175C0D3D662^-5' +'E30246A5C67A9^-6' +'4FAEFF00000014^0' +'-D68C64FFFFFFE8^0' +'6FB8928000001C^0' +'-19F5C99FFFFFE7^0' +'-11097DC3BF6D5^-4' +'27E8B462CEB9B8^-5' +'5EF9FBFBD6E954^-5' +'4FAF1C8000001C^0' +'-D68C5FFFFFFFE^0' +'6FB8838^0' +'-19F5D800000001^0' +'-480652454E662^-5' +'-11B9D147439641^-4' +'9DA862107323F8^-5' +'4FAF128000000C^0' +'-D68C62^0' +'6FB87D00000004^0' +'-19F5FFC000000E^0' +'-2282C3EE10AA^-5' +'-83AF3097B98898^-5' +'6F43D927FED624^-5' +'4FAF0D80000004^0' +'-D68C64FFFFFFE8^0' +'6FB87600000024^0' +'-19F613BFFFFFEA^0' +'781EED13C2096^-5' +'-7A39B40DF92518^-5' +'B3A192BBF4C7F8^-5' +'4FAEF7FFFFFFEC^0' +'-D68C71FFFFFFE^0' +'6FB8698000001^0' +'-19F6210000001E^0' +'-2851D4628C59B8^-5' +'-267FAFCA2D73CA^-5' +'80DF55ADFB3B5^-5' +'4FAEF880000018^0' +'-D68C76FFFFFFE8^0' +'6FB85CFFFFFFF4^0' +'-19F62C3FFFFFEA^0' +'159B713F66CE1^-5' +'39BC75A588448A^-5' +'-7B1DEC067208BC^-5' +'4FAEFB0000001C^0' +'-D68C71FFFFFFE^0' +'6FB8680000001C^0' +'-19F6204^0' +'-4BE9D4D798D6B8^-5' +'44BCDD46F8B104^-5' +'3815103E8DDE2^-5' +'4FAF05FFFFFFF4^0' +'-D68C72FFFFFFF8^0' +'6FB85E7FFFFFEC^0' +'-19F61F6000000C^0' +'-41CA7543BF9C78^-5' +'38FE8FBE08AA22^-5' +'-C9BC1492E2DD6^-5' +'4FAF128000000C^0' +'-D68C65FFFFFFF8^0' +'6FB8707FFFFFF^0' +'-19F61520000009^0' +'-449DC1BDBA2D5^-5' +'C2F012BEF58458^-5' +'-7FA18ACF3EA478^-5' +'4FAF2600000004^0' +'-D68C5F00000018^0' +'6FB8757FFFFFFC^0' +'-19F5FF8000001C^0' +'-60D8C6798BF8FC^-5' +'7858BDE58856A8^-5' +'9220516635EEE8^-6' +'4FAF3680000014^0' +'-D68C5CFFFFFFF8^0' +'6FB86E80000014^0' +'-19F5F87FFFFFF3^0' +'A0F0C133811AC^-6' +'-6D6B6559D9C79^-5' +'A89BC63A0A4928^-6' +'4FAF366029BA98^0' +'-D68C5D2B9D90E^0' +'6FB86EAEBACA4C^0' +'-19F5F8D3560C4C^0' +'951C13ED286B48^-6' +'-6986FB49AAA29C^-5' +'9D98591E14FBB8^-6' +'1542E6D0527^B' +'1542E6F42ABFD2^B' +'1542E7342AC044^B' +'1542E7742ABFB7^B' +'1542E7B42AC029^B' +'1542E7F42ABF9C^B' +'1542E8342AC01E^B' +'1542E8742AD05^B' +'1542E8B42ACFC3^B' +'1542E8F42AD035^B' +'1542E9342ACFA8^B' +'1542E9742AD02A^B' +'1542E9B42ACF9D^B' +'1542E9F42AD00F^B' +'1542EA342ACF81^B' +'1542EA742ACFF4^B' +'1542EAB42AD076^B' +'1542EAF42ACFE9^B' +'1542EB342AD05B^B' +'1542EB742ACFCE^B' +'1542EBB42AD05^B' +'1542EBF42ACFB2^B' +'1542EC342AD035^B' +'1542ECB42AD01A^B' +'1542ECF42ACF8C^B' +'1542ED342AD00E^B' +'1542ED742AD081^B' +'1542EDB42ACFF3^B' +'1542EDF42AD066^B' +'1542EE342ACFD8^B' +'1542EE742AD05A^B' +'1542EEB42ACFCD^B' +'1542EEF42AD03F^B' +'1542EF342ACFB2^B' +'1542EF742AD034^B' +'1542EFB42ACF96^B' +'1542EFF42AD019^B' +'1542F0342ACF8B^B' +'1542F0742ACFFE^B' +'1542F0B42AD08^B' +'1542F0F42ACFE2^B' +'1542F1342AD065^B' +'1542F1742ACFD7^B' +'1542F1B42AD04A^B' +'1542F1F42ACFBC^B' +'1542F2342AD03F^B' +'1542F2742ACFB1^B' +'1542F2B42AD023^B' +'1542F2F42ACF96^B' +'1542F3342AD008^B' +'1542F3742ACF7B^B' +'1542F3B42ACFFD^B' +'1542F3F42AD07^B' +'1542F4342ACFE2^B' +'1542F4742AD064^B' +'1542F4B42ACFC7^B' +'1542F4F42AD049^B' +'1542F5342ACFBC^B' +'1542F5742AD02E^B' +'1542F5B42ACFA^B' +'1542F5F42AD013^B' +'1542F6342ACF85^B' +'1542F6742AD008^B' +'1542F6B42ACF7A^B' +'1542F6F42ACFEC^B' +'1542F7342AD06F^B' +'1542F7742ACFE1^B' +'1542F7B42AD054^B' +'1542F7F42ACFC6^B' +'1542F8342AD038^B' +'1542F8742ACFAB^B' +'1542F8B42AD02D^B' +'1542F8F42ACF9^B' +'1542F9342AD012^B' +'1542F9742ACF84^B' +'1542F9B42ACFF7^B' +'1542F9F42AD079^B' +'1542FA342ACFEC^B' +'1542FA742AD05E^B' +'1542FAB42ACFD1^B' +'1542FAF42AD053^B' +'1542FB342ACFB5^B' +'1542FB742AD038^B' +'1542FBB42ACFAA^B' +'1542FBF42AD01D^B' +'1542FC342ACF8F^B' +'1542FC742AD012^B' +'1542FCB42AD084^B' +'1542FCF42ACFF6^B' +'1542FD342AD079^B' +'1542FD742ACFDB^B' +'1542FDB42AD05E^B' +'1542FDF42ACFD^B' +'1542FE342AD042^B' +'1542FE742ACFB5^B' +'1542FEB42AD027^B' +'1542FEF42ACF9A^B' +'1542FF342AD01C^B' +'1542FF742ACF8E^B' +'1542FFB42AD001^B' +'1542FFF42AD083^B' +'154300342ACFF6^B' +'154300742AD068^B' +'154300B42ACFDA^B' +'154300F42AD04D^B' +'154301342ACFBF^B' +'154301742AD042^B' +'154301B42ACFA4^B' +'154301F42AD026^B' +'154302342ACF99^B' +'154302742AD00B^B' +'154302B42ACF7E^B' +'154302F42AD^B' +'154303342AD073^B' +'154303742ACFE5^B' +'154303B42AD068^B' +'154303F42ACFCA^B' +'154304342AD04C^B' +'154304742ACFBF^B' +'154304B42AD031^B' +'154304F42ACFA4^B' +'154305342AD026^B' +'154305742ACF88^B' +'154305B42AD00B^B' +'154305F42ACF7D^B' +'154306342ACFF^B' +'154306742AD072^B' +'154306B42ACFE4^B' +'154306F42AD057^B' +'154307342ACFC9^B' +'154307742AD03C^B' +'154307B42ACFAE^B' +'154307F42AD03^B' +'154308342ACFA3^B' +'154308742AD015^B' +'154308B42ACF88^B' +'154308F42AD00A^B' +'154309342AD07C^B' +'154309742ACFEF^B' +'154309B42AD061^B' +'154309F42ACFD4^B' +'15430A342AD056^B' +'15430A742ACFB8^B' +'15430AB42AD03B^B' +'15430AF42ACFAD^B' +'15430B342AD02^B' +'15430B742ACF92^B' +'15430BB42AD015^B' +'15430BF42AD087^B' +'15430C342ACFFA^B' +'15430C742AD07C^B' +'15430CB42ACFDE^B' +'15430CF42AD061^B' +'15430D342ACFD3^B' +'15430D742AD046^B' +'15430DB42ACFB8^B' +'15430DF42AD03A^B' +'15430E342ACF9D^B' +'15430E742AD01F^B' +'15430EB42ACF92^B' +'15430EF42AD004^B' +'15430F342AD086^B' +'15430F742ACFF9^B' +'15430FB42AD06B^B' +'15430FF42ACFDE^B' +'154310342AD05^B' +'154310742ACFC2^B' +'154310B42AD045^B' +'154310F42ACFB7^B' +'154311342AD02A^B' +'154311742ACF9C^B' +'154311B42AD01E^B' +'154312342AD003^B' +'154312742AD076^B' +'154312B42ACFE8^B' +'154312F42AD06B^B' +'154313342ACFCD^B' +'154313742AD04F^B' +'154313B42ACFC2^B' +'154313F42AD034^B' +'154314342ACFA7^B' +'154314742AD029^B' +'154314B42ACF8C^B' +'154314F42AD00E^B' +'154315342ACF8^B' +'154315742ACFF3^B' +'154315B42AD075^B' +'154315F42ACFE8^B' +'154316342AD05A^B' +'154316742ACFCC^B' +'154316B42AD04F^B' +'154316F42ACFB1^B' +'154317342AD034^B' +'154317742ACFA6^B' +'154317B42AD018^B' +'154317F42ACF8B^B' +'154318642ACFD7^B' +'154318A42AD05A^B' +'154318E42ACFCC^B' +'154319242AD03E^B' +'154319642ACFB1^B' +'154319A42AD033^B' +'154319E42ACF96^B' +'15431A242AD018^B' +'15431A642ACF8A^B' +'15431AA42ACFFD^B' +'15431AE42AD07F^B' +'15431B242ACFE2^B' +'15431B642AD064^B' +'15431BA42ACFD6^B' +'15431BE42AD049^B' +'15431C242ACFBB^B' +'15431C642AD03E^B' +'15431CA42ACFB^B' +'15431CE42AD022^B' +'15431D242ACF95^B' +'15431D642AD007^B' +'15431DA42ACF7A^B' +'15431DE42ACFFC^B' +'15431E242AD06E^B' +'15431E642ACFE1^B' +'15431EA42AD063^B' +'15431EE42ACFC6^B' +'15431F242AD048^B' +'15431F642ACFBA^B' +'15431FA42AD02D^B' +'15431FE42ACF9F^B' +'154320242AD022^B' +'154320642ACF84^B' +'154320A42AD007^B' +'154320E42ACF79^B' +'154321242ACFEC^B' +'154321642AD06E^B' +'154321A42ACFE^B' +'154321E42AD053^B' +'154322242ACFC5^B' +'154322642AD048^B' +'154322A42ACFAA^B' +'154322E42AD02C^B' +'154323242ACF9F^B' +'154323642AD011^B' +'154323A42ACF84^B' +'154323E42ACFF6^B' +'154324242AD078^B' +'154324642ACFEB^B' +'154324A42AD05D^B' +'154324E42ACFD^B' +'154325242AD052^B' +'154325642ACFC4^B' +'154325A42AD037^B' +'154325E42ACFA9^B' +'154326242AD01C^B' +'154326642ACF8E^B' +'154326A42AD01^B' +'154326E42AD083^B' +'154327242ACFF5^B' +'154327642AD078^B' +'154327A42ACFDA^B' +'154327E42AD05D^B' +'154328242ACFCF^B' +'154328642AD041^B' +'154328A42AE084^B' +'154328E42ADFE6^B' +'154329242AE069^B' +'154329642ADFDB^B' +'154329A42AE04E^B' +'154329E42ADFC^B' +'15432A242AE032^B' +'15432AA42AE027^B' +'15432AE42ADF9A^B' +'15432B242AE00C^B' +'15432B642ADF7E^B' +'15432BA42AE001^B' +'15432BE42AE073^B' +'15432C242ADFE6^B' +'15432C642AE058^B' +'15432CA42ADFCA^B' +'15432CE42AE04D^B' +'15432D242ADFAF^B' +'15432D642AE032^B' +'15432DA42ADFA4^B' +'15432DE42AE016^B' +'15432E242ADF89^B' +'15432E642AE00B^B' +'15432EA42AE07E^B' +'15432EE42ADFF^B' +'15432F242AE062^B' +'15432F642ADFD5^B' +'15432FA42AE057^B' +'15432FE42ADFCA^B' +'154330242AE03C^B' +'154330642ADFAF^B' +'154330A42AE031^B' +'154330E42ADF93^B' +'154331242AE016^B' +'154331642ADF88^B' +'154331A42ADFFB^B' +'154331E42AE07D^B' +'154332242ADFE^B' +'154332642AE062^B' +'154332A42ADFD4^B' +'154332E42AE047^B' +'154333242ADFB9^B' +'154333642AE03C^B' +'154333A42ADFAE^B' +'154333E42AE02^B' +'154334242ADF93^B' +'154334642AE005^B' +'154334A42AE088^B' +'154334E42ADFFA^B' +'154335242AE06C^B' +'154335642ADFDF^B' +'154335A42AE061^B' +'154335E42ADFC4^B' +'154336242AE046^B' +'154336642ADFB8^B' +'154336A42AE02B^B' +'154336E42ADF9D^B' +'154337242AE02^B' +'154337642ADF82^B' +'154337A42AE004^B' +'154337E42AE077^B' +'154338242ADFE9^B' +'154338642AE06C^B' +'154338E42AE051^B' +'154339242ADFC3^B' +'154339642AE045^B' +'154339A42ADFA8^B' +'154339E42AE02A^B' +'15433A242ADF9D^B' +'15433A642AE00F^B' +'15433AA42ADF82^B' +'15433AE42ADFF4^B' +'15433B242AE076^B' +'15433B642ADFE9^B' +'15433BA42AE05B^B' +'15433BE42ADFCE^B' +'15433C242AE05^B' +'15433C642ADFC2^B' +'15433CA42AE035^B' +'15433CE42ADFA7^B' +'15433D242AE01A^B' +'15433D642ADF8C^B' +'15433DA42AE00E^B' +'15433DE42AE081^B' +'15433E242ADFF3^B' +'15433E642AE076^B' +'15433EA42ADFD8^B' +'15433EE42AE05A^B' +'15433F242ADFCD^B' +'15433F642AE03F^B' +'15433F65E21^B' +'1542FFB42AD001^B' +'154319242AD03E^B' +'154332642AE062^B' +'1542E6D0527^B' +'1^1' +'16^3' +END_ARRAY 1 2822 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /home/kberry/kernel_sliced_tgo/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/em16_tgo_step_20190823.tsc b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/em16_tgo_step_20190823.tsc new file mode 100644 index 0000000..b42d085 --- /dev/null +++ b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/em16_tgo_step_20190823.tsc @@ -0,0 +1,225 @@ +KPL/SCLK + +ExoMars2016 TGO SCLK File by ESA SPICE Service +=========================================================================== + + This file is a SPICE spacecraft clock (SCLK) kernel containing + information required for the ExoMars2016 TGO spacecraft + on-board clock to UTC conversion. This file was generated by the + ESA SPICE Service ADCSng TCP2SCLK Module from the most recent + TGO Time Correlation Packet (TCP) data on August 25, 2019. + + +Production/History of this SCLK file +-------------------------------------------------------- + + This SCLK kernel is intended to be used with CK files with + structure IDs on board the spacecraft TGO_SPACECRAFT. + The NAIF ID code for TGO_SPACECRAFT is -143000. + + +Usage +-------------------------------------------------------- + + This file must be loaded into the user's program by a call to the + FURNSH subroutine + + CALL FURNSH ( 'this_file_name; ) -- FORTRAN + furnsh_c ( "this_file_name" ); -- C + cspice_furnsh, 'this_file_name' -- IDL + cspice_furnsh( 'this_file_name' ) -- MATLAB + spiceypy.furnsh( 'this_file_name' ) -- PYTHON + + in order to use the SPICELIB SCLK family of subroutines to convert + TGO_SPACECRAFT spacecraft on-board clock to ET and vice versa. + + +SCLK Format +-------------------------------------------------------- + + The on-board clock, the conversion for which is provided by this SCLK + file, consists of two fields: + + SSSSSSSSSS:FFFFF + + where: + + SSSSSSSSSS -- count of on-board seconds + + FFFFF -- count of fractions of a second with one fraction + being 1/65536 of a second; normally this field value + is within 0..65536 range. + + +References +-------------------------------------------------------- + + [1] SCLK Required Reading Document + + [2] TIME Required Reading Document + + [3] KERNEL Pool Required Reading Document + + [4] "ExoMars MCS Packetiser ICD'', + EXM-GS-ICD-ESC-32003, issue 1.1, 2014-02-05 + + +Contact Information +------------------------------------------------------------------------ + + If you have any questions regarding this file contact the + ESA SPICE Service (ESS) at ESAC: + + Marc Costa Sitja + (+34) 91-8131-457 + esa_spice@sciops.esa.int, marc.costa@esa.int + + +Kernel DATA +-------------------------------------------------------- + + The data used to generate this kernels has been obtained from the + GDDS for TGO_SPACECRAFT and processed in order to insert an additional + time correlation packet (TCP) between each pair of original valid TCP + records to force continuity between them. + + Each TCP record inserted has the UTC "validity start time" equal to + the time of the second TCP record in each pair minus 60 seconds. The + on-board clock (OBT) value for this extra packet is computed using the + gradient from the first TCP record in the pair, while the gradient of + the extra packet is computed so that the linear function ``passes'' + through the extra packet's UTC/OBT point and through the second + packet's UTC/OBT point, thus forcing continuity between the two original + trends. When such a ``continuous'' data stream is processed, no additional + adjustments to the gradients are performed and the correlation function + stored in this SPICE SCLK file almost completely matches time correlation + in the GDDS (except for short intervals before each TCP record.) + + + \begindata + + SCLK_KERNEL_ID = ( @2019-08-23/03:52:13.213796 ) + + SCLK_DATA_TYPE_143 = ( 1 ) + SCLK01_TIME_SYSTEM_143 = ( 2 ) + SCLK01_N_FIELDS_143 = ( 2 ) + SCLK01_MODULI_143 = ( 4294967296 65536 ) + SCLK01_OFFSETS_143 = ( 0 0 ) + SCLK01_OUTPUT_DELIM_143 = ( 2 ) + + SCLK_PARTITION_START_143 = ( 0.0000000000000E+00 ) + + SCLK_PARTITION_END_143 = ( 2.8147497671065E+15 ) + + SCLK01_COEFFICIENTS_143 = ( + + 0.0000000000000E+00 5.1117692137800E+08 9.9999999998741E-01 + 6.5176792440000E+09 5.1127637327191E+08 1.0000000382038E+00 + 6.8056288860000E+09 5.1128076703493E+08 9.8323534029297E-01 + 6.8096280910000E+09 5.1128082703493E+08 1.0000000819091E+00 + 9.1947900100000E+09 5.1131722139914E+08 9.9999633671719E-01 + 9.1987221850000E+09 5.1131728139914E+08 1.0000002399383E+00 + 9.3561158640000E+09 5.1131968303667E+08 1.0055689243396E+00 + 9.3600262470000E+09 5.1131974303667E+08 1.0000002363393E+00 + 1.6967140493000E+10 5.1143581841575E+08 9.9435849043473E-01 + 1.6971094962000E+10 5.1143587841575E+08 1.0000002548873E+00 + 1.7077160760000E+10 5.1143749685180E+08 1.0057166901818E+00 + 1.7081070569000E+10 5.1143755685180E+08 1.0000002934337E+00 + 4.2293552044000E+10 5.1182226890126E+08 9.9959856067290E-01 + 4.2297485783000E+10 5.1182232890126E+08 9.9998501457631E-01 + 6.0298036312000E+10 5.1209699138879E+08 1.0020249410187E+00 + 6.0301960526000E+10 5.1209705138879E+08 9.9999678119977E-01 + 6.0349497730000E+10 5.1209777674662E+08 9.9785708299893E-01 + 6.0353438334000E+10 5.1209783674662E+08 9.9998503186882E-01 + 7.2246476542100E+11 5.2220070259924E+08 9.9956165152538E-01 + 7.2246869930500E+11 5.2220076259924E+08 1.0000003295215E+00 + 1.3115685270120E+12 5.3118971556902E+08 1.0019847130248E+00 + 1.3115724513840E+12 5.3118977556902E+08 1.0000003851839E+00 + 1.6660560882050E+12 5.3659876869285E+08 9.9882865234051E-01 + 1.6660600249760E+12 5.3659882869285E+08 1.0000004470160E+00 + 1.7356436472620E+12 5.3766059098214E+08 9.9860453658936E-01 + 1.7356475849170E+12 5.3766065098214E+08 1.0000003598279E+00 + 1.7486013697810E+12 5.3785831012480E+08 9.9995951797786E-01 + 1.7486053021000E+12 5.3785837012480E+08 1.0000003997164E+00 + 1.7487863794260E+12 5.3786113314661E+08 9.9999945499033E-01 + 1.7487903115880E+12 5.3786119314661E+08 1.0000003742636E+00 + 1.8372551944540E+12 5.3921106063891E+08 9.9968525444791E-01 + 1.8372591278520E+12 5.3921112063891E+08 1.0000003774712E+00 + 2.3016422312920E+12 5.4629704713322E+08 9.9885701632191E-01 + 2.3016461679510E+12 5.4629710713322E+08 1.0000003435989E+00 + 2.7365798326800E+12 5.5293367046727E+08 1.0006242891921E+00 + 2.7365837623860E+12 5.5293373046727E+08 1.0000004025987E+00 + 2.9765234507030E+12 5.5659492101459E+08 1.0008241968782E+00 + 2.9765273796240E+12 5.5659498101459E+08 1.0000003988299E+00 + 3.2565247054780E+12 5.6086740285207E+08 1.0011369927221E+00 + 3.2565286331720E+12 5.6086746285207E+08 1.0000004218724E+00 + 3.8641162366190E+12 5.7013851784161E+08 1.0013798069006E+00 + 3.8641201633610E+12 5.7013857784161E+08 1.0000005897670E+00 + 3.8995489208390E+12 5.7067917809947E+08 9.9902967730341E-01 + 3.8995528568180E+12 5.7067923809948E+08 1.0000009708673E+00 + 3.9052685097450E+12 5.7076645213157E+08 9.9886047070852E-01 + 3.9052724463910E+12 5.7076651213157E+08 1.0000000863927E+00 + 3.9092888945290E+12 5.7082779826481E+08 1.0008979935327E+00 + 3.9092928231610E+12 5.7082785826481E+08 1.0000027314491E+00 + 3.8995295489030E+12 5.7067888211959E+08 1.0054710268725E+00 + 3.8995334596670E+12 5.7067894211959E+08 1.0000006765868E+00 + 3.9211766563660E+12 5.7100919132029E+08 9.9871367984990E-01 + 3.9211805935900E+12 5.7100925132029E+08 1.0000005610472E+00 + 3.9831775128370E+12 5.7195524970077E+08 1.0000006391892E+00 + 4.0187537248830E+12 5.7249809996934E+08 9.9829314098378E-01 + 4.0187576637670E+12 5.7249815996934E+08 1.0000004707657E+00 + 4.0239352700490E+12 5.7257716401154E+08 1.0000245084163E+00 + 4.0239392021130E+12 5.7257722401154E+08 1.0000004712584E+00 + 4.1659783347690E+12 5.7474457019675E+08 1.0002177869135E+00 + 4.1659822660730E+12 5.7474463019675E+08 1.0000005061981E+00 + 4.1771209497590E+12 5.7491459310748E+08 9.9995899741097E-01 + 4.1771248820800E+12 5.7491465310748E+08 1.0000004914049E+00 + 5.5349343336310E+12 5.9563319129696E+08 1.0017151571376E+00 + 5.5349382590590E+12 5.9563325129696E+08 1.0000005107393E+00 + 5.5632737381540E+12 5.9606561661629E+08 1.0000006357833E+00 + 5.5632776703120E+12 5.9606567661629E+08 1.0000005125693E+00 + 5.8480758997090E+12 6.0041135495150E+08 1.0000869056603E+00 + 5.8480798315280E+12 6.0041141495150E+08 1.0000005160884E+00 + 5.9207778610480E+12 6.0152069942169E+08 1.0000660207245E+00 + 5.9207817929480E+12 6.0152075942169E+08 1.0000005188089E+00 + 6.3049109638150E+12 6.0738210845362E+08 1.0003327721703E+00 + 6.3049148946670E+12 6.0738216845362E+08 1.0000005221856E+00 + 6.1875946446460E+12 6.0559200257100E+08 9.9982999846058E-01 + 6.1875985774750E+12 6.0559206257100E+08 1.0000005299101E+00 + 6.4416906851120E+12 6.0946920249841E+08 9.9972076715041E-01 + 6.4416946183700E+12 6.0946926249841E+08 1.0000005273844E+00 + 6.5341727467970E+12 6.1088036749717E+08 1.0000592840589E+00 + 6.5341766787240E+12 6.1088042749717E+08 1.0000005358402E+00 + 6.5732215046050E+12 6.1147620457852E+08 9.9997922870946E-01 + 6.5732254368470E+12 6.1147626457852E+08 1.0000004938450E+00 + 6.5593014728630E+12 6.1126380164424E+08 9.9987052890275E-01 + 6.5593054055320E+12 6.1126386164424E+08 1.0000005354385E+00 + 6.5938644901690E+12 6.1179119170927E+08 9.9987435454477E-01 + 6.5938684228230E+12 6.1179125170927E+08 1.0000005176865E+00 + 6.7144032523760E+12 6.1363046820025E+08 1.0000453485251E+00 + 6.7144071843580E+12 6.1363052820025E+08 1.0000005217165E+00 + 6.7301726871490E+12 6.1387109080731E+08 9.9999707242710E-01 + 6.7301766193210E+12 6.1387115080731E+08 1.0000005204626E+00 + 6.7362094712880E+12 6.1396320487084E+08 9.9999584805702E-01 + 6.7362134034650E+12 6.1396326487084E+08 1.0000005127281E+00 + 6.7417734770140E+12 6.1404810490380E+08 1.0000106186802E+00 + 6.7417774091320E+12 6.1404816490380E+08 1.0000005074975E+00 + 6.7968824430750E+12 6.1488900141974E+08 1.0002406686958E+00 + 6.7968863742890E+12 6.1488906141974E+08 1.0000005377167E+00 + 6.9108352006520E+12 6.1662778346007E+08 9.9996478184917E-01 + 6.9108391329500E+12 6.1662784346007E+08 1.0000005317068E+00 + 6.9557725011520E+12 6.1731347261189E+08 9.9995283632405E-01 + 6.9557764334970E+12 6.1731353261189E+08 1.0000005323549E+00 + 6.9974617478630E+12 6.1794960036942E+08 9.9995131158471E-01 + 6.9974656802140E+12 6.1794966036942E+08 1.0000005239968E+00 + 7.0637106938690E+12 6.1896047958889E+08 1.0000460404989E+00 + 7.0637146258480E+12 6.1896053958889E+08 1.0000005308853E+00 + 7.0884026932440E+12 6.1933724980163E+08 9.9998401130968E-01 + 7.0884066254670E+12 6.1933730980163E+08 1.0000005268305E+00 + + ) + + \begintext + + +End of SCLK file. \ No newline at end of file diff --git a/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/em16_tgo_v18.tf b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/em16_tgo_v18.tf new file mode 100644 index 0000000..b5ea617 --- /dev/null +++ b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/em16_tgo_v18.tf @@ -0,0 +1,3662 @@ +KPL/FK + +Trace Gas Orbiter (TGO) Spacecraft Frames Kernel +=============================================================================== + + This frame kernel contains a complete set of frame definitions for the + ExoMars 2016 Trace Gas Orbiter Spacecraft (TGO) including definitions for + the TGO structures and TGO science instrument frames. This kernel also + contains NAIF ID/name mapping for the TGO instruments. + + +Version and Date +------------------------------------------------------------------------ + + Version 1.8 -- August 8, 2019 -- Marc Costa Sitja, ESAC/ESA + Boris Semenov, NAIF/JPL + + Corrected TGO_ACS_TIRVIM_SCAN_BASE frame to TGO_ACS_TIRVIM_SCAN. + Removed TGO_NOMAD_LNO_SCAN references in favour of TGO_NOMAD_LNO_FMM. + Renamed TGO_ACS_TIRVIM_SCAN_OCC_BSR references to + TGO_ACS_TIRVIM_SCAN_OCC_BS. Corrected several typos and diagrams. + + Version 1.7 -- March 6, 2019 -- Marc Costa Sitja, ESAC/ESA + Marty Jean-Charles, CNES + + Updated SA+Z_ZERO and SA-Z_ZERO frames; the normal of the SA was + antiparallel to the Sun vector. + + Version 1.6 -- July 3, 2018 -- Marc Costa Sitja, ESAC/ESA + Nikolay Ignatiev, IKI + + Corrected typo in TGO_ACS_TIRVIM_SUN frame definition and added + TGO_ACS_TIRVIM_SUN_BSR ID. + + Version 1.5 -- June 18, 2018 -- Marc Costa Sitja, ESAC/ESA + + Updated NOMAD UVIS Occultation and NOMAD SO Boresight alignments. + + Version 1.4 -- May 15, 2018 -- Stepanov Tulyakov, EPFL + Marc Costa Sitja, ESAC/ESA + + Updated CaSSIS rotations of CRU with respect to SC and FSA with + respect to TEL. + Added LGAs reference frames, corrected STR IDs and added + Structures IDs. + + Version 1.3 -- March 29, 2018 -- Marc Costa Sitja, ESAC/ESA + Boris Semenov, NAIF/JPL + + Added Star Tracker reference frames and spacecraft reference + frame for planning CKs. + + Version 1.2 -- July 20, 2017 -- Marc Costa Sitja, ESAC/ESA + + Corrected typo in NOMAD UVIS reference frame. + + Version 1.1 -- July 20, 2017 -- Marc Costa Sitja, ESAC/ESA + Bernhard Geiger, ESAC/ESA + + Updated ACS frame definitions, added TIRVIM frames and + implemented boresight misalignments. + Corrected typos in NOMAD frame and ID descriptions. + + Version 1.0 -- January 15, 2017 -- Marc Costa Sitja, ESAC/ESA + + Corrected several HGA IDs from -226 to -143. + + Version 0.9 -- December 15, 2016 -- Marc Costa Sitja, ESAC/ESA + + Updated NOMAD_SO definitions with Alejandro Cardesin. + + Version 0.8 -- September 26, 2016 -- Marc Costa Sitja, ESAC/ESA + + Corrected NOMAD UVIS Nadir Boresight misalignment. + Renamed the NOMAD LNO Scan mirror frame (TGO_NOMAD_LNO_SCAN) to + NOMAD LNO Flip Mirror Mechanism frame (TGO_NOMAD_LNO_FMM). + Renamed the NOMAD LNO nadir and occultation frames + (TGO_NOMAD_LNO_*) to NOMAD LNO nadir and occultation operations + frames (TGO_NOMAD_LNO_OPS_*). + Minor edits to some text after NOMAD instrument team review. + Added reference [18]. + + Version 0.7 -- August 11, 2016 -- Marc Costa Sitja, ESAC/ESA + Bernhard Geiger, ESAC/ESA + Alejandro Cardesin, ESAC/ESA + + Added references [13], [14], [15], [16] and [17]. + Updated Spacecraft drawings with Main Engine. + Corrected TGO Solar Array Frames and TGO High Gain Antenna + definitions as described in reference [13]. + Separated the ACS NIR and the TRIVIM frames definitions sections. + Corrected rotation of the CaSSIS Filter Strip Assembly Frame. + Updated the NAIF IDs for CaSSIS definitions. + Corrected several typos and updated text and diagram information. + Updated NOMAD frames orientation with information provided by + I. Thomas ([15]). + Removed references to flip/scanning mirror in ACS NIR channel + frame definitions. + Updated ACS frames orientation with information provided by + A. Trokhimovskiy ([16]). + Corrected TGO_ACS_TIRVIM_SCAN frame definition. + + Version 0.6 -- June 6, 2016 -- Jorge Diaz del Rio, ODC Space + + Updated comments to exchange the Science Operations Frame Definitions + Kernel file name by the description of the data. + + Version 0.5 -- May 31, 2016 -- Jorge Diaz del Rio, ODC Space + + TGO_SA*_GIMBAL frame renamed to TGO_SA*_ZERO. Corrected typos in + comments. Added ``EXOMARS 2016 TGO'' and ``TRACE GAS ORBITER'' as + synonyms for TGO. + + Version 0.4 -- May 20, 2016 -- Jorge Diaz del Rio, ODC Space + Anton Ledkov, IKI + + Preliminary Version. Added ACS and NOMAD frames. Modified FREND + frame chain upon request from FREND Instrument Team. Corrected + CaSSIS CRU and FSA frames orientations. Added CaSSIS filter + name/ID mappings. Added SA and HGA frames. Added list of science + operations frames. + + Version 0.3 -- March 17, 2016 -- Jorge Diaz del Rio, ODC Space + + Preliminary Version. Corrected rotations in TGO_CASSIS_CRU and in + TGO_CASSIS_FSA frame definitions. Added FREND frames. + + Version 0.2 -- March 11, 2016 -- Jorge Diaz del Rio, ODC Space + + Preliminary Version. Added CaSSIS frames. + + Version 0.1 -- January 26, 2016 -- Jorge Diaz del Rio, ODC Space + + Preliminary Version. Added TGO_SPACECRAFT frame for its use with + test CK kernel. + + Version 0.0 -- December 17, 2015 -- Jorge Diaz del Rio, ODC Space + + Preliminary Version. Only TGO Name to NAIF ID mappings for their + use with test SPK kernel. + + Version 0.0-draft -- May 26, 2015 -- Anton Ledkov, IKI + + Draft Version. + + +References +------------------------------------------------------------------------ + + 1. ``Frames Required Reading'', NAIF + + 2. ``Kernel Pool Required Reading'', NAIF + + 3. ``C-Kernel Required Reading'', NAIF + + 4. ``ExoMars: Science Operations Centre - Flight Dynamics - Pointing + Timeline-ICD,'' EXM-GS-ICD-ESC-50003, Issue 1.4, 15 December 2015 + + 5. ``CaSSIS Rotation Axis Determination Report'', EXM-CA-TRE-UBE-00112 + Issue 0.7, 1 March 2016 + + 6. ``The Color and Stereo Surface Imaging System (CaSSIS) for ESA's + Trace Gas Orbiter.'' Eighth International Conference on Mars (2014) + N. Thomas et al. + + 7. ``FREND Mechanical ICD Drawings,'' EXM-FR-DRW-IKI-0020, Issue 1.2, + 1 March 2015 + + 8. Email from FREND PM (Alexey Malakhov) on March 17, 2016 (Re. TGO FREND + FK/IK approach) + + 9. ``High Resolution Middle Infrared Spectrometer, a Part of Atmospheric + Chemistry Suite (ACS) for ExoMars 2016 Trace Gas Orbiter'', + International Conference on Space Optics, Tenerife 7-10 October 2014 + + 10. ``NOMAD Experiment ICD'', EXM-PL-ICD-ESA-00025, Issue 2.7 2014-09-23 + + 11. ``Atmospheric Chemistry Suite (ACS): a Set of Infrared Spectrometers + for Atmospheric Measurements onboard ExoMars Trace Gas Orbiter'', A. + Trokhimovskiy et al. + + 12. TGO Science Operations Frames Definition Kernel, latest version. + + 13. ``EXOMARS OMB frame definitions and conventions'', + EXM-OM-TNO-AF-0361, Issue 3, 2011-10-14, Thales Alenia Space. + + 14. ``EXOMARS Spacecraft Mechanical Interface Control Document'', + EXM-MS-ICD-AI-0019, Issue 12, 2015-08-10, Thales Alenia Space. + + 15. Email from Ian Thomas <ian.thomas@aeronomie.be> ``[EM16-SOC] + [TGO] [SGS] [EM16.NOMAD] SPICE review and misalignment update by + 25th July'' on 25 July 2016. + + 16. Email from Alexander Trokhimovskiy <a.trokh@gmail.com> + ``Re: [EM16-SOC] [TGO] [SGS] [EM16.ACS] [EM16.NOMAD] SPICE review + and misalignment update by 25th July'' on 27 July 2016. + + 17. Email from Alexander Trokhimovskiy <a.trokh@gmail.com> + ``Re: [EM16-SOC] [TGO] [SGS] [EM16.ACS] [EM16.NOMAD] SPICE review + and misalignment update by 25th July'' on 11 August 2016. + + 18. Email from Ian Thomas <ian.thomas@aeronomie.be> ``UVIS Nadir + Boresight Correction'' on 16 September 2016. + + 19. ``Boresight Alignment'', ExoMars 2016 Confluence Page, + https://issues.cosmos.esa.int/exomarswiki/display/OE/Boresight+Alignment + Bernhard Geiger (ESAC/ESA), accessed on 19th July 2017. + + 20. Email from Bernhard Geiger (ESAC/ESA) ``TGO Star Tracker boresights and + frames'' on 7th November 2017. + + 21. ``ICD, EXOMARS HGA-A'', EXM-OM-ICD-MDA-0041-7, Louis-Philippe Lebel, + MacDonald, Dettwiler and Associates Corporation on 21st January 2015. + + 22. Email from Ian Thomas <ian.thomas@aeronomie.be>``New SO and UVIS solar + boresight vectors' on 13 June 2018. + + +Contact Information +------------------------------------------------------------------------ + + If you have any questions regarding this file contact the + ESA SPICE Service (ESS) at ESAC: + + Marc Costa Sitja + (+34) 91-8131-457 + esa_spice@sciops.esa.int, marc.costa@esa.int + + or SPICE support at IKI: + + Alexander Abbakumov + +7 (495) 333-40-13 + aabbakumov@romance.iki.rssi.ru + + or NAIF at JPL: + + Boris Semenov + +1 (818) 354-8136 + Boris.Semenov@jpl.nasa.gov + + +Implementation Notes +------------------------------------------------------------------------ + + This file is used by the SPICE system as follows: programs that make use + of this frame kernel must "load" the kernel normally during program + initialization. Loading the kernel associates the data items with + their names in a data structure called the "kernel pool". The SPICELIB + routine FURNSH loads a kernel into the pool as shown below: + + FORTRAN: (SPICELIB) + + CALL FURNSH ( frame_kernel_name ) + + C: (CSPICE) + + furnsh_c ( frame_kernel_name ); + + IDL: (ICY) + + cspice_furnsh, frame_kernel_name + + MATLAB: (MICE) + + cspice_furnsh ( 'frame_kernel_name' ) + + PYTHON: (SPICEYPY)* + + furnsh( frame_kernel_name ) + + In order for a program or routine to extract data from the pool, the + SPICELIB routines GDPOOL, GIPOOL, and GCPOOL are used. See [2] for + more details. + + This file was created and may be updated with a text editor or word + processor. + + * SPICEPY is a non-official, community developed Python wrapper for the + NAIF SPICE toolkit. Its development is managed on Github. + It is available at: https://github.com/AndrewAnnex/SpiceyPy + + +TGO NAIF ID Codes -- Summary Section +------------------------------------------------------------------------ + + The following names and NAIF ID codes are assigned to the TGO spacecraft, + its structures and science instruments (the keywords implementing these + definitions are located in the section "TGO NAIF ID Codes -- Definition + Section" at the end of this file): + + TGO Spacecraft and Spacecraft Structures names/IDs: + + TGO -143 (synonyms: EXOMARS 2016 TGO, + EXOMARS TGO, + and TRACE GAS ORBITER) + TGO_STR-1 -143031 + TGO_STR-2 -143032 + + ACS names/IDs: + + TGO_ACS -143100 + TGO_ACS_NIR_NAD -143111 + TGO_ACS_NIR_OCC -143112 + TGO_ACS_MIR -143120 + TGO_ACS_TIRVIM -143130 + TGO_ACS_TIRVIM_BBY -143131 + TGO_ACS_TIRVIM_SPC -143132 + TGO_ACS_TIRVIM_NAD -143133 + TGO_ACS_TIRVIM_OCC -143134 + TGO_ACS_TIRVIM_SUN -143140 + + FREND names/IDs: + + TGO_FREND -143200 + TGO_FREND_HE -143210 + TGO_FREND_SC -143220 + + NOMAD names/IDs: + + TGO_NOMAD -143300 + TGO_NOMAD_LNO -143310 + TGO_NOMAD_LNO_OPS_NAD -143311 + TGO_NOMAD_LNO_OPS_OCC -143312 + TGO_NOMAD_SO -143320 + TGO_NOMAD_UVIS_NAD -143331 + TGO_NOMAD_UVIS_OCC -143332 + + CaSSIS names/IDs: + + TGO_CASSIS -143400 + TGO_CASSIS_PAN -143421 + TGO_CASSIS_RED -143422 + TGO_CASSIS_NIR -143423 + TGO_CASSIS_BLU -143424 + + +TGO Frames +------------------------------------------------------------------------ + + The following TGO frames are defined in this kernel file: + + Name Relative to Type NAIF ID + ====================== ========================== ======= ======= + + TGO Spacecraft and Spacecraft Structures frames: + ------------------------------------------------ + TGO_SPACECRAFT J2000, CK -143000 + TGO_SPACECRAFT_PLAN + TGO_SPACECRAFT_PLAN J2000 CK -143002 + TGO_SA+Z_ZERO TGO_SPACECRAFT FIXED -143010 + TGO_SA+Z TGO_SA+Z_ZERO CK -143011 + TGO_SA-Z_ZERO TGO_SPACECRAFT FIXED -143012 + TGO_SA-Z TGO_SA-Z_ZERO CK -143013 + TGO_HGA_EL TGO_SPACECRAFT CK -143021 + TGO_HGA_AZ TGO_HGA_EL CK -143022 + TGO_HGA TGO_HGA_AZ FIXED -143025 + TGO_LGA+Z TGO_SPACECRAFT FIXED -143031 + TGO_LGA-Z TGO_SPACECRAFT FIXED -143032 + TGO_LGA-X TGO_SPACECRAFT FIXED -143033 + TGO_STR-1 TGO_SPACECRAFT FIXED -143041 + TGO_STR-2 TGO_SPACECRAFT FIXED -143042 + + ACS frames: + ----------- + TGO_ACS_NIR_BASE TGO_SPACECRAFT FIXED -143100 + TGO_ACS_NIR_NAD TGO_ACS_NIR_BASE FIXED -143111 + TGO_ACS_NIR_OCC TGO_ACS_NIR_BASE FIXED -143112 + TGO_ACS_MIR TGO_SPACECRAFT FIXED -143120 + TGO_ACS_TIRVIM_BASE TGO_SPACECRAFT FIXED -143105 + TGO_ACS_TIRVIM_SCAN_ROT TGO_ACS_TIRVIM_BASE FIXED -143106 + TGO_ACS_TIRVIM_SCAN TGO_ACS_TIRVIM_SCAN_ROT CK -143107 + TGO_ACS_TIRVIM TGO_ACS_TIRVIM_SCAN FIXED -143130 + TGO_ACS_TIRVIM_SCAN_BBY TGO_ACS_TIRVIM_BASE FIXED -143131 + TGO_ACS_TIRVIM_SCAN_SPC TGO_ACS_TIRVIM_BASE FIXED -143132 + TGO_ACS_TIRVIM_SCAN_NAD TGO_ACS_TIRVIM_BASE FIXED -143133 + TGO_ACS_TIRVIM_SCAN_OCC TGO_ACS_TIRVIM_BASE FIXED -143134 + TGO_ACS_TIRVIM_SCAN_OCC_BS TGO_ACS_TIRVIM_BASE FIXED -143135 + TGO_ACS_TIRVIM_SUN TGO_ACS_TIRVIM_BASE FIXED -143140 + TGO_ACS_TIRVIM_SUN_BSR TGO_ACS_TIRVIM_BASE FIXED -143141 + + FREND frames: + ------------- + TGO_FREND TGO_SPACECRAFT FIXED -143200 + + NOMAD frames: + ------------- + TGO_NOMAD_LNO_BASE TGO_SPACECRAFT FIXED -143300 + TGO_NOMAD_LNO_FMM TGO_NOMAD_LNO_BASE CK -143305 + TGO_NOMAD_LNO TGO_NOMAD_LNO_BASE FIXED -143310 + TGO_NOMAD_LNO_OPS_NAD TGO_NOMAD_LNO_BASE FIXED -143311 + TGO_NOMAD_LNO_OPS_OCC TGO_NOMAD_LNO_BASE FIXED -143312 + TGO_NOMAD_SO TGO_SPACECRAFT FIXED -143320 + TGO_NOMAD_UVIS_BASE TGO_SPACECRAFT FIXED -143330 + TGO_NOMAD_UVIS_NAD TGO_NOMAD_UVIS_BASE FIXED -143331 + TGO_NOMAD_UVIS_OCC TGO_NOMAD_UVIS_BASE FIXED -143332 + + CaSSIS frames: + -------------- + TGO_CASSIS_CRU TGO_SPACECRAFT FIXED -143400 + TGO_CASSIS_TEL TGO_CASSIS_CRU CK -143410 + TGO_CASSIS_FSA TGO_CASSIS_TEL FIXED -143420 + + + In addition, the following frames, in use by the ExoMars 2016 mission, are + defined in another kernel: + + Name Relative to Type NAIF ID + ====================== ========================== ======= ======= + + ExoMars 2016 mission science operations frames (1): + --------------------------------------------------- + TGO_MARS_NPO J2000 DYNAMIC -143900 + + (1) This frame is defined in the ExoMars 2016 Science Operations + Frame Definitions kernel file (see [12]). This frame can be used + 'as is' or to define default TGO attitude profiles. In order + to use it for the latter together with this frames kernel, + additional fixed-offset frames kernel(s) need to be loaded. See + the section ``Using this frame'' in the comment area of this file + for further details. + + +ExoMars 2016 Frames Hierarchy +-------------------------------------------------------------------------- + + The diagram below shows the ExoMars 2016 frames hierarchy (except + for science operations frames): + + + "J2000" INERTIAL + +-----------------------------------------------------+ + | | | | + |<-pck | | |<-pck + | | | | + v | | v + "IAU_MARS" | | "IAU_EARTH" + MARS BODY-FIXED | |<-ck EARTH BODY-FIXED + --------------- | | ---------------- + | v + "TGO_LGA+Z" "TGO_LGA+X" | "TGO_SPACECRAFT_PLAN" + ----------- ----------- | --------------------- + ^ ^ | | + | | |<-ck |<-ck + |<-fixed |<-fixed | | + | | | | + | "TGO_LGA-Z" | | | + | ----------- | | | + | ^ | | | + | | | | | + | |<-fixed | v v + | | | "TGO_SPACECRAFT" + +------------------------------------------------------------+ + | | . | | | + |<-fixed |<-fixed . |<-fixed |<-fixed ck->| + | | . | | | + v | . v v v + "TGO_SA+Z_ZERO" | . "TGO_STR-1" "TGO_STR-2" "TGO_HGA_EL" + --------------- | . ----------- ----------- ------------ + | | . | + |<-ck v . ck->| + | "TGO_SA-Z_ZERO" . | + v --------------- . v + "TGO_SA+Z" | . "TGO_HGA_AZ" + ---------- |<-ck . ------------ + | . | + v . fixed->| + "TGO_SA-Z" . | + ---------- . v + . "TGO_HGA" + . --------- + V + Individual instrument frame trees are provided + in the other sections of this file + + + Please refer to the ACS, CaSSIS, FREND and NOMAD sections for the frame + hierarchy of each payload; and to the TGO science operations frame + definitions kernel [12] for further details on these frame definitions. + + +TGO Spacecraft and Spacecraft Structures Frames +------------------------------------------------------------------------ + + This section of the file contains the definitions of the spacecraft + and spacecraft structures frames. + + DISCLAIMER: The origin of the frames specified in the following + definitions are not implemented. The ``true'' origin of all frames + is in the center of the TGO_SPACECRAFT frame, the center of which + is defined by the position given by the SPK (ephemeris) kernel in + use. + + +TGO Spacecraft Frames +-------------------------------------- + + According to [4] the TGO spacecraft reference frame -- TGO_SPACECRAFT -- + is defined as follows: + + - +X axis is perpendicular to the launch vehicle interface plane + and points towards the Schiaparelli Entry, Descent and Landing + Demonstrator Module (EDM) attachment point; + + - -Y axis is perpendicular to the payload Science Deck and points + towards the payload side; representing the reference spacecraft + line of sight towards Mars during science operations; + + - +Z axis completes the right-handed frame. + + - the origin of this frame is located at the centre of the launch + vehicle interface ring: at the bottom of the interface cylinder and + the top of the launch vehicle specific interface frame. + + + These diagrams illustrate the TGO_SPACECRAFT frame: + + -X S/C side (Main Engine side) view: + ------------------------------------ + + ^ + | toward Mars + | + + Science Deck + ._____________. + .__ _______________. | | .______________ ___. + | \ \ \ | | / \ \ | + | / / \ | ___ | / / / | + | \ \ +Zsc | / _ +Xsc | .' \ \ | + | / / <--------x) |o | / / | + | \ \ .' | \_|_/ | `. \ \ | + | / / / | Main |Engine| \ / / | + .__\ \_______________/ | (ME) | | \_______________\ \__. + +Z Solar Array ._____ v +Ysc . -Z Solar Array + ._____. + .' `. + / \ + . `. .' . +Xsc is into + | `o' | the page. + . | . + \ | / + `. .' + HGA ` --- ' + + + -Y S/C side (Science Deck side) view: + ------------------------------------- + _____ + / \ EDM + | | + ._____________. + | | | | + |nom| |acs| + |___' '___| + o==/ /==================o<| |>o==================/ /==o + +Z Solar Array |--. .--| -Z Solar Array + |ca| |fr| + |--' +Xsc '--| + | ^ | + | | | + | | | + +Zsc .______|______. + <-------x\ `. ME + /______+Ysc_\ + HGA `.|.' +Ysc is into the + page. + + ``nom'' corresponds to ``NOMAD''; + ``acs'' corresponds to ``ACS''; + ``ca'' corresponds to ``CaSSIS''; and + ``fr'' corresponds to ``FREND''. + + + +Z S/C side view: + ----------------- + + ._________________. + | | + ============o= | + | SA+Z +Zsc_..--, + | <-----o-..__| + | +Xsc || ME + ._________________.| + o-o|/| + \|V +Ysc + o | : + \ |/ + \| + HGA + + + Since the S/C bus attitude with respect to an inertial frame is provided + by a C-kernel (see [3] for more information), this frame is defined as + a CK-based frame. + + These sets of keywords define the TGO_SPACECRAFT frame: + + \begindata + + FRAME_TGO_SPACECRAFT = -143000 + FRAME_-143000_NAME = 'TGO_SPACECRAFT' + FRAME_-143000_CLASS = 3 + FRAME_-143000_CLASS_ID = -143000 + FRAME_-143000_CENTER = -143 + CK_-143000_SCLK = -143 + CK_-143000_SPK = -143 + OBJECT_-143_FRAME = 'TGO_SPACECRAFT' + + \begintext + + + An additional S/C bus reference frame is defined in order to accommodate + the C-kernels that have been generated with a fictional SCLK kernel. These + CK kernels contain predicted data and are used for long and mid term + planning. + + The before-mentioned CKs are generated with a fictional SCLK kernel due to + the fact that successive updates of the real SCLK kernel will lead to + erroneous results for the predicted data provided by those kernels after + the last Time Correlation Packet that the real SCLK contains. The + alternative of re-generating the planning CKs with the latest SCLK kernel + is not considered. + + In order to be able to use the long and mid term planning CKs with the + measured and short term planning CKs the planning CKs are generated with the + fictional SCLK and are defined relative to the TGO spacecraft planning + reference frame -- TGO_SPACECRAFT_PLAN --. Those planning CKs are then + appended with a CK segment generated with the real SCLK that maps the + TGO_SPACECRAFT_PLAN to the TGO_SPACECRAFT reference frame thus allowing + to use both planning and measured CK files together with correct results. + + Note that when new SCLK are available the segment boundaries of the + planning CKs will be affected. Due to this reason, the mapping segments + boundaries are adjusted inwards by a minute on each side to get a better + chance of them always being within the original CK segment boundaries. + + The TGO_SPACECRAFT_PLAN frame is defined as a CK-based frame. These sets of + keywords define the TGO_SPACECRAFT_PLAN frame. + + \begindata + + FRAME_TGO_SPACECRAFT_PLAN = -143002 + FRAME_-143002_NAME = 'TGO_SPACECRAFT_PLAN' + FRAME_-143002_CLASS = 3 + FRAME_-143002_CLASS_ID = -143002 + FRAME_-143002_CENTER = -143 + CK_-143002_SCLK = -143999 + CK_-143002_SPK = -143 + + \begintext + + +TGO Solar Array Frames +-------------------------------------------------------------------------- + + TGO solar arrays are articulated (having one degree of freedom), + therefore the Solar Array frames, TGO_SA+Z and TGO_SA-Z, are + defined as CK frames with their orientation given relative to + TGO_SA+Z_ZERO and TGO_SA-Z_ZERO respectively. + + TGO_SA+Z_ZERO and TGO_SA-Z_ZERO are two ``fixed-offset'' frames, + defined with respect to TGO_SPACECRAFT, as follows: + + - +Z is parallel to the longest side of the array, positively + oriented from the yoke to the end of the wing; + + - +X is antiparallel to the spacecraft bus +X axis, pointing + on the opposite direction to the EDM attachment side; + + - +Y completes the right-handed frame. + + - the origin of the frame is located at the yoke geometric + center. + + + Both Solar Array frames (TGO_SA+Z and TGO_SA-Z) are defined as + follows: + + - +Z is parallel to the longest side of the array, positively oriented + from the yoke to the end of the wing; + + - +X is normal to the solar array plane, the solar cells facing +Z; + + - +Y completes the right-handed frame; + + - the origin of the frame is located at the yoke geometric center. + + + The axis of rotation is parallel to the Z axis of the spacecraft and the + solar array frames. + + This diagram illustrates the TGO_SA+Z_ZERO, TGO_SA+Z, TGO_SA-Z_ZERO + and TGO_SA-Z frames: + + -X S/C side (Main Engine side) view: + ------------------------------------ + + ^ + | toward Mars + | + + +Ysa+z0 Science Deck + +Ysa+z ._____________. + .__ _______________. ^| | .______________ ___. + | \ \ \ || | / \ \ | + | / / +Zsa+z0 \ || _ +Xsa-z0 / +Zsa-z0 / / | + | \ \ +Zsa+z `.||+Zsc/ _ +Xsa-z.' +Zsa-z \ \ | + | / / <-------o| <----x)+Xsc |o--------> / / | + | \ \ .' +Xsa+z0|_/ ||`. \ \ | + | / / / +Xsa+z | || \ / / | + .__\ \_______________/ | v +Ysc |v \_______________\ \__. + +Z Solar Array .____________+Ysa-z0 -Z Solar Array + +Zsc ._____. +Ysa-z0 + .' `. + / \ + . `. .' . +Xsc is into the page; + | `o' | +Xsa+z, +Xsa+z0, + . | . +Xsa-z and +Xsa-z0 are + \ | / out of the page. + `. .' + HGA ` --- ' + + + These sets of keywords define solar array frames: + + \begindata + + FRAME_TGO_SA+Z_ZERO = -143010 + FRAME_-143010_NAME = 'TGO_SA+Z_ZERO' + FRAME_-143010_CLASS = 4 + FRAME_-143010_CLASS_ID = -143010 + FRAME_-143010_CENTER = -143 + TKFRAME_-143010_RELATIVE = 'TGO_SPACECRAFT' + TKFRAME_-143010_SPEC = 'ANGLES' + TKFRAME_-143010_UNITS = 'DEGREES' + TKFRAME_-143010_AXES = ( 3, 1, 2 ) + TKFRAME_-143010_ANGLES = ( 180.0, 0.0, 0.0 ) + + FRAME_TGO_SA+Z = -143011 + FRAME_-143011_NAME = 'TGO_SA+Z' + FRAME_-143011_CLASS = 3 + FRAME_-143011_CLASS_ID = -143011 + FRAME_-143011_CENTER = -143 + CK_-143011_SCLK = -143 + CK_-143011_SPK = -143 + + FRAME_TGO_SA-Z_ZERO = -143012 + FRAME_-143012_NAME = 'TGO_SA-Z_ZERO' + FRAME_-143012_CLASS = 4 + FRAME_-143012_CLASS_ID = -143012 + FRAME_-143012_CENTER = -143 + TKFRAME_-143012_RELATIVE = 'TGO_SPACECRAFT' + TKFRAME_-143012_SPEC = 'ANGLES' + TKFRAME_-143012_UNITS = 'DEGREES' + TKFRAME_-143012_AXES = ( 1, 2, 3 ) + TKFRAME_-143012_ANGLES = ( 180.0, 0.0, 180.0 ) + + FRAME_TGO_SA-Z = -143013 + FRAME_-143013_NAME = 'TGO_SA-Z' + FRAME_-143013_CLASS = 3 + FRAME_-143013_CLASS_ID = -143013 + FRAME_-143013_CENTER = -143 + CK_-143013_SCLK = -143 + CK_-143013_SPK = -143 + + \begintext + + +TGO High Gain Antenna Frame +--------------------------- + + The TGO High Gain Antenna is attached to the +Y panel of the S/C bus + in the corner with the -X panel by a gimbal providing two degrees of + freedom and it articulates during flight to track Earth. To incorporate + rotations in the gimbal the HGA frame chain includes three frames: + TGO_HGA_EL, TGO_HGA_AZ, and TGO_HGA. + + The first two frames are defined as CK-based frames and are + co-aligned with the spacecraft frame in the zero gimbal position. In + a non-zero position the TGO_HGA_EL is rotated from the spacecraft + frame by an elevation angle about +Y and the TGO_TGO_AZ frame is + rotated from the TGO_HGA_EL frame by an azimuth angle about +Z. These + rotations are stored in separated segments in CK files. + + In [21] TGO_HGA frame is equivalent to the ``High Gain Antenna Functional + Frame (HGAF)''. + + The TGO_HGA frame is defined as follows: + + - +Z axis is in the antenna boresight direction; + + - +X axis points from the gimbal toward the antenna dish + symmetry axis; + + - +Y axis completes the right hand frame; + + - the origin of the frame is located at the phase center + (theoretical and nominal location). + + The TGO_HGA frame is defined a fixed offset frame relative to the + TGO_HGA_AZ frame and is rotated by -90 degrees about +X from it. + + This diagram illustrates the TGO_HGA frames in the zero gimbal + position: + + -X S/C side (Main Engine side) view: + ------------------------------------ + ^ + | toward Mars + | + + Science Deck + ._____________. + .__ _______________. | | .______________ ___. + | \ \ \ | | / \ \ | + | / / \ | __ | / / / | + | \ \ +Zsc / _ +Xsc | .' \ \ | + | / / <------x) |o | / / | + | \ \ .' | \_|_/ | `. \ \ | + | / / / | | | \ / / | + .__\ \_______________+Zhga_az(*) | | \_______________\ \__. + +Z Solar Array +Zhga_el(*) v_+Ysc . -Z Solar Array + <------x +Xhga_az(*) +Xhga_el(*) + .' | `. + / | +Yhga_az(*) + . `. v +Zhga_el(*) +Xsc, +Xhga_az(*) + | Zhga o-------> and +Xhga_el(*) are + . | . +Yhga into the page; +Zhga + \ | / is out of the page. + `. | .' + HGA ` -V- ' + +Xhga + + + * The TGO_HGA_AZ and TGO_HGA_EL frames are in zero gimbal position. + + + This set of keywords defines the HGA frame as a CK frame: + + \begindata + + FRAME_TGO_HGA_EL = -143021 + FRAME_-143021_NAME = 'TGO_HGA_EL' + FRAME_-143021_CLASS = 3 + FRAME_-143021_CLASS_ID = -143021 + FRAME_-143021_CENTER = -143 + CK_-143021_SCLK = -143 + CK_-143021_SPK = -143 + + FRAME_TGO_HGA_AZ = -143022 + FRAME_-143022_NAME = 'TGO_HGA_AZ' + FRAME_-143022_CLASS = 3 + FRAME_-143022_CLASS_ID = -143022 + FRAME_-143022_CENTER = -143 + CK_-143022_SCLK = -143 + CK_-143022_SPK = -143 + + FRAME_TGO_HGA = -143025 + FRAME_-143025_NAME = 'TGO_HGA' + FRAME_-143025_CLASS = 4 + FRAME_-143025_CLASS_ID = -143025 + FRAME_-143025_CENTER = -143 + TKFRAME_-143025_RELATIVE = 'TGO_HGA_AZ' + TKFRAME_-143025_SPEC = 'ANGLES' + TKFRAME_-143025_UNITS = 'DEGREES' + TKFRAME_-143025_ANGLES = ( 0.000, 90.000, 0.000 ) + TKFRAME_-143025_AXES = ( 2, 1, 3 ) + + \begintext + + +TGO Low Gain Antennae Frames +---------------------------- + + The low gain antenna is an essential component of the S/C in an + emergency case. During and after separation, full antenna coverage is + necessary before a stable attitude is achieved, requiring three antennas + with spherical coverage. In case of S/C survival mode, the LGAs provide + the communication capability for recovery by ground operation. + + TGO has three Low Gain Antennae installed in the +Z, -Z and -X panels of + the S/C bus -- TGO_LGA+Z, TGO_LGA-Z, TGO_LGA-X -- and are defined as + ``fixed-offset'', defined with respect to the TGO_SPACECRAFT frame as + follows (from [13]): + + - +X axis is in the antenna boresight direction (nominally + co-aligned to the spacecraft +Z, -Z and -X axis); + + - +Y axis is in the direction of the spacecraft +X axis; + + - +Z completes the right hand frame; + + - the origin of the frame is defined as a reference mounting hole + of each LGA. + + + This diagram illustrates the TGO Low Gain Antennae frames: + + -X S/C side (Main Engine side) view: + ------------------------------------ + + ^ + | toward Mars + | + + Science Deck + ._____________. + .__ _______________. | | .______________ ___. + | \ \ +Zlga+z ^ ^ +Zlga-z \ \ | + | / / \ | +Zlga-x | / / / | + | \ \ `. | ^ / _ \ | .' \ \ | + | / / +Xlga+z <------o | | +Ylga-z x------> +Xlga-z / / | + | \ \ +Ylga+z| \___/ | `. \ \ | + | / / / | o----> +Ylga-x \ / / | + .__\ \_______________/ +Xlga-x | \_______________\ \__. + +Z Solar Array ._____________. -Z Solar Array + ._____. + .' `. + <--------x +Xsc / \ The TGO_SPACECRAFT frame + +Zsc | . `. .' . origin is conveniently + | | `o' | moved. + | . | . + v \ | / + +Ysc `. .' +Xsc, +Ylga-z is into + HGA ` --- ' the page; +Xlga-x and + +Ylga+z are out of + the page. + + + Since the SPICE frames subsystem calls for specifying the reverse + transformation--going from the instrument or structure frame to the + base frame--as compared to the description given above, the order of + rotations assigned to the TKFRAME_*_AXES keyword is also reversed + compared to the above text, and the signs associated with the + rotation angles assigned to the TKFRAME_*_ANGLES keyword are the + opposite from what is written in the above text. + + \begindata + + FRAME_TGO_LGA+Z = -143031 + FRAME_-143031_NAME = 'TGO_LGA+Z' + FRAME_-143031_CLASS = 4 + FRAME_-143031_CLASS_ID = -143031 + FRAME_-143031_CENTER = -143 + TKFRAME_-143031_RELATIVE = 'TGO_SPACECRAFT' + TKFRAME_-143031_SPEC = 'ANGLES' + TKFRAME_-143031_UNITS = 'DEGREES' + TKFRAME_-143031_AXES = ( 2, 1, 3 ) + TKFRAME_-143031_ANGLES = ( 0.0, -90.0, -90.0 ) + + FRAME_TGO_LGA-Z = -143032 + FRAME_-143032_NAME = 'TGO_LGA-Z' + FRAME_-143032_CLASS = 4 + FRAME_-143032_CLASS_ID = -143032 + FRAME_-143032_CENTER = -143 + TKFRAME_-143032_RELATIVE = 'TGO_SPACECRAFT' + TKFRAME_-143032_SPEC = 'ANGLES' + TKFRAME_-143032_UNITS = 'DEGREES' + TKFRAME_-143032_AXES = ( 2, 1, 3 ) + TKFRAME_-143032_ANGLES = ( 0.0, -90.0, +90.0 ) + + FRAME_TGO_LGA-X = -143033 + FRAME_-143033_NAME = 'TGO_LGA-X' + FRAME_-143033_CLASS = 4 + FRAME_-143033_CLASS_ID = -143033 + FRAME_-143033_CENTER = -143 + TKFRAME_-143033_RELATIVE = 'TGO_SPACECRAFT' + TKFRAME_-143033_SPEC = 'ANGLES' + TKFRAME_-143033_UNITS = 'DEGREES' + TKFRAME_-143033_AXES = ( 3, 1, 2 ) + TKFRAME_-143033_ANGLES = ( 0.0, +90.0, 180.0 ) + + \begintext + + +TGO Star Trackers Frames +-------------------------------------------------------------------------- + + There are two Star Trackers (STRs) mounted mounted close to the PLM + Instruments, on a dedicated panel attached to the 2 PLM Bench panels with + their boresight canted 42 degrees from the spacecraft +X axis and with 5 deg + above the XZ plane towards the +Y axis. The nominal and redundant STR are + in mirror position with respect to the XY plane. This layout ensures a + large angle between STR boresight and Sun whatever mission phase and that + all S/C appendages (especially the Solar Arrays) are maintained outside of + the Sun Exclusion Angle. The redundant STR is not co-aligned with main unit + to minimize the risk of failure propagation in case of an unexpected + external straylight perturbation. The angle between the two boresight is + 83 degrees. The on-board software manages fully autonomously the power-on + of the STR until operational tracking mode is reached. + + The Star Tracker STR-1 and STR-2 frames -- TGO_STR-1 and TGO_STR-2 -- are + defined as follows: + + - +Z axis is anti-parallel to the direction of an incoming collimated + light ray which is parallel to the optical axis; + + - +X axis is in the plane formed by the +Z axis and the vector from + the detector centre pointing along the positively counted detector + rows, perpendicular to the +Z axis + + - +Y axis completes the right hand frame; + + - the origin of the frame is is defined as the intersection of the + mounting interface plane and the +X Panel mounting hole. + + + These diagrams illustrate the Star Trackers frames: + + + -Y S/C side (Science Deck side) view: + ------------------------------------- + + +Zstr-2 _____ +Zstr-1 + ^ / \ EDM ^ + \ | | / + \ ._____________. / + \| | | |/ + +Xstr-2 .o | | x. +Ystr-1 + .' |___' '___| '. + o==/ /===============.' o | |>o='. ==============/ /==o + V | -. .--| V + -Ystr-2 | | | | +Xstr-1 + |--' +Xsc '--| + | ^ | + | | | Ysc and +Ystr-1 are + | | | into the page. + +Zsc .______|______. Xstr-2 is out of the + <-------x `. ME page. + /______+Ysc \ + HGA `.|.' + + + The rotation matrices from the Star Tracker frames to the S/C frame are + the matrices that result of the following quaternions (from [20]): + + + Quaternion = ( 0.40858701, 0.01988630, -0.91164303, -0.03958660 ) + STR-1 -> SC q_0 q_1 q_2 q_3 + + + Quaternion = ( 0.65510702, 0.31692499, -0.25880700, 0.63514697 ) + STR-2 -> SC q_0 q_1 q_2 q_3 + + + This is incorporated by the frame definitions below. + + \begindata + + FRAME_TGO_STR-1 = -143041 + FRAME_-143041_NAME = 'TGO_STR-1' + FRAME_-143041_CLASS = 4 + FRAME_-143041_CLASS_ID = -143041 + FRAME_-143041_CENTER = -143 + TKFRAME_-143041_RELATIVE = 'TGO_SPACECRAFT' + TKFRAME_-143041_SPEC = 'MATRIX' + TKFRAME_-143041_MATRIX = ( -0.66532202, -0.00390928, -0.74654627, + -0.06860763, 0.99607487, 0.05592719, + 0.74339734, 0.08842836, -0.66297875 ) + + FRAME_TGO_STR-2 = -143042 + FRAME_-143042_NAME = 'TGO_STR-2' + FRAME_-143042_CLASS = 4 + FRAME_-143042_CLASS_ID = -143042 + FRAME_-143042_CENTER = -143 + TKFRAME_-143042_RELATIVE = 'TGO_SPACECRAFT' + TKFRAME_-143042_SPEC = 'MATRIX' + TKFRAME_-143042_MATRIX = ( 0.05921395, -0.99622389, 0.06349536, + 0.66813407, -0.00770686, -0.74400099, + 0.74168091, 0.08647865, 0.66515477 ) + + \begintext + + +ACS Frames +------------------------------------------------------------------------ + + This section of the file contains the definitions of the Atmospheric + Chemistry Suite (ACS) instrument frames. + + +ACS Frame Tree +~~~~~~~~~~~~~~ + + The diagram below shows the ACS frame hierarchy. + + + "J2000" INERTIAL + +-----------------------------------------------------+ + | | | + |<-pck | |<-pck + | | | + v | v + "IAU_MARS" | "IAU_EARTH" + MARS BODY-FIXED |<-ck EARTH BODY-FIXED + --------------- | ---------------- + v + "TGO_SPACECRAFT" + +-----------------------------------------+ + | | | + |<-fixed |<-fixed |<-fixed + | | | + v v | + "TGO_ACS_NIR_BASE" "TGO_ACS_MIR" | + +---------------------+ ------------- | + | | | + |<-fixed |<-fixed | + | | | + v v | + "TGO_ACS_NIR_NAD" "TGO_ACS_NIR_OCC" | + ----------------- ----------------- | + | + v + "TGO_ACS_TIRVIM_BASE" + +-------------------------------------------------------------------------+ + | | | | | | | | + |<-fxd |<-fxd |<-fxd |<-fxd |<-fxd fixed->| fixed->| fixed->| + | | | | | | | | + | | | | v | v | + | | | | "TGO_ACS_TIRVIM_SCAN_BBY" | "TGO_ACS_TIRVIM_SUN" | + | | | | ------------------------- | -------------------- | + | | | v | v + | | | "TGO_ACS_TIRVIM_SCAN_SPC" | "TGO_ACS_TIRVIM_SUN_BSR" + | | | ------------------------- | ------------------------ + | | v | + | | "TGO_ACS_TIRVIM_SCAN_NAD" | + | | ------------------------- | + | v v + | "TGO_ACS_TIRVIM_SCAN_OCC" "TGO_ACS_TIRVIM_SCAN_ROT" + | ------------------------- ------------------------- + v | + "TGO_ACS_TIRVIM_SCAN_OCC_BS" ck->| + ---------------------------- | + v + "TGO_ACS_TIRVIM_SCAN" + --------------------- + | + fixed->| + | + v + "TGO_ACS_TIRVIM" + ---------------- + + +ACS TIRVIM Base Frame +~~~~~~~~~~~~~~~~~~~~~ + + The ACS Thermal Infrared V-shape Interferometer Mounting Spectrometer + (TIRVIM) is rigidly mounted on the spacecraft Science Deck. Therefore, + the base frame associated with it -- the ACS TIRVIM Base frame, + TGO_ACS_TIRVIM_BASE -- is specified as a fixed offset frame + with its orientation given relative to the TGO_SPACECRAFT frame. + + The ACS TIRVIM Base frame are defined as follows (from [9]): + + - +X axis is along the nominal spectrometer mirror rotation axis, and + it is nominally co-aligned with the spacecraft +Z axis; + + - +Z axis is co-aligned with the -Y spacecraft axis and it is along + the spectrometer boresight in "nadir" position; + + - +Y axis completes the right-handed frame; + + - the origin of this frame is located at the intersection of the + spectrometer scanning mirror rotation axis and mirror central axis. + + + These diagrams illustrate the nominal TGO_ACS_TIRVIM_BASE frame with + respect to the spacecraft frame. + + + -X S/C side (Main Engine side) view: + ------------------------------------ + + + ^ + | toward Mars + | + | ^ +Zacs_tirvim_base + | + Science deck | + .___________|_. + .__ _______________. | <-------o +Yacs_tirvim_base____ ___. + | \ \ \ | +Xacs_tirvim_base/ \ \ | + | / / \ | ___ | / / / | + | \ \ +Zsc | / _ +Xsc | .' \ \ | + | / / <--------x) |o | / / | + | \ \ .' | \_|_/ | `. \ \ | + | / / / | | | \ / / | + .__\ \_______________/ | | | \_______________\ \__. + +Z Solar Array ._____ v +Ysc . -Z Solar Array + ._____. + .' `. + / \ + . `. .' . +Xsc is into the page; + | `o' | +Yacs_tirvim_base is + . | . out of the page. + \ | / + `. .' + HGA ` --- ' + + + -Y S/C side (Science Deck side) view: + ------------------------------------- + _____ + / \ EDM + | | + ._____________. + |+Xacs_tirvim_base + | <------o | +Zacs_tirvim_base + +Zsc | '__|_| + o==/ /==================o<| | |>o==================/ /==o + +Z Solar Array | | | -Z Solar Array + | v +Yacs_tirvim_base + | +Xsc | + | ^ | + | | | + | | | + +Zsc .______|______. +Ysc is into the + <-------x `. ME page; + /______+Ysc \ +Zacs_tirvim_base + HGA `.|.' is out of the page. + + + Nominally, a rotation of -90 degrees about +Y spacecraft axis and then + a rotation of 90 degrees about the +X resulting axis are required to + align the TGO_SPACECRAFT to the TGO_ACS_TIRVIM_BASE frame. + + + Since the SPICE frames subsystem calls for specifying the reverse + transformation--going from the instrument or structure frame to the + base frame--as compared to the description given above, the order of + rotations assigned to the TKFRAME_*_AXES keyword is also reversed + compared to the above text, and the signs associated with the + rotation angles assigned to the TKFRAME_*_ANGLES keyword are the + opposite from what is written in the above text. + + \begindata + + FRAME_TGO_ACS_TIRVIM_BASE = -143105 + FRAME_-143105_NAME = 'TGO_ACS_TIRVIM_BASE' + FRAME_-143105_CLASS = 4 + FRAME_-143105_CLASS_ID = -143105 + FRAME_-143105_CENTER = -143 + TKFRAME_-143105_RELATIVE = 'TGO_SPACECRAFT' + TKFRAME_-143105_SPEC = 'ANGLES' + TKFRAME_-143105_UNITS = 'DEGREES' + TKFRAME_-143105_AXES = ( 3, 2, 1 ) + TKFRAME_-143105_ANGLES = ( 0.0, 90.0, -90.0 ) + + \begintext + + +ACS TIRVIM Scanning Mirror frames +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + The Thermal Infrared V-shape Interferometer Mounting Spectrometer + (TIRVIM) has a single-axis scanning mirror that provide the possibility + of observation in nadir and any position from it (360 degrees of positive + rotation only) (see [11]). + + Since this scanning mirrors rotate with respect to the TIRVIM base, + the TGO_ACS_TIRVIM_SCAN frame is defined as a CK frame with its orientation + provided in a CK file relative to the TGO_ACS_TIRVIM_SCAN_ROT frames. The + TGO_ACS_TIRVIM_SCAN_ROT frame is then defined to incorporate misalignments + in the Scanner rotation axis. + + The ACS TIRVIM scanning mirror rotation frame and the ACS TIRVIM scanning + mirror frames -- TGO_ACS_TIRVIM_SCAN_ROT and TGO_ACS_TIRVIM_SCAN -- are + defined as (from [9]): + + - +X axis is along the nominal spectrometer scanning mirror rotation + axis, and it is nominally co-aligned with the spectrometer base +X + axis; + + - +Z axis is parallel to the scanning mirror boresight that defines + the spectrometer boresight; in 'nadir' scanner position is co-aligned + with the -Y spacecraft axis -- this is the 'fixed' position for + the TGO_ACS_TIRVIM_SCAN_ROT frame --; in 'space' scanner position is + co-aligned with the +X spacecraft axis; + + - +Y axis completes the right-handed frame; + + - the origin of this frame is located at the intersection of the + spectrometer scanning mirror rotation axis and mirror central axis. + + + For an arbitrary scanner angle, the scanning mirror frame base is rotated + by this angle about the +X axis with respect to its rotation frame. The + sense of rotation is: + + (1) nadir - (2) space - (3) black body - (4) occultation - (1) nadir + + These diagrams illustrate the TGO_ACS_TIRVIM frames for nominal scanner + positions 'nadir' (~0.0 degrees), equivalent to TGO_ACS_TIRVIM_SCAN_ROT, + solar 'occultation' (~67.07 deg from the spacecraft -Y axis to the -X in + the XY plane) and 'space' (~90.00 deg from the spacecraft -Y axis to the + +X in the XY plane). All diagrams are +Z S/C side view: + + + Scanner in 'nadir' position Scanner in 'occ' position + --------------------------- ------------------------- + + (1) +Zbase (4) +Zbase + ^ +Zscan ^ + | | +Zscan + | Science |_~67deg .^ + | ACS Deck | \ .' Science Deck + ._____|___________. ._ACS_| .'________. + | o-------> | | o-------> | + ============o= +Ybase ========\===o= +Ybase + SA+Z +Yscan_..--, SA+Z \ |__..--, + | <-----o-..__| | \ <-----o-..__| + | +Xsc || ME | v +Xsc || ME + ._________________.| ._________+Yscan_.|| + o-o|/| o-o|/| + \|V +Ysc \|V +Ysc + o | : o | : + \ |/ \ |/ + \| \| + HGA HGA + + + Scanner in 'space' position Scanner in 'black body' position + --------------------------- -------------------------------- + + (2) +Zbase (3) +Zbase + ^ +Yscan ^ + | | + | Science | Science + ~90deg.-| ACS Deck ~180deg.-| ACS Deck + +Zscan _/___|___________. ._/___|___________. + <-------o-------> | <-------o-------> | + ============o= +Ybase +Yscan=\===|====o= +Ybase + SA+Z |__..--, SA+Z'._| |__..--, + | <-----o-..__| | | <-----o-..__| + | +Xsc || ME | V +Xsc || ME + ._________________.| .___+Zscan_________.| + o-o|/| o-o|/| + \|V +Ysc \|V +Ysc + o | : o | : + \ |/ \ |/ + \| \| + HGA HGA + + + +Zsc, +Xbase, and +Xscan are + out of the page. + + + Nominally the TGO_ACS_TIRVIM_SCAN_ROT frame is equivalent to the + TGO_ACS_TIRVIM_BASE frame. + + These sets of keywords define the TIRVIM scanning mirror frame as a + CK based frame and the TIRVIM scanning mirror rotation frame as a + fixed-offset frame. Since the SPICE frames subsystem calls for specifying + the reverse transformation--going from the instrument or structure frame to + the base frame--as compared to the description given above, the order of + rotations assigned to the TKFRAME_*_AXES keyword is also reversed compared + to the above text, and the signs associated with the rotation angles + assigned to the TKFRAME_*_ANGLES keyword are the opposite from what is + written in the above text.: + + \begindata + + FRAME_TGO_ACS_TIRVIM_SCAN_ROT = -143106 + FRAME_-143106_NAME = 'TGO_ACS_TIRVIM_SCAN_ROT' + FRAME_-143106_CLASS = 4 + FRAME_-143106_CLASS_ID = -143106 + FRAME_-143106_CENTER = -143 + TKFRAME_-143106_RELATIVE = 'TGO_ACS_TIRVIM_BASE' + TKFRAME_-143106_SPEC = 'ANGLES' + TKFRAME_-143106_UNITS = 'DEGREES' + TKFRAME_-143106_AXES = ( 3, 2, 1 ) + TKFRAME_-143106_ANGLES = ( 0.0, 0.0, 0.0 ) + + FRAME_TGO_ACS_TIRVIM_SCAN = -143107 + FRAME_-143107_NAME = 'TGO_ACS_TIRVIM_SCAN' + FRAME_-143107_CLASS = 3 + FRAME_-143107_CLASS_ID = -143107 + FRAME_-143107_CENTER = -143 + CK_-143107_SCLK = -143 + CK_-143107_SPK = -143 + + \begintext + + +ACS TIRVIM Detector Frames +~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Since the TIRVIM detector receives radiation through the scanner + and has a single pixel, its frame, TGO_ACS_TIRVIM is defined to be + nominally co-aligned with the TIRVIM scanner frame TGO_ACS_TIRVIM_SCAN. + This frame is introduced to allow incorporating into the TIRVIM frame + chain any misalignment between the scanner boresight direction and the + detector view directions. + + The following in-flight calibrated rotation axis misalignment, provided as + the boresight in 'nadir' position was provided by A. Trokhimovskiy on 10th + May, 2017 [19] please note that the scanner channel in 'nadir' position was + not measured, but inferred from an offset in the 'solar direction': + + ACS_TIRVIM Boresight: ( 0.0, -0.99905, -0.04362 ) + + The boresights is defined relative to the TGO_SPACECRAFT frame. Given + the boresight the rotation from the TGO_ACS_TIRVIM_SCAN frame to the + TGO_ACS_TIRVIM frames determined from the in-flight calibration data + can be represented by the following rotation angles in degrees: + + nad + M = |0.0| * |-2.5000306232819502| * |3.6615346000217E-15| + base Z Y X + + + This set of keywords define the TIRVIM frame as a fixed-offset frame. Since + the SPICE frames subsystem calls for specifying the reverse transformation + --going from the instrument or structure frame to the base frame-- as + compared to the description given above, the order of rotations assigned to + the TKFRAME_*_AXES keyword is also reversed compared to the above text, and + the signs associated with the rotation angles assigned to the + TKFRAME_*_ANGLES keyword are the opposite from what is written in the above + text.: + + \begindata + + FRAME_TGO_ACS_TIRVIM = -143110 + FRAME_-143110_NAME = 'TGO_ACS_TIRVIM' + FRAME_-143110_CLASS = 4 + FRAME_-143110_CLASS_ID = -143110 + FRAME_-143110_CENTER = -143 + TKFRAME_-143110_RELATIVE = 'TGO_ACS_TIRVIM_SCAN' + TKFRAME_-143110_SPEC = 'ANGLES' + TKFRAME_-143110_UNITS = 'DEGREES' + TKFRAME_-143110_AXES = ( 3, 2, 1 ) + TKFRAME_-143110_ANGLES = ( + 0.0, 2.5000306232819502, 0.000000000000003661535 + ) + + \begintext + + +ACS TIRVIM fixed scanner position frames +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + The ACS TIRVIM scanning mirror can be used in several positions for + external observations, being the most common 'nadir' and + cold 'space.' In addition, and through the usage of an off-pointed + periscope and an off-axis parabolic mirror, a solar 'occultation' + observation can be performed in parallel to the use of the scanning + mirror. For the solar 'occultation' position a boresight for the position + of the best spectral resolution within the FoV is also provided. This + boresight will be used for pointings driven by TIRVIM using the scanner + channel. The 'black body' position of the scanning mirror is also + considered. + + Therefore, for the ACS TIRVIM a set of 'fixed-mirror-position' + frames -- 'nadir', 'solar occultation', 'solar occultation best spectral + resolution', 'space' and 'black body' -- are defined as fixed-offset + frames to allow computing these orientations without needing to use a CK: + + Frame Name Fixed-mirror-position + ---------------------------- ------------------------------------------ + TGO_ACS_TIRVIM_SCAN_BBY Black Body + TGO_ACS_TIRVIM_SCAN_SPC Cold Space + TGO_ACS_TIRVIM_SCAN_NAD Nadir + TGO_ACS_TIRVIM_SCAN_OCC Solar Occultation + TGO_ACS_TIRVIM_SCAN_OCC_BS Solar Occultation Best Spectral Resolution + + + Each of these 'fixed-position' frames are defined as a fixed + offset frame with respect to the corresponding base frame for each of + the spectrometers as follows (from [9]): + + - +X axis is along the nominal spectrometer mirror rotation + axis, and it is nominally co-aligned with the spectrometer + base +X axis; + + - +Z axis is parallel to the scanning mirror boresight that defines + the spectrometer boresight at a particular angle; + + - +Y axis completes the right-handed frame; + + - the origin of this frame is located at the intersection of the + spectrometer scanning mirror rotation axis and mirror central axis. + + + These diagrams illustrate fixed mirror pointing directions co-aligned + with the +Z axis of the corresponding 'fixed-mirror-position' frame + -- the 'solar occultation best spectral resolution' and 'black body' + positions are not represented --: + + +Z S/C side view + ---------------- + + +Z*base +Z*base + ^ +Z*nad ^ + | | +Z*occ + | Science |_~67deg .^ + | ACS Deck | \ .' Science Deck + ._____|___________. ._ACS_| .'________. + | o-------> | | o-------> | + ============o= +Y*base ========\===o= +Y*base + SA+Z +Y*nad.--, SA+Z \ |__..--, + | <-----o-..__| | \ <-----o-..__| + | +Xsc || ME | v +Xsc || ME + ._________________.| .______+Y*occ_____.| + o-o|/| o-o|/| + \|V +Ysc \|V +Ysc + o | : o | : + \ |/ \ |/ + \| \| + HGA HGA + + + +Zbase + +Zbase +Zbase + ^ +Y*spc ^ +Y*bby + | | + | Science | Science + ~90deg.-| ACS Deck ~180deg.-| ACS Deck + +Z*spc _/___|___________. ._/___|___________. + <-------o-------> | || o-------> | + ============o= +Ybase ===\===|====o= +Ybase + SA+Z |__..--, SA+Z'._| +Xsc |__..--, + | <-----o-..__| | | <-----o-..__| + | +Xsc || ME | v +Z*bby || ME + ._________________.| ._________________.| + o-o|/| o-o|/| + \|V +Ysc \|V +Ysc + o | : o | : + \ |/ \ |/ + \| \| + HGA HGA + + + +Zsc, +Xbase, +X*nad, +X*occ, + +X*bby and +X*spc are out of + the page; + + + ``*base'' corresponds to ``acs_tirvim_base''; + ``*nad'' corresponds to ``acs_tirvim_scan_nad''; + ``*occ'' corresponds to ``acs_tirvim_scan_occ''; + ``*spc'' corresponds to ``acs_tirvim_scan_spc'' and + ``*bby'' corresponds to ``acs_tirvim_scan_bby''. + + + These 'fixed-position' frames are nominally rotated about the + +X axis of the corresponding spectrometer base frames by the following + angles: + + Frame name Rotation Angle, deg + --------------------------- ------------------- + TGO_ACS_TIRVIM_SCAN_BBY 180.00 + TGO_ACS_TIRVIM_SCAN_SPC +90.00 + TGO_ACS_TIRVIM_SCAN_NAD 0.00 + TGO_ACS_TIRVIM_SCAN_OCC -67.07 + TGO_ACS_TIRVIM_SCAN_OCC_BS -67.07 + + + The following in-flight calibrated rotation axis misalignment, provided as + the boresight in 'nadir' position was provided by A. Trokhimovskiy on 25th + and 27th April and on the 10th May, 2017 [19]: + + ACS_TIRVIM_SCAN_NAD Boresight: ( 0.00000, -0.99905, -0.04362 ) + + ACS_TIRVIM_SCAN_OCC Boresight: ( -0.89699, -0.44081, -0.04362 ) + + ACS_TIRVIM_SCAN_OCC_BS Boresight: ( -0.90139, -0.43102, -0.04028 ) + + The boresights is defined relative to the TGO_SPACECRAFT frame. Given + the boresight the rotation from the TGO_ACS_TIRVIM_BASE frame to the + TGO_ACS_TIRVIM_SCAN_ROT frames determined from the in-flight calibration + data can be represented by the following rotation angles in degrees: + + nad + M = |0.0| * |-2.5000306232819502| * |3.6615346000217E-15| + base Z Y X + + occ + M = |0.0| * |-2.4990260652816447| * |-63.829000275807154| + base Z Y X + + bsr + M = |0.0| * |-2.3086086582635210| * |-64.444150970533260| + base Z Y X + + + Since the SPICE frames subsystem calls for specifying the reverse + transformation--going from the instrument or structure frame to the + base frame--as compared to the description given above, the order of + rotations assigned to the TKFRAME_*_AXES keyword is also reversed + compared to the above text, and the signs associated with the + rotation angles assigned to the TKFRAME_*_ANGLES keyword are the + opposite from what is written in the above text. + + \begindata + + FRAME_TGO_ACS_TIRVIM_SCAN_BBY = -143131 + FRAME_-143131_NAME = 'TGO_ACS_TIRVIM_SCAN_BBY' + FRAME_-143131_CLASS = 4 + FRAME_-143131_CLASS_ID = -143131 + FRAME_-143131_CENTER = -143 + TKFRAME_-143131_RELATIVE = 'TGO_ACS_TIRVIM_BASE' + TKFRAME_-143131_SPEC = 'ANGLES' + TKFRAME_-143131_UNITS = 'DEGREES' + TKFRAME_-143131_AXES = ( 3, 2, 1 ) + TKFRAME_-143131_ANGLES = ( 0.0, 0.0, 180.00 ) + + FRAME_TGO_ACS_TIRVIM_SCAN_SPC = -143132 + FRAME_-143132_NAME = 'TGO_ACS_TIRVIM_SCAN_SPC' + FRAME_-143132_CLASS = 4 + FRAME_-143132_CLASS_ID = -143132 + FRAME_-143132_CENTER = -143 + TKFRAME_-143132_RELATIVE = 'TGO_ACS_TIRVIM_BASE' + TKFRAME_-143132_SPEC = 'ANGLES' + TKFRAME_-143132_UNITS = 'DEGREES' + TKFRAME_-143132_AXES = ( 3, 2, 1 ) + TKFRAME_-143132_ANGLES = ( 0.0, 0.0, -90.00 ) + + FRAME_TGO_ACS_TIRVIM_SCAN_NAD = -143133 + FRAME_-143133_NAME = 'TGO_ACS_TIRVIM_SCAN_NAD' + FRAME_-143133_CLASS = 4 + FRAME_-143133_CLASS_ID = -143133 + FRAME_-143133_CENTER = -143 + TKFRAME_-143133_RELATIVE = 'TGO_ACS_TIRVIM_BASE' + TKFRAME_-143133_SPEC = 'ANGLES' + TKFRAME_-143133_UNITS = 'DEGREES' + TKFRAME_-143133_AXES = ( 3, 2, 1 ) + TKFRAME_-143133_ANGLES = ( + 0.0, 2.5000306232819502, 0.000000000000003661535 + ) + + FRAME_TGO_ACS_TIRVIM_SCAN_OCC = -143134 + FRAME_-143134_NAME = 'TGO_ACS_TIRVIM_SCAN_OCC' + FRAME_-143134_CLASS = 4 + FRAME_-143134_CLASS_ID = -143134 + FRAME_-143134_CENTER = -143 + TKFRAME_-143134_RELATIVE = 'TGO_ACS_TIRVIM_BASE' + TKFRAME_-143134_SPEC = 'ANGLES' + TKFRAME_-143134_UNITS = 'DEGREES' + TKFRAME_-143134_AXES = ( 3, 2, 1 ) + TKFRAME_-143134_ANGLES = ( + 0.0, 2.4990260652816447, +63.829000275807154 + ) + + FRAME_TGO_ACS_TIRVIM_SCAN_OCC_BS = -143135 + FRAME_-143135_NAME = 'TGO_ACS_TIRVIM_SCAN_OCC_BS' + FRAME_-143135_CLASS = 4 + FRAME_-143135_CLASS_ID = -143135 + FRAME_-143135_CENTER = -143 + TKFRAME_-143135_RELATIVE = 'TGO_ACS_TIRVIM_BASE' + TKFRAME_-143135_SPEC = 'ANGLES' + TKFRAME_-143135_UNITS = 'DEGREES' + TKFRAME_-143135_AXES = ( 3, 2, 1 ) + TKFRAME_-143135_ANGLES = ( + 0.0, 2.3086086582635210, +64.444150970533260 + ) + + \begintext + + +ACS TIRVIM Sun Channel frames +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + The ACS TIRVIM instrument has a Sun Channel for which two reference + frames are defined: the ACS TIRVIM Sun Channel frame that is defined by the + center of the FoV and the ACS TIRVIM Sun Channel Best Spectral Resolution + -- TGO_ACS_TIRVIM_SUN_BSR and TGO_ACS_TIRVIM_SUN -- which is defined by a + boresight to be used for pointings driven by TIRVIM (using the Sun channel) + that corresponds to the pixel of best spectral resolution of the slit. Note + that the sensitivity is not uniform within the FOV and peaks close to the + MIR slit. + + Each of these frames are defined as a fixed offset frame with respect to + the corresponding base frame for each of the spectrometers as follows (from + [9]): + + - +X axis is nominally co-aligned with the spectrometer + base +X axis; + + - +Z axis is parallel to the Sun Channel boresight (the + nominal and the BSR one respectively); + + - +Y axis completes the right-handed frame; + + - the origin of this frame is located at the intersection of the + spectrometer scanning mirror rotation axis and mirror central axis. + + + These diagram illustrates fixed mirror pointing directions co-aligned + with the +Z axis of the corresponding 'fixed-mirror-position' frame: + + +Z S/C side view + ---------------- + + +Z*base + ^ + | +Zsun + |_~67deg .^ + | \ .' Science Deck + ._ACS_| .'________. + | o-------> | + ========\===o= +Y*base + SA+Z \ |__..--, + | \ <-----o-..__| + | v +Xsc || ME + ._______+Ysun______.| + o-o|/| + \|V +Ysc + o | : +Zsc and +Xsun + \ |/ and +Xspc are out of the page. + \| + HGA + + + Nominally, a rotation of 90 degrees about +X spacecraft axis and then + a rotation of -67.07 degrees about the +Y resulting axis are required to + align the TGO_SPACECRAFT to the TGO_ACS_MIR frames. + + The following in-flight calibrated misalignment boresight was provided + by A. Trokhimovskiy on April 25 and 27, 2017 [19]: + + ACS_TIRVIM_SUN Boresight: ( -0.92070, -0.39000, -0.01420 ) + + ACS_TIRVIM_SUN_BSR Boresight: ( -0.92169, -0.38739, -0.02042 ) + + + These boresights are defined relative to the TGO_SPACECRAFT frame. Given + these boresights the rotation from the TGO_ACS_TIRVIM_BASE frame to the + TGO_ACS_TIRVIM_SUN and TGO_ACS_TIRVIM_SUN_BSR frames determined from the + in-flight calibration data can be represented by the following rotation + angles in degrees: + + sun + M = |0.0| * |-0.8136314295043187| * |-67.04293381739603| + base Z Y X + + bsr + M = |0.0| * |-1.1700608817724396| * |-67.20278942918976| + base Z Y X + + + Since the SPICE frames subsystem calls for specifying the reverse + transformation--going from the instrument or structure frame to the + base frame--as compared to the description given above, the order of + rotations assigned to the TKFRAME_*_AXES keyword is also reversed + compared to the above text, and the signs associated with the + rotation angles assigned to the TKFRAME_*_ANGLES keyword are the + opposite from what is written in the above text. + + \begindata + + FRAME_TGO_ACS_TIRVIM_SUN = -143140 + FRAME_-143140_NAME = 'TGO_ACS_TIRVIM_SUN' + FRAME_-143140_CLASS = 4 + FRAME_-143140_CLASS_ID = -143140 + FRAME_-143140_CENTER = -143 + TKFRAME_-143140_RELATIVE = 'TGO_ACS_TIRVIM_BASE' + TKFRAME_-143140_SPEC = 'ANGLES' + TKFRAME_-143140_UNITS = 'DEGREES' + TKFRAME_-143140_AXES = ( 3, 2, 1 ) + TKFRAME_-143140_ANGLES = ( + 0.0, +0.8136314295043187, +67.04293381739603 + ) + + FRAME_TGO_ACS_TIRVIM_SUN_BSR = -143141 + FRAME_-143141_NAME = 'TGO_ACS_TIRVIM_SUN_BSR' + FRAME_-143141_CLASS = 4 + FRAME_-143141_CLASS_ID = -143141 + FRAME_-143141_CENTER = -143 + TKFRAME_-143141_RELATIVE = 'TGO_ACS_TIRVIM_BASE' + TKFRAME_-143141_SPEC = 'ANGLES' + TKFRAME_-143141_UNITS = 'DEGREES' + TKFRAME_-143141_AXES = ( 3, 2, 1 ) + TKFRAME_-143141_ANGLES = ( + 0.0, +1.1700608817724396, +67.20278942918976 + ) + + \begintext + + +ACS Near Infrared (NIR) Base +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + The ACS Near Infrared (NIR) spectrometer is rigidly mounted on the + spacecraft Science Deck. Therefore, the base frame associated with + it -- the ACS NIR Base frame, TGO_ACS_NIR_BASE -- is specified as + a fixed offset frame with its orientation given relative to the + TGO_SPACECRAFT frame. + + The ACS NIR Base frame is defined as follows (from [9]): + + - +X axis is along the nominal spectrometer boresight, and + it is nominally co-aligned with the spacecraft +Z axis; + + - +Z axis is co-aligned with the -Y spacecraft axis and it is along + the spectrometer boresight in "nadir" position; + + - +Y axis completes the right-handed frame; + + - the origin of this frame is located at geometrical centre of the + first folding mirror at the entry optics of the spectrometer. + + + These diagrams illustrate the nominal TGO_ACS_NIR_BASE frame with respect + to the spacecraft frame. + + + -X S/C side (Main Engine side) view: + ------------------------------------ + ^ + | toward Mars + | + | ^ +Zacs_nir_base + | + Science deck | + .___________|_. + .__ _______________. | <-------o +Yacs_nir_base_______ ___. + | \ \ \ | +Xacs_nir_base / \ \ | + | / / \ | ___ | / / / | + | \ \ +Zsc | / _ +Xsc | .' \ \ | + | / / <--------x) |o | / / | + | \ \ .' | \_|_/ | `. \ \ | + | / / / | | | \ / / | + .__\ \_______________/ | | | \_______________\ \__. + +Z Solar Array ._____ v +Ysc . -Z Solar Array + ._____. + .' `. + / \ + . `. .' . +Xsc is into the page; + . | . +Yacs_nir_base is out + \ | / of the page. + `. .' + HGA ` --- ' + + + -Y S/C side (Science Deck side) view: + ------------------------------------- + _____ + / \ EDM + | | + ._____________. + |+Xacs_nir_base + | <------o | +Zacs_nir_base + +Zsc | '__|_| + o==/ /==================o<| | |>o==================/ /==o + +Z Solar Array | | | -Z Solar Array + | v +Yacs_nir_base + | +Xsc | + | ^ | + | | | + | | | + +Zsc .______|______. +Ysc is into the + <-------x `. ME page; + /______+Ysc \ +Zacs_nir_base + HGA `.|.' is out of the page. + + + + Nominally, a rotation of -90 degrees about +Y spacecraft axis and then + a rotation of 90 degrees about the +X resulting axis are required to + align the TGO_SPACECRAFT to the TGO_ACS_NIR_BASE frame. + + + Since the SPICE frames subsystem calls for specifying the reverse + transformation--going from the instrument or structure frame to the + base frame--as compared to the description given above, the order of + rotations assigned to the TKFRAME_*_AXES keyword is also reversed + compared to the above text, and the signs associated with the + rotation angles assigned to the TKFRAME_*_ANGLES keyword are the + opposite from what is written in the above text. + + \begindata + + FRAME_TGO_ACS_NIR_BASE = -143100 + FRAME_-143100_NAME = 'TGO_ACS_NIR_BASE' + FRAME_-143100_CLASS = 4 + FRAME_-143100_CLASS_ID = -143100 + FRAME_-143100_CENTER = -143 + TKFRAME_-143100_RELATIVE = 'TGO_SPACECRAFT' + TKFRAME_-143100_SPEC = 'ANGLES' + TKFRAME_-143100_UNITS = 'DEGREES' + TKFRAME_-143100_AXES = ( 3, 2, 1 ) + TKFRAME_-143100_ANGLES = ( 0.0, 90.0, -90.0 ) + + \begintext + + +ACS NIR nadir and occultation position frames +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + The ACS NIR spectrometer is capable of performing parallel nadir and + limb/solar occultation measurements (see [11]) using the two periscope + apertures (one of them "looking" nadir) and an off-axis parabolic + mirror that defines the NIR occultation boresight to be at 67.07 + degrees from -Y spacecraft axis towards the -X spacecraft axis in the + XY plane, therefore two frames -- TGO_ACS_NIR_NAD and TGO_ACS_NIR_OCC + -- are defined as fixed-offset frames to allow computing the + orientation of the ACS NIR field-of-view in both cases. + + Each of these 'fixed-position' frames is defined as a fixed + offset frame with respect to the corresponding base frame for each of + the spectrometers as follows (from [9]): + + - +X axis is along the nominal spectrometer boresight, and it is + nominally co-aligned with the spectrometer base +X axis; + + - +Z axis is parallel to the spectrometer detector array's lines; + + - +Y axis completes the right-handed frame; + + - the origin of this frame is located at geometrical centre of the + first folding mirror at the entry optics of the spectrometer. + + + These diagram illustrates fixed mirror pointing directions co-aligned + with the +Z axis of the corresponding 'fixed-mirror-position' frame: + + +Z S/C side view + ---------------- + + +Z*base +Z*base + ^ +Z*nad ^ + | | +Z*occ + | Science |_~67deg .^ + | ACS Deck | \ .' Science Deck + ._____|___________. ._ACS_| .'________. + | o-------> | | o-------> | + ============o= +Y*base ========\===o= +Y*base + SA+Z +Y*nad.--, SA+Z \ |__..--, + | <-----o-..__| | \ <-----o-..__| + | +Xsc || ME | v +Xsc || ME + ._________________.| .______+Y*occ_____.| + o-o|/| o-o|/| + \|V +Ysc \|V +Ysc + o | : o | : + \ |/ \ |/ + \| \| + HGA HGA + + + +Zbase + ^ +Yspc +Zsc, +X*base, +X*nad, +X*occ + | and +Xspc are out of the page. + | Science + 90deg.-| ACS Deck + +Zspc _/___|___________. + <-------o-------> | + ============o= +Ybase + SA+Z |__..--, + | <-----o-..__| + | +Xsc || ME + ._________________.| + o-o|/| + \|V +Ysc + o | : + \ |/ + \| + HGA + + + ``*base'' corresponds to ``acs_nir_base''; + ``*nad'' corresponds to ``acs_nir_nad''; and + ``*occ'' corresponds to ``acs_nir_occ''. + + + These 'fixed-position' frames are nominally rotated about the + +X axis of the corresponding spectrometer base frames by the following + angles: + + Frame name Rotation Angle, deg + ---------------------- ------------------- + TGO_ACS_NIR_NAD 0.00 + TGO_ACS_NIR_OCC -67.07 + + + The following in-flight calibrated misalignment boresights were provided + by A. Trokhimovskiy on June 13, 2016 [17]. The boresight vector is provided + as is and the the cross vector, that completes the reference frame is + defined as the composition of the boresight and the reference vector: : + + ACS_NIR_OCC Boresight: ( -0.9231, -0.3845, -0.0069 ) + + ACS_NIR_OCC Reference Vector: ( -0.9220, -0.3860, 0.0025 ) + + + This boresight is relative to the TGO_SPACECRAFT frame. Given this + boresight the rotation from the TGO_ACS_NIR_BASE frame to the + TGO_ACS_NIR_OCC frame determined from the in-flight calibration + data can be represented by the following rotation angles in degrees: + + occ + M = |-10.888905099180327| * |-0.3953437251552117| * |-67.38674625597875| + base Z Y X + + + The TGO_ACS_NIR_NAD misalignment will updated during the Science phase. + For the time being the available measurements are not sufficient to + determine the boresight reliably according to Alexander Trokhimovskiy + on 29th June 2017. + + Since the SPICE frames subsystem calls for specifying the reverse + transformation--going from the instrument or structure frame to the + base frame--as compared to the description given above, the order of + rotations assigned to the TKFRAME_*_AXES keyword is also reversed + compared to the above text, and the signs associated with the + rotation angles assigned to the TKFRAME_*_ANGLES keyword are the + opposite from what is written in the above text. + + \begindata + + FRAME_TGO_ACS_NIR_NAD = -143111 + FRAME_-143111_NAME = 'TGO_ACS_NIR_NAD' + FRAME_-143111_CLASS = 4 + FRAME_-143111_CLASS_ID = -143111 + FRAME_-143111_CENTER = -143 + TKFRAME_-143111_RELATIVE = 'TGO_ACS_NIR_BASE' + TKFRAME_-143111_SPEC = 'ANGLES' + TKFRAME_-143111_UNITS = 'DEGREES' + TKFRAME_-143111_AXES = ( 3, 2, 1 ) + TKFRAME_-143111_ANGLES = ( 0.0, 0.0, 0.0 ) + + FRAME_TGO_ACS_NIR_OCC = -143112 + FRAME_-143112_NAME = 'TGO_ACS_NIR_OCC' + FRAME_-143112_CLASS = 4 + FRAME_-143112_CLASS_ID = -143112 + FRAME_-143112_CENTER = -143 + TKFRAME_-143112_RELATIVE = 'TGO_ACS_NIR_BASE' + TKFRAME_-143112_SPEC = 'ANGLES' + TKFRAME_-143112_UNITS = 'DEGREES' + TKFRAME_-143112_AXES = ( 1, 2, 3 ) + TKFRAME_-143112_ANGLES = ( +67.38674625597875, + +0.3953437251552117, + +10.888905099180327 ) + + \begintext + + +ACS High Resolution Middle Infrared Spectrometer (MIR) frame: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + The ACS High Resolution Middle Infrared Spectrometer (MIR) is rigidly + mounted on the spacecraft Science Deck. Therefore, the frame associated + with it -- the ACS MIR frame, TGO_ACS_MIR -- is specified as a fixed + offset frame with its orientation given relative to the TGO_SPACECRAFT + frame. + + The ACS MIR spectrometer operates in occultation mode only and its + boresight is pointing +67.07 deg from the spacecraft -Y axis to the -X + in the XY plane. + + Therefore, the ACS MIR frame is defined as follows (from [9]): + + - +Z axis is parallel to the spectrometer boresight, pointing + at +67.07 degrees from the spacecraft -Y axis towards the -X + axis in the XY plane; + + - +X axis is parallel to the spectrometer detector array's lines, + and it is nominally co-aligned with the spacecraft +Z axis; + + - +Y axis completes the right handed-frame + + - the origin of this frame is located at geometrical centre of the + first folding mirror at the entry optics of the spectrometer. + + + This diagrams illustrates the nominal TGO_ACS_MIR frame with respect + to the spacecraft frame. + + +Z S/C side view + ---------------- + + 'Nadir' Towards Mars + ^ + +Xmir ^ | +Zmir + \ |_~67deg .^ + \ | \ .' Science Deck + ._ACS\| .'________. + | o | + ============o======= + SA+Z |__..--, + | <-----o-..__| + | +Xsc || ME + ._________________.| + o-o|/| + \|V +Ysc + o | : + \ |/ + \| + HGA + + +Zsc and +Ymir are out of the page. + + + Nominally, a rotation of 90 degrees about +X spacecraft axis and then + a rotation of -67.07 degrees about the +Y resulting axis are required to + align the TGO_SPACECRAFT to the TGO_ACS_MIR frames. + + The following in-flight calibrated misalignment boresight was provided + by A. Trokhimovskiy on May 10, 2017 [19]: + + ACS_MIR Boresight: ( -0.9215, -0.3884, -0.0003 ) + + + This boresight is relative to the TGO_SPACECRAFT frame. Given this + boresight the rotation from the TGO_SPACECRAFT frame to the + TGO_ACS_MIR frame determined from the in-flight calibration + data can be represented by the following rotation angles in degrees: + + mir + M = |0.0| * |-67.14521755516077| * |90.0442552276922| + base Z Y X + + + Since the SPICE frames subsystem calls for specifying the reverse + transformation--going from the instrument or structure frame to the + base frame--as compared to the description given above, the order of + rotations assigned to the TKFRAME_*_AXES keyword is also reversed + compared to the above text, and the signs associated with the + rotation angles assigned to the TKFRAME_*_ANGLES keyword are the + opposite from what is written in the above text. + + \begindata + + FRAME_TGO_ACS_MIR = -143120 + FRAME_-143120_NAME = 'TGO_ACS_MIR' + FRAME_-143120_CLASS = 4 + FRAME_-143120_CLASS_ID = -143120 + FRAME_-143120_CENTER = -143 + TKFRAME_-143120_RELATIVE = 'TGO_SPACECRAFT' + TKFRAME_-143120_SPEC = 'ANGLES' + TKFRAME_-143120_UNITS = 'DEGREES' + TKFRAME_-143120_AXES = ( 1, 2, 3 ) + TKFRAME_-143120_ANGLES = ( -90.0442552276922, + +67.14521755516077, + +0.000000000000000 ) + + \begintext + + +FREND Frames +------------------------------------------------------------------------ + + This section of the file contains the definitions of the + Fine-Resolution Epithermal Neutron Detector (FREND) instrument + frames. + + +FREND Frame Tree +~~~~~~~~~~~~~~~~ + + The diagram below shows the FREND frame hierarchy. + + + "J2000" INERTIAL + +-----------------------------------------------------+ + | | | + |<-pck | |<-pck + | | | + V | V + "IAU_MARS" | "IAU_EARTH" + MARS BODY-FIXED |<-ck EARTH BODY-FIXED + --------------- | ---------------- + V + "TGO_SPACECRAFT" + ---------------- + | + |<-fixed + | + V + "TGO_FREND" + ----------- + + +FREND base frame +~~~~~~~~~~~~~~~~ + + The Fine-Resolution Epithermal Neutron Detector (FREND) is rigidly mounted + on the spacecraft Science Deck. The base frame -- TGO_FREND, associated to + it, maps the TGO spacecraft reference axis defined in the mechanical + drawings and it is specified as a fixed-offset frame with its orientation + aligned to the TGO_SPACECRAFT frame in order to simplify the science + operations and commanding of the instrument, as requested by the FREND + Instrument Team (see [8]). + + The FREND base frame is defined by the detector design and its mounting on + the spacecraft as follows (from [8]): + + - -Y axis is along the nominal FREND 3He counters and stilbene-based + scintillator boresights; and it is nominally co-aligned with the + spacecraft -Y axis; + + - +Z axis is nominally co-aligned with the spacecraft +Z axis; + + - +X axis completes the right-handed frame; + + - the origin of the frame is located at the geometrical center of + the FREND stilbene scintillator detector. + + These diagrams illustrate the TGO_FREND frame with respect to the + TGO_SPACECRAFT frame: + + -X S/C side (HGA side) view: + ---------------------------- + ^ + | toward Mars + | + + Science deck + ._____________. + .__ _______________ | <-------x|+Zfrend_____________ ___. + | \ \ \ | +Xfrend || / \ \ | + | / / \ | ___ || / / / | + | \ \ `. | / _+Xsc || .' \ \ | + | / / +Zsc <--------x) | v|o | / / | + | \ \ .' | \_|_+Yfrend`. \ \ | + | / / / | | | \ / / | + .__\ \_______________/ | | | \_______________\ \__. + +Z Solar Array ._____ v +Ysc . -Z Solar Array + .' `. + / \ + . `. .' . +Xsc and +Xfrend + | `o' | are into the page. + . | . + \ | / + `. .' + HGA ` --- ' + + + -Y S/C side (Science Deck side) view: + ------------------------------------- + + _____ + / \ EDM + | | + ._____________. + | | + | ^|+Xfrend + +Zsc | || + o==/ /==================o | | >o==================/ /==o + +Z Solar Array | .-|| -Z Solar Array + +Zfrend <--------x|+Yfrend + | +Xsc | + | ^ | + | | | + | | | + +Zsc .______|______. +Ysc is into the + <-------x `. ME page; + /______+Ysc \ +Ysc and +Yfrend + HGA `.|.' are into the page. + + + -Y FREND side (spacecraft Science Deck) view: + --------------------------------------------- + + + +Ysc .-----------. + X---------> | Dosimeter | + | +Zsc | | + | .---------------------------------------------. + | | _____________________________ | + | +Xsc | .' '. | + v | .' . --- . . --- . '. | + | / / \ / \ \ | + | . . . . . . | + | | | | | | | | + | | . . . . | | + | | \ / \ / | | + | | . ___ . . - . . ___ . | | + | | / \ +Zfrend | | + | | +Yfrend x---------> | | + | | \ | / | | + | | . --- . . | . . --- . | | + | | / \ | / \ | | + | | . . | . . | | + | | | | v | | | | + | . . . +Xfrend . . | + | \ \ / \ / / | + | . . ___ . . ___ . . | + | '. .' | + | '---------------------------' | + '---------------------------------------------' + + + +Ysc and +Yfrend are + into the page. + + + Nominally, the TGO_FREND and the TGO_SPACECRAFT frames are co-aligned. + + \begindata + + FRAME_TGO_FREND = -143200 + FRAME_-143200_NAME = 'TGO_FREND' + FRAME_-143200_CLASS = 4 + FRAME_-143200_CLASS_ID = -143200 + FRAME_-143200_CENTER = -143 + TKFRAME_-143200_RELATIVE = 'TGO_SPACECRAFT' + TKFRAME_-143200_SPEC = 'ANGLES' + TKFRAME_-143200_UNITS = 'DEGREES' + TKFRAME_-143200_AXES = ( 1, 2, 3 ) + TKFRAME_-143200_ANGLES = ( 0.0, 0.0, 0.0 ) + + \begintext + + +NOMAD Frames +------------------------------------------------------------------------ + + This section of the file contains the definitions of the Nadir and + Occultation for MArs Discovery (NOMAD) instrument frames. + + +NOMAD Frame Tree +~~~~~~~~~~~~~~~~ + + The diagram below shows the NOMAD frame hierarchy. + + + "J2000" INERTIAL + +-----------------------------------------------------+ + | | | + |<-pck |<-ck |<-pck + | | | + V | V + "IAU_MARS" | "IAU_EARTH" + MARS BODY-FIXED | EARTH BODY-FIXED + --------------- | ---------------- + V + "TGO_SPACECRAFT" + +---------------------------+ + | | | + |<-fixed |<-fixed | + | | | + | V | + | "TGO_NOMAD_SO" | + | -------------- | + v | + "TGO_NOMAD_LNO_BASE" | + +------------------------+ | + | | | | + |<-fixed |<-ck |<-fixed | + | | | | + V | V | + "TGO_NOMAD_LNO_OPS_NAD" | "TGO_NOMAD_LNO_OPS_OCC" | + ----------------------- | ---------------------- | + | | + v |<-fixed + "TGO_NOMAD_LNO_FMM" | + -------------------- v + | "TGO_NOMAD_UVIS_BASE" + |<-fixed +-----------------------+ + | | | + v | | + "TGO_NOMAD_LNO" |<-fixed |<-fixed + --------------- | | + v v + "TGO_NOMAD_UVIS_NAD" "TGO_NOMAD_UVIS_OCC" + -------------------- -------------------- + + +NOMAD LNO Base Frame +~~~~~~~~~~~~~~~~~~~~ + + The NOMAD Limb Nadir and Occultation (LNO) spectrometer is rigidly mounted + on the spacecraft Science Deck. Therefore, the base frame associated with + it -- the NOMAD LNO Base frame, TGO_NOMAD_LNO_BASE -- is specified as a + fixed offset frame with its orientation given relative to the + TGO_SPACECRAFT frame. + + The NOMAD LNO Base frame is defined as follows (from [10]): + + - +Y axis is along the nominal spectrometer flip mirror rotation + axis, and it is nominally co-aligned with the spacecraft +Z axis; + + - +Z axis is co-aligned with the -Y spacecraft axis and it is along + the spectrometer boresight in "zero" scanning position; + + - +X axis completes the right-handed frame, and it is parallel to the + detector array lines and the wide side of the slit; + + - the origin of this frame is located at the intersection of the + spectrometer flip mirror rotation axis and mirror central axis. + + + These diagrams illustrate the nominal TGO_NOMAD_LNO_BASE and the + TGO_NOMAD_UVIS_BASE frame with respect to the spacecraft frame. + + + -X S/C side (Main Engine side) view: + ------------------------------------ + + + ^ + | toward Mars + | + +Znomad_lno_base ^ | + | + | Science deck + +Ynomad_lno_base .|____________. + .__ _____________<--------x | _______________ ___. + | \ \ \ +Xnomad_lno_base| / \ \ | + | / / \ | ___ | / / / | + | \ \ `. | / _+Xsc || .' \ \ | + | / / +Zsc <--------x) | v|o | / / | + | \ \ .' | \_|_+Yfrend`. \ \ | + | / / / | | | \ / / | + .__\ \_______________/ | | | \_______________\ \__. + +Z Solar Array ._____ v +Ysc . -Z Solar Array + .' `. + / \ + . `. .' . +Xsc and + | `o' | +Xnomad_lno_base + . | . are into the page. + \ | / + `. .' + HGA ` --- ' + + + -Y S/C side (Science Deck side) view: + ------------------------------------- + + _____ + +Xnomad_lno_base ^ / \ EDM + || | + ._|___________. + +Ynomad_lno_base | | | | + <------o | | + |__+Znomad_lno_base + o==/ /==================o<| |>o==================/ /==o + +Z Solar Array | | -Z Solar Array + | | + | +Xsc | + | ^ | + | | | + | | | + +Zsc .______|______. +Ysc is into the + <-------x `. ME page; + /______+Ysc \ +Znomad_lno_base is + HGA `.|.' out of the page. + + + Nominally, a single rotation of 90 degrees about +X spacecraft axis is + required to align the TGO_SPACECRAFT to the TGO_NOMAD_LNO_BASE frame. + + + Since the SPICE frames subsystem calls for specifying the reverse + transformation--going from the instrument or structure frame to the + base frame--as compared to the description given above, the order of + rotations assigned to the TKFRAME_*_AXES keyword is also reversed + compared to the above text, and the signs associated with the + rotation angles assigned to the TKFRAME_*_ANGLES keyword are the + opposite from what is written in the above text. + + \begindata + + FRAME_TGO_NOMAD_LNO_BASE = -143300 + FRAME_-143300_NAME = 'TGO_NOMAD_LNO_BASE' + FRAME_-143300_CLASS = 4 + FRAME_-143300_CLASS_ID = -143300 + FRAME_-143300_CENTER = -143 + TKFRAME_-143300_RELATIVE = 'TGO_SPACECRAFT' + TKFRAME_-143300_SPEC = 'ANGLES' + TKFRAME_-143300_UNITS = 'DEGREES' + TKFRAME_-143300_AXES = ( 3, 2, 1 ) + TKFRAME_-143300_ANGLES = ( 0.0, 0.0, -90.0 ) + + \begintext + + +NOMAD UVIS Base Frame +~~~~~~~~~~~~~~~~~~~~~ + + The NOMAD Ultraviolet and Visible Spectrometer (UVIS) is rigidly mounted + on the spacecraft Science Deck. Therefore, the base frames associated with + it -- the NOMAD UVIS Base frame, TGO_NOMAD_UVIS_BASE -- are specified as + a fixed offset frame with its orientation given relative to the + TGO_SPACECRAFT frame. + + The NOMAD UVIS Base frame is defined as follows (from [10]): + + - +Y axis is along the nominal spectrometer fibre optic switch rotation + axis, and it is nominally co-aligned with the spacecraft +Z axis; + + - +Z axis is co-aligned with the -Y spacecraft axis and it is along + the spectrometer boresight in "zero" scanning position; + + - +X axis completes the right-handed frame, and it is parallel to the + detector array lines and the wide side of the slit; + + - the origin of this frame is located at the intersection of the + spectrometer fibre optic switch rotation axis and mirror central + axis. + + + These diagrams illustrate the nominal TGO_NOMAD_UVIS_BASE frame with + respect to the spacecraft frame. + + + -X S/C side (HGA side) view: + ---------------------------- + + + ^ + | toward Mars + | + +Znomad_uvis_base ^ | + | + | Science deck + +Ynomad_uvis_base .|____________. + .__ _____________<--------x | _______________ ___. + | \ \ \ +Xnomad_uvis_base / \ \ | + | / / \ | ___ | / / / | + | \ \ `. | / _+Xsc || .' \ \ | + | / / +Zsc <--------x) | v|o | / / | + | \ \ .' | \_|_+Yfrend`. \ \ | + | / / / | | | \ / / | + .__\ \_______________/ | | | \_______________\ \__. + +Z Solar Array ._____ v +Ysc . -Z Solar Array + .' `. + / \ + . `. .' . +Xsc and + | `o' | +Xnomad_uvis_base + . | . are into the page. + \ | / + `. .' + HGA ` --- ' + + + -Y S/C side (Science Deck side) view: + ------------------------------------- + + _____ + +Xnomad_uvis_base ^ / \ EDM + || | + ._|___________. + +Ynomad_uvis_base | | | | + <------o | | + |___'+Znomad_uvis_base + o==/ /==================o<| |>o==================/ /==o + +Z Solar Array | | -Z Solar Array + | | + | +Xsc | + | ^ | + | | | + | | | + +Zsc .______|______. +Ysc is into the + <-------x `. ME page; + /______+Ysc \ +Znomad_uvis_base is + HGA `.|.' out of the page. + + + Nominally, a single rotation of 90 degrees about +X spacecraft axis is + required to align the TGO_SPACECRAFT to the TGO_NOMAD_UVIS_BASE frame. + + Since the SPICE frames subsystem calls for specifying the reverse + transformation -- going from the instrument or structure frame to the + base frame -- as compared to the description given above, the order of + rotations assigned to the TKFRAME_*_AXES keyword is also reversed + compared to the above text, and the signs associated with the + rotation angles assigned to the TKFRAME_*_ANGLES keyword are the + opposite from what is written in the above text. + + \begindata + + FRAME_TGO_NOMAD_UVIS_BASE = -143330 + FRAME_-143330_NAME = 'TGO_NOMAD_UVIS_BASE' + FRAME_-143330_CLASS = 4 + FRAME_-143330_CLASS_ID = -143330 + FRAME_-143330_CENTER = -143 + TKFRAME_-143330_RELATIVE = 'TGO_SPACECRAFT' + TKFRAME_-143330_SPEC = 'ANGLES' + TKFRAME_-143330_UNITS = 'DEGREES' + TKFRAME_-143330_AXES = ( 3, 2, 1 ) + TKFRAME_-143330_ANGLES = ( 0.0, 0.0, -90.0 ) + + \begintext + + +NOMAD LNO flip mirror mechanism frame +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + The NOMAD Limb Nadir and Occultation (LNO) spectrometer has a flip + mirror that provides the possibility of observation in both nadir and + solar occultation modes. + + Since this flip mirror rotates with respect to the LNO base, the + TGO_NOMAD_LNO_FMM frame is defined as a CK frame with its orientation + provided in a CK file relative to the TGO_NOMAD_LNO_BASE frames. + + The NOMAD LNO flip mirror mechanism frame -- TGO_NOMAD_LNO_FMM -- is defined + as (from [10]): + + - +Y axis is along the nominal spectrometer flip mirror rotation + axis, and it is nominally co-aligned with the spectrometer base +Y + axis; + + - +Z axis is parallel to the flip mirror boresight that defines + the spectrometer boresight; in 'nadir' scanner position is co-aligned + with the -Y spacecraft axis; + + - +X axis completes the right-handed frame; and it is parallel to the + detector array lines and the wide side of the slit; + + - the origin of this frame is located at the intersection of the + spectrometer flip mirror rotation axis and mirror central axis. + + + These diagrams illustrate the TGO_NOMAD_LNO_FMM frame for scanner + positions 'nadir' ( 0.0 degrees) and solar 'occultation' (+67.07 deg from + the spacecraft -Y axis to the -X in the XY plane). Both diagrams are +Z S/C + side view: + + + Scanner in 'nadir' position Scanner in 'occultation' position + --------------------------- --------------------------------- + + +Zbase +Zbase + ^ +Zfmm ^ + | +Xfmm ^ | +Zfmm + | Science \ |_~67deg .^ + +Xfmm | NOMAD Deck \ | \ .' Science Deck + +Xbase. _____|___________. NOMAD_\| .'________. + <-------o | <-------o | + ============o======== +Xbase ==========o======== + SA+Z |__..--, SA+Z |__..--, + | <-----o-..__| | <-----o-..__| + | +Xsc || ME | +Xsc || ME + ._________________.| ._________________.| + o-o|/| o-o|/| + \|V +Ysc \|V +Ysc + o | : o | : + \ |/ \ |/ + \| \| + HGA HGA + + +Zsc, +Ybase, and +Yfmm are out of the page; + + + These sets of keywords define the NOMAD LNO flip mirror frames: + + \begindata + + FRAME_TGO_NOMAD_LNO_FMM = -143305 + FRAME_-143305_NAME = 'TGO_NOMAD_LNO_FMM' + FRAME_-143305_CLASS = 3 + FRAME_-143305_CLASS_ID = -143305 + FRAME_-143305_CENTER = -143 + CK_-143305_SCLK = -143 + CK_-143305_SPK = -143 + + \begintext + + +NOMAD LNO Detector Frame +~~~~~~~~~~~~~~~~~~~~~~~~~ + + Since the LNO detector receives radiation through the scanner, its frame + TGO_NOMAD_LNO is defined to be nominally co-aligned with the LNO scanner + frame TGO_NOMAD_LNO_FMM. This frame is introduced to allow incorporating + into the LNO frame chain any misalignment between the scanner boresight + direction and the detector view directions. + + Currently no misalignment data are available, and, therefore, the set of + keywords below makes these frames co-aligned with their reference. + + \begindata + + FRAME_TGO_NOMAD_LNO = -143310 + FRAME_-143310_NAME = 'TGO_NOMAD_LNO' + FRAME_-143310_CLASS = 4 + FRAME_-143310_CLASS_ID = -143310 + FRAME_-143310_CENTER = -143 + TKFRAME_-143310_RELATIVE = 'TGO_NOMAD_LNO_FMM' + TKFRAME_-143310_SPEC = 'ANGLES' + TKFRAME_-143310_UNITS = 'DEGREES' + TKFRAME_-143310_AXES = ( 1, 2, 3 ) + TKFRAME_-143310_ANGLES = ( 0.0, 0.0, 0.0 ) + + \begintext + + +NOMAD LNO nadir and occultation science operations frames +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Because the NOMAD LNO flip mirrors can be rotated to only + a limited number of positions for external observations -- 'nadir' and + 'occultation' -- a fixed frame co-aligned with the flip mirror + frame in each of these positions is defined to allow computing mirror + orientation without needing to use CK. + + IMPORTANT: Please note that using these frames will not reflect the + behaviour of the LNO Detector and therefore these frames should only be + used for science operations purposes. + + Each of these 'fixed-mirror-position science operations' frames is defined + as a fixed offset frame with respect to the corresponding base frame for + each of the spectrometers as follows (from [10]): + + - +Y axis is along the nominal spectrometer flip mirror rotation + axis, and it is nominally co-aligned with the spectrometer base +Y + axis; + + - +Z axis is parallel to the flip mirror boresight that defines + the spectrometer boresight at a particular angle; + + - +X axis completes the right-handed frame; and it is parallel to the + detector array lines and the wide side of the slit; + + - the origin of this frame is located at the intersection of the + spectrometer flip mirror rotation axis and mirror central axis. + + + These diagrams illustrate fixed mirror pointing directions co-aligned + with the +Z axis of the corresponding 'fixed-mirror-position' frame: + + +Z S/C side view + ---------------- + + + +Z*base +Z*base + ^ +Z*nad ^ + | +X*occ ^ | +Z*occ + | Science \ |_~67deg .^ + +X*nad | NOMAD Deck \ | \ .' Science Deck + +X*base _____|___________. NOMAD_\| .'________. + <-------o | <-------o | + ============o======== +X*base =========o======== + SA+Z |__..--, SA+Z |__..--, + | <-----o-..__| | <-----o-..__| + | +Xsc || ME | +Xsc || ME + ._________________.| ._________________.| + o-o|/| o-o|/| + \|V +Ysc \|V +Ysc + o | : o | : + \ |/ \ |/ + \| \| + HGA HGA + + + +Zsc, +Y*base, +Y*nad and +Y*occ are out of the page; + ``*base'' corresponds to ``nomad_lno_base''; + ``*nad'' corresponds to ``nomad_lno_ops_nad''; and + ``*occ'' corresponds to ``nomad_lno_ops_occ''. + + + These 'fixed-mirror-position operations' frames are nominally rotated about + the +X axis of the corresponding spectrometer base frames by the following + angles: + + Frame name Rotation Angle, deg + ---------------------- ------------------- + TGO_NOMAD_LNO_OPS_NAD 0.00 + TGO_NOMAD_LNO_OPS_OCC -67.07 + + The following in-flight calibrated misalignment boresight was provided + by Ian Thomas on July 26, 2016 [15] and on May 16, 2017 [19]: + + NOMAD_LNO_OPS_NAD Boresight: ( -0.001047198, -0.9999786, 0.006457718 ) + NOMAD_LNO_OPS_OCC Boresight: ( -0.92148, -0.38838, 0.00628 ) + + These boresights are relative to the TGO_SPACECRAFT frame. Given these + boresights the rotation from the TGO_NOMAD_LNO_BASE frame to the + TGO_NOMAD_LNO_NAD and TGO_NOMAD_LNO_NAD frames determined from the + in-flight calibration data can be represented by the following rotation + angles in degrees: + + nad + M |0.0| * |-0.06000003670468607| * |-0.37000276139181304| + base Z Y X + + occ + M = |0.0| * |-67.1431540428917| * |-0.9263765923679103| + base Z Y X + + + Since the SPICE frames subsystem calls for specifying the reverse + transformation--going from the instrument or structure frame to the + base frame--as compared to the description given above, the order of + rotations assigned to the TKFRAME_*_AXES keyword is also reversed + compared to the above text, and the signs associated with the + rotation angles assigned to the TKFRAME_*_ANGLES keyword are the + opposite from what is written in the above text. + + \begindata + + FRAME_TGO_NOMAD_LNO_OPS_NAD = -143311 + FRAME_-143311_NAME = 'TGO_NOMAD_LNO_OPS_NAD' + FRAME_-143311_CLASS = 4 + FRAME_-143311_CLASS_ID = -143311 + FRAME_-143311_CENTER = -143 + TKFRAME_-143311_RELATIVE = 'TGO_NOMAD_LNO_BASE' + TKFRAME_-143311_SPEC = 'ANGLES' + TKFRAME_-143311_UNITS = 'DEGREES' + TKFRAME_-143311_AXES = ( 1, 2, 3 ) + TKFRAME_-143311_ANGLES = ( +0.37000276139181304, + +0.06000003670468607, + +0.00000000000000000 ) + + FRAME_TGO_NOMAD_LNO_OPS_OCC = -143312 + FRAME_-143312_NAME = 'TGO_NOMAD_LNO_OPS_OCC' + FRAME_-143312_CLASS = 4 + FRAME_-143312_CLASS_ID = -143312 + FRAME_-143312_CENTER = -143 + TKFRAME_-143312_RELATIVE = 'TGO_NOMAD_LNO_BASE' + TKFRAME_-143312_SPEC = 'ANGLES' + TKFRAME_-143312_UNITS = 'DEGREES' + TKFRAME_-143312_AXES = ( 1, 2, 3 ) + TKFRAME_-143312_ANGLES = ( +0.9263765923679103, + +67.1431540428917, + +0.0000000000000000 ) + + \begintext + + +NOMAD UVIS nadir and occultation frames +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Because the NOMAD LNO UVIS fibre optic switch can only adopt + a limited number of positions for external observations -- 'nadir' and + 'occultation' -- a fixed frame co-aligned with the fibre optic switch + frame in each of these positions is defined to allow computing mirror + orientation without needing to use CK. + + Each of these 'fixed-switch-position' frames is defined as a fixed + offset frame with respect to the corresponding base frame for each of + the spectrometers as follows (from [10]): + + - +Y axis is along the nominal spectrometer fibre optic switch rotation + axis, and it is nominally co-aligned with the spectrometer base +Y + axis; + + - +Z axis is parallel to the fibre optic switch boresight that defines + the spectrometer boresight at a particular angle; + + - +X axis completes the right-handed frame; and it is parallel to the + detector array lines and the wide side of the slit; + + - the origin of this frame is located at the intersection of the + spectrometer optic fibre switch rotation axis and mirror central + axis. + + + These diagram illustrates fixed mirror pointing directions co-aligned + with the +Z axis of the corresponding 'fixed-mirror-position' frame: + + +Z S/C side view + ---------------- + + + +Z*base +Z*base + ^ +Z*nad ^ + | +X*occ ^ | +Z*occ + | Science \ |_~67deg .^ + +X*nad | NOMAD Deck \ | \ .' Science Deck + +X*base _____|___________. NOMAD_\| .'________. + <-------o | <-------o | + ============o======== +X*base =========o======== + SA+Z |__..--, SA+Z |__..--, + | <-----o-..__| | <-----o-..__| + | +Xsc || ME | +Xsc || ME + ._________________.| ._________________.| + o-o|/| o-o|/| + \|V +Ysc \|V +Ysc + o | : o | : + \ |/ \ |/ + \| \| + HGA HGA + + + +Zsc, +Y*base, +Y*nad and +Y*occ are out of the page; + ``*base'' corresponds to ``nomad_uvis_base''; + ``*nad'' corresponds to ``nomad_uvis_nad''; and + ``*occ'' corresponds to ``nomad_uvis_occ''. + + + These 'fixed-mirror-position' frames are nominally rotated about the + +X axis of the corresponding spectrometer base frames by the following + angles: + + Frame name Rotation Angle, deg + ---------------------- ------------------- + TGO_NOMAD_UVIS_NAD 0.00 + TGO_NOMAD_UVIS_OCC -67.07 + + + The following in-flight calibrated misalignment boresights were provided + by Ian Thomas on July 26, 2016 [15]; September 16, 2016 [18]; May 16, 2017 + [19] and on June 13 2018 [22]: + + NOMAD_UVIS_NAD: ( -0.002312108759, -0.999990516156, 0.003690765731 ) + NOMAD_UVIS_OCC: ( -0.922221097920913,-0.386613383297695,0.006207330031467 ) + + + These boresights are relative to the TGO_SPACECRAFT frame. Given these + boresights the rotation from the TGO_NOMAD_UVIS_BASE frame to the + TGO_NOMAD_UVIS_NAD and TGO_NOMAD_UVIS_NAD frames determined from the + in-flight calibration data can be represented by the following rotation + angles in degrees: + + nad + M = |0.0| * |-0.13247419169719835| * |-0.21146634488534072| + base Z Y X + + occ + M = |0.0| * |-67.25296897005113| * |-0.9198420756243424| + base Z Y X + + + Since the SPICE frames subsystem calls for specifying the reverse + transformation--going from the instrument or structure frame to the + base frame--as compared to the description given above, the order of + rotations assigned to the TKFRAME_*_AXES keyword is also reversed + compared to the above text, and the signs associated with the + rotation angles assigned to the TKFRAME_*_ANGLES keyword are the + opposite from what is written in the above text. + + \begindata + + FRAME_TGO_NOMAD_UVIS_NAD = -143331 + FRAME_-143331_NAME = 'TGO_NOMAD_UVIS_NAD' + FRAME_-143331_CLASS = 4 + FRAME_-143331_CLASS_ID = -143331 + FRAME_-143331_CENTER = -143 + TKFRAME_-143331_RELATIVE = 'TGO_NOMAD_UVIS_BASE' + TKFRAME_-143331_SPEC = 'ANGLES' + TKFRAME_-143331_UNITS = 'DEGREES' + TKFRAME_-143331_AXES = ( 1, 2, 3 ) + TKFRAME_-143331_ANGLES = ( +0.21146634488534072, + +0.13247419169719835, + +0.00000000000000000 ) + + FRAME_TGO_NOMAD_UVIS_OCC = -143332 + FRAME_-143332_NAME = 'TGO_NOMAD_UVIS_OCC' + FRAME_-143332_CLASS = 4 + FRAME_-143332_CLASS_ID = -143332 + FRAME_-143332_CENTER = -143 + TKFRAME_-143332_RELATIVE = 'TGO_NOMAD_UVIS_BASE' + TKFRAME_-143332_SPEC = 'ANGLES' + TKFRAME_-143332_UNITS = 'DEGREES' + TKFRAME_-143332_AXES = ( 1, 2, 3 ) + TKFRAME_-143332_ANGLES = ( +0.9198420756243424, + +67.252968970051130, + +0.0000000000000000 ) + + \begintext + + +NOMAD Solar Occultation (SO) spectrometer frame: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + The NOMAD Solar Occultation (SO) spectrometer is rigidly mounted on + the spacecraft Science Deck. Therefore, the frame associated with + it -- the NOMAD SO frame, TGO_NOMAD_SO -- is specified as a fixed + offset frame with its orientation given relative to the TGO_SPACECRAFT + frame. + + The NOMAD SO spectrometer operates in occultation mode only and its + boresight is pointing approximately +67.07 deg from the + spacecraft -Y axis to the -X in the XY plane. + + Therefore, the NOMAD SO frame is defined as follows (from [10]): + + - +Z axis is parallel to the spectrometer boresight, pointing + approximately at +67.07 degrees from the spacecraft -Y axis + towards the -X axis in the XY plane; + + - +X axis is parallel to the spectrometer detector array's lines, + and it is approximately at +67.07 degrees from the spacecraft + +X axis; + + - +Y axis completes the right-handed frame and it is nominally + aligned with the spacecraft +Z axis; + + - the origin of this frame is located at geometrical centre of the + first folding mirror at the entry optics of the spectrometer. + + + This diagrams illustrates the nominal TGO_NOMAD_SO frame with respect + to the spacecraft frame. + + +Z S/C side view + ---------------- + + 'Nadir' Towards Mars + ^ + +Xso ^ | +Zso + \ |_~67deg .^ + \ | \ .' Science Deck + NOMAD\| .'________. + | o +Yso | + ============o======= + SA+Z |__..--, + | <-----o-..__| + | +Xsc || ME + ._________________.| +Zsc and +Ymir are + o-o|/| out of the page. + \|V +Ysc + o | : + \ |/ + \| + HGA + + + Nominally, a rotation of 90 degrees about +X spacecraft axis and then + a rotation of -67.07 degrees about the +Y spacecraft axis are required to + align the TGO_SPACECRAFT to the TGO_NOMAD_SO frames. + + The following in-flight calibrated misalignment boresight was provided + by Ian Thomas on July 26, 2016 [15] and June 13, 2018 [22]: + + NOMAD_SO Boresight: ( -0.9218973, -0.38738526, 0.00616719 ) + + + This boresight is relative to the TGO_SPACECRAFT frame. Given this + boresight the rotation from the TGO_SPACECRAFT frame to the + TGO_NOMAD_SO frame determined from the in-flight calibration + data can be represented by the following rotation angles in degrees: + + so + M = |0.0| * |-67.20504912816348| * |89.0879257751404| + sc Z Y X + + + Since the SPICE frames subsystem calls for specifying the reverse + transformation--going from the instrument or structure frame to the + base frame--as compared to the description given above, the order of + rotations assigned to the TKFRAME_*_AXES keyword is also reversed + compared to the above text, and the signs associated with the + rotation angles assigned to the TKFRAME_*_ANGLES keyword are the + opposite from what is written in the above text. + + \begindata + + FRAME_TGO_NOMAD_SO = -143320 + FRAME_-143320_NAME = 'TGO_NOMAD_SO' + FRAME_-143320_CLASS = 4 + FRAME_-143320_CLASS_ID = -143320 + FRAME_-143320_CENTER = -143 + TKFRAME_-143320_RELATIVE = 'TGO_SPACECRAFT' + TKFRAME_-143320_SPEC = 'ANGLES' + TKFRAME_-143320_UNITS = 'DEGREES' + TKFRAME_-143320_AXES = ( 1, 2, 3 ) + TKFRAME_-143320_ANGLES = ( -89.08792577514040 + +67.20504912816348, + +0.000000000000000 ) + + \begintext + + +CaSSIS Frames +------------------------------------------------------------------------ + + This section of the file contains the definitions of the Colour and + Stereo Surface Imaging System (CaSSIS) instrument frames. + + +CaSSIS Frame Tree +~~~~~~~~~~~~~~~~~ + + The diagram below shows the CaSSIS frame hierarchy. + + + "J2000" INERTIAL + +-----------------------------------------------------+ + | | | + |<-pck | |<-pck + | | | + V | V + "IAU_MARS" | "IAU_EARTH" + MARS BODY-FIXED |<-ck EARTH BODY-FIXED + --------------- | ---------------- + V + "TGO_SPACECRAFT" + ---------------- + | + |<-fixed + | + V + "TGO_CASSIS_CRU" + ---------------- + | + |<-ck + | + V + "TGO_CASSIS_TEL" + ---------------- + | + |<-fixed + | + "TGO_CASSIS_FSA" + ---------------- + + +CaSSIS Camera Rotation Unit frame +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + The CaSSIS Camera Rotation Unit (CRU) is rigidly mounted on the spacecraft + Science Deck. Therefore, the frame associated with it -- the CaSSIS CRU + frame, TGO_CASSIS_CRU -- is specified as a fixed offset frame relative + with its orientation given relative to the TGO_SPACECRAFT frame. + + The CaSSIS CRU frame is defined by the camera rotation unit design and + its mounting on the spacecraft as follows (from [5]): + + - +Y axis is along the nominal CaSSIS CRU rotation axis, and it is + nominally co-aligned with the spacecraft -Y axis + + - +Z axis is co-aligned with the +Z spacecraft axis; + + - +X axis completes the right-handed frame; + + - the origin of the frame is located at the center of the CaSSIS + reference hole (RH) at the instrument's interface plane, i.e. the + unit mounting plane to the spacecraft. + + Any misalignment between the nominal and actual CaSSIS CRU rotation axis + measured pre-launch or during in-flight calibration should be incorporated + into the definition of this frame. + + + These diagrams illustrate the nominal TGO_CASSIS_CRU frame with respect to + the spacecraft frame. + + + -X S/C side (Main Engine side) view: + ------------------------------------ + ^ + | toward Mars + +Ycru ^ + | + | Science deck + +Zcru .|____________. + .__ _____________<--------o | .______________ ___. + | \ \ \ +Xcru | / \ \ | + | / / \ | ___ | / / / | + | \ \ `. | / _+Xsc || .' \ \ | + | / / +Zsc <--------x) | v|o | / / | + | \ \ .' | \_|_+Yfrend`. \ \ | + | / / / | | | \ / / | + .__\ \_______________/ | | | \_______________\ \__. + +Z Solar Array ._____ v +Ysc . -Z Solar Array + .' `. + / \ + . `. .' . +Xsc is into + | `o' | the page and +Xcru + . | . is out of the page. + \ | / + `. .' + HGA ` --- ' + + + -Y S/C side (Science Deck side) view: + ------------------------------------- + + _____ + / \ EDM + | | + ._____________. + | | + | | + | | + o==/ /==================o<| |>o==================/ /==o + +Z Solar Array |--. | -Z Solar Array + <--------o|+Ycru | + +Zcru |-|' | + | | ^ +Xsc | + | | | | + +Xcru v | | +Ysc is into the + +Zsc .______|______. page; +Ycru is out + <-------x `. ME of the page + /______+Ysc \ + HGA `.|.' + + + +Z CaSSIS Rotation Unit side view (motor in "Launch" position: 180 deg): + ---------------------------------------------------------------------------- + + + <-------x +Zsc +Xcru + +Ysc | ^ + | | + | | + +Xsc v .-|. . + |.|| . ' / + ||| ______________ . ' / + /-|-. .-| ___ ____ ' \ , + /' | | | | / \ / '. '.\ / + / | | | | || || ' ' .' + .-----. | | | | || || '. '. + /___, ,| | | | || || '. '. + / / | | |= | | \___/ \_____________/ '. +Ycru + / \ | x---------------------------------------------> + / '+Zcru| |.| / | | rotation axis | | | + / | | '-'_._____| |_______' '________' | | + / | | | | .--- .------. '-' + / '----| | | , -- . '. \ \_.-. + / | | | | '. '. \ | | + /__________________| '-'_ | '. . | | | + || |.--.| \ \______________. | | + || || || \ .-------------------------'-' + .-----''-------------''--''--------. \| + | | + '----------------------------------' + + + +Zsc and +Zcru are + into the page. + + + Nominally, a single rotation of 180 degrees about +Z axis is required to + co-align the TGO_CASSIS_CRU and the TGO_SPACECRAFT frames. The current + rotation is derived form Mars Commissioning data and data from MTP000 + (MCO, bands misalignment is <2 pixel) 21]. + + Since the SPICE frames subsystem calls for specifying the reverse + transformation--going from the instrument or structure frame to the + base frame--as compared to the description given above, the order of + rotations assigned to the TKFRAME_*_AXES keyword is also reversed + compared to the above text, and the signs associated with the + rotation angles assigned to the TKFRAME_*_ANGLES keyword are the + opposite from what is written in the above text. + + \begindata + + FRAME_TGO_CASSIS_CRU = -143400 + FRAME_-143400_NAME = 'TGO_CASSIS_CRU' + FRAME_-143400_CLASS = 4 + FRAME_-143400_CLASS_ID = -143400 + FRAME_-143400_CENTER = -143 + TKFRAME_-143400_RELATIVE = 'TGO_SPACECRAFT' + TKFRAME_-143400_SPEC = 'ANGLES' + TKFRAME_-143400_UNITS = 'DEGREES' + TKFRAME_-143400_AXES = ( 1, 2, 3 ) + TKFRAME_-143400_ANGLES = ( 0.021, 0.120, -179.881 ) + + \begintext + + +CaSSIS Telescope frame +~~~~~~~~~~~~~~~~~~~~~~ + + The CaSSIS telescope rotates counterclockwise around the +Y CaSSIS Camera + Rotation Unit by an angle commanded from ground which ranges from 0 + degrees in the homing position to 360.0 degrees at the end of the range. + + The CaSSIS Telescope frame is defined by the camera rotation unit design + as follows (from [5]): + + - +Y axis is along the nominal CaSSIS CRU rotation axis, and it is + 'zero' position is co-aligned with the TGO_CASSIS_CRU +Y axis + + - +Z axis is co-aligned with the TGO_CASSIS_CRU +Z axis, when the + motor is in its 'zero' position; + + - +X axis completes the right-handed frame; + + - the origin of the frame is located at the focal point of the CaSSIS + telescope. + + + This diagram illustrates the TGO_CASSIS_TEL frame with respect to + the TGO_CASSIS_CRU frame for different motor rotations. + + + +Y CaSSIS Camera Rotation Unit view: + ------------------------------------ + + + ^ +Xtel ^ +Xcru + 0 deg | | + position | | + ....|.... | + .' | `. | +Zcru + .' | `. o---------> + ' | ' +Ycru + . | . + . | . + 90 deg ---- . o--------------> +Ztel + position . +Ytel . + . . + .-'. .'-. + ' . . ' + 120 deg `. .' 240 deg + position ` ......... ' position + | + | + 180 deg + position + +Xsc ^ + | + | +Ytel and +Ycru are out of + | the page; +Ysc is into + | the page. + <--------x + +Zsc +Ysc + + + For an arbitrary scanner angle, the TGO_CASSIS_TEL frame is rotated by + this angle about the +Y axis with respect to the TGO_CASSIS_CRU frame. + + This set of keywords define the CaSSIS Telescope frame: + + \begindata + + FRAME_TGO_CASSIS_TEL = -143410 + FRAME_-143410_NAME = 'TGO_CASSIS_TEL' + FRAME_-143410_CLASS = 3 + FRAME_-143410_CLASS_ID = -143410 + FRAME_-143410_CENTER = -143 + CK_-143410_SCLK = -143 + CK_-143410_SPK = -143 + + \begintext + + +CaSSIS Filter Strip Assembly (FSA) frame: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + The CaSSIS Camera Rotation Unit is designed to support quasi-simultaneous + stereo imaging by aligning the image columns to the orbital track + (see [6]). Above the detector surface, a filter strip is placed in order + providing images in 4 different wavelength bands. + + The CaSSIS Filter Strip Assembly -- TGO_CASSIS_FSA frame is defined based + on the telescope pointing axis and the detector surface orientation as + follows: + + - +Z axis points along the telescope optical boresight; + + - +X axis is aligned to the detector rows; and it is nominally aligned + to the +Ztel axis. + + - +Y axis is aligned to the detector columns; + + - the origin of the frame is located at the focal point of the CaSSIS + telescope. + + The CaSSIS telescope optical boresight nominally points 10 degrees off + from the CaSSIS rotation axis -- TGO_CASSIS_TEL +Y axis, towards the + + X TGO_CASSIS_TEL axis. + + This diagram illustrates the TGO_CASSIS_FSA frame with respect to + the TGO_CASSIS_TEL frame. + + + +Z CaSSIS Rotation Unit side view: + ---------------------------------- + + + ^ +Ytel (rotation axis) + ^ | towards Mars + \ | + +Zfsa \ | .---------. + \ .----|-. .---------| .> +Ysfa + \ '----|-'.' .-. | .' + .. \ / | .' | .' + \ `. \ .. |-. .' .'.'| + \ `. / \/ | | | | .'.' | + \ `/ /\ | | | | .'.' . | + \ / / \| | | |.'.' .' | | + \/ / \ | | .' .' | | + / / |\ |.'.' | | | + | | | \|.' . | | | + | | | o +Xfsa | | + | | | |' | | | | + | \___.' | | | | | + | ____ | | | | | + | / \ | | | | | + | | | |----' '-----' '__ + | | | |---. .' +Ztel and +Xfsa + | | | | | .' are out of the page + | | | | |.________' + | \____/ |---'|'------' + '____________|____' + '-----------|---' +Xtel + o--------------------------> + +Ztel + + Nominally, the off-pointing from the CaSSIS Filter Strip Assembly + boresight and the CaSSIS Telescope rotation axis is 10 degrees towards + the -X CaSSIS Telescope axis. + + During the geometrical measurements performed before the integration + on the spacecraft, the angle between the rotation axis and the instrument + optical boresight at 5 different positions (see p.34 of [6]) was: + + alpha = 9.89 +/- 0.1 degrees + + Therefore, in order to transform the CaSSIS Telescope frame into the + CaSSIS Filter Strip Assembly frame, first an initial rotation of -90 + degrees about the +Y axis is required, followed by a -80.11 degrees + rotation about the resulting +X axis. + + Later on as a result from the Mars Commissioning and MTP000 science data + it the rotations have been adjusted [21]. + + Since the SPICE frames subsystem calls for specifying the reverse + transformation--going from the instrument or structure frame to the + base frame--as compared to the description given above, the order of + rotations assigned to the TKFRAME_*_AXES keyword is also reversed + compared to the above text, and the signs associated with the + rotation angles assigned to the TKFRAME_*_ANGLES keyword are the + opposite from what is written in the above text. + + \begindata + + FRAME_TGO_CASSIS_FSA = -143420 + FRAME_-143420_NAME = 'TGO_CASSIS_FSA' + FRAME_-143420_CLASS = 4 + FRAME_-143420_CLASS_ID = -143420 + FRAME_-143420_CENTER = -143 + TKFRAME_-143420_RELATIVE = 'TGO_CASSIS_TEL' + TKFRAME_-143420_SPEC = 'ANGLES' + TKFRAME_-143420_UNITS = 'DEGREES' + TKFRAME_-143420_AXES = ( 2, 1, 3 ) + TKFRAME_-143420_ANGLES = ( 89.714, 80.005, 0.168 ) + + \begintext + + +TGO NAIF ID Codes -- Definitions +=============================================================================== + + This section contains name to NAIF ID mappings for the ExoMars 2016 mission. + Once the contents of this file is loaded into the KERNEL POOL, these + mappings become available within SPICE, making it possible to use names + instead of ID code in the high level SPICE routine calls. + + Name ID Synonyms + --------------------- ------- ----------------------- + + Spacecraft: + ----------- + TGO -143 TRACE GAS ORBITER + EXOMARS 2016 TGO + EXOMARS TGO + TGO_SPACECRAFT -143000 + TGO_HGA_STOWED -143020 + TGO_HGA -143025 + TGO_LGA+Z -143031 + TGO_LGA-Z -143032 + TGO_LGA+X -143033 + TGO_STR-1 -143041 + TGO_STR-2 -143042 + TGO_SA+Z_GIMBAL -143060 + TGO_SA+Z_C1 -143061 + TGO_SA+Z_C2 -143062 + TGO_SA+Z_C3 -143063 + TGO_SA+Z_C4 -143064 + TGO_SA-Z_GIMBAL -143070 + TGO_SA-Z_C1 -143071 + TGO_SA-Z_C2 -143072 + TGO_SA-Z_C3 -143073 + TGO_SA-Z_C4 -143074 + + ACS: + ---- + TGO_ACS -143100 + TGO_ACS_NIR_NAD -143111 + TGO_ACS_NIR_OCC -143112 + TGO_ACS_MIR -143120 + TGO_ACS_TIRVIM -143130 + TGO_ACS_TIRVIM_SCAN_BBY -143131 + TGO_ACS_TIRVIM_SCAN_SPC -143132 + TGO_ACS_TIRVIM_SCAN_NAD -143133 + TGO_ACS_TIRVIM_SCAN_OCC -143134 + TGO_ACS_TIRVIM_SUN -143140 + TGO_ACS_TIRVIM_SUN_BSR -143141 + + FREND: + ------ + TGO_FREND -143200 + TGO_FREND_HE -143210 + TGO_FREND_SC -143220 + + NOMAD: + ------ + TGO_NOMAD -143300 + TGO_NOMAD_LNO -143310 + TGO_NOMAD_LNO_OPS_NAD -143311 + TGO_NOMAD_LNO_OPS_OCC -143312 + TGO_NOMAD_SO -143320 + TGO_NOMAD_UVIS_NAD -143331 + TGO_NOMAD_UVIS_OCC -143332 + + CaSSIS: + ------- + TGO_CASSIS -143400 + TGO_CASSIS_PAN -143421 + TGO_CASSIS_RED -143422 + TGO_CASSIS_NIR -143423 + TGO_CASSIS_BLU -143424 + + + The mappings summarized in this table are implemented by the keywords + below. + + \begindata + + NAIF_BODY_NAME += ( 'TRACE GAS ORBITER' ) + NAIF_BODY_CODE += ( -143 ) + + NAIF_BODY_NAME += ( 'TGO' ) + NAIF_BODY_CODE += ( -143 ) + + NAIF_BODY_NAME += ( 'EXOMARS TGO' ) + NAIF_BODY_CODE += ( -143 ) + + NAIF_BODY_NAME += ( 'EXOMARS 2016 TGO' ) + NAIF_BODY_CODE += ( -143 ) + + NAIF_BODY_NAME += ( 'TGO_PLAN' ) + NAIF_BODY_CODE += ( -143999 ) + + NAIF_BODY_NAME += ( 'TGO PLAN' ) + NAIF_BODY_CODE += ( -143999 ) + + NAIF_BODY_NAME += ( 'TGO_SPACECRAFT' ) + NAIF_BODY_CODE += ( -143000 ) + + NAIF_BODY_NAME += ( 'TGO_HGA_STOWED' ) + NAIF_BODY_CODE += ( -143020 ) + + NAIF_BODY_NAME += ( 'TGO_HGA' ) + NAIF_BODY_CODE += ( -143025 ) + + NAIF_BODY_NAME += ( 'TGO_LGA+Z' ) + NAIF_BODY_CODE += ( -143031 ) + + NAIF_BODY_NAME += ( 'TGO_LGA-Z' ) + NAIF_BODY_CODE += ( -143032 ) + + NAIF_BODY_NAME += ( 'TGO_LGA+X' ) + NAIF_BODY_CODE += ( -143033 ) + + NAIF_BODY_NAME += ( 'TGO_STR-1' ) + NAIF_BODY_CODE += ( -143041 ) + + NAIF_BODY_NAME += ( 'TGO_STR-2' ) + NAIF_BODY_CODE += ( -143042 ) + + NAIF_BODY_NAME += ( 'TGO_SA+Z_GIMBAL' ) + NAIF_BODY_CODE += ( -143060 ) + + NAIF_BODY_NAME += ( 'TGO_SA+Z_C1' ) + NAIF_BODY_CODE += ( -143061 ) + + NAIF_BODY_NAME += ( 'TGO_SA+Z_C2' ) + NAIF_BODY_CODE += ( -143062 ) + + NAIF_BODY_NAME += ( 'TGO_SA+Z_C3' ) + NAIF_BODY_CODE += ( -143063 ) + + NAIF_BODY_NAME += ( 'TGO_SA+Z_C4' ) + NAIF_BODY_CODE += ( -143064 ) + + NAIF_BODY_NAME += ( 'TGO_SA-Z_GIMBAL' ) + NAIF_BODY_CODE += ( -143070 ) + + NAIF_BODY_NAME += ( 'TGO_SA-Z_C1' ) + NAIF_BODY_CODE += ( -143071 ) + + NAIF_BODY_NAME += ( 'TGO_SA-Z_C2' ) + NAIF_BODY_CODE += ( -143072 ) + + NAIF_BODY_NAME += ( 'TGO_SA-Z_C3' ) + NAIF_BODY_CODE += ( -143073 ) + + NAIF_BODY_NAME += ( 'TGO_SA-Z_C4' ) + NAIF_BODY_CODE += ( -143074 ) + + + NAIF_BODY_NAME += ( 'TGO_ACS' ) + NAIF_BODY_CODE += ( -143100 ) + + NAIF_BODY_NAME += ( 'TGO_ACS_NIR_NAD' ) + NAIF_BODY_CODE += ( -143111 ) + + NAIF_BODY_NAME += ( 'TGO_ACS_NIR_OCC' ) + NAIF_BODY_CODE += ( -143112 ) + + NAIF_BODY_NAME += ( 'TGO_ACS_MIR' ) + NAIF_BODY_CODE += ( -143120 ) + + NAIF_BODY_NAME += ( 'TGO_ACS_TIRVIM' ) + NAIF_BODY_CODE += ( -143130 ) + + NAIF_BODY_NAME += ( 'TGO_ACS_TIRVIM_SCAN_BBY' ) + NAIF_BODY_CODE += ( -143131 ) + + NAIF_BODY_NAME += ( 'TGO_ACS_TIRVIM_SCAN_SPC' ) + NAIF_BODY_CODE += ( -143132 ) + + NAIF_BODY_NAME += ( 'TGO_ACS_TIRVIM_SCAN_NAD' ) + NAIF_BODY_CODE += ( -143133 ) + + NAIF_BODY_NAME += ( 'TGO_ACS_TIRVIM_SCAN_OCC' ) + NAIF_BODY_CODE += ( -143134 ) + + NAIF_BODY_NAME += ( 'TGO_ACS_TIRVIM_SCAN_OCC_BS' ) + NAIF_BODY_CODE += ( -143135 ) + + NAIF_BODY_NAME += ( 'TGO_ACS_TIRVIM_SUN' ) + NAIF_BODY_CODE += ( -143140 ) + + NAIF_BODY_NAME += ( 'TGO_ACS_TIRVIM_SUN_BSR' ) + NAIF_BODY_CODE += ( -143141 ) + + + NAIF_BODY_NAME += ( 'TGO_FREND' ) + NAIF_BODY_CODE += ( -143200 ) + + NAIF_BODY_NAME += ( 'TGO_FREND_HE' ) + NAIF_BODY_CODE += ( -143210 ) + + NAIF_BODY_NAME += ( 'TGO_FREND_SC' ) + NAIF_BODY_CODE += ( -143220 ) + + + NAIF_BODY_NAME += ( 'TGO_NOMAD' ) + NAIF_BODY_CODE += ( -143300 ) + + NAIF_BODY_NAME += ( 'TGO_NOMAD_LNO' ) + NAIF_BODY_CODE += ( -143310 ) + + NAIF_BODY_NAME += ( 'TGO_NOMAD_LNO_OPS_NAD' ) + NAIF_BODY_CODE += ( -143311 ) + + NAIF_BODY_NAME += ( 'TGO_NOMAD_LNO_OPS_OCC' ) + NAIF_BODY_CODE += ( -143312 ) + + NAIF_BODY_NAME += ( 'TGO_NOMAD_SO' ) + NAIF_BODY_CODE += ( -143320 ) + + NAIF_BODY_NAME += ( 'TGO_NOMAD_UVIS_NAD' ) + NAIF_BODY_CODE += ( -143331 ) + + NAIF_BODY_NAME += ( 'TGO_NOMAD_UVIS_OCC' ) + NAIF_BODY_CODE += ( -143332 ) + + + NAIF_BODY_NAME += ( 'TGO_CASSIS' ) + NAIF_BODY_CODE += ( -143400 ) + + NAIF_BODY_NAME += ( 'TGO_CASSIS_PAN' ) + NAIF_BODY_CODE += ( -143421 ) + + NAIF_BODY_NAME += ( 'TGO_CASSIS_RED' ) + NAIF_BODY_CODE += ( -143422 ) + + NAIF_BODY_NAME += ( 'TGO_CASSIS_NIR' ) + NAIF_BODY_CODE += ( -143423 ) + + NAIF_BODY_NAME += ( 'TGO_CASSIS_BLU' ) + NAIF_BODY_CODE += ( -143424 ) + + \begintext + + +End of FK file. \ No newline at end of file diff --git a/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/naif0012.tls b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/naif0012.tls new file mode 100644 index 0000000..e1afdee --- /dev/null +++ b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/naif0012.tls @@ -0,0 +1,152 @@ +KPL/LSK + + +LEAPSECONDS KERNEL FILE +=========================================================================== + +Modifications: +-------------- + +2016, Jul. 14 NJB Modified file to account for the leapsecond that + will occur on December 31, 2016. + +2015, Jan. 5 NJB Modified file to account for the leapsecond that + will occur on June 30, 2015. + +2012, Jan. 5 NJB Modified file to account for the leapsecond that + will occur on June 30, 2012. + +2008, Jul. 7 NJB Modified file to account for the leapsecond that + will occur on December 31, 2008. + +2005, Aug. 3 NJB Modified file to account for the leapsecond that + will occur on December 31, 2005. + +1998, Jul 17 WLT Modified file to account for the leapsecond that + will occur on December 31, 1998. + +1997, Feb 22 WLT Modified file to account for the leapsecond that + will occur on June 30, 1997. + +1995, Dec 14 KSZ Corrected date of last leapsecond from 1-1-95 + to 1-1-96. + +1995, Oct 25 WLT Modified file to account for the leapsecond that + will occur on Dec 31, 1995. + +1994, Jun 16 WLT Modified file to account for the leapsecond on + June 30, 1994. + +1993, Feb. 22 CHA Modified file to account for the leapsecond on + June 30, 1993. + +1992, Mar. 6 HAN Modified file to account for the leapsecond on + June 30, 1992. + +1990, Oct. 8 HAN Modified file to account for the leapsecond on + Dec. 31, 1990. + + +Explanation: +------------ + +The contents of this file are used by the routine DELTET to compute the +time difference + +[1] DELTA_ET = ET - UTC + +the increment to be applied to UTC to give ET. + +The difference between UTC and TAI, + +[2] DELTA_AT = TAI - UTC + +is always an integral number of seconds. The value of DELTA_AT was 10 +seconds in January 1972, and increases by one each time a leap second +is declared. Combining [1] and [2] gives + +[3] DELTA_ET = ET - (TAI - DELTA_AT) + + = (ET - TAI) + DELTA_AT + +The difference (ET - TAI) is periodic, and is given by + +[4] ET - TAI = DELTA_T_A + K sin E + +where DELTA_T_A and K are constant, and E is the eccentric anomaly of the +heliocentric orbit of the Earth-Moon barycenter. Equation [4], which ignores +small-period fluctuations, is accurate to about 0.000030 seconds. + +The eccentric anomaly E is given by + +[5] E = M + EB sin M + +where M is the mean anomaly, which in turn is given by + +[6] M = M + M t + 0 1 + +where t is the number of ephemeris seconds past J2000. + +Thus, in order to compute DELTA_ET, the following items are necessary. + + DELTA_TA + K + EB + M0 + M1 + DELTA_AT after each leap second. + +The numbers, and the formulation, are taken from the following sources. + + 1) Moyer, T.D., Transformation from Proper Time on Earth to + Coordinate Time in Solar System Barycentric Space-Time Frame + of Reference, Parts 1 and 2, Celestial Mechanics 23 (1981), + 33-56 and 57-68. + + 2) Moyer, T.D., Effects of Conversion to the J2000 Astronomical + Reference System on Algorithms for Computing Time Differences + and Clock Rates, JPL IOM 314.5--942, 1 October 1985. + +The variable names used above are consistent with those used in the +Astronomical Almanac. + +\begindata + +DELTET/DELTA_T_A = 32.184 +DELTET/K = 1.657D-3 +DELTET/EB = 1.671D-2 +DELTET/M = ( 6.239996D0 1.99096871D-7 ) + +DELTET/DELTA_AT = ( 10, @1972-JAN-1 + 11, @1972-JUL-1 + 12, @1973-JAN-1 + 13, @1974-JAN-1 + 14, @1975-JAN-1 + 15, @1976-JAN-1 + 16, @1977-JAN-1 + 17, @1978-JAN-1 + 18, @1979-JAN-1 + 19, @1980-JAN-1 + 20, @1981-JUL-1 + 21, @1982-JUL-1 + 22, @1983-JUL-1 + 23, @1985-JUL-1 + 24, @1988-JAN-1 + 25, @1990-JAN-1 + 26, @1991-JAN-1 + 27, @1992-JUL-1 + 28, @1993-JUL-1 + 29, @1994-JUL-1 + 30, @1996-JAN-1 + 31, @1997-JUL-1 + 32, @1999-JAN-1 + 33, @2006-JAN-1 + 34, @2009-JAN-1 + 35, @2012-JUL-1 + 36, @2015-JUL-1 + 37, @2017-JAN-1 ) + +\begintext + + diff --git a/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/pck00010.tpc b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/pck00010.tpc new file mode 100644 index 0000000..efa0209 --- /dev/null +++ b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/pck00010.tpc @@ -0,0 +1,4061 @@ +KPL/PCK + + +P_constants (PcK) SPICE kernel file +=========================================================================== + + By: Nat Bachman (NAIF) 2011 October 21 + + +Purpose +-------------------------------------------------------- + + This file makes available for use in SPICE-based application + software orientation and size/shape data for natural bodies. The + principal source of the data is a published report by the IAU + Working Group on Cartographic Coordinates and Rotational Elements + [1]. + + Orientation and size/shape data not provided by this file may be + available in mission-specific PCK files. Such PCKs may be the + preferred data source for mission-related applications. + Mission-specific PCKs can be found in PDS archives or on the NAIF + web site at URL: + + http://naif.jpl.nasa.gov/naif/data + + +File Organization +-------------------------------------------------------- + + The contents of this file are as follows. + + Introductory Information: + + -- Purpose + + -- File Organization + + -- Version description + + -- Disclaimer + + -- Sources + + -- Explanatory notes + + -- Body numbers and names + + + PcK Data: + + + Orientation Data + ---------------- + + -- Orientation constants for the Sun, planets, and + Pluto. Additional items included in this section: + + - Earth north geomagnetic centered dipole value + for the epochs 2012 + + -- Orientation constants for satellites + + -- Orientation constants for asteroids + + Davida + Eros + Gaspra + Ida + Itokawa + Lutetia + Pallas + Steins + Vesta + + -- Orientation constants for comets + + 19P/Borrelly + 9P/Tempel 1 + + + Orientation data provided in this file are used + by the SPICE Toolkit to evaluate the orientation + of body-fixed, body-centered reference frames + with respect to the ICRF frame ("J2000" in + SPICE documentation). These body-fixed frames + have names of the form + + IAU_<body name> + + for example + + IAU_JUPITER + + See the PCK Required Reading file pck.req for details. + + + + Radii of Bodies + --------------- + + -- Radii of Sun, planets, and Pluto + + -- Radii of satellites, where available + + -- Radii of asteroids + + Ceres + Davida + Eros + Gaspra + Ida + Itokawa + Lutetia + Mathilde + Steins + Toutatis + Vesta + + -- Radii of comets + + 19P/Borrelly + 81P/Wild 2 + 9P/Tempel 1 + Halley + + + +Version Description +-------------------------------------------------------- + + This file was created on October 21, 2011 at NASA's Navigation and + Ancillary Information Facility (NAIF), located at the Jet + Propulsion Laboratory, Pasadena, CA. + + The previous version of the file was + + pck00009.tpc + + That file was published March 3 2010. + + This version incorporates data from reference [1]. This file + contains size, shape, and orientation data for all objects covered + by the previous version of the file. + + New objects covered by this file but not the previous + version are: + + Anthe + Daphnis + Davida + Lutetia + Methone + Pallas + Pallene + Polydeuces + Steins + + + +Disclaimer +-------------------------------------------------------- + +Applicability of Data + + This P_constants file may not contain the parameter values that + you prefer. NAIF suggests that you inspect this file visually + before proceeding with any critical or extended data processing. + +File Modifications by Users + + Note that this file may be readily modified by you to change + values or add/delete parameters. NAIF requests that you update the + "by line," date, version description section, and file name + if you modify this file. + + A user-modified file should be thoroughly tested before + being published or otherwise distributed. + + P_constants files must conform to the standards described + in the two SPICE technical reference documents: + + PCK Required Reading + Kernel Required Reading + + +Known Limitations and Caveats + + Accuracy + -------- + + In general, the orientation models given here are claimed by the + IAU Working Group Report [1] to be accurate to 0.1 degree + ([1], p.158). However, NAIF notes that orientation models for + natural satellites and asteroids have in some cases changed + substantially with the availability of new observational data, so + users are urged to investigate the suitability for their + applications of the models presented here. + + Earth orientation + ----------------- + + NAIF strongly cautions against using the earth rotation model + (from [1]), corresponding to the SPICE reference frame name + IAU_EARTH, for work demanding high accuracy. This model has been + determined by NAIF to have an error in the prime meridian location + of magnitude at least 150 arcseconds, with a local minimum + occurring during the year 1999. Regarding availability of better + earth orientation data for use with the SPICE system: + + Earth orientation data are available from NAIF in the form of + binary earth PCK files. These files provide orientation data + for the ITRF93 (terrestrial) reference frame relative to the + ICRF. + + NAIF employs an automated process to create these files; each + time JPL's Tracking Systems and Applications Section produces a + new earth orientation parameter (EOP) file, a new PCK is + produced. These PCKs cover a roughly 10 year time span starting + at Jan. 1, 2000. In these PCK files, the following effects are + accounted for in modeling the earth's rotation: + + - Precession: 1976 IAU model + + - Nutation: 1980 IAU model, plus interpolated + EOP nutation corrections + + - Polar motion: interpolated from EOP file + + - True sidereal time: + + UT1 - UT1R (if needed): given by analytic formula + + TAI - UT1 (or UT1R): interpolated from EOP file + + UT1 - GMST: given by analytic formula + + equation of equinoxes: given by analytic formula + + where + + TAI = International Atomic Time + UT1 = Greenwich hour angle of computed mean sun - 12h + UT1R = Regularized UT1 + GMST = Greenwich mean sidereal time + + These kernels are available from the NAIF web site + + http://naif.jpl.nasa.gov + + (follow the links to Data, generic_kernels, and PCK data) or + + ftp://naif.jpl.nasa.gov/pub/naif/generic_kernels/pck + + or via anonymous ftp from the server + + naif.jpl.nasa.gov + + The kernels are in the path + + pub/naif/generic_kernels/pck + + At this time, these kernels have file names of the form + + earth_000101_yymmdd_yymmdd.bpc + + The first date in the file name, meaning 2000 January 1, is the + file's coverage begin time. The second and third dates are, + respectively, the file's coverage end time and the epoch of the + last datum. + + These binary PCK files are very accurate (error < 0.1 + microradian) for epochs preceding the epoch of the last datum. + For later epochs, the error rises to several microradians. + + Binary PCK files giving accurate earth orientation from 1972 to + 2007 and *low accuracy* predicted earth orientation from + 2007 to 2037 are also available in the same location. See the + aareadme.txt file at the "pck" URL above for details. + + Characteristics and names of the binary kernels described here + are subject to change. See the "pck" URL above for information + on current binary earth PCKs. + + + Lunar orientation + ----------------- + + The lunar orientation formula provided by this file is a + trigonometric polynomial approximation yielding the orientation of + the lunar "Mean Earth/Polar Axis" (ME) reference frame. The + SPICE reference frame name corresponding to this model is + IAU_MOON. + + A more accurate approximation can be obtained by using both the + NAIF lunar frame kernel and the binary lunar orientation PCK file. + These files provide orientation data for the both the Mean + Earth/Polar Axis frame, which has the SPICE name MOON_ME, and the + Lunar Principal Axes frame, which has the SPICE name MOON_PA. + + These files are available on the NAIF web site (see URLs above) + and in the NAIF server's ftp area. The lunar frame kernel is + located in the path + + pub/naif/generic_kernels/fk/satellites + + and has a name of the form + + moon_yymmdd.tf + + The binary lunar PCK is in the path + + pub/naif/generic_kernels/pck + + and has a name of the form + + moon_pa_dennn_yyyy-yyyy.bpc + + See the "aareadme.txt" files in the paths shown above for details + on file contents and versions. We also suggest you refer to the + SPICE tutorial named "lunar_earth_pck-fk," which is available from + the NAIF web site. + + + Earth geomagnetic dipole + ------------------------ + + The SPICE Toolkit doesn't currently contain software to model the + earth's north geomagnetic centered dipole as a function of time. + As a convenience for users, the north dipole location from the + epoch 2012.0 was selected as a representative datum, and the + planetocentric longitude and latitude of this location have been + associated with the keywords + + BODY399_N_GEOMAG_CTR_DIPOLE_LON + BODY399_N_GEOMAG_CTR_DIPOLE_LAT + + Values for the earth's north geomagnetic centered dipole are + presented in comments as a discrete time series for the time range + 1945-2000. For details concerning the geomagnetic field model from + which these values were derived, including a discussion of the + model's accuracy, see [9] and [11]. + + + Prime meridian offsets + ---------------------- + + Prime meridian offset kernel variables, which have names + of the form + + BODYnnn_LONG_AXIS + + are not used by SPICE geometry software. These variables should be + considered deprecated; however, they will be retained for + backwards compatibility. + + Users wishing to specify an offset reflecting the orientation of a + reference ellipsoid relative to a body-fixed reference frame + specified here should do so by creating a constant-offset frame + (also called a "TK" frame) specification. See the Frames Required + Reading frames.req for details. + + The Mars prime meridian offset given by [5] is provided for + informational purposes only. + + + Software limitations + -------------------- + + SPICE Toolkits prior to version N0057 cannot make use of + trigonometric polynomial terms in the formulas for orientation of + the planets. + + The second nutation precession angle (M2) for Mars is represented + by a quadratic polynomial in the 2006 IAU report. The SPICELIB + subroutine BODEUL can not handle this term (which is extremely + small), so we truncate the polynomial to a linear one. The + resulting orientation error has a maximum magnitude of less + than 0.0032 degrees over the time span 1996-2015 and less than + 0.0082 degrees over the time span 1986-2025. + + +Sources and References +-------------------------------------------------------- + + The sources for the constants listed in this file are: + + + [1] Archinal, B.A., A'Hearn, M.F., Bowell, E., Conrad, A., + Consolmagno, G.J., Courtin, R., Fukushima, T., + Hestroffer, D., Hilton, J.L., Krasinsky, G.A., + Neumann, G., Oberst, J., Seidelmann, P.K., Stooke, P., + Tholen, D.J., Thomas, P.C., and Williams, I.P. + "Report of the IAU Working Group on Cartographic Coordinates + and Rotational Elements: 2009." + + [2] Archinal, B.A., A'Hearn, M.F., Conrad, A., + Consolmagno, G.J., Courtin, R., Fukushima, T., + Hestroffer, D., Hilton, J.L., Krasinsky, G.A., + Neumann, G., Oberst, J., Seidelmann, P.K., Stooke, P., + Tholen, D.J., Thomas, P.C., and Williams, I.P. + "Erratum to: Reports of the IAU Working Group on + Cartographic Coordinates and Rotational Elements: 2006 & + 2009." + + [3] Seidelmann, P.K., Archinal, B.A., A'Hearn, M.F., + Conrad, A., Consolmagno, G.J., Hestroffer, D., + Hilton, J.L., Krasinsky, G.A., Neumann, G., + Oberst, J., Stooke, P., Tedesco, E.F., Tholen, D.J., + and Thomas, P.C. "Report of the IAU/IAG Working Group + on cartographic coordinates and rotational elements: 2006." + + [4] Nautical Almanac Office, United States Naval Observatory + and H.M. Nautical Almanac Office, Rutherford Appleton + Laboratory (2010). "The Astronomical Almanac for + the Year 2010," U.S. Government Printing Office, + Washington, D.C.: and The Stationary Office, London. + + [5] Duxbury, Thomas C. (2001). "IAU/IAG 2000 Mars Cartographic + Conventions," presentation to the Mars Express Data + Archive Working Group, Dec. 14, 2001. + + [6] Russell, C.T. and Luhmann, J.G. (1990). "Earth: Magnetic + Field and Magnetosphere." <http://www-ssc.igpp.ucla. + edu/personnel/russell/papers/earth_mag>. Originally + published in "Encyclopedia of Planetary Sciences," J.H. + Shirley and R.W. Fainbridge, eds. Chapman and Hall, + New York, pp 208-211. + + [7] Russell, C.T. (1971). "Geophysical Coordinate + Transformations," Cosmic Electrodynamics 2 184-186. + NAIF document 181.0. + + [8] ESA/ESTEC Space Environment Information System (SPENVIS) + (2003). Web page: "Dipole approximations of the + geomagnetic field." <http://www.spenvis.oma.be/spenvis/ + help/background/magfield/cd.html>. + + [9] International Association of Geomagnetism and Aeronomy + and International Union of Geodesy and Geophysics (2004). + Web page: "The 9th Generation International Geomagnetic + Reference Field." <http://www.ngdc.noaa.gov/ + IAGA/vmod/igrf.html>. + + [10] Davies, M.E., Abalakin, V.K., Bursa, M., Hunt, G.E., + and Lieske, J.H. (1989). "Report of the IAU/IAG/COSPAR + Working Group on Cartographic Coordinates and Rotational + Elements of the Planets and Satellites: 1988," Celestial + Mechanics and Dynamical Astronomy, v.46, no.2, pp. + 187-204. + + [11] International Association of Geomagnetism and Aeronomy + Web page: "International Geomagnetic Reference Field." + Discussion URL: + + http://www.ngdc.noaa.gov/IAGA/vmod/igrf.html + + Coefficients URL: + + http://www.ngdc.noaa.gov/IAGA/vmod/igrf11coeffs.txt + + + + Most values are from [1]. All exceptions are + commented where they occur in this file. The exceptions are: + + + -- Radii for the Sun are from [4]. + + -- Prime meridian constant (W0) terms for Pluto, Charon, + and Ida are from [2]. + + -- The second nutation precession angle (M2) for Mars is + represented by a quadratic polynomial in the 2000 + IAU report. The SPICELIB subroutine BODEUL can not + handle this term (which is extremely small), so we + truncate the polynomial to a linear one. + + -- Earth north geomagnetic centered dipole values are from + [11]. The values were also computed from the 11th + generation IGRF by Nat Bachman. + + + "Old values" listed are from the SPICE P_constants file + pck00009.tpc dated March 3, 2010. Most of these values came + from the 2006 IAU report [3]. + + + + +Explanatory Notes +-------------------------------------------------------- + + This file, which is logically part of the SPICE P-kernel, contains + constants used to model the orientation, size and shape of the + Sun, planets, natural satellites, and selected comets and + asteroids. The orientation models express the direction of the + pole and location of the prime meridian of a body as a function of + time. The size/shape models ("shape models" for short) represent + all bodies as ellipsoids, using two equatorial radii and a polar + radius. Spheroids and spheres are obtained when two or all three + radii are equal. + + The SPICE Toolkit routines that use this file are documented in + the SPICE "Required Reading" file pck.req. They are also + documented in the "PCK" SPICE tutorial, which is available on + the NAIF web site. + +File Format + + A terse description of the PCK file format is given here. See the + SPICE "Required Reading" files pck.req and kernel.req for a + detailed explanation of the SPICE text kernel file format. The + files pck.req and kernel.req are included in the documentation + provided with the SPICE Toolkit. + + The file starts out with the ``ID word'' string + + KPL/PCK + + This string identifies the file as a text kernel containing PCK + data. + + This file consists of a series of comment blocks and data blocks. + Comment blocks, which contain free-form descriptive or explanatory + text, are preceded by a \begintext token. Data blocks follow a + \begindata token. In order to be recognized, each of these tokens + must be placed on a line by itself. + + The portion of the file preceding the first data block is treated + as a comment block; it doesn't require an initial \begintext + token. + + This file identifies data using a series of + + KEYWORD = VALUE + + assignments. The left hand side of each assignment is a + "kernel variable" name; the right hand side is an associated value + or list of values. The SPICE subroutine API allows SPICE routines + and user applications to retrieve the set of values associated + with each kernel variable name. + + Kernel variable names are case-sensitive and are limited to + 32 characters in length. + + Numeric values may be integer or floating point. String values + are normally limited to 80 characters in length; however, SPICE + provides a mechanism for identifying longer, "continued" strings. + See the SPICE routine STPOOL for details. + + String values are single quoted. + + When the right hand side of an assignment is a list of values, + the list items may be separated by commas or simply by blanks. + The list must be bracketed by parentheses. Example: + + BODY399_RADII = ( 6378.1366 6378.1366 6356.7519 ) + + Any blanks preceding or following keyword names, values and equal + signs are ignored. + + Assignments may be spread over multiple lines, for example: + + BODY399_RADII = ( 6378.1366 + 6378.1366 + 6356.7519 ) + + This file may contain blank lines anywhere. Non-printing + characters including TAB should not be present in the file: the + presence of such characters may cause formatting errors when the + file is viewed. + +Time systems and reference frames + + The 2009 IAU Working Group Report [1] states the time scale used + as the independent variable for the rotation formulas is + Barycentric Dynamical Time (TDB) and that the epoch of variable + quantities is J2000 TDB (2000 Jan 1 12:00:00 TDB, Julian ephemeris + date 2451545.0 TDB). Throughout SPICE documentation and in this + file, we use the names "J2000 TDB" and "J2000" for this epoch. The + name "J2000.0" is equivalent. + + SPICE documentation refers to the time system used in this file + as either "ET" or "TDB." SPICE software makes no distinction + between TDB and the time system associated with the independent + variable of the JPL planetary ephemerides T_eph. + + The inertial reference frame used for the rotational elements in + this file is identified by [1] as the ICRF (International + Celestial Reference Frame). + + The SPICE PCK software that reads this file uses the label "J2000" + to refer to the ICRF; this is actually a mislabeling which has + been retained in the interest of backward compatibility. Using + data from this file, by means of calls to the SPICE frame + transformation routines, will actually compute orientation + relative to the ICRF. + + The difference between the J2000 frame and the ICRF is + on the order of tens of milliarcseconds and is well below the + accuracy level of the formulas in this file. + +Orientation models + + All of the orientation models use three Euler angles to describe + the orientation of the coordinate axes of the "Body Equator and + Prime Meridian" system with respect to an inertial system. By + default, the inertial system is the ICRF (labeled as "J2000"), but + other inertial frames can be specified in the file. See the PCK + Required Reading for details. + + The first two angles, in order, are the ICRF right ascension and + declination (henceforth RA and DEC) of the north pole of a body as + a function of time. The third angle is the prime meridian location + (represented by "W"), which is expressed as a rotation about the + north pole, and is also a function of time. + + For each body, the expressions for the north pole's right + ascension and declination, as well as prime meridian location, are + sums (as far as the models that appear in this file are concerned) + of quadratic polynomials and trigonometric polynomials, where the + independent variable is time. + + In this file, the time arguments in expressions always refer to + Barycentric Dynamical Time (TDB), measured in centuries or days + past a reference epoch. By default, the reference epoch is the + J2000 epoch, which is Julian ephemeris date 2451545.0 (2000 Jan 1 + 12:00:00 TDB), but other epochs can be specified in the file. See + the PCK Required Reading for details. + + Orientation models for satellites and some planets (including + Jupiter) involve both polynomial terms and trigonometric terms. + The arguments of the trigonometric terms are linear polynomials. + In this file, we call the arguments of these trigonometric terms + "nutation precession angles." + + Example: 2009 IAU Model for orientation of Jupiter. Note that + these values are used as an example only; see the data area below + for current values. + + Right ascension + --------------- + + alpha = 268.056595 - 0.006499 T + 0.000117 sin(Ja) + 0 + 0.000938 sin(Jb) + 0.001432 sin(Jc) + + 0.000030 sin(Jd) + 0.002150 sin(Je) + + Declination + ----------- + + delta = 64.495303 + 0.002413 T + 0.000050 cos(Ja) + 0 + 0.000404 cos(Jb) + 0.000617 cos(Jc) + - 0.000013 cos(Jd) + 0.000926 cos(Je) + + Prime meridian + -------------- + + W = 284.95 + 870.5366420 d + + + Here + + T represents centuries past J2000 ( TDB ), + + d represents days past J2000 ( TDB ). + + Ja-Je are nutation precession angles. + + In this file, the polynomials' coefficients above are assigned + to kernel variable names (left-hand-side symbols) as follows + + BODY599_POLE_RA = ( 268.056595 -0.006499 0. ) + BODY599_POLE_DEC = ( 64.495303 0.002413 0. ) + BODY599_PM = ( 284.95 870.5360000 0. ) + + and the trigonometric polynomials' coefficients are assigned + as follows + + BODY599_NUT_PREC_RA = ( 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.000117 + 0.000938 + 0.001432 + 0.000030 + 0.002150 ) + + BODY599_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.000050 + 0.000404 + 0.000617 + -0.000013 + 0.000926 ) + + BODY599_NUT_PREC_PM = ( 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.0 + 0.0 + 0.0 + 0.0 + 0.0 ) + + Note the number "599"; this is the NAIF ID code for Jupiter. + + In this file, the polynomial expressions for the nutation + precession angles are listed along with the planet's RA, DEC, and + prime meridian terms. Below are the 2006 IAU nutation precession + angles for the Jupiter system. + + J1 = 73.32 + 91472.9 T + J2 = 24.62 + 45137.2 T + J3 = 283.90 + 4850.7 T + J4 = 355.80 + 1191.3 T + J5 = 119.90 + 262.1 T + J6 = 229.80 + 64.3 T + J7 = 352.25 + 2382.6 T + J8 = 113.35 + 6070.0 T + + J9 = 146.64 + 182945.8 T + J10 = 49.24 + 90274.4 T + + Ja = 99.360714 + 4850.4046 T + Jb = 175.895369 + 1191.9605 T + Jc = 300.323162 + 262.5475 T + Jd = 114.012305 + 6070.2476 T + Je = 49.511251 + 64.3000 T + + Here + + T represents centuries past J2000 ( TDB ) + + J1-J10 and Ja-Je are the nutation precession angles. The angles + J9 and J10 are equal to 2*J1 and 2*J2, respectively. + + Angles J9 and J10 are not present in [1]; they have been added + to fit the terms 2*J1 and 2*J2, which appear in the orientation + models of several satellites, into a form that can be accepted + by the PCK system. + + The assignment of the nutation precession angles for the + Jupiter system is as follows: + + BODY5_NUT_PREC_ANGLES = ( 73.32 91472.9 + 24.62 45137.2 + 283.90 4850.7 + 355.80 1191.3 + 119.90 262.1 + 229.80 64.3 + 352.25 2382.6 + 113.35 6070.0 + 146.64 182945.8 + 49.24 90274.4 + 99.360714 4850.4046 + 175.895369 1191.9605 + 300.323162 262.5475 + 114.012305 6070.2476 + 49.511251 64.3000 ) + + You'll see an additional symbol grouped with the ones listed + above; it is + + BODY599_LONG_AXIS + + This is a deprecated feature; see the note on "Prime meridian + offsets" under "Known Limitations and Caveats" above. + + The pattern of the formulas for satellite orientation is similar + to that for Jupiter. Example: 2006 IAU values for Io. Again, these + values are used as an example only; see the data area below for + current values. + + Right ascension + --------------- + + alpha = 268.05 - 0.009 T + 0.094 sin(J3) + 0.024 sin(J4) + 0 + + Declination + ----------- + + delta = 64.50 + 0.003 T + 0.040 cos(J3) + 0.011 cos(J4) + 0 + + Prime meridian + -------------- + + W = 200.39 + 203.4889538 d - 0.085 sin(J3) - 0.022 sin(J4) + + + d represents days past J2000. + + J3 and J4 are nutation precession angles. + + The polynomial terms are assigned to symbols by the statements + + BODY501_POLE_RA = ( 268.05 -0.009 0. ) + BODY501_POLE_DEC = ( 64.50 0.003 0. ) + BODY501_PM = ( 200.39 203.4889538 0. ) + + The coefficients of the trigonometric terms are assigned to symbols by + the statements + + BODY501_NUT_PREC_RA = ( 0. 0. 0.094 0.024 ) + BODY501_NUT_PREC_DEC = ( 0. 0. 0.040 0.011 ) + BODY501_NUT_PREC_PM = ( 0. 0. -0.085 -0.022 ) + + 501 is the NAIF ID code for Io. + + SPICE software expects the models for satellite orientation to + follow the form of the model shown here: the polynomial portions of the + RA, DEC, and W expressions are expected to be quadratic, the + trigonometric terms for RA and W (satellite prime meridian) are expected + to be linear combinations of sines of nutation precession angles, the + trigonometric terms for DEC are expected to be linear combinations of + cosines of nutation precession angles, and the polynomials for the + nutation precession angles themselves are expected to be linear. + + Eventually, the software will handle more complex expressions, we + expect. + + +Shape models + + There is only one kind of shape model supported by the SPICE + Toolkit software at present: the triaxial ellipsoid. The 2009 IAU + report [1] does not use any other models, except in the case of + Mars, where separate values are given for the north and south + polar radii. In this file, we provide as a datum the mean Mars + polar radius provided by [1]. The North and South values are + included as comments. + + For each body, three radii are listed: The first number is + the largest equatorial radius (the length of the semi-axis + containing the prime meridian), the second number is the smaller + equatorial radius, and the third is the polar radius. + + Example: Radii of the Earth. + + BODY399_RADII = ( 6378.1366 6378.1366 6356.7519 ) + + + +Body Numbers and Names +-------------------------------------------------------- + + + The following NAIF body ID codes and body names appear in this + file. See the NAIF IDs Required Reading file naif_ids.req for + a detailed discussion and a complete list of ID codes and names. + + + 1 Mercury barycenter + 2 Venus barycenter + 3 Earth barycenter + 4 Mars barycenter + 5 Jupiter barycenter + 6 Saturn barycenter + 7 Uranus barycenter + 8 Neptune barycenter + 9 Pluto barycenter + 10 Sun + + + 199 Mercury + + + 299 Venus + + + 399 Earth + + 301 Moon + + + 499 Mars + + 401 Phobos 402 Deimos + + + 599 Jupiter + + 501 Io 502 Europa 503 Ganymede 504 Callisto + 505 Amalthea 506 Himalia 507 Elara 508 Pasiphae + 509 Sinope 510 Lysithea 511 Carme 512 Ananke + 513 Leda 514 Thebe 515 Adrastea 516 Metis + + + 699 Saturn + + 601 Mimas 602 Enceladus 603 Tethys 604 Dione + 605 Rhea 606 Titan 607 Hyperion 608 Iapetus + 609 Phoebe 610 Janus 611 Epimetheus 612 Helene + 613 Telesto 614 Calypso 615 Atlas 616 Prometheus + 617 Pandora 618 Pan 632 Methone 633 Pallene + 634 Polydeuces 635 Daphnis 649 Anthe + + + 799 Uranus + + 701 Ariel 702 Umbriel 703 Titania 704 Oberon + 705 Miranda 706 Cordelia 707 Ophelia 708 Bianca + 709 Cressida 710 Desdemona 711 Juliet 712 Portia + 713 Rosalind 714 Belinda 715 Puck + + + 899 Neptune + + 801 Triton 802 Nereid 803 Naiad 804 Thalassa + 805 Despina 806 Galatea 807 Larissa 808 Proteus + + + 999 Pluto + + 901 Charon + + + 1000005 Comet 19P/Borrelly + 1000036 Comet Halley + 1000093 Comet 9P/Tempel 1 + 1000107 Comet 81P/Wild 2 + + 2000001 Asteroid Ceres + 2000002 Asteroid Pallas + 2000004 Asteroid Vesta + 2000021 Asteroid Lutetia + 2000216 Asteroid Kleopatra + 2000253 Asteroid Mathilde + 2000433 Asteroid Eros + 2000511 Asteroid Davida + 2002867 Asteroid Steins + 2004179 Asteroid Toutatis + 2025143 Asteroid Itokawa + 2431010 Asteroid Ida + 9511010 Asteroid Gaspra + + +Orientation Constants for the Sun and Planets +-------------------------------------------------------- + + +Sun + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY10_POLE_RA = ( 286.13 0. 0. ) + BODY10_POLE_DEC = ( 63.87 0. 0. ) + BODY10_PM = ( 84.176 14.18440 0. ) + BODY10_LONG_AXIS = ( 0. ) + + \begintext + +Mercury + + Old values: + + Values are from the 2006 IAU report. + + body199_pole_ra = ( 281.01 -0.033 0. ) + body199_pole_dec = ( 61.45 -0.005 0. ) + body199_pm = ( 329.548 6.1385025 0. ) + + + Current values: + + \begindata + + BODY199_POLE_RA = ( 281.0097 -0.0328 0. ) + BODY199_POLE_DEC = ( 61.4143 -0.0049 0. ) + BODY199_PM = ( 329.5469 6.1385025 0. ) + + BODY199_LONG_AXIS = ( 0. ) + + BODY199_NUT_PREC_RA = ( 0. 0. 0. 0. 0. ) + + BODY199_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. ) + + BODY199_NUT_PREC_PM = ( 0.00993822 + -0.00104581 + -0.00010280 + -0.00002364 + -0.00000532 ) + \begintext + + The linear coefficients have been scaled up from degrees/day + to degrees/century, because the SPICELIB PCK reader expects + these units. The original constants were: + + 174.791086 4.092335 + 349.582171 8.184670 + 164.373257 12.277005 + 339.164343 16.369340 + 153.955429 20.461675 + + + \begindata + + BODY1_NUT_PREC_ANGLES = ( 174.791086 0.14947253587500003E+06 + 349.582171 0.29894507175000006E+06 + 164.373257 0.44841760762500006E+06 + 339.164343 0.59789014350000012E+06 + 153.955429 0.74736267937499995E+06 ) + \begintext + + +Venus + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY299_POLE_RA = ( 272.76 0. 0. ) + BODY299_POLE_DEC = ( 67.16 0. 0. ) + BODY299_PM = ( 160.20 -1.4813688 0. ) + + BODY299_LONG_AXIS = ( 0. ) + + \begintext + + +Earth + + Old values: + + Values are unchanged in the 2009 report. + + Current values: + + \begindata + + BODY399_POLE_RA = ( 0. -0.641 0. ) + BODY399_POLE_DEC = ( 90. -0.557 0. ) + BODY399_PM = ( 190.147 360.9856235 0. ) + BODY399_LONG_AXIS = ( 0. ) + + \begintext + + + Nutation precession angles for the Earth-Moon system: + + The linear coefficients have been scaled up from degrees/day + to degrees/century, because the SPICELIB PCK reader expects + these units. The original constants were: + + 125.045D0 -0.0529921D0 + 250.089D0 -0.1059842D0 + 260.008D0 13.0120009D0 + 176.625D0 13.3407154D0 + 357.529D0 0.9856003D0 + 311.589D0 26.4057084D0 + 134.963D0 13.0649930D0 + 276.617D0 0.3287146D0 + 34.226D0 1.7484877D0 + 15.134D0 -0.1589763D0 + 119.743D0 0.0036096D0 + 239.961D0 0.1643573D0 + 25.053D0 12.9590088D0 + + + \begindata + + + BODY3_NUT_PREC_ANGLES = ( 125.045 -1935.5364525000 + 250.089 -3871.0729050000 + 260.008 475263.3328725000 + 176.625 487269.6299850000 + 357.529 35999.0509575000 + 311.589 964468.4993100000 + 134.963 477198.8693250000 + 276.617 12006.3007650000 + 34.226 63863.5132425000 + 15.134 -5806.6093575000 + 119.743 131.8406400000 + 239.961 6003.1503825000 + 25.053 473327.7964200000 ) + + + \begintext + + + Earth north geomagnetic centered dipole: + + The north dipole location is time-varying. The values shown + below, taken from [8], represent a discrete sampling of the + north dipole location from 1945 to 2000. The terms DGRF and + IGRF refer to, respectively, "Definitive Geomagnetic + Reference Field" and "International Geomagnetic Reference + Field." See references [6], [8], and [9] for details. + + Coordinates are planetocentric. + + Data source Lat Lon + ----------- ----- ------ + DGRF 1945 78.47 291.47 + DGRF 1950 78.47 291.15 + DGRF 1955 78.46 290.84 + DGRF 1960 78.51 290.53 + DGRF 1965 78.53 290.15 + DGRF 1970 78.59 289.82 + DGRF 1975 78.69 289.53 + DGRF 1980 78.81 289.24 + DGRF 1985 78.97 289.10 + DGRF 1990 79.13 288.89 + IGRF 1995 79.30 288.59 + IGRF 2000 79.54 288.43 + + Original values: + + Values are from [7]. Note the year of publication was 1971. + + body399_mag_north_pole_lon = ( -69.761 ) + body399_mag_north_pole_lat = ( 78.565 ) + + Previous values: + + body399_n_geomag_ctr_dipole_lon = ( 288.43 ) + body399_n_geomag_ctr_dipole_lat = ( 79.54 ) + + + Current values: + + Values are given for the epoch 2012.0 and were derived + by Nat Bachman from constants provided by [11]. + + \begindata + + BODY399_N_GEOMAG_CTR_DIPOLE_LON = ( 287.62 ) + BODY399_N_GEOMAG_CTR_DIPOLE_LAT = ( 80.13 ) + + \begintext + + + + +Mars + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY499_POLE_RA = ( 317.68143 -0.1061 0. ) + BODY499_POLE_DEC = ( 52.88650 -0.0609 0. ) + BODY499_PM = ( 176.630 350.89198226 0. ) + + \begintext + + Source [5] specifies the following value for the lambda_a term + (BODY499_LONG_AXIS ) for Mars. This term is the POSITIVE EAST + LONGITUDE, measured from the prime meridian, of the meridian + containing the longest axis of the reference ellipsoid. + (CAUTION: previous values were POSITIVE WEST.) + + body499_long_axis = ( 252. ) + + We list this lambda_a value for completeness. The IAU report + [1] gives equal values for both equatorial radii, so the + lambda_a offset does not apply to the IAU model. + + The 2003 IAU report defines M2, the second nutation precession angle, + by: + + 2 + 192.93 + 1128.4096700 d + 8.864 T + + We truncate the M2 series to a linear expression, because the PCK + software cannot handle the quadratic term. + + Again, the linear terms are scaled by 36525.0: + + -0.4357640000000000 --> -15916.28010000000 + 1128.409670000000 --> 41215163.19675000 + -1.8151000000000000E-02 --> -662.9652750000000 + + We also introduce a fourth nutation precession angle, which + is the pi/2-complement of the third angle. This angle is used + in computing the prime meridian location for Deimos. See the + discussion of this angle below in the section containing orientation + constants for Deimos. + + \begindata + + BODY4_NUT_PREC_ANGLES = ( 169.51 -15916.2801 + 192.93 41215163.19675 + 53.47 -662.965275 + 36.53 662.965275 ) + + \begintext + + +Jupiter + + Old values: + + The rotation rate is from the 2006 IAU report; all other + values are unchanged in the 2009 report. + + body599_pm = ( 284.95 870.5366420 0. ) + + + Current values: + + The number of nutation precession angles is 15. The ninth and + tenth are twice the first and second, respectively. The + eleventh through fifteenth correspond to angles JA-JE in + the 2006 IAU report; angles JA-JE were not used prior to that + report. + + \begindata + + + BODY599_POLE_RA = ( 268.056595 -0.006499 0. ) + BODY599_POLE_DEC = ( 64.495303 0.002413 0. ) + BODY599_PM = ( 284.95 870.5360000 0. ) + BODY599_LONG_AXIS = ( 0. ) + + BODY599_NUT_PREC_RA = ( 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.000117 + 0.000938 + 0.001432 + 0.000030 + 0.002150 ) + + BODY599_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.000050 + 0.000404 + 0.000617 + -0.000013 + 0.000926 ) + + BODY599_NUT_PREC_PM = ( 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.0 + 0.0 + 0.0 + 0.0 + 0.0 ) + + + BODY5_NUT_PREC_ANGLES = ( 73.32 91472.9 + 24.62 45137.2 + 283.90 4850.7 + 355.80 1191.3 + 119.90 262.1 + 229.80 64.3 + 352.25 2382.6 + 113.35 6070.0 + 146.64 182945.8 + 49.24 90274.4 + 99.360714 4850.4046 + 175.895369 1191.9605 + 300.323162 262.5475 + 114.012305 6070.2476 + 49.511251 64.3000 ) + \begintext + + +Saturn + + Old values: + + Values are from the 2006 IAU report. + + + body699_pole_ra = ( 40.589 -0.036 0. ) + body699_pole_dec = ( 83.537 -0.004 0. ) + body699_pm = ( 38.90 810.7939024 0. ) + body699_long_axis = ( 0. ) + + + The first seven angles given here are the angles S1 + through S7 from the 2000 report; the eighth and + ninth angles are 2*S1 and 2*S2, respectively. + + + body6_nut_prec_angles = ( 353.32 75706.7 + 28.72 75706.7 + 177.40 -36505.5 + 300.00 -7225.9 + 316.45 506.2 + 345.20 -1016.3 + 29.80 -52.1 + 706.64 151413.4 + 57.44 151413.4 ) + + + Current values: + + + The change from the previous set of values is the + removal of S7. This causes BODY6_NUT_PREC_ANGLES + elements that formerly corresponded to 2*S1 and 2*S1 + to be shifted toward the start of the array. + + \begindata + + BODY699_POLE_RA = ( 40.589 -0.036 0. ) + BODY699_POLE_DEC = ( 83.537 -0.004 0. ) + BODY699_PM = ( 38.90 810.7939024 0. ) + BODY699_LONG_AXIS = ( 0. ) + + \begintext + + The first six angles given here are the angles S1 + through S6 from the 2009 report; the seventh and + eigth angles are 2*S1 and 2*S2, respectively. + + + \begindata + + BODY6_NUT_PREC_ANGLES = ( 353.32 75706.7 + 28.72 75706.7 + 177.40 -36505.5 + 300.00 -7225.9 + 316.45 506.2 + 345.20 -1016.3 + 706.64 151413.4 + 57.44 151413.4 ) + \begintext + + +Uranus + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY799_POLE_RA = ( 257.311 0. 0. ) + BODY799_POLE_DEC = ( -15.175 0. 0. ) + BODY799_PM = ( 203.81 -501.1600928 0. ) + BODY799_LONG_AXIS = ( 0. ) + + \begintext + + The first 16 angles given here are the angles U1 + through U16 from the 2000 report; the 17th and + 18th angles are 2*U11 and 2*U12, respectively. + + \begindata + + BODY7_NUT_PREC_ANGLES = ( 115.75 54991.87 + 141.69 41887.66 + 135.03 29927.35 + 61.77 25733.59 + 249.32 24471.46 + 43.86 22278.41 + 77.66 20289.42 + 157.36 16652.76 + 101.81 12872.63 + 138.64 8061.81 + 102.23 -2024.22 + 316.41 2863.96 + 304.01 -51.94 + 308.71 -93.17 + 340.82 -75.32 + 259.14 -504.81 + 204.46 -4048.44 + 632.82 5727.92 ) + + \begintext + + + +Neptune + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY899_POLE_RA = ( 299.36 0. 0. ) + BODY899_POLE_DEC = ( 43.46 0. 0. ) + BODY899_PM = ( 253.18 536.3128492 0. ) + BODY899_LONG_AXIS = ( 0. ) + + + BODY899_NUT_PREC_RA = ( 0.70 0. 0. 0. 0. 0. 0. 0. ) + BODY899_NUT_PREC_DEC = ( -0.51 0. 0. 0. 0. 0. 0. 0. ) + BODY899_NUT_PREC_PM = ( -0.48 0. 0. 0. 0. 0. 0. 0. ) + + \begintext + + The 2000 report defines the nutation precession angles + + N, N1, N2, ... , N7 + + and also uses the multiples of N1 and N7 + + 2*N1 + + and + + 2*N7, 3*N7, ..., 9*N7 + + In this file, we treat the angles and their multiples as + separate angles. In the kernel variable + + BODY8_NUT_PREC_ANGLES + + the order of the angles is + + N, N1, N2, ... , N7, 2*N1, 2*N7, 3*N7, ..., 9*N7 + + Each angle is defined by a linear polynomial, so two + consecutive array elements are allocated for each + angle. The first term of each pair is the constant term, + the second is the linear term. + + \begindata + + BODY8_NUT_PREC_ANGLES = ( 357.85 52.316 + 323.92 62606.6 + 220.51 55064.2 + 354.27 46564.5 + 75.31 26109.4 + 35.36 14325.4 + 142.61 2824.6 + 177.85 52.316 + 647.840 125213.200 + 355.700 104.632 + 533.550 156.948 + 711.400 209.264 + 889.250 261.580 + 1067.100 313.896 + 1244.950 366.212 + 1422.800 418.528 + 1600.650 470.844 ) + + \begintext + + + + +Orientation Constants for the Dwarf Planet Pluto +-------------------------------------------------------- + +Pluto + + Old values: + + Values are from the 2006 IAU report. + + body999_pole_ra = ( 312.993 0. 0. ) + body999_pole_dec = ( 6.163 0. 0. ) + body999_pm = ( 237.305 -56.3625225 0. ) + body999_long_axis = ( 0. ) + + + Current values: + + Due to the new definition of planetocentric coordinates + for small bodies, and to the reclassification of Pluto + as a dwarf planet, Pluto's north pole direction has been + inverted. + + The PM constant W0 is from [2]. + + \begindata + + BODY999_POLE_RA = ( 132.993 0. 0. ) + BODY999_POLE_DEC = ( -6.163 0. 0. ) + BODY999_PM = ( 302.695 56.3625225 0. ) + BODY999_LONG_AXIS = ( 0. ) + + \begintext + + + + +Orientation constants for the satellites +-------------------------------------------------------- + + +Satellites of Earth + + Old values: + + Values are unchanged in the 2009 IAU report. + + New values: + + \begindata + + + BODY301_POLE_RA = ( 269.9949 0.0031 0. ) + BODY301_POLE_DEC = ( 66.5392 0.0130 0. ) + BODY301_PM = ( 38.3213 13.17635815 -1.4D-12 ) + BODY301_LONG_AXIS = ( 0. ) + + BODY301_NUT_PREC_RA = ( -3.8787 -0.1204 0.0700 -0.0172 + 0.0 0.0072 0.0 0.0 + 0.0 -0.0052 0.0 0.0 + 0.0043 ) + + BODY301_NUT_PREC_DEC = ( 1.5419 0.0239 -0.0278 0.0068 + 0.0 -0.0029 0.0009 0.0 + 0.0 0.0008 0.0 0.0 + -0.0009 ) + + BODY301_NUT_PREC_PM = ( 3.5610 0.1208 -0.0642 0.0158 + 0.0252 -0.0066 -0.0047 -0.0046 + 0.0028 0.0052 0.0040 0.0019 + -0.0044 ) + \begintext + + + +Satellites of Mars + + + Phobos + + Old values: + + Values are unchanged in the 2009 IAU report. + + + Current values: + + The quadratic prime meridian term is scaled by 1/36525**2: + + 8.864000000000000 ---> 6.6443009930565219E-09 + + \begindata + + BODY401_POLE_RA = ( 317.68 -0.108 0. ) + BODY401_POLE_DEC = ( 52.90 -0.061 0. ) + BODY401_PM = ( 35.06 1128.8445850 6.6443009930565219E-09 ) + + BODY401_LONG_AXIS = ( 0. ) + + BODY401_NUT_PREC_RA = ( 1.79 0. 0. 0. ) + BODY401_NUT_PREC_DEC = ( -1.08 0. 0. 0. ) + BODY401_NUT_PREC_PM = ( -1.42 -0.78 0. 0. ) + + + \begintext + + + Deimos + + Old values: + + Values are unchanged in the 2009 IAU report. + + New values: + + The Deimos prime meridian expression is: + + + 2 + W = 79.41 + 285.1618970 d - 0.520 T - 2.58 sin M + 3 + + + 0.19 cos M . + 3 + + + At the present time, the PCK kernel software (the routine + BODEUL in particular) cannot handle the cosine term directly, + but we can represent it as + + 0.19 sin M + 4 + + where + + M = 90.D0 - M + 4 3 + + Therefore, the nutation precession angle assignments for Phobos + and Deimos contain four coefficients rather than three. + + The quadratic prime meridian term is scaled by 1/36525**2: + + -0.5200000000000000 ---> -3.8978300049519307E-10 + + \begindata + + BODY402_POLE_RA = ( 316.65 -0.108 0. ) + BODY402_POLE_DEC = ( 53.52 -0.061 0. ) + BODY402_PM = ( 79.41 285.1618970 -3.897830D-10 ) + BODY402_LONG_AXIS = ( 0. ) + + BODY402_NUT_PREC_RA = ( 0. 0. 2.98 0. ) + BODY402_NUT_PREC_DEC = ( 0. 0. -1.78 0. ) + BODY402_NUT_PREC_PM = ( 0. 0. -2.58 0.19 ) + + \begintext + + + + +Satellites of Jupiter + + + Io + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY501_POLE_RA = ( 268.05 -0.009 0. ) + BODY501_POLE_DEC = ( 64.50 0.003 0. ) + BODY501_PM = ( 200.39 203.4889538 0. ) + BODY501_LONG_AXIS = ( 0. ) + + BODY501_NUT_PREC_RA = ( 0. 0. 0.094 0.024 ) + BODY501_NUT_PREC_DEC = ( 0. 0. 0.040 0.011 ) + BODY501_NUT_PREC_PM = ( 0. 0. -0.085 -0.022 ) + + \begintext + + + + Europa + + + Old values: + + Values are unchanged in the 2009 IAU report. + + + Current values: + + \begindata + + BODY502_POLE_RA = ( 268.08 -0.009 0. ) + BODY502_POLE_DEC = ( 64.51 0.003 0. ) + BODY502_PM = ( 36.022 101.3747235 0. ) + BODY502_LONG_AXIS = ( 0. ) + + BODY502_NUT_PREC_RA = ( 0. 0. 0. 1.086 0.060 0.015 0.009 ) + BODY502_NUT_PREC_DEC = ( 0. 0. 0. 0.468 0.026 0.007 0.002 ) + BODY502_NUT_PREC_PM = ( 0. 0. 0. -0.980 -0.054 -0.014 -0.008 ) + + \begintext + + + Ganymede + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY503_POLE_RA = ( 268.20 -0.009 0. ) + BODY503_POLE_DEC = ( 64.57 0.003 0. ) + BODY503_PM = ( 44.064 50.3176081 0. ) + BODY503_LONG_AXIS = ( 0. ) + + BODY503_NUT_PREC_RA = ( 0. 0. 0. -0.037 0.431 0.091 ) + BODY503_NUT_PREC_DEC = ( 0. 0. 0. -0.016 0.186 0.039 ) + BODY503_NUT_PREC_PM = ( 0. 0. 0. 0.033 -0.389 -0.082 ) + + \begintext + + + Callisto + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + + \begindata + + BODY504_POLE_RA = ( 268.72 -0.009 0. ) + BODY504_POLE_DEC = ( 64.83 0.003 0. ) + BODY504_PM = ( 259.51 21.5710715 0. ) + BODY504_LONG_AXIS = ( 0. ) + + BODY504_NUT_PREC_RA = ( 0. 0. 0. 0. -0.068 0.590 0. 0.010 ) + BODY504_NUT_PREC_DEC = ( 0. 0. 0. 0. -0.029 0.254 0. -0.004 ) + BODY504_NUT_PREC_PM = ( 0. 0. 0. 0. 0.061 -0.533 0. -0.009 ) + + \begintext + + + Amalthea + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY505_POLE_RA = ( 268.05 -0.009 0. ) + BODY505_POLE_DEC = ( 64.49 0.003 0. ) + BODY505_PM = ( 231.67 722.6314560 0. ) + BODY505_LONG_AXIS = ( 0. ) + + BODY505_NUT_PREC_RA = ( -0.84 0. 0. 0. 0. 0. 0. 0. 0.01 0. ) + BODY505_NUT_PREC_DEC = ( -0.36 0. 0. 0. 0. 0. 0. 0. 0. 0. ) + BODY505_NUT_PREC_PM = ( 0.76 0. 0. 0. 0. 0. 0. 0. -0.01 0. ) + + \begintext + + + Thebe + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY514_POLE_RA = ( 268.05 -0.009 0. ) + BODY514_POLE_DEC = ( 64.49 0.003 0. ) + BODY514_PM = ( 8.56 533.7004100 0. ) + BODY514_LONG_AXIS = ( 0. ) + + BODY514_NUT_PREC_RA = ( 0. -2.11 0. 0. 0. 0. 0. 0. 0. 0.04 ) + BODY514_NUT_PREC_DEC = ( 0. -0.91 0. 0. 0. 0. 0. 0. 0. 0.01 ) + BODY514_NUT_PREC_PM = ( 0. 1.91 0. 0. 0. 0. 0. 0. 0. -0.04 ) + + \begintext + + + Adrastea + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY515_POLE_RA = ( 268.05 -0.009 0. ) + BODY515_POLE_DEC = ( 64.49 0.003 0. ) + BODY515_PM = ( 33.29 1206.9986602 0. ) + BODY515_LONG_AXIS = ( 0. ) + + \begintext + + + Metis + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY516_POLE_RA = ( 268.05 -0.009 0. ) + BODY516_POLE_DEC = ( 64.49 0.003 0. ) + BODY516_PM = ( 346.09 1221.2547301 0. ) + BODY516_LONG_AXIS = ( 0. ) + + \begintext + + + +Satellites of Saturn + + + Mimas + + Old values: + + Values are from the 2006 IAU report. + + body601_pole_ra = ( 40.66 -0.036 0. ) + body601_pole_dec = ( 83.52 -0.004 0. ) + body601_pm = ( 337.46 381.9945550 0. ) + body601_long_axis = ( 0. ) + + body601_nut_prec_ra = ( 0. 0. 13.56 0. 0. 0. 0. 0. 0. ) + body601_nut_prec_dec = ( 0. 0. -1.53 0. 0. 0. 0. 0. 0. ) + body601_nut_prec_pm = ( 0. 0. -13.48 0. -44.85 0. 0. 0. 0. ) + + + Current values: + + \begindata + + BODY601_POLE_RA = ( 40.66 -0.036 0. ) + BODY601_POLE_DEC = ( 83.52 -0.004 0. ) + BODY601_PM = ( 333.46 381.9945550 0. ) + BODY601_LONG_AXIS = ( 0. ) + + BODY601_NUT_PREC_RA = ( 0. 0. 13.56 0. 0. 0. 0. 0. ) + BODY601_NUT_PREC_DEC = ( 0. 0. -1.53 0. 0. 0. 0. 0. ) + BODY601_NUT_PREC_PM = ( 0. 0. -13.48 0. -44.85 0. 0. 0. ) + + \begintext + + + Enceladus + + + Old values: + + Values are from the 2006 IAU report. + + body602_pole_ra = ( 40.66 -0.036 0. ) + body602_pole_dec = ( 83.52 -0.004 0. ) + body602_pm = ( 2.82 262.7318996 0. ) + body602_long_axis = ( 0. ) + + + Current values: + + \begindata + + BODY602_POLE_RA = ( 40.66 -0.036 0. ) + BODY602_POLE_DEC = ( 83.52 -0.004 0. ) + BODY602_PM = ( 6.32 262.7318996 0. ) + BODY602_LONG_AXIS = ( 0. ) + + \begintext + + + + Tethys + + + Old values: + + Values are from the 2006 IAU report. + + body603_pole_ra = ( 40.66 -0.036 0. ) + body603_pole_dec = ( 83.52 -0.004 0. ) + body603_pm = ( 10.45 190.6979085 0. ) + body603_long_axis = ( 0. ) + + body603_nut_prec_ra = ( 0. 0. 0. 9.66 0. 0. 0. 0. 0. ) + body603_nut_prec_dec = ( 0. 0. 0. -1.09 0. 0. 0. 0. 0. ) + body603_nut_prec_pm = ( 0. 0. 0. -9.60 2.23 0. 0. 0. 0. ) + + + Current values: + + \begindata + + BODY603_POLE_RA = ( 40.66 -0.036 0. ) + BODY603_POLE_DEC = ( 83.52 -0.004 0. ) + BODY603_PM = ( 8.95 190.6979085 0. ) + BODY603_LONG_AXIS = ( 0. ) + + BODY603_NUT_PREC_RA = ( 0. 0. 0. 9.66 0. 0. 0. 0. ) + BODY603_NUT_PREC_DEC = ( 0. 0. 0. -1.09 0. 0. 0. 0. ) + BODY603_NUT_PREC_PM = ( 0. 0. 0. -9.60 2.23 0. 0. 0. ) + + \begintext + + + Dione + + + Old values: + + Values are from the 2006 IAU report. + + body604_pole_ra = ( 40.66 -0.036 0. ) + body604_pole_dec = ( 83.52 -0.004 0. ) + body604_pm = ( 357.00 131.5349316 0. ) + body604_long_axis = ( 0. ) + + + Current values: + + \begindata + + BODY604_POLE_RA = ( 40.66 -0.036 0. ) + BODY604_POLE_DEC = ( 83.52 -0.004 0. ) + BODY604_PM = ( 357.6 131.5349316 0. ) + BODY604_LONG_AXIS = ( 0. ) + + \begintext + + + + Rhea + + + Old values: + + Values are from the 2009 IAU report. + + body605_pole_ra = ( 40.38 -0.036 0. ) + body605_pole_dec = ( 83.55 -0.004 0. ) + body605_pm = ( 235.16 79.6900478 0. ) + body605_long_axis = ( 0. ) + + body605_nut_prec_ra = ( 0. 0. 0. 0. 0. 3.10 0. 0. 0. ) + body605_nut_prec_dec = ( 0. 0. 0. 0. 0. -0.35 0. 0. 0. ) + body605_nut_prec_pm = ( 0. 0. 0. 0. 0. -3.08 0. 0. 0. ) + + + Current values: + + Data values are unchanged in the 2009 IAU report. However + the kernel variable contents have changed due to removal of + the angle S7. + + \begindata + + BODY605_POLE_RA = ( 40.38 -0.036 0. ) + BODY605_POLE_DEC = ( 83.55 -0.004 0. ) + BODY605_PM = ( 235.16 79.6900478 0. ) + BODY605_LONG_AXIS = ( 0. ) + + BODY605_NUT_PREC_RA = ( 0. 0. 0. 0. 0. 3.10 0. 0. ) + BODY605_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. -0.35 0. 0. ) + BODY605_NUT_PREC_PM = ( 0. 0. 0. 0. 0. -3.08 0. 0. ) + + \begintext + + + + Titan + + + Old values: + + Values are from the 2006 IAU report. + + BODY606_POLE_RA = ( 36.41 -0.036 0. ) + BODY606_POLE_DEC = ( 83.94 -0.004 0. ) + BODY606_PM = ( 189.64 22.5769768 0. ) + BODY606_LONG_AXIS = ( 0. ) + + BODY606_NUT_PREC_RA = ( 0. 0. 0. 0. 0. 0. 2.66 0. 0 ) + BODY606_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. 0. -0.30 0. 0 ) + BODY606_NUT_PREC_PM = ( 0. 0. 0. 0. 0. 0. -2.64 0. 0 ) + + + Current values: + + Note removal of dependence on the nutation precession + angles. + + \begindata + + BODY606_POLE_RA = ( 39.4827 0. 0. ) + BODY606_POLE_DEC = ( 83.4279 0. 0. ) + BODY606_PM = ( 186.5855 22.5769768 0. ) + BODY606_LONG_AXIS = ( 0. ) + + BODY606_NUT_PREC_RA = ( 0. 0. 0. 0. 0. 0. 0. 0 ) + BODY606_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. 0. 0. 0 ) + BODY606_NUT_PREC_PM = ( 0. 0. 0. 0. 0. 0. 0. 0 ) + + \begintext + + + + Hyperion + + The IAU report does not give an orientation model for Hyperion. + Hyperion's rotation is in chaotic and is not predictable for + long periods. + + + Iapetus + + + Old values: + + Values are from the 2006 IAU report. + + body608_pole_ra = ( 318.16 -3.949 0. ) + body608_pole_dec = ( 75.03 -1.143 0. ) + body608_pm = ( 350.20 4.5379572 0. ) + body608_long_axis = ( 0. ) + + + Current values: + + \begindata + + BODY608_POLE_RA = ( 318.16 -3.949 0. ) + BODY608_POLE_DEC = ( 75.03 -1.143 0. ) + BODY608_PM = ( 355.2 4.5379572 0. ) + BODY608_LONG_AXIS = ( 0. ) + + \begintext + + + + Phoebe + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY609_POLE_RA = ( 356.90 0. 0. ) + BODY609_POLE_DEC = ( 77.80 0. 0. ) + BODY609_PM = ( 178.58 931.639 0. ) + BODY609_LONG_AXIS = ( 0. ) + + \begintext + + + Janus + + + Old values: + + Values are unchanged in the 2009 IAU report. + + + Current values: + + Data values are unchanged in the 2009 IAU report. However + the kernel variable contents have changed due to removal of + the angle S7. + + \begindata + + BODY610_POLE_RA = ( 40.58 -0.036 0. ) + BODY610_POLE_DEC = ( 83.52 -0.004 0. ) + BODY610_PM = ( 58.83 518.2359876 0. ) + BODY610_LONG_AXIS = ( 0. ) + + BODY610_NUT_PREC_RA = ( 0. -1.623 0. 0. 0. 0. 0. 0.023 ) + BODY610_NUT_PREC_DEC = ( 0. -0.183 0. 0. 0. 0. 0. 0.001 ) + BODY610_NUT_PREC_PM = ( 0. 1.613 0. 0. 0. 0. 0. -0.023 ) + + \begintext + + + + Epimetheus + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + Data values are unchanged in the 2009 IAU report. However + the kernel variable contents have changed due to removal of + the angle S7. + + \begindata + + BODY611_POLE_RA = ( 40.58 -0.036 0. ) + BODY611_POLE_DEC = ( 83.52 -0.004 0. ) + BODY611_PM = ( 293.87 518.4907239 0. ) + BODY611_LONG_AXIS = ( 0. ) + + BODY611_NUT_PREC_RA = ( -3.153 0. 0. 0. 0. 0. 0.086 0. ) + BODY611_NUT_PREC_DEC = ( -0.356 0. 0. 0. 0. 0. 0.005 0. ) + BODY611_NUT_PREC_PM = ( 3.133 0. 0. 0. 0. 0. -0.086 0. ) + + \begintext + + + + Helene + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY612_POLE_RA = ( 40.85 -0.036 0. ) + BODY612_POLE_DEC = ( 83.34 -0.004 0. ) + BODY612_PM = ( 245.12 131.6174056 0. ) + BODY612_LONG_AXIS = ( 0. ) + + \begintext + + + + Telesto + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY613_POLE_RA = ( 50.51 -0.036 0. ) + BODY613_POLE_DEC = ( 84.06 -0.004 0. ) + BODY613_PM = ( 56.88 190.6979332 0. ) + BODY613_LONG_AXIS = ( 0. ) + + \begintext + + + + Calypso + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY614_POLE_RA = ( 36.41 -0.036 0. ) + BODY614_POLE_DEC = ( 85.04 -0.004 0. ) + BODY614_PM = ( 153.51 190.6742373 0. ) + BODY614_LONG_AXIS = ( 0. ) + + \begintext + + + + Atlas + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY615_POLE_RA = ( 40.58 -0.036 0. ) + BODY615_POLE_DEC = ( 83.53 -0.004 0. ) + BODY615_PM = ( 137.88 598.3060000 0. ) + BODY615_LONG_AXIS = ( 0. ) + + \begintext + + + + Prometheus + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY616_POLE_RA = ( 40.58 -0.036 ) + BODY616_POLE_DEC = ( 83.53 -0.004 ) + BODY616_PM = ( 296.14 587.289000 ) + BODY616_LONG_AXIS = ( 0. ) + + \begintext + + + + Pandora + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY617_POLE_RA = ( 40.58 -0.036 0. ) + BODY617_POLE_DEC = ( 83.53 -0.004 0. ) + BODY617_PM = ( 162.92 572.7891000 0. ) + BODY617_LONG_AXIS = ( 0. ) + + \begintext + + + + Pan + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY618_POLE_RA = ( 40.6 -0.036 0. ) + BODY618_POLE_DEC = ( 83.5 -0.004 0. ) + BODY618_PM = ( 48.8 626.0440000 0. ) + BODY618_LONG_AXIS = ( 0. ) + + \begintext + + + + + +Satellites of Uranus + + + + Ariel + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY701_POLE_RA = ( 257.43 0. 0. ) + BODY701_POLE_DEC = ( -15.10 0. 0. ) + BODY701_PM = ( 156.22 -142.8356681 0. ) + BODY701_LONG_AXIS = ( 0. ) + + BODY701_NUT_PREC_RA = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0. 0. 0.29 ) + + BODY701_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0. 0. 0.28 ) + + BODY701_NUT_PREC_PM = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0. 0.05 0.08 ) + \begintext + + + + Umbriel + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY702_POLE_RA = ( 257.43 0. 0. ) + BODY702_POLE_DEC = ( -15.10 0. 0. ) + BODY702_PM = ( 108.05 -86.8688923 0. ) + BODY702_LONG_AXIS = ( 0. ) + + BODY702_NUT_PREC_RA = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0. 0. 0. 0.21 ) + + BODY702_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0. 0. 0. 0.20 ) + + BODY702_NUT_PREC_PM = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0. -0.09 0. 0.06 ) + + \begintext + + + + Titania + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY703_POLE_RA = ( 257.43 0. 0. ) + BODY703_POLE_DEC = ( -15.10 0. 0. ) + BODY703_PM = ( 77.74 -41.3514316 0. ) + BODY703_LONG_AXIS = ( 0. ) + + BODY703_NUT_PREC_RA = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.29 ) + + BODY703_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.28 ) + + BODY703_NUT_PREC_PM = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.08 ) + \begintext + + + + Oberon + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY704_POLE_RA = ( 257.43 0. 0. ) + BODY704_POLE_DEC = ( -15.10 0. 0. ) + BODY704_PM = ( 6.77 -26.7394932 0. ) + BODY704_LONG_AXIS = ( 0. ) + + + BODY704_NUT_PREC_RA = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0.16 ) + + BODY704_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0.16 ) + + BODY704_NUT_PREC_PM = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0.04 ) + \begintext + + + + Miranda + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY705_POLE_RA = ( 257.43 0. 0. ) + BODY705_POLE_DEC = ( -15.08 0. 0. ) + BODY705_PM = ( 30.70 -254.6906892 0. ) + BODY705_LONG_AXIS = ( 0. ) + + BODY705_NUT_PREC_RA = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 4.41 0. 0. 0. 0. + 0. -0.04 0. ) + + BODY705_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 4.25 0. 0. 0. 0. + 0. -0.02 0. ) + + BODY705_NUT_PREC_PM = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 1.15 -1.27 0. 0. 0. + 0. -0.09 0.15 ) + \begintext + + + + Cordelia + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY706_POLE_RA = ( 257.31 0. 0. ) + BODY706_POLE_DEC = ( -15.18 0. 0. ) + BODY706_PM = ( 127.69 -1074.5205730 0. ) + BODY706_LONG_AXIS = ( 0. ) + + BODY706_NUT_PREC_RA = ( -0.15 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY706_NUT_PREC_DEC = ( 0.14 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY706_NUT_PREC_PM = ( -0.04 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + \begintext + + + + Ophelia + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY707_POLE_RA = ( 257.31 0. 0. ) + BODY707_POLE_DEC = ( -15.18 0. 0. ) + BODY707_PM = ( 130.35 -956.4068150 0. ) + BODY707_LONG_AXIS = ( 0. ) + + BODY707_NUT_PREC_RA = ( 0. -0.09 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY707_NUT_PREC_DEC = ( 0. 0.09 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY707_NUT_PREC_PM = ( 0. -0.03 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + \begintext + + + + Bianca + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY708_POLE_RA = ( 257.31 0. 0. ) + BODY708_POLE_DEC = ( -15.18 0. 0. ) + BODY708_PM = ( 105.46 -828.3914760 0. ) + BODY708_LONG_AXIS = ( 0. ) + + BODY708_NUT_PREC_RA = ( 0. 0. -0.16 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY708_NUT_PREC_DEC = ( 0. 0. 0.16 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY708_NUT_PREC_PM = ( 0. 0. -0.04 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + \begintext + + + + Cressida + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + + BODY709_POLE_RA = ( 257.31 0. 0. ) + BODY709_POLE_DEC = ( -15.18 0. 0. ) + BODY709_PM = ( 59.16 -776.5816320 0. ) + BODY709_LONG_AXIS = ( 0. ) + + + BODY709_NUT_PREC_RA = ( 0. 0. 0. -0.04 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + + BODY709_NUT_PREC_DEC = ( 0. 0. 0. 0.04 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + + BODY709_NUT_PREC_PM = ( 0. 0. 0. -0.01 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + + \begintext + + + + Desdemona + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY710_POLE_RA = ( 257.31 0. 0. ) + BODY710_POLE_DEC = ( -15.18 0. 0. ) + BODY710_PM = ( 95.08 -760.0531690 0. ) + BODY710_LONG_AXIS = ( 0. ) + + BODY710_NUT_PREC_RA = ( 0. 0. 0. 0. -0.17 + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY710_NUT_PREC_DEC = ( 0. 0. 0. 0. 0.16 + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY710_NUT_PREC_PM = ( 0. 0. 0. 0. -0.04 + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + \begintext + + + + Juliet + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY711_POLE_RA = ( 257.31 0. 0. ) + BODY711_POLE_DEC = ( -15.18 0. 0. ) + BODY711_PM = ( 302.56 -730.1253660 0. ) + BODY711_LONG_AXIS = ( 0. ) + + BODY711_NUT_PREC_RA = ( 0. 0. 0. 0. 0. + -0.06 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY711_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. + 0.06 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY711_NUT_PREC_PM = ( 0. 0. 0. 0. 0. + -0.02 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + \begintext + + + + Portia + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY712_POLE_RA = ( 257.31 0. 0. ) + BODY712_POLE_DEC = ( -15.18 0. 0. ) + BODY712_PM = ( 25.03 -701.4865870 0. ) + BODY712_LONG_AXIS = ( 0. ) + + BODY712_NUT_PREC_RA = ( 0. 0. 0. 0. 0. + 0. -0.09 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY712_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. + 0. 0.09 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY712_NUT_PREC_PM = ( 0. 0. 0. 0. 0. + 0. -0.02 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + \begintext + + + + Rosalind + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY713_POLE_RA = ( 257.31 0. 0. ) + BODY713_POLE_DEC = ( -15.18 0. 0. ) + BODY713_PM = ( 314.90 -644.6311260 0. ) + BODY713_LONG_AXIS = ( 0. ) + + BODY713_NUT_PREC_RA = ( 0. 0. 0. 0. 0. + 0. 0. -0.29 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY713_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. + 0. 0. 0.28 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY713_NUT_PREC_PM = ( 0. 0. 0. 0. 0. + 0. 0. -0.08 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + \begintext + + + + Belinda + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY714_POLE_RA = ( 257.31 0. 0. ) + BODY714_POLE_DEC = ( -15.18 0. 0. ) + BODY714_PM = ( 297.46 -577.3628170 0. ) + BODY714_LONG_AXIS = ( 0. ) + + BODY714_NUT_PREC_RA = ( 0. 0. 0. 0. 0. + 0. 0. 0. -0.03 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY714_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0.03 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY714_NUT_PREC_PM = ( 0. 0. 0. 0. 0. + 0. 0. 0. -0.01 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + \begintext + + + + Puck + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY715_POLE_RA = ( 257.31 0. 0. ) + BODY715_POLE_DEC = ( -15.18 0. 0. ) + BODY715_PM = ( 91.24 -472.5450690 0. ) + BODY715_LONG_AXIS = ( 0. ) + + BODY715_NUT_PREC_RA = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. -0.33 + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY715_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0.31 + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY715_NUT_PREC_PM = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. -0.09 + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + \begintext + + + + +Satellites of Neptune + + + Triton + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY801_POLE_RA = ( 299.36 0. 0. ) + BODY801_POLE_DEC = ( 41.17 0. 0. ) + BODY801_PM = ( 296.53 -61.2572637 0. ) + BODY801_LONG_AXIS = ( 0. ) + + + BODY801_NUT_PREC_RA = ( 0. 0. 0. 0. + 0. 0. 0. -32.35 + 0. -6.28 -2.08 -0.74 + -0.28 -0.11 -0.07 -0.02 + -0.01 ) + + + BODY801_NUT_PREC_DEC = ( 0. 0. 0. 0. + 0. 0. 0. 22.55 + 0. 2.10 0.55 0.16 + 0.05 0.02 0.01 0. + 0. ) + + + BODY801_NUT_PREC_PM = ( 0. 0. 0. 0. + 0. 0. 0. 22.25 + 0. 6.73 2.05 0.74 + 0.28 0.11 0.05 0.02 + 0.01 ) + + \begintext + + + + + Nereid + + Old values: + + Values are from the 1988 IAU report [10]. Note that this + rotation model pre-dated the 1989 Voyager 2 Neptune + encounter. + + + body802_pole_ra = ( 273.48 0. 0. ) + body802_pole_dec = ( 67.22 0. 0. ) + body802_pm = ( 237.22 0.9996465 0. ) + body802_long_axis = ( 0. ) + + + The report seems to have a typo: in the nut_prec_ra expression, + where the report gives -0.51 sin 3N3, we use -0.51 3N2. + + body802_nut_prec_ra = ( 0. -17.81 + 0. 0. 0. 0. + 0. 0. 0. + 2.56 -0.51 0.11 -0.03 ) + + body802_nut_prec_dec = ( 0. -6.67 + 0. 0. 0. 0. + 0. 0. 0. + 0.47 -0.07 0.01 ) + + body802_nut_prec_pm = ( 0. 16.48 + 0. 0. 0. 0. + 0. 0. 0. + -2.57 0.51 -0.11 0.02 ) + + + + Current values: + + The 2009 report [1] states that values for Nereid are not + given because Nereid is not in synchronous rotation with Neptune + (notes following table 2). + + + + Naiad + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + + \begindata + + BODY803_POLE_RA = ( 299.36 0. 0. ) + BODY803_POLE_DEC = ( 43.36 0. 0. ) + BODY803_PM = ( 254.06 +1222.8441209 0. ) + BODY803_LONG_AXIS = ( 0. ) + + + BODY803_NUT_PREC_RA = ( 0.70 -6.49 0. 0. + 0. 0. 0. 0. + 0.25 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY803_NUT_PREC_DEC = ( -0.51 -4.75 0. 0. + 0. 0. 0. 0. + 0.09 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY803_NUT_PREC_PM = ( -0.48 4.40 0. 0. + 0. 0. 0. 0. + -0.27 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + \begintext + + + + + Thalassa + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY804_POLE_RA = ( 299.36 0. 0. ) + BODY804_POLE_DEC = ( 43.45 0. 0. ) + BODY804_PM = ( 102.06 1155.7555612 0. ) + BODY804_LONG_AXIS = ( 0. ) + + + BODY804_NUT_PREC_RA = ( 0.70 0. -0.28 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + + BODY804_NUT_PREC_DEC = ( -0.51 0. -0.21 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY804_NUT_PREC_PM = ( -0.48 0. 0.19 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + \begintext + + + + Despina + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + + \begindata + + BODY805_POLE_RA = ( 299.36 0. 0. ) + BODY805_POLE_DEC = ( 43.45 0. 0. ) + BODY805_PM = ( 306.51 +1075.7341562 0. ) + BODY805_LONG_AXIS = ( 0. ) + + + BODY805_NUT_PREC_RA = ( 0.70 0. 0. -0.09 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY805_NUT_PREC_DEC = ( -0.51 0. 0. -0.07 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY805_NUT_PREC_PM = ( -0.49 0. 0. 0.06 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + \begintext + + + + Galatea + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + + \begindata + + BODY806_POLE_RA = ( 299.36 0. 0. ) + BODY806_POLE_DEC = ( 43.43 0. 0. ) + BODY806_PM = ( 258.09 839.6597686 0. ) + BODY806_LONG_AXIS = ( 0. ) + + + BODY806_NUT_PREC_RA = ( 0.70 0. 0. 0. + -0.07 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY806_NUT_PREC_DEC = ( -0.51 0. 0. 0. + -0.05 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY806_NUT_PREC_PM = ( -0.48 0. 0. 0. + 0.05 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + \begintext + + + Larissa + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY807_POLE_RA = ( 299.36 0. 0. ) + BODY807_POLE_DEC = ( 43.41 0. 0. ) + BODY807_PM = ( 179.41 +649.0534470 0. ) + BODY807_LONG_AXIS = ( 0. ) + + + BODY807_NUT_PREC_RA = ( 0.70 0. 0. 0. + 0. -0.27 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY807_NUT_PREC_DEC = ( -0.51 0. 0. 0. + 0. -0.20 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY807_NUT_PREC_PM = ( -0.48 0. 0. 0. + 0. 0.19 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + \begintext + + + + Proteus + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY808_POLE_RA = ( 299.27 0. 0. ) + BODY808_POLE_DEC = ( 42.91 0. 0. ) + BODY808_PM = ( 93.38 +320.7654228 0. ) + BODY808_LONG_AXIS = ( 0. ) + + + BODY808_NUT_PREC_RA = ( 0.70 0. 0. 0. + 0. 0. -0.05 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY808_NUT_PREC_DEC = ( -0.51 0. 0. 0. + 0. 0. -0.04 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY808_NUT_PREC_PM = ( -0.48 0. 0. 0. + 0. 0. 0.04 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + \begintext + + + + + +Satellites of Pluto + + Charon + + Old values: + + Values are from the 2006 IAU report. + + body901_pole_ra = ( 312.993 0. 0. ) + body901_pole_dec = ( 6.163 0. 0. ) + body901_pm = ( 57.305 -56.3625225 0. ) + body901_long_axis = ( 0. ) + + + Current values: + + Due to the new definition of planetocentric coordinates + for small bodies, and to the reclassification of Pluto + as a dwarf planet, Charon's north pole direction has been + inverted. + + The PM constant W0 is from [2]. + + \begindata + + BODY901_POLE_RA = ( 132.993 0. 0. ) + BODY901_POLE_DEC = ( -6.163 0. 0. ) + BODY901_PM = ( 122.695 56.3625225 0. ) + BODY901_LONG_AXIS = ( 0. ) + + \begintext + + + +Orientation constants for Selected Comets and Asteroids +-------------------------------------------------------- + + + +Ceres + + Current values: + + \begindata + + BODY2000001_POLE_RA = ( 291. 0. 0. ) + BODY2000001_POLE_DEC = ( 59. 0. 0. ) + BODY2000001_PM = ( 170.90 952.1532 0. ) + BODY2000001_LONG_AXIS = ( 0. ) + + \begintext + + + +Pallas + + Current values: + + \begindata + + BODY2000002_POLE_RA = ( 33. 0. 0. ) + BODY2000002_POLE_DEC = ( -3. 0. 0. ) + BODY2000002_PM = ( 38. 1105.8036 0. ) + BODY2000002_LONG_AXIS = ( 0. ) + + \begintext + + + +Vesta + + Old values: + + Values are from the 2009 IAU report. + + body2000004_pole_ra = ( 301. 0. 0. ) + body2000004_pole_dec = ( 41. 0. 0. ) + body2000004_pm = ( 292. 1617.332776 0. ) + body2000004_long_axis = ( 0. ) + + Current values: + + \begindata + + BODY2000004_POLE_RA = ( 305.8 0. 0. ) + BODY2000004_POLE_DEC = ( 41.4 0. 0. ) + BODY2000004_PM = ( 292. 1617.332776 0. ) + BODY2000004_LONG_AXIS = ( 0. ) + + \begintext + + + +Lutetia + + Current values: + + \begindata + + BODY2000021_POLE_RA = ( 52. 0. 0. ) + BODY2000021_POLE_DEC = ( 12. 0. 0. ) + BODY2000021_PM = ( 94. 1057.7515 0. ) + BODY2000021_LONG_AXIS = ( 0. ) + + \begintext + + + +Ida + + Old values: + + BODY2431010_POLE_RA = ( 168.76 0. 0. ) + BODY2431010_POLE_DEC = ( -2.88 0. 0. ) + BODY2431010_PM = ( 265.95 +1864.6280070 0. ) + BODY2431010_LONG_AXIS = ( 0. ) + + Current values: + + The PM constant W0 is from [2]. + + \begindata + + BODY2431010_POLE_RA = ( 168.76 0. 0. ) + BODY2431010_POLE_DEC = ( -2.88 0. 0. ) + BODY2431010_PM = ( 274.05 +1864.6280070 0. ) + BODY2431010_LONG_AXIS = ( 0. ) + + \begintext + + + +Eros + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY2000433_POLE_RA = ( 11.35 0. 0. ) + BODY2000433_POLE_DEC = ( 17.22 0. 0. ) + BODY2000433_PM = ( 326.07 1639.38864745 0. ) + BODY2000433_LONG_AXIS = ( 0. ) + + \begintext + + + +Davida + + Current values: + + \begindata + + BODY2000511_POLE_RA = ( 297. 0. 0. ) + BODY2000511_POLE_DEC = ( 5. 0. 0. ) + BODY2000511_PM = ( 268.1 1684.4193549 0. ) + BODY2000511_LONG_AXIS = ( 0. ) + + \begintext + + + +Gaspra + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY9511010_POLE_RA = ( 9.47 0. 0. ) + BODY9511010_POLE_DEC = ( 26.70 0. 0. ) + BODY9511010_PM = ( 83.67 1226.9114850 0. ) + BODY9511010_LONG_AXIS = ( 0. ) + + \begintext + + + +Steins + + Current values: + + \begindata + + BODY2002867_POLE_RA = ( 90. 0. 0. ) + BODY2002867_POLE_DEC = ( -62. 0. 0. ) + BODY2002867_PM = ( 93.94 1428.852332 0. ) + BODY2002867_LONG_AXIS = ( 0. ) + + \begintext + + + +Itokawa + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY2025143_POLE_RA = ( 90.53 0. 0. ) + BODY2025143_POLE_DEC = ( -66.30 0. 0. ) + BODY2025143_PM = ( 000.0 712.143 0. ) + BODY2025143_LONG_AXIS = ( 0. ) + + \begintext + + + +9P/Tempel 1 + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY1000093_POLE_RA = ( 294. 0. 0. ) + BODY1000093_POLE_DEC = ( 73. 0. 0. ) + BODY1000093_PM = ( 252.63 212.064 0. ) + BODY1000093_LONG_AXIS = ( 0. ) + + \begintext + + + +19P/Borrelly + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY1000005_POLE_RA = ( 218.5 0. 0. ) + BODY1000005_POLE_DEC = ( -12.5 0. 0. ) + BODY1000005_PM = ( 000. 390.0 0. ) + BODY1000005_LONG_AXIS = ( 0. ) + + \begintext + + + + + + + +Radii of Sun and Planets +-------------------------------------------------------- + + +Sun + + \begindata + + BODY10_RADII = ( 696000. 696000. 696000. ) + + \begintext + + +Mercury + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY199_RADII = ( 2439.7 2439.7 2439.7 ) + + \begintext + + +Venus + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY299_RADII = ( 6051.8 6051.8 6051.8 ) + + \begintext + + +Earth + + Old values: + + Values are from the 2006 IAU report. + + body399_radii = ( 6378.14 6378.14 6356.75 ) + + + Current values: + + + \begindata + + BODY399_RADII = ( 6378.1366 6378.1366 6356.7519 ) + + \begintext + + +Mars + + + Old values: + + Values are from the 2006 IAU report. + + body499_radii = ( 3397. 3397. 3375. ) + + + Current values: + + The 2009 IAU report gives separate values for the north and + south polar radii: + + north: 3373.19 + south: 3379.21 + + The report provides the average of these values as well, + which we use as the polar radius for the triaxial model. + + \begindata + + BODY499_RADII = ( 3396.19 3396.19 3376.20 ) + + \begintext + + + +Jupiter + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY599_RADII = ( 71492 71492 66854 ) + + \begintext + + + +Saturn + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY699_RADII = ( 60268 60268 54364 ) + + \begintext + + + +Uranus + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY799_RADII = ( 25559 25559 24973 ) + + \begintext + + + +Neptune + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + (Values are for the 1 bar pressure level.) + + \begindata + + BODY899_RADII = ( 24764 24764 24341 ) + + \begintext + + + +Radii of the Dwarf Planet Pluto +-------------------------------------------------------- + + +Pluto + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY999_RADII = ( 1195 1195 1195 ) + + \begintext + + + + +Radii of Satellites +-------------------------------------------------------- + + +Moon + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY301_RADII = ( 1737.4 1737.4 1737.4 ) + + \begintext + + + +Satellites of Mars + + Old values: + + Values are from the 2006 IAU report. + + body401_radii = ( 13.4 11.2 9.2 ) + body402_radii = ( 7.5 6.1 5.2 ) + + Current values: + + \begindata + + BODY401_RADII = ( 13.0 11.4 9.1 ) + BODY402_RADII = ( 7.8 6.0 5.1 ) + + \begintext + + + +Satellites of Jupiter + + Old values: + + Values are unchanged in the 2009 IAU report, + except for those of Europa, Ganymede, Callisto, + and Metis. For Metis, now all three radii are + provided. + + body502_radii = ( 1564.13 1561.23 1560.93 ) + body503_radii = ( 2632.4 2632.29 2632.35 ) + body504_radii = ( 2409.4 2409.2 2409.3 ) + + The value for the second radius for body 516 is not given in + 2003 IAU report. The values given are: + + body516_radii = ( 30 --- 20 ) + + For use within the SPICE system, we use only the mean radius. + + body516_radii = ( 21.5 21.5 21.5 ) + + + + + Current values: + + Note that for Ganymede and Callisto only mean radii + are provided. + + \begindata + + BODY501_RADII = ( 1829.4 1819.4 1815.7 ) + BODY502_RADII = ( 1562.6 1560.3 1559.5 ) + BODY503_RADII = ( 2631.2 2631.2 2631.2 ) + BODY504_RADII = ( 2410.3 2410.3 2410.3 ) + BODY505_RADII = ( 125 73 64 ) + + \begintext + + Only mean radii are available in the 2003 IAU report for bodies + 506-513. + + \begindata + + BODY506_RADII = ( 85 85 85 ) + BODY507_RADII = ( 40 40 40 ) + BODY508_RADII = ( 18 18 18 ) + BODY509_RADII = ( 14 14 14 ) + BODY510_RADII = ( 12 12 12 ) + BODY511_RADII = ( 15 15 15 ) + BODY512_RADII = ( 10 10 10 ) + BODY513_RADII = ( 5 5 5 ) + BODY514_RADII = ( 58 49 42 ) + BODY515_RADII = ( 10 8 7 ) + BODY516_RADII = ( 30 20 17 ) + + \begintext + + + +Satellites of Saturn + + + Old values: + + Values are from the 2006 IAU report. + + body601_radii = ( 207.4 196.8 190.6 ) + body602_radii = ( 256.6 251.4 248.3 ) + body603_radii = ( 540.4 531.1 527.5 ) + body604_radii = ( 563.8 561.0 560.3 ) + body605_radii = ( 767.2 762.5 763.1 ) + body606_radii = ( 2575 2575 2575 ) + body607_radii = ( 164 130 107 ) + body608_radii = ( 747.4 747.4 712.4 ) + body609_radii = ( 108.6 107.7 101.5 ) + body610_radii = ( 97.0 95.0 77.0 ) + body611_radii = ( 69.0 55.0 55.0 ) + + + Only the first equatorial radius for Helene (body 612) is given in the + 2006 IAU report: + + body612_radii = ( 17.5 --- --- ) + + The mean radius is 16km; we use this radius for all three axes, as + we do for the satellites for which only the mean radius is available. + + body612_radii = ( 17.5 17.5 17.5 ) + body613_radii = ( 15 12.5 7.5 ) + body614_radii = ( 15.0 8.0 8.0 ) + body615_radii = ( 18.5 17.2 13.5 ) + body616_radii = ( 74.0 50.0 34.0 ) + body617_radii = ( 55.0 44.0 31.0 ) + + For Pan, only a mean radius is given in the 2006 report. + + body618_radii = ( 10 10 10 ) + + + + Current values: + + \begindata + + BODY601_RADII = ( 207.8 196.7 190.6 ) + BODY602_RADII = ( 256.6 251.4 248.3 ) + BODY603_RADII = ( 538.4 528.3 526.3 ) + BODY604_RADII = ( 563.4 561.3 559.6 ) + BODY605_RADII = ( 765.0 763.1 762.4 ) + BODY606_RADII = ( 2575.15 2574.78 2574.47 ) + BODY607_RADII = ( 180.1 133.0 102.7 ) + BODY608_RADII = ( 745.7 745.7 712.1 ) + BODY609_RADII = ( 109.4 108.5 101.8 ) + BODY610_RADII = ( 101.5 92.5 76.3 ) + BODY611_RADII = ( 64.9 57.0 53.1 ) + BODY612_RADII = ( 21.7 19.1 13.0 ) + BODY613_RADII = ( 16.3 11.8 10.0 ) + BODY614_RADII = ( 15.1 11.5 7.0 ) + BODY615_RADII = ( 20.4 17.7 9.4 ) + BODY616_RADII = ( 67.8 39.7 29.7 ) + BODY617_RADII = ( 52.0 40.5 32.0 ) + BODY618_RADII = ( 17.2 15.7 10.4 ) + + BODY632_RADII = ( 1.6 1.6 1.6 ) + BODY633_RADII = ( 2.9 2.8 2.0 ) + BODY634_RADII = ( 1.5 1.2 1.0 ) + BODY635_RADII = ( 4.3 4.1 3.2 ) + BODY649_RADII = ( 1 1 1 ) + + \begintext + + + +Satellites of Uranus + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY701_RADII = ( 581.1 577.9 577.7 ) + BODY702_RADII = ( 584.7 584.7 584.7 ) + BODY703_RADII = ( 788.9 788.9 788.9 ) + BODY704_RADII = ( 761.4 761.4 761.4 ) + BODY705_RADII = ( 240.4 234.2 232.9 ) + + \begintext + + The 2000 report gives only mean radii for satellites 706--715. + + \begindata + + BODY706_RADII = ( 13 13 13 ) + BODY707_RADII = ( 15 15 15 ) + BODY708_RADII = ( 21 21 21 ) + BODY709_RADII = ( 31 31 31 ) + BODY710_RADII = ( 27 27 27 ) + BODY711_RADII = ( 42 42 42 ) + BODY712_RADII = ( 54 54 54 ) + BODY713_RADII = ( 27 27 27 ) + BODY714_RADII = ( 33 33 33 ) + BODY715_RADII = ( 77 77 77 ) + + \begintext + + + + +Satellites of Neptune + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + The 2009 report gives mean radii only for bodies 801-806. + + \begindata + + BODY801_RADII = ( 1352.6 1352.6 1352.6 ) + BODY802_RADII = ( 170 170 170 ) + BODY803_RADII = ( 29 29 29 ) + BODY804_RADII = ( 40 40 40 ) + BODY805_RADII = ( 74 74 74 ) + BODY806_RADII = ( 79 79 79 ) + + \begintext + + The second equatorial radius for Larissa is not given in the 2009 + report. The available values are: + + BODY807_RADII = ( 104 --- 89 ) + + For use within the SPICE system, we use only the mean radius. + + \begindata + + BODY807_RADII = ( 96 96 96 ) + BODY808_RADII = ( 218 208 201 ) + + \begintext + + + + +Satellites of Pluto + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY901_RADII = ( 605 605 605 ) + + \begintext + + + +Radii for Selected Comets and Asteroids +-------------------------------------------------------- + + + + + +Ceres + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + + \begindata + + BODY2000001_RADII = ( 487.3 487.3 454.7 ) + + \begintext + + + +Vesta + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + + \begindata + + BODY2000004_RADII = ( 289. 280. 229. ) + + \begintext + + + +Lutetia + + + Current values: + + + \begindata + + BODY2000021_RADII = ( 62.0 50.5 46.5 ) + + \begintext + + + +Ida + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + + \begindata + + BODY2431010_RADII = ( 26.8 12.0 7.6 ) + + \begintext + + + +Mathilde + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + + \begindata + + BODY2000253_RADII = ( 33. 24. 23. ) + + \begintext + + + +Eros + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + + \begindata + + BODY2000433_RADII = ( 17.0 5.5 5.5 ) + + \begintext + + + +Davida + + + Current values: + + + \begindata + + BODY2000511_RADII = ( 180. 147. 127. ) + + \begintext + + + +Gaspra + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + + \begindata + + BODY9511010_RADII = ( 9.1 5.2 4.4 ) + + \begintext + + + +Steins + + + Current values: + + + \begindata + + BODY2002867_RADII = ( 3.24 2.73 2.04 ) + + \begintext + + + +Toutatis + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + + \begindata + + BODY2004179_RADII = ( 2.13 1.015 0.85 ) + + \begintext + + + +Itokawa + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + + \begindata + + BODY2025143_RADII = ( 0.535 0.294 0.209 ) + + \begintext + + +Kleopatra + + + Old values: + + Values are from the 2003 report. + + + body2000216_radii = ( 108.5 47 40.5 ) + + + Current values: + + + No values are provided in the 2009 report. + + + + + +Halley + + + Old values: + + Values are unchanged in the 2009 IAU report. + + Current values: + + \begindata + + BODY1000036_RADII = ( 8.0 4.0 4.0 ) + + \begintext + + + +9P/Tempel 1 + + + Old values: + + The effective radius is unchanged in the 2009 IAU report. + + Current values: + + + The value in the data assignment below is the + "effective radius." + + According to [1]: + + The maximum and minimum radii are not properly + the values of the principal semi-axes, they + are half the maximum and minimum values of the + diameter. Due to the large deviations from a + simple ellipsoid, they may not correspond with + measurements along the principal axes, or be + orthogonal to each other. + + \begindata + + BODY1000093_RADII = ( 3.0 3.0 3.0 ) + + \begintext + + +19P/Borrelly + + + Old values: + + Values are unchanged in the 2009 report. + + Current values: + + + The value in the data assignment below is the + "effective radius." + + The first principal axis length is + + 3.5 km + + The lengths of the other semi-axes are not provided + by [1]. + + \begindata + + BODY1000005_RADII = ( 4.22 4.22 4.22 ) + + \begintext + + + +81P/Wild 2 + + + Old values: + + Values are unchanged in the 2009 report. + + Current values: + + + \begindata + + BODY1000107_RADII = ( 2.7 1.9 1.5 ) + + \begintext + + + +=========================================================================== +End of file pck00010.tpc +=========================================================================== + + + diff --git a/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/rssd0002.tf b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/rssd0002.tf new file mode 100644 index 0000000..e5e3026 --- /dev/null +++ b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/rssd0002.tf @@ -0,0 +1,1424 @@ +KPL/FK + +Generic Frame Definition Kernel File for ESA Planetary Missions +=========================================================================== + + This frame kernel defines a number of mission independent frames that + could be used by any of the users of any of the ESA planetary missions, + and that are not ``built'' in the SPICE toolkit. + + +Version and Date +======================================================================== + + Version 2.0 -- August 15, 2008 -- Jorge Diaz del Rio, MIG/ESA + + Corrected error in HCI frame definition and updated comments + for this frame. + + Version 1.0 -- May 03, 2006 -- Jorge Diaz del Rio, RSSD/ESA + + Complete new kernel. + + Version 0.0 -- July 19, 2005 -- Jorge Diaz del Rio, RSSD/ESA + + Initial version. + + +References +======================================================================== + + 1. ``Frames Required Reading'' + + 2. ``Kernel Pool Required Reading'' + + 3. Franz and Harper. (2002) ``Heliospheric Coordinate Systems'' + Space Science, 50, 217ff. + + 4. Hapgood,M. (1992). ``Space physics coordinate transformations: A user + guide'' Planetary and Space Science, 40, 711-717 + + 5. ``STK: Technical Notes - Coordinate System Computations'' + + 6. Seidelmann, P.K., Abalakin, V.K., Bursa, M., Davies, M.E., Bergh, C + de, Lieske, J.H., Oberst, J., Simon, J.L., Standish, E.M., Stooke, + and Thomas, P.C. (2002). ``Report of the IAU/IAG Working Group on + Cartographic Coordinates and Rotational Elements of the Planets and + Satellites: 2000'' Celestial Mechanics and Dynamical Astronomy, v.8 + Issue 1, pp. 83-111. + + 7. Russell, C.T. (1971). ``Geophysical Coordinate Transformations'' + Cosmic Electrodynamics, v.2, 184-196 + + +Contact Information +======================================================================== + + Jorge Diaz del Rio, RSSD/ESA, (31) 71-565-5175, jdiaz@rssd.esa.int + + +Implementation Notes +======================================================================== + + This file is used by the SPICE system as follows: programs that make + use of this frame kernel must 'load' the kernel, normally during + program initialization. The SPICELIB routine FURNSH, the CSPICE + function furnsh_c and the ICY function cspice_furnsh load a kernel + file into the kernel pool as shown below. + + CALL FURNSH ( 'frame_kernel_name' ) + furnsh_c ( "frame_kernel_name" ); + cspice_furnsh ( 'frame_kernel_name' ) + + This file was created and may be updated with a text editor or word + processor. + + +ESA/RSSD Generic Frame Names and NAIF ID Codes +======================================================================== + + The following names and NAIF ID codes are assigned to the generic + frames defined in this kernel file: + + Frame Name NAIF ID Center Description + ------------ ------- ------- ------------------------------- + + Generic Dynamic Frames names/IDs: + + HEE 1500010 SUN Heliocentric Earth Ecliptic + HEEQ 1501010 SUN Heliocentric Earth Equatorial + ------------------------------------------------------------------ + VSO 1500299 VENUS Venus-centric Solar Orbital + VME 1501299 VENUS Venus Mean Equator of date + ------------------------------------------------------------------ + LSE 1500301 MOON Moon-centric Solar Ecliptic + LME 1501301 MOON Moon Mean Equator of date + ------------------------------------------------------------------ + GSE 1500399 EARTH Geocentric Solar Ecliptic + EME 1501399 EARTH Earth Mean Equator and Equinox + GSEQ 1502399 EARTH Geocentric Solar Equatorial + ECLIPDATE 1503399 EARTH Earth Mean Ecliptic and Equinox + ------------------------------------------------------------------ + MME 1500499 MARS Mars Mean Equator of date + MME_IAU2000 1501499 MARS Mars Mean Equator of date + using IAU 2000 report constants. + MSO 1502499 MARS Mars-centric Solar Orbital + + Generic Inertial Frames names/IDs: + + HCI 1502010 SUN Heliocentric Inertial + ------------------------------------------------------------------ + VME2000 1503299 VENUS VME of date J2000 (1) + ------------------------------------------------------------------ + LME2000 1502301 MOON LME of date J2000 (1) + ------------------------------------------------------------------ + MME2000 1503499 MARS MME_IAU2000 of date J2000 (1) + + + (1) These frames are defined using the IAU 2000 Report Constants + described at [6]. + + +General Notes About This File +======================================================================== + + About Required Data: + -------------------- + + Most of the dynamic frames defined in this file require at least one + of the following kernels to be loaded prior to their evaluation, + normally during program initialization: + + - Planetary ephemeris data (SPK), i.e. DE403, DE405, etc. + - Planetary Constants data (PCK), i.e. PCK00007.TPC, PCK00008.TPC. + + Note that loading different kernels will lead to different + implementations of the same frame, providing different results from + each other, in terms of state vectors referred to these frames. + + About 'of Date' Frames: + ----------------------- + + This file contains two or more implementations for the 'of Date' + frame, i.e. Mars Mean Equator of date (MME). + + Usually, one of these implementations is a PCK-based frame, which + gives the user the ability of selecting the planetary constants + used in the evaluation of the frame by changing the PCK file. + + In addition to this PCK-based frame, and whenever feasible, one more + frame is implemented using the latest IAU report constants, included + directly into the frame definition. In this case, the frame name is + made up by adding the '_IAUxxxx' suffix to the PCK-based frame name, + where xxxx is the IAU report date, i.e. MME_IAU2000. It is + recommended to use this implementation of the frame instead of the + PCK-based whenever possible since these frames do not depend on the + loaded PCK data. + + In many cases, an instance of an 'of Date' frame frozen at J2000 + epoch is desired. For this reason, an to improve computing + efficiency, another implementation of this frame is provided. For + such frozen 'of Date' frame, its name is made up by appending the + character string '2000' to the PCK-based frame name, i.e. MME2000. + + +Generic Dynamic Frames +======================================================================== + + This section contains the definition of the Generic Dynamic Frames. + + +Heliocentric Earth Ecliptic frame (HEE) +--------------------------------------- + + Definition: + ----------- + The Heliocentric Earth Ecliptic frame is defined as follows (from [3]): + + - X-Y plane is defined by the Earth Mean Ecliptic plane of date, + therefore, the +Z axis is the primary vector,and it defined as + the normal vector to the Ecliptic plane that points toward the + north pole of date; + + - +X axis is the component of the Sun-Earth vector that is + orthogonal to the +Z axis; + + - +Y axis completes the right-handed system; + + - the origin of this frame is the Sun's center of mass. + + All vectors are geometric: no aberration corrections are used. + + + Required Data: + -------------- + This frame is defined as a two-vector frame using two different types + of specifications for the primary and secondary vectors. + + The primary vector is defined as a constant vector in the ECLIPDATE + frame and therefore no additional data is required to compute this + vector. + + The secondary vector is defined as an 'observer-target position' vector, + therefore, the ephemeris data required to compute the Sun-Earth vector + in J2000 frame have to be loaded prior to using this frame. + + + Remarks: + -------- + SPICE imposes a constraint in the definition of dynamic frames: + + When the definition of a parameterized dynamic frame F1 refers to a + second frame F2 the referenced frame F2 may be dynamic, but F2 must not + make reference to any dynamic frame. For further information on this + topic, please refer to [1]. + + Therefore, no other dynamic frame should make reference to this frame. + + Since the secondary vector of this frame is defined as an + 'observer-target position' vector, the usage of different planetary + ephemerides conduces to different implementations of this frame, + but only when these data lead to different projections of the + Sun-Earth vector on the Earth Ecliptic plane of date. + + As an example, note that the average difference in position of the +X + axis of this frame, when using DE405 vs. DE403 ephemerides, is about + 14.3 micro-radians, with a maximum of 15.0 micro-radians. + + + \begindata + + FRAME_HEE = 1500010 + FRAME_1500010_NAME = 'HEE' + FRAME_1500010_CLASS = 5 + FRAME_1500010_CLASS_ID = 1500010 + FRAME_1500010_CENTER = 10 + FRAME_1500010_RELATIVE = 'J2000' + FRAME_1500010_DEF_STYLE = 'PARAMETERIZED' + FRAME_1500010_FAMILY = 'TWO-VECTOR' + FRAME_1500010_PRI_AXIS = 'Z' + FRAME_1500010_PRI_VECTOR_DEF = 'CONSTANT' + FRAME_1500010_PRI_FRAME = 'ECLIPDATE' + FRAME_1500010_PRI_SPEC = 'RECTANGULAR' + FRAME_1500010_PRI_VECTOR = ( 0, 0, 1 ) + FRAME_1500010_SEC_AXIS = 'X' + FRAME_1500010_SEC_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' + FRAME_1500010_SEC_OBSERVER = 'SUN' + FRAME_1500010_SEC_TARGET = 'EARTH' + FRAME_1500010_SEC_ABCORR = 'NONE' + + \begintext + + + +Heliocentric Earth Equatorial frame (HEEQ) +------------------------------------------ + + Definition: + ----------- + The Heliocentric Earth Equatorial frame is defined as follows (from [3] + and [4]): + + - X-Y plane is the solar equator of date, therefore, the +Z axis + is the primary vector and it is aligned to the Sun's north pole + of date; + + - +X axis is defined by the intersection between the Sun equatorial + plane and the solar central meridian of date as seen from the Earth. + The solar central meridian of date is defined as the meridian of the + Sun that is turned toward the Earth. Therefore, +X axis is the + component of the Sun-Earth vector that is orthogonal to the +Z axis; + + - +Y axis completes the right-handed system; + + - the origin of this frame is the Sun's center of mass. + + All vectors are geometric: no aberration corrections are used. + + + Required Data: + -------------- + This frame is defined as a two-vector frame using two different types + of specifications for the primary and secondary vectors. + + The primary vector is defined as a constant vector in the IAU_SUN + frame, which is a PCK-based frame, therefore a PCK file containing + the orientation constants for the Sun has to be loaded before any + evaluation of this frame. + + The secondary vector is defined as an 'observer-target position' vector, + therefore, the ephemeris data required to compute the Sun-Earth vector + in J2000 frame have to be loaded before using this frame. + + + Remarks: + -------- + This frame is defined based on the IAU_SUN frame, whose evaluation is + based on the data included in the loaded PCK file: different + orientation constants for the Sun's spin axis will lead to different + frames. It is strongly recommended to indicate what data have been + used in the evaluation of this frame when referring to it, i.e. HEEQ + using IAU 2000 constants. + + Since the secondary vector of this frame is defined as an + 'observer-target position' vector, the usage of different planetary + ephemerides conduces to different implementations of this frame, + but only when these data lead to different solar central meridians, + i.e. the projection of the Sun-Earth vector on the Sun equatorial + plane obtained from the different ephemerides has a non-zero angular + separation. + + Note that the effect of using different SPK files is smaller, in general, + that using different Sun's spin axis constants. As an example, the + average difference in the position of the +X axis of the frame, when + using DE405 or DE403 ephemerides is about 14.3 micro-radians, with a + maximum of 15.3 micro-radians. + + + \begindata + + FRAME_HEEQ = 1501010 + FRAME_1501010_NAME = 'HEEQ' + FRAME_1501010_CLASS = 5 + FRAME_1501010_CLASS_ID = 1501010 + FRAME_1501010_CENTER = 10 + FRAME_1501010_RELATIVE = 'J2000' + FRAME_1501010_DEF_STYLE = 'PARAMETERIZED' + FRAME_1501010_FAMILY = 'TWO-VECTOR' + FRAME_1501010_PRI_AXIS = 'Z' + FRAME_1501010_PRI_VECTOR_DEF = 'CONSTANT' + FRAME_1501010_PRI_FRAME = 'IAU_SUN' + FRAME_1501010_PRI_SPEC = 'RECTANGULAR' + FRAME_1501010_PRI_VECTOR = ( 0, 0, 1 ) + FRAME_1501010_SEC_AXIS = 'X' + FRAME_1501010_SEC_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' + FRAME_1501010_SEC_OBSERVER = 'SUN' + FRAME_1501010_SEC_TARGET = 'EARTH' + FRAME_1501010_SEC_ABCORR = 'NONE' + + \begintext + + +Venus-centric Solar Orbital frame (VSO) +---------------------------------------- + + Definition: + ----------- + The Venus-centric Solar Orbital frame is defined as follows: + + - The position of the Sun relative to Venus is the primary vector: + +X axis points from Venus to the Sun; + + - The inertially referenced velocity of the Sun relative to Venus + is the secondary vector: +Y axis is the component of this + velocity vector orthogonal to the +X axis; + + - +Z axis completes the right-handed system; + + - the origin of this frame is Venus' center of mass. + + All vectors are geometric: no corrections are used. + + + Required Data: + -------------- + This frame is defined as a two-vector frame using two different types + of specifications for the primary and secondary vectors. + + The primary vector is defined as an 'observer-target position' vector, + therefore, the ephemeris data required to compute the Venus-Sun vector + in J2000 frame have to be loaded before using this frame. + + The secondary vector is defined as an 'observer-target velocity' vector, + therefore, the ephemeris data required to compute the Venus-Sun velocity + vector in the J2000 frame have to be loaded before using this frame. + + + Remarks: + -------- + This frame is defined based on SPK data: different planetary + ephemerides (DE families) for Venus, the Sun and the Solar System + Barycenter will lead to different frames. + + + \begindata + + FRAME_VSO = 1500299 + FRAME_1500299_NAME = 'VSO' + FRAME_1500299_CLASS = 5 + FRAME_1500299_CLASS_ID = 1500299 + FRAME_1500299_CENTER = 299 + FRAME_1500299_RELATIVE = 'J2000' + FRAME_1500299_DEF_STYLE = 'PARAMETERIZED' + FRAME_1500299_FAMILY = 'TWO-VECTOR' + FRAME_1500299_PRI_AXIS = 'X' + FRAME_1500299_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' + FRAME_1500299_PRI_OBSERVER = 'VENUS' + FRAME_1500299_PRI_TARGET = 'SUN' + FRAME_1500299_PRI_ABCORR = 'NONE' + FRAME_1500299_SEC_AXIS = 'Y' + FRAME_1500299_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY' + FRAME_1500299_SEC_OBSERVER = 'VENUS' + FRAME_1500299_SEC_TARGET = 'SUN' + FRAME_1500299_SEC_ABCORR = 'NONE' + FRAME_1500299_SEC_FRAME = 'J2000' + + \begintext + + +Venus Mean Equator of Date frame (VME) +-------------------------------------- + + Definition: + ----------- + The Venus Mean Equatorial of Date frame (also known as Venus Mean + Equator and IAU vector of Date frame) is defined as follows (from [5]): + + - X-Y plane is defined by the Venus equator of date, and + the +Z axis is parallel to the Venus' rotation axis of date, + pointing toward the North side of the invariant plane; + + - +X axis is defined by the intersection of the Venus' equator + of date with the Earth Mean Equator of J2000; + + - +Y axis completes the right-handed system; + + - the origin of this frame is Venus' center of mass. + + All vectors are geometric: no corrections are used. + + + Required Data: + -------------- + This frame is defined as a two-vector frame using constant vectors as + the specification method. The secondary vector is defined in the J2000 + frame and therefore it does not require to load any additional data. + + The primary vector is defined as a constant vector in the IAU_VENUS + frame, which is a PCK-based frame, therefore a PCK file containing + the orientation constants for Venus has to be loaded before using this + frame. + + + Remarks: + -------- + This frame is defined based on the IAU_VENUS frame, whose evaluation is + based on the data included in the loaded PCK file: different orientation + constants for Venus' spin axis will lead to different frames. It is + strongly recommended to indicate what data have been used in the + evaluation of this frame when referring to it, i.e. VME using IAU 2000 + constants. + + This frame is provided as the ``most generic'' Venus Mean Equator of + date frame since the user has the possibility of loading different Venus + orientation constants that would help him/her to define different + implementations of this frame. + + + \begindata + + FRAME_VME = 1501299 + FRAME_1501299_NAME = 'VME' + FRAME_1501299_CLASS = 5 + FRAME_1501299_CLASS_ID = 1501299 + FRAME_1501299_CENTER = 299 + FRAME_1501299_RELATIVE = 'J2000' + FRAME_1501299_DEF_STYLE = 'PARAMETERIZED' + FRAME_1501299_FAMILY = 'TWO-VECTOR' + FRAME_1501299_PRI_AXIS = 'Z' + FRAME_1501299_PRI_VECTOR_DEF = 'CONSTANT' + FRAME_1501299_PRI_FRAME = 'IAU_VENUS' + FRAME_1501299_PRI_SPEC = 'RECTANGULAR' + FRAME_1501299_PRI_VECTOR = ( 0, 0, 1 ) + FRAME_1501299_SEC_AXIS = 'Y' + FRAME_1501299_SEC_VECTOR_DEF = 'CONSTANT' + FRAME_1501299_SEC_FRAME = 'J2000' + FRAME_1501299_SEC_SPEC = 'RECTANGULAR' + FRAME_1501299_SEC_VECTOR = ( 0, 0, 1 ) + + \begintext + + +Moon-centric Solar Ecliptic frame (LSE) +--------------------------------------- + + Definition: + ----------- + The Moon-centric Solar Ecliptic frame is defined as follows: + + - The position of the Sun relative to Moon is the primary vector: + +X axis points from Moon to the Sun; + + - The inertially referenced velocity of the Sun relative to Moon + is the secondary vector: +Y axis is the component of this + velocity vector orthogonal to the +X axis; + + - +Z axis completes the right-handed system; + + - the origin of this frame is Moon's center of mass. + + All vectors are geometric: no corrections are used. + + + Required Data: + -------------- + This frame is defined as a two-vector frame using two different types + of specifications for the primary and secondary vectors. + + The primary vector is defined as an 'observer-target position' vector, + therefore, the ephemeris data required to compute the Moon-Sun vector + in J2000 frame have to be loaded before using this frame. + + The secondary vector is defined as an 'observer-target velocity' vector, + therefore, the ephemeris data required to compute the Moon-Sun velocity + vector in the J2000 frame have to be loaded before using this frame. + + + Remarks: + -------- + This frame is defined based on SPK data: different planetary + ephemerides (DE families) for the Moon, the Sun, the Solar System + Barycenter and the Earth-Moon Barycenter will lead to different frames. + + + \begindata + + FRAME_LSE = 1500301 + FRAME_1500301_NAME = 'LSE' + FRAME_1500301_CLASS = 5 + FRAME_1500301_CLASS_ID = 1500301 + FRAME_1500301_CENTER = 301 + FRAME_1500301_RELATIVE = 'J2000' + FRAME_1500301_DEF_STYLE = 'PARAMETERIZED' + FRAME_1500301_FAMILY = 'TWO-VECTOR' + FRAME_1500301_PRI_AXIS = 'X' + FRAME_1500301_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' + FRAME_1500301_PRI_OBSERVER = 'MOON' + FRAME_1500301_PRI_TARGET = 'SUN' + FRAME_1500301_PRI_ABCORR = 'NONE' + FRAME_1500301_SEC_AXIS = 'Y' + FRAME_1500301_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY' + FRAME_1500301_SEC_OBSERVER = 'MOON' + FRAME_1500301_SEC_TARGET = 'SUN' + FRAME_1500301_SEC_ABCORR = 'NONE' + FRAME_1500301_SEC_FRAME = 'J2000' + + \begintext + + +Moon Mean Equator of Date frame (LME) +------------------------------------- + + Definition: + ----------- + The Moon Mean Equator of Date frame (also known as Moon Mean Equator + and IAU vector of Date frame) is defined as follows (from [5]): + + - X-Y plane is defined by the Moon equator of date, and the + +Z axis, primary vector of this frame, is parallel to the + Moon's rotation axis of date, pointing toward the North side + of the invariant plane; + + - +X axis is defined by the intersection of the Moon's equator + of date with the Earth Mean Equator of J2000; + + - +Y axis completes the right-handed system; + + - the origin of this frame is Moon's center of mass. + + All vectors are geometric: no corrections are used. + + + Required Data: + -------------- + This frame is defined as a two-vector frame using constant vectors as + the specification method. The secondary vector is defined in the J2000 + frame and it therefore does not require to load any additional data. + + The primary vector is defined as a constant vector in the IAU_MOON + frame, which is a PCK-based frame, therefore a PCK file containing + the orientation constants for the Moon has to be loaded before using + this frame. + + + Remarks: + -------- + This frame is defined based on the IAU_MOON frame, whose evaluation is + based on the data included in the loaded PCK file: different orientation + constants for the Moon's spin axis will lead to different frames. It is + strongly recommended to indicate what data have been used in the + evaluation of this frame when referring to it, i.e. LME using IAU 2000 + constants. + + + \begindata + + FRAME_LME = 1501301 + FRAME_1501301_NAME = 'LME' + FRAME_1501301_CLASS = 5 + FRAME_1501301_CLASS_ID = 1501301 + FRAME_1501301_CENTER = 301 + FRAME_1501301_RELATIVE = 'J2000' + FRAME_1501301_DEF_STYLE = 'PARAMETERIZED' + FRAME_1501301_FAMILY = 'TWO-VECTOR' + FRAME_1501301_PRI_AXIS = 'Z' + FRAME_1501301_PRI_VECTOR_DEF = 'CONSTANT' + FRAME_1501301_PRI_FRAME = 'IAU_MOON' + FRAME_1501301_PRI_SPEC = 'RECTANGULAR' + FRAME_1501301_PRI_VECTOR = ( 0, 0, 1 ) + FRAME_1501301_SEC_AXIS = 'Y' + FRAME_1501301_SEC_VECTOR_DEF = 'CONSTANT' + FRAME_1501301_SEC_FRAME = 'J2000' + FRAME_1501301_SEC_SPEC = 'RECTANGULAR' + FRAME_1501301_SEC_VECTOR = ( 0, 0, 1 ) + + \begintext + +Geocentric Solar Ecliptic frame (GSE) +--------------------------------------- + + Definition: + ----------- + The Geocentric Solar Ecliptic frame is defined as follows (from [3]): + + - X-Y plane is defined by the Earth Mean Ecliptic plane of date: + the +Z axis, primary vector, is the normal vector to this plane, + always pointing toward the North side of the invariant plane; + + - +X axis is the component of the Earth-Sun vector that is orthogonal + to the +Z axis; + + - +Y axis completes the right-handed system; + + - the origin of this frame is the Sun's center of mass. + + All the vectors are geometric: no aberration corrections are used. + + + Required Data: + -------------- + This frame is defined as a two-vector frame using two different types + of specifications for the primary and secondary vectors. + + The primary vector is defined as a constant vector in the ECLIPDATE + frame and therefore, no additional data is required to compute this + vector. + + The secondary vector is defined as an 'observer-target position' vector, + therefore, the ephemeris data required to compute the Earth-Sun vector + in J2000 frame have to be loaded prior to using this frame. + + + Remarks: + -------- + SPICE imposes a constraint in the definition of dynamic frames: + + When the definition of a parameterized dynamic frame F1 refers to a + second frame F2 the referenced frame F2 may be dynamic, but F2 must not + make reference to any dynamic frame. For further information on this + topic, please refer to [1]. + + Therefore, no other dynamic frame should make reference to this frame. + + Since the secondary vector of this frame is defined as an + 'observer-target position' vector, the usage of different planetary + ephemerides conduces to different implementations of this frame, + but only when these data lead to different projections of the + Earth-Sun vector on the Earth Ecliptic plane of date. + + As an example, note that the average difference in position of the +X + axis of this frame, when using DE405 vs. DE403 ephemerides, is about + 14.3 micro-radians, with a maximum of 15.0 micro-radians. + + + \begindata + + FRAME_GSE = 1500399 + FRAME_1500399_NAME = 'GSE' + FRAME_1500399_CLASS = 5 + FRAME_1500399_CLASS_ID = 1500399 + FRAME_1500399_CENTER = 399 + FRAME_1500399_RELATIVE = 'J2000' + FRAME_1500399_DEF_STYLE = 'PARAMETERIZED' + FRAME_1500399_FAMILY = 'TWO-VECTOR' + FRAME_1500399_PRI_AXIS = 'Z' + FRAME_1500399_PRI_VECTOR_DEF = 'CONSTANT' + FRAME_1500399_PRI_FRAME = 'ECLIPDATE' + FRAME_1500399_PRI_SPEC = 'RECTANGULAR' + FRAME_1500399_PRI_VECTOR = ( 0, 0, 1 ) + FRAME_1500399_SEC_AXIS = 'X' + FRAME_1500399_SEC_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' + FRAME_1500399_SEC_OBSERVER = 'EARTH' + FRAME_1500399_SEC_TARGET = 'SUN' + FRAME_1500399_SEC_ABCORR = 'NONE' + + \begintext + +Earth Mean Equator and Equinox of Date frame (EME) +-------------------------------------------------- + + Definition: + ----------- + The Earth Mean Equator and Equinox of Date frame is defined as follows: + + - +Z axis is aligned with the north-pointing vector normal to the + mean equatorial plane of the Earth; + + - +X axis points along the ``mean equinox'', which is defined as the + intersection of the Earth's mean orbital plane with the Earth's mean + equatorial plane. It is aligned with the cross product of the + north-pointing vectors normal to the Earth's mean equator and mean + orbit plane of date; + + - +Y axis is the cross product of the Z and X axes and completes the + right-handed frame; + + - the origin of this frame is the Earth's center of mass. + + The mathematical model used to obtain the orientation of the Earth's mean + equator and equinox of date frame is the 1976 IAU precession model, built + into SPICE. + + The base frame for the 1976 IAU precession model is J2000. + + + Required Data: + -------------- + The usage of this frame does not require additional data since the + precession model used to define this frame is already built into + SPICE. + + + Remarks: + -------- + None. + + + \begindata + + FRAME_EME = 1501399 + FRAME_1501399_NAME = 'EME' + FRAME_1501399_CLASS = 5 + FRAME_1501399_CLASS_ID = 1501399 + FRAME_1501399_CENTER = 399 + FRAME_1501399_RELATIVE = 'J2000' + FRAME_1501399_DEF_STYLE = 'PARAMETERIZED' + FRAME_1501399_FAMILY = 'MEAN_EQUATOR_AND_EQUINOX_OF_DATE' + FRAME_1501399_PREC_MODEL = 'EARTH_IAU_1976' + FRAME_1501399_ROTATION_STATE = 'ROTATING' + + \begintext + + +Geocentric Solar Equatorial frame (GSEQ) +---------------------------------------- + + Definition: + ----------- + The Geocentric Solar Equatorial frame is defined as follows (from [7]): + + - +X axis is the position of the Sun relative to the Earth; it's + the primary vector and points from the Earth to the Sun; + + - +Z axis is the component of the Sun's north pole of date orthogonal + to the +X axis; + + - +Y axis completes the right-handed reference frame; + + - the origin of this frame is the Earth's center of mass. + + All the vectors are geometric: no aberration corrections are used. + + Required Data: + -------------- + This frame is defined as a two-vector frame using two different types + of specifications for the primary and secondary vectors. + + The primary vector is defined as an 'observer-target position' vector, + therefore, the ephemeris data required to compute the Earth-Sun vector + in J2000 frame have to be loaded before using this frame. + + The secondary vector is defined as a constant vector in the IAU_SUN + frame, which is a PCK-based frame, therefore a PCK file containing + the orientation constants for the Sun has to be loaded before using + this frame. + + + Remarks: + -------- + This frame is defined based on the IAU_SUN frame, whose evaluation is + based on the data included in the loaded PCK file: different orientation + constants for the Sun's spin axis will lead to different frames. It is + strongly recommended to indicate what data have been used in the + evaluation of this frame when referring to it, i.e.GSEQ using IAU 2000 + constants. + + Since the primary vector of this frame is defined as an 'observer-target + position' vector, the usage of different planetary ephemerides + conduces to different implementations of this frame. As an example, + the difference between using DE405 or DE403 ephemerides is, in average, + approximately 10.9 micro-radians, with a maximum of 21.6 micro-radians. + + + \begindata + + FRAME_GSEQ = 1502399 + FRAME_1502399_NAME = 'GSEQ' + FRAME_1502399_CLASS = 5 + FRAME_1502399_CLASS_ID = 1502399 + FRAME_1502399_CENTER = 399 + FRAME_1502399_RELATIVE = 'J2000' + FRAME_1502399_DEF_STYLE = 'PARAMETERIZED' + FRAME_1502399_FAMILY = 'TWO-VECTOR' + FRAME_1502399_PRI_AXIS = 'X' + FRAME_1502399_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' + FRAME_1502399_PRI_OBSERVER = 'EARTH' + FRAME_1502399_PRI_TARGET = 'SUN' + FRAME_1502399_PRI_ABCORR = 'NONE' + FRAME_1502399_SEC_AXIS = 'Z' + FRAME_1502399_SEC_VECTOR_DEF = 'CONSTANT' + FRAME_1502399_SEC_FRAME = 'IAU_SUN' + FRAME_1502399_SEC_SPEC = 'RECTANGULAR' + FRAME_1502399_SEC_VECTOR = ( 0, 0, 1 ) + + \begintext + +Earth Mean Ecliptic and Equinox of Date frame (ECLIPDATE) +--------------------------------------------------------- + + Definition: + ----------- + The Earth Mean Ecliptic and Equinox of Date frame is defined as follows: + + - +Z axis is aligned with the north-pointing vector normal to the + mean orbital plane of the Earth; + + - +X axis points along the ``mean equinox'', which is defined as the + intersection of the Earth's mean orbital plane with the Earth's mean + equatorial plane. It is aligned with the cross product of the + north-pointing vectors normal to the Earth's mean equator and mean + orbit plane of date; + + - +Y axis is the cross product of the Z and X axes and completes the + right-handed frame; + + - the origin of this frame is the Earth's center of mass. + + The mathematical model used to obtain the orientation of the Earth's mean + equator and equinox of date frame is the 1976 IAU precession model, built + into SPICE. + + The mathematical model used to obtain the mean orbital plane of the Earth + is the 1980 IAU obliquity model, also built into SPICE. + + The base frame for the 1976 IAU precession model is J2000. + + Required Data: + -------------- + The usage of this frame does not require additional data since both the + precession and the obliquity models used to define this frame are already + built into SPICE. + + + Remarks: + -------- + None. + + + \begindata + + FRAME_ECLIPDATE = 1503399 + FRAME_1503399_NAME = 'ECLIPDATE' + FRAME_1503399_CLASS = 5 + FRAME_1503399_CLASS_ID = 1503399 + FRAME_1503399_CENTER = 399 + FRAME_1503399_RELATIVE = 'J2000' + FRAME_1503399_DEF_STYLE = 'PARAMETERIZED' + FRAME_1503399_FAMILY = 'MEAN_ECLIPTIC_AND_EQUINOX_OF_DATE + FRAME_1503399_PREC_MODEL = 'EARTH_IAU_1976' + FRAME_1503399_OBLIQ_MODEL = 'EARTH_IAU_1980' + FRAME_1503399_ROTATION_STATE = 'ROTATING' + + \begintext + + + +Mars Mean Equator of Date frame (MME) +------------------------------------- + + Definition: + ----------- + The Mars Mean Equator of Date frame (also known as Mars Mean Equator + and IAU vector of Date frame) is defined as follows (from [5]): + + - X-Y plane is defined by the Mars equator of date: the + +Z axis, primary vector, is parallel to the Mars' rotation + axis of date, pointing toward the North side of the invariant + plane; + + - +X axis is defined by the intersection of the Mars' equator of + date with the J2000 equator; + + - +Y axis completes the right-handed system; + + - the origin of this frame is Mars' center of mass. + + + All vectors are geometric: no corrections are used. + + + Required Data: + -------------- + This frame is defined as a two-vector frame using constant vectors as + the specification method. The secondary vector is defined in the J2000 + frame and therefore it does not require to load any additional data. + + The primary vector is defined as a constant vector in the IAU_MARS + frame, which is a PCK-based frame, therefore a PCK file containing + the orientation constants for Mars has to be loaded before using this + frame. + + + Remarks: + -------- + This frame is defined based on the IAU_MARS frame, whose evaluation is + based on the data included in the loaded PCK file: different orientation + constants for Mars' spin axis will lead to different frames. It is + strongly recommended to indicate which data have been used in the + evaluation of this frame when referring to it, i.e. MME using IAU 2000 + constants. + + This frame is provided as the ``most generic'' Mars Mean Equator of + Date frame since the user has the possibility of loading different Mars + orientation constants that would help him/her to define different + implementations of this frame. + + + \begindata + + FRAME_MME = 1500499 + FRAME_1500499_NAME = 'MME' + FRAME_1500499_CLASS = 5 + FRAME_1500499_CLASS_ID = 1500499 + FRAME_1500499_CENTER = 499 + FRAME_1500499_RELATIVE = 'J2000' + FRAME_1500499_DEF_STYLE = 'PARAMETERIZED' + FRAME_1500499_FAMILY = 'TWO-VECTOR' + FRAME_1500499_PRI_AXIS = 'Z' + FRAME_1500499_PRI_VECTOR_DEF = 'CONSTANT' + FRAME_1500499_PRI_FRAME = 'IAU_MARS' + FRAME_1500499_PRI_SPEC = 'RECTANGULAR' + FRAME_1500499_PRI_VECTOR = ( 0, 0, 1 ) + FRAME_1500499_SEC_AXIS = 'Y' + FRAME_1500499_SEC_VECTOR_DEF = 'CONSTANT' + FRAME_1500499_SEC_FRAME = 'J2000' + FRAME_1500499_SEC_SPEC = 'RECTANGULAR' + FRAME_1500499_SEC_VECTOR = ( 0, 0, 1 ) + + \begintext + + +Mars Mean Equator of Date frame based on IAU 2000 Mars Constants (MME_IAU2000) +------------------------------------------------------------------------------ + + Definition: + ----------- + The MME_IAU2000 frame is based on Mean Mars Equator and IAU + vector of date evaluated using IAU 2000 Mars rotation constants. + + This frame is implemented as as Euler frame, mathematically identical + to the PCK frame IAU_MARS based on IAU 2000 Mars rotation constants + but without prime meridian rotation terms. + + The PCK data defining the IAU_MARS frame are: + + BODY499_POLE_RA = ( 317.68143 -0.1061 0. ) + BODY499_POLE_DEC = ( 52.88650 -0.0609 0. ) + BODY499_PM = ( 176.630 350.89198226 0. ) + + These values are from [6]. + + Here pole RA/Dec terms in the PCK are in degrees and degrees/century; + the rates have been converted to degrees/sec. Prime meridian terms + from the PCK are disregarded. + + The 3x3 transformation matrix M defined by the angles is + + M = [ 0.0] [angle_2] [angle_3] + 3 1 3 + + Vectors are mapped from the J2000 base frame to the MME_IAU2000 + frame via left multiplication by M. + + The relationship of these Euler angles to RA/Dec for the + J2000-to-IAU Mars Mean Equator of Date transformation is as follows: + + angle_1 is 0.0 + angle_2 is pi/2 - Dec * (radians/degree) + angle_3 is pi/2 + RA * (radians/degree), mapped into the + range 0 < angle_3 < 2*pi + - + + Since when we define the MME_IAU2000 frame we're defining the + *inverse* of the above transformation, the angles for our Euler frame + definition are reversed and the signs negated: + + angle_1 is -pi/2 - RA * (radians/degree), mapped into the + range 0 < angle_3 < 2*pi + - + angle_2 is -pi/2 + Dec * (radians/degree) + angle_3 is 0.0 + + The resulting values for the coefficients are (in degrees): + + ANGLE_1 = -47.68143 0.33621061170684714E-10 + ANGLE_2 = -37.11350 -0.19298045478743630E-10 + ANGLE_3 = 0.00000 0.0000 + + + Required Data: + -------------- + Since the frame definition incorporates all the required data for + evaluating this frame's orientation, the usage of this frame does not + require additional data + + + Remarks: + -------- + None. + + + \begindata + + FRAME_MME_IAU2000 = 1501499 + FRAME_1501499_NAME = 'MME_IAU2000' + FRAME_1501499_CLASS = 5 + FRAME_1501499_CLASS_ID = 1501499 + FRAME_1501499_CENTER = 499 + FRAME_1501499_RELATIVE = 'J2000' + FRAME_1501499_DEF_STYLE = 'PARAMETERIZED' + FRAME_1501499_FAMILY = 'EULER' + FRAME_1501499_EPOCH = @2000-JAN-1/12:00:00 + FRAME_1501499_AXES = ( 3 1 3 ) + FRAME_1501499_UNITS = 'DEGREES' + FRAME_1501499_ANGLE_1_COEFFS = ( -47.68143 + 0.33621061170684714E-10 ) + FRAME_1501499_ANGLE_2_COEFFS = ( -37.1135 + -0.19298045478743630E-10 ) + FRAME_1501499_ANGLE_3_COEFFS = ( 0.0 ) + + \begintext + + +Mars-centric Solar Orbital frame (MSO) +-------------------------------------------------------- + + Definition: + ----------- + The Mars-centric Solar Orbital frame is defined as follows: + + - The position of the Sun relative to Mars is the primary vector: + +X axis points from Mars to the Sun; + + - The inertially referenced velocity of the Sun relative to Mars + is the secondary vector: +Y axis is the component of this + velocity vector orthogonal to the +X axis; + + - +Z axis completes the right-handed system; + + - the origin of this frame is Mars' center of mass. + + All vectors are geometric: no corrections are used. + + + Required Data: + -------------- + This frame is defined as a two-vector frame using two different types + of specifications for the primary and secondary vectors. + + The primary vector is defined as an 'observer-target position' vector, + therefore, the ephemeris data required to compute the Mars-Sun vector + in J2000 frame have to be loaded before using this frame. + + The secondary vector is defined as an 'observer-target velocity' vector, + therefore, the ephemeris data required to compute the Mars-Sun velocity + vector in the J2000 frame have to be loaded before using this frame. + + + Remarks: + -------- + This frame is defined based on SPK data: different planetary + ephemerides (DE families) for Mars, the Sun and the Solar System + Barycenter will lead to different implementations of the frame. As an + example, the difference between using DE405 and DE403 ephemerides is, + on average, approximately 11.1 micro-radians, with a maximum of 13.4 + micro-radians. + + + \begindata + + FRAME_MSO = 1502499 + FRAME_1502499_NAME = 'MSO' + FRAME_1502499_CLASS = 5 + FRAME_1502499_CLASS_ID = 1502499 + FRAME_1502499_CENTER = 499 + FRAME_1502499_RELATIVE = 'J2000' + FRAME_1502499_DEF_STYLE = 'PARAMETERIZED' + FRAME_1502499_FAMILY = 'TWO-VECTOR' + FRAME_1502499_PRI_AXIS = 'X' + FRAME_1502499_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' + FRAME_1502499_PRI_OBSERVER = 'MARS' + FRAME_1502499_PRI_TARGET = 'SUN' + FRAME_1502499_PRI_ABCORR = 'NONE' + FRAME_1502499_SEC_AXIS = 'Y' + FRAME_1502499_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY' + FRAME_1502499_SEC_OBSERVER = 'MARS' + FRAME_1502499_SEC_TARGET = 'SUN' + FRAME_1502499_SEC_ABCORR = 'NONE' + FRAME_1502499_SEC_FRAME = 'J2000' + + \begintext + + + +Generic Inertial Frames +======================================================================== + + This section contains the definitions of the Generic Inertial Frames + used within the ESA Planetary Missions, which are not 'built-in' into + the SPICE toolkit. + + +Heliocentric Inertial frame (HCI) +------------------------------------------------------ + + The Heliocentric Inertial Frame is defined as follows (from [3]): + + - X-Y plane is defined by the Sun's equator of epoch J2000: the +Z + axis, primary vector, is parallel to the Sun's rotation axis of + epoch J2000, pointing toward the Sun's north pole; + + - +X axis is defined by the ascending node of the Sun's equatorial + plane on the ecliptic plane of J2000; + + - +Y completes the right-handed frame; + + - the origin of this frame is the Sun's center of mass. + + Note that even when the original frame defined in [3] is referenced + to the orientation of the Solar equator in J1900, the HCI frame is + based on J2000 instead. + + It is possible to define this frame as a dynamic frame frozen at + J2000 epoch, using the following set of keywords: + + FRAME_HCI = 1502010 + FRAME_1502010_NAME = 'HCI' + FRAME_1502010_CLASS = 5 + FRAME_1502010_CLASS_ID = 1502010 + FRAME_1502010_CENTER = 10 + FRAME_1502010_RELATIVE = 'J2000' + FRAME_1502010_DEF_STYLE = 'PARAMETERIZED' + FRAME_1502010_FAMILY = 'TWO-VECTOR' + FRAME_1502010_PRI_AXIS = 'Z' + FRAME_1502010_PRI_VECTOR_DEF = 'CONSTANT' + FRAME_1502010_PRI_FRAME = 'IAU_SUN' + FRAME_1502010_PRI_SPEC = 'RECTANGULAR' + FRAME_1502010_PRI_VECTOR = ( 0, 0, 1 ) + FRAME_1502010_SEC_AXIS = 'Y' + FRAME_1502010_SEC_VECTOR_DEF = 'CONSTANT' + FRAME_1502010_SEC_FRAME = 'ECLIPJ2000' + FRAME_1502010_SEC_SPEC = 'RECTANGULAR' + FRAME_1502010_SEC_VECTOR = ( 0, 0, 1 ) + + In the above implementation of this frame, the primary vector is + defined as a constant vector in the IAU_SUN frame, which is a + PCK-based frame, therefore a PCK file containing the orientation + constants for the Sun has to be loaded before using this frame. + + Due to the fact that the transformation between the HCI frame and J2000 + frame is fixed and time independent, the HCI frame can be implemented + as a fixed offset frame relative to the J2000 frame. The rotation matrix + provided in the definition was computed using the following PXFORM call: + + CALL PXFORM( 'HCI', 'J2000', 0.D0, MATRIX ) + + using the implementation of the frame given above, and the following PCK: + + PCK00008.TPC + + which contains the following constants for the SUN (from [5]): + + BODY10_POLE_RA = ( 286.13 0. 0. ) + BODY10_POLE_DEC = ( 63.87 0. 0. ) + + This new implementation of the frame is preferred for computing efficiency + reasons. + + \begindata + + FRAME_HCI = 1502010 + FRAME_1502010_NAME = 'HCI' + FRAME_1502010_CLASS = 4 + FRAME_1502010_CLASS_ID = 1502010 + FRAME_1502010_CENTER = 10 + TKFRAME_1502010_SPEC = 'MATRIX' + TKFRAME_1502010_RELATIVE = 'J2000' + TKFRAME_1502010_MATRIX = ( + + 0.2458856764679510 0.8893142951159845 0.3855649343628876 + -0.9615455562494245 0.1735802308455697 0.2128380762847277 + 0.1223534934723278 -0.4230720836476433 0.8977971010607901 + + ) + + \begintext + + +Venus Mean Equator of Date J2000 frame (VME2000) +------------------------------------------------ + + The Venus Mean Equator of Date J2000 is defined as follows: + + - +Z axis points toward Venus North Pole of date J2000; + + - +X axis points toward the Venus IAU vector of date J2000. Venus + IAU vector of date is defined as the intersection between the + Venus equator of date and the J2000 equator; + + - +Y axis completes the right-hand frame; + + - the origin of this frame is Venus center of mass. + + The VME2000 frame is the VME frame frozen at J2000 (using the IAU + 2000 constants for Venus' North Pole and prime meridian). For + computing efficiency reasons this frame is defined as a fixed offset + frame relative to the J2000 frame. The rotation matrix provided in + the definition was computed using the following PXFORM call: + + CALL PXFORM( 'VME', 'J2000', 0.D0, MATRIX ) + + using the following kernel file: + + PCK00008.TPC + + which implements the following IAU constants for Venus (from [5]): + + BODY299_POLE_RA = ( 272.76 0. 0. ) + BODY299_POLE_DEC = ( 67.16 0. 0. ) + BODY299_PM = ( 160.20 -1.4813688 0. ) + + Note that the prime meridian terms are not used on the evaluation of + the VME frame. + + + \begindata + + FRAME_VME2000 = 1503299 + FRAME_1503299_NAME = 'VME2000' + FRAME_1503299_CLASS = 4 + FRAME_1503299_CLASS_ID = 1503299 + FRAME_1503299_CENTER = 299 + TKFRAME_1503299_SPEC = 'MATRIX' + TKFRAME_1503299_RELATIVE = 'J2000' + TKFRAME_1503299_MATRIX = ( + + 0.9988399975085458 0.0481524597204341 0.0000000000000000 + -0.0443769404401835 0.9205233405740161 0.3881590738545506 + 0.0186908141689023 -0.3877088083617988 0.9215923900425704 + + ) + + \begintext + + +Moon Mean Equator of Date J2000 frame (LME2000) +----------------------------------------------- + + The Moon Mean Equator of Date J2000 is defined as follows: + + - +Z axis points toward Moon's North Pole of date J2000; + + - +X axis points toward the Moon's equinox of date J2000. Moon's + equinox of date J2000 is defined as the intersection between the + Moon's equator of date and the J2000 equator; + + - +Y axis completes the right-hand frame; + + - the origin of this frame is Moon's center of mass. + + The LME2000 frame is the LME frame frozen at J2000 (using the IAU 2000 + constants for the Moon's North Pole, prime meridian and nutation model). + For computing efficiency reasons this frame is defined as a fixed offset + frame relative to the J2000 frame. The rotation matrix provided in the + definition was computed using the following PXFORM call: + + CALL PXFORM( 'LME', 'J2000', 0.D0, MATRIX ) + + using the following kernel files: + + PCK00008.TPC + + which implements the following IAU constants for the Moon (from [5]): + + - Moon's J2000 right ascension and declination (RA and DEC) of the + north pole. + + BODY301_POLE_RA = ( 269.9949 0.0031 0. ) + BODY301_POLE_DEC = ( 66.5392 0.0130 0. ) + + + - Coefficients of the trigonometric terms for the computation of the + nutation and precession of the Moon: + + BODY301_NUT_PREC_RA = ( -3.8787 -0.1204 0.0700 -0.0172 + 0.0 0.0072 0.0 0.0 + 0.0 -0.0052 0.0 0.0 + 0.0043 ) + + BODY301_NUT_PREC_DEC = ( 1.5419 0.0239 -0.0278 0.0068 + 0.0 -0.0029 0.0009 0.0 + 0.0 0.0008 0.0 0.0 + -0.0009 ) + + The effective RA/DEC of the Moon's North pole is computed, for a given + time as: + + alpha = 269.9949 + 0.0031 T - 3.8787 sin(E1) - 0.1204 sin(E2) + 0 + + 0.0700 sin(E3) - 0.0172 sin(E4) + + + 0.0072 sin(E6) - 0.0052 sin(E10) + + + 0.0043 sin(E13) + + + delta = 66.5392 + 0.013 T + 1.5419 cos(E1) + 0.0239 cos(E2) + 0 + - 0.0278 cos(E3) + 0.0068 cos(E4) + + - 0.0029 cos(E6) + 0.0009 cos(E7) + + + 0.0008 cos(E10) - 0.0009 cos(E13) + + where T represents centuries past J2000 ( TDB ), and the nutation + precession angles for the Earth-Moon system are: + + E1 = 125.045 - 0.0529921 d + E2 = 250.089 - 0.1059842 d + E3 = 260.008 + 13.0120009 d + E4 = 176.625 + 13.3407154 d + E5 = 357.529 + 0.9856003 d + E6 = 311.589 + 26.4057084 d + E7 = 134.963 + 13.0649930 d + E8 = 276.617 - 0.3287146 d + E9 = 34.226 - 1.7484877 d + E10 = 15.134 - 0.1589763 d + E11 = 119.743 + 0.0036096 d + E12 = 239.961 + 0.1643573 d + E13 = 25.053 + 12.9590088 d + + where d represents days past J2000 ( TDB ) + + + \begindata + + FRAME_LME2000 = 1502301 + FRAME_1502301_NAME = 'LME2000' + FRAME_1502301_CLASS = 4 + FRAME_1502301_CLASS_ID = 1502301 + FRAME_1502301_CENTER = 301 + TKFRAME_1502301_SPEC = 'MATRIX' + TKFRAME_1502301_RELATIVE = 'J2000' + TKFRAME_1502301_MATRIX = ( + + 0.9984965052050879 -0.0548154092680678 0.0000000000000000 + 0.0499357293985326 0.9096101252380440 0.4124510189026893 + -0.0226086714041825 -0.4118309009426129 0.9109797785934293 + + ) + + \begintext + + +Mars Mean Equator of Date J2000 frame (MME2000) +----------------------------------------------- + + The Mars Mean Equator of Date J2000 is defined as follows: + + - +Z axis points toward Mars North Pole of date J2000; + + - +X axis points toward the Mars IAU vector of date J2000. Mars + IAU vector of date is defined as the intersection between the + Mars equator of date and the J2000 equator; + + - +Y axis completes the right-hand frame; + + - the origin of this frame is Mars center of mass. + + The MME2000 frame is the MME_IAU2000 frame frozen at J2000. For computing + efficiency reasons this frame is defined as a fixed offset frame relative + to the J2000 frame. The rotation matrix provided in the definition was + computed using the following PXFORM call: + + CALL PXFORM( 'MME_IAU2000', 'J2000', 0.D0, MATRIX ) + + \begindata + + FRAME_MME2000 = 1503499 + FRAME_1503499_NAME = 'MME2000' + FRAME_1503499_CLASS = 4 + FRAME_1503499_CLASS_ID = 1503499 + FRAME_1503499_CENTER = 499 + TKFRAME_1503499_SPEC = 'MATRIX' + TKFRAME_1503499_RELATIVE = 'J2000' + TKFRAME_1503499_MATRIX = ( + + 0.6732521982472339 0.7394129276360180 0.0000000000000000 + -0.5896387605430040 0.5368794307891331 0.6033958972853946 + 0.4461587269353556 -0.4062376142607541 0.7974417791532832 + + ) + + \begintext + diff --git a/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/tgoCassisAddendum007.ti b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/tgoCassisAddendum007.ti new file mode 100644 index 0000000..ce10214 --- /dev/null +++ b/tests/pytests/data/CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1/tgoCassisAddendum007.ti @@ -0,0 +1,194 @@ +\begintext +The instrument addendum kernel for TGO CaSSIS camera. + +history 2017-01-13 Jeannie Backer - Original version. +history 2017-02-03 Kris Becker - Added light time correction flags + and filter offsets from beginning of CCD. +history 2017-09-05 Stuart Sides - Added distortion coefficients (no longer appearing in IK). +history 2017-09-13 Jeannie Backer - Updated distortion coefficients provided by S.Tulyakov (EPFL) + and added documentation. +history 2017-09-20 Kristin Berry - Moved unneeded filter offsets to text area and cleaned up file. +history 2018-03-13 Jeannie Backer - Updated focal length from 880.0 to 876, as + recommended by S.Tulyakov (EPFL). Also updated filter boresight line/samp. +history 2018-07-01 Kristin Berry - Updated focal length from 876 to 874.9 mm, as + recommended by S.Tulyakov (EPFL). Also updated filter offset. + +\begintext +Values below come from the camera kernel. + +\begindata + INS-143400_PIXEL_PITCH = 0.010 + INS-143400_FOCAL_LENGTH = 874.9 + INS-143400_BORESIGHT_SAMPLE = 1024.5 + INS-143400_BORESIGHT_LINE = 1024.5 + INS-143400_FILTER_LINES = 2048 + INS-143400_FILTER_SAMPLES = 2048 + + INS-143421_FOCAL_LENGTH = 874.9 + INS-143421_BORESIGHT_SAMPLE = 1024.5 + INS-143421_BORESIGHT_LINE = 493.5 + INS-143421_FILTER_LINES = 280 + INS-143421_FILTER_SAMPLES = 2048 + + INS-143422_FOCAL_LENGTH = 874.9 + INS-143422_BORESIGHT_SAMPLE = 1024.5 + INS-143422_BORESIGHT_LINE = 839.5 + INS-143422_FILTER_LINES = 256 + INS-143422_FILTER_SAMPLES = 2048 + + INS-143423_FOCAL_LENGTH = 874.9 + INS-143423_BORESIGHT_SAMPLE = 1024.5 + INS-143423_BORESIGHT_LINE = 1175.5 + INS-143423_FILTER_LINES = 256 + INS-143423_FILTER_SAMPLES = 2048 + + INS-143424_FOCAL_LENGTH = 874.9 + INS-143424_BORESIGHT_SAMPLE = 1024.5 + INS-143424_BORESIGHT_LINE = 1516.5 + INS-143424_FILTER_LINES = 256 + INS-143424_FILTER_SAMPLES = 2048 + +\begintext +Filter Offsets, for reference. (No longer required by ISIS3.) + + INS-143421_FILTER_OFFSET = 354.0 + INS-143422_FILTER_OFFSET = 712.0 + INS-143423_FILTER_OFFSET = 1048.0 + INS-143424_FILTER_OFFSET = 1389.0 + +\begintext +Calculated using pixel pitch and 1/pixel pitch + +\begindata + INS-143400_TRANSX = ( 0.0, 0.010, 0.0 ) + INS-143400_TRANSY = ( 0.0, 0.0, 0.010 ) + INS-143400_ITRANSS = ( 0.0, 100.0, 0.0 ) + INS-143400_ITRANSL = ( 0.0, 0.0, 100.0 ) + +\begintext + + CASSIS OBSERVER/TARGET SWAPPING, STELLAR ABERRATION & LIGHT TIME CORRECTION: +------------------------------------------------------------------------------ + +The following table lists the TGO/CASSIS NAIF Ids that need to have parameters +set that will provide the settings for handling light time/stellar aberration +corrections as well as swap observer/target to set the correct order for NAIF +calls to get s/c and target postion and attitude data. + + Name NAIF ID + --------------------- --------- + TGO_CASSIS -143400 + TGO_CASSIS_PAN -143421 + TGO_CASSIS_RED -143422 + TGO_CASSIS_NIR -143423 + TGO_CASSIS_BLU -143424 + + +\begindata + + INS-143400_SWAP_OBSERVER_TARGET = 'TRUE' + INS-143400_LIGHTTIME_CORRECTION = 'LT+S' + INS-143400_LT_SURFACE_CORRECT = 'TRUE' + + INS-143421_SWAP_OBSERVER_TARGET = 'TRUE' + INS-143421_LIGHTTIME_CORRECTION = 'LT+S' + INS-143421_LT_SURFACE_CORRECT = 'TRUE' + + INS-143422_SWAP_OBSERVER_TARGET = 'TRUE' + INS-143422_LIGHTTIME_CORRECTION = 'LT+S' + INS-143422_LT_SURFACE_CORRECT = 'TRUE' + + INS-143423_SWAP_OBSERVER_TARGET = 'TRUE' + INS-143423_LIGHTTIME_CORRECTION = 'LT+S' + INS-143423_LT_SURFACE_CORRECT = 'TRUE' + + INS-143424_SWAP_OBSERVER_TARGET = 'TRUE' + INS-143424_LIGHTTIME_CORRECTION = 'LT+S' + INS-143424_LT_SURFACE_CORRECT = 'TRUE' + + +\begintext + +Optical Distortion - Correcting distorted coordinates +-------------------------------------------------------- + Converting from distorted (i,j) to ideal (x,y). + +Rational correction model is described by following equation + + chi = [ i^2, i*j, j^2, i, j, 1] + + A_corr_1 * chi' + x = ---------------------- + A_corr_3 * chi' + + A_corr_2 * chi' + y = ---------------------- + A_corr_3 * chi' + + where (i, j) are distorted focal plane coordinates in millimeters + (x, y) are ideal focal plane coordinates in millimeters + A_corr_1, A_corr_2, A_corr_3 are 1x6 vectors, parameters of the rational correction model + +\begindata + + INS-143400_OD_A1_CORR = ( 0.00376130530948266, + -0.0134154156065812, + -1.86749521007237e-05, + 1.00021352681836, + -0.000432362371703953, + -0.000948065735350123 ) + INS-143400_OD_A2_CORR = ( 9.9842559363676e-05, + 0.00373543707958162, + -0.0133299918873929, + -0.000215311328389359, + 0.995296015537294, + -0.0183542717710778 ) + INS-143400_OD_A3_CORR = ( -3.13320167004204e-05, + -7.35655125749807e-06, + -1.57664245066771e-05, + 0.00373549465439151, + -0.0141671946930935, + 1.0 ) +\begintext + +Optical Distortion - Distorting ideal coordinates +-------------------------------------------------------- + Converting from ideal (x,y) to distorted (i,j). + + Rational distortion model is described by following equation + + chi = [ x^2, x*y, y^2, x, y, 1] + + A_dist_1 * chi' + i = ---------------------- + A_dist_3 * chi' + + A_dist_2 * chi' + j = ---------------------- + A_dist_3 * chi' + + where (i, j) are distorted focal plane coordinates in millimeters + (x, y) are ideal focal plane coordinates in millimeters + A_dist_1, A_dist_2, A_dist_3 are 1x6 vectors, parameters of the rational distortion model + +\begindata + + INS-143400_OD_A1_DIST = ( 0.00213658795560622, + -0.00711785765064197, + 1.10355974742147e-05, + 0.573607182625377, + 0.000250884350194894, + 0.000550623913037132 ) + INS-143400_OD_A2_DIST = ( -5.69725741015406e-05, + 0.00215155905679149, + -0.00716392991767185, + 0.000124152787728634, + 0.576459544392426, + 0.010576940564854 ) + INS-143400_OD_A3_DIST = ( 1.78250771483506e-05, + 4.24592743471094e-06, + 9.51220699036653e-06, + 0.00215158425420738, + -0.0066835595774833, + 0.573741540971609 ) + diff --git a/tests/pytests/test_cassis_drivers.py b/tests/pytests/test_cassis_drivers.py new file mode 100644 index 0000000..339c7b4 --- /dev/null +++ b/tests/pytests/test_cassis_drivers.py @@ -0,0 +1,294 @@ +import pytest +import ale +import os +import json + +import numpy as np +from ale.formatters.isis_formatter import to_isis +from ale.base.data_isis import IsisSpice +import unittest +from unittest.mock import patch + +from conftest import get_image_label, get_image_kernels, convert_kernels, compare_dicts + +from ale.drivers.tgo_drivers import TGOCassisIsisLabelNaifSpiceDriver +from conftest import get_image_kernels, convert_kernels, get_image_label + +@pytest.fixture() +def isis_compare_dict(): + return { + "CameraVersion": 1, + "NaifKeywords": { + "BODY499_RADII": [3396.19, 3396.19, 3376.2], + "BODY_FRAME_CODE": 10014, + "BODY_CODE": 499, + "INS-143400_FOV_ANGLE_UNITS": "DEGREES", + "INS-143400_OD_A3_DIST": [ + 1.78250771483506e-05, + 4.24592743471094e-06, + 9.51220699036653e-06, + 0.00215158425420738, + -0.0066835595774833, + 0.573741540971609 + ], + "TKFRAME_-143400_ANGLES": [0.021, 0.12, -179.881], + "FRAME_-143400_CENTER": -143.0, + "INS-143400_FOV_CLASS_SPEC": "ANGLES", + "INS-143400_OD_A3_CORR": [ + -3.13320167004204e-05, + -7.35655125749807e-06, + -1.57664245066771e-05, + 0.00373549465439151, + -0.0141671946930935, + 1.0 + ], + "INS-143400_FOV_REF_VECTOR": [1.0, 0.0, 0.0], + "TKFRAME_-143400_AXES": [1.0, 2.0, 3.0], + "TKFRAME_-143400_SPEC": "ANGLES", + "INS-143400_OD_A2_DIST": [ + -5.69725741015406e-05, + 0.00215155905679149, + -0.00716392991767185, + 0.000124152787728634, + 0.576459544392426, + 0.010576940564854 + ], + "FRAME_-143400_NAME": "TGO_CASSIS_CRU", + "INS-143400_BORESIGHT": [0.0, 0.0, 1.0], + "INS-143400_ITRANSL": [0.0, 0.0, 100.0], + "TKFRAME_-143400_RELATIVE": "TGO_SPACECRAFT", + "INS-143400_ITRANSS": [0.0, 100.0, 0.0], + "INS-143400_FOV_CROSS_ANGLE": 0.67057, + "INS-143400_BORESIGHT_LINE": 1024.5, + "INS-143400_OD_A2_CORR": [ + 9.9842559363676e-05, + 0.00373543707958162, + -0.0133299918873929, + -0.000215311328389359, + 0.995296015537294, + -0.0183542717710778 + ], + "INS-143400_SWAP_OBSERVER_TARGET": "TRUE", + "FRAME_-143400_CLASS_ID": -143400.0, + "INS-143400_LIGHTTIME_CORRECTION": "LT+S", + "INS-143400_BORESIGHT_SAMPLE": 1024.5, + "INS-143400_PIXEL_PITCH": 0.01, + "INS-143400_FOV_REF_ANGLE": 0.67057, + "INS-143400_FOV_SHAPE": "RECTANGLE", + "INS-143400_OD_A1_DIST": [ + 0.00213658795560622, + -0.00711785765064197, + 1.10355974742147e-05, + 0.573607182625377, + 0.000250884350194894, + 0.000550623913037132 + ], + "INS-143400_FILTER_SAMPLES": 2048.0, + "INS-143400_FILTER_LINES": 2048.0, + "INS-143400_OD_A1_CORR": [ + 0.00376130530948266, + -0.0134154156065812, + -1.86749521007237e-05, + 1.00021352681836, + -0.000432362371703953, + -0.000948065735350123 + ], + "INS-143400_FOV_FRAME": "TGO_CASSIS_FSA", + "INS-143400_LT_SURFACE_CORRECT": "TRUE", + "INS-143400_NAME": "TGO_CASSIS", + "INS-143400_FOCAL_LENGTH": 874.9, + "FRAME_-143400_CLASS": 4.0, + "INS-143400_TRANSX": [0.0, 0.01, 0.0], + "INS-143400_TRANSY": [0.0, 0.0, 0.01], + "TKFRAME_-143400_UNITS": "DEGREES", + "FRAME_1503499_CLASS": 4.0, + "FRAME_1500499_SEC_FRAME": "J2000", + "FRAME_1500499_DEF_STYLE": "PARAMETERIZED", + "TKFRAME_1503499_SPEC": "MATRIX", + "FRAME_1500499_PRI_AXIS": "Z", + "BODY499_POLE_DEC": [52.8865, -0.0609, 0.0], + "FRAME_1502499_PRI_TARGET": "SUN", + "FRAME_1502499_CENTER": 499.0, + "FRAME_1501499_ANGLE_1_COEFFS": [-47.68143, 3.362106117068471e-11], + "FRAME_1502499_FAMILY": "TWO-VECTOR", + "FRAME_1503499_NAME": "MME2000", + "FRAME_1502499_SEC_TARGET": "SUN", + "FRAME_1501499_EPOCH": 0.0, + "FRAME_1500499_SEC_SPEC": "RECTANGULAR", + "FRAME_1501499_UNITS": "DEGREES", + "FRAME_1500499_CENTER": 499.0, + "FRAME_1502499_PRI_OBSERVER": "MARS", + "FRAME_1500499_FAMILY": "TWO-VECTOR", + "FRAME_1502499_SEC_VECTOR_DEF": "OBSERVER_TARGET_VELOCITY", + "FRAME_1500499_CLASS": 5.0, + "FRAME_1500499_SEC_VECTOR_DEF": "CONSTANT", + "FRAME_1501499_ANGLE_2_COEFFS": [-37.1135, -1.929804547874363e-11], + "FRAME_1500499_PRI_SPEC": "RECTANGULAR", + "BODY499_POLE_RA": [317.68143, -0.1061, 0.0], + "FRAME_1500499_PRI_VECTOR": [0.0, 0.0, 1.0], + "FRAME_1502499_PRI_VECTOR_DEF": "OBSERVER_TARGET_POSITION", + "TKFRAME_1503499_RELATIVE": "J2000", + "FRAME_1500499_NAME": "MME", + "FRAME_1500499_PRI_VECTOR_DEF": "CONSTANT", + "FRAME_1500499_SEC_VECTOR": [0.0, 0.0, 1.0], + "BODY499_PM": [176.63, 350.89198226, 0.0], + "FRAME_1502499_SEC_FRAME": "J2000", + "FRAME_1502499_PRI_ABCORR": "NONE", + "FRAME_1503499_CENTER": 499.0, + "FRAME_1502499_DEF_STYLE": "PARAMETERIZED", + "FRAME_1503499_CLASS_ID": 1503499.0, + "FRAME_1502499_RELATIVE": "J2000", + "FRAME_1502499_SEC_ABCORR": "NONE", + "FRAME_1501499_CLASS": 5.0, + "TKFRAME_1503499_MATRIX": [ + 0.6732521982472339, + 0.7394129276360181, + 0.0, + -0.589638760543004, + 0.536879430789133, + 0.6033958972853946, + 0.4461587269353556, + -0.4062376142607541, + 0.7974417791532832 + ], + "FRAME_1502499_CLASS_ID": 1502499.0, + "FRAME_1501499_ANGLE_3_COEFFS": 0.0, + "FRAME_1501499_RELATIVE": "J2000", + "FRAME_1501499_NAME": "MME_IAU2000", + "FRAME_1501499_CENTER": 499.0, + "FRAME_1501499_CLASS_ID": 1501499.0, + "FRAME_1500499_RELATIVE": "J2000", + "FRAME_1501499_FAMILY": "EULER", + "FRAME_1502499_SEC_AXIS": "Y", + "FRAME_1502499_CLASS": 5.0, + "FRAME_1501499_DEF_STYLE": "PARAMETERIZED", + "FRAME_1500499_CLASS_ID": 1500499.0, + "FRAME_1500499_PRI_FRAME": "IAU_MARS", + "BODY499_GM": 42828.314, + "FRAME_1502499_PRI_AXIS": "X", + "FRAME_1502499_SEC_OBSERVER": "MARS", + "FRAME_1502499_NAME": "MSO", + "FRAME_1501499_AXES": [3.0, 1.0, 3.0], + "FRAME_1500499_SEC_AXIS": "Y" + }, + "InstrumentPointing": { + "TimeDependentFrames": [-143410, -143400, -143000, 1], + "ConstantFrames" : [-143420, -143410], + "CkTableStartTime": 533471602.76595, + "CkTableEndTime": 533471602.76595, + "CkTableOriginalSize": 1, + "EphemerisTimes": [533471602.76595], + "Quaternions": [ + [-0.38852078202718, + -0.53534661398878, + -0.74986993015978, + 0.012275694110544 + ] + ], + "AngularVelocity": [ + [-5.18973909108511e-04, + -2.78782123621868e-04, + 2.84462861654798e-04 + ] + ], + "ConstantRotation": [ + 0.0021039880161896, + -5.08910327554815e-04, + 0.99999765711961, + 0.98482103650022, + 0.17356149021485, + -0.0019837290716917, + -0.17356007404082, + 0.98482290292452, + 8.66356891752243e-04 + ] + }, + "BodyRotation": { + "TimeDependentFrames": [10014, 1], + "CkTableStartTime": 533471602.76595, + "CkTableEndTime": 533471602.76595, + "CkTableOriginalSize": 1, + "EphemerisTimes": [533471602.76595], + "Quaternions": [ + [-0.84364286886959, + 0.083472339272581, + 0.30718999789287, + -0.43235793455935 + ] + ], + "AngularVelocity": [ + [3.16231952619494e-05, + -2.8811745785852e-05, + 5.6516725802331e-05 + ] + ] + }, + "InstrumentPosition": { + "SpkTableStartTime": 533471602.76595, + "SpkTableEndTime": 533471602.76595, + "SpkTableOriginalSize": 1, + "EphemerisTimes": [533471602.76595], + "Positions": [ + [-2707.0266303122, + 2307.373459613, + 2074.8887762465] + ], + "Velocities": [ + [-1.6101681507607, + -4.1440662687653, + -0.48379032129765 + ] + ] + }, + "SunPosition": { + "SpkTableStartTime": 533471602.76595, + "SpkTableEndTime": 533471602.76595, + "SpkTableOriginalSize": 1, + "EphemerisTimes": [533471602.76595], + "Positions": [ + [-206349081.4204, + 17157784.002827, + 13440194.20453 + ] + ], + "Velocities": [ + [-3.3908615862221, + -23.832213042409, + -10.839726759899 + ] + ] + } +} + + +@pytest.fixture() +def test_kernels(scope="module"): + kernels = get_image_kernels("CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1") + updated_kernels, binary_kernels = convert_kernels(kernels) + yield updated_kernels + for kern in binary_kernels: + os.remove(kern) + +def test_cassis_load(test_kernels, isis_compare_dict): + label_file = get_image_label("CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1", "isis") + isis_isd = ale.load(label_file, props={'kernels': test_kernels}, formatter="isis") + + assert compare_dicts(isis_isd, isis_compare_dict) == [] + +# ========= Test cassis ISIS label and naifspice driver ========= +class test_cassis_isis_naif(unittest.TestCase): + + def setUp(self): + label = get_image_label("CAS-MCO-2016-11-26T22.32.14.582-RED-01000-B1", "isis") + self.driver = TGOCassisIsisLabelNaifSpiceDriver(label) + + def test_short_mission_name(self): + assert self.driver.short_mission_name == "tgo" + + def test_instrument_id(self): + assert self.driver.instrument_id == "TGO_CASSIS" + + def test_ephemeris_start_time(self): + with patch("ale.drivers.viking_drivers.spice.utc2et", return_value=12345) as utc2et: + assert self.driver.ephemeris_start_time == 12345 + utc2et.assert_called_with("2016-11-26 22:32:14.582000") diff --git a/tests/pytests/test_kaguya_drivers.py b/tests/pytests/test_kaguya_drivers.py index 3e874e5..a357707 100644 --- a/tests/pytests/test_kaguya_drivers.py +++ b/tests/pytests/test_kaguya_drivers.py @@ -102,18 +102,18 @@ def test_load(test_kernels): 'semiminor': 1737.4, 'unit': 'km'}, 'sensor_position': { - 'positions': np.array([[ 195493.28614388, 211984.05137213, -1766966.32185819], - [ 194937.01104181, 211343.39987087, -1767100.47633473], - [ 194380.68920347, 210702.70097122, -1767234.22276254], - [ 193824.32093681, 210061.95495794, -1767367.56104995], - [ 193267.90484827, 209421.16305764, -1767500.49120063], - [ 192711.44397634, 208780.32318594, -1767633.01318365]]), - 'velocities': np.array([[-1069.71225785, -1231.97438089, -258.37880523], - [-1069.80205939, -1232.06556741, -257.5939851 ], - [-1069.89161639, -1232.15647191, -256.80910187], - [-1069.98092881, -1232.24709434, -256.02415587], - [-1070.06999666, -1232.33743471, -255.2391471 ], - [-1070.15881991, -1232.42749298, -254.4540759 ]]), + 'positions': np.array([[195490.61933009, 211972.79163854, -1766965.21759375], + [194934.34274256, 211332.14192709, -1767099.36601459], + [194378.02078141, 210691.44358962, -1767233.10640484], + [193821.65246371, 210050.69819792, -1767366.43865632], + [193265.23762617, 209409.90567475, -1767499.36279925], + [192708.77531467, 208769.0676026, -1767631.87872367]]), + 'velocities': np.array([[-1069.71186948, -1231.97377674, -258.3672068 ], + [-1069.80166655, -1232.06495814, -257.58238805], + [-1069.89121909, -1232.15585752, -256.7975062 ], + [-1069.98052705, -1232.24647484, -256.01256158], + [-1070.06959044, -1232.3368101, -255.2275542 ], + [-1070.15840923, -1232.42686325, -254.44248439]]), 'unit': 'm'}, 'sun_position': { 'positions': np.array([[9.50465237e+10, 1.15903815e+11, 3.78729685e+09]]), -- GitLab