查看原文
其他

【三维数据分享】香港城市三维模型初探

GIS彭于晏 数读城事 2022-04-25

关注“数读城事”公众号差不多一年了,一直在群里当白嫖怪,怪不好意思的((ง •_•)ง雾,才没有),也没啥拿得出手的,之前看到群里有小伙伴需要免费的城市三维模型,刚好手上有一些这方面的免费公开数据,在此分享一下,同时也可以完成应诺菌菌但是拖了好久好久的投稿(菌菌注:你还知道啊!>﹏<)。另外,在使用这些数据过程中,我进入到了瓶颈期,希望大神们可以给我指点迷津!




当前,智慧技术在城市规划领域已广泛投入使用,其中数字孪生城市技术是极为重要的研究热点(。>︿<)_θ。数字孪生城市涉及复制现实世界中的所有地点资产(包括道路、建筑物、标志牌、绿地等),通过访问其数据库,可进行现实世界的模拟分析、存量清点以及高精度测量(可达毫米级)等,并可以自动优化许多城市管理和城市规划任务。

图1|数字孪生城市模型


在数字孪生城市技术中,城市三维模型发挥着基础作用,香港自2015年底开始制作港岛及九龙半岛等地的三维城市模型,涵盖港岛约2万幢大厦、九龙约2.5万幢大厦,模型已于2019年内分阶段对社会完全公开并定期更新,数据量达320GB。Σ(っ °Д °;)っ


01数据来源及介绍


◐ 

1. 数据来源

本次数据有两个来源,不同来源的数据覆盖的地区不同。
来源
制作时间
覆盖区域
香港规划署
2017年3月及2018年3月
香港岛(部分)及九龙半岛(部分)
地址
https://www.pland.gov.hk/pland_sc/info_serv/3D_models/download.htm
香港地政总署
最后更新-2018年初
九龙半岛、青衣、屯门、元朗、大埔等
地址
https://geodata.gov.hk/gs/view-dataset?uuid=ccf4ac4c-6b79-49d1-8bce-74bf0243a544&sidx=0
表1|数据来源
不同来源的数据具体覆盖范围如下图所示:

图2|香港规划署制作的城市三维模型覆盖区


图3|香港地政总署制作的城市三维模型覆盖区


◐ 2. 数据介绍

本次数据采用的是航空摄影测量技术,利用激光雷达打点建立白膜,结合拍摄的立面完成建模。ˋ( ° ▽、° ) 

图4|用于执行任务的直升机及设备


数据的坐标为HK1980坐标(地方坐标系),可能是出于保密或者别的考虑,对于后边的分析多少有点不便。HK1980坐标系的参数介绍的pdf可在后台回复关键字“三维模型”获取哟♪(´▽`)

数据的格式方面,来源于规划署的数据可以下载OSGB、OBJ、Cesium 3D Tiles等三种格式,具体的详细介绍件规划署数据简介.pdf同样可以在微信公众号后台回复关键字“三维模型”获取ヾ(•ω•`)o,同时附上3种格式对应的csv格式的数据列表。香港地政总署的数据可以下载OSGB以及OBJ两种格式,并可以在网页查到网格对应的地区。

图5|规划署数据下载页面


图6|地政总署数据下载页面
02数据下载


打开下载页面就可以发现,三维模型已经按照格网进行分块,每个分块都是一个zip压缩文件。因为数据来源于不同网站,所以下载方法也有所不同。>﹏<规划署的数据比较简单( •̀ ω •́ )✧,三种格式的csv中各个格网的下载链接都已经处理好了,全选复制,扔进迅雷里面直接下载就好了,剩下的就是网速问题了(lll¬ω¬)。。。如果有哪几个分块下载失败,那就重新下载好了。那时候不知道为啥脑袋抽筋,偏要写python代码批量下载,花了时间不止,不少分块下了一部分,有一部分没下完整,还得回头检查(菌菌注:这就是大佬的思维吗难道(ノ*・ω・)ノ)。。。所以,凡事从简,诚不欺我地政总署的数据下载比较复杂,如果时间充足,可以手动下载。由于没有一个完成的list可以直接批量下载,所以本部分数据的下载方法大概可分为:观察下载链接的组成部分——索取需要的部分——批量下载首先,需要观察下载链接的组成部分。此处以OSGB格式的某个网格的下载链接为例,https://www.map.gov.hk/3ddata/download/OSGB/3-SW-24C/data/3-SW-24C-1/3-SW-24C-1.zip,可知“3-SW-24C”唯一需要所取的,这应该就是该网格的行列号组成的唯一编号。然后,就是如何获取行列编号的问题了,当然可以用枚举法,一个一个试,但是效率比较低,访问次数多了,不知道会不会被封ip。此处选择的方法是模拟点击的方法,进入网站后,在浏览器打开开发者模式(F12),点击某个网格,打开带有“identity”的链接,如下图所示:

图7|开发者模式截图

观察到Request URL各部分组成为:
https://www.map.gov.hk/arcgis2/rest/services/mbameshtile__d00/MapServer/identify?f=json&tolerance=3&returnGeometry=true&imageDisplay=878%2C900%2C96&geometry=%7B%22x%22%3A835631.9310723272%2C%22y%22%3A833970.3834004729%7D&geometryType=esriGeometryPoint&sr=2326&mapExtent=829860.9354368041%2C831954.3567794542%2C841288.2711654226%2C835948.1915073491&layers=undefined%3A6%2C7%2C8&callback=dojo.io.script.jsonp_dojoIoScript30._jsonpCallback

