免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 1512|回复: 5
收起左侧

【FME- HOW- TO系列】03 对表格或图形数据进行排序

[复制链接]

665

主题

2万

铜板

34

好友

传奇会员

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
20649

精华勋章爱心勋章地信专家组贡献勋章冰雪节勋章

发表于 2021-3-31 15:31 | 显示全部楼层 |阅读模式
概述

使用FME可以多种方式对表格数据进行排序。您可以使用FME Data Inspector对属性进行整理,以手动对列进行排序,也可以在Workbench中使用Sorter转换器。Sorter函数类似于SQL函数:ORDER BY。在本教程中,您将学习如何在FME Data Inspector中对表格数据进行排序并使用Sorter转换器。


下载

sort-tabular-data.fmwt

drinkingfountains.csv

注意:由于您正在处理面向公众的数据库,因此有时可能会覆盖和/或修改表。如果您的转换产生意外结果,请参阅重置PostGIS培训数据库文章或者,您可以下载提供的文件,并使用适当格式的转换器替换PostGIS转换器

练习1 - 使用FME Data Inspector对数据进行排序

在这种情况下,您希望能够使用FME Data Inspector按升序或降序(按字母顺序或数字顺序)对表格数据进行排序。

说明

1.启动FME Workbench

  • 如果尚未打开,请启动FME Data Inspector。

2.打开数据集

  • 使用快捷键CTRL + O,打开文件夹图标,或导航到文件 - >打开数据集。

3.选择要查看的数据集

  • 读模块格式设置为PostGIS。
  • 接下来,从读模块r Connection列表中选择PostGIS Training Database。如果尚未设置数据库连接,请选择“添加数据库连接”并输入以下参数:
  • 接下来,打开读模块参数并从表列中选择DrinkingFountains表。

4.排序列(升序)

  • Data Inspector的“表视图”部分中,单击“fountainid”列标题以按升序排序。

如果属性未正确排序,则可能使用了错误的排序方法。右键单击列标题,然后从下拉列表中选择Sort Numeric Ascending排序方法。

5.排序列(降序)

  • 再次单击“fountainid”列标题可将列排序从升序更改为降序。

6.清除所有排序

  • 右键单击任何列标题,然后选择“清除所有排序”。这将删除已应用于表的所有排序,并将数据集返回到其原始顺序。

练习2 - 使用Sorter按字母顺序对数据进行排序

在这种情况下,您希望能够按多列对表格数据进行排序。首先,您希望您的表根据maintainer字段按字母顺序,然后根据fountainid字段按数字顺序降序排列。

注意:此处显示的场景可能与预期的实际应用程序不同。由于使用面向公众的数据库所面临的挑战,您将在这里读取DrinkFountains表并最终写入名为DrinkingFountainsSorted的表。您可能会注意到DrinkFountainsSorted已存在于预期的数据模型中,因为其他用户也会运行相同的工作空间。实际上,您可能会读取DrinkFountains,并使用“使用现有”表处理,因为您只是重新排序表中的要素

说明

1.启动FME Workbench

  • 如果尚未打开,请启动FME Workbench。

2.选择“生成工作空间”

  • 在“开始”页面的“创建工作空间”部分中,选择“生成工作空间”选项。

注意:生成工作空间的快捷方式是Ctrl + G.

3.设置读模块格式并连接到PostGIS Training Database

  • 在“生成工作空间”对话框中,将“读模块格式”设置为PostGIS。
  • 接下来,从读模块连接列表中选择PostGIS Training Database。如果尚未设置数据库连接,请选择“添加数据库连接”并输入以下参数
  • 接下来,打开读模块参数并从表列中选择DrinkingFountains表。

4.设置写模块格式并连接到PostGIS Training Database

  • 写模块格式设置为PostGIS,将写模块连接设置为与读模块(PostGIS Training Database)相同的连接,然后单击OK以生成工作空间。“生成工作空间”对话框应如下面提供的屏幕截图:

5.设置要素操作和表处理

  • 生成工作空间后,双击“写模块要素类以打开“写模块要素类参数”对话框。
  • 在“常规”部分中,将“表名称”设置为“DrinkFountainsSorted”。
  • 在“表”部分中,确保“要素操作”设置为“插入”并将“表处理”设置为“删除和创建”。

注意:当需要清空表并对数据库模式进行更新时,将使用Drop和Create。例如,drop和create用于删除表结构,可能是添加或删除列,更改数据类型等。有关写模块要素类参数(如表处理)的详细信息,请参阅文档

6.更新属性

  • 切换到写模块参数对话框中的用户属性选项卡,将属性定义设置为Automatic。
  • 单击“确定”接受更改并关闭“写模块参数”对话框。

注意:自动属性定义是指Workbench自动定义属性列表时,具体取决于所连接的读模块要素类。此外,只要在工作空间中更改(即重命名,删除等)属性,写模块要素类上的属性列表就会自动更新。有关用户属性和属性定义的更多信息,请参阅文档

7.添加Sorter

  • 将“Sorter”添加到画布通过键入“Sorter”以显示“快速添加搜索”中的FME转换器列表。通过双击或使用箭头键来选中转换器列表中的Sorter,然后回车键将添加到工作空间中。
  • 添加转换器后,将DrinkingFountains读模块连接到Sorter,然后连接Sorter:Sorted端口到DrinkFountainsSorted写模块

8.按字母顺序排序

  • 添加Sorter后,双击Sorter或单击齿轮图标以打开转换器参数对话框。
  • 在Sort By部分中,单击Attribute下的空单元格,然后从下拉列表中选择“maintainer”属性。
  • 接下来,再次从下拉列表中进行选择,确保Alpha / Num设置为Alphabetic并且Order为Ascending。
  • 同样,设置第二个Sort By条件以按数字降序排序“fountainid”属性。

注意:Sort By操作的顺序将决定首先排序哪个列(列表顶部先排序)。您可以使用对话框底部附近的向上和向下箭头调整每个排序条件的顺序。

9.运行工作空间

  • 单击工具栏上的“运行”按钮,或使用菜单栏上的“运行”>“运行转换”运行工作空间

运行表后,您的表将按Sorter参数中定义的排序方法进行排序。您可以通过选择写模块并单击选择写模块时出现的快捷菜单中的“检查”按钮来查看新表。


结果

输入

输出


转换器
  • Sorter - 按选定属性的值对要素进行排序。
本文转载来自CSDN作者:fmechina   版权归作者所有

10

主题

2万

铜板

34

好友

黄金会员

Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23

积分
4394

精华勋章灌水勋章活跃勋章贡献勋章

发表于 2021-3-31 16:06 | 显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

322

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
18
发表于 2021-4-1 08:41 | 显示全部楼层
谢谢分享
回复

使用道具 举报

2

主题

3万

铜板

6

好友

钻石会员

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
5686
发表于 2021-12-5 21:52 | 显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

1047

铜板

4

好友

助理工程师

Rank: 5Rank: 5

积分
399
发表于 2022-8-12 16:59 | 显示全部楼层
感谢分享
回复

使用道具 举报

2

主题

3万

铜板

6

好友

钻石会员

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
5686
发表于 2024-3-4 19:28 | 显示全部楼层
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表