主题问题:“制图” https://knowledge.亚搏在线safe.com/questions/topics/single/31251.html网站 “制图”主题的最新问题 工作区停止工作 https://knowledge.亚搏在线safe.com/questions/74631/workspace-stops-working.html

I am running a workspace that generates contours on a point cloud and writes them to dwg.

工作区无限暂停,不会崩溃,我收到一些警告。只有状态栏中的“分拣机(分拣机工厂):已完成7.17%的中间处理”。

.fmwt可从下载here (OneDrive)

点云 分拣机 制图的 结婚,2018年7月18日11:10:05格林尼治标准时间 卡拉卡里亚的
数据质量保证:线性网络中不良拓扑的识别 https://knowledge.亚搏在线safe.com/articles/55419/data-qa-identifying-undshoots-and-overshoots-in.html(https://knowledge.safe.com/articles/55419/data-qa-identifying-undshoots-and-over

介绍

一个线性网络应该由在一点相交的线组成,没有交叉。然而,情况并非总是如此。可能会出现各种各样的问题。

如果两条线要在一个已知点相交,则会出现错位点,但是有一条线没有正确连接:

当两条线要在一个已知点相交时,就会出现超调。但有一条线超出了交叉点:

下冲发生在两条线要在已知点相交的地方,但是有一条线没有到达那个交叉点:

缺失的节点出现在两条线要在已知点相交的地方,但只有一条线包含交叉点:

在这种情况下,红色(水平)线有一个末端节点,但是绿色(垂直)线在同一位置没有节点或顶点。

一般来说,这些问题非常小,通常肉眼看不见,否则它们很容易被检测出来,而不需要特殊的数据验证技术。这些场景没有特定的转换器,但我们可以使用一般几何处理变压器的组合来完成这项工作。

尽管我们使用“网络”这个术语,these issues also apply to any linear features that are meant to form a closed structure,例如,以下示例中使用的地块边界线…

下载

源数据集

定位错误的线性拓扑:工作区作为模板

计算错误的线性拓扑:将工作区作为模板

修复错误的线性拓扑:作为模板的工作区

源数据

此示例的数据集,是一组线条特征(在MicroStation DGN数据集中),表示温哥华市的地产地块边界。

数据集在FME数据检查器中如下所示:

这里的场景是清理线功能,确保所有地块正确关闭。We'll prove this by turning them into polygon features with the AreaBuilder transformer.

定位错误的线性几何图形:逐步说明

要评估线性几何的状态,最简单的方法是使用面积生成器变压器。如果几何图形可以转换为多边形特征,然后所有连接都正确。

更复杂的方法是使用拓扑构建器变压器。这将使网络变成一系列节点和边。If we can locate nodes that are only used by a single edge,则表示一条未连接的线。如果线本身很短(或节点与相邻线之间的间隙很短),则表示超调,下冲,或点错位。

For this example we'll stick with the easier AreaBuilder method.

按照以下步骤学习如何识别超调,下冲,点错位,以及缺失的节点。

1。启动FME工作台,从一个空画布开始。从菜单栏中选择“读卡器>添加读卡器”。

将数据格式设置为Bentley MicroStation Design(V8)。选择附加的DGN文件作为源数据集,然后单击“确定”添加读卡器。

2.Place an AreaBuilder transformer connected to the parcel lines data.将每个输出端口连接到检测变压器。

三。为了清楚起见,将FeatureColorSetter Transformer添加到AreaBuilder:区域输出端口:

设置参数以使区域特征具有独特的颜色。运行工作区。不完整的功能(以某种方式无效的功能)将显示在单独的图层和颜色中:

通过放大接近其端点来检查功能。您将看到功能是否过度,下冲,点错位,或者缺少节点。

在公路网中,一些功能将是亮点,但不要错了,例如,死胡同死胡同或死胡同因此,要么需要进行手动评估,或者可以使用另一个FME变压器;例如,LineoRealOverlayer或SpatialFilter将显示线条是否与多边形重叠-如果重叠,则更可能是不正确的。

计算错误的线性几何:逐步指令

假设我们隔离的特性实际上是不正确的,然后使用统计计算器变压器来计算它们是很容易的。

按照以下步骤学习如何计算坏的线性几何图形。

4。在区域生成器转换器和检查器之间添加一个统计计算器。检查统计计算器变压器的参数。

选择要分析参数的属性的任何属性。如果没有可用的属性,则在源功能类型上公开一个属性,或者使用attributeManager创建一个。价值观对我们来说并不重要。

将total count属性参数设置为numfeatures并接受更改。

5。重新运行翻译。现在输出将有一组不正确的功能,虽然这是一个总数,每种类型的错误都不是一个。

NB:如果您将StatisticsCalculator:Summary输出端口连接到检查器,每组只有一个输出特性。要获取所有输出功能,请使用完整的端口。

修复错误的线性几何:逐步说明

修复错误的线性几何可能是一个尝试和错误的案例。有一个特定的容忍值是很好的,但也要按照给定的顺序使用变压器。当以不同的顺序使用时,结果可能会非常不同,可能会引入一些不需要的线条。

所以,按照以下步骤学习如何修复错误的线性几何图形。

6。将捕捉器变换器添加到翻译中,在源数据和区域生成器之间。将捕捉器的捕捉输出和未触及输出连接到区域生成器:

检查捕捉器参数。The default values will be fine for most parameters,但是你必须设定一个捕捉公差。在这种情况下,将值设置为0.2

将一个检查器附加到snapper:snapped端口(这样我们可以看到发生了什么),然后重新运行工作区。结果是,有两个更少的无效特性。Both of these were misaligned points that are now snapped into position.

有几个有趣的观点。首先,下冲和过冲也可能是通过捕捉来解决的,但在规定的公差范围内无明显差异。The Snapper can handle those scenarios,但它的主要用途是处理不对齐的点。

其次,对于其中一个功能,未对齐的特征有特征捕捉到它,而不是被别人抢走。这就是为什么只有两个特性需要修复时,三个特性会被捕捉的原因。这不是理想的,但是,公差参数确保这样的捕捉不会太极端。

7。在Snapper和AreaBuilder之间添加延长线变压器。确保LineExtender:拉伸输出端口已连接:

检查参数并将扩展设置为0.5。这将使所有线路延长0.5米。它应该处理任何不足之处。当然,它将把它们(以及所有其他特性)变成超调,但我们可以很快解决这个问题。

8。现在在LineExtender和AreaBuilder之间添加一个交叉转换器。intersector:intersected输出端口是我们要保留的数据:

不应该有需要设置的参数,虽然在FM2018或更新版本中,现在有一种公差模式,如果设置为自动,会产生更好的结果。

This transformer will cut off overshoots at their intersection points,并创建丢失的节点。

现在重新运行工作区。会有大量“不完整”的特性,但这些仅仅是被切断的超调。If you query all other features you'll notice that the polygons are correct and that there are now no overshoots,下冲,点错位,或者缺少节点。

9。如果数据仍需用作线路网络,然后,可以通过使用一个相交器将数据转换回适当的节点线来重新创建线性特征。

如果还需要一些不完整的行,例如,cul de sacs-然后可以使用长度计算器/测试仪组合来过滤短于正常预期(即它们不是超调就是应用的扩展,不是真正的功能):

数据属性

这里使用的数据来源于温哥华市提供的开放数据,不列颠哥伦比亚省(data.couver.ca)。它包含根据开放政府许可证(温哥华)获得许可的信息。

GIS 数据质量保证 部门间 露天矿 鲷鱼 几何验证程序 制图的 线扩展器 结婚,2017年10月11日20:27:24格林尼治标准时间 MARK2AT亚搏在线SAFE
数据质量保证:识别多边形覆盖中的银重叠和间隙 https://knowledge.亚搏在线safe.com/articles/55275/data-qa-identifying-slivers-overlaps-and-gaps-in-p.html

介绍

重叠和间隙是使用无效多边形覆盖发生的问题。多边形覆盖应该是单个的,连续表面。然而,情况并非总是如此。

两个或多个多边形相交时会出现重叠,创建由多个多边形覆盖的区域。例如,红色特征延伸到橙色特征上:

如果两个或多个多边形未能在边界处相交,则会出现间隙,在覆盖范围中创建一个孔。例如,在这里,红色和绿色的特征无法满足,在覆盖范围中创建空白:

一般来说,these overlaps and gaps are very small and narrow - else they would be easily detected without the need for special data validation techniques - and this common shape and size is why they are sometimes called a条子.

可以使用最小多边形方法,但这并不能同时确定差距,两者都不能用同样的方法来解决。所以,为了处理裂片和间隙,FME有一个称为除鳞机.

在FM2018或更新版本中,sliverremover由一个称为区域间隙和重叠清理器的变压器替换。一定要检查填充间隙参数,其违约在2018.0至2018.1期间发生变化。

NB:The SliverRemover handles both gaps and overlaps simultaneously.它不允许只修理一个或另一个。即you can't repair gaps without also repairing overlaps and vice versa.

下载

源数据集

