geo-sleuth

Featured

照片拍摄地点定位(看图找地点 / 网络迷踪 / 图寻 / 推拍摄时间)。给一张或几张照片,先一条命令做完元数据、OCR、以图搜图(intake.py),把线索和候选记到候选盘(board.py)上由脚本排名、给下一步;查表线索用 clues.py;卫星图和街景都是"机器先排序、人只看前几名"(sat_scan.py、match.py);每个结论都用真实数据核对,输出坐标 + 误差半径、证据图和分档置信度。Geolocate or chronolocate a photo with tool-verified reasoning — EXIF, OCR, reverse image search (Baidu/Yandex), lookup tables (plates, area codes, calling codes, driving side, territories), candidate board with likelihood ranking, sun and shadow math, OSM Overpass, CLIP-ranked satellite scan, DINOv2+SIFT-ranked street view matching, DEM skyline rendering. Use when the user shares a photo and asks 这是哪 / 在哪拍的 / 帮我定位这张照片 / 网络迷踪 / 几点拍的 / where was this taken / geolocate this.

AI & Automation 432 stars 49 forks Updated 2 days ago MIT

Install

View on GitHub

Quality Score: 90/100

Stars 20%
88
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# 迷踪 · geo-sleuth(v2) 目标:找到一个**经得起核对**的地点,每个结论都能指出用了哪条线索、跑了哪个命令、产出了哪个文件。 > 命令里的 `${CLAUDE_SKILL_DIR}` 指本 SKILL.md 所在目录(references 里的命令也一样)。Claude Code 会自动替换;其他 agent 先 `export CLAUDE_SKILL_DIR=<本目录的绝对路径>` 再跑(shell 不跨命令保留变量时,每条命令前都带上这句),或者直接把它换成这个路径。 工作方式分三层,先记住这个,再看流程: | 层 | 谁做 | 工具 | |---|---|---| | 决策:候选有哪些、证据怎么算分、能不能排除、下一步扫哪 | **脚本**(候选盘) | `board.py` | | 感知:读字、查表、卫星图上找目标、街景比对 | **脚本先算先排,人只看前几名** | `intake.py` `ocr.py` `clues.py` `sat_scan.py` `match.py` `geo.py bearings` | | 判断:从画面里提线索、查表没有时提假设、在机器排好的前几名里裁定 | **你** | — | 方法来自 14 个网络迷踪博主视频、22 道题的拆解和多轮盲测对照;拆解笔记不随仓库发布。v1 的教训:规则写成散文不会被执行,同一版 skill 两次跑结果差很大;所以 v2 把能写成代码的规则都放进了 `board.py`。 ## 硬规则(全程有效;标 ★ 的由 board.py 强制,你照做就行) 0. 用户说照片不是自己拍的,或画面里是私人住处、未成年人,先问一句用途再继续;提示里已写明来源或用途(评测题、出题人提示、用户明说是自己拍的)时不问,照常做到最细一级。 1. **不编核验**。"在地图上量过""街景对上了""±10 m"必须对应本次会话里实际跑过的命令和产出的文件。没跑过就写"未核实"。 2. **精度要有出处**:误差半径 ≤100 m,必须有两条独立约束的交会,或实景比对 ≥3 项不变特征。 3. **找到唯一锚点就闭环**:后面的搜索和几何都从锚点出发,不再回到"湖水蓝绿""热带公园"这类泛化特征挑同类里最有名的地方。 4. **先算方位,再认构件**:照片里的塔、烟囱对应卫星图上哪个方块本身是解读。先用 `sun.py compass` 或已确认地标算出它在画面里的真实方位,再用 `geo.py bearings` 看候选机位周围哪个轮廓落在那个方位上;对不上时先做"原图/镜像""日出/日落"双模板,没核实就只降档不排除。 5. ★ **类别推断先列全**:从"山城""热带""IP 直辖市"推地区时,`board.py children` 把全部下级行政区加进候选,再用证据排。不默认主城,不按人口挑。 6. **元数据和提示都是假设**:EXIF、IP 属地、定位标签、出题人的话和画面冲突时以画面为准,不编故事去圆。IP 是 A 国、提示或制式指向另一大洲:`clues.py lookup territories <A国> --continent <洲>` 求交集。 7. **自洽性**:关键判断换一个裁剪或一组关键词重做一次,两次结果差几十公里以上就降档。 8. ★ **定不到点就给区间 + 缺什么信息**;候选是离散的几个时不取中点:`board.py report` 的主答案永远是第一名,其余进备选并写区分检验。 9. ★ **排除和确认用同一个标准**:`...

Details

Author
Oldcircle
Repository
Oldcircle/geo-sleuth
Created
1 weeks ago
Last Updated
2 days ago
Language
Python
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category