偶然刷华为健康发现可以申请下载个人所有运动数据,于是提交申请。数据不能当时得到,经过了差不多一周,数据包才准备好,申请以及准备数据包的过程中,华为会反复地与你确认数据是不是提供给本人,麻烦是麻烦了一些,但毕竟是个人敏感数据,不接受也得接受。
数据拿到了,干什么用呢?儿子突发奇想,想把之前的所有运动轨迹做成一张热力图。
过去一年多,大江南北的足迹
于是说干就干,中间走了不少弯路,不过过程还是挺有意思。
第一步首先得把航点数据整理出来。儿子这些日子正热衷于pathon,整理数据的任务主要由儿子承担。当然不用pathon也是可以的,就是excel处理这么大量的数据每一步费时不少。
大约一年半以前开始使用华为手环,后来升级成watch GT runner。之前就有过类似的想法,当时是用手机生成每一次运动的路径,然后导出路径,把路径放到google earth里,大概有那么个意思,密密麻麻的“倒水滴”,完全没有热力图的效果,非常乱。
经过解压的华为运动数据量不小,所有航点数据存储在一个叫做motion path detail data.json的文件当中。经过儿子的分析、筛选整理,得到75万个航点数值。数据量上来之后,用Excel等工具处理的速度一下子慢了许多。十来行pathon程序,几秒钟就处理完了,儿子那种成就感就别提了,“这是我第一次编‘有用’的程序!”
热力深圳
接下来就是用工具制作热力图。最常找到的热力图工具通常是把特定地理位置的某项数值做成热力图效果,比如为北京市的朝阳区指定一个特定的位置坐标,再把当地测得的pm2.5赋到这个位置上,这样的工具有许多,算是一种数据可视化。但我们要做的是将大量随机的点放到地图上根据出现的密度表现为地图上的热度值。百度、高德还有不少做地理信息系统的工具貌似可以做,要么需要编写网面脚本,要么需要付费,而我们只是为了体验一下。最后找到了一个工具,arcgis pro,软件有多种版本,包括单机的、企业的,还有21天试用版,可以为教育工作者和学生开通免费帐号。开通了一个试用帐号,但后来发现实际上用web版本就可以完美实现我们要的效果。
热力帝都
具体操作花时间最多的环节还是处理数据,75万多条的数据导进去对哪个软件都是灾难,于是我们用间隔提取的办法分别制作了1/100,1/50,1/20,1/10四套数据。试验结果1/100的数据航点间隔有点大,放大之后显示效果差强人意,1/10的数据间隔够小,系统处理起来已经非常慢了,最后使用了1/100,1/50,1/20三套数据,以1/50和1/20显示效果比较好。
热力滑雪场
具体做法:
第一步:准备好的航点数据(.csv文件)
第二步:是访问(https://learngis2.maps.arcgis.com/),注册并激活帐号;
登录网站,点击“内容”,把准备好的航点数据拖到“我的内容”页面下,按系统引导映射相应的字段,每个帐号有的地址配额是有限的,但我们只要存入经纬度信息,所以不受影响;
第三步:在map viewer中可以调整导入的航点显示的风格、参数,根据自己的喜好来,底图也有许多种风格可以选。
.csv文件可以直接拖到或侧区域
数据导入之后,打开map view查看
调整显示风格为“热力图”
调整热力图的显示效果
底图背景也是可以选择的
从大的步骤上来说以上三步就可以做出自己的运动轨迹热力图,有兴趣的伙伴可以摸索着来。