定位重叠和间隙:作为模板的工作区

计算重叠和间隙:作为模板的工作区

修复重叠和间隙:作为模板的工作区

源数据

本例的数据集是一组多边形特征(在mapinfo选项卡数据集中),表示温哥华市的规划区。

数据集在FME数据检查器中如下所示:

从逻辑上讲,一块土地不能分为两个区域(即这些区域不应重叠),但同样,一块土地也不能被分割(即there should not be any gaps in the zoning coverage).

这里的场景是简单地定位,伯爵and fix any overlaps or gaps in our coverage.

定位重叠和间隙:逐步说明

除渣变压器,尽管设计用于处理间隙和重叠,但只能修复它们。它不会突出显示或定位它们以便在其他地方进行修复。To simply locate such features we'll use the AreaOnAreaOverlayer transformer,与溶解器和DonutholeExtractor结合使用。

Follow these steps to learn how to identify overlaps and gaps.

1。启动FME工作台,从一个空画布开始。

从菜单栏中选择“读卡器>添加读卡器”。

将数据格式设置为“地图信息”选项卡(MITAB)。选择附加的选项卡文件作为源数据集,然后单击“确定”添加读卡器。

2.为了定位间隙和重叠,我们的想法是创建一个覆盖感兴趣区域的单一曲面,然后将数据与AreaOnAreaOverlayer进行比较。

所以,将溶解器变压器连接到区域数据。这将创建单个曲面特征。然而,它可以被创建为一个甜甜圈功能,这不是我们需要的。因此,follow the Dissolver transformer with a DonutHoleExtractor transformer,connected to the Dissolver:Area output port:

默认参数对于当前练习是正确的。

三。Now place an AreaOnAreaOverlayer transformer.连接两个donutholeextractor:outershell端口,区域数据到其输入端口:

再一次,对于这个练习,任何参数都可以保持其默认状态。

Note that in FME2018 or newer,区域重叠器变压器有一个额外的剩余输出端口。

4。将检测变压器连接到区域重叠器:区域输出端口。检查检查器的参数,并通过选择重叠属性来设置组。

现在运行工作区。输出中的显示控制窗口如下所示:

如果重叠数等于1,我们知道这些是间隙(因为溶解器创建的表面不会被区域数据重叠)。

如果重叠数大于2,我们知道这些是重叠的(因为溶解器创建的曲面在区域数据中至少重叠了两个其他多边形)。

只有重叠数等于2时,数据才正确。

为了确认问题,add the original source Zones data as a backdrop and zoom into one of the problem features:

The grey line here is a gap between two polygons.It's only 0.0022 metres (2mm or 1/12th of an inch) so you will have to zoom in very close to be able to see it.

所以现在我们已经分离了非常小和非常窄的多边形,它们表示多边形覆盖范围中的间隙和重叠。

Counting Overlaps and Gaps: Step-by-Step Instructions

计算坏特性的数量非常容易,因为我们已经将它们过滤掉了。我们只需要使用统计计算器转换器创建它们的计数。

按照以下步骤学习如何计算重叠和间隙功能。

5。在RealOverlayer Transformer和Inspector之间添加一个统计计算器。检查统计计算器变压器的参数。

为group by参数和要分析的属性选择重叠属性。

将total count属性参数设置为numfeatures并接受更改。

6。在inspector transformer中关闭group by并重新运行翻译。The output will now have a count of features for each overlap number.这将告诉我们每个类别中有多少功能:

在这个例子中,我们有6个缺口,6重迭,以及430个正确的功能。

NB:如果您将StatisticsCalculator:Summary输出端口连接到检查器,每组只有一个输出特性。要获取所有输出功能,请使用完整的端口。

修复重叠和间隙:逐步说明

Fixing overlaps and gaps is a simple task using the SliverRemover transformer,为了确认它是否有效,我们可以简单地重复上面的定位过程。

所以,按照以下步骤学习如何使用sliverremover变压器修复重叠和间隙。

7。sliverremover的帮助信息指出它需要清洁,有效数据和自相交或退化多边形将不会被修复。

所以,为了确保我们首先清理这些问题的数据,放置几何验证器变压器。将其连接到区域功能类型的新输出:

Check the GeometryValidator parameters and put checkmarks against the tests for "Degenerate or Corrupt Geometries" and "Self-Intersection in 2D".Ensure that the setting Attempt Repair is set to Yes.

8。Place a SliverRemover transformer.Connect it to the Passed and Repaired ports on the GeometryValidator transformer:

检查sliverremover参数。The only one of importance is the Repair Method.There are various methods,变压器文档对此进行了更详细的解释。For now,将修复方法保留为“最长边界”。

9。Connect an Inspector transformer to the SliverRemover:Repaired port and run the translation.

输出将是所有间隙和重叠修复的多边形,以创建单个,连续表面。然而,如果不仔细检查数据,就很难证明这一点。所以,让我们重新创建之前的数据检查,以确保没有遗留问题。

To do this,选择现有的溶解器,Donuthole提取器,以及一个再叠加变压器。按ctrl+d创建这些文件的副本。

现在将这些连接到与上述配置相同的sliverremover(即从除银器到溶解器有一个输出,另一个输出到reaoverlayer区域):

10。将Inspector Transformer连接到新区域的RealOverlayer并运行转换。这一次,您将能够看到没有重叠的功能,没有差距。

您还可以看到输出特性的数量与以前相同。The overlaps and gaps have been distributed to other features depending on the method chosen in the SliverRemover.

也,请注意,AreaOnAreaOverlayer会导致属性无效。所有输出都从一个特性中获取属性。因此,仅取除渣机修复后的输出供进一步使用;除验证多边形覆盖范围外,切勿使用AreaOnAreaOverlayer输出。

数据属性

这里使用的数据来源于温哥华市提供的开放数据,不列颠哥伦比亚省(data.couver.ca)。它包含根据开放政府许可证(温哥华)获得许可的信息。

也,thanks to埃里克詹对于定位间隙/重叠的方法,如上所述这个答案.

GIS 数据质量保证 区域重叠器 几何验证程序 制图的 除鳞机 星期二,2017年10月10日20:42:21格林尼治标准时间 MARK2AT亚搏在线SAFE
数据qa:无效的空间架构 https://knowledge.亚搏在线safe.com/articles/54674/data-qa-invalid-spatial-schemas.html网站

无效的空间架构

数据集模式(数据模型)由多个部分组成。有些部分与属性有关,其他部分与空间数据有关。

模式的空间部分通常定义特征类型(层,桌子,etc) that exist or are permitted to exist in a dataset,以及几何类型(直线,点,多边形,等)存在于或允许存在于数据集中的。

