From 1088c901a49e883fdfdd41fcb4f2e79b46d24a23 Mon Sep 17 00:00:00 2001 From: Daniel Pressler Date: Mon, 4 Mar 2024 09:15:22 -0700 Subject: [PATCH] update changelog; add smoketest --- CHANGELOG.md | 1 + tests/data/example_matesa_tre.bin | 1 + tests/data/example_matesa_tre.py | 14 ++++++++++++++ tests/io/general/test_tre.py | 5 +++++ 4 files changed, 21 insertions(+) create mode 100644 tests/data/example_matesa_tre.bin create mode 100644 tests/data/example_matesa_tre.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 76eb5541..a558ec8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ release points are not being annotated in GitHub. - Unit tests for `sarpy/consistency/sicd_consistency.py` - Support reading CPHDs with an AmpSF PVP whose Data/SignalArrayFormat is CF8 - Unit tests for `sarpy/consistency/sidd_consistency.py` +- Support for MATESA TRE ### Fixed - `sarpy.io.kml.add_polygon` coordinate conditioning for older numpy versions - Replace unsupported `pillow` constant `Image.ANTIALIAS` with `Image.LANCZOS` diff --git a/tests/data/example_matesa_tre.bin b/tests/data/example_matesa_tre.bin new file mode 100644 index 00000000..4807fda6 --- /dev/null +++ b/tests/data/example_matesa_tre.bin @@ -0,0 +1 @@ +MATESA00889EO-1_HYPERION FTITLE 005507APR2005_Hyperion_331406N0442000E_SWIR172_1p2B_L1R-BIP0005RADIOMTRC_CALIB 0001EO-1_HYPERION FILENAME 0020HypGain_revC.dat.svfPARENT 0001EO-1_HYPERION FILENAME 0032EO12005097_020D020C_r1_WPS_01.L0PRE_DARKCOLLECT 0001EO-1_HYPERION FILENAME 0032EO12005097_020A0209_r1_WPS_01.L0POST_DARKCOLLECT 0001EO-1_HYPERION FILENAME 0032EO12005097_020F020E_r1_WPS_01.L0PARENT 0003EO-1_HYPERION FILENAME 0026EO1H1680372005097110PZ.L1REO-1_HYPERION FILENAME 0026EO1H1680372005097110PZ.AUXEO-1_HYPERION FILENAME 0026EO1H1680372005097110PZ.MET \ No newline at end of file diff --git a/tests/data/example_matesa_tre.py b/tests/data/example_matesa_tre.py new file mode 100644 index 00000000..84311d25 --- /dev/null +++ b/tests/data/example_matesa_tre.py @@ -0,0 +1,14 @@ +import mmap +import os +import pathlib + +# From https://nsgreg.nga.mil/doc/view?i=5516 +nitf_with_matesa = '07APR2005_Hyperion_331406N0442000E_SWIR172_1p2B_L1R-BIP/07APR2005_Hyperion_331406N0442000E_SWIR172_1p2B_L1R-BIP.ntf' +cetag = b'MATESA' + +with open(nitf_with_matesa, 'r+b') as nitffile, mmap.mmap(nitffile.fileno(), 0) as mm: + mm.seek(mm.find(cetag, 0) + len(cetag), os.SEEK_SET) + cel = mm.read(5) + data = mm.read(int(cel)) + +(pathlib.Path(__file__).parent / 'example_matesa_tre.bin').write_bytes(cetag + cel + data) diff --git a/tests/io/general/test_tre.py b/tests/io/general/test_tre.py index 183f6828..bf6a2363 100644 --- a/tests/io/general/test_tre.py +++ b/tests/io/general/test_tre.py @@ -7,3 +7,8 @@ class TestTreRegistry(unittest.TestCase): def test_find_tre(self): the_tre = find_tre('ACFTA') self.assertEqual(the_tre, ACFTA) + + +def test_matesa(tests_path): + example = find_tre('MATESA').from_bytes((tests_path / 'data/example_matesa_tre.bin').read_bytes(), 0) + assert example.DATA.GROUPs[-1].MATEs[-1].MATE_ID == 'EO1H1680372005097110PZ.MET'