def test_fetch_ordering_missing_summaries( playground_tree_summary_missing_summaries): root, paths = playground_tree_summary_missing_summaries dataset = PlaygroundDataset(root, use_taxonomy=False) with pytest.raises( FileNotFoundError, match='Invalid dataset: No file summaries could be found'): _ = dataset[0] dataset = PlaygroundDataset(root, use_taxonomy=False, tile_driver=TileDriver(fetch_ordering=False)) assert isinstance(dataset[0].tiles.iloc[0], Tile)
def test_fetch_ordering_missing_zone(playground_tree_summary_missing_zone): root, paths = playground_tree_summary_missing_zone dataset = PlaygroundDataset(root, use_taxonomy=False) with pytest.raises( ValueError, match='Invalid dataset: Some zones or datasets seem to be ' 'missing from the summaries'): _ = dataset[1] dataset = PlaygroundDataset(root, use_taxonomy=False, tile_driver=TileDriver(fetch_ordering=False)) assert isinstance(dataset[1].tiles.iloc[0], Tile)
def test_select_exclude_composition(playground_tree): root, paths = playground_tree dataset = PlaygroundDataset( root, use_taxonomy=False, exclude_datasets=('1af6c4c5-278d-40ae-9e32-dc8192f8402a', ), select_zones=('fa719db8-31e9-49d1-9344-d4608ef6417e', ), exclude_images=('f9525e3bfbd081cd545261b3b5414eb88f689005', )) assert len(dataset) == 1 assert dataset._group_index[0] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'fa719db8-31e9-49d1-9344-d4608ef6417e', '7c47df1097b349278c052e93e1d1903a') assert len(dataset[0].tiles) == 1
def test_base(playground_tree, reference_image): root, paths = playground_tree dataset = PlaygroundDataset(root, use_taxonomy=False) assert len(dataset) == 5 assert dataset._group_index[0] == ('1af6c4c5-278d-40ae-9e32-dc8192f8402a', '2411dbb6-e7bf-41fd-8898-83325a9c6e5a', '4a8a08f09d37b73795649038408b5f33') assert dataset._group_index[1] == ('1af6c4c5-278d-40ae-9e32-dc8192f8402a', 'c3e8b68b-f862-41bd-848c-6e2df28e4dd8', '92eb5ffee6ae2fec3ad71c777531578b') assert dataset._group_index[2] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'b4d9ffe3-ab2d-4f18-b1c5-b4c3d9b2f6f7', '0cc175b9c0f1b6a831c399e269772661') assert dataset._group_index[3] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'b4d9ffe3-ab2d-4f18-b1c5-b4c3d9b2f6f7', '453e41d218e071ccfb2d1c99ce23906a') assert dataset._group_index[4] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'fa719db8-31e9-49d1-9344-d4608ef6417e', '7c47df1097b349278c052e93e1d1903a') assert len(dataset[0].tiles) == 2 assert len(dataset[1].tiles) == 1 assert len(dataset[2].tiles) == 1 assert len(dataset[3].tiles) == 1 assert len(dataset[4].tiles) == 2 assert np.array_equal(reference_image, dataset[0].tiles.iloc[0]) # Test ordering assert tuple(tile.image_id for tile in dataset[0].tiles.values()) == ( "4e15b4a3-ee52-4382-b8a8-7d492fb1a6ed", "5562b632-72c3-4c21-b24e-e0536d8b20c8") assert tuple(tile.image_id for tile in dataset[4].tiles.values()) == ( "f9525e3bfbd081cd545261b3b5414eb88f689005", "75ad128196254e711ef7c9b129d1c59153098b18") assert len(dataset[0].annotation.record_collection) == 1 assert dataset[0].annotation.record_collection[0].labels == ('tag', 'class') assert dataset[0].annotation.record_collection[ 0].dataset_id == 'f16fff43-2535-4e34-afec-6404dcdcd545' assert dataset[0].annotation.record_collection[ 0].zone_id == '10187fa3-30df-4eb4-a1e9-6b1dcdc79951' assert dataset[0].annotation.record_collection[ 0].id == '6e73eff2-06f3-11ea-976a-b2cdca212bc0' assert dataset[0].annotation.mask_collection['zone_footprint'].coordinates \ == [[[0, 0], [0, 256], [256, 256], [256, 0], [0, 0]]]
def test_taxonomy_conflict_warn(playground_tree_conflict): root, paths = playground_tree_conflict with pytest.warns(UserWarning, match='Some datasets have mismatching taxonomies'): _ = PlaygroundDataset(root, use_taxonomy=False)
def test_taxonomy_conflict_raise(playground_tree_conflict): root, paths = playground_tree_conflict with pytest.raises(ValueError, match='Some datasets have mismatching taxonomies'): _ = PlaygroundDataset(root, use_taxonomy=True)
def test_pass_taxonomy(playground_tree): root, paths = playground_tree dataset = PlaygroundDataset(root, use_taxonomy=True) with pytest.raises(ValueError): _ = dataset[0]
def test_select_exclude(playground_tree): # noqa: R701 root, paths = playground_tree # Dataset: # +-> Select: dataset = PlaygroundDataset( root, use_taxonomy=False, select_datasets=('63d0da07-0a4b-4ffd-844f-af75c02288e0', )) assert len(dataset) == 3 assert dataset._group_index[0] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'b4d9ffe3-ab2d-4f18-b1c5-b4c3d9b2f6f7', '0cc175b9c0f1b6a831c399e269772661') assert dataset._group_index[1] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'b4d9ffe3-ab2d-4f18-b1c5-b4c3d9b2f6f7', '453e41d218e071ccfb2d1c99ce23906a') assert dataset._group_index[2] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'fa719db8-31e9-49d1-9344-d4608ef6417e', '7c47df1097b349278c052e93e1d1903a') # +-> Exclude: dataset = PlaygroundDataset( root, use_taxonomy=False, exclude_datasets=('1af6c4c5-278d-40ae-9e32-dc8192f8402a', )) assert len(dataset) == 3 assert dataset._group_index[0] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'b4d9ffe3-ab2d-4f18-b1c5-b4c3d9b2f6f7', '0cc175b9c0f1b6a831c399e269772661') assert dataset._group_index[1] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'b4d9ffe3-ab2d-4f18-b1c5-b4c3d9b2f6f7', '453e41d218e071ccfb2d1c99ce23906a') assert dataset._group_index[2] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'fa719db8-31e9-49d1-9344-d4608ef6417e', '7c47df1097b349278c052e93e1d1903a') # +-> Both: with pytest.raises( ValueError, match= 'Invalid dataset: No matches where found between tiles and annotation' ): _ = PlaygroundDataset( root, use_taxonomy=False, select_datasets=('63d0da07-0a4b-4ffd-844f-af75c02288e0', ), exclude_datasets=('63d0da07-0a4b-4ffd-844f-af75c02288e0', )) # Zone: # +-> Select: dataset = PlaygroundDataset( root, use_taxonomy=False, select_zones=('b4d9ffe3-ab2d-4f18-b1c5-b4c3d9b2f6f7', 'c3e8b68b-f862-41bd-848c-6e2df28e4dd8')) assert len(dataset) == 3 assert dataset._group_index[0] == ('1af6c4c5-278d-40ae-9e32-dc8192f8402a', 'c3e8b68b-f862-41bd-848c-6e2df28e4dd8', '92eb5ffee6ae2fec3ad71c777531578b') assert dataset._group_index[1] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'b4d9ffe3-ab2d-4f18-b1c5-b4c3d9b2f6f7', '0cc175b9c0f1b6a831c399e269772661') assert dataset._group_index[2] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'b4d9ffe3-ab2d-4f18-b1c5-b4c3d9b2f6f7', '453e41d218e071ccfb2d1c99ce23906a') # +-> Exclude: dataset = PlaygroundDataset( root, use_taxonomy=False, exclude_zones=('b4d9ffe3-ab2d-4f18-b1c5-b4c3d9b2f6f7', 'c3e8b68b-f862-41bd-848c-6e2df28e4dd8')) assert len(dataset) == 2 assert dataset._group_index[0] == ('1af6c4c5-278d-40ae-9e32-dc8192f8402a', '2411dbb6-e7bf-41fd-8898-83325a9c6e5a', '4a8a08f09d37b73795649038408b5f33') assert dataset._group_index[1] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'fa719db8-31e9-49d1-9344-d4608ef6417e', '7c47df1097b349278c052e93e1d1903a') # +-> Both: dataset = PlaygroundDataset( root, use_taxonomy=False, select_zones=('b4d9ffe3-ab2d-4f18-b1c5-b4c3d9b2f6f7', 'c3e8b68b-f862-41bd-848c-6e2df28e4dd8'), exclude_zones=('c3e8b68b-f862-41bd-848c-6e2df28e4dd8', )) assert len(dataset) == 2 assert dataset._group_index[0] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'b4d9ffe3-ab2d-4f18-b1c5-b4c3d9b2f6f7', '0cc175b9c0f1b6a831c399e269772661') assert dataset._group_index[1] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'b4d9ffe3-ab2d-4f18-b1c5-b4c3d9b2f6f7', '453e41d218e071ccfb2d1c99ce23906a') # Image: # +-> Select: dataset = PlaygroundDataset( root, use_taxonomy=False, select_images=( 'S2B_MSIL1C_20200212T025609_N0209_R003_T47DMH_20200212T054548', 'f9525e3bfbd081cd545261b3b5414eb88f689005')) assert len(dataset) == 2 assert dataset._group_index[0] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'b4d9ffe3-ab2d-4f18-b1c5-b4c3d9b2f6f7', '453e41d218e071ccfb2d1c99ce23906a') assert dataset._group_index[1] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'fa719db8-31e9-49d1-9344-d4608ef6417e', '7c47df1097b349278c052e93e1d1903a') assert len(dataset[0].tiles) == 1 assert len(dataset[1].tiles) == 1 # +-> Exclude: dataset = PlaygroundDataset( root, use_taxonomy=False, exclude_images=( 'S2B_MSIL1C_20200212T025609_N0209_R003_T47DMH_20200212T054548', 'f9525e3bfbd081cd545261b3b5414eb88f689005')) assert len(dataset) == 4 assert dataset._group_index[0] == ('1af6c4c5-278d-40ae-9e32-dc8192f8402a', '2411dbb6-e7bf-41fd-8898-83325a9c6e5a', '4a8a08f09d37b73795649038408b5f33') assert dataset._group_index[1] == ('1af6c4c5-278d-40ae-9e32-dc8192f8402a', 'c3e8b68b-f862-41bd-848c-6e2df28e4dd8', '92eb5ffee6ae2fec3ad71c777531578b') assert dataset._group_index[2] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'b4d9ffe3-ab2d-4f18-b1c5-b4c3d9b2f6f7', '0cc175b9c0f1b6a831c399e269772661') assert dataset._group_index[3] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'fa719db8-31e9-49d1-9344-d4608ef6417e', '7c47df1097b349278c052e93e1d1903a') assert len(dataset[0].tiles) == 2 assert len(dataset[1].tiles) == 1 assert len(dataset[2].tiles) == 1 assert len(dataset[3].tiles) == 1 # +-> Both: dataset = PlaygroundDataset( root, use_taxonomy=False, select_images=( 'S2B_MSIL1C_20200212T025609_N0209_R003_T47DMH_20200212T054548', 'f9525e3bfbd081cd545261b3b5414eb88f689005', '75ad128196254e711ef7c9b129d1c59153098b18'), exclude_images=( 'S2B_MSIL1C_20200212T025609_N0209_R003_T47DMH_20200212T054548', '75ad128196254e711ef7c9b129d1c59153098b18', )) assert len(dataset) == 1 assert dataset._group_index[0] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'fa719db8-31e9-49d1-9344-d4608ef6417e', '7c47df1097b349278c052e93e1d1903a') assert len(dataset[0].tiles) == 1 # Tile: # +-> Select: dataset = PlaygroundDataset( root, use_taxonomy=False, select_tiles=('4a8a08f09d37b73795649038408b5f33', '0cc175b9c0f1b6a831c399e269772661', '7c47df1097b349278c052e93e1d1903a')) assert len(dataset) == 3 assert dataset._group_index[0] == ('1af6c4c5-278d-40ae-9e32-dc8192f8402a', '2411dbb6-e7bf-41fd-8898-83325a9c6e5a', '4a8a08f09d37b73795649038408b5f33') assert dataset._group_index[1] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'b4d9ffe3-ab2d-4f18-b1c5-b4c3d9b2f6f7', '0cc175b9c0f1b6a831c399e269772661') assert dataset._group_index[2] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'fa719db8-31e9-49d1-9344-d4608ef6417e', '7c47df1097b349278c052e93e1d1903a') # +-> Exclude: dataset = PlaygroundDataset( root, use_taxonomy=False, exclude_tiles=('92eb5ffee6ae2fec3ad71c777531578b', )) assert len(dataset) == 4 assert dataset._group_index[0] == ('1af6c4c5-278d-40ae-9e32-dc8192f8402a', '2411dbb6-e7bf-41fd-8898-83325a9c6e5a', '4a8a08f09d37b73795649038408b5f33') assert dataset._group_index[1] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'b4d9ffe3-ab2d-4f18-b1c5-b4c3d9b2f6f7', '0cc175b9c0f1b6a831c399e269772661') assert dataset._group_index[2] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'b4d9ffe3-ab2d-4f18-b1c5-b4c3d9b2f6f7', '453e41d218e071ccfb2d1c99ce23906a') assert dataset._group_index[3] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'fa719db8-31e9-49d1-9344-d4608ef6417e', '7c47df1097b349278c052e93e1d1903a') # +-> Both: dataset = PlaygroundDataset( root, use_taxonomy=False, select_tiles=('4a8a08f09d37b73795649038408b5f33', '0cc175b9c0f1b6a831c399e269772661', '7c47df1097b349278c052e93e1d1903a'), exclude_tiles=('7c47df1097b349278c052e93e1d1903a', )) assert len(dataset) == 2 assert dataset._group_index[0] == ('1af6c4c5-278d-40ae-9e32-dc8192f8402a', '2411dbb6-e7bf-41fd-8898-83325a9c6e5a', '4a8a08f09d37b73795649038408b5f33') assert dataset._group_index[1] == ('63d0da07-0a4b-4ffd-844f-af75c02288e0', 'b4d9ffe3-ab2d-4f18-b1c5-b4c3d9b2f6f7', '0cc175b9c0f1b6a831c399e269772661')