如果功能存在于允许的功能类型之外(例如,数据层与数据集规范具有不同的名称,并且作为允许的几何体类型(例如,多边形特征层上存在线条特征)。

这对于内部(公司)的一致性和完整性很重要,but also when using formats that are strictly defined by the table names and geometry types permitted.

FME可以自动处理格式限制,但用户必须定义数据是否符合公司数据标准。因为可以进行各种测试,FME中有各种变压器可用于测试它们。下面的示例和注释仅涵盖其中的一些内容。

下载

源数据集(包括允许的层列表)

查找无效的功能类型:工作区作为模板

计数和修复无效的功能类型:工作区作为模板

定位和修复无效的几何图形类型:作为模板的工作区

源数据

本例的源数据集提供了有关可能影响温哥华市交通流量的建筑活动和项目的信息。它以GML格式存储:

理论上,all of these features should consist of simple polygon geometries.每个项目所在的层应代表施工单位。允许值为:

  • 水力发电
  • 泰勒斯
  • 城市
  • 富通
  • private
  • 其他

然而,我们不能确定是否使用了正确的层,或者正确的几何结构,我们要测试一下。

Locating Invalid Feature Types: Step-by-Step Instructions

按照以下步骤学习如何识别源数据集中存在的源要素类型(层)。

1。启动FME工作台,从一个空画布开始。从菜单栏中选择“读卡器>添加读卡器”。

将数据格式设置为GML(地理标记语言),并选择附加的GML数据集作为源。将工作流选项设置亚搏在线为“单个合并要素类型”(以确保所有对象都作为单个图层读取),然后单击“确定”添加读卡器:

Save the workspace.

2.将复制过滤器变压器连接到读卡器功能类型。检查参数,并将键属性设置为fme_feature_type:

fme_feature_type记录源数据的层,因此,通过筛选出每一个示例,我们有效地在源数据集中创建了一个特征类型(层)列表。

三。从菜单栏中选择“编写器>添加编写器”。将数据格式设置为文本文件,并定义文本文件的写入位置。

将DuplicateFilter:Unique端口连接到文本文件编写器的功能类型。将属性fme_feature_type映射到编写器的文本行数据(通过绘制连接或使用attributeManager转换器):

4。Run the translation.打开输出文本文件。我们现在有一个源数据集中使用的所有层的列表,有效与无效:

例如,“private”有效,XYZ无效,“tellus”显然是一个拼写错误,应该是“telus”。

计数和修复无效的功能类型:逐步说明

我们现在有一个特性类型列表,可以看出有些是无效的。但是要计算或过滤这些,我们需要知道哪些层是允许的,最好把它们存储在某个文件中。

有许多变压器可用于将特征类型与此列表匹配-例如,attributeFilter-但是这里我们将使用databasejoiner。

5。将一个databasejoiner转换器放入工作区,连接到源数据集的第二个输出:

检查databasejoiner参数。Set them up as follows:

  • 读者格式:CSV (Comma Separated Value)
  • Dataset:permittedlayerlist.txt文件
  • 读卡器参数:
    • 字段名行: (删除它)
    • Data Starts Line:
  • 表:猪瘟病毒
  • 加入:
    • 功能属性:功能类型
    • 表字段:COL0

使用此设置,从未连接端口出现的功能具有无效的功能类型。

6。将一个StatisticsCalculator连接到databaseJoiner:未连接的输出端口。检查参数并设置如下:

  • 要分析的属性:功能类型
  • Calculate Attributes
    • 总计数属性:不良特征

7。将inspector transformer连接到statisticscaleculator:完成输出端口并运行工作区。数据检查器将显示具有错误层的所有功能,将图层记录在属性fme_feature_type上,以及属性badFeatures中记录的无效功能数:

所以现在我们有了一些具有无效层的特性。我们无法修复层名称,因为我们不知道它们应该是什么,但是我们已经通过过滤掉这些无效的特性来清理了数据集。

定位和修复无效的几何图形类型:逐步说明

按照以下步骤了解如何识别几何类型不正确的源要素。

8。从菜单栏中选择“编写器>添加编写器”。将数据格式设置为esri shapefile,并定义将数据集写入的位置。对于shapefile定义参数,选择从读卡器复制:

将新创建的编写器功能类型连接到databaseJoiner:Joined端口。

9。Inspect the parameters for the new writer feature type.

对于shapefile名称,单击下拉箭头,然后选择属性值>fme_feature_type。这将确保数据写入到它来自的同一层。现在将“几何体”设置为“形状”多边形:

运行工作区。检查翻译日志。Notice that there are 172 warning messages!

由于某些功能不是区域几何图形,因此将从输出中拒绝它们:

警告错误-需要聚合或区域几何图形。警告拒绝以下功能:通知几何图形类型:ifmemulticurve

其他功能被拒绝,因为它们的要点太少:

警告多边形功能必须至少有4个坐标…拒绝警告拒绝以下功能:

…大概是两点线特征。

一些其他功能没有被拒绝,但它们是需要分割的多边形的集合(组):

警告删除esrishape编写器的异类聚合功能,due to feature type allowed geometries restrictionWARN  |Geometry Type: IFMEAggregate

A count further in the log tells us how many features were rejected per file:

Warn Rejected 3 output features warn Rejected 11 output features warn Rejected 1 output features warn Rejected 2 output features

因此,FME已经修复了一些几何类型,并拒绝了其他类型。我们还统计了有多少功能被拒绝。

此外(只要在步骤1中保存了工作区),所有被拒绝的特征都以空间日志的形式存储在一个ffs(fme feature store)格式的数据集中:

因此,我将无效的特性分离成一个新的数据集,而不必设置它!

如果我真的希望在工作区内这样做,I could use a GeometryFilter transformer to separate out non-polygon features before they reached the writer.

数据源

这里使用的数据来源于温哥华市提供的开放数据,不列颠哥伦比亚省(data.couver.ca)。它包含根据开放政府许可证(温哥华)获得许可的信息。

GIS 数据质量保证 复式过滤器 制图的 databasejoiner 星期二,2017年10月3日格林尼治标准时间22:45:20 MARK2AT亚搏在线SAFE
数据质量保证:识别与FME的自交叉点 https://knowledge.亚搏在线safe.com/articles/54515/data-qa-identifying-self-commissions-with-fme.html(https://knowledge.safe.com/articles/54515/data-qa-identifying-self-commissions-

Self-Intersections

自交叉(也称为“循环”,"bowties" or "fishtails") are features whose boundary twists around such that it intersects itself,导致循环:

左侧示例显示多边形的端点与起点不相交的位置,使多边形以一个环闭合。

右边的特性是一个可能顺序不对的点的例子。It comes very close to being a line that directly reverses back on itself and very close to being a spike,但这种布局实际上会形成一个循环。

在大多数情况下,自我交叉并不像这些那样明显。左边的例子通常要小得多-到看不见的程度-右边的例子通常有非常锐利的角度,看起来像一条线。

FME包含了利用几何验证程序变压器。

In this example,我们将研究在包含建筑轮廓的数据集中识别和修复自交集。

下载

源数据集

自相交:作为模板的工作空间

源数据

源数据是一个OpenStreetmap数据集,包含温哥华市的建筑:

地图瓦片 雄蕊设计,在下面 CC-BY3.0.数据通过 OpenStruts地图,在下面 CC-BSA.

有很多建筑,所以(为了简单起见)我们会说一个用户报告了两个包含问题的建筑。他们的身份证号码是102521333和301873712,我们需要调查。

定位自交点:逐步说明

按照以下步骤学习如何使用几何验证器转换器定位自相交特征。

1。启动FME工作台,从一个空画布开始。从菜单栏中选择“读卡器>添加读卡器”。

将数据格式设置为OpenStreetmap(OSM)XML,并选择附加的OSM数据集作为源。将工作流选项设置亚搏在线为“单个合并要素类型”(以确保所有建筑对象都作为单个图层读取),然后单击“确定”添加读卡器。

2.在画布上放置测试变压器。设置测试仪以测试ID=102521333或ID=301873712的位置:

NB:我们只需将所有建筑传递到几何验证器中,忽略传递的特性,但在本练习中,当可疑的特性已经被隔离时,运行起来更快,更容易发现错误。

三。将几何验证器变压器连接到测试仪:通过端口。打开参数并在二维问题中对自交集进行复选标记。在对话框底部,将“尝试修复”设置为“否”。

将Inspector Transformers连接到几何验证程序输出端口并运行工作区。failed和issuelocations输出如下所示:

地图瓦片 雄蕊设计,在下面 CC-BY3.0.数据通过 OpenStruts地图,在下面 CC-BSA.

左边的建筑——如果是一个多边形——有明显的问题,with the outer perimeter crossing at several locations.事实上,查询该特征以证明它是具有单个周长的单个多边形。

右手边的建筑没有那么明显的问题。您需要非常靠近建筑物右上角(东北角)放大才能看到问题:

顺便说一下,这个小的偏移量是0.7毫米(约0.03英寸),所以你可以看到这样的一个小错误是如何导致几何问题的。

所以,现在我们有了所有包含自交集的特性,带有一个点特征,表示自相交的位置。

计数自交叉点:逐步指令

使用统计计算器变压器计算自交点非常简单。唯一的决定是是否计算问题特性的数量,或者自相交的次数,这不一定是同一件事。

4。放置一个统计计算器变压器。To count invalid features connect it to the GeometryValidator:Failed output port.要计算自交叉点,请将其连接到geometryvalidator:issuelocations输出端口。

5。检查统计计算器变压器的参数。选择要分析参数的属性中的任何属性(这与哪个属性无关)。

Now set the Total Count Attribute to a new attribute name such as NumberBadFeatures or NumberSelfIntersections,以适当者为准。

6。将Inspector Transformer连接到统计计算器输出端口(如果选择摘要端口,将获得单个功能,如果选择完整的端口,则可以获得所有原始功能)。运行工作区。现在您应该有一个坏特性的数量(2)或自相交的数量(4)。

固定自交点:逐步说明

有很多方法可以固定自交叉点。例如,可以在交叉点处打开一个间隙,这样两条线条就不会交叉:

Another solution is to actually divide the feature into two (or more) polygons,splitting them at the intersection point.事实上,这是FME采用的技术。

7。检查几何验证器变压器的参数,并将尝试修复参数设置为是。

8。[可选]要解决几何验证程序的故障(现在将删除失败功能的坐标系),请在几何验证程序:失败端口和连接的检测程序变压器之间放置一个坐标系统设置器变压器。检查参数,将坐标系参数设置为LL84。

9。重新运行工作区并检查输出,专注于修复的输出。请注意,FME已将原始的单个多边形特征拆分为多部分特征,由多个多边形/轮廓组成:

我们现在有了一组数据,这些数据已经清除了自交集。如果不希望进行自动清洁,则可以使用交叉点来确定可以手动解决问题的位置。

数据属性

OpenStreetmap数据集:?OpenStreetmap贡献者。见http://www.openstreetmap.org/copyright

GIS 数据质量保证 几何验证程序 制图的 自相交 周一,2017年10月2日19:01:01格林尼治标准时间 MARK2AT亚搏在线SAFE
数据质量保证:使用FME识别峰值和异常值 https://knowledge.亚搏在线safe.com/articles/54245/data-qa-identifying-spikes-and-outliers-with-fme.html(https://knowledge.safe.com/articles/54245/data-qa-identifying-spikes-and-outlie

峰值和异常值

当一个特征中的一个顶点有一个X时,空间数据中会出现峰值(或异常值)。Y或者是Z值,它是如此的不正确以至于导致了一个像尖峰一样的外观。

峰值是一种相当特殊的缺陷类型,还有一个专门设计的故障模式与影响分析变压器来处理它们:棘突.

然而,峰值的可见性取决于查看数据的方向。例如,在传统X/Y视图中从上方查看数据时,特征的Z值峰值将不可见。因此协调员变压器在处理尖峰信号时也很有用。

In this example,我们将研究在包含轮廓线的数据集中识别和修复峰值。

下载

源数据集

删除峰值:作为模板的工作区

源数据

源数据是一个包含温哥华市英吉利湾水深数据的MicroStation DGN数据集:

地图瓦片 雄蕊设计,在下面 CC-BY3.0.数据通过 OpenStruts地图,在下面 CC-BSA.

有点表示深度(我们可以忽略)和轮廓线。两者都是2.5d(即每个顶点都有z值,深度以英寻为单位(英寻等于6英尺)。我们将调查轮廓中是否有尖峰,尤其是在Z值中,不能如此容易地进行目视检查。

定位,计数,固定钉:逐步说明

按照这些步骤学习如何用除穗变压器定位和固定穗特征。注意,除穗器变压器在没有固定钉子的情况下无法定位钉子,除了表示删除顶点的点特征之外。

1。启动FME工作台,从一个空画布开始。从菜单栏中选择“读卡器>添加读卡器”。

将数据格式设置为Bentley MicroStation Design(V8)。Select the attached MicroStation dataset as the source and click OK to add the reader.

提示时,仅选择要添加到工作区的轮廓特征类型(级别)。

2.在FME数据检查员中检查源数据。有一个非常明显的尖峰(如本文开头的屏幕截图所示),但其他一些轮廓也可以算作尖峰:

三。在画布上放一个除钉变压器,已连接到读卡器功能类型。

检查变压器参数。有一些参数可以让我们控制尖峰的最大角度和最大长度。当尖峰形成的角度小于或等于最大角度时,尖峰将被移除。当直线段长度不超过最大直线长度时。

将角度参数设置为10,长度参数设置为250;即最大角度为10度,最大长度为250米(坐标系为utm,单位为度/米)。

4。将检测变压器连接到除穗器变压器的输出端口,并运行工作区。

A single spike should be located and removed:

请注意,从删除的输出端口出现一个点特征,以指示删除峰值顶点的位置。如果质量保证过程旨在识别用于在不同应用中修复的峰值,然后,可以保存删除的输出端口,作为进行编辑的标志。

如果要求FME解决问题,然后,更改的端口输出删除尖峰的线路特征。

5。为了尝试移除不那么极端的尖峰,让我们用除穗器参数进行试验。将角度参数设置为45,然后再次运行转换。This time 7 line features have had 9 spikes removed:

不幸的是,这也消除了一些不是真正尖峰的点,像这样:

因此,能够对参数进行实验以获得峰值的最大修正值显然很重要,不删除有效顶点。

6。要计算删除的顶点数,将统计计算器变压器添加到除穗器:已删除端口。在参数中,选择任何要分析的属性(_Spike_Angle is Simply),并将总计数属性参数设置为NumberSpikes。

这个转换器的输出现在包含一个属性来计算固定峰值的数量。

7。In the FME Data Inspector,使用工具栏按钮将视图切换到3D模式:

旋转显示器(使用工具栏上的“动态观察”工具),您会注意到之前未注意到的Z值峰值:

除穗器只能在二维空间工作,所以我们需要做些不同的事情来处理这个尖峰。

8。添加一个边界提取变压器,连接到除穗器的未更改和更改的输出端口,然后使用测试变压器:

boundsExtractor将返回x的最小值和最大值,Y和z坐标。将测试仪设置为测试最小z坐标小于零(zmin<0)的特性。这将隔离故障特征。

9。现在添加一个连接到测试仪的coordinateswapper变压器:passed端口。

检查变压器参数。注意,它允许您交换特定轴上的坐标;例如,交换x和y值。在这种情况下,将其设置为交换Y<->Z轴。

添加Inspector Transformer并运行工作区。现在您将看到数据作为侧视图。我们需要修复的长钉。使用数据检查器中的测量工具,您会发现它的长度接近10000米。

10。Add a second SpikeRemover transformer,this one connected to the CoordinateSwapper:Output port.将最大角度设置为1,最大长度设置为10100。

11。添加另一个CoordinatesWapper变压器,this one a duplicate of the first in order to switch back the Y and Z axes:

将检查器添加到第二个CoordinatesWapper Transformer并运行翻译。你会注意到尖刺已经被移除了。

也注意到线条在其他地方也被平滑了,由于数据在第一次坐标交换后被压缩在Y轴上。这就是为什么我们需要隔离坏特性,以最小化不需要的更改。

我们现在有了一组清除了峰值的数据。如果不需要自动清洁,则可以使用尖峰去除点来确定可以手动解决尖峰的位置。

数据属性

此处使用的数据来源于公共域数据温哥华市,不列颠哥伦比亚省。

GIS 数据质量保证 几何验证程序 制图的 棘突 清华大学,2017年9月28日19:16:00格林尼治标准时间 MARK2AT亚搏在线SAFE
数据质量保证:识别重复的属性值 https://knowledge.亚搏在线safe.com/articles/53183/data-qa-identifying-duplicate-attribute-values.html网站

Duplicate Attribute Values

重复的属性值是指多个功能共享同一属性的相同值的属性值。在许多情况下,这是自然的和预期的;例如,对于许多记录,地址数据库的省(县/州)字段很可能是相同的。

然而,在某些情况下,重复的值是无效的和意外的;例如,应为唯一ID的字段包含与另一个功能(1、2、3、4、4、5、6)相同的值。

Duplicate ID values,特别地,当使用唯一索引键加载到数据库中时,可能会导致完整性错误。

Sometimes duplicate values are valid as long as they have a specific relationship with another field;for example:

Column 1 第2栏
C
C
C

Or:...the first column has duplicates,但是,第1列和第2列的组合是独特的(因此对于2a,2B,2C,2C,决赛2Cis invalid because it与以前的组合匹配)

Column 1 第2栏
C

…如果列1有重复项,但它有效,因为它与列2相匹配(因此对于2b,2B,2B,2C,这个2C值无效,因为它是与以前的组合匹配)。

重复的属性值可以用复式过滤器变压器或匹配器变压器。Matcher Transformer很好地查找一列重复的关系,并且由于另一列不同而无效(2b,2B,2B,2c example)

匹配变压器也更擅长提取全部的重复记录,因为DuplicateFilter允许重复记录的第一个实例通过。But the same behaviour makes the DuplicateFilter more memory efficient,因此,如果可能的话,最好是这样。

It'sfairly simple to identify and count duplicate values,但修复可能需要人工干预,取决于字段要包含的内容类型。

下载

源数据集

定位重复属性:作为模板的工作区

源数据

本例的源数据集是一个Excel电子表格,其中包含温哥华市的营业执照信息。

数据集在FME数据检查器(表视图)中如下所示:

有多列,但特别是,我们对三个关键ID号感兴趣:

文档编号是整个数据集中唯一的ID号;即每个记录应具有不同的值。

许可人数is an ID number that can be reused and may therefore not be unique.也,同一许可证编号可能有多个记录;例如,在多个地址上运行的单个业务将在数据集中为每个地址(但具有相同的licenseNumber)保存一条记录。

利森塞尔森是每个许可证的唯一ID号;即颁发的每个许可证都应具有唯一的许可证持有人N。当然,也可能有多个记录具有此值,因为它应该匹配多个licenseNumber功能的每个记录。

这里的场景是检查重复的值。我们可以说,recordid必须是完全唯一的。也,虽然每个许可人可能有多个记录,它应该只匹配一个licenseNumber。

查找重复的属性值:逐步说明

按照以下步骤学习如何识别重复的属性值。

1。启动FME工作台,从一个空画布开始。

从菜单栏中选择“读卡器>添加读卡器”。

Set the data format to Microsoft Excel.选择附加文件作为源数据集。单击参数按钮查看参数并检查源数据预览。The default parameter values should be fine to use so click OK to close this dialog and then click OK again to add the reader.

2.要检查的第一个问题是重复的recordid值。我们要用一个复制变压器来做这个。所以把一个复制变压器放在画布上,已连接到读卡器功能类型(表)。

在“参数”对话框中,选择“记录ID”作为“关键属性”参数:

三。将Inspector Transformer连接到复制端口并运行转换。找到一个重复的recordid并输出到数据检查器。记录ID号是4854。

Only the duplicate record is displayed;即它是的副本的记录也不会被筛选。在许多情况下,这足以满足我们的需要。然而,如果我们想同时查看这两个记录,就必须打开完整的数据集:

“高级烟花集团”营业执照注销时,it looks like the "Killarney Cafe Dept." (the next license to be issued) was erroneously given their record ID number.

4。要进行的下一个检查是重复的licensersn值。重复值本身不是问题,除非重复值的licenseNumber值不同(即LicenseRSN:LicenseNumber should be a 1:1 match).为此,我们要用火柴变压器。

将匹配变压器连接到复制过滤器上的唯一输出端口:

检查匹配器参数并设置以下内容:

  • 匹配几何体:无
  • 属性匹配策略:匹配所选属性
  • 所选属性:许可人
  • 必须不同的属性:licenseNumber

5。将inspector transformer连接到matcher:matched输出端口并运行转换。将有四个记录标识为匹配:

对于“电子企业公司”,其许可证编号中似乎有一个拼写错误(由120079改为120097)。很难确定另一个副本的原因。

注意这个转换器已经给了我们两个重复记录的实例,不仅仅是其中一个;但是,这一好处会带来性能成本,所以这并不总是最好的解决方案。

6。我们可以做的最后一个检查是使用不同的许可证持有人的重复许可证编号。因为(如上所述)licenseNumber值可以重用,所以可能有很多这样的值。然而,this duplication only causes a problem when both licenses are active at the same time.

所以,首先添加一个测试变压器连接到Matcher:NotMatched输出端口:

Set up the parameters to test for licenses whose status is "Issued".

7。将第二个匹配转换器添加到工作区,这个连接到测试仪:通过端口。像以前一样设置,除此之外,licenseNumber是所选属性,and LicenseRSN the attribute that must differ:

8。将inspector transformer连接到此matcher的匹配端口并运行工作区。将有10个功能通过匹配的端口退出:

即these features have a duplicate LicenseNumber that is not matched to the same LicenseRSN number.

计数重复的属性值:逐步说明

计算重复的属性值非常简单,这只是一个决定重复值的每个实例是否算作一个问题的例子,或者它是否是所有匹配值的一个问题(例如,如果两个功能都具有许可证编号17-107142,这算一个问题吗?还是两个?)

此外,有必要决定是单独计算所有不同类型的重复项,还是作为一个重复项。

9。要计算重复的特性,只需要在任何检查器转换器之前使用一个统计计算器。所以,在matcher:matched端口和inspector之间添加一个statisticscalculator,并将其设置为分析任何属性。

在“计算属性”参数中,删除所有值。在totalCountAttribute下输入duplicateCount:

10。重复的recordid功能被duplicatefilter过滤,结果只有1个功能被标记为重复(它是重复的记录不计算在内)。

Matcher结果将为每个匹配提供两个功能。如果你只想把它算作一个问题,副本!!)需要过滤掉。这只需从matcher:matched到matcher:singlematched切换连接即可完成:

计数重复的属性值:逐步说明

修复重复的属性值也很简单,provided that you just wish to remove one of the matching records.在那种情况下,空间筛选器已删除副本的单个实例。对于matcher,它只要求保留单个匹配的特性;其他匹配项将被丢弃。

当然,有时有必要确定应该过滤哪些记录。在这种情况下使用的转换程序将根据管理要保存的记录和要丢弃的记录的规则而有所不同。有时需要保留两个记录,但为其中一个指定一个新值。在这种情况下,计数器可以提供新的ID,统计计算器可以找到ID的当前最大值,以确定下一个可用值是哪个。

在没有人工干预的情况下,很难修复由简单的打字错误(由120079改为120097)引起的重复。

数据属性

这里使用的数据来源于温哥华市提供的开放数据,不列颠哥伦比亚(数据.couver.ca)它包含根据开放政府许可证(温哥华)获得许可的信息。

属性处理 GIS 数据质量保证 匹配器 复式过滤器 几何验证程序 制图的 清华大学,2017年9月14日格林尼治标准时间21:37:29 MARK2AT亚搏在线SAFE
数据质量保证:用FME识别非连续重复顶点 https://knowledge.亚搏在线safe.com/articles/52924/data-qa-identifying-unequenced-duplicate-vertices.html网站

复制顶点

当几何体在特征中有一个或多个顶点多次出现时,会出现重复顶点(重复点)。Duplicate vertices are those with identical X,Y,和z坐标值,到数据中存在的小数位数。

Duplicate vertices are not only a sign of lower quality data,they can also be a data format problem.某些格式允许重复顶点(例如,MicroStation DGN允许零长度线),而其他格式禁止重复顶点(例如Oracle Spatial)。

复制顶点可能在几何体中按顺序出现(例如,A、B、C、C、D、E)或可能出现顺序错误(A、B、C、D、C、E)。可能只复制一次(A、B、C、C、D)。或者可能重复多次(A、B、C、C、C、D、C、E、C)。

当然,有时重复顶点是有效的;例如,如果要正确闭合多边形的起点和终点(A、B、C、D、E、A),则多边形的起点和终点应相同,有时线性特征应环绕并重新连接中点(A、B、C、D、E、C);因此,仅仅在这个基础上识别无效的特性并不总是容易的。

有各种FME变换器可用于识别重复顶点,but some transformers - or combinations of transformers - will be much more efficient than others.

  • 几何验证程序:此转换器标识并修复在单个几何体中连续出现的重复顶点。
  • ClosedCurveFilter:此变压器识别形成闭环的特征,并且可以,因此,用于检测(或排除)具有重复端点的特征。
  • CoordinateExtractor: This transformer extracts a list of coordinates from a feature,然后可以对其进行分析以查找重复项。

一般来说,几何验证器的使用频率更高,因为连续的重复顶点是一个更明显的问题。

然而,coordinatextractor更适合于检测出现顺序错误的重复顶点,以便进行进一步的调查。

This example uses a combination of ClosedCurveFilter and CoordinateExtractor to identify duplicate points that are unsequenced.第二个示例使用geometryvalidator transformer来标识连续的重复点。

下载

源数据集

复制非连续顶点:作为模板的工作空间

源数据

源数据是一个MicroStation设计文件,其中包含表示建筑轮廓的线条特征:

这种情况下,我们希望在数据投入生产使用之前对其进行验证和清理。

定位非顺序重复顶点:逐步说明

Locating non-sequential duplicate vertices is not as straightforward as sequential duplicates;然而,这是可以做到的。按照以下步骤找到一种定位非顺序重复顶点的方法。

1。启动FME工作台,从一个空画布开始。从菜单栏中选择读卡器>添加读卡器。将数据格式设置为Bentley MicroStation Design(V8)。选择附加的MicroStation数据集作为源。如果单击“参数”按钮,您会发现有一个高级参数可以删除重复点:

确保关闭此参数,因为我们要确定重复顶点的位置和数量。所以只需单击OK添加读卡器。如果有提示,选择BuildingFootprints级别作为要读取的数据。

2.单击画布上的读卡器功能类型。On the menu that pops up,选择Inspect选项以在数据检查器中查看数据。检查数据。数据一目了然看起来是正确的,很难确定哪里可能有重复的顶点。

三。回到FME工作台,在读卡器功能类型之后添加一个closedcurvefilter变压器。Add Inspector transformers to its output ports and run the translation,根据随机颜色生成,您可能需要为关闭的曲线过滤器打开功能着色,以区分结果。It will identify an open feature like this:

这是一个具有重复顶点的特征,但它不像多边形那样闭合。它可能,或者不可以,被视为问题特征,但既然这是一栋建筑,我们可能会认为它是错误的。

4。为了找到非连续的重复点,我们将提取坐标列表并检查是否重复。当然,重要的是不要混淆不同功能上的点,不包括多边形的起点/终点。

这里的数据没有每个功能的唯一ID,所以我们应该通过添加一个计数器转换器来创建一个。这样不同功能上的相同点就不会混淆:

默认参数(将创建一个名为_count的属性)对于我们来说是可以的。

5。现在在计数器后面添加一个coordinatextractor转换器。参数应设置为将所有坐标提取到名为“索引”的列表中:

如果你愿意,连接Inspector Transformer并运行工作区。查询一个特征,你会发现它现在有一个包含顶点的列表。

6。好啊,我们要分析坐标表,但我们不能把它作为列表对象。没有特定的列表转换器可以在多个值中找到重复的值(ListDuplicateRemover将找到重复的X值,or duplicate Y values,但不是重复X和Y的组合)。所以,我们将使用ListExploder转换器将列表分解为每个列表元素的一个功能:

如果你愿意,连接Inspector Transformer并运行工作区。现在每个顶点都有一个特征。每个顶点在列表中的位置记录为“元素”索引:

上面显示55号楼有5个顶点,编号为0到4。第一个和最后一个顶点匹配,这意味着这是一条封闭的线(很好)。

7。现在我们可以开始删除不重复(或不算重复)的顶点。

将测试变压器放在ListExplorer之后。Set up the parameters to test for _element_index = 0 (i.e.这是直线的第一个坐标)。

这些是我们要删除的功能——因为否则闭合线的第一个和最后一个点将匹配并标记为错误——所以失败的端口是我们要保留的功能。

8。现在放置一个复制变压器,已连接到检测仪:失败端口:

设置变压器以过滤出重复的\计数值,XY和(可选)Z。即在相同的特征(计数匹配)上,用相同的X、Y、Z标记顶点。

将Inspector Transformer连接到DuplicateFilter:Duplicate端口并运行工作区。结果如下:

有一个未闭合的特征和六个标记有重复顶点的特征。事实上,建筑物的每个顶点都有一个重复的特征,因此,如果一个建筑有两个重复的顶点,将有两个特征来表示它。该特征的X/Y/Z属性标识重复顶点的位置。

笔记

如果你(像我一样)过度思考这个问题,你可能会想,去掉第一个点会不会有什么影响。例如,如果我们有A、A、B、C、D、E或A、B、C、A、D、E——会不会有问题,因为第一个A功能被删除,因此与随后的任何A功能都不匹配?

好,不,由于各种原因:

  • 如果是A,A,B,C,D,E,那么这两个A是连续的,你可以找到那些带有几何验证器的。但即使你没有…
  • If it's a closed line then "E" is the same as "A" anyway,所以后面的a将与e匹配。
  • 如果它不是一个封闭的行,那么closedcurvefilter将已经将此标记为一个可能的问题功能。

计算问题顶点的数量和引入一个统计量计算器(如前一个例子)来计算特征一样简单。

修复问题顶点是另一回事。从技术上讲,我们可以使用coordinateermover删除其中一个坏顶点。但不能保证我们会去掉正确的那个。例如,在复制过滤器之后添加一个coordinateremover,设置为删除顶点“元素索引”(我们知道它是一个副本):

结果适用于某些功能,但不是其他:

因此,建议使用这种方法来识别非连续的重复坐标。但不是为了修复它们。应将问题特征传递给适当的编辑工具进行修复。

数据属性

这里使用的数据来源于温哥华市提供的开放数据,不列颠哥伦比亚(数据.couver.ca)它包含根据开放政府许可证(温哥华)获得许可的信息。

GIS 数据质量保证 坐标测量仪 列表爆炸器 复式过滤器 几何验证程序 制图的 星期二,2017年9月12日19:00:24格林尼治标准时间 MARK2AT亚搏在线SAFE
数据质量保证:用FME识别连续的重复顶点 https://knowledge.亚搏在线safe.com/articles/52742/data-qa-identifying-duplicate-vertices-with-fme.html(https://knowledge.safe.com/articles/52742/data-qa-identifying-duplicate-

复制顶点

当几何体在特征中有一个或多个顶点多次出现时,会出现重复顶点(重复点)。Duplicate vertices are those with identical X,Y,和z坐标值,到数据中存在的小数位数。

Duplicate vertices are not only a sign of lower quality data,they can also be a data format problem.某些格式允许重复顶点(例如,MicroStation DGN允许零长度线),而其他格式禁止重复顶点(例如Oracle Spatial)。

复制顶点可能在几何体中按顺序出现(例如,A、B、C、C、D、E)或可能出现顺序错误(A、B、C、D、C、E)。可能只复制一次(A、B、C、C、D)。或者可能重复多次(A、B、C、C、C、D、C、E、C)。

当然,有时重复顶点是有效的;例如,如果要正确闭合多边形的起点和终点(A、B、C、D、E、A),则多边形的起点和终点应相同,有时线性特征应环绕并重新连接中点(A、B、C、D、E、C);因此,仅仅在这个基础上识别无效的特性并不总是容易的。

有各种FME变换器可用于识别重复顶点,but some transformers - or combinations of transformers - will be much more efficient than others.

  • 几何验证程序:此转换器标识并修复在单个几何体中连续出现的重复顶点。
  • ClosedCurveFilter:此变压器识别形成闭环的特征,并且可以,因此,用于检测(或排除)具有重复端点的特征。
  • CoordinateExtractor: This transformer extracts a list of coordinates from a feature,然后可以对其进行分析以查找重复项。

一般来说,几何验证器的使用频率更高,因为连续的重复顶点是一个更明显的问题。

然而,coordinatextractor更适合于检测出现顺序错误的重复顶点,以便进行进一步的调查。

此示例使用几何验证器转换器来标识连续的重复点。第二个示例使用closedcurvefilter和coordinatextractor的组合来标识未排序的重复点。

下载

源数据集

重复连续顶点:作为模板的工作空间

源数据

源数据是一个MicroStation设计文件,其中包含表示建筑轮廓的线条特征:

这种情况下,我们希望在数据投入生产使用之前对其进行验证和清理。

定位连续的重复顶点:逐步说明

Follow these steps to learn how to locate consecutive duplicate vertices with a GeometryValidator transformer.

1。启动FME工作台,从一个空画布开始。从菜单栏中选择读卡器>添加读卡器。将数据格式设置为Bentley MicroStation Design(V8)。选择附加的MicroStation数据集作为源。如果单击“参数”按钮,您会发现有一个高级参数可以删除重复点:

确保关闭此参数,因为我们要确定重复顶点的位置和数量。所以只需单击OK添加读卡器。如果有提示,选择BuildingFootprints级别作为要读取的数据。

2.单击画布上的读卡器功能类型。On the menu that pops up,选择Inspect选项以在数据检查器中查看数据。检查数据。数据一目了然看起来是正确的,很难确定哪里可能有重复的顶点。

三。回到FME工作台,添加一个连接到读卡器特性类型的几何验证器变压器。检查参数对话框:

在“重复连续点”选项旁边打勾。您可以(可选)检查此问题的参数。唯一的参数是处理三维点,在这种情况下不适用。

在对话框的下部,关闭修复问题的选项:

尽管重复点是固定的,现在,我们去看看他们在哪里。

4。将Inspector Transformers连接到每个几何验证程序输出端口并运行工作区。检查输出,根据随机颜色生成,您可能需要对几何验证程序的“失败”功能进行着色,以区分结果:

注意,有两个功能被标记为无效,重复点突出显示。

连续重复顶点计数:逐步指令

Counting the number of invalid features and bad points is quite easy because we have already filtered them out.例如,甚至工作台的特性计数也会告诉我们所涉及的数字:

要创建存储在属性中的计数,使用statisticscaleculator转换器很简单。

按照以下步骤学习如何计算重复顶点特征。

5。在geometryvalidator:failed端口与其inspector transformer之间添加一个statisticscaleculator。还可以在geometryvalidator:issuelocations端口与其inspector transformer之间添加一个统计量计算器。

对于这两个统计量计算器,选择任意属性作为要分析的属性。事实上,我们选择哪一个属性并不重要,因为我们只需要一些特性。

删除“计算属性”字段中的所有值。对于第一个StatisticsCalculator,在total count字段下添加“badFeatures”,以提供坏特性的计数。对于第二个统计量计算器,在total count字段下添加“duplicatevertices”,以提供重复功能的计数。

重新运行工作区。这次,输出应该包含一个属性,该属性指示每种类型有多少坏特性。

NB:如果您将StatisticsCalculator:Summary输出端口连接到检查器,只有一个输出特性。要获得所有输出功能,请确保连接了完整的端口。


固定连续的重复顶点:逐步说明

通过删除其中一个副本,可以很容易地修复无效的重复顶点。几何验证程序有一个这样做的选项。

6。打开“几何验证器参数”对话框,将“尝试修复”参数更改为“是”。重新运行工作区。当然这次不会有失败的功能,但仍将输出问题位置,以显示重复点的位置。

数据属性

这里使用的数据来源于温哥华市提供的开放数据,不列颠哥伦比亚(数据.couver.ca)它包含根据开放政府许可证(温哥华)获得许可的信息。

GIS 数据质量保证 几何验证程序 制图的 周一,2017年9月11日格林尼治标准时间15:05:31 MARK2AT亚搏在线SAFE
帮助象征属性值的FME https://knowledge.亚搏在线safe.com/questions/48955/fme-to-help-symbolise-attribute-values-1.html

我有一个ESRI功能类,有4000个记录,员工及其所在位置,in a field "Location." So for arguments sake,有50个不同的地点。我想做的是在Arcmap中使用比例符号来表示每个位置的员工人数。在FME中,是否有一种方法可以设置功能类来实现这一点?例如,say of the 4000 staff records there are 1000 based in London (simply populated "London" in the "Location" field) then I wish to then symbolise this proportionally (based on that 100 figure),其他城市也是如此。

谢谢

地理数据库 制图的 清华大学,2017年7月27日格林尼治标准时间15:12:33 cliff_wade
找不到此计算机上安装的Avenza Mapublisher https://knowledge.亚搏在线safe.com/questions/45285/failed-to-locate-avenza-mapublisher-installed-on-t.html

I am attempting to run a workspace on FME Server 2017 that writes to the Adobe Illustrator - Avenza MAPublisher writer.然而,我一直收到以下错误:“未能在此计算机上找到安装的Avenza Mapublisher。”我在两个客户端工作站上都安装了Mapublisher 9.8,以及安装了FME Server 2017的服务器。我已经使用FME桌面2017成功运行了相同亚搏在线的工作流。请就任何可能解释为什么FME服务器不能识别安装了Mapublisher的解决方案提出建议。谢谢您。

制图的 土砖 avenza 清华大学,2017年6月1日15:31:36格林尼治标准时间 重投影
使PDF层可锁定 https://knowledge.亚搏在线safe.com/idea/36597/make-pdf-layers-lockable.html(可锁定)

正如在此线程,PDF规范允许锁定层,这意味着当文件在PDF阅读器中打开时,用户无法切换这些层的可见性。把一般信息放在地图上是有意义的。传说,标题,网格,地图领子等),只有用户控制地图数据层。

