Spaces:
Running
Running
Paul-Edouard Sarlin
commited on
Bugfixes when preparing the Mapillary dataset (#29)
Browse files* Bugfix in inline loop order
* Don't save empty image infos
* Catch errors in API calls
maploc/data/mapillary/download.py
CHANGED
|
@@ -89,7 +89,8 @@ class MapillaryDownloader:
|
|
| 89 |
info = json.loads(path.read_text())
|
| 90 |
else:
|
| 91 |
info = await self.get_image_info(image_id)
|
| 92 |
-
|
|
|
|
| 93 |
return info
|
| 94 |
|
| 95 |
async def download_image_pixels_cached(self, url: str, path: Path):
|
|
@@ -102,7 +103,10 @@ class MapillaryDownloader:
|
|
| 102 |
async def fetch_images_in_sequence(i, downloader):
|
| 103 |
async with semaphore:
|
| 104 |
info = await downloader.get_sequence_info(i)
|
| 105 |
-
|
|
|
|
|
|
|
|
|
|
| 106 |
return i, image_ids
|
| 107 |
|
| 108 |
|
|
@@ -111,7 +115,8 @@ async def fetch_images_in_sequences(sequence_ids, downloader):
|
|
| 111 |
tasks = [fetch_images_in_sequence(i, downloader) for i in sequence_ids]
|
| 112 |
for task in tqdm.asyncio.tqdm.as_completed(tasks):
|
| 113 |
i, image_ids = await task
|
| 114 |
-
|
|
|
|
| 115 |
return seq_to_images_ids
|
| 116 |
|
| 117 |
|
|
|
|
| 89 |
info = json.loads(path.read_text())
|
| 90 |
else:
|
| 91 |
info = await self.get_image_info(image_id)
|
| 92 |
+
if info is not None:
|
| 93 |
+
path.write_text(json.dumps(info))
|
| 94 |
return info
|
| 95 |
|
| 96 |
async def download_image_pixels_cached(self, url: str, path: Path):
|
|
|
|
| 103 |
async def fetch_images_in_sequence(i, downloader):
|
| 104 |
async with semaphore:
|
| 105 |
info = await downloader.get_sequence_info(i)
|
| 106 |
+
if info is None:
|
| 107 |
+
image_ids = None
|
| 108 |
+
else:
|
| 109 |
+
image_ids = [int(d["id"]) for d in info["data"]]
|
| 110 |
return i, image_ids
|
| 111 |
|
| 112 |
|
|
|
|
| 115 |
tasks = [fetch_images_in_sequence(i, downloader) for i in sequence_ids]
|
| 116 |
for task in tqdm.asyncio.tqdm.as_completed(tasks):
|
| 117 |
i, image_ids = await task
|
| 118 |
+
if image_ids is not None:
|
| 119 |
+
seq_to_images_ids[i] = image_ids
|
| 120 |
return seq_to_images_ids
|
| 121 |
|
| 122 |
|
maploc/data/mapillary/prepare.py
CHANGED
|
@@ -252,7 +252,7 @@ def process_sequence(
|
|
| 252 |
shots,
|
| 253 |
disable=True,
|
| 254 |
)
|
| 255 |
-
shots_out = [(i, s) for i, ss in enumerate(shots_out)
|
| 256 |
|
| 257 |
dump = {}
|
| 258 |
for index, shot in shots_out:
|
|
|
|
| 252 |
shots,
|
| 253 |
disable=True,
|
| 254 |
)
|
| 255 |
+
shots_out = [(i, s) for i, ss in enumerate(shots_out) if ss is not None for s in ss]
|
| 256 |
|
| 257 |
dump = {}
|
| 258 |
for index, shot in shots_out:
|