点击网格多次,发现有些参数是变化的,有些不变,变化的参数如下:

“imageDisplay”:数字可能每一次打开都不一样,但不是关键参数;

“geometry”:模拟点击的坐标点(x,y)#(经度,纬度),可以去掉小数点;

“mapExtent”:由坐标点生成的一个范围,后面以模拟点击点作为中点,生成一个矩形,边长为150,左下点为(x-75,y-75),右上点为(x+75,y+75);

“callback”:jsonp_dojoIoScript后面的数字是变化的,但不是关键参数;搞懂了行列编号之后,就需要切割图上的网格了,比如下图这部分,虽然可以整片网格进行查询,但是右边一大片是空的,效率也不高。所以我就大概将网格按片分割,如下图的红框,就是一个查询片区,每个片区选择两个模拟点,一个在左下角,一个在右上角,当然红框只是示意,实际不用那么小,可以框大一些。

注意:在地图上选择模拟点击范围的左下点和右上点时,一定要比左下点要下,右上点要上;

图8分片区查询示意图
此处附上批量查询的代码:HK_Model_download.py(后台回复关键字“三维模型”获取)导出的结果如下图所示:图9|查询结果
红色的框是模拟点击的坐标点,黄色是没有返回结果的区域,即图8没有格网覆盖的区域;蓝色是返回的结果。筛选出返回的结果,在excel中进行分列操作,然后提取出行列编号,因为前一步的分片查询行列编号过程中可能存在重叠区域,所以可以先去掉重复的行列编号。根据上面的下载链接模式,组合成各个分块的下载链接,这里都是excel的操作,不展开详细说了。最后扔进迅雷批量下载,搞定!(~ ̄▽ ̄)~图10|下载的分块数据


02数据使用初探


至此数据已经下载完了,可以打开看看了。我试了不少软件,包括CityEngine、ContextCapture Center软件下的Acute3D Viewer、Locaspace Viewer、SuperMap、3D Max等(#`-_ゝ-),熟悉三维建模的大佬推荐Acute3D Viewer。一开始,我下载了OBJ格式的数据,然后单个或者小部分导入Acute3D Viewer是可以的,但是大批量导进去发现卡死了,大佬告诉我说OBJ格式的加载比较慢,导入数据的数量会卡死(我的机子是16G内存)。所以,推荐下载OSGB格式。ヾ(•ω•`)o以下是在Acute3D Viewer打开的OSGB格式的数据:

图11|旺角、油麻地、佐敦及大角咀地区三维模型鸟瞰图【纹理模式】


图12旺角、油麻地、佐敦及大角咀地区三维模型鸟瞰图【点云模式】


图13 旺角、油麻地、佐敦及大角咀地区三维模型鸟瞰图【线框模式】


图14|旺角、油麻地、佐敦及大角咀地区三维模型细节【纹理模式】


图15|旺角、油麻地、佐敦及大角咀地区三维模型细节【点云模式】


图16|旺角、油麻地、佐敦及大角咀地区三维模型细节【线框模式】


如果需要将三维模型叠加到在线地图上面,那就需要使用Locaspace Viewer或者SuperMap中。Locaspace Viewer可以支持比较多的分块同时加载,但是可能缩放会比较卡,有可能会崩掉,同时由于坐标系统不一致,存在位移的现象。(;´༎ຶД༎ຶ`)图17|三维模型与底图存在偏差
至于SuperMap可以进行坐标转换,但是过程比较复杂,而且效果不算十分理想,如有需要,可以私下进行讨论,此处不展开了。

最后本文也会附上部分OSGB数据,后台回复“三维模型”就可以哭唧唧骂骂咧咧地获取了,还有前文提到的CSV、PDF、和py文件。


作者|GIS彭于晏

排版|Moon

校阅|数读菌


那今天就到这里结束啦,欢迎留言讨论。文中的图片文字未经许可不要随便“引用”。

如果可以的话,希望能够转发分享,点个在看并且点个,给个赞赏~~也欢迎规范转载~

也希望大家和我多留言互动啊!(据说这样可以增加我的推送在你的订阅号里出现的概率)

历史文章推荐:

【瞎七八扯】如何确定“真实”人口数量、分布以及流动?

【瞎七八扯】灯塔国全球军事基地的分布

【数据分享】中国生态服务功能重要性与中国生态系统敏感性

【数据整理】2019年行政区划调整的数据更新与分享

【数据分享】如何获取北京旅游景区AOI数据?

【数据分享】如何获取全国矢量地铁站点与线路数据?

【瞎七八扯】全国同名的行政区划:市县同名(修订增补)

【瞎七八扯】仅仅是“巧合”的同名行政区划

需要你的“分享”和“在看”


END>

如需全文转载文章、投稿或者合作

可添加微信

(回复超慢!!!)

(不要添加我问各种问题,我大概率不会的==)

(入群请一定要备注入群)

(添加后会在晚上非工作时间通过,请稍安勿躁)


公众号


微博

▼ 点击阅读原文,使用关键词搜索历史文章

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存