请选择 进入手机版 | 继续访问电脑版

遥感集市论坛

 
登录  立即注册
查看: 3754|回复: 1

[三维] CityEngine使用GIS模板创造三维数字城市(二)

[复制链接]

66

主题

126

帖子

355

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
355
发表于 2015-3-18 14:24:13 | 显示全部楼层 |阅读模式
CityEngine使用GIS模板创造三维数字城市(二)
  


  上一节介绍了将二维数据转化为三维数据,并作为CityEngine的基础数据。下面介绍的过程中建立三维费城的二维和三维地理信息系统数据。使用的数据是虚拟城市模板的一部分。
  1、下载数字城市模板
  启动CityEngine,菜单File -> Help -> Download Tutorials and Examples  在Examples选项卡中Philadelphia例子既可以,如图1所示
  


  图1下载模板
  2、加载数字城市模板
  如果在CityEngine模板库中,下载模板则需要将模板导入到CityEngine工作空间中:
  1、菜单File -> import -> Project -> existing project into  workspace,如图2所示:
  


  图2导入模板到工作空间中
  2、在 Select archive file选择项中选择  Example_Philadelphia.zip文件。在Project选项卡中选择Example_Philadelphia__2011_1,点击Finish即可。
  


  图3导入模板
  3、创建新的场景
  这个模板中已经有3个已经准备好的场景,您可以双击这些场景进行浏览,如图4所示:
  


  图4现有场景
  现在让我们从头开始,创建一个新的场景。菜单File->New->CityEngine->CityEngine scene  ,选择项目的场景目录,给它一个名称和设置坐标系统(EPGS:2272)如图5所示:
  


  图5创建场景
  4、添加地形和影像
  在Example_Philadelphia__2011_1/data/DEM目录下面找到DEM_burn.tif,选中它然后将它拖动到视窗里面(viewport)。在Choose  coordinate system for  ‘DEM_burn.tif’对话框中选中同样的坐标系(EPGS:2272)。在弹出的Terrain对话框中,Texture  file选项卡中选择贴在地形上的影像(data/basemap/Philly_basemap3.tif)。如图6所示
  


  图6选择影像
  点击Finish按钮,按“f”键盘场景放大到数据的位置。如图7所示
  


  图7地形和影像
  5、添加GIS数据
  在Example_Philadelphia__2011_1/data目录下面找到Results.gdb,选中它然后将它拖动到视窗里面(viewport)。在File  Geodatabase Import对话框中(如图8所示),点击Finish,将GIS数据加载到了场景中如图9所示:
  


  图8 File Geodatabase Import对话框
  


  图9 GIS数据
  6、使用规则
  1、使用矢量建筑轮廓和属性创建三维建筑
  A、选择“Building1_footprints3D”图层的所有对象:可以选中图层上的一个对象,右键菜单 Select->Select  Objects in the Same Layer选中该图层上的所有对象,如图10所示:
  


  图10选择同一图层上的所有对象
  B、在Example_Philadelphia__2011_1/rules目录下面找到GIS-Driven  buildings.cga规则文件,选中它然后将它拖动到“Building1_footprints3D”图层选中的所有对象上。矢量对象按照GIS-Driven  buildings文件中的规则产生三维模型,如图11所示:
  


  图11 GIS-Driven building规则产生模型
  C、这个规则使用了GIS数据中的屋檐高度(Eave_Ht),脊高(Ridge_Ht)和屋顶样式(Roof  _Form)等属性数据来生成三维建筑。使用规则创建模型的优势是,您可以通过改变规则来轻松地修改模型。例如,选择一个感兴趣的建筑打开Inspector对话框,可以修改屋檐高度,脊高,屋顶样式、侧面纹理和屋顶纹理等属性,如图12所示:
  


  图12修改模型属性
  2、使用建筑轮廓导入已有三维模型
  如果您已经有了一些三维模型,这些模型都是通过第三方建模软件生成的。有两种方式可以将这些模型导入到CityEngine中:
  A、如果模型带有地理坐标,例如dae/kml文件,可以直接将这些文件拖到CityEngine中。也是使用菜单File->Import使用导入对话框工具,将一个目录下面的所有*.kml文件导入到场景中。
  B、如果模型没有位置信息,您可以使用矢量建筑物轮廓来为模型定位。选择Building2_footprints3D图层上的所有矢量对象,在Example_Philadelphia__2011_1/  rules目录下面找到Collada_Buildings.cga规则文件,选中它然后将它拖动到Building2_footprints3D图层选中的所有对象上。即可将已有的模型按照地理位置导入到CityEngine场景中,如图13:
  


  图13导入已有模型
  注:1、可以看到CityEngine可以很好的支持已有三维模型,CityEngine可以很非常方便模型的进行模型修改或更新。
  2、选择所有矢量对象的时候,可以选择某一个模型然后右键菜单 Select->Select Objects in the Same  Layer。还可以在Scene对话框(如图14所示)上关闭其他矢量图层,软后Ctrl+A,选中打开图层中的所有对象。
  


  图14关闭其他图层
  3、创建植物和街道设施
  GeoDatabase中的植物点数据,它提供了植物的位置并且带有植物的大小和类型等属性。根据这些数据可以将已有的三维模型按照正确的大小导入到场景中。选择Vegetation3D  layer图层上的所有矢量对象。在Example_Philadelphia__2011_1/  rules目录下面找到Vegetation.cga规则文件,选中它然后将它拖动到Vegetation3D  laye图层选中的所有对象上。同样的方式选中StreeFurniture3D layer图层上的所有矢量对象,将Street  Furniture.cga规则赋予它们,效果如图15所示:
  


  图15植物和街道设施
  4、创建街道
  从图16上可以看到街道矢量部分插入到了地面里面。
  


  图16街道陷入地形
  这是由高程的精度低或者构建街道的三角网稀疏造成的,可以在CityEngine中进行调整:选择Streets3D  layer上的所有矢量对象,菜单Layer->Align Shapes To Terrain,在Align  Terrain对话框(如图17所示)上Maximal raise distance选项卡中选择1米,点击Apply按钮。
  


  图17调整地形
  选择Streets3D layer上的所有矢量对象,赋予Street  Construction.cga规则,可以在Inspector对话框调整中调整Vehicles per km和People  percentage为道路添加一些车辆和行人,如图18所示:
  


  图18创建街道
  7、导出结果
  3D城市创建完成后,可以使用CityEngine进行浏览也可以将创建好的模型导入到ArcGIS中以进行海量数据的浏览和更深入的分析。将模型导入到ArcGIS中可以先将模型导出成COLLADA  (dae),更详细的操作请关注系列文章《使用GIS模板创造三维数字城市(三)》。




本文来源于ArcGIS产品与技术专栏,转载请注明出处。

回复

使用道具 举报

0

主题

128

帖子

128

积分

RS学狂

Rank: 8Rank: 8

积分
128
发表于 2019-9-5 11:03:13 | 显示全部楼层
真牛,大伽级的应用。
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

2 人签到
将意见发给我们
  • 通过email将您的想法和建议发给我们

    编辑部:bbs@rscloudmart.com

联系我们
  • 论坛官方QQ群:128651389

    论坛客服QQ:2739549450

遥感集市服务热线
  • 400-674-7498

QQ|小黑屋|遥感集市论坛 ( 粤ICP备12003192号-2

GMT+8, 2019-9-17 08:21 , Processed in 0.112508 second(s), 30 queries, Gzip On.

Powered by Discuz! X3.1 Copyright
© 2001-2013 Comsenz Inc.    All Rights Reserved.

快速回复 返回顶部 返回列表