今天早上我和FME桌面v2017.1.0.0(B 17539)一起工作。突然我得到一个信息:
为以下格式创建读卡器:Oraclenon Spatial
无法打开文件d:\apps\fm\metafile\.fmf
我读过已知的问题
我们已经为FME 2018.1解决了这个问题。此问题是在databasejoiner中显示Oracle表列表时出现的问题。
ik与sqlcreator具有相同的消息。
-FME试图打开元文件吗?我们能替换这个丢失的文件吗?
-在db joiner中,这是否与我在sqlcreator中的错误相同?
-是否有可用的解决方法(我尝试创建一个新的db joiner,甚至将整个ws复制到一个新的ws,并替换所有db joiner,但这不起作用)。
(-安装FME 2018将在一个月或两个月内完成,但我不能等太久,否则我必须先把这个问题上报给我们的经理。)
谢谢你的回复
FeatureJoiner是FME 2018的新变压器。它类似于特征合并变压器,但有一个更简单的过程和更好的性能。如果您熟悉SQL,那么您已经知道如何使用FeatureJoiner。下面的文章将解释如何使用FeatureJoiner的基础知识;有关更深入的解释,请参阅FeatureJoiner文档.
jointypemodata.xlsx(连接类型数据.xlsx)
FeatureJoiner中有三种连接模式:内部向左完全联接。与特色并购相比,FeatureJoiner可以更容易地处理具有多个匹配项的功能(即1米:m:n和m:1)。匹配的每一组功能都将创建一个联合输出,因此,如果你习惯了功能合并,那么输出可能与你预期的不同,但这是正确的。
要在FeatureJoiner中设置连接类型,进入参数并更改连接模式。
内部联接使用一个公共标识符将两个表连接在一起,并且只连接标识符出现在两个表上的数据,这将通过连接的输出端口输出。标识符不匹配的所有其他数据将被忽略,并将通过未连接的右/左端口输出。
对于内部连接,只有五条记录是根据它们的作业公用标识符联接的。
左联接使用一个公共标识符将两个表联接在一起,并将具有相同标识符的所有记录联接在一起,并保留左表中的所有记录,即使标识符与右表不匹配,然后忽略右边没有匹配标识符的所有记录。
五条记录是根据它们的作业公用标识符以及左表中的其他三条记录进行联接的。由于右表上没有匹配的公共标识符,这些属性是
完全联接使用它们的公共标识符将左表和右表整体联接在一起。如果有没有公共标识符的记录,它们将通过FeatureJoiner上被拒绝的输出端口输出。
五个记录完全结合在一起,但左表中的其余三条记录和右表中的其余四条记录都包含在内。所有功能将通过连接的输出端口输出,除非没有公共标识符的值,这些值将通过被拒绝的输出端口输出。
1)打开FME工作台
下载并打开FME Workbench中的ParksFeatureJoinerDemo.fmwt工作区
在parks.tab和communitymapping.gdb的parks表中读取初始工作区亚搏国际在线官网
此工作区将parks.tab数据集与社区映射地理数据库中的parks表联接。亚搏国际在线官网parks geodatabase表包含要加入parks.tab数据集的每个park的地址和URL。我们将用公园名加入这两张桌子。
Parks MapInfo选项卡表[MITAB]
从CommunityMapping亚搏国际在线官网文件geodatabase[filegdb]中驻留表
2)连接FeatureJoiner
将Parks[mitab]功能类型连接到FeatureJoiner上的左侧输入端口,然后将Parks[filegdb]连接到右侧输入端口。
两个风场数据集都连接到FeatureJoiner变压器
然后在FeatureJoiner参数中将连接模式设置为Left。对于属性冲突解决和几何处理参数,设置为使用“左”。
FeatureJoiner连接模式参数,全设左
接下来的join on设置左边为parkname,右边为parkname,然后将比较模式更改为string。如果愿意,可以将比较模式保留为自动。
join on参数设置为左右两侧的parkname,比较模式设置为string
3)运行翻译和检查
在启用功能缓存的情况下运行转换
65个联合功能,15个不相关的权利特征和15
看起来我们已经加入了65个功能,15个特征与右表不相连,15个特征被拒绝。让我们检查一下被拒绝的特性。单击被拒绝端口上的检查图标检查数据检查器中的功能。
看看这些特性,看起来它们是一个很小的无名公园,是为了创造交通安宁区而建造的。因为他们没有名字,所以不能加入,但即使他们被拒绝了,我们仍然可以保留他们。
4)附加功能
将一个attributeManager添加到画布,并将其连接到FeatureJoiner上已加入和已拒绝的输出端口。添加attributeManager的唯一目的是显示加入和拒绝的功能将在工作区的其余部分继续。
在启用功能缓存的情况下再次运行转换,然后检查attributeManager输出数据。我们将有80个特性,当我们检查数据时,命名和未命名的公园都包含在表中。
连接到已加入和的
加入和
数据属性
此处使用的数据源于温哥华市,不列颠哥伦比亚省。它包含根据开放政府许可证(温哥华)获得许可的信息。
大家好,
我有两套数据
我需要加入这两个,这样我就可以使用一个表达式评估器来确定百分比。如果它们没有要联接的公共属性,我该怎么做呢?我尝试了一个功能合并,把它们都赋值为1,因为我想我在某个地方读到了一篇有用的文章…但又找不到那篇文章:- (
谢谢!
虹膜
将存储索引的格式添加到databasejoiner transformer-like mapinfo选项卡,ESRI SIP文件,等。其中包括对编写器进行索引。
我的用例正在瓷砖网格中查找。不必转换为数据库格式来使用joiner,或者必须使用特征合并读取所有数据,我希望能够直接从文件(或FeatureReader)中读取基于WHERE子句的功能,所以,如果可能的话,我可以使用joiner(或者读卡器上的where子句)来实现这一点。
我该如何让一个joiner从先前在工作台中创建的csv中读取数据呢?
目前,工作台从las文件中提取坐标,并将它们写出三个独立的csv文件;(地面,植物和建筑)。在蟒蛇距离计算之后,植被和建筑值分别与地面合并,X和Y是请求者和供应商。这需要相当长的时间。我使用了一个以地面csv为阅读器的连接程序进行测试,它减少了处理时间。我如何在工作台中动态地执行此操作,并设置一个joiner来读取尚未创建的csv?
我注意到我不能在databasejoiner中使用参数值。我错过什么了吗?
一个例子:
获取要使用的用户参数时,它是一个属性,databasejoiner将另一个属性从Excel文件连接到我的功能(屏幕截图的上部)。
直接使用用户参数连接Excel中的属性时,变压器参数按钮显示红色,没有输出。用户参数的属性“attribute assignment”设置为“default”。
我在论坛或数据库连接者的文档中找不到相关信息。有人能提出理由吗?使用参数蚀刻机的解决方案很容易解决问题,但我想知道为什么不能直接使用参数.
我正在使用FME 2017.1.0.0(17539-Win64版本)。
在zip文件中,您可以找到我的示例工作区和数据。
你好,
我会尽量简单地解释我的问题。)
所以我有一个表,其中有很多行,但只有两个不同的属性。我想按行的属性将它们组合在一起。例如:
开始看起来像这样。
ID1 | ID2 |
一百 | 一百零一 |
一百零一 | 一百零二 |
一百零二 | 一百零三 |
五百 | 五百零一 |
五百零一 | 五百零二 |
二百 | 一百零二 |
我想在每个属性之后合并属性,只要有属性要与..
ID1 | ID2 | ID3 | ID4 |
一百 | 一百零一 | 一百零二 | 一百零三 |
五百 | 五百零一 | 五百零二 | |
二百 | 一百零二 | 一百零三 |
现在我设法在彼此之间建立属性,直到没有更多的属性,但问题在于我想要避免的重复属性。
ID1 | ID2 | ID3 | ID4 |
一百 | 一百零一 | 一百零二 | 一百零三 |
一百零一 | 一百零二 | 一百零三 | |
一百零二 | 一百零三 | ||
五百 | 五百零一 | 五百零二 | |
五百零一 | 五百零二 | ||
二百 | 一百零二 | 一百零三 |
要摆脱这件事似乎很简单,但我无法想象我错过了什么。
你好,FME社区,亚搏国际在线官网
我提出两个想法
第一个是Joiner&FeatureMerge&Maybe Other Transformers。我希望安全软件在请求者和供应商属性上亚搏在线添加开关按钮。
例如:
第二个想法是类似的,但可以应用到大多数的传单。我想要一个按钮把数据流转换成2个连接器
例如:
我希望你会喜欢我的想法,并且它们将被应用到我最喜欢的软件的未来版本中。
最好的问候,
Lo·迪
网址:www.siddi-france.fr,FME瘾君子
嗨,各位,
我得到了附加的错误,非常基本的过程,我正在加入一个从csv加载的表和另一个csv。这应该很容易,我的变压器是正确的。
网址:https://imgur.com/p3jkoqm
我正在使用FeatureMerge,我想用Excel工作表加入这个功能类。有没有办法在不删除的情况下将Excel工作表的属性添加到要素类中?
你好,
我们有一个数据库(SQL Server),其中存储了带有连接JPG图片的水管(1个管道:许多图片)。这些数据是用“arcgis的collectorfor arcgis”收集的,管道存储在一个表中,每个管道都有其唯一的guid。图片存储在单独的表中,管道和图片之间的连接由“rel-guid”属性处理。
我要做的是从数据库中提取图片,并将它们作为“普通文件”存储在光盘上,然后将图片的URL写入水管对象上的属性。
在暑假之前,我写了一个FME脚本,用ArcSDegeodb阅读器读取这两个表。然后我将水管和图片进行了功能合并,结果是一个水管对象,列表中包含了图片表中的所有相关信息,包括实际的数据blob。下一步是使用属性文件编写器将图片写入相关的光盘。测试的时候一切都很好,所以我去度假了。但是现场工作人员没有,他们正忙着填充数据库,现在由于数据量大,合并导致了内存不足的死亡。
我尝试使用JoinerTransformer来代替,但现在这些图片在写为disc时会被破坏。据我所知,这似乎是一个错误的加入者。有其他解决方案的想法吗?
我正在运行32位FME 2016.1的脚本。
当做
托马斯诺林
FeatureWriter允许您在工作流程中的任意点写入数据,亚搏在线不仅仅是在工作区的尽头,就像一个“传统”作家一样。这使您有机会发布处理结果。这个例子将涵盖使用FeatureWriter的一种潜在方法,其中包括后期处理和集成第三方工具。
对于FeatureWriter Transformer的概述,查看博客帖子:FME 2016潜峰:特色作家变压器
在传统的工作流程中,亚搏在线FME使用读写器功能类型读取数据和写入数据-请参阅附件中的工作区:FeatureWriter_begin.fmwt.此工作区从CAD文件读取,转换并验证数据,然后将结果写入地理包数据库。
注意:尽管这个例子写入了一个地理包数据库,适用于任何空间数据库,如ESRI地理数据库。SQLServer,Oracle Studio,PosGIS等。
在所有的数据都被写入之后,这种方法对于额外处理的范围是有限的。您可以使用python或tcl shutdown脚本或数据库编写器sql在写入之前/之后运行,但是这些方法有一些局限性
FeatureWriter通过允许在工作流中间写入数据来扩展工作流的可能性,亚搏在线然后进行额外的数据转换。当需要在数据被写入之后对其进行某些操作时,这非常有用。
以下是特写的一些可能性,全部在一个工作区内完成:
1.以前用脚本或手动完成的简单程序:
2.需要使用WorkspaceRunner或FMeserverJobSubmitters链接工作区的复杂任务:
3.通知FME服务器
4.与第三方工具集成,用于FME中的数据转换,无需等待新的读卡器:
此FeatureWriter演示验证一个CAD数据集,并在编写完所有功能后将验证报告发送给数据验证管理器。
源数据是温哥华市供水网络的CAD文件,水管,阀门,消火栓。数据集包含许多与水网对象相关的属性
这个FeatureWriter_begin.fmw特色作家工作区包括以下基本步骤:
1。读取CAD数据和转换属性
2。验证水网属性值
三。提取故障水网对象的错误消息和验证测试
4。将有效功能写入geopackage cadvalidationreport表
运行FeatureWriter_begin.fmw特色作家在FME数据检查器中工作并检查由此产生的地理包。
您将通过以下方式修改工作区:
可以用FeatureReader替换AutoCAD Reader。这将允许您预处理数据,使用sqleexecutor清理数据库表或使用外部输入触发读取。在这个例子中,我们只使用creator转换器。
1。打开工作区FeatureWriter_begin.fmw特色作家
2。禁用,但不要删除,AutoCAD阅读器。
三。添加一个造物主变压器。
4。添加一个特技演员并选择Autodesk AutoCAD Map 3D对象数据格式和AutoCAD DWG文件:Coffwater小型.dwg.配置FeatureReader,如下所示:
在“AutoCAD参数”对话框中,确保取消选中将块分解为实体如下所示:
选择要读取的要素类型下的所有AutoCAD图层
5。将输出端口连接到适当的属性管理器变压器(并非所有功能类型都需要连接)。
6。通过运行修改后的工作区来测试FeatureReader。如果结果看起来不错,删除AutoCAD Reader。
7。保存工作区。
现在您将向工作区添加FeatureWriter,取代“传统”的地理包作者。
1。禁用,但不要删除,地理包装作家
2。添加FeatureWriter转换器并打开“参数”对话框。配置FeatureWriter参数:
现在我们可以对输出进行一些简单的后处理或验证。例如,可以使用sqleexecutor创建属性或空间索引。在这个工作区中,您将验证所编写的功能的数量。FME报告编写的功能的数量,但有时可能与插入数据库的功能的实际数量不匹配。如果您正在使用事务,并且其中一个插入失败,则会发生这种情况。在FeatureWriter编写完所有特性之后,您将添加一个sqlExecutor来检查数据库中的记录数。
1。将Inspector Transformer添加到FeatureWriter的摘要端口并运行工作区。FeatureWriter的摘要端口输出一个具有所有已写入功能类型列表的单一功能:
何处名称'是表名'计数是FME认为它写的功能的数量。
三。连接一个列表爆炸器到FeatureWriter的摘要端口。选择功能类型列表。这将为编写的每个功能类型生成单独的摘要功能。
4。将SQLExecutor连接到ListExplorer的元素端口。生成以下查询:
从“@value(name)”中选择count(*)作为“rows”
这将查询数据库并返回“name”属性中每个表的行数。
5。添加一个testfilter来比较所写功能与所写功能的“count”值。sqlexectutor返回的“rows”值。
6。添加检查器,然后运行工作区并检查结果。
清理
7。最后一步,如果您认为所有更改都正常工作,将删除原始的autocad阅读器和原始的geopackage writer,并清理您的工作区。保存你的工作。
附件中的工作区FeatureWriter_final.fmwt有一些你可以调查的其他想法:
JSON阅读器:在最终工作区中,我们使用JSON阅读器启动FeatureReader-这将允许您将此工作区发布到FME服务器,并使用目录观察程序发布来驱动验证。
Dropbox连接器:Dropbox连接器允许您将地理包数据库文件移动到Dropbox文件夹。如果您没有Dropbox帐户,则需要禁用此转换器。或者尝试其他连接器之一:Google DriveConnector,一个驱动器连接器,BoxConnector。
电邮者:最后一个工作区包含一个电子邮件发送程序,该电子邮件发送验证地理包数据库文件给朋友。您需要使用自己的电子邮件帐户信息配置电子邮件发送器,或者禁用转换器以避免错误。
注释:如果没有为您的电子邮件帐户正确配置电子邮件程序,演示工作区将返回警告。必要的配置可以包括正在配置SMTP对于Gmail,生成一个应用程序特定密码如果使用两步身份验证。与Dropbox连接器相同。如果你没有合适的账户,关掉这些变压器
当连接程序失败时,它们在日志文件中输出以下内容:
2017-05-16 10:42:17_53.6_0.0_error_badnews:0在关系“joiner_4”(假定为1-1)使用的表中找到匹配项-键值为:x=`'(relation.cpp:694)2017-05-16 10:42:17_53.6_0.0_error_0在关系“joiner_4”(假定为1-1)使用的表中找到匹配项-键值为:x x x=`'2017-05-16 10:42:17 53.6 0.0错误(featproci.cpp:701)-(cmrelate.cpp:227)-(relation.cpp:694)2017-05-16 10:42:17 53.6 0.0错误坏消息:发生致命错误。查看上面的日志文件以了解详细信息(dynafact.cpp:315)
还可以在日志文件中写入失败的完整功能(类似于将其放入日志记录器),例如:
2017-05-16 10:42:17| 53.4| 0.0|INFORM|===========================================================================2017-05-16 10:42:17| 53.4| 0.0|INFORM|Joiner_4 - Logg failed feature:2017-05-16 10:42:17| 53.4| 0.0|INFORM|+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++2017-05-16 10:42:17| 53.4| 0.0|INFORM|Feature 类型:`Joiner_4_Logger'2017-05-2017-05-16 10:42:17 53.4 0.0;通知属性(32位整数):`X'有值'1'2017-05-2017-05-16 10:42:17;53.4;0.0;通知;属性(字符串):`Y'有值'fads.fds.fsad.fdssafdsa'2017-05-2017-16 10:42:17;53.4;0.0 0.0;通知;属性(32位整数32位整数):`X'有值'1'2017-2017-2017-2017-2017 32位整数):'Z'的值为'fasfasd'2017-05-16 10:42:17|53.4 0.0通知属性(32位整数):'asdf'的值为'ffasdfda'2017-05-16 10:42:17 53.4 0.0通知属性(字符串):'134'的值为'234'2017-05-16 10:42:17 53.4 0.0通知属性(字符串):'fasdf'的值为'32434'
在使用Oracle数据库时,通常可以选择删除连接参数(reader、作家)然而,Joiner Transformer中缺少此选项,这会导致工作区中出现轻微的不一致。你能把这个选项包括在细木工里吗?也是吗?
目前,连接转换器不允许读卡器使用所有格式。例如,esri geodatabase(文件geodb api)在joiner中可用,但esri geodatabase(arcsde geodb)不可用。
将所有可用的读卡器格式添加到Joiner Transformer