西班牙
斯潘4
这是伟大的web服务的另一个演示www.geonames.org以及JSONExploder和JSONExtractor使用。
GeoNames在许多其他服务中,具有一个服务,该服务在一个边界框内返回来自气象站的最新天气信息。我的示例以一个表示美国大陆部分的功能为例,对其进行缓冲,提取北面、南面、东面和西面的坐标,形成并将以下URL发送到服务:
http://ws.geonames.org/weatherjson?北=52.38和南…
如您所见,url包含了json一词。这意味着结果将以这种格式发送回,并分配给一个属性(在我的示例中是url内容)。我们有两个处理json的转换器,如下所示(只是一小部分):
{“气象观测”:[{“云”:“不适用”,“气象条件”:“不适用”,“观测”:“K1P1 190540Z自动00000KT 10SM CLR 01/00 A3004 RMKAO2”,“风向”:0,“民航组织”:“K1P1”,“液化天然气”:-71.75,“温度”:“1”,“露点”:“0”,“风速”:“00”,“湿度”:93,“站名”:“普利茅斯市机场普利茅斯”,“日期时间”:“2008-04-19 07:40:00”,“lat”:43.7833333333333},{“clouds”:“n/a”,“weathercondition”:“n/a”,“observation”:“kafp 190540z auto 21004kt 10sm clr 16/07 a3002 rmkao2”,“windspeed”:210,“icao”:“kafp”,“lng”:-80.0677777777777777778,“temperature”:“16”,“dewpoint”:“7”,“windspeed”:“04”,“湿度”:55,“stationname”:“wadesboro,anson county airport”,“datetime”:“2008-04-19 07:40:00”,“lat”:35.0169444444444}…
很难读,不是吗?第一个转换器jsonexploder将把属性分割成不同的特性,其数量由url中的maxrows参数定义,以及可用气象站的数量。它的json查询是json (“weatherObservations”] [*]-它采用带有通配符的数组“weatherObservations”作为索引,这意味着应该将所有元素提取到特征中。
连续的jsonextractor转换器将属性值提取到新创建的属性中。例如,参数'json query'设置为json(“温度”)“目标属性”设置为温度将创建属性温度把它装满气象站的温度。检查工作区以查看提取的所有属性,但其中两个属性(lat和lng)允许我们创建点。
其余的是简单的-点用于建立DEM,DEM有助于创建等高线-这种方法比直接从原始点生成等高线提供更好的等高线。等高线与区域轮廓相交,并生成区域。最后一步包括给区域分配温度和颜色。颜色取决于报告的温度范围-工作空间试图从蓝色到红色平稳连续过渡。范围越大,图像越平滑。
为了确保工作区工作正常,我转到AccuWeather网站并将我的结果与他们的温度图进行比较。他们展示了一个非常相似的图片(除了我的地图有更多的细节,我更喜欢我的设计:)
请注意,工作区创建了一个地图,其中彩色区域可以超出状态边界—剪切它们会显著降低运行时间。
工作空间是附加的。它可以很容易地修改,以制作其他地区的地图。只需将我使用的数据源替换为您自己的数据源,不要忘记恢复所有连接。我试过其他几个国家,如法国、德国、加拿大、印度等——在大多数情况下,它们看起来相当不错,尽管一些气象站返回的结果显然是错误的,这扭曲了整个画面。例如,在加拿大,我发现一个非常北的气象站报告的温度在30摄氏度左右,而在印度的另一个气象站在印度洋海岸显示的温度只有0摄氏度。对于这些情况,您可能需要添加一个测试变压器,它将排除这些站点。
与一个ImageRasterizer我们可以生成一系列的栅格来描绘一段时间内的温度变化。在此之后,我们可以创建一个动画地图,但为此我们需要一些FME以外的其他工具。谁知道呢,也许有一天我们可以用Workbench来做这件事?
?2019安全亚搏在线软件公司|合法的