现在,FME不支持这一点,在创建文件后,我们必须在Acrobat中执行此操作,但显然,对于大容量或自动化流程,这不是一个选项。

PDF 制图的 清华大学,2016年11月17日08:04:43格林威治标准时间 红色地理
数据QA:识别无效的几何图形类型 https://knowledge.亚搏在线safe.com/articles/34673/data-qa-identifying-invalid-geometry-types.html网站

无效的几何图形类型

InvalidGeometry类型是指几何类型对于其表示的特征类别无效的类型;例如,自行车路径由点几何图形表示,或者河流由多边形几何体表示(如下所示):

这种几何图形是否真正无效取决于用户对数据的解释和任何特殊情况。例如,数据的规模可能会使河岸两侧都被捕获(如上所述)。因此多边形是完全合法的几何类型。

InvalidGeometry类型还包括组织可能具有的任何特殊规则,允许通常无效的情况发生。例如,测绘机构可以命令街道照明柱不由其核心位置的点特征存储,but instead is stored as a polygon representing the extent of the acceptable lighting level (like below):

一般来说,FME可以使用几何滤波器transformer and - in some cases - can fix problems using a几何矫形器.

NB:这里无效的几何类型意味着对组织规则无效。这并不意味着几何图形对格式本身无效。

下载

