-
Notifications
You must be signed in to change notification settings - Fork 126
Closed
Description
when writing db but href generated with APILayoutStrategyand error is issued, seems because try to update connection.json but looking it with the same name of created folder that contain collection.json.
Note, collection.json is not (yet) present in the folder
anything else I can add to facilitare replication? a to_dict() of the catalog?
here the stack trace
...hide.../aerofototeca/stac_generator/stac_generator.py:446 in stac_generator │
│ │
│ 443 │ ) │
│ 444 │ │
│ 445 │ # save the catalog │
│ ❱ 446 │ catalog.save(catalog_type=pystac.CatalogType.SELF_CONTAINED) │
│ 447 │ │
│ 448 │ # validate the catalog │
│ 449 │ pystac.validation.validate_all(catalog) │
│ │
│ ╭───────────────────────────────────────────────────────── locals ──────────────────────────────────────────────────────────╮ │
│ │ basename = '6023-Lvl02-Color.tif' │ │
│ │ bbox = [302787.0311584755, 4652173.35055104, 303571.45467431337, 4653296.350993636] │ │
│ │ catalog = <Catalog id=aerofototeca_roma> │ │
│ │ collection = <Collection id=fotoindici> │ │
│ │ collections = { │ │
│ │ │ '6020': [ │ │
│ │ │ │ '...hide.../temp/6020-Lvl02-Oblique-Backward.ti'+1, │ │
│ │ │ │ '...hide.../temp/6020-Lvl02-Color.tif', │ │
│ │ │ │ '...hide.../temp/6020-Lvl02-Oblique-Left.tif', │ │
│ │ │ │ '...hide.../temp/6020-Lvl02-Oblique-Right.tif', │ │
│ │ │ │ '...hide.../temp/6020-Lvl02-Oblique-Forward.tif' │ │
│ │ │ ], │ │
│ │ │ '6019': [ │ │
│ │ │ │ '...hide.../temp/6019-Lvl02-Oblique-Right.tif', │ │
│ │ │ │ '...hide.../temp/6019-Lvl02-Oblique-Backward.ti'+1, │ │
│ │ │ │ '...hide.../temp/6019-Lvl02-Oblique-Left.tif', │ │
│ │ │ │ '...hide.../temp/6019-Lvl02-Color.tif', │ │
│ │ │ │ '...hide.../temp/6019-Lvl02-Oblique-Forward.tif' │ │
│ │ │ ], │ │
│ │ │ '6021': [ │ │
│ │ │ │ '...hide.../temp/6021-Lvl02-Oblique-Forward.tif', │ │
│ │ │ │ '...hide.../temp/6021-Lvl02-Color.tif', │ │
│ │ │ │ '...hide.../temp/6021-Lvl02-Oblique-Backward.ti'+1, │ │
│ │ │ │ '...hide.../temp/6021-Lvl02-Oblique-Right.tif', │ │
│ │ │ │ '...hide.../temp/6021-Lvl02-Oblique-Left.tif' │ │
│ │ │ ], │ │
│ │ │ '6023': [ │ │
│ │ │ │ '...hide.../temp/6023-Lvl02-Oblique-Forward.tif', │ │
│ │ │ │ '...hide.../temp/6023-Lvl02-Oblique-Left.tif', │ │
│ │ │ │ '...hide.../temp/6023-Lvl02-Oblique-Backward.ti'+1, │ │
│ │ │ │ '...hide.../temp/6023-Lvl02-Oblique-Right.tif', │ │
│ │ │ │ '...hide.../temp/6023-Lvl02-Color.tif' │ │
│ │ │ ], │ │
│ │ │ '6018': [ │ │
│ │ │ │ '...hide.../temp/6018-Lvl02-Oblique-Backward.ti'+1, │ │
│ │ │ │ '...hide.../temp/6018-Lvl02-Color.tif', │ │
│ │ │ │ '...hide.../temp/6018-Lvl02-Oblique-Forward.tif', │ │
│ │ │ │ '...hide.../temp/6018-Lvl02-Oblique-Right.tif', │ │
│ │ │ │ '...hide.../temp/6018-Lvl02-Oblique-Left.tif' │ │
│ │ │ ], │ │
│ │ │ '6022': [ │ │
│ │ │ │ '...hide.../temp/6022-Lvl02-Oblique-Backward.ti'+1, │ │
│ │ │ │ '...hide.../temp/6022-Lvl02-Oblique-Forward.tif', │ │
│ │ │ │ '...hide.../temp/6022-Lvl02-Oblique-Right.tif', │ │
│ │ │ │ '...hide.../temp/6022-Lvl02-Oblique-Left.tif', │ │
│ │ │ │ '...hide.../temp/6022-Lvl02-Color.tif' │ │
│ │ │ ] │ │
│ │ } │ │
│ │ creation_date = datetime.datetime(2022, 10, 15, 9, 17, 40) │ │
│ │ crs = CRS.from_wkt('PROJCS["WGS 84 / UTM zone 33N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS │ │
│ │ 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUT… │ │
│ │ dirs = [] │ │
│ │ f = <_io.TextIOWrapper name='...hide.../temp/hash.log' mode='r' │ │
│ │ encoding='UTF-8'> │ │
│ │ files = [ │ │
│ │ │ '6020-Lvl02-Oblique-Backward.tif', │ │
│ │ │ 'hash.log', │ │
│ │ │ '6020-Lvl02-Color.tif', │ │
│ │ │ '6019-Lvl02-Oblique-Right.tif', │ │
│ │ │ '6021-Lvl02-Oblique-Forward.tif', │ │
│ │ │ '6023-Lvl02-Oblique-Forward.tif', │ │
│ │ │ '6018-Lvl02-Oblique-Backward.tif', │ │
│ │ │ '6022-Lvl02-Oblique-Backward.tif', │ │
│ │ │ '6022-Lvl02-Oblique-Forward.tif', │ │
│ │ │ '6018-Lvl02-Color.tif', │ │
│ │ │ ... +21 │ │
│ │ ] │ │
│ │ fn = '../temp/6023-Lvl02-Color.tif' │ │
│ │ footprint = { │ │
│ │ │ 'type': 'Polygon', │ │
│ │ │ 'coordinates': ( │ │
│ │ │ │ ( │ │
│ │ │ │ │ (302787.0311584755, 4652173.35055104), │ │
│ │ │ │ │ (302787.0311584755, 4653296.350993636), │ │
│ │ │ │ │ (303571.45467431337, 4653296.350993636), │ │
│ │ │ │ │ (303571.45467431337, 4652173.35055104), │ │
│ │ │ │ │ (302787.0311584755, 4652173.35055104) │ │
│ │ │ │ ), │ │
│ │ │ ) │ │
│ │ } │ │
│ │ hash = '4591a3d890f57eb9ddeb1483d1266c9fae9966b7e6c9455a9ec3cb48b985bf43' │ │
│ │ hashes = { │ │
│ │ │ '6019-Lvl02-Oblique-Right.tif': '52c1ca814f2ea2feb357ecb1ed808f655c5984aba6410824ce8aace4898b7218', │ │
│ │ │ '6020-Lvl02-Oblique-Backward.tif': │ │
│ │ 'd89590ba33941ed4665c880afa3f879f6d818a7bda6f349793b74151507351b9', │ │
│ │ │ '6022-Lvl02-Oblique-Backward.tif': │ │
│ │ '3d02719901ed14f1e43c37e0775a0bc0d427fb9eaa9de176db23fb1bd6bdf9e7', │ │
│ │ │ '6023-Lvl02-Oblique-Forward.tif': │ │
│ │ 'e3f77bbd8a79c0a4299431024afbed238733e21295e20f472cfc07776188bf5e', │ │
│ │ │ '6021-Lvl02-Oblique-Forward.tif': │ │
│ │ '8801cf489a6712d4f8e8efba0e1b2d0b7e1606b30d976308e65a30ae38344484', │ │
│ │ │ '6022-Lvl02-Oblique-Forward.tif': │ │
│ │ 'faa804078a10b9df710ea46cfb806f2a5aa2ef500d04109be072201a869e4132', │ │
│ │ │ '6018-Lvl02-Oblique-Backward.tif': │ │
│ │ '54dbdc3ea776d113942e2be3342adb4c4efa756cfff330028d4a4da8be790ba7', │ │
│ │ │ '6019-Lvl02-Oblique-Backward.tif': │ │
│ │ 'b2ab4f1ec320546f396ed5e949846bdac70cf772aa50603a99a155121d4e3ab9', │ │
│ │ │ '6020-Lvl02-Color.tif': '8937add3c5d795a41d846eb5a75fecc6a2208994b88cdddbfb642e742c9235f4', │ │
│ │ │ '6018-Lvl02-Oblique-Forward.tif': │ │
│ │ 'd8029a176c2f4a630a70636cce04cf32a86d65698d393efbc5abd92ab99c2e9f', │ │
│ │ │ ... +20 │ │
│ │ } │ │
│ │ hashes_path = PosixPath('...hide.../temp/hash.log') │ │
│ │ id = '6022' │ │
│ │ input_path = PosixPath('...hide.../temp') │ │
│ │ item = <Item id=6022-lvl02-color> │ │
│ │ item_collection = <Collection id=6022> │ │
│ │ item_id = '6022-Lvl02-Color' │ │
│ │ line = '../temp/6023-Lvl02-Color.tif: 1119e0579be3eaaa5704faf1d592d792fe72e71105a6e91328'+15 │ │
│ │ log = PosixPath('...hide.../aerofototeca/stac_generator/stac_generator.log') │ │
│ │ log_level = 20 │ │
│ │ logger = <Logger stac_generator (INFO)> │ │
│ │ matches = <re.Match object; span=(0, 20), match='6022-Lvl02-Color.tif'> │ │
│ │ multihash_hash = '12204591a3d890f57eb9ddeb1483d1266c9fae9966b7e6c9455a9ec3cb48b985bf43' │ │
│ │ root = '...hide.../temp' │ │
│ │ tags = { │ │
│ │ │ 'ExifIFD:ExifVersion': '0232', │ │
│ │ │ 'ExifIFD:DateTimeOriginal': '2022-10-15T09:17:40', │ │
│ │ │ 'ExifIFD:OffsetTimeOriginal': '+02:00', │ │
│ │ │ 'ExifIFD:ComponentsConfiguration': 'Y, Cb, Cr, -', │ │
│ │ │ 'ExifIFD:FlashpixVersion': '0100', │ │
│ │ │ 'ExifIFD:ColorSpace': 'Uncalibrated', │ │
│ │ │ 'ExifIFD:ImageUniqueID': '6022-Lvl02-Color', │ │
│ │ │ 'ExifIFD:OwnerName': 'Roma Capitale', │ │
│ │ │ 'System:FileName': '6022-Lvl02-Color.tif', │ │
│ │ │ 'System:Directory': '...hide.../temp', │ │
│ │ │ ... +61 │ │
│ │ } │ │
│ │ target = '...hide.../temp/6022-Lvl02-Color.tif' │ │
│ │ targets = [ │ │
│ │ │ '...hide.../temp/6022-Lvl02-Oblique-Backward.ti'+1, │ │
│ │ │ '...hide.../temp/6022-Lvl02-Oblique-Forward.tif', │ │
│ │ │ '...hide.../temp/6022-Lvl02-Oblique-Right.tif', │ │
│ │ │ '...hide.../temp/6022-Lvl02-Oblique-Left.tif', │ │
│ │ │ '...hide.../temp/6022-Lvl02-Color.tif' │ │
│ │ ] │ │
│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ ...hide.../aerofototeca/stac_generator/.pixi/envs/default/lib/python3.12/site-packages/pystac/c │
│ atalog.py:975 in save │
│ │
│ 972 │ │ │ │ │ │ stac_io=stac_io, │
│ 973 │ │ │ │ │ ) │
│ 974 │ │ │ │ else: │
│ ❱ 975 │ │ │ │ │ child.save(stac_io=stac_io) │
│ 976 │ │ │
│ 977 │ │ for item_link in self.get_item_links(): │
│ 978 │ │ │ if item_link.is_resolved(): │
│ │
│ ╭─────────────────────────────────── locals ───────────────────────────────────╮ │
│ │ catalog_type = SELF_CONTAINED │ │
│ │ child = <Collection id=fotoindici> │ │
│ │ child_link = <Link rel=child target=<Collection id=fotoindici>> │ │
│ │ dest_href = None │ │
│ │ items_include_self_link = False │ │
│ │ root = <Catalog id=aerofototeca_roma> │ │
│ │ self = <Catalog id=aerofototeca_roma> │ │
│ │ stac_io = None │ │
│ ╰──────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ ...hide.../aerofototeca/stac_generator/.pixi/envs/default/lib/python3.12/site-packages/pystac/c │
│ atalog.py:975 in save │
│ │
│ 972 │ │ │ │ │ │ stac_io=stac_io, │
│ 973 │ │ │ │ │ ) │
│ 974 │ │ │ │ else: │
│ ❱ 975 │ │ │ │ │ child.save(stac_io=stac_io) │
│ 976 │ │ │
│ 977 │ │ for item_link in self.get_item_links(): │
│ 978 │ │ │ if item_link.is_resolved(): │
│ │
│ ╭──────────────────────────────── locals ────────────────────────────────╮ │
│ │ catalog_type = None │ │
│ │ child = <Collection id=6020> │ │
│ │ child_link = <Link rel=child target=<Collection id=6020>> │ │
│ │ dest_href = None │ │
│ │ items_include_self_link = False │ │
│ │ root = <Catalog id=aerofototeca_roma> │ │
│ │ self = <Collection id=fotoindici> │ │
│ │ stac_io = None │ │
│ ╰────────────────────────────────────────────────────────────────────────╯ │
│ │
│ ...hide.../aerofototeca/stac_generator/.pixi/envs/default/lib/python3.12/site-packages/pystac/c │
│ atalog.py:1011 in save │
│ │
│ 1008 │ │ │ catalog_dest_href = make_absolute_href( │
│ 1009 │ │ │ │ rel_href, dest_href, start_is_dir=True │
│ 1010 │ │ │ ) │
│ ❱ 1011 │ │ self.save_object( │
│ 1012 │ │ │ include_self_link=include_self_link, │
│ 1013 │ │ │ dest_href=catalog_dest_href, │
│ 1014 │ │ │ stac_io=stac_io, │
│ │
│ ╭─────────────────────────────────────── locals ────────────────────────────────────────╮ │
│ │ catalog_dest_href = None │ │
│ │ catalog_type = None │ │
│ │ dest_href = None │ │
│ │ include_self_link = False │ │
│ │ item = <Item id=6020-lvl02-oblique-forward> │ │
│ │ item_link = <Link rel=item target=<Item id=6020-lvl02-oblique-forward>> │ │
│ │ items_include_self_link = False │ │
│ │ root = <Catalog id=aerofototeca_roma> │ │
│ │ self = <Collection id=6020> │ │
│ │ stac_io = None │ │
│ ╰───────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ ...hide.../aerofototeca/stac_generator/.pixi/envs/default/lib/python3.12/site-packages/pystac/s │
│ tac_object.py:476 in save_object │
│ │
│ 473 │ │ │ │ ) │
│ 474 │ │ │ dest_href = self_href │
│ 475 │ │ │
│ ❱ 476 │ │ stac_io.save_json(dest_href, self.to_dict(include_self_link=include_self_link)) │
│ 477 │ │
│ 478 │ def full_copy( │
│ 479 │ │ self, │
│ │
│ ╭───────────────────────────────────────────────── locals ──────────────────────────────────────────────────╮ │
│ │ dest_href = '...hide.../aerofototeca/stac_generator/stac_catalo'+54 │ │
│ │ include_self_link = False │ │
│ │ root = <Catalog id=aerofototeca_roma> │ │
│ │ root_stac_io = None │ │
│ │ self = <Collection id=6020> │ │
│ │ self_href = '...hide.../aerofototeca/stac_generator/stac_catalo'+54 │ │
│ │ stac_io = <pystac.stac_io.DefaultStacIO object at 0x708e9976edb0> │ │
│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ ...hide.../aerofototeca/stac_generator/.pixi/envs/default/lib/python3.12/site-packages/pystac/s │
│ tac_io.py:261 in save_json │
│ │
│ 258 │ │ │ │ :meth:`StacIO.json_dumps`. │
│ 259 │ │ """ │
│ 260 │ │ txt = self.json_dumps(json_dict, *args, **kwargs) │
│ ❱ 261 │ │ self.write_text(dest, txt) │
│ 262 │ │
│ 263 │ @classmethod │
│ 264 │ def set_default(cls, stac_io_class: Callable[[], StacIO]) -> None: │
│ │
│ ╭───────────────────────────────────────────────────────── locals ──────────────────────────────────────────────────────────╮ │
│ │ args = () │ │
│ │ dest = '...hide.../aerofototeca/stac_generator/stac_catalo'+54 │ │
│ │ json_dict = { │ │
│ │ │ 'type': 'Collection', │ │
│ │ │ 'id': '6020', │ │
│ │ │ 'stac_version': '1.0.0', │ │
│ │ │ 'description': 'Collection of fotoindexes n.6020', │ │
│ │ │ 'links': [ │ │
│ │ │ │ {'rel': 'root', 'href': '../../..', 'type': 'application/json', 'title': 'Arofototeca of Roma'}, │ │
│ │ │ │ {'rel': 'item', 'href': './6020/items/6020-lvl02-oblique-backward', 'type': 'application/json'}, │ │
│ │ │ │ {'rel': 'item', 'href': './6020/items/6020-lvl02-color', 'type': 'application/json'}, │ │
│ │ │ │ {'rel': 'item', 'href': './6020/items/6020-lvl02-oblique-left', 'type': 'application/json'}, │ │
│ │ │ │ {'rel': 'item', 'href': './6020/items/6020-lvl02-oblique-right', 'type': 'application/json'}, │ │
│ │ │ │ {'rel': 'item', 'href': './6020/items/6020-lvl02-oblique-forward', 'type': 'application/json'}, │ │
│ │ │ │ { │ │
│ │ │ │ │ 'rel': 'parent', │ │
│ │ │ │ │ 'href': './..', │ │
│ │ │ │ │ 'type': 'application/json', │ │
│ │ │ │ │ 'title': 'Drone flight images of Roma' │ │
│ │ │ │ } │ │
│ │ │ ], │ │
│ │ │ 'stac_extensions': ['https://stac-extensions.github.io/version/v1.2.0/schema.json'], │ │
│ │ │ 'version': '1.0.0', │ │
│ │ │ 'deprecated': False, │ │
│ │ │ 'experimental': False, │ │
│ │ │ 'title': 'Drone flight images of Roma with fotoindice n.6020', │ │
│ │ │ ... +4 │ │
│ │ } │ │
│ │ kwargs = {} │ │
│ │ self = <pystac.stac_io.DefaultStacIO object at 0x708e9976edb0> │ │
│ │ txt = '{\n "type": "Collection",\n "id": "6020",\n "stac_version": "1.0.0",\n "descript'+2073 │ │
│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ ...hide.../aerofototeca/stac_generator/.pixi/envs/default/lib/python3.12/site-packages/pystac/s │
│ tac_io.py:316 in write_text │
│ │
│ 313 │ │ is not already) and delegates to :meth:`DefaultStacIO.write_text_from_href` for │
│ 314 │ │ opening and reading the file.""" │
│ 315 │ │ href = str(os.fspath(dest)) │
│ ❱ 316 │ │ return self.write_text_to_href(href, txt) │
│ 317 │ │
│ 318 │ def write_text_to_href(self, href: str, txt: str) -> None: │
│ 319 │ │ """Writes text to file using UTF-8 encoding. │
│ │
│ ╭────────────────────────────────────────────── locals ──────────────────────────────────────────────╮ │
│ │ _ = () │ │
│ │ dest = '...hide.../aerofototeca/stac_generator/stac_catalo'+54 │ │
│ │ href = '...hide.../aerofototeca/stac_generator/stac_catalo'+54 │ │
│ │ self = <pystac.stac_io.DefaultStacIO object at 0x708e9976edb0> │ │
│ │ txt = '{\n "type": "Collection",\n "id": "6020",\n "stac_version": "1.0.0",\n "descript'+2073 │ │
│ ╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ ...hide.../aerofototeca/stac_generator/.pixi/envs/default/lib/python3.12/site-packages/pystac/s │
│ tac_io.py:335 in write_text_to_href │
│ │
│ 332 │ │ dirname = os.path.dirname(href) │
│ 333 │ │ if dirname != "" and not os.path.isdir(dirname): │
│ 334 │ │ │ os.makedirs(dirname) │
│ ❱ 335 │ │ with open(href, "w", encoding="utf-8") as f: │
│ 336 │ │ │ f.write(txt) │
│ 337 │
│ 338 │
│ │
│ ╭─────────────────────────────────────────────── locals ────────────────────────────────────────────────╮ │
│ │ dirname = '...hide.../aerofototeca/stac_generator/stac_catalo'+49 │ │
│ │ href = '...hide.../aerofototeca/stac_generator/stac_catalo'+54 │ │
│ │ self = <pystac.stac_io.DefaultStacIO object at 0x708e9976edb0> │ │
│ │ txt = '{\n "type": "Collection",\n "id": "6020",\n "stac_version": "1.0.0",\n "descript'+2073 │ │
│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
IsADirectoryError: [Errno 21] Is a directory:
gadomski
Metadata
Metadata
Assignees
Labels
bugThings which are brokenThings which are broken