点击上方蓝色小字,关注“涛哥聊Python

重磅干货,第一时间送达

视频来源:EyeOpener

文章整理:程序员极客实验室

阅读文本大概需要 5 分钟

这是一张发表在国外论坛上的旅行照片,发出照片的博主还附了三条简短的信息。

  1. 天空中的那道白线是一架波音747-8F,此时,它正从伦敦飞往香港

  2. 照片的拍摄时间是2019年10月30日

  3. 拍摄者此时站在旅馆里

问:这家旅馆的名字是?

注:下面是这个视频,不方便看视频的朋友,请往下看文字版。如果觉得这个问题解答很有意思,不妨推荐给你的朋友。

也许你会对这个莫名其妙的问题感到一脸茫然。这其实是网友发起了一项侦探挑战赛。相信我既然能够通过网络看到这段视频,那你也拥有解答这个问题的能力。

不过问题在于你该如何去使用它?最通用的思路是用图片搜索,但是目前的搜索引擎只会给出一堆无关信息。也许在看到视频的当天,你已经可以通过这种方式找到类似的分享攻略,进而找到答案。

但是请相信我接着看下去,你会对自己拥有的能力有更深入的理解。这照片发布的当天图片搜索是无效的,因为其中找不到任何有关城市的地标建筑照片中的那栋大楼也没有什么鲜明的设计风格。

所以我们需要回过头来想一想,我们到底知道哪些信息?照片的拍摄时间是2019年10月30日,天气很晴朗,拍摄者背对着太阳,天空中飞过一架从伦敦飞往香港的波音747。

前三个条件在地球上任何地点都可以实现。所以解密的关键在于那架从伦敦飞往香港的飞机,要知道商业飞机的航线基本是固定的。既然航线是固定的,从伦敦到香港,而我们又知道照片拍摄的日期。

所以只要在相关的航空咨询网站(www.flightradar24.com)查找一下在2019年10月30日这一天从伦敦飞往香港的飞机,再结合他的型号波音747-8F我们就可以得知照片中这架飞机航班号是N617UP找到这次航班之后,我们就可以在对所有人公开的网站上得到航班对应的KML文件。

KML是一种特殊的文件格式,它可以在地图软件中显示特定的地理数据。比如一家飞机从起飞到降落所经过的所有的经纬度位置,还有他在每个具体点的飞行高度。将这架飞机的KML文件上传到谷歌地球之后,我们就可以准确的再现它在2019年10月30日的活动轨迹。

比如他是如何从伦敦起飞,又是如何从香港降落而照片的拍摄者就在这条狭长的飞行轨迹附近。现在我们的搜索范围从整个地球一下子缩到了这条狭长的轨迹上。所以接下来的问题就变成了在他按下快门的那一瞬间,这架飞机的这条线的哪个点?

要知道KML文件不仅仅记录了飞机的轨迹,他同时还对应着飞机在每个点的时间信息,比如根据左上角解析出来的信息,我们可以知道这架飞机是在当天上午6点多出发的。不过需要注意的是,这是UTC时间,也叫协调时间时,它基本和格林威治标准时间相当。我国采用东八区时间,所以我们经常看到我们的时间是UTC+8。通过使用UTC时间,跨国飞机可以避免,因为短时间穿过多个时区而让自己产生混乱。

因此,我们明确了飞机位置和时间的对应关系。实际上通过具体的位置和时间,我们就可以得知飞机在航线不同位置时的天气情况。具体操作方式我们一会儿再讲。而照片中飞机所在的天空晴空万里,所以我们首先可以排除那些在航线上处于黑夜的地段。

