[User Story] 2. Images & Traffic Signs
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
Línea de trabajo
Comienza localizando el punto de entrada del SDK para la operación get_data propuesta y las solicitudes existentes de tiles de image-coverage y traffic-sign. Revisa cómo podrían encajar la validación de organización, intervalo de fechas, cuadro delimitador, radio y entradas obligatorias. La tarea estará terminada cuando haya un diseño y un alcance de implementación acordados para el flujo de trabajo de filtrado de image y traffic-sign y los límites de tamaño de las solicitudes.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Context
A user who uses a camera to take images all over the city would like to,
- Get a list of images uploaded to their organization (request to the image coverage tiles, then filter by the organization)
- Filter for images during a certain date range, like last week (so apply a date filter).
- Then they want to get all traffic signs visible in these images (so must really then call the same tiles from the traffic signs layer, using the same z/x/y)
- Then filter by calling graph.mapillary.com/TRAFFIC_SIGN_ID?fields=images, and keep only the traffic signs where at least 1 image in the images list matches a universal list of images from the tile request that uses date and organization filter
Concern
Each of these red boxes is 1-degree longitude by 1-degree lat. Maybe the max can be 2x2 degrees. And the user could set an override maybe, but by default, we reject if the area is 2x2 = 4 square degrees for a bbox.
For a radius, simply take area = (2* radius) ^ 2. And reject if area > 4 sq degrees also. But radius may be in meters, we need to have a handler of that too. The user should input radius in meters which we need to convert to degrees maybe.

Approaches/Limitations
Interestingly, this is not a function to get data by a bounding box, nor an input coordinate with a radius search. It has no geographic input argument, only organization name/key, and date range. So maybe a get_data function needs some special design.
It must have some argument that limits the search,
- The bounding box (with max size maybe, like a bounding box for all of Africa may be too big for the API or server)
- A radius around a coordinate (and max radius, like 200 meters is okay but 25,000km is too much), a date range (is their one that is too big?)
- An organization key for example, if I just do get_data(<date range from 2014 to 2021>) it would try to pull all global data from all time Mapillary existed. Too big. But the API would return a 500 probably, or deny access with a rate limit.
- We also need to say that you need either a bbox, a radius, an organization key, or a date range, or a combination, but you cannot have any. So all these arguments are optional as long as 1 exists as a minimum, but you cannot call a get_data function with no arguments. So thinking about how to check that.
- The other limitation then is just on bounding box, radius, or date range size maybe. For example,
- If bbox is within the size limit, then the date range can be anything
- If bbox and date range both exceeds the size limit (box size of Africa, date of 3 years), reject
- If bbox is the size of Africa, but the date range is 1 week, accept
- Same with radius. No limits on the organization as a parameter.
I will ask for some tips on bbox and radius size limits. For bbox, maybe an area limit, so abs(max_x - min_x) * abs(max_y - min_y) must be < limit. Then x,y of bbox are in degrees though, not meters. But that's okay. Maybe 1x1 degree is the limit, so 1 square degree.
Code Example [OPTIONAL]
Something like,
get_data(layer=traffic_signs,filter=[organization=XXX, min_date=YYYY-MM-DD HH:MM:SS, max_date=YYYY-MM-DD HH:MM:SS])
Inside this is a function that gets a list of all image keys that are in the organization, and have the date range like valid_images=[key1,key2,key3,...keyN], but also the tile coordinates like tiles = [ [x,y], [x,y], [x,y] ]
If there are 3 tiles (maybe just 1, maybe 20?). Then get a list of all traffic sign IDs in the same tile coordinates, and make an API request for each traffic sign ID (that's a lot of computing, unfortunately)
If there are 500 signs, for example, with fields=images, and then a condition of if any image keys in the traffic sign. Images field is in the valid_images list, then push the traffic sign with all fields including geometry to the output file
- Lenguaje dominante
- Python
- Estrellas
- 66
- Forks
- 23
- Merge medio
- 1 d 20 h
- PR fusionados (30 d)
- 11
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de mapillary/mapillary-python-sdk
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
-
How to render 'spherical' images Abiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
mapillary/mapillary-python-sdk#156 · 1 comentario ·
-
Bug Report Abiertobug
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
mapillary/mapillary-python-sdk#150 · 1 comentario ·
-
point cloud data Abiertoexample
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
mapillary/mapillary-python-sdk#147 · 11 comentarios ·
-
feature
Dificultad 5/5 Más de una semana Aptitud para principiantes 32/100
mapillary/mapillary-python-sdk#127 · 1 comentario · 2 reacciones ·
Todos los issues de mapillary/mapillary-python-sdk
Issues similares
-
essnmx good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
-
[Feature] 奇物选择添加优先级 Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
syfoud/Simulated_Scepter#174 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Giskard-AI/giskard-oss#2840 · 1 comentario ·
-
A claim comment carrying the issue number is silently declined while the workflow reports success Abiertoarea: repo bug perceived difficulty: 2
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
yeti-platform/yeti#1380 ·