源GML数据集

定位无效的几何图形:作为模板的工作区

Count Invalid Geometry: Workspace as a Template

修复无效的几何图形:作为模板的工作区

源数据

本例的源数据集是(假定的)一组表示轮廓的线(在GML数据集中)。

数据集在FME数据检查器中如下所示:

这里的场景是,我们有许多轮廓文件,并且希望使用此单个文件作为原型来设置对错误几何类型的检查。正如你所看到的,形成闭合形状的轮廓被创建为多边形特征。此外,不仅有轮廓,但也要注意高度点和谁知道其他类型的几何图形。这些特性需要使用FME过滤或修复。

查找无效的几何图形类型:逐步说明

按照以下步骤了解如何识别具有无效几何类型的轮廓特征。

1。启动FME工作台,从一个空画布开始。

从菜单栏中选择“读卡器>添加读卡器”。在打开的对话框中,将数据格式设置为GML(地理标记语言)。选择附加的GML文件作为源数据集。

单击“确定”关闭对话框并添加读卡器。

2.Add a GeometryFilter transformer after the GML reader feature type:

三。打开“几何过滤器参数”对话框。在这里,我们可以定义要过滤的几何类型。我们应该选择“线”,因为轮廓是由自然的线特征决定的。我们还应该选择“区域”,因为我们知道区域特征存在,并且它们可以被修复。

