为了账号安全,请及时绑定邮箱和手机立即绑定

我如何开始用Python和SQL制作地图。

探索空间数据

我是自学成才的开发者和数据爱好者。当我第一次接触到空间数据社区时,是在LinkedIn上看到Matt Forrest的视频,他在视频中演示了如何使用DuckDB从Vida Combined Building Footprints数据集中可视化建筑物。我马上想到,如果能看到像埃及这样的国家的所有建筑物会怎么样?我决定尝试一下,并用DuckDB和Datashader做了一张这样的地图。

埃及建筑

开始于融合

我在领英上发布那张图片的第二天,2024年4月,我和Fused.io的普利尼奥·古兹曼进行了会面。我告诉了他我之前做了什么,他对Fused会符合我的需求表示了热情和信心。他提到的一个关键特性是实时开发功能。在我开发那张埃及地图时,我不得不反复启动ETL过程,直到它达到我想要的效果。

所以我马上就开始了。我发现了一些Python用户自定义函数(UDFs),如Overture MapsS2 Explorer,并环游世界寻找惊人的图片。从纽约飞往东京并看到结果立即呈现真是太刺激了。

2号哨兵

然后我开始修改这些 UDF 的组件来查看不同的 Overture 类型,但就在这个时候,我犹豫着从头开始构建自己的 UDF。

即时 UDFs (用户自定义函数)

那直到 Fused 推出了它的文件浏览器。只需点击一下鼠标,我现在就可以从像 Source Cooperative 这样的提供商那里创建 UDF(用户定义函数),并用 DuckDB 或 GeoPandas 等工具进行可视化。借助这个新功能,我用同样的 Vida 数据集重新制作了我的埃及地图,这次我使用了 DuckDB 和 H3 扩展。我意识到,这些组件比我想象的要简单得多,感到非常轻松。

本地区测试

我在Jupyter笔记本上使用具备H3扩展功能的DuckDB(未使用Fused)本地查询Overture Maps的数据,获取国家和洲的信息。H3扩展的好处在于,只要正确设置查询,就能轻松地从笔记本中处理比内存容量更大的数据集。

五大湖区的建筑密度

非洲公路密度

欧洲电网

我用H3制作了这张埃及建筑物分布图,你觉得这张地图和上面提到的Datashader版本相比怎么样?

埃及的建筑密集程度

融合地图和序曲地图

在八月,Fused 宣布了与 Overture Maps Foundation 更紧密的合作,并带来了更多 Overture 的功能。就像与 Source Cooperative 的合作一样,我现在可以即时生成建筑物、地点、土地使用或道路等的 UDF(比如通过合并 parquet 文件)。然后我利用该 UDF 的框架来整合各种数据。

巴黎附近医院的道路网络

H3与GeoJSON的结合

有一天我在查看DuckDB_H3_Example时,突然想到,如果我将这些单元格与Overture建筑物连接起来会怎么样呢?通过Fused上的所有示例UDF,我学会了如何使用DuckDB的H3扩展。因此,我在一个Overture的UDF中调用了该UDF,并使用GeoPandas将两者连接起来。结果如下所示的地图。建筑物的颜色表示相应黄色出租车的上车点数量。这个TLC的parquet文件中有数百万个数据点,H3帮助我将这些点聚合到数千个,使空间连接变得更加容易。

带有H3数据的建筑

我用 Kepler.gl 制作这张特定的地图,仅需两次点击。我也可以将数据导出到像 FeltMapbox 这样的工具中。你可以在这里找到我用来重现这张地图的代码:https://github.com/kentstephen/duckdb_h3

新功能及社区交流

我刚开始使用Fused的AppBuilder,并做了一个仪表盘,让你可以查看和互动纽约市311呼叫数据,并以3D H3热力图的形式展现。任何人都可以设置日期范围和分辨率来改变显示方式。非常快捷且容易上手。

这里有太多令人兴奋的数据科学项目在Fused上进行。请查看凯文·拉卡伊关于无需机器学习的全球植被分割的文章。还有克里斯托弗·基德的从100亿条驾驶记录中分析交通速度,这就是我喜欢的那种项目。

我在继续将H3热力图与Overture类型的数据结合起来。这是显示伦敦交叉点与道路连接情况的热力图。

伦敦的道路分布情况

更深的颜色表示交叉路口更多。我打算加入交通流量数据。

结论部分

我已經研究空間資料幾個月了,現在我想找下一個探索的地方。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消