锻炼8 高程模型更新
数据 轮廓(esri shapefile)
光栅正色摄影(JPEG)
总体目标 使用更新的信息生成三维表面模型
演示了 工作区组件和参数
开始工作
结束工作 C: \ \ DesktopBasic \ Components-Ex8-Complete.fmw FMEData2016 \工作区
C:\fmedata2016\workspaces\desktopbasic\components-ex8-complete-advanced.fmw

这个城市正在规划一个新的房地产开发项目。规划部要求对城市立面模型进行三维可视化,考虑到这一新的发展。

任务是读取当前的海拔模型,申请物业发展商提供的更改,并以adobepdf格式创建三维输出。

你的经理已经把这个任务交给你了,认为这将是非常困难的。他不像你那么了解我!



1)检查数据
第一个任务是将现有的轮廓文件读入工作区。检查文件夹,你会看到轮廓线被保存在一组形状文件块中:

可以使用FME数据检查器检查这些源文件。


2)添加读卡器
启动FME工作台,从一个空白的工作区开始。选择Reader >添加Reader读取轮廓文件:

读者的格式 ESRI形状文件
读者数据集 C:\fmedata2016\数据\高程模型\等高线\*.shp

在选择数据时,选择该文件夹中的所有形状文件。但是不要点击OK。首先,为“单一合并要素类型”亚搏在线选择工作流选项:

这将做的是添加一个单一的功能类型与合并过滤器自动设置:


妹妹直观的说……
这是一个巨大的捷径。它添加了一个单一的功能类型,并设置了一个合并过滤器来读取所有数据。在这个场景中,与每个文件都有自己的特性类型相比,它使工作区更加整洁和易于使用。

当然,这只适用于所有源文件都具有相同的属性模式(比如这里),并且我们确定要读取所有的源层(我们这样做了)的情况。


3)添加读者
现在让我们添加开发人员的数据。再次从菜单栏中选择“读卡器>添加读卡器”。

读者的格式 ESRI形状文件
读者数据集 C: \ FMEData2016 \ \包裹\ NewDevelopment.zip数据

因为数据是以zip文件发送的,我们仍然可以读到,但是当我们浏览数据时,我们需要更改过滤器以查找zip文件:

我们应该做的另一件事是将工作流选项设置回单个功能类型,亚搏在线以防里面有轮廓线以外的数据。

现在单击OK。当提示您从zip文件中选择所需的功能类型时,仅选择新加入者。


4)添加ChangeDetector
变化检测器变压器将告诉我们在这个数据集中哪些轮廓是新的,更换,和之前一样。所以,放置一个变化探测器变压器,并连接它。原始等值线应连接到原始端口(!),修改后的等值线连接到修改后的端口。

你可以检查参数,但没有人需要改变。我们可以检入2D,因为轮廓线是2D的,带有高程属性。


5)增加检验人员
将检查器转换器添加到变更检测器的输出端口,并运行工作区,以查看到目前为止我们得到了什么。


提示
可能会出现意外的输入移除器,但你知道这不是问题正确的?我们故意选择不从源数据中读取buildingfootprint或标签。

你会发现3967条等高线没有变化;即。它们在原始数据和新版本中。增加了7条等高线;即。它们出现在新的数据中,而不是原始版本中。删除了三(3)个轮廓;即。它们出现在原始数据中,但不出现在新数据中。

我们将要从未更改和添加的特征生成新的立面模型;删除的我们可以删除。但首先,还有一个更紧迫的问题……


6)导入特征类型定义
您是否注意到添加的轮廓线没有设置高程值?这是一个问题,因为我们不能生成一个适当的三维模型没有海拔!必须是源数据中的标签用于表示轮廓高程(可以使用数据检查器打开数据并确认这一点)。

因此,我们需要将这些数据添加到工作区中。我们已经有了一个阅读器,所以您只需要添加特性类型。

因此,选择读卡器>导入功能类型并选择要导入到的新开发读卡器。这一次,当列表出现时,请务必选择标签的功能类型:

单击OK,现在应该得到一个新特性类型。因为我们从一个zip文件中读取,我们甚至不需要更改dataset参数;FME无论如何都会收集数据。


7)添加邻居查找工具
邻域查找变压器将标签值转移到最近的轮廓上。所以,添加一个睦邻查找变压器,并连接它。变更检测器:添加的功能是基础,标签是候选:

打开参数对话框并设置最大距离参数。这定义了从轮廓到标签的最大距离。因为标签看起来几乎在轮廓的顶部你可以把这个设置为一个小数值,例如5。

现在添加更多的检查器并重新运行工作区,以确保所有七个轮廓特征现在都有一个高程值。