这里我们用到的是一家名叫SunCalc(http://www.suncalc.org/)的天文观测网站,将坐标定位到伦敦。然后在左侧将时间拨回到2019年10月30日,UTC时间6点12分,此时的伦敦很明显还是在黎明到来之前的黑夜当中,因此伦敦可以直接排除。考虑到飞机抵达目的地的时间是UTC 17点30分,此时的香港是凌晨一点半。根据这个信息再结合原始照片和飞机航线图,照片里的飞机不可能在已经入夜的中国,所以大概可以先排除航线的后半程。

而当我们的目光聚焦到飞机的前半程后,会发现此时的飞机航线大体朝向正东。所以原先这张几乎一清二白的照片里面又多了一个重要的信息,飞机指向正东,拍摄者面朝西侧,看着这条航线你会不会感到奇怪?印象中的飞机都是平着飞,为什么这里的航线似乎要一飞冲天离开地球呢?这其实属于一种视错觉。在地图软件上模拟一下就可以明白。航线之所以这么陡,是因为拍摄者离他太近。既然飞机向东前进,那拍摄者应该在航线的北侧。否则的话,这条线看起来会和原图完全相反。

不过光知道这一点还是不足以让我们推测出问题的答案。好在这张照片里还隐藏着一个不起眼,但是同样关键的信息。拍摄者面前的这栋建筑至少也有五六层高,而照在这栋楼上的影子几乎快要没过它本身。考虑到欧洲地广人稀的局面,这应该是一座比较繁华的大城市。

所以我们现在的筛查点是:

  • 一、航线的前半部分,也就是欧洲。

  • 二、距离航线非常近的城市。

  • 三、拍摄是在航线以北,所以这座城市也靠北。

至少它不可能完全位于航线的南侧,让我们从西向东开始寻找。

阿姆斯特丹是一个很有诱惑力的选项,但是飞机经过这里的时间是UTC上午6点半左右。此时的阿姆斯特丹天也还没有亮。经过反复的对比和筛查,我们排除了沿途的大部分城市。

随着航线的东移,一座条件几乎完美的城市来到了我们的眼前——柏林。航线穿城而过,而且柏林的大部分城区都在它的北部。此时的时间是UTC上午7点14分左右,柏林阳光正好。接下来我们需要借助3D视角的帮助,才能够确定旅馆最终的位置。不过直到近距离观察我才发现,想在柏林这么一座大城市里面,找到这么一栋毫无特色的建筑,简直是天方夜谭。

即便把范围划定在了城市的北半区也还是无济于事,借助从网络上搜集到的资料,我只能够走到这里,最终还是网络大神的耐心让我叹服。

他们把从不同地点看到的航线的角度和原图做对比,划定了一个和原图视角大致一致的区域。然后开始了摸网式的排查,最终经过大量的对比,那座熟悉的大楼终于出现在了我们的眼前。

顺着大神的指引,我在软件里还原了照片,而这家旅馆的名字是:Hotel H+ Mitte Berlin。他们甚至还根据照片中的位置关系,推测出了拍摄者当时所在的房间。还根据此处的KML数据推测照片拍摄于柏林当地时间8点13到14分之间。从一条浅浅的痕迹推测出拍摄者具体的酒店房间,这本是007电影才会出现的剧情,却可以通过对网络工具的合理使用成为真切的现实。

全程我们需要使用的工具和知识包括:

  • UTC时间

  • KML文件

  • 飞行航程查询网站(Flightradar24)

  • 免费的谷歌地球(Google Earth Pro)

  • 天空观测网站(Suncalc)

实际上大神们推导出这个结果,花费了长达几周的时间,我们在这里不过是简单的按图索骥。也许我们无法真的借此拥有和他们一样的超能力,但我想你肯定已经明白逻辑的力量能够有多强大。

-END-
今天给大家推荐一个告别枯燥,通过学习有趣的小例子,扎实而系统的入门Python,从菜鸟到大师,个人觉得这是很靠谱的一种方法。通过一个又一个的小例子,真正领悟Python之强大,之简洁,真正做到高效使用Python.获取方法1. 扫描下方二维码2. 后台回复关键词:Python之路程序员章鱼哥????长按上方二维码 2 秒回复「Python之路」即可获取资料

日更不易,如果有用的话帮忙“转发”和“在看”一下,感谢啦

小心了!通过一张照片我能找到你拍照的精确位置!相关推荐

  1. 堪比 007 电影!通过一张照片找到拍照者的精确位置

    视频来源:EyeOpener 文章整理:程序员极客实验室 这是一张发表在国外论坛上的旅行照片,发出照片的博主还附了三条简短的信息. 天空中的那道白线是一架波音747-8F,此时,它正从伦敦飞往香港. ...

  2. 【情报百科】一张照片就能精准锁定你的位置

    前两天,网络视频博主@EyeOpener发布的一段关于"如何通过一张照片找到一个人的位置"的视频突然火了. 图片 有粉丝艾特了我:"福韵君(我的微信昵称),你同门嗳!&q ...

  3. Camera拍照录像保存位置信息

    文章目录 一.修改记录 二.概述 三.图片位置信息存储 3.1 存储 Media 数据库 3.2 存储 Exif 信息 3.2.1 ExifInterface 3.2.2 CaptureRequest ...

  4. android7 sd fix,Android7.0拍照失败FileUriExposedException,你的拍照代码升级了吗

    背景: SamSung SM-N9006 Android5.0在应用中拍照之后,无法获取拍照之后的数据,报错FileUriExposedException 思路: 参考官方文档对该错误的解释,是由于出 ...

  5. Android 11适配指南之系统相机拍照、打开相册,安卓app开发教程

    Android 6 权限适配 Android 7 文件适配 Android 10/11 存储适配 ok,接下来以一个更换头像的小例子来讲解一下. 示例 ======================== ...

  6. ideal的maven项目不小心remove module,如何找回

    找回方式: ideal的最右侧有个maven 点开后点击"+",也就是Add Maven Projects,寻找不小心remove modules 的 子项目的pom文件所在的位置 ...

  7. 新技术加速隐私暴露,如何应对?

    新技术加速隐私暴露,如何应对?(一) 序 最近的大数据行业风声鹤唳,多家大数据服务头部企业.贷超.催收公司被查,引发行业地震,未被牵连的企业纷纷自查,其他头部公司黑稿和纠纷频出.从业者如惊弓之鸟,人人 ...

  8. 【ps教程】如何给照片换背景

    如何给照片换背景 实战Photoshop 给婚纱照片换背景 拍摄婚礼场景照片的时候,由于背景比较复杂,场面人物较多,使得照片看上去有些乱我们当然可以利用Photoshop CS来给照片换个背景,但有个 ...

  9. 新技术加速隐私暴露,我们该怎么办?(三)

    系列第一篇: Kevin Zhang:新技术加速隐私暴露,我们该怎么办?(一) 系列第二篇: Kevin Zhang:新技术加速隐私暴露,我们该怎么办?(二) 黑产相关技术给隐私保护带来的挑战 黑产相 ...

最新文章

  1. ibatis基础(三):查询指定id的单个对象
  2. 超图桌面版加载obj 3D模型
  3. 推荐算法三视角:矩阵,图,时间线
  4. Java AIO初探(异步网络IO)
  5. 使用POI读写word docx文件
  6. 浅谈智能语音交互,看一个Windows语音识别程序
  7. SSE指令介绍及其C、C++应用 zz
  8. 电脑显示未安装任何音频输出设备_未安装任何音频输出设备-华硕A556UQ7200(4GB/128GB+500GB/2G独显)...
  9. [SQL] 不允许保存更改
  10. reviewboard mysql_【ReviewBoard】安装与配置
  11. Vue2.0源码解析 - 知其然知其所以然之keep-alive原理分析(一)
  12. 北京邮电大学计算机论文,2019北京邮电大学本科毕业论文-randomwalk.doc
  13. 2021-11-15求积分面积和旋转体积的二重积分方法
  14. 基于Java+SpringBoot+Thymeleaf+Mysql在线电影院选座订票系统设计与实现
  15. 《NVMe-over-Fabrics-1_0a-2018.07.23-Ratified》阅读笔记(1)
  16. 浮士德头像裁剪flash版2016福利版
  17. HTML figure 标签 figcaption 标签
  18. 10[粒子系统的实现]
  19. MATLAB 2020a中文版安装步骤(简洁版)
  20. 设备通过国标GB28181/海康Ehome接入EasyCVR,视频无法打开的原因分析及解决方法

热门文章

  1. Win10安装Powerdesigner16
  2. Tableau 仪表板例子2
  3. PowerBulider create database
  4. 巡线机器人 - PID控制 - 安卓设置
  5. 快速将argparse的参数倒入到类中的__dict__
  6. 第01节、WEEX是什么?
  7. 边缘计算:电信运营商5G时代战略转型的关键一步
  8. 洛谷 P2862 [USACO06JAN]把牛Corral the Cows 解题报告
  9. qduoj 生化危机ycb老师的电脑中毒了(邻接表)
  10. 12.1接收短信【斯纳克PACS医学影像云平台用户手册】