def test_parse_passinfo_ls7_file(self): d = write_files({'passinfo': [ "STATION ALICE\n", "STRING S1A1C2D3R3\n", "PASSID LANDSAT-7.30486\n", "SATELLITE LANDSAT-7\n", "ORBIT 30486\n", "LINKID L\n", "BITRATE 150000000\n", "SENSOR ETM\n", "START 2005-01-07T02:00:28.000\n", "STOP 2005-01-07T02:07:19.000\n", "DURATION 528\n", "COMMENTS Bit\n", "logfile acs acs.log\n", "logfile ref ref.log\n", "logfile 1070030486.eph 1070030486.eph.log\n", "logfile demod demod.log\n", "telemetry telemetry.data\n", ]}) md = extraction.extract_md(ptype.DatasetMetadata(), d) self.assertEqual(md.acquisition.groundstation.code, "ASA") self.assertEqual(md.acquisition.platform_orbit, 30486) self.assertEqual(md.platform.code, "LANDSAT_7") self.assertEqual(md.instrument.name, "ETM") self.assertEqual(md.acquisition.aos, datetime.datetime(2005, 1, 7, 2, 0, 28)) self.assertEqual(md.acquisition.los, datetime.datetime(2005, 1, 7, 2, 7, 19))
def test_unusual_filenames(self): # Some passinfo filenames have orbit numbers appended d = write_files({'passinfo.24775': [ "STATION TERSS\n", "STRING S1A1C1D1R1\n", "PASSID LANDSAT-5.110912\n", "SATELLITE LANDSAT-5\n", "ORBIT 110912\n", "LINKID X\n", "BITRATE 84900000\n", "SENSOR TM\n", "START 2005-01-06T23:32:14\n", "STOP 2005-01-06T23:39:12\n", "DURATION 423\n", "COMMENTS Bit\n", "logfile acs acs.log\n", "logfile ref ref.log\n", "logfile demod demod.log\n", "logfile 1050110912.eph 1050110912.eph.log\n", "telemetry telemetry.data\n" ]}) md = extraction.extract_md(ptype.DatasetMetadata(), d) # Station "TERSS" is hobart. self.assertEqual(md.acquisition.groundstation.code, "HOA") self.assertEqual(md.acquisition.platform_orbit, 110912) self.assertEqual(md.platform.code, "LANDSAT_5") self.assertEqual(md.instrument.name, "TM") self.assertEqual(md.acquisition.aos, datetime.datetime(2005, 1, 6, 23, 32, 14)) self.assertEqual(md.acquisition.los, datetime.datetime(2005, 1, 6, 23, 39, 12))
def test_parse_passinfo_file(self): d = write_files({ 'subdirectory': { }, 'passinfo': [ "STATION ALICE\n", "STRING S1A1C1D1R1\n", "PASSID LANDSAT-5.110912\n", "SATELLITE LANDSAT-5\n", "ORBIT 110912\n", "LINKID X\n", "BITRATE 84900000\n", "SENSOR TM\n", "START 2005-01-06T23:32:14\n", "STOP 2005-01-06T23:39:12\n", "DURATION 423\n", "COMMENTS Bit\n", "logfile acs acs.log\n", "logfile ref ref.log\n", "logfile demod demod.log\n", "logfile 1050110912.eph 1050110912.eph.log\n", "telemetry telemetry.data\n" ]}) # It should find a passinfo file one directory up. md = extraction.extract_md(ptype.DatasetMetadata(), d.joinpath('subdirectory')) self.assertEqual(md.acquisition.groundstation.code, "ASA") self.assertEqual(md.acquisition.platform_orbit, 110912) self.assertEqual(md.platform.code, "LANDSAT_5") self.assertEqual(md.instrument.name, "TM") self.assertEqual(md.acquisition.aos, datetime.datetime(2005, 1, 6, 23, 32, 14)) self.assertEqual(md.acquisition.los, datetime.datetime(2005, 1, 6, 23, 39, 12))
def fill_metadata(self, dataset, path, additional_files=()): """ :type additional_files: tuple[Path] :type dataset: ptype.DatasetMetadata :type path: Path :rtype: ptype.DatasetMetadata """ dataset = adsfolder.extract_md(dataset, path) dataset = rccfile.extract_md(dataset, path) dataset = mdf.extract_md(dataset, path) dataset = passinfo.extract_md(dataset, path) dataset = pds.extract_md(dataset, path) dataset = npphdf5.extract_md(dataset, path) # TODO: Antenna coords for groundstation? Heading? # TODO: Bands? (or eg. I/Q files?) return dataset