fmedesktop2014高级培训手册_第1页
fmedesktop2014高级培训手册_第2页
fmedesktop2014高级培训手册_第3页
fmedesktop2014高级培训手册_第4页
fmedesktop2014高级培训手册_第5页
已阅读5页,还剩250页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

简 FME版FME2014版本而设计。若您使用FME获a课程详课程结:FME 培训理前提条本培训适用于对FMEDesktop有一定经验的用户,主要目的是让用户熟悉FMEDesktop的概念和操作,在某种程度上是FMEDesktop基础训练的扩展。课程资开开始计算机环FMEDesktopAdobe•第二户参FME什么是参参数类参数类FME创建者:创建和设计工作空间的人员,他们用FMEWorkbenchFMEFMEFMEFME参 例如,创建者决定不需要写出ByteOrderMark,他们可以双击这个参数打开一个框用户参用用户参数是FME创建者为使用者创建的参数,换句话说,他是为最终用户使用工作空间用户参数在导航窗口的指定位置下,以UserParameters标记。框输入,FMEServerWeb(1)创建用户参通常情况下,在User(2)(2)使用用户参户参数可以用在很多地方,首先它能够为属性提供值,其次能够应用到FME参数中AttributeCreator1a:基础参练习1a:基础参方FME作者;Interopolis数总体目使用用户参演使用复杂的用户参启动工作空C:\FMEData\Workspaces\DesktopAdvanced\Exercise1a-完成工作空 1)启动工作空AttributeCreator转换器创建一系列的属性DateFormatter转换器把时间属性转换为XML兼容的ISO格式的参数,如DateFormatter转换器:2)2)XML在导航窗口中,选择XML写模块,展开参数列表,点中PrettyPrint参数双击 框,改变值为YES,点击OK关3)创建用户参。首先,在导航窗口中点中UserParametr:单击OK4)单击OK4)创建多个用户参ParampanyParam”参提示分别为“Enteraddress”和“Enter5)使用用户–方法首先打开AttributeCreator单击AuthorName属性的值,点击下拉按钮,选择用户参数 有没有没有注意到,UpdateDate属性的值设置为“TODAY6)使用用户–方法DateFormatterParameterFetcher框窗口,选择Param作为获取的参数TargetAttributeFME数在FMEServer中非常有用7)–panyEditeValue联用户参数,点击下拉按钮选择UserParameters并选择“ 点击点击OK8)保存工作空间,假如你就是最终使用者,点击文件>打开XML文件,确保插入的内容就是我们想要的内容用户参数用户参数类Choice(选择ChoicewithAlias(别名选择Float(浮点Integer(整型选择和别名选(ChoiceChoicewithFME例如,这个工作空间需要将输入的要素与数据库中的员工号(EmployeeID)进注意,这 框有注意,这 框有两个字段 yname和value(即别名和实际值当用户在列表中选择名字时,对应的员工号(employeeID)Choice(Multiple)多项选择和ChoicewithAlias(Multiple)这些参数是很好的用例,FME将解析输入值是否与参数类型匹配文本参用户参FME参数 也可以右击用户参数“WriteSpatialIndex”选择ApplyToFMEParameter]FME参FME参数都会直接提供给WriteSpatialIndex创建用户参面的例子,先创建一个用户参数,然后连接到FME参数,实际上这个过程是可以同时框,并且自动定义好了用框,并且自动定义好了用户参数,单击OK,用户参数即被创建,并且自到FME直接创建用户参数的优点和缺点创建一个直接FME参数的用户参数有一些明显的优点,也有一些不明显的缺点。在这种情况下就必选创建一个选择类型的用户参数,然后到FME参数中。当然,这需 预参数删掉这些用户参数或者在FME练习1b:简化工作空间-练习1b:简化工作空间-方FME作者;Interopolis数社区地图总体目简化工作空演使用复杂的用户参启动工作空C:\FMEData\Workspaces\DesktopAdvanced\Exercise1b-完成工作空 1)保留“DestDataset_SHAPE”目标数据集参数,用于设置本地的输创建编码参在导航窗口中找到Shape写模块,并展开FME找到CharacterEncodingCreateUser单击OK,用户参数被自动创建创建坐标系统参ChoicewithAliasCoordSysParamSelectOutputCoordinateSystem择FME已经定义好的坐标系。点击OK关 坐标系参创建表(Table)参导航窗口中,读模块的高级参数,选择FeatureTypestoRead参数。右击,并选择CreateUserParameter创建用户参数。可以选择UseAlternateDisyName, CommunityFacilities CommunityFacilities Libraries 指定编码为Unicode8-bit(utf-8)OK运行工作空间。指定编码为Unicode8-bit(utf-8)OK运行工作空间。高级用户参共享参FME此选项的目的是对最终用 或者影藏参数,如果勾选Published(发布),那么用户将OptionalOptional复选框是告诉FME这个参数是可选参数还是必选参数这个RealFileName参数显然是的,用户不需要了解他也不需要设置他参参嵌入式参数可以通过串联得到一个新的值,而参数允许一个完整的Python或者TCL脚使用‘print’命令(Python中)或者使用‘puts’命令(TCL中 写到FME日志文属性名参使用‘print’命令(Python中)或者使用‘puts’命令(TCL中 写到FME日志文属性名参FME参数被设计来接收一个固定的值或者一个属性值,我们称这种参数为_OR_ATTR参数,因为,它允许一个值或者一个属 当需要用户设置FME参数时,可以使用用户参数的方式,当用户运行工作空间,会提但是,这种类型的操作返回的仅仅是属性名称,如果 cer转换器关联这个Paae那么如何才能使用这个属性呢,我们可以在label中或者在文本编辑器中编辑为:练习练习1c:简化工作空间-1)练习1c:简化工作空间-方FME作者;Interopolis数社区地图(文件总体目为经验不足的用户简化工作空演使用复杂的用户参启动工作空C:\FMEData\Workspaces\DesktopAdvanced\Exercise1c-完成工作空打开KMLPropertySetter转换器参数框,注意到,每个都是使用的同一个用户参数来设置KML的要素名称,如下:2)2)因为FME只显示在所有实例中都存在的属性,因此只有素类的属性需要被重命名为相同的名称,因此需要在每个数据流中添加一个AttributeRenamer转换器为每个要素类重命名。LibraryAddresstoLibraryURLto重命 重命为为为重命为重命为为3)添加用户参4)4)使用用户参打开每个KMLPropertySetter转换器的参数框,每个Name字段中设置值为:说明这个参数是FME5)创建用户参你也需要关闭你也需要关闭optional6)创建嵌入式参嵌入式参 保存并运行工作空 模块回 到FME参数,间接地控制FME参数 FME技 第三FME性能评FME性能意味着什对于FME而言,良好的性能指处理空间和表格数据的时间尽可能少,结果尽可能精确,如何改善性有很多因素能够造成FME性能降低,这个章节主要内容就过多的磁盘操资源使用不当FME转换没有完全利用可用资源时会降低性能,例如,系统限制FME使用过多的CPU64位FME32数据量过速0.007mph6464-bitFME什么64-bitFME什么6426416GB实际上,646464FME64位操作系统专门设计的一个版本,由于其有使用更大内存的能力,因此64FME更重要的是,64FME FME64如果64位系统上运行的是32位FME,那么您需32位的客户端去连接Oracle位和64位的Oracle数据库。日志分FME日志文件是您评价性能的最好的朋友,它告诉您转换花了多长时间,时间都在哪儿消耗了,以及FME利用了多少系统资源。解析日志文[可选[可选消我们查看时间域后,消息类型字段如下ERROR:一个错误信息,标志着转换错误,通常需要FME停止运命令命令行去运行FME配置和安装信如果您安装了多个版本的FME,这里可以确认是否是正确的版本在FME3GB时,FME开始释放内存,缓存到磁盘,一旦内存使用小于2GB时,缓存将会停止。这样,FME会自动发挥它的潜能,而不需要使用太多的内存,以至于导致系统或者其转转换信转换统配置日志窗FMEFME运行,如果日志和性能指日志计理时间是25.8秒。其他的时间是FME在等待外部的进默认路一个重要部分是FME的临时 时时。 又例如,MicroStationDGN格式限制了每个元素的节点个数,如果MicroStation写模块接收练习2a:解析日志文练习2a:解析日志方FME用户公数CityNeighborhoods(KML);Cell总体目提高工作空间性演分析FME日志文启动工作空C:\FMEData\Workspaces\DesktopAdvanced\Exercise2a-完成工作空无 运行工作空注意,有两个要素类:1是 信号数据,CSV格式,2是区域范围数据,KML格式。他另外还有一个Logger用以记录日志。先不要运行工作空间,因为我们还不知道它要运行多久打开日志文让我们来看一些指标,FME是如何运行的。25G所以,我们可以看到FME不得不开始优化内存,它可能会进行磁盘缓存导致消耗太多的3)运行工作空读/写模块优评估读模块性 数据消耗了27.5秒 数据的时间是5.4秒 因为Readingsourcefeature的信息一直存在改善读模块性如下,等待系统响应的时间大约占12%CPU首先,查询区域searchenvelope,定 的要素必须在几何范围内 例如,SQLServer格式的读模块,可以WHEREClause参数进行条件过滤 快 CSV数据方法使用PointCloudXYZCSVPointCloudCoercerCSV 第二种情况,特别是文件数据集,当你删掉了所有要素类,读模块还是会在底层数据。例如,右图了3个Shape文件,工作空间中要素类全部被删除,但是读模块任然会数据当工作空间运行时,所有的数据源都会被但是会提示无效的输入:“unexpectedinput”。评估写模块性Recorder转换器,将数据转换为FFS进行保存。 yer转换器代替Recorder,重新保存的FFS数据,并连接到写模块, 们有必要添加一个FeatureHolder转换器。改善写模块性入。因此,如果大数据量的数据立即被写入,而小数据量的数据到缓存中,这样可以的知识可以查看FMEEvangelist练习2b:优化读/写模块性练习2b:优化读/写模块性方FME用户 公数CityNeighborhoods(KML);Cell总体目提高工作空间性演优化读模块和写模块的性启动工作空C:\FMEData\Workspaces\DesktopAdvanced\Exercise2b-完成工作空 启动工作空因此FMEOptionsLogtimestampTools>FMEOptions>Runtime,在选择theLogFileDefaults 页中打开Logtimestampinformation;同时关闭Logdebugginginformation,因为我们不需要查看调试信息。评估读模originallogfile原始日志文件的EmptyingFactoryPipeline实际上,比完整输出完实际上,比完整输出完数据的时间稍微快一点,这并不奇怪,因为FME检查数据过首先,我们需要所有的空间范围,因此不需要设置SearchEnvelope参数。在CSV数据中不是空间数据,因此也没有SearchEnvelope参数。其次,我们能否在读数据是进行过滤?当然,不是说有格式的读模块都有WHEREclause这44)检查其他读模块问题-首先,我们注意到KML了所有的要素类, >Addresses[FILEGDB]读模块Addresses[FILEGDB]读模块好查看写模块性 优化转换过评估转换性或者22.8 改善转换性 (1)FME不能自动提供这些参数,因为他们需要一些先决条件,但是如果用户已经设置好了条Bases通过设置CandidatesFirst,性能如但是,我们怎么能保证Candidate这样做虽不能提高性能,但它能保证Candidate要素优先到达转换器,也就是能保证(2)转这样做虽不能提高性能,但它能保证Candidate要素优先到达转换器,也就是能保证(2)转换器选如果你使用FME有足够长的时间,你就应该知道几乎每个任务都有很多中不同的方法。至还有FeatureMerger另一个例子是,分离穿过公园的道路法是使用 转换器,如图另转换器,通过判断,使用Clippers转换器(MultipleClippers模式)性能如下使用Clippers转换器(ClippersFirst模式)名称,那么你就应该选择LineOnAreaOverlayer转换器,因为它提供了列表参数。(3)属性和转后另一个重要的问题是空间数据,例如Oracle或者GeoMedia通常将几何信息到数据单几何类型复杂几何类型也会终止。几何和转FME用户空间数据,最后输出为表格(非空间数据)时,请尽早移除几何信息,只一般优LoggerInspector转换器,移除或者的FME中已经大大提高了Logger的速度,但是还是会影响Inspector的性能。FME使用浮 习2c:优化数据转换性练习2c:优化数据转换方FME用户 公数CityNeighborhoods(KML);Cell总体目优化工作空间性演优化数据转换的性启动工作空C:\FMEData\Workspaces\DesktopAdvanced\Exercise2c-完成工作空 检查多余的转换因此,删掉连接在CSV3)因此,删掉连接在CSV3)删除属并且GoodLocationsNeighborhoodAttributeKeeper转换器,只保留NeighborhoodName属性。在CSV要素类后面也添加一个AttributeKeeper或者AttributeRemoverStationID,Power,andQuality属性检查基于组的转 须保证Clippers要素比clippee要素先到达,我们可以通过调整读模块的顺序运行工作空重新排列转换检查工作空间Neighborhood的属性只有信号低的才需要,其他的不需要。Tester转换器移动到AttributeRemover后面,Clipper前面,如下图:高级任你还记得我们前面有提到使用PointCloudXYZ格式来代替CSV格式吗?下面我们就来尝试首先删除CSV读模块,以及随后的AttributeRemover/KeeperTesterReaderFormatPointCloudPointCloudComponentMap参数中进行如下设置:其中X,Y这样,CSV每列的值将在pointcloud的组件中,这一步设置非常重要,否则不能正确CSV数据源。点击OK关闭框,成功添加PointCloudXYZ读模块在Expression在Expression参数下打开一个文本编辑器(texteditor,查看点云组件列表(Point单击OK框,输入一个输出端口名BadSignalOK6)添加两个PointCloudCoercer7)最后一步是设置PointCloudCoercer转换器的参数,并且一些必要的属性打开每个PointCloudCoercer转换器的参数框,OutputGeometry参数设置为IndividualPointsPreservePointComponents参数设置为Attributes如下:数据库优使用数据库的一些特定功能能够更有效的提高使用数据库的一些特定功能能够更有效的提高读数据WHEREclauseboundingbox,当你设置这些参数后,FME(,SQLExecutor的属性,那么使用Joiner转换器更合适使用一个SQL来连接表比使用FME读取两个表进行关联(FeatureMerger)效率要好查询和索SQL工具(例如SQLServerManagementStudio)来执行这被验证,因此忽略network这个可以通过“IgnoreNetworkInfo同样的,还有一个“ignoreRelationships还有ExcelExcelformulas参数也会消费很多的时间,关掉这个参数会提高数据的读写数据“FeaturesperBulkWrite”:FeaturesperTransaction(单次事务提交个数FeaturesperBulkWrite(单次发送个数FME性能,值越大,FME会缓存的数据,消耗的内FeaturesperTransaction(单次事务提交个数)FeaturesperBulkWrite(单次发送个数)FME会对单次发送的要素整体提交。单的选项BulkOption写数据和索 同样的原因,当你向空间网络数据库写数据时,也应该关闭网络连通性networking练习2d:数据库优练习2d:数方FME用户 公数Addresses(Geodatabase)Garbage总体目提高工作空间性演优化数据启动工作空C:\FMEData\Workspaces\DesktopAdvanced\Exercise2d-完成工作空 介绍:这个城市有一个服务基于FMEServer,当地居民可以输入可以获取当1)启动工作空。2)运行工作空3)打开写要素类参Geodatabase读模块没有WHEREclause参数,但是读要素类Tester转换重运行工作空Tester转换重运行工作空 并行处什么是并行处理每个FME转换基本上是单进程处理,并行处理是指同时使用多个进程进行转换,实际上果是同时有8个进程运行。但是在每个级别上都有进程上限:因此,如果你是BaseEdition版本的,你的进程数不可能错过4个,不管你的计算机转换器并行处FMEetc.)没别进行处理。为了提高转换效率,设置并行处理参数:并行处理分 ModuloCounter或者RandomNumberGenerator2e:并行处练习2e:并行处方FME用户;Interopolis城市,规划部数总体目并行处演优化数据启动工作空完成工作空 plete- plete-1)性能、FMEServer、FMEFMEFMEServerFME在性能方面,使用FMEServer的主要原因是FME(SLB))分配任务给FME引擎。使用Server进行大量转间时,希望通过FMEServerPNGFMEServer,然后再创建一个副工作空间来控制它,这个副工作空间计算每个瓦片的轮廓,并且通过ServerJobSubmitter运行刚发布的主要的工作空间。那么这样就可以充分利用FMEServer的多个引擎,提高转换速度。推送FMEFMECloudFMEServer,通过按功能计费使用,这样的好处是你不必买FMEServer,当你需要的时候就可以使用。下图 在FMECloud上的一些自定义转换器使用FMECloudInstanceLauncher转换器,可以让主工作空间(上面介绍的自动在FME模块回FME理64-bitFMEFMEServerFME技第四定义转换创建自定义转换什么是自定义转换自定义转换器目整洁工作空重复使FME的最佳实践,既能够提高项目的速度也能降低项目的量。创建自定义转换可以通过菜单栏Insert>CustomTransformer创建自定义转换器;也可以通过在画布中右击新的自定义转换器将会被这3个栅格转换器预填充。命名自定义转换分类可以匹配FME转换器库中已有的类别,也可以自定义一个类别信息,例如使用要求requirementshistory、以及法信息,例如使用要求requirementshistory、以及法律条legal等定义自定义转换在导航窗口中,TransformerProperties当点击进入MainTab3口与自定义转换器中input/output对象相匹配练习3a:创建自定义转换练习3a:创建自定义转方FME用户;Interopolis城市,规划部数City总体目使用自定义转换器计算某个区域内人口演创建和使用自定义转换启动工作空C:\FMEData\Workspaces\DesktopAdvanced\Exercise3a-完成工作空 介绍:同事有一个工作空间是计算neighborhoods区域的人口密度,刚刚发现了自定义转启动工作空创建自定义转换你会发现有ExpressionEvaluator转换器一个是计算2001年,另一个计算2011Transformer”,创建自定义转换器。DensityEvaluator是比较合适的名称。 DensityCalculator;FME中已经存在并点击OK,自定义转换器将会自动创建并点击OK,自定义转换器将会自动创建3)浏览自定义转换20015)5)使用自定义转换重复使用自定义转换新添加的自定义转换器会自动修改名称,如果名称存在的话(通过后缀添加编号的方:编辑自定义转换 自定义转换器输入/输出端首先,输入首先,输入/输出对象可以重命名,你可以双击输入/F2Inpu(Output练习3b:自定义转换器重复使用和方数FME用户;Interopolis城市,规划部City总体目设置一种计算密度的简单方演重复使用和编辑自定义转换启动工作空C:\FMEData\Workspaces\DesktopAdvanced\Exercise3b-完成工作空 练习3b:使用练习3b:使用自定义转换注意到,我们使用了一次自定义转换器,用于计算人口密度,但是后面使用了单击ExpressionEvaluator转换器,按delete键,删除它。自定义转换器设置的是TotalPopulation2001。运行工作空编辑自定义转换6转换器,双击输入端口,或者按F2,重命名输入/输出端口。自定义转换器和模属性模但是,还是这个自定义转换器,连接的数据源发生了变化,并且用户参自自动模式处 例如,下面是一系列KMLFME在这个实例中,使用ParkCycleVisitors在这个实例中,使用ParkCycleVisitors和ParkHikingVisitors作为X/Y的大小,使用TotalParkVisitors作为高被被这样用户不需要将属性重命名为的参数这说明FME„HandlewithPublishedParameters‟设置非常有效,当创建自定义转换器时,但是也需要一我们希望使用我们希望使用ParkName但是,在创建自定义转换器的时候,ParkNameParkName属性练习3c:自定义转换器自动处理方FME用户;Interopolis城市,规划部数City总体目自定义转换器自动处理模演自定义转换器的处理模启动工作空C:\FMEData\Workspaces\DesktopAdvanced\Exercise3c-完成工作空练习3c:自定义转换器自动处理模1)启动工作空设置参数提实现单位选右击,选择AddParameter Density在在1,显示名为Sq点击OK 4)实现参点击点击OK5)打开RandomNumberGenerator转换器参数框,设置参数如下Minimum um Result Weighting属 这样会自动创建用户参数,在导航窗口中可以编辑此参数,点击右击,选择Edit 调整计在现有的表达式后乘以WeightingAttribute的属性OK随机生成的权重属性,通过RandomNumberGenerator返回到主界面,不选择weightingtesterFailed端口输出,因为没手动模式处-Manuall处理输出属然而,我们并没有清除其他不需要的属性,例如:_area,_min,和_max等。想要清除这些属性,在自定义转换器中,双击output端口,打开参数 出的属性。这是FME2014的新功能:练习3d:自定义转换器手动处理练习3d:自定义转换器手动处理方FME用户;Interopolis城市,规划部数City总体目为计算平均密度创建一个简单的方演手动处理模启动工作空C:\FMEData\Workspaces\DesktopAdvanced\Exercise3d-完成工作空启动工作空打开工作空间创建自定义转换选择“CreateCustomTransformer”创建自定义转换器。这次,设置AttributeReferences参数为“Advanced-FixManually”> Attribute Density需要注意的是,勾选Published选项,关闭Optional选项,这个参数是必选参数点击OK,创建参数。应用发布参你会看到表达式中TotalPopulation2001为红色,因为它并不有效。单击OK,关第四部的@Value()需要保留,因为参数返回的是属性名,而不是属值,添加@Value()后,表示属性5检查参点击下拉按钮,选择TotalPopulation2001属性。(Ctrl+D选择TotalPopulation2011属性。如下:7)自定义转换器类自定义转换器类 式和嵌入式转换(1)嵌入式转换(2)转换导出自定义转换进入自定义转换器界面,在菜单栏中,FileExportasCustom在点击OK,创建了一个自定义转换器,并且在画布中会自动添加一个实例本地存FME有一个特定的自定义转换器安装路劲,如果自定义转换器文件保存在此路径下,它将插入模当导出自定义转换器时,InsertMode4种不同的切换自定义转换器类。。当然,不能忘记,因为打开编辑时需要。同样,自定义转换器也可以被,用户如果没有码不能使用,LicenseChecker转换FMEyzer换器中还了其他的自定义转换器,比如VertexCounterAzimuthCalculator、在VertexCounter中, 了自定义转换LoopFilter自定义转换器版为什么使用版但是更重要的事FME发布的新版本和新功能。创建版本自定义转换编辑转换器指定版更新转换器版>ransformers练习3e:自定义转换器类练习3e:自定义转换类数总体目演FME用户;Interopolis城市,规划部创建一个自定义转换器用户计算要素的平均自定义转换器;自定义转换器版启动工作空C:\FMEData\Workspaces\DesktopAdvanced\Exercise3e-完成工作空 启动工作空Length转换的内容是相当明确的,所以我们先添加两个转换器LengthCalculator3)3)创建自定义转换出端口,连接到StatisticsCalculator转换器的Complete端口。接着打开最后,打开Output端口的参数,选择“SpecifiedAttributesOnly”并指定属性运行工作空导出自定义转换在菜单栏中导出自定义转换器,选择File>ExportasCustomTransformer,在 保转换器类型是LinkedbyDefault,确保 的路径为FME自定义转换器默认 点击OK,关闭框自定义转换器(AverageLengthCalculator.fmx) ,检检查自定义转换更新自定义转换打开GeometryFilter转换器参数,选LineArcOKTransformerOutput,将输出端重命名为Rejected并连接到<Unfiltered>端,如下:10)在工作空间中右击AverageLengthCalculator转换器,提供更新到 自定义转换器和并行处法设置自定义转换器并行处 用户可以为发布的参数选择分组的属性,例如,下面的自定义转换器为不同用户可以为发布的参数选择分组的属性,例如,下面的自定义转换器为不同ParkName如果,不想用户设置这个参数,可以关闭Published复选框例如,RasterResampler实际上没有重采样数据,只是标记数据被重么FME只会对裁剪范围内的数据做重采样。练习3f:自定义转换器并行处练习3f:自定义转并行处数总体目FME用户;Interopolis城市,规划部3DPointCloud(ASPRSLidarDataExchange转换点云到点数演自定义转换器并行处启动工作空C:\FMEData\Workspaces\DesktopAdvanced\Exercise3f-完成工作空 1)启动工作空)现在选择PointCloudThinner和PointCloudCoercer转换器,创建自定义转换器。注意,不要包含Tiler转换器,因为这是我们用于创建并行处理的。处Level)为Moderate。点击OK,关闭框,你会发现并行处理属性(ParallelProcessBy)设置并行处理属5)运行工作空5)运行工作空)如果你有时间,返回到工作空间,对每种并行处理级别进行实验,Aggressive级别是否会自定义转换器和循什么是循 ple设置自定义转换器循你可你可以打开循环输入端口的参数,关闭“publish”复右击>insertTransformerLoop,添加循环对象点击OK循环循环和自定义转换器类:Enabl当设置为YES,其他参数会自:练习3g:自定义转换器循练习3g:自定义转换器循数启动工作空完成工作空FME用户;Interopolis城市,规划部CityNeighborhoods(KML)City计算绿化树十的街自定义转换器循C:\FMEData\Workspaces\DesktopAdvanced\Exercise3g- 介绍:我们想要计算neighborhood街区中树的个数排10的街区,我们已经把想从列表中提取前10的街区信息时遇到了一点问题。通过上面的培训,你这个可以使用循环来完成启动工作空换器前面添加一个Sampler转换器,可以截取一部分数据。创建自定义转换连接自定义转换在框中设置loopback为刚刚添加的Loop端口。如图:属6)定义循环参因此,首先需要添加Lis 选择计算的列表为_histogram{},计数的属性为SpeciesCount,如下:定义循环添加一个AttributeCreator转换器,在LisementCounter之后,用它创建一个循环属定义循环与之一样为LoopCounter。9)LoopCounter=10连接Passed端口到OutputFailedLoop 10)连接循环输入端口11)添加ExpressionEvaluator之前,并且将LoopAttributeCreator要作为转换器的输入。 打开参数框,设置OldAttribute为value属性,设置NewAttribute为:Species1:OakSpecies2:Cedar例如,前8为,前20位只需修改Tester转换器的参数。模块回FME技第五章和写Zip文件基础DESKTOP课程包括如何从一个zip文件中 例如,单独一个Shape要素类由几个文件组成:shp,x,dbf,pj等。一个hpe数据集由po处理发布到一个,表明-zpZip扇 要素类扇结果在结果在DXF 练习4a:扇出和Zip文方FME作者;Interopolis城数总体目将每种区域类型转换单独的Shape文演扇出和写出Zip文启动工作空无完结果在一系结果在一系列DXF数据集中,在每层中高程线都具有一个高程数据集扇出在Workbench中的导航窗口定义,在写模块的高级参数需求者认为这是一个很的任务,但是FME只需要两分钟,即可解决该问题启动启动Workbench并生成将MapInfo源数据转换为Shape的工作空间。默认情况下,工作空3)3)添加 4) 框属性字段,选择ZoneName(.+)$保持替换文本字段为5)点击OK关闭框 查看Zones.zip文件。若打每个区域类都有一个Shape文件通用读模块/写模通用读模块和写模块使得FME工作空间摆脱格式束通用格 通用读模 参数允许指定的数据格式,或者使FME从源文件的数据扩展中确定格式 通用读模块参所以,例如,一用户想使用通用读模块应用特定的参数来GML数据集,如何实现呢?方法。因为它使用参数而不任何数据(关于资源读模块详细信息在本章的后面部在在GML读模块中,有一个参数控制x/y„然后定位/设置GML 通用写模块与添加其他写模块方式一样,通过在新的写模块框中指定 FMEFME是语义转换器,记住这一点很重要。进行转换的输出数据需要适合目标格式的定义通用写模块参练习4b练习4b方FME作者;Interopolis数社区地图演无完 使用FMEServer数据 启动 Geodatabase(FileGeodbAPI) 工作流选项:SingleMergedFeature通过选择单独融合要素类选项(SingleMergedFeatureType), 点击OK关 当提示时,点击“Yes”按钮添加一个新的要素类到写模 点击OK关闭栏,然后添加新的要素类。连接其到源要素类点击„浏览按钮进行配置,打开一个新 点击„浏览按钮进行配置,打开一个新 选择一些最常见的格式,如Shape,AutoCADDWG,GML,和MapInfoTAB然后点击OK然后点击OK两次,直到关闭 参选择创建的输出格式参数,然后点击OK6)格式属这个可以从名为fme_feature_type的格式属性获保存工作空间,然后使用提示运行,运行该工作空间。提示时,选择一些源表格(至少包括GarbageSchedule,加上另一个),然后设置一个输出文件夹。设置Shape作为写出的检查输出文件夹。所选表格已经写回到Shape动态转 动态转换看起来是怎样的‘<All>(其提供了这里所发生事情的线索),并且唯一的写模块要素类被命名为‘DYNAMIC 启动读模块格式:Geodatabase(FileGeodb输出格式: 动态转换中的模式处其定义在PostGIS中,并已经添加为资源读模式定这里,每种输入要素假设其拥有一个名为OutputLayer的属性 „ 查看数格式:GML(地理标记语言现在,在FMEDataInspector中查看这两个数据集,并熟悉他们。在社区地图中,已经有公启动读模块格式:GML(地理标记语言写模块格式:GML(地理标记语言 选择读模块从菜单栏添加读模块。跟着下面提示,添加读模块:格式:MapInfoTAB(MITAB)一个需求即使用已有模式。所以firehalls不可能添加为资源读模块,因为在社区地图中,读模块格式 读模块格式 点击OK,然后添加读模块为5) 框。在动态特性下点击模式源编辑„]按钮标记CommunityMap,确查Parks。点击OK现在点击编辑[„点击OK关闭该框,然后再次点击OK,关闭要素类特性框查看输出。这里有两个图层:一个是firehalls,另一个是parks。Parks数据集有删除属„点击框底部„按钮旁边的属性删除。 框中,输入OBJECTID进入第一个字段。您不能从下拉列表中选择他,因为点击OK关闭8)添加属最后一个要求是添加一个属性-LastUpdatedBy-到输出中的所有表 9)查看输出,注意OBJECTID不会再出现在属性中,属性中有一个LastUpdatedBy属性,虽然高级动态属性模 基础表模这里,用户列出了一系列定义在输出模式中的要素类,属性,和几何对象类型。在FME中将通过添加资源读模块使用该模式。资源读模块的格式是Schema(From输入属性必须映射到输出模式。最好的方式就是SchemaMapper当带有这样属性的要素发送到一个动态写 FMEfme_varchar(width)fme_char(width)其他字段:fme_decimal(width,decimal)fme_real32日期时间字段:fme_datetimefme_time数字字段:fme_buffer 1)若是您未安装Excel,可以用FMEDataInspector打开,并转换到表格浏览2)启动打开工作空间C:\FMEData\Workspaces\DesktopAdvanced\Exercise4e-提示提示时,点击OK确定连接到这个 下面,从该文件选择Sheet1为Excelsheet来 上面的参数按钮,然后设置如要素类Featureype 5)在通用中点击模式源编辑按钮。不勾选FireHalls,勾选CommunityMapSchema点击OK,再次OK关闭框您是否注意到,模式电子表格包括Zones数据集的记录,因此按照下面提示添加一个读模:读模块格式:MapInfoTAB(MITAB)导出为CSV数据集 我们仅需添加AttributeRenamer转换器来处理这种改变,但是最好的方式是使用我们仅需添加AttributeRenamer转换器来处理这种改变,但是最好的方式是使用在电子表格的sheet2中,输入 添加SchemaMapper转换器到工作空间,两个输出端都连接到输点击参数按钮。阅读下表,关闭Sheet1,选择Sheet2.点击OK重命名,而非:这章来看一下用FME和写出数据集的高级技术FME技第六属性处构建大多数情况下,工作空间需要的值是构建出的一系列已有值,或者一种算术运算,FME转换器构。集成构器的参数框窗口。大部分转换器参数有一两个内置功能允许其发生:文本剪辑器或者文本编辑FME要素属作者可以直接影响到FME功能所有FME函数是@functionname()形式,括号里面的部分作者可以直接影响到FME功能所有FME函数是@functionname()形式,括号里面的部分操作。数学函数是通用的高级算术函数,例如int,cos和log尽管如此,在使用了唯一的高级编辑器函数,FME不能从高 算术编辑仅FME函数和字符串函数能使其返回为一个数字;例如@Area@Count,和属性,结合@Area()函数 人或者其他的。Interopolis城市的工程部门已使用FMEServer,并且现在创建一个KML仪表板来提供FMEServer信息。在这个工作空间中,转换交通信号的在这个工作空间中,转换交通信号的DWG数据集到KML。KML 。1)AutodeskAutoCAD指定了信号的ID2)启动打开工作空间C:\FMEData\Workspaces\DesktopAdvanced\Exercise5a- 您很快会发现,这部分是构建的一个指到FMEServer的超 放置AttributeCreator 表达式现在看起来像这样,带有<STRING>预先选定部定位到fme_text_string属性,双击,将其插入表达式中<INT>字段需要从SubstringExtractor转换器中获取的值。这种情况下,值是4(第5双击Username双击Username,插入用户参数到表达式中注意属性是如何通过@Value()函数表示,而参数表示为点击OK5)框,然后再次点击OK,关闭AttributeCreator 创建的AttributeCreator到输出要素类,清理工作空间,然后删除已有的条件属性 在那个方案中,使用一个简单的AttributeValueMapper转换器即可解该框,使用TesterTestFilter几乎是一样的。一系列复杂条件可以依次定义,通过条什么时候使用条件属性值启动打开工作空间C:\FMEData\Workspaces\DesktopAdvanced\Exercise5b-找到我们要处理的数据,在工作空间中添加Inspector转换想在AttributeRenamer输出端附加一个Inspector。了在Inspector参数中设置一个评估方因为他们不是固定的值;高程可以是0-60内的任意值。因此直接映射需要60x5300组合!错的选择,或者AttribungeFilter。为映射数据,最好要用到AttributeValueMapper或者AttribungeMapper。但是整个过程中,我们将设置属性值,所有为什么不直接用选择方 这是一个两步处理过程,包括一个AttributeFilter和几个lAttribungeMappers转换器放置放置AttributeFilter,连接到AttributeRenamer添加 因此,选择Elevation作为源属性,输入FloodRisk作为输出属在范围查找表中,根据下面提示输入From-To值01025点击OK,关 -最简单的方法就 我们刚刚设置的 ngeMappers转换器因此,点击已有 ngeMappers转换器,按住 添加连接到每个AttribungeMapper打开Inspector参数框,Group-By下,Group-By下,选创建的FloodRisk属性这也是一种过滤过程,但是仅在一个单独步骤中使用TestFilter过滤所有数据4)放置放置TestFilter,连接到AttributeRenamer转换器双击第一个测试条件字段,并打开像ester的框并且Elevation<=10时。试为AND(例如两个条件语句都)必试为AND(例如两个条件语句都)必须为在现在点击OKZone=200ANDElevation<=10Zone=100ANDElevation<=(1AND3)OR(2AND在在输出端参数输入2,然后点击OK现在对其他每个洪水风险值重复这样的步骤。zone3将有三条语句,zone4后zone5添加的FloodRisk属性(和值例如:端口1:FloodRisk=1添加这是一步处理过程,包括一个这是一步处理过程,包括一个AttributeCreator转换器4放置放置一个AttributeCreator转换器,连接到AttributeRenamer在AttributeName输入FloodRisk双击第一个测试条件字段,将打开一个类似Tester并且Elevation<=10时。因此,设置Tester测试语句Zone100ANDElevation10。这里最重要的地方就是设置测 OK,现在双击下一个测试条件,设置FloodRisk=2根据表格,FloodRisk=2Zone=200ANDElevation<=10Zone=100ANDElevation<=(1AND3)OR(2AND现在对其他每个洪水风险值重复这样的步骤。zone3将有三条语句,zone45)添加开Inspector参数框,在Group-By下选择创建的FloodRisk属性6)多要素属XY多要素方多要素方多要素功能通过在AttributeCreator转换器中勾选标记为支持多要素属性复选框这这里我们有一个Interopolis城市的降水量数据集。不幸的是,这些数字都是累计的,规划1查看是在FME中,需要我们使用多要素属性当创建工作空间时,检查读模块参数,确保FME能识别每列顶部在在新建的工作空间中,在读模块和写模块要素类中放置一个AttributeCreator转换)框,在AttributeName字段中选择名为Precipitation的已有属性然后勾选标记为支持多要素属性的复选框。将保留的NumberofPriorFeatures接下来设置‘IfAttribute设置AttributeCreator参数–2部-FME 算符–(减去要素[-1]的FME点击OK关闭算术编 框,然后再次点击OK,关闭主要 调整现在,回到现在,回到AttributeCreator,修改属性为创建的7)NullNull属性是一个相对比较新,但是非常重要的,FME的属性处理部分什么Null属性是NaN(不是数字FME如何表达Null值>Null当FME数据时,若源属性包括无效值-那么读模块格式更新到支持它们-那么FME将发检查输入空值,Tester转换器有一个专门操作器来测试无效,空,和缺失值因为Tester界面纳入FME的许多方面(例如TestFilter转换器),您可以测试在界面中找到其他转换器,例如Matcher,也允许测试无效值。Matcher的情况下,有一个参数用来决NullNullAttributeMapper转换器允许NullAttributeMapper转换器允许作者检查

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论