mapillary_download/images_par_username.py

61 lines
1.6 KiB
Python

import os, requests, json
import argparse
from urllib.parse import quote
def parse_args(argv=None):
parser = argparse.ArgumentParser()
parser.add_argument(
"--access_token",
type=str,
default=os.environ["MAPILLARY_DEV_TOKEN"],
help="Your mapillary access token",
)
parser.add_argument(
"--username",
type=str,
required=True,
help="Username to get the sequences id of",
)
parser.add_argument(
"--pictures",
type=str,
default=500,
help="Limit of pictures to fetch, max=5000",
)
parser.add_argument(
"--bbox",
type=str,
default=None,
help="Limit to a bounding box, e.g. '-5.5,47.3,-1.2,48.9', use http://bboxfinder.com",
)
global args
args = parser.parse_args(argv)
if __name__ == "__main__":
parse_args()
mly_key = args.access_token
creator_username = args.username
max_img = args.pictures
bbox_filter = f'&bbox={args.bbox}' if args.bbox is not None else ''
url = f"https://graph.mapillary.com/images?access_token={mly_key}&creator_username={creator_username}&limit={max_img}&fields=id,sequence{bbox_filter}"
print(url)
response = requests.get(url)
if response.status_code == 200:
json = response.json()
# tri des séquences uniques
sequences_ids = [obj["sequence"] for obj in json["data"]]
unique_ids = list(set(sequences_ids))
print(unique_ids)
print("---")
print(" ".join(unique_ids))
else:
print(response)