def test_reg_l8_muscate(self): tiles = ["31TCH", "31TCH"] levels = ["l1c", "l2a"] dates = ["20170501T103532", "20170501T103532"] validity = [True, False] for prod, tile, date, level, valid in zip(self.prod_l8_mus, tiles, dates, levels, validity): p = MajaProduct.factory(prod) self.assertIsInstance(p, Landsat8Muscate) self.assertEqual(p.level, level) self.assertEqual(p.nodata, 0) self.assertEqual(p.platform, "landsat8") self.assertEqual(p.type, "muscate") self.assertEqual(p.tile, tile) self.assertEqual(p.date.strftime("%Y%m%dT%H%M%S"), date) self.assertTrue( os.path.basename(p.metadata_file).endswith("_MTD_ALL.xml")) self.assertTrue(os.path.exists(p.metadata_file)) self.assertEqual(p.validity, valid) link_dir = "linkdir" FileSystem.create_directory(link_dir) p.link(link_dir) self.assertTrue(os.path.islink(os.path.join(link_dir, p.base))) self.assertEqual(p.mnt_resolutions_dict, [{ 'name': 'XS', 'val': '30 -30' }]) self.assertEqual(p, p) FileSystem.remove_directory(link_dir) # Other prods: for prod in self.prod_l8_lc1 + self.prod_l8_lc2 + self.prod_l8_nat + self.prods_other: p = MajaProduct.factory(prod) self.assertNotIsInstance(p, Landsat8Muscate)
def test_reg_l8_lc2(self): tiles = ["199029"] dates = ["20170527T120000"] levels = ["l1c"] for prod, tile, date, level in zip(self.prod_l8_lc2, tiles, dates, levels): p = MajaProduct.factory(prod) self.assertIsInstance(p, Landsat8LC2) self.assertEqual(p.level, level) self.assertEqual(p.platform, "landsat8") self.assertEqual(p.type, "natif") self.assertEqual(p.tile, tile) self.assertEqual(p.nodata, 0) self.assertEqual(p.date.strftime("%Y%m%dT%H%M%S"), date) self.assertEqual(os.path.basename(p.metadata_file), prod.split(".")[0] + "_MTL.txt") self.assertTrue(os.path.exists(p.metadata_file)) self.assertEqual(p.validity, True) link_dir = "linkdir" FileSystem.create_directory(link_dir) p.link(link_dir) self.assertTrue(os.path.islink(os.path.join(link_dir, p.base))) self.assertEqual(p.mnt_resolutions_dict, [{ 'name': 'XS', 'val': '30 -30' }]) self.assertEqual(p, p) FileSystem.remove_directory(link_dir) # Other prods: for prod in self.prod_l8_lc1 + self.prod_l8_nat + self.prod_l8_mus + self.prods_other: p = MajaProduct.factory(prod) self.assertNotIsInstance(p, Landsat8LC2)
def test_reg_vs_muscate(self): tiles = ["KHUMBU", "KHUMBU", "KHUMBU"] levels = ["l1c", "l2a", "l3a"] dates = ["20180201T051359", "20180201T051359", "20180201T000000"] validity = [True, False, False] for prod, tile, date, level, valid in zip(self.prod_vs_mus, tiles, dates, levels, validity): p = MajaProduct.factory(prod) self.assertIsInstance(p, VenusMuscate) self.assertEqual(p.level, level) self.assertEqual(p.platform, "venus") self.assertEqual(p.type, "muscate") self.assertEqual(p.tile, tile) self.assertEqual(p.date.strftime("%Y%m%dT%H%M%S"), date) self.assertTrue(os.path.basename(p.metadata_file).endswith("_MTD_ALL.xml")) self.assertTrue(os.path.exists(p.metadata_file)) self.assertEqual(p.validity, valid) link_dir = "linkdir" FileSystem.create_directory(link_dir) p.link(link_dir) self.assertTrue(os.path.islink(os.path.join(link_dir, p.base))) self.assertEqual(p.mnt_resolutions_dict, [{'name': 'XS', 'val': '5 -5'}]) self.assertEqual(p, p) FileSystem.remove_directory(link_dir) # Other prods: for prod in self.prod_vs_nat + self.prods_other: p = MajaProduct.factory(prod) self.assertNotIsInstance(p, VenusMuscate)
def test_reg_vs_natif(self): tiles = ["ISRAW906", "UNH", "SUDOUE_6", "CHILE"] dates = ["20180317T120000", "20180329T120000", "20191110T120000", "20200311T120000"] levels = ["l2a", "l1c", "l1c", "l1c"] for prod, tile, date, level in zip(self.prod_vs_nat, tiles, dates, levels): p = MajaProduct.factory(prod) self.assertIsInstance(p, VenusNatif) self.assertEqual(p.level, level) self.assertEqual(p.platform, "venus") self.assertEqual(p.type, "natif") self.assertEqual(p.tile, tile) self.assertEqual(p.date.strftime("%Y%m%dT%H%M%S"), date) self.assertEqual(os.path.basename(p.metadata_file), prod.split(".")[0] + ".HDR") self.assertTrue(os.path.exists(p.metadata_file)) self.assertEqual(p.validity, True) link_dir = "linkdir" FileSystem.create_directory(link_dir) p.link(link_dir) self.assertTrue(os.path.islink(os.path.join(link_dir, p.base))) self.assertEqual(p.mnt_resolutions_dict, [{'name': 'XS', 'val': '5 -5'}]) self.assertEqual(p, p) FileSystem.remove_directory(link_dir) # Other prods: for prod in self.prod_vs_mus + self.prods_other: p = MajaProduct.factory(prod) self.assertNotIsInstance(p, VenusNatif)
def test_reg_s2_prd(self): tiles = [None] dates = ["20161109T171237"] levels = ["l1c"] for prod, tile, date, level in zip(self.prod_s2_prd, tiles, dates, levels): # TODO Currently not supported self.assertIsNone(MajaProduct.factory(prod))
def test_get_file_depth1(self): product = MajaProduct.factory(self.root) expected = os.path.join(os.path.abspath(self.root), "MTD_MSIL1C.xml") dirnames_e = p.normpath(expected).split(os.sep) calculated = product.find_file(path=self.root, pattern="^MTD_MSIL1C.xml$", depth=1) self.assertEqual(len(calculated), 1) dirnames_c = p.normpath(calculated[0]).split(os.sep) for exp, calc in zip(dirnames_c[-1:], dirnames_e[-1:]): self.assertEqual(exp[:-1], calc[:-1]) self.assertEqual(expected, calculated[0])
def test_reg_s2_natif(self): tiles = ["29RPQ", "32TMR", "55HBC", "55HBD"] dates = [ "20170412T110621", "20180316T103021", "20160814T002112", "20160926T003552" ] levels = ["l1c", "l1c", "l2a", "l2a"] for prod, tile, date, level in zip(self.prod_s2_nat, tiles, dates, levels): p = MajaProduct.factory(prod) self.assertIsInstance(p, Sentinel2Natif) self.assertEqual(p.level, level) self.assertEqual(p.platform, "sentinel2") self.assertEqual(p.type, "natif") self.assertEqual(p.tile, tile) self.assertEqual(p.date.strftime("%Y%m%dT%H%M%S"), date) self.assertTrue(os.path.basename(p.metadata_file), "MTD_MSIL1C.xml") self.assertTrue(os.path.exists(p.metadata_file)) self.assertEqual(p.validity, True) link_dir = "linkdir" FileSystem.create_directory(link_dir) p.link(link_dir) self.assertTrue(os.path.islink(os.path.join(link_dir, p.base))) self.assertEqual(p.mnt_resolutions_dict, [{ "name": "R1", "val": "10 -10" }, { "name": "R2", "val": "20 -20" }]) self.assertEqual(p, p) FileSystem.remove_directory(link_dir) # Other prods: for prod in self.prod_s2_prd + self.prod_s2_ssc + self.prod_s2_mus + self.prods_other: p = MajaProduct.factory(prod) self.assertNotIsInstance(p, Sentinel2Natif)
def test_reg_s2_muscate(self): tiles = ["31TCH", "31TCH", "31UFR"] levels = ["l1c", "l2a", "l3a"] dates = ["20171008T105012", "20161206T105012", "20190415T000000"] validity = [True, False, False] for prod, tile, date, level, valid in zip(self.prod_s2_mus, tiles, dates, levels, validity): p = MajaProduct.factory(prod) self.assertIsInstance(p, Sentinel2Muscate) self.assertEqual(p.level, level) self.assertEqual(p.platform, "sentinel2") self.assertEqual(p.type, "muscate") self.assertEqual(p.nodata, -10000) self.assertEqual(p.tile, tile) self.assertEqual(p.date.strftime("%Y%m%dT%H%M%S"), date) self.assertTrue( os.path.basename(p.metadata_file).endswith("_MTD_ALL.xml")) self.assertTrue(os.path.exists(p.metadata_file)) self.assertEqual(p.validity, valid) link_dir = "linkdir" FileSystem.create_directory(link_dir) p.link(link_dir) self.assertTrue(os.path.islink(os.path.join(link_dir, p.base))) self.assertEqual(p.mnt_resolutions_dict, [{ "name": "R1", "val": "10 -10" }, { "name": "R2", "val": "20 -20" }]) self.assertEqual(p, p) FileSystem.remove_directory(link_dir) # Other prods: for prod in self.prod_s2_prd + self.prod_s2_ssc + self.prod_s2_nat + self.prods_other: p = MajaProduct.factory(prod) self.assertNotIsInstance(p, Sentinel2Muscate)
def test_reg_s2_ssc(self): tiles = ["36JTT", "21MXT"] dates = ["20160914T120000", "20180925T120000"] levels = ["l2a", "l1c"] validity = [True, True] for prod, tile, date, level, valid in zip(self.prod_s2_ssc, tiles, dates, levels, validity): p = MajaProduct.factory(prod) self.assertIsInstance(p, Sentinel2SSC) self.assertEqual(p.level, level) self.assertEqual(p.platform, "sentinel2") self.assertEqual(p.type, "natif") self.assertEqual(p.tile, tile) self.assertEqual(p.date.strftime("%Y%m%dT%H%M%S"), date) self.assertEqual(os.path.basename(p.metadata_file), prod.split(".")[0] + ".HDR") self.assertTrue(os.path.exists(p.metadata_file)) self.assertEqual(p.validity, valid) link_dir = "linkdir" FileSystem.create_directory(link_dir) p.link(link_dir) self.assertTrue(os.path.islink(os.path.join(link_dir, p.base))) self.assertEqual(p.mnt_resolutions_dict, [{ "name": "R1", "val": "10 -10" }, { "name": "R2", "val": "20 -20" }]) self.assertEqual(p, p) FileSystem.remove_directory(link_dir) # Other prods: for prod in self.prod_s2_prd + self.prod_s2_nat + self.prod_s2_mus: p = MajaProduct.factory(prod) self.assertNotIsInstance(p, Sentinel2SSC)
def test_eq(self): product = MajaProduct.factory(self.root) self.assertEqual(product, product)