斯潘8
斯潘4
Inspire是一项欧盟指令,要求成员国和机构共享空间数据,以便更好地支持环境决策。实现这种数据交换的关键方法是使用使用开放标准(如OGC WFS(开放地理空间联盟Web功能服务))访问的通用数据模型。这个原型演示了如何使用FME来实现这种方法,方法是从具有不同数据模型的不同数据源中读取数据,并将其模式转换为符合受保护区域的通用激励模式。这是通过一个加载程序工作区来完成的,该工作区读取不同的源,处理所需的模式转换并将其加载到PostGIS空间数据库中。它还演示了如何使用FME构建一个OGC Web服务来发布这些数据。建立了一个工作区,用于读取PostGIS并写出符合Inspire保护区模式的GML 3.2.1数据。然后在FME服务器上发布到WFS服务。因此,该原型成功地证明了可以使用FME桌面来设计数据转换,并且可以使用FME服务器通过OGC Web服务发布它们,以支持不同现实世界数据源的空间数据集成到Inspire保护区模式中定义的公共数据结构中。所有这些都是在没有任何编程或脚本的情况下完成的。唯一需要的资源是getcapabilities.xml的XML文档,描述feature.xml,用于受保护站点的示例记录和经调整用作模板的父文档示例。希望此原型将作为其他司法管辖区的示例实施,并激励其他用户考虑使用空间ETL工具(如FME)以最小的风险和努力弥合其不同数据源之间的差距和激励规范不断变化的复杂性。特别感谢Metria,我们在瑞典的合作伙伴,他们的中心作用和参与本项目。要查看此原型的实际操作,请遵循以下说明:激发保护区演示
本演示使用的数据来自Natura2000——欧洲保护区数据库,瑞典NVR——瑞典环境保护区数据,赫尔科姆,波罗的海保护区数据库。所有这些模式都有不同的本机模式,必须映射到Inspire Protected Areas模式。
1。读取源数据库(natura2000,NVRHELCOM或替代)2.将所有必需的站点字段与基于站点代码的FeatureMerge一起联接。三。创建源中不存在的任何必需字段。4。通过模式映射器处理每个特性。这定义了从源模式到目标激励保护区模式的所有属性映射。它还用于创建源中不存在的许多必需字段,然后为这些字段设置默认值。5。将OGC几何体提取为GML3.2XML,并存储在一个几何体文本属性6中。使用xmlTemplater为每个子实体(一对多关系)生成XML,例如受保护的站点活动。xmlTemplater使用子记录实体的XML原型,然后使用fme:get-attribute()和fme:get位于模板内适当位置的xml属性函数将属性替换为该模板。这类似于文档合并应用程序。7。将活动合并到受保护的站点功能中,这些功能包含活动的XML代码段列表和几何图形的一个大型XML代码段。8。将完整的受保护站点功能写入inspire postgis数据库中的protected site表,该数据库在inspire protected areas模式之后建模。
1。从PostGIS数据库中读取源inspire protectedsite表。通过WFS GetFeature请求使用随bbox参数提供的扩展数据块。2。使用xmlTemplater为每个受保护的站点功能生成XML,使用fme:get-attribute()将属性替换为protectedsites_featureTemplate.xml,使用fme:get-xml-attribute()3生成XML片段。合并到包含受保护站点XML代码段4列表的单个功能中。使用xmlTemplater为整个数据集生成XML,使用fme:get-xml-list-attribute()5将ProtectedSites功能XML替换为ProtectedSites_datasetTemplate.xml。根据inspire模式测试模式有效性(此测试是可选的,因为禁用测试可以提高性能)。6。使用文本文件编写器编写完整的XML文档注意,在FME查看器中,WFS数据可以很容易地与其他矢量或光栅数据源(如WMS边界层)重叠,以为受保护的站点提供上下文。如果你有什么问题,请联系技术支持并确保在主题行中指定Inspire Protected Areas演示。
构建一个可扩展的,激励兼容的数据发布和分发系统。这意味着要遵守通用的inspire数据模型的标准化规范,并为Web服务使用OGC标准。
这个系统最重要的要求之一是它是可扩展的。这意味着应该很容易添加新的数据源,随着需求的增加,易于增加处理能力以服务更多用户和处理更多数据,并且易于合并新的数据类型。自然地,每件事都必须激励顺从。这是通过使用OGC标准(如WFS)并验证所有数据输出是否符合Inspire模式来实现的。明确地,这意味着必须根据JRC提供的GML 3.2.1受保护站点XSD验证通过WFS传输的GML。另外两个标准也是基于该原型的系统未来潜在成功的核心。这些标准有时被寻求理想解决方案的基于标准的方法所忽视,但并不总是考虑与现有工作流集成的严酷现实。亚搏在线任何新的基于inspire的系统都需要是非侵入性的。这意味着现有的工作流程,亚搏在线工具,而且数据模型不能受到影响。激励系统不应该规定如何完成工作。贡献型组织必须能够随心所欲地创新。FME的好处在于,它允许在非常不同的系统之间进行复杂的集成,使用户能够弥合开放标准和专有系统之间经常出现的差距。事实上,许多组织将继续使用专有系统,并且需要找到将这些与基于开放标准的计划(如inspire)集成的方法。
FME处理复杂XML的能力在历史上是有限的。传统的地理信息系统和数据库是基于关系的。这意味着数据结构通常是扁平的,不管它们是否包含几何图形。另一方面,GML结构,如用于激励的结构通常很复杂,面向对象,嵌套结构。例如,房子里有带抽屉的家具等房间。这在关系上下文中很难以自动化的方式进行建模。随着2010年及以后的FME,我们开发了一种模板方法来解决这个问题。XML模板用于根据需要定义复杂或嵌套的结构。然后,要插入属性值的位置,您需要做的只是在XML模板中插入fme:get-attribute()函数。这通常是在包含XML的记录模板中完成的,用于描述与一个功能类型关联的数据。然后,当您想要将所有的特性类型滚动到父对象或文档中时,可以使用fme:get list attribute函数。当属性包含XML片段时,我们必须使用fme:get-xml属性调用来正确处理标记。说到做到,我们只需将所有XML组装成一个文本文档,然后使用文本文件编写器将其编写出来。我们还可以通过一个XMLvalidator转换器传递XML,以在编写前最后一步根据应用程序模式验证输出。因此,最终这涉及到一个类似文档合并的过程,如果XML模板保存了不更改的结构,并且FME GET函数替换了从一个记录更改到下一个记录的值。虽然这看起来像是一条捷径,最终的结果是XML,它根据GML3.2.1来验证激励应用程序模式——最终证明了方法的合理性。这也是一种更容易接近的方法,因为作者只需要真正了解数据结构,不管怎样,这是FME用户通常需要的。不再需要用XSLT编写复杂的脚本,这通常是XML程序员的专业领域。任何将不同系统与通用数据模型集成在一起的系统中固有的另一个挑战是模式转换。FME长期以来一直支持这种能力。其中一个关键的工具是SchemaMapper。然而,过去,SchemaMapper接口是一个需要学习的挑战。最近对FME的改进使其更加直观。基本思想是将数据流程创作与数据重构问题分开。这样,数据域专家就可以自由地编写模式映射,而无需成为数据处理专家。在这种情况下,我们使用电子表格或csv文件来定义从每个源数据模型到公共inspire模式的所有映射。我们还使用相同的表来定义数据源中不存在的新字段,并为它们提供所需的默认值。条件映射规则和编码域也可以应用。然后,将SchemaMapper Transformer插入集成数据流中的适当位置(在所需的连接符之后),并自动将这些数据结构转换规则应用于通过它的所有功能,不管它们来自什么特性类型或者包含什么特性。因此,SchemaMapper和XMLTemplater是FME中的两个工具,它们对原型的功能至关重要,并且允许FME转换这两个数据模式,将XML结构转换为符合定义的inspire标准所需的形式。由于常用的数据模型方法,所涉及的大部分工作都投入到了构建将第一个数据源映射到inspire模式的过程中。此后,这些过程很容易复制和修改,以适应不同的源数据集。对于新的数据源,只需在映射上“填充空白”并设置源属性。
为了实施这个项目,必须克服许多挑战。在FME内,我们必须为xmlTemplater添加一些额外的XML函数。其中之一是fme:get xml-list属性,它简化了将一个功能类型的所有功能输出滚动到父XML文档中的过程,而无需编写for循环脚本。就整个项目而言,开发从源模式到目标激励模式的映射需要大量的工作。inspire模式本质上相当复杂,因此它不一定与任何已建立的数据集标准紧密匹配。消化inspire标准的文档并解释每个字段的含义,并决定哪一个字段与源数据最匹配,或者哪一个字段是最合适的默认值,花费了相当长的时间。因为我们使用上面定义的模式映射器,很容易将此任务与编写转换工作区的开发工作区分开。这意味着一项任务没有被另一项不必要地拖延。它还允许团队成员关注他们的优势。那些熟悉数据集的人被分配了模式映射任务,而其他熟悉FME和XML处理的人则在工作区开发方面做得更好。一个主要的未知数是如何产生有效的和激励符合GML。首先,这是一个挑战,因为现成的FME还没有GML 3.2.1的作者。即使对于标准的FME GML 3.1.1编写器,过去,我们依靠XSLT来重新格式化我们的FME GML输出,以符合定制的应用程序模式。在本例中,我们使用上面描述的xmlTemplater方法。第一步是解释inspire模式,并使用它们构建原型XML记录和父文档。这变得更具挑战性,仅仅是因为现实世界中几乎不存在激励数据——至少我们几乎没有可用的数据。因此,我们必须根据模式的最佳解释手动创建一个受保护的站点记录样本,然后测试这个样本,看看它是否真的符合。这对于基本属性类型来说并不难,但确实对几何图形和子数据类型造成了更多的问题。由于FME不包括GML 3.2编写器,这意味着使用一个旧的OGC WKT几何提取工具,然后解析该文本以符合要求。然而,在项目过程中,向几何量角器添加了一个新参数,允许将几何提取到GML 3.2.1和GML 3.1.1中,简化了这个过程。下一个主要挑战是如何处理嵌套对象或属性。尤其是在自然2000年,受保护的网站可能会有儿童影响和受保护的实体。幸运的是,inspire模式设计为接受这些。然而,我们必须找到一种方法将父实体与其子实体关联起来,然后呈现适当的XML。这是通过使用功能合并列表来实现的。然后通过每个子实体类型的特殊XML模板传递列表,使用get list属性调用为每个子级生成XML片段。最后,get-xml-list属性调用用于为每个功能汇总每个记录的所有子项。一旦我们了解了如何为一个子实体类型执行此操作,这种方法对于其他子类型来说相对容易复制。这个项目中另一个未知的重大问题是通过我们在FME服务器上的WFS服务发布Inspire GML 3.2.1数据。有很多WFS服务器和客户机,但其中许多仅限于GML的特定概况,比如简单的功能。为了使我们的WFS符合Inspire标准,它必须能够传输特定于应用程序模式的GML。早些时候,我们发现我们的WFS服务最初只允许来自GML3.1.1编写器的输出。我们必须放宽这个条件,以便生成XML的任何工作区都可以发布到WFS服务。其次,由FME服务器自动生成getcapabilities和describeFeature文档。我们添加了禁用此功能的功能,并允许作者提供定制的getCapabilities,并描述符合目标应用程序模式的功能文档。最后,数据库中的功能类型名称必须与WFS中的功能类型名称匹配,并最终与Inspire模式中的功能类型名称匹配,以便发布工作。在FME服务器上的这个故障排除过程有时是一个挑战,因为它涉及到改写WFS服务的工作方式,因此当我们做得不太正确时,它并没有提供很多反馈。然而,既然我们已经做到了,复制起来就容易多了。例如,添加新数据源不涉及FME服务器配置方面的新工作,除了物理加载新数据外,这符合我们的可扩展性目标。总体而言,将转换发布到服务器是项目中需要最少努力的步骤之一,只有对FME服务器的最低限度的增强才能支持这一点。与可扩展性相关的一个挑战是数据量,尤其是在几何方面。我们在引入用于数据分段的空间数据库以支持多个源时遇到了这个问题。当我们从源头直接转变为GML时,这不是问题,因为XML不限制字段宽度。然而,空间数据库通常是这样的,自然2000的一些多边形有几十万个点。因为我们决定在加载过程中将几何图形呈现为XML,我们在数据库中的存储空间不足,无法使用一些最大的功能。最后,我们必须添加过滤器来删除超过数据库容量的记录,并根据需要记录警告。然而,为了将来缓解这个问题,我们添加了一个新的attributecompressor transformer,它允许用户压缩和解压缩XML几何属性,这将反过来提高性能,并至少减少一个数量级的数据库占用。完全符合激励模式提出了一些挑战。虽然我们的基本XML结构是正确的,在验证期间,有几个问题最初导致了我们的问题。自2010年以来,FME的一个新工具是XMLvalidator。这对于帮助自动化XML评估和问题诊断非常方便。通过它,我们发现我们有一些名称空间问题。保护区域模式涉及许多命名空间。此外,xmlTemplater还要求即使在XML片段中也声明使用的所有命名空间。我们花了一段时间才弄清楚到底需要什么级别的名称空间,哪些命名空间元素是可选的,甚至是有害的。在GML开发团队的帮助下,我们最终构建了一组满足我们需要的名称空间声明,并允许我们消除名称空间错误。我们还必须学习如何将XML模板与XML片段一起使用。在某些情况下,我们必须添加包装器
除了最大限度地适应现有系统和数据结构之外,成功的原型的另一个特点是,它们向选择采用它们的组织“回馈价值”的程度。像这个inspire原型这样的数据共享系统可以远远超出满足符合inspire标准的复杂需求。它们还可以更广泛地促进组织内部和组织之间更好的数据共享。也,一旦建立了这样的空间ETL系统,集成到新的数据源相对容易,而这些数据源不一定是Inspire所需要的,但是,那些为使用Inspire数据增加了重要价值的数据。例如,背景图像,气候模型数据(netcdf)和实时传感器数据都可以轻松地与inspire数据集成,为数据的最终用户提供更丰富的环境。这有助于支持数据质量审核以及更广泛的分析功能。它还使得与其他组织交换数据变得更加容易,无论它们是否支持Inspire标准。例如数据下载服务,它与FMEServer一起提供,允许用户下载任何格式的数据和他们想要的任何坐标系统,例如ED50形状文件。最后,基于服务器的方法构建了随着需求增加而扩展所需的性能,并允许在需要时实施安全性来管理数据访问。
今后,我们希望增加来自其他机构和司法管辖区的更多数据源。我们还想增加对其他激励主题的支持。与本项目并行开发了一个OGC CSW元数据原型,它可以与此原型集成,以便为受保护区域实现Inspire元数据。在数据质量检查方面,我们还有很多事要做。作为开始,模式验证的需求实际上会捕获许多数据问题,否则可能会忽略这些问题,因为某些关系和数据完整性检查是验证过程(唯一ID等)的一部分。然而,我们还可以在两个几何图形上添加其他质量检查(例如最小面积)和属性(标准化地名等)。我们可以对查看器进行增强,以允许更多的用户探索XML属性。当前FME查看器不显示XML格式字符。FME数据检查员会显示这些,但对每个字段可以显示的字符数有限制。当然,Workbench可用于使用XQueries解析任何WFS请求,因此,FME可以消费和提取任何想要的信息,并提供服务。需要的是探索最终用户需求,以及空间转换工具如何在实现后帮助消化激发服务。最后,绩效是一个需要更多工作的领域。WFS的设计限制了每个查询可以传输的数据量。虽然整个系统可以处理许多事务,当请求超过15或20 MB的数据时,我们遇到了问题,或大于1度x 1.5度的区域的数据。可以探索缓解方法,如缓存,瓷砖,和泛化取决于范围。当用户缩放到更高的细节级别时,WMS还可以用于在大区域显示数据,WFS可用。
?2019安全亚搏在线软件公司|合法的