8)增加3dforcer
有一个仰角属性很好,但要实际创建一个三维模型,我们必须将其转换为真正的z值。这是用3DForcer变压器完成的,所以放其中一个。ChangeDetector: changed和NeighborFinder:Matched是我们需要处理的特性。


.1更新
上面截图中的3DForcer变压器获得了a FME2016.1中的端口

现在打开parameters对话框。海拔高度,单击下拉箭头并选择属性值> Elevation。

再次运行工作区,你会看到轮廓现在有一个Z值和数据检查报告,他们是真正的3D功能:


9)添加SurfaceModeler
现在我们有了三维轮廓,我们可以创建一个表面模型。添加一个连接到3dforcer输出的SurfaceModeller变压器。要连接的输入端口是点/线。

打开parameters对话框。设置表面公差为1,并关闭输出轮廓的复选框(没有它会运行得更快)。如果现在将检查器连接到tinsurface输出端口并运行工作区,您将能够以3D方式查看数据。


提示
要在FME数据检查器中以3D方式旋转数据,点击工具栏上的轨道图标,如果有的话,也可以按下鼠标中间的按钮。


10)放大比例(可选)
如果温哥华看起来有点平,那为什么不把Z调大一点来补偿呢?

在3DForcer之前添加一个ExpressionEvaluator,并用它将仰角值乘以4。您将要使用to选项将结果应用于现有属性:

现在温哥华将有一个更有趣的简介:


11)添加编写器
现在,让我们来编写这个数据。选择authors > Add Writer并添加一个具有以下规范的Writer:

写入程序格式 Adobe三维PDF
作家数据集 C:\fmedata2016\output\training\surfacemodel.pdf文件

确保您选择了PDF编写器的3D(而不是2D)版本。您可以选择以任何您想要的方式为输出添加新特性类型。最好的方法是从Add Writer对话框中选择手动或自动。给特征类型起一个名字,例如Surface,并将其连接到SurfaceModeller:TINSurface端口。

在编写器参数(导航器窗口)中,找到背景颜色参数并将其更改为黑色(0,0,0)。找到页面大小参数并将其更改为600 400:

现在运行翻译。找到输出数据——大约需要一分钟的时间来写——然后在AdobeReader中打开它。


高级健身
现在,您已经使用阅读器和编写器(以及转换器)来更新仰角模型并创建它的3D呈现。但我们能做的还有很多。

作为一个高级任务,让我们把光栅图像悬垂到表面模型,使它看起来更漂亮。


12)添加读者
添加一个读取器来读取光栅数据。细节是:

读者的格式 联合摄影专家组
读者数据集 C: \ FMEData2016 \ \ OverlayImage.jpg资源


13)添加AppearanceSetter
现在添加一个外观排字机变压器。这是用来应用光栅作为一个“外观”或纹理到DEM表面。栅格数据为外观,TINSurface端口为几何形状:

打开parameters对话框。将“Set Appearance On”更改为正面。

展开切片纹理坐标生成参数,从俯视图设置“纹理映射类型”:

运行工作区(如果PDF在adobereader中打开,请确保首先关闭它)。这一次,PDF输出应该有一个光栅图像覆盖在它上面。


警告
默认情况下,PDF输出的大小将接近100mb。如果这个太大,你的电脑无法处理,在jpeg功能类型之前添加一个rasterresampler转换器,并将参数设置为重新采样为原始的25%。

PDF现在只有8mb大小,但质量会,当然,是少得多。


14)覆盖建筑占地面积
在之前的输出中,你有没有在将要开发新特性的地方发现表面的肿块?我们能做的最后一件事是添加建筑轮廓,这样我们就能看到它的走向。

由于工作区中没有构建数据,所以第一个任务是使用导入特性类型将其添加回NewDevelopment Shapefile阅读器。

将其连接到SurfaceModeller:DrapeFeatures输入端口(即我们想把建筑挂在正在生成的3D表面上)。

添加挤出机变压器,连接到surface emodeller:DrapedFeatures输出端口。

将挤出机参数设置为挤出数据的高度为25。这将建造一座25米高的建筑。

现在添加一个新的Writer特性类型,为建筑物创建一个新的输出层。将其连接到挤出机变压器,您将有一个如下所示的工作区:

运行工作区,现在输出将如下所示:

哇!即使考虑到DEM上4倍的尺度增长,这座建筑在温哥华的天际线上非常显眼!


祝贺你
通过完成这个练习,你证明了你知道如何:
  • 将阅读器和编写器添加到工作区
  • 设置读写器参数
  • 导入阅读器功能类型
  • 从zip文件读取数据
并学会了如何:
  • 添加读卡器时使用“合并要素类型”选项
  • 转换轮廓到三维表面模型
  • 将光栅图像悬垂到3D表面模型上

结果匹配”

    无结果匹配"