FME学习之旅---day26

发布于:2024-05-07 ⋅ 阅读:(29) ⋅ 点赞:(0)

我们付出一些成本,时间的或者其他,最终总能收获一些什么。

【由于上周,上班状态不是很好,事情多又杂,没有学习的劲头,就短暂的休息了一下下。双休爬山,给自己上了强度,今天才缓过来,下周又是五一了,估计要到五一后过渡一下,学习的劲头又能恢复了】

教程:JSON 入门

本教程系列概述了如何使用 FME 读取、写入和转换 JSON 数据。

【由于工作的需要,会频繁的使用到json文件中存储的wkt格式的坐标数据,需要将其转换成shp;或者人工确定json中某一固定属性对应的值等一些重复枯燥的人工核实任务,所以想看一下FME中能否有较好的解决方法】

阅读JSON

JSON 读取器自动模式

1. 打开 FME Workbench 并添加 JSON 读取器

2.将 JSON 读取器架构扫描模式更改为 JSON 查询

表视图”将报告数据没有架构,但使用“要素信息窗口”会显示列表属性。仅包括天气的子数据,而不包括机场、城市等父数据:

从 JSON 中提取位置

        案例中涉及的主要是将json中的点坐标暴露后,进行点要素的空间化,设置相关的样式,导出为KML格式。

1.添加JSON相关的读模块

根据教程中的下载相应的json数据,添加到读模块中

设置参数时,Schema Scan Mode为Auto(自动)

2.使用AttributeCreator将未暴露的坐标进行暴露,也可使用 AttributeExposer 转换器进行暴露

3.使用VertexCreator转换器,进行点坐标的空间化

4.使用CoordinateSystemSetter转换器,进行坐标系的设置,将坐标系定义为LL84

5.使用KMLPropertySetter转换器,设置fields.totalunits为点的标签

KMLPropertySetter转换器说明:为一组输出到 OGCKML 写模块的矢量和栅格要素,设置公共的属性

6.使用KMLStyler转换器,对样式进行设置

KMLStyler转换器说明:为一组输入到OGCKML写模块的要素创建公共样式。

7.添加KML写模块,属性定义采取自动的模式

没有安装谷歌地球,直接在FME中空间化的效果。

高级 JSON 读取

1.使用JSON读模块读取,读取floods.json文件

其中,items{}.floodArea.polygon 属性中存放了json文件的相关地址

我们必须提取链接到多边形数据的 URL,并使用它们将几何体读取到我们的工作空间。

对读模块的参数进行设置,将Schema Scan设置如下

对读模块进行预览,能看到floodArea.polygon已经被公开。

2.使用FeatureReader转换器

FeatureReader转换器说明:

“生成输出端口”对话框将询问您是否要提供用于生成输出端口的数据集,但在本例中,我们不需要这样做,因此我们可以单击“取消”。

示例中添加了KMLStyler转换器和KML写模块,上个例子中已经学习过,就直接使用Inspectors进行查看。

编写 JSON

JSON 编写器提供了一种快速简便的方法来将数据转换为 JSON 格式。但是,它只适合编写不嵌套的平面 JSON。

分布说明

第1部分:编写JSON

1.读模块读取Excel文件,publicart.xlsx

点击参数,可以看到Excel表的详情

2.添加写模块

添加JSON写模块,在参数设置中,进行如下修改。

3.在notepad++中显示输出的json文件

这一点说明,FME 的 JSON 编写器最适合用于不需要嵌套的情况。

第2部分:编写GeoJSON

GeoJSON 是一种 JSON 规范,用于处理地理数据的几何编码。

使用 JSONTemplater 编写 JSON

文章详细介绍了如何使用 JSONTemplater 和文本文件编写器编写嵌套JSON。