再次单击“确定”和“确定”关闭对话框。The workspace now looks like this:

任何不是线条或区域的几何图形都将“未过滤”。

4。将Inspector Transformers连接到每个输出端口并运行工作区。非线条特征将被过滤到单独的图层上,显示如何单独处理它们。

Counting Invalid Geometry Types: Step-by-Step Instructions

计算坏特性的数量非常容易,因为我们已经将它们过滤掉了。例如,甚至工作台特性计数也显示了40个未过滤的特性。

要创建存储在属性中的计数,使用statisticscaleculator转换器很简单。

5。在geometryfilter:unfiltered端口与其inspector transformer之间添加一个统计计算器。打开参数对话框。

第一选择高程作为要分析的属性。事实上,我们选择哪个属性并不重要,因为我们只需要一些功能。

删除“计算属性”字段中的所有值,然后在“总计数”字段下添加“BadFeatures”。这将提供一些坏特性。单击“确定”关闭对话框。

重新运行工作区。这次,输出应该包含一个属性,该属性指示有多少坏特性。

NB:如果您将StatisticsCalculator:Summary输出端口连接到检查器,只有一个输出特性。要获得所有输出功能,请确保连接了完整的端口。

Fixing Invalid Geometry Types: Step-by-Step Instructions

可以在FME中使用GeometryCoercer更改几何类型。我们过滤掉了点特征(以及任何其他几何类型),因为没有简单的方法可以将它们转换为线特征。然而,区域特征可以很容易地从多边形更改为闭合线。

