我们付出一些成本,时间的或者其他,最终总能收获一些什么。
【由于上周,上班状态不是很好,事情多又杂,没有学习的劲头,就短暂的休息了一下下。双休爬山,给自己上了强度,今天才缓过来,下周又是五一了,估计要到五一后过渡一下,学习的劲头又能恢复了】
教程: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为点的标签
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。