[User Story] 2. Images & Traffic Signs
還沒有人認領這個 Issue。
評估
研究方向
首先定位提議的 get_data 操作的 SDK 入口點,以及現有的 image-coverage 和 traffic-sign 圖磚請求。檢視組織、日期範圍、邊界框、半徑和必要輸入的驗證如何結合。完成標準是:已就 image 和 traffic-sign 篩選工作流程以及請求大小限制達成設計和實作範圍共識。
由索引模型根據 Issue 內容生成。
描述
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
- 主要語言
- Python
- 星號
- 66
- 分支
- 23
- 平均合併
- 1 天 20 小時
- 30 天內合併 PR
- 11
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
mapillary/mapillary-python-sdk 的其他 Issue
-
bug
難度 3/5 1-2 天 新手友好度 45/100
-
enhancement
難度 5/5 一週以上 新手友好度 15/100
mapillary/mapillary-python-sdk#156 · 1 則留言 ·
-
Bug Report 未關閉bug
難度 3/5 1-2 天 新手友好度 35/100
mapillary/mapillary-python-sdk#150 · 1 則留言 ·
-
point cloud data 未關閉example
難度 5/5 一週以上 新手友好度 20/100
mapillary/mapillary-python-sdk#147 · 11 則留言 ·
-
feature
難度 5/5 一週以上 新手友好度 32/100
mapillary/mapillary-python-sdk#127 · 1 則留言 · 2 個 reaction ·
查看 mapillary/mapillary-python-sdk 的全部 Issue
相似的 Issue
-
難度 2/5 1-3 小時 新手友好度 75/100
anthropics/skills#1811 · 1 則留言 ·
-
難度 2/5 1-3 小時 新手友好度 75/100
speaches-ai/speaches#678 ·
-
bug
難度 2/5 1-3 小時 新手友好度 75/100
datalayer/mcp-compose#42 ·
-
難度 2/5 1-3 小時 新手友好度 75/100
conda-forge/spacy-feedstock#177 ·
-
難度 2/5 1-3 小時 新手友好度 70/100
UKGovernmentBEIS/inspect_evals#2523 ·