6。添加一个连接到几何过滤器的几何线圈变压器:区域输出端口:

确保其连接如图所示-强制特征将轮廓连接在单个检测变压器中。

7。打开GeometryCoercer的“参数”对话框。将几何类型设置为“FME_line”。

单击“确定”关闭对话框并重新运行工作区。结果是一组干净的轮廓,没有无效的几何类型:

笔记

Here are some other techniques for fixing invalid geometry types.

1:当几何图形应该是一个岛(或甜甜圈),但“孔”被填充(如下所示)时:

…那么Donutbuilder变压器将是最好的解决方案。

2:当几何图形应该是直线时,但是是一个区域(如一步一步的例子),结果应该是一个网络(如这些道路特征)。

…然后几何取景器将区域更改为线条,但它不会在节点点拆分它。这就需要增加一个交叉变压器。

三。The GeometryCoercer can turn a single closed line into a polygon feature,but it won't build polygons from a set of individual lines.这需要区域生成器变压器。

数据属性

这里使用的数据来源于温哥华市提供的开放数据,不列颠哥伦比亚(数据.couver.ca)它包含根据开放政府许可证(温哥华)获得许可的信息。

GIS 数据质量保证 几何验证程序 几何滤波器 制图的 几何矫形器 结婚,2016年9月28日格林尼治标准时间18:35:39 MARK2CAT亚搏在线SALIT
数据质量保证:识别无效的空间关系 https://knowledge.亚搏在线safe.com/articles/34593/data-qa-identifying-invalid-relationships.html

无效的关系

Invalid relationships are where there is a spatial association between features that is illogical in some way;例如,一条自行车道穿过一个湖泊,或一个街道灯柱出现在建筑物的占地面积内(如下所示):

这种关系是否真正无效取决于用户对数据的解释和任何特殊情况。例如,the bicycle path might run through the lake on a wooden walkway,或者,街道照明柱可能真的位于建筑物的屋顶或悬挑的下方(至少有一个悬挑)。

因此,FME可以突出可能出现的问题,但只有最终用户才能决定什么是错什么是对的,以及如何解决这个问题。

无效关系还包括组织可能具有的任何特殊规则,包括非自然无效的情况。例如,地图绘制单位可以规定,自行车道经过非本市所有的土地的,为错误车道。或者,如果路灯柱相距超过50米,它们可能无效,表示灯光变暗的距离(如下所示):

因为有各种关系可以测试,FME中有各种变压器可用于测试它们。下面的示例和注释仅涵盖其中的一些内容。

下载

源形状文件数据集

NB:本例中使用的光栅图块可以,如果需要,be downloaded as part of the亚搏在线安全样本数据集

定位无效关系:工作区作为模板

计数无效关系:将工作区作为模板

源数据

本例的源数据集是一组线条(在三个ESRI形状文件中),表示温哥华市的循环路径,以及一个单独的多边形(同样是esri shapefile格式),代表温哥华市的范围。

数据集在FME数据检查器中如下所示:

这里的情况是,我们希望检查是否有任何自行车路线错误地落在城市边界之外;for example it passes through a harbour or creek,或者部分地跨越边界进入另一个城市。

查找无效的循环路径:分步说明

Follow these steps to learn how to identify cycle path features that have an invalid relationship with the city boundary.

1。启动FME工作台,从一个空画布开始。

从菜单栏中选择“读卡器>添加读卡器”。在打开的对话框中,将数据格式设置为esri shapefile。因为两个源数据集都是shapefile格式,所以我们可以使用同一个读卡器来读取这两个数据集。

如果附加的数据集存储在同一文件夹中,单击“浏览”按钮并选择全部四个。然后单击“确定”关闭对话框并添加读卡器。

然而,if the datasets are stored in separate folders,单击“高级浏览器”按钮:

在“高级”对话框中,单击“添加文件”按钮,然后依次添加每个形状文件。

Click OK to close the dialogs and add the reader.

2.The bicycle paths are long features and it would not be particularly useful to simply identify which lines overlap the city boundary;instead it's necessary to clip out the actual invalid parts of each line.

所以,将剪辑转换器添加到工作区。将VancouVerlandBoundary数据集连接到裁剪器端口,将自行车路径功能类型连接到裁剪器端口:

三。将检测变压器连接到剪具:外部端口,以及万古瓦兰边界特征类型;然后运行工作区。

