def test_full_copy_2(self): with TemporaryDirectory() as tmp_dir: cat = Catalog(id='test', description='test catalog') image_item = Item(id='Imagery', geometry=RANDOM_GEOM, bbox=RANDOM_BBOX, datetime=datetime.utcnow(), properties={}) for key in ['ortho', 'dsm']: image_item.add_asset( key, Asset(href='some/{}.tif'.format(key), media_type=MediaType.GEOTIFF)) label_item = LabelItem( id='Labels', geometry=RANDOM_GEOM, bbox=RANDOM_BBOX, datetime=datetime.utcnow(), properties={}, label_description='labels', label_type='vector', label_properties='label', label_classes=[LabelClasses(classes=['one', 'two'], name='label')], label_tasks=['classification']) label_item.add_source(image_item, assets=['ortho']) cat.add_items([image_item, label_item]) cat.normalize_hrefs(os.path.join(tmp_dir, 'catalog-full-copy-2-source')) cat.save(catalog_type=CatalogType.ABSOLUTE_PUBLISHED) cat2 = cat.full_copy() cat2.normalize_hrefs(os.path.join(tmp_dir, 'catalog-full-copy-2-dest')) cat2.save(catalog_type=CatalogType.ABSOLUTE_PUBLISHED) self.check_catalog(cat, 'source') self.check_catalog(cat2, 'dest')
def copy_catalog(source_catalog: Catalog, dest_directory: str, catalog_type: Optional[CatalogType] = None, copy_assets: bool = False, publish_location: Optional[str] = None) -> None: catalog = source_catalog.full_copy() dest_directory = make_absolute_href(dest_directory) if copy_assets: catalog = move_all_assets(catalog, copy=True, make_hrefs_relative=True) if publish_location is not None: catalog.normalize_hrefs(publish_location) catalog.save(catalog_type, dest_directory) else: catalog.normalize_hrefs(dest_directory) catalog.save(catalog_type)
def test_full_copy_1(self): with TemporaryDirectory() as tmp_dir: cat = Catalog(id='test', description='test catalog') item = Item(id='test_item', geometry=RANDOM_GEOM, bbox=RANDOM_BBOX, datetime=datetime.utcnow(), properties={}) cat.add_item(item) cat.normalize_hrefs(os.path.join(tmp_dir, 'catalog-full-copy-1-source')) cat2 = cat.full_copy() cat2.normalize_hrefs(os.path.join(tmp_dir, 'catalog-full-copy-1-dest')) self.check_catalog(cat, 'source') self.check_catalog(cat2, 'dest')