西班牙
斯潘4
FME 2017.0(17271)。
我有一个多边形层,由一个周围有缓冲区的区域组成。多边形不重叠。我还有地址的点数据,它覆盖了更大的区域,包括邮政和非邮政地址。我只想选择多边形内的邮政地址。
地址数据存储在SQL Server中,使用几何数据类型存储位置(WKB几何)。所以我一直在比较选择的方法。在执行此操作时,我发现将FeatureReader与WHERE子句和空间过滤器一起使用会导致某些地址记录被选中两次。
我读入多边形,然后将它们发送给FeatureReader。FeatureReader连接到Microsoft SQL Server Spatial以读取点数据。空间过滤器设置为“包含”。
如果我像这样离开它并添加一个测试人员来做“Postal NOT like‘N’”,我将得到653819条记录。如果我在FeatureReader中添加WHERE子句而不是测试人员,那么我将得到654305条记录。这是486的差异,这些都是重复的,即。某些地址点被选择了两次。选择哪一个非常随机,它们不在多边形的边界上。
我想知道这是否与翻译日志中的这条消息有关:
注意-读卡器格式“MSSQL_SPATIAL”不支持按空间谓词查询,但支持信封查询。FME将通过在本地执行空间谓词计算来创建等效的结果。性能不应受到影响。
只有在FeatureReader中同时使用WHERE子句和空间过滤器时,我才能得到这个结果。如果我只是在FeatureReader中使用空间过滤器,则该消息不会出现在日志中。
顺便说一句,FeatureReader(仅限空间过滤器)+Tester和FeatureReader(空间过滤器和WHERE子句)之间的处理时间没有差异,两者都是1.5小时。所以我不想在这个问题上得到答案。
相比之下,读取两个数据集和使用PointOnAreaOverlayer+Tester需要2小时20分钟。
好 啊。我已经准备好要发送的工作区,并再次运行它们来验证这些数字。这一次两者产生了相同的结果。我确信在运行翻译之前,我删除了输出CSV文件,但是有一种可能性是,我早早中止了翻译的运行,并将现有文件改写为CSV写入器中的“否”。所以就这件事来说可能会很恐慌!另一种可能性是,我本来在一个工作区都FeatureReaders并启用/反过来禁用它们,而就该运行而言,我把它们分成2个独立的工作区。不过,我不希望在2个FeatureReaders在同一个工作区互相影响。更有可能的是PICNIC(问题在主席,而不是在电脑)!
从积极的一面,翻译跑出更快这个时候,WHERE子句和SpatialFilter在FeatureReader是17分钟对1每小时22分钟SpatialFilter在FeatureReader +测试最快1小时!
这可以通过一个事实,即在某些时候我需要缓冲属性添加到点数据所取代。如果能够做到足够快的速度,我可以只使用WHERE子句来得到这个和其他各种输出我需要的。我一直在这个测试中PointOnAreaOverlayer并行处理,并取得了很好的时间改善,但古怪的属性不会被添加到该点的数据。如果我不使用并行处理他们这样做。我会后这一个单独的问题。
你好@daleat亚搏在线safe我很乐意分享。尽管源点的数据是470万分的记录。我可以通过云传输发送给你 - 我会通过电子邮件的详细信息。
喜添,这是一个非常非常好奇的。听上去的确WHERE子句不与信封查询互动良好。今天是真的,比Oracle空间以外的所有数据库格式,我们只用一个边框查询对数据库选择数据,然后我们就空间谓词的FME侧滤波(我们正在努力在未来改变这种工作。与日志消息开始)。
如果有可能在数据和工作区发送给我们support@亚搏在线safe.com我真的希望我们在这里看一看吧。我也很乐意,因为这种类型的场景是一个我们要指定一个大的加速比FME 2018年,我们已经有了一些很好的初始/初步结果期间FMEUC我们的“期货”的谈话来使用它。所以,请CC我对你的支持请求。
谢谢让我们注意到这个。
?2019安全亚搏在线软件公司|合法的