很明显,有几个地方的自行车道延伸到温哥华土地边界之外,但是,除非我们能看到背景图,否则不太清楚哪个数据集是正确的。

因此,在FME数据检查器中,选择工具>FME选项并选择要显示的背景图。或者选择文件>添加数据集,将格式设置为geotiff(地理参考标记图像文件格式),然后选择“下载”部分中提到的geotiff文件。

现在我们可以看到循环路径或陆地边界数据是否正确(在上面的屏幕截图中,循环路径显然是正确的)。检查自行车道上所有被夹住的部分,看是否需要修理。

计数无效循环路径:逐步指令

计算坏特性的数量非常容易,因为我们已经将它们过滤掉了。例如,甚至工作台的特性计数也显示了28个坏的部分。但是,了解有多少个循环路径有问题,以及每个循环路径有多少坏的部分是有用的。

要创建存储在属性中的计数,使用statisticscaleculator转换器很简单。

4。在裁剪器之间添加两个统计量计算器:外部端口及其检查器转换器。确保摘要输出端口从第一个StatisticsCalculator连接,但在第二个完整的输出端口。

打开第一个统计计算器的参数对话框。This will be used to tell us how many bad pieces there are in each path.因此,将group by参数设置为pathID。

接下来,选择pathID作为要分析的属性。事实上,我们选择哪个属性并不重要,因为我们只需要一些功能。

删除“计算属性”字段中的所有值,然后在“总计数”字段下添加“坏节”。这将为每个路径提供坏段的计数。

单击“确定”关闭对话框。

5。打开第二个统计计算器的参数对话框。选择badsections作为要分析的属性(同样,我们使用哪个并不重要)。删除“计算属性”字段,然后在“总计数”字段下添加“坏路径”。

重新运行工作区。这次输出应该包含一个属性,该属性表示有多少坏路径,and how many bad sections there are per path:

这些只是统计数据,不是几何学。要保存坏截面的几何图形,add a writer connected to the Clipper:Outside output port.

修复无效的循环路径

使用FME通常不可能修复这样的无效功能,because of the need for user validation of the bad features.事实上,如果检查这个示例的输出,您会发现在所有情况下,循环路径的“坏”部分都是由a)通过桥引起的,或b)陆地边界几何结构不正确。

笔记

1:我们可以打开背景图,而不是将geotiff数据添加到数据检查器中。甚至添加geotiff作为自动背景。

2:为了找到问题点特征,就像建筑物内的路灯柱一样,请遵循以下说明:多边形处理中的点通用地理信息系统操作教程

3:要查找问题特征,如区域不正确重叠,check the Slivers and Overlaps article in this tutorial,或提取多边形交点通用地理信息系统操作教程中的文章

数据属性

这里使用的数据来源于温哥华市提供的开放数据,不列颠哥伦比亚(数据.couver.ca)它包含根据开放政府许可证(温哥华)获得许可的信息。

GIS 剪刀 统计计算器 数据质量保证 几何验证程序 制图的 星期二,2016年9月27日16:39:08格林尼治标准时间 MARK2CAT亚搏在线SALIT
数据质量保证:识别比最小距离更近的特征 https://knowledge.亚搏在线safe.com/articles/33136/identifying-features-closer-than-a-minimum-distanc.html网站

介绍

将用于特定比例尺的制图制作的特征需要间隔一定的距离,以便在最终的地图输出中不重叠。因此,在这种情况下,测试比设定距离更近的特性是一种有用的能力。

例如,用户正在绘制喷泉图,但发现,在所需的比例下,所选符号与建筑足迹重叠:

因此,用户需要识别这些功能,量化问题,and then fix the issue by displacing the features to the required distance.

下载

源数据集

定位最小距离要素:作为模板的工作空间

计数最小距离特征:作为模板的工作空间

固定最小距离特征:作为模板的工作空间

源数据

本教程的源数据集是一组线条(在AutoCAD DWG数据集中),代表温哥华市的道路,以及一组表示公共艺术的点特征(存储在Excel电子表格中):

这里的场景是,我们希望创建一张温哥华市的公共艺术品地图。然而,为了确保没有功能重叠,我们需要识别和移动道路10米范围内的公共艺术特征。

为了做到这一点,我们将首先使用邻域查找变压器(以识别坏特性)。统计计算器(对其进行计数);然后是浮筒变压器(来固定它们)。

识别无效功能:逐步说明

按照以下步骤学习如何识别最小距离范围内的特征。

1。启动FME工作台,从一个空画布开始。

从菜单栏中选择“读卡器>添加读卡器”。

将数据格式设置为autodesk autocad dwg/dxf。选择附加的dwg文件作为源数据集。Click the Parameters button and set Group Entities By to "Attribute Schema".

Back on the main dialog,选择工作流选项“单一合亚搏在线并功能类型”。这将在工作台中创建一个单一的FME特性类型。单击“确定”添加读卡器。

2.第二次从菜单栏中选择“读卡器>添加读卡器”。

将数据格式设置为Microsoft Excel,并选择附加的XLSX文件作为源数据集。单击参数按钮。确保使用数据类型定义属性“经度”和“纬度”。x-坐标Y-坐标.

返回主对话框,确保“工作流”选项仍设置为“单个合并要素类型”,然后单击亚搏在线“确定”添加读卡器。

三。存储在Excel数据集中的坐标是纬度/经度坐标系,与道路数据坐标系(UTM83-10)不同。要执行此操作,需要所有数据都在一个公共坐标系中。

所以,添加一个reprojector transformer并将Excel Reader功能类型连接到其输入端口:

4。打开reprojector的参数对话框。将其设置为将Excel数据从ll83重新投影到utm83-10:

单击“确定”关闭对话框。

5。现在我们准备好处理数据了。To identify invalid features so that,也许,我们可以在其他地方手动处理它们,we'll use the NeighborFinder transformer.

放置一个邻居探测器变压器。将reprojector:reprojected端口连接到neighfinder:base输入端口。将道路功能类型连接到邻居查找器:候选端口:

打开“邻居查找器参数”对话框。将“最大距离”参数设置为10。

6。Connect an Inspector transformer to the Matched and UnmatchedBase output ports,另一个是道路特征类型。运行工作区。

Features emerging from the Matched port are within 10 metres of a road and therefore need attention.

计算无效功能:逐步说明

计算坏特性的数量非常容易,因为我们已经将它们过滤掉了。例如,甚至工作台的特性计数也会告诉我们所涉及的数字:

但是,使用statisticscaleculator转换器创建存储在属性中的计数同样简单。

按照以下步骤学习如何计算短线功能。

7。在neighfinder:matched端口及其inspector transformer之间添加一个统计计算器。打开参数对话框。

第一选择功能类型作为要分析的属性。事实上,我们选择哪个属性并不重要,因为我们只需要一些功能。

删除“计算属性”字段中的所有值,然后在“总计数”字段下添加“BadFeatures”。这将提供一些坏特性。单击“确定”关闭对话框。

重新运行工作区。这次,输出应该包含一个属性,该属性指示每种类型有多少坏特性。

NB:如果您将StatisticsCalculator:Summary输出端口连接到检查器,只有一个输出特性。要获得所有输出功能,请确保连接了完整的端口。

8。如果检查了原始Excel数据集,你可能已经注意到温哥华每个街区的艺术品都在一张单独的纸上。如果你想根据邻居数一数坏特性,重新打开StatisticScaleCalculator参数对话框,并将Group By参数设置为Group By属性功能类型

运行工作区,您将看到市中心的坏特性数量(16个)。FalVIEW(2)普莱森特山(1)斯特拉思科纳(3)。

修复无效功能:逐步说明

过近的特性可以很容易地用FME中的置换变压器来固定,这取决于它们的几何结构。Carry out the following steps to complete the workspace and fix the invalid features automatically.

9。Delete the NeighborFinder transformer and add a Displacer transformer to the canvas.置换器可以定位和修复无效特征,所以不再需要找邻居了。

将置换器连接到道路和公共艺术特征-但这一次道路是基本特征,艺术作品为候选人提供:

10。打开“置换器参数”对话框。将“刚度”参数设置为1,将“最小分离距离”设置为10。这将确保这些点距离道路至少10米。

将“基础类型”参数设置为“多个基础”(因为有多个道路特征)

11。重新运行工作区。注意,离路太近的艺术品已经被移走了。

笔记

1 - The Displacer transformer works best with simple geometry such as point features.尝试替换线条特征是一项更困难的任务。

2-有时置换器的结果也不完美。找到Marinside Crescent Lookout艺术品,你会看到,虽然它成功地从一条路移开,它现在离另一个太近了!

像这样夹在两个特性之间的特性几乎不可能被自动修复。

数据属性

这里使用的数据来源于温哥华市提供的开放数据,不列颠哥伦比亚(数据.couver.ca)它包含根据开放政府许可证(温哥华)获得许可的信息。

GIS 邻域 统计计算器 数据质量保证 几何验证程序 制图的 置换器 结婚,2016年8月31日格林尼治标准时间21:18:43 MARK2CAT亚搏在线SALIT