diff --git a/bin/socet2isis b/bin/socet2isis new file mode 100644 index 0000000000000000000000000000000000000000..44255aec300c8ad9f4aed798258a8a9cf8fb89c6 --- /dev/null +++ b/bin/socet2isis @@ -0,0 +1,15 @@ +#!/usr/bin/env python +import argparse + +def parse_args(): + parser = argparse.ArgumentParser() + # Add args here + + return parser.parse_args() + + +def main(args): + print('Getting some work done') + +if __name__ == '__main__': + main(parse_args()) \ No newline at end of file diff --git a/plio/data/data.db b/plio/data/data.db index c1ac0e7c5802a4222a93a6ab400dc3dbc454aeb0..09fc46d99adf6d88099df74c72033a853cc3e8eb 100644 Binary files a/plio/data/data.db and b/plio/data/data.db differ diff --git a/plio/examples/CTX/ctx.pvl b/plio/examples/CTX/ctx.pvl new file mode 100644 index 0000000000000000000000000000000000000000..b062798ad7043009e8c98e607ea39122b6b80c18 --- /dev/null +++ b/plio/examples/CTX/ctx.pvl @@ -0,0 +1,72 @@ +Object = IsisCube + Object = Core + StartByte = 65537 + Format = Tile + TileSamples = 1000 + TileLines = 1024 + + Group = Dimensions + Samples = 5000 + Lines = 7168 + Bands = 1 + End_Group + + Group = Pixels + Type = SignedWord + ByteOrder = Lsb + Base = 0.0 + Multiplier = 1.0 + End_Group + End_Object + + Group = Instrument + SpacecraftName = Mars_Reconnaissance_Orbiter + InstrumentId = CTX + TargetName = Mars + MissionPhaseName = PSP + StartTime = 2008-09-17T05:08:10.820 + SpacecraftClockCount = 0906095311:038 + OffsetModeId = 196/190/181 + LineExposureDuration = 1.877 <MSEC> + FocalPlaneTemperature = 293.4 <K> + SampleBitModeId = SQROOT + SpatialSumming = 1 + SampleFirstPixel = 0 + End_Group + + Group = Archive + DataSetId = MRO-M-CTX-2-EDR-L0-V1.0 + ProductId = B01_010045_1878_XN_07N205W + ProducerId = MRO_CTX_TEAM + ProductCreationTime = 2009-04-13T19:24:46 + OrbitNumber = 10045 + End_Group + + Group = BandBin + FilterName = BroadBand + Center = 0.65 <micrometers> + Width = 0.15 <micrometers> + End_Group + + Group = Kernels + NaifFrameCode = -74021 + LeapSecond = $base/kernels/lsk/naif0012.tls + TargetAttitudeShape = $base/kernels/pck/pck00009.tpc + TargetPosition = (Table, $base/kernels/spk/de405.bsp) + InstrumentPointing = (Table, + $mro/kernels/ck/mro_sc_psp_080916_080922.bc, + $mro/kernels/fk/mro_v15.tf) + Instrument = Null + SpacecraftClock = $mro/kernels/sclk/MRO_SCLKSCET.00064.65536.tsc + InstrumentPosition = (Table, $mro/kernels/spk/mro_psp8.bsp) + InstrumentAddendum = $mro/kernels/iak/mroctxAddendum005.ti + ShapeModel = $base/dems/molaMarsPlanetaryRadius0005.cub + InstrumentPositionQuality = Reconstructed + InstrumentPointingQuality = Reconstructed + CameraVersion = 1 + End_Group +End_Object + +Object = Label + Bytes = 65536 +End_Object diff --git a/plio/io/io_db.py b/plio/io/io_db.py index a8a7e259194f46603ace04368d9065e1c2c43503..988ec589fed803328d139a578fff260b7fc972d1 100644 --- a/plio/io/io_db.py +++ b/plio/io/io_db.py @@ -41,6 +41,10 @@ class Translations(Base): # pragma: no cover self.instrument = instrument self.translation = translation + def __repr__(self): + return 'Mission: {}\nInstrument: {}\nTranslation: {}'.format(self.mission, + self.instrument, + self.translation) class StringToMission(Base): # pragma: no cover """ diff --git a/plio/io/isis_serial_number.py b/plio/io/isis_serial_number.py index 0c187abff1a0ea0fbe70fe3781dca7fc092f035f..01f8fb7d3d0b5256fea5c7c99a21e4de31fecbe6 100644 --- a/plio/io/isis_serial_number.py +++ b/plio/io/isis_serial_number.py @@ -82,6 +82,7 @@ def generate_serial_number(label): # Sort the keys to ensure proper iteration order keys = sorted(translation.keys()) + for k in keys: try: group = translation[k] diff --git a/plio/io/tests/test_isis_serial_numbers.py b/plio/io/tests/test_isis_serial_numbers.py index 8abf3227fa9f5c98904fbf3348911c58f3d0eeb2..2cd68907e17432dc2a72f9a315102a51e025b76d 100644 --- a/plio/io/tests/test_isis_serial_numbers.py +++ b/plio/io/tests/test_isis_serial_numbers.py @@ -1,17 +1,24 @@ import os import sys -import unittest -from plio.examples import get_path - -sys.path.insert(0, os.path.abspath('..')) +import pytest from plio.io import isis_serial_number +from plio.examples import get_path + +@pytest.fixture +def apollo_lbl(): + return get_path('Test_PVL.lbl') +@pytest.fixture +def ctx_lbl(): + return get_path('ctx.pvl') -class TestIsisSerials(unittest.TestCase): +@pytest.mark.parametrize("label, expected", [(apollo_lbl(), 'APOLLO15/METRIC/1971-07-31T14:02:27.179'), + (ctx_lbl(),'MRO/CTX/0906095311:038') + ]) +def test_generate_serial_number(label, expected): + serial = isis_serial_number.generate_serial_number(label) + assert serial == expected - def test_generate_serial_number(self): - label = get_path('Test_PVL.lbl') - serial = isis_serial_number.generate_serial_number(label) - self.assertEqual('APOLLO15/METRIC/1971-07-31T14:02:27.179', serial) \ No newline at end of file + \ No newline at end of file diff --git a/setup.py b/setup.py index 0431bad1067c6fdb5d4a085d2896076ace9cd3d6..6932e2f2e29d75c78259d5c72149c418fd6c87fe 100644 --- a/setup.py +++ b/setup.py @@ -36,6 +36,7 @@ def setup_package(): package_data={'plio' : list(examples) + ['data/*.db', 'data/*.py'] +\ ['sqlalchemy_json/*.py', 'sqlalchemy_json/LICENSE']}, zip_safe=False, + scripts=['bin/socet2isis'], install_requires=[ 'gdal', 'numpy',