我想在转换日志中看到r的日志,因为;
-有时R中的函数可能需要很长时间。对于某些函数,您可以通过verbose=t跟踪其进度。
-用于调试,在中间结果中使用打印语句很有用
-在这一点上,使用RCallers的自定义变压器对其他用户来说是一个黑匣子。暴露中间结果可以防止这种情况。
现在,只有在发现错误时才会出现print语句。
嗨,大家好,
我正试图使用RCaller从项目现场的气压记录器获取的一组数据中插入水记录器中的气压。当我在rstudio中运行并返回正确结果时,我使用的r脚本是works,它运行时不会在FME中产生误差,但是计算的值(内插大气压)是
任何建议都将不胜感激!
谢谢
千斤顶
我需要做一些插值来为我办公室的建筑师创建好的地形模型。在这种情况下,发电机是不够的。我在R中测试了一个做IDW插值的脚本。我的输入数据是点云激光雷达数据,我在FME中的输出/最终结果应该是一个用于CAD或SketchUp的向量曲面。我在使用里德尔图书馆。
我应该先从RCaller生成光栅输出,然后创建地形模型吗?我需要更多的图书馆吗?我的R脚本是:
图书馆(图书馆)
las=readlas(“c:/r/win library/3.5/lidr/extdata/topology.laz”)dtm1=网格地形(las,方法=“knnidw”,k=6,p=2)
PLT3D(DTM1)在这种情况下,最后的情节是没有用的。
我应该如何在RCaller中应用代码,将点云作为输入,将矢量地形模型作为需要的输出?其他变压器后的RCaller可能有用吗?
托拜厄斯
你好,
我尝试在FME中使用RCaller来执行区域统计。我的输入是一个shapefile和一个geotiff,不过,我读到,当导入到R中时,RCaller将其作为数据帧读取。我尝试在RCaller中将其转换回shapefile和graster(使用rasterfromxyz(“dataframe”)和spaceialpointsdataframe()),但是我有一个错误,X和Y坐标丢失了,我不知道如何包括它们?
在r中,正常情况下按以下方式执行分区统计:
setwd('位置\文件)
有人能帮我举一个例子或一个URL引用吗?
感谢您考虑我的请求!
尽管热图通常被称为热点图,它们是不同的。heatmap在不考虑任何其他属性的情况下识别数据集群,并且在统计上不显著。它们有助于数据集群的快速可视化。本教程将向您展示如何使用r创建heatmap,ggmap包,和FME。要开始使用FME和R,请阅读教程:R调用者入门以及RCaller变压器文件.
R安装
R Studio或任何R控制台
热处理-完成.fmwt已完成的heatmap工作区(注意:此工作区包含用于操作系统更改文件路径的附加用户参数,边界框和缩放)
GGMAP是一个在静态地图上创建空间可视化的R包。如果您已经熟悉GGPROTT2打包功能相同。
请确保R安装开始之前在您的计算机上。我们将使用R工作室安装ggmap包,但可以使用任何r控制台。
1。打开R Studio(或其他R控制台)
打开r studio并创建一个新的r脚本。我们需要先安装ggmap包,然后才能继续进行FME。
在新的R脚本中,键入并运行:
安装.packages(“ggmap”)
在FME中使用RCaller之前,最好先在R控制台中测试脚本。控制台提供更好的调试消息,并允许您实时直观地查看数据发生了什么。对于本教程,我们将直接跳到FME工作台,因为脚本已经调试好了。如果您使用自己的数据,首先使用R控制台。
2。读取犯罪csv数据
在FME工作台中,打开空白工作区并添加csv阅读器。浏览到Crimes2012-17.csv数据集。设置坐标。系统到LL84.在参数中,将属性定义设置为手动,然后将x和y的类型更改为x_坐标和y_坐标,分别单击“确定”。
此数据集已被清除,如果您使用自己的数据,确保数据在LL84中,并且有纬度和经度或X和Y的列。
输入csv犯罪数据
三。创建用户参数
我们需要两个用户参数来帮助选择我们要分析的犯罪类型以及保存最终图像文件的位置。
在导航窗口中,右键单击“用户参数”,然后选择“创建用户参数”。然后设置以下内容:
类型 | 选择 |
名字 | 犯罪类型 |
提示 | 选择要分析的犯罪: |
出版 | 是的 |
可选的 | 不 |
属性分配 | 下车 |
对于配置,选择椭圆,然后单击“编辑选项”列表底部的“导入”。这将打开导入向导。选择csv作为格式,选择crimes2012-17.csv文件作为数据集,单击下一步。然后选择要从中导入的属性值并确保选择了csv,然后单击继续。选择选项列表的类型,然后单击导入。犯罪类型列表将填充编辑选项列表。单击“确定”保存参数。
犯罪类型用户参数创建
创建另一个用户参数并设置以下内容:
类型 | 文本 |
名字 | 共同用户名 |
提示 | 输入计算机用户名: |
出版 | 是的 |
可选的 | 不 |
属性分配 | 下车 |
创建comusername用户参数
4。添加调用器
既然我们已经创建了两个已发布的参数,那么就可以添加R脚本了。将一个RCaller添加到画布并将其连接到csv阅读器。
在参数中,将输入表从csv更改为crime,您可能需要将RCaller重新连接到读卡器。
将RCaller中的表格从csv更改为crime,然后重新连接读卡器。
现在将以下脚本粘贴到R脚本区域:
图书馆(ggmap)犯罪<-子集(犯罪,type=“$(typeofcrime)”)bounding box<-c(bottom=49.2,顶部=49.4,左=-123.4,right=-123.0)heatmap<-get-stamenmap(bounding-box,maptype=“碳粉”,缩放=10)ggmap(heatmap)+geom_点(aes(x=x,y=y)数据=犯罪,α=5,颜色=“红色”,尺寸=3,shape=“”+统计密度2d(数据=犯罪,AES(x= x,y=y,填充物=.Level…..α=0.5)尺寸=0.01,BIN=30,geom=“polygon”)+缩放填充渐变(low=“green”,high=“red”)+facet_wrap(~year)+ggtitle(“$(typeofcrime)”)ggsave(“c:/users/$(comusername)/documents/$(typeofcrime)from 2012-2017.png”)fmeoutput<-data.frame(1)
如果不想保存到“文档”文件夹,您可以更改路径。注意斜线的方向。
5。运行工作区
现在运行启用了提示的工作区以输入参数值。然后打开保存PNG的文件夹。
最终输出,偷自行车取暖
以下是针对heatmap r脚本的故障模式与影响分析(FME)细分。要更详细地了解如何使用ggmap,见GGMAP软件包文档。
这将按犯罪类型细分犯罪数据表。
犯罪<-子集(犯罪,type=“$(犯罪类型)”)
这将创建纬度/经度相关区域的边界框,其中顶部和底部是纬度,右侧和左侧是经度。可以很容易地转换为已发布的参数,请参见已完成的工作区。
边框=49.2,=49.4,左=-123.2,右=-123.0)
将基映射设置为stamen映射,可以将maptype更改为toner,地形或水彩。
heatmap<-获取stamenmap(边界框,maptype=“碳粉”,缩放=10)
在您看到x=和y=的任何地方,这些值反映了纬度和经度列的属性名。data=将反映您在RCaller中命名的表。因为我们已经将数据我们可以称之为犯罪。
几何点(aes(x=x,y=y)数据=犯罪,α=5,颜色=“红色”,尺寸=3,形状=“。”
如果不想刻面,请删除此行。或者,您可以通过两个属性向facet添加一个附加属性:只需将facet从wrap更改为grid,即方格网(邻里~年):
面包(~年)
ggtitle是图像顶部的标题。您可以使用用户参数或常量值来更改:
ggtitle(“$(犯罪类型)”)
这一行将地图保存为图像。可以使用直接文件路径或发布的参数。文件也可以保存为PDF格式。
ggsave(“C:/users/$(comusername)/documents/$(typeofcrime)from 2012-2017.png”)。
fmeoutput是RCaller中的强制行。可以更改data.frame()值以提取数据。有关fmeoutput的更多信息,请参阅RCaller文档.
fmeoutput<-data.frame(1)
如果您收到以下错误消息,但是你通过R控制台安装了ggmap,确保ggmap包安装在与fme查找R解释器可执行文件相同的位置。这可以通过进入工具>FME选项>翻译,然后在R解释器下找到:
如果你得到一个谷歌地图403错误,这只意味着地图服务现在很忙,请稍等片刻,然后尝试重新运行工作区。
如果您收到任何其他错误消息,检查并确保您的代码正确。通过用实际值替换发布的参数,再次检查代码是否在R控制台中工作。
数据属性
此处使用的数据源于温哥华市,不列颠哥伦比亚省。它包含根据开放政府许可证(温哥华)获得许可的信息。
如果我们能将几何图形直接引入到RCaller中,那就太好了,这样我们就可以用R代码来处理几何图形。目前,我们必须编写一个临时文件,并在RCaller中读取该临时几何文件。如果R能够识别进入的几何体并在R空间数据模型中构建该几何体,那将是一件好事。然后我们可以在R代码中操纵几何体,并将操作后的几何图形输出回我们的FME工作区。
你好,
我在使用rcaller transformer运行FME脚本时收到此错误消息:
“RCaller(inlinequeryfactory):执行R脚本时,inlinequeryfactory失败,退出代码为1。输出为:库中出错(“sqldf”):没有名为“sqldf”的包
执行已停止
InlineQueryFactory未能执行脚本代码。
RCaller(inlinequeryfactory):发生了致命错误。查看上面的日志文件了解详细信息”
我在FME选项中有以下设置:
R解释器路径:
C:\程序文件\r\r-3.2.2\bin\x64\rscript.exe
共享的FME文件夹:
H:\我的文档\r\win library\3.2\sqldf
不管我在这里找不到什么,请告诉我。
谢谢,
维尔弗雷多
fmecloud上有哪些R包和python库?
我在一个工作台中使用一个RCaller来处理一些相当大的数据集。我使用的r脚本本身在r中工作良好,并且工作台与一个较小的测试数据集完美地运行。
但是,对于全尺寸的数据集,我会得到以下错误:在最后一个功能进入RCaller和rscript.exe进程开始后约30秒:
RCaller(inlinequeryfactory):inlinequeryfactory在启动R解释器时遇到错误。消息为:进程操作超时
在rgui或rstudio中使用相同大小的数据集运行,我要做的处理大约需要10分钟。但是,处理是按组进行的,因此我使用并行模式的ddply包将处理拆分为10个核心,这一过程大约需要1分钟。
我已经把这个转移到了故障模式分析的调查员那里,它启动了10个过程,但30秒后仍会超时。
如何使用RCaller来完成超过30秒的输出工作?有没有什么方法可以让FME知道它运行正常,应该等待?
一家土地复垦公司要求您确定哪些孤儿油井应该退役和移除。孤井是指被石油公司废弃或闲置12个月以上的油井。您需要创建一个散点图来显示阿尔伯塔省所有孤儿井的总体生产状态。要创建散点图,我们将使用R脚本和变压器将此绘图功能合并到我们的FME工作区中。然后你需要确定哪些地方的总产量最低(石油,气体,和水)使用RCaller计算统计数据。我们使用一个R脚本通过使用多个转换器来整合流程。R脚本还可以由其他无法访问FME的客户机使用。然后使用表面位置,确定每个场地的位置,并创建一个形状文件供地勤人员使用。
rcallerscanarior.ziprstudio的脚本
从下载完整文件大小的ATSv4.1多边形阿尔塔利斯
1。添加井许可Excel文件作为读卡器
在空白工作区中,添加Excel阅读器以读取AER-许可证-详情-报告.xlsx文件。打开参数并确认属性类型设置正确。(I.公司=最终总深度,m=数,上次体积活动日期=日期)。
2。使用属性名称清除属性名称
井许可证文件附带的属性名有点长,带有特殊字符,以后在R中更容易称呼他们,使用属性名称将其更改为以下内容:
输入属性 | 输出属性 |
单位 | 单位 |
牌照号码 | 许可号 |
牌照状态 | 许可证 |
表面定位 | 表面定位 |
超宽带 | 超宽带 |
字段/区域名称 | 阿雷纳姆 |
池/存款名称 | 存款名 |
最终总深度,米 | 总深度 |
上次体积活动日期 | 活动日期 |
去年的石油产量,M3 | 石油生产 |
去年的天然气产量,M3M3 | 煤气生产 |
去年的水产量,M3 | 产水 |
三。添加一个RCaller变压器
为了创建一个散点图来概述我们在FME中的数据,我们将使用R脚本。添加一个变压器到工作区,将其连接到属性名称输出端口。连接RCaller将添加一个名为output的端口。
在RCaller的参数中,在输入下,将输出重命名为威尔斯使打电话更容易、更难忘。在输入下,单击“列”框,然后单击“…”。在“编辑属性”窗口中,移除所有属性,除了:
在绿色注释下方的R脚本框中,添加以下内容:
对于Windows:
png(filename=“c:\\users\\yourusername\\documents\\openplot.png”)plot(wells)dev.off()fmeoutput<-data.frame(1)
对于Mac/Linux:
png(filename=“/users/yourusername/documents/openplot.png”)plot(wells)dev.off()fmeoutput<-data.frame(1)
然后对于要公开的属性,类型路径名
4。添加FeatureReader变压器
将FeatureReader变压器添加到RCaller的输出端口。在参数中,将格式设置为PNG(可移植网络图形),然后将数据集设置为在RCaller中使用的文件名,只是没有报价。
对于Windows:
C:\users\yourusername\documents\openplot.png
对于Mac/Linux:
/用户/yourusername/documents/openplot.png
将检查器添加到
PNG格式的散点图输出
1。测试空值或缺少值并创建电子表格
将测试仪变压器连接到属性名称以测试空值或缺少值。查看Excel中的电子表格,如果是上一年的石油产量,M3(石油产量)缺少值,然后大部分数据也会丢失。因为这会扭曲我们的结果,让我们删除缺少值的行,并创建一个电子表格,以便以后研究缺少值的原因。所以在测试仪中左值对于石油生产属性,和算符to属性有一个值。然后将Excel编写器连接到失败的输出端口,把它命名为检查油井。
2。添加第二个RCaller
为了减少翻译中所需的变压器数量,我们将使用一个R脚本来整合我们的工作流。亚搏在线此外,使用R脚本还允许我们将此脚本传递给可能无法访问FME的其他客户机。
将另一个RCaller添加到测试仪上通过的输出端口。将表名更改为威尔斯移除执照状态,存款名uwi和lastactivedate列,如果默认为varchar,则设置正确的类型。
请在RCaller中输入以下R段。
电子表格底部有一部分版权信息,我们需要移除它以便进行适当的分析。
#删除电子表格底部的版权信息,以便进行适当的分析滴=假)
确定哪口井的总产量最小(石油,天然气和水)我们需要增加石油产量,将生产和产水栏放在一起,并将总量变为一个新的变量,称为总产量。
#创建一个名为totalproduction的新变量,加油,每口井的天然气和水产量总产量<-井$石油产量+井$天然气产量+井$水产量
现在我们已经创建了一个新变量,我们需要将它作为列添加到wells数据集中。
#将新变量添加到Wells数据集中,并创建名为totalProductionWells$totalProduction<-totalProduction的新列
我们有兴趣了解每个区域的总产量,因此我们必须创建一个汇总列表。如果您有兴趣查看聚合列表结果,你得打开书房。
#合并(求和)每个区域名的总产量,以创建聚合列表ListFieldName<-Aggregate(Wells$TotalProduction,by=list(fieldname=wells$areaname)乐趣=和)
在查看汇总表(RSTUDIO)后,我们决定移除总产量小于10口的油井。
#创建一个名为remove的新变量,总产量小于10口的所有油井将被移除。移除<-井[井$totalproduction<10,]
这条线路是特定于RCaller变压器的。查看删除数据框,我们将只看到过滤掉的井。
#将fmeoutput设置为remove变量。此变量将只显示在上一行中筛选出的井。fmeoutput<-data.frame(删除)
输出属性
对于要公开的属性,请输入区域名,公司,表面定位,总深度,煤气生产,石油生产,煤气生产,产水量和总产量
将检查器连接到RCaller上的输出端口并运行转换,以确保R代码正确。如果日志中出现红色错误消息,仔细检查代码语法。如果仍然收到错误消息,使用,注释所有行。然后一次运行一行,再次检查属性是否已正确重命名。
三。排序输出
这个变压器是完全可选的。在RCaller后面添加Sorter Transformer,并按区域名字母升序排序,然后按生产总值数字降序排序。这将允许您按顺序在FME数据检查器中查看RCaller的结果。
4。添加参考网格
我们已经获得了一个参考网格来与我们的电子表格合并。这个特别提到亚伯达乡调查系统(ATS)。将我们的数据合并到这个电子表格中,我们将能够提取每个孤立井的位置,并将其显示在地图上,供土地工作人员参考。使用shapefile reader将v4-1_lsd.shp文件添加到工作区。这个文件非常大,因为它包含了阿尔伯塔省的所有法律分支。在数据检查器中查看它,记下属性名:ls(legal subdivision或lsd)。秒(节)TWP(乡镇)RGE(范围)M(子午线)。我们一会儿就回到这个网格。
5。准备要与参考网格合并的数据
我们现在需要预先搜索孤立井数据,以便能够将其合并到参考网格中。看着AER-许可证-详情-报告.xlsx文件有一个称为表面位置的属性。这个数字和字母串指的是一个乡镇上的一个位置和ATS的范围参考网格。为了将此与网格形状文件合并,我们需要将表面位置分割成各个部分。
将属性垃圾连接到分拣机。然后,使用attributeSplitter Transformer,我们将使用-是分隔符。这将创建一个包含每个零件的列表。我们需要公开名单。在属性页上,输出不足,创建了一个名为的新属性。右键单击列表,然后单击“公开元素”。
然后在“选择列表元素”窗口中的“列表类型0-3”旁边。这将公开包含lsd的列表,秒TWPRGE和M.RGE和M之间没有-所以我们必须把它们分开。
6。提取RGE和M
添加一个substringxtractor转换器,并选择源字符串作为列表。该值包含rge和m。因为我们要提取rge,所以将开始索引设置为0,将结束索引设置为1。然后对于结果属性,将其称为rge。
7。从m中提取方向
如果再次查看网格形状文件,对于m属性,没有关联的方向坐标。我们需要把这个从我们的表面分离出来。
添加一个额外的子字符串量角器。再次使用3作为源字符串,开始和结束索引为3,结果属性为m。这只需要数字而不是字母。
8。重命名剩余的属性
添加一个属性管理器,将列表0重命名为lsd,_列表1至秒,_列出2至TWP。然后删除列表3,因为我们已经从中提取了我们需要的一切。不要删除列表,因为列表0-3仍与之关联,但它不会出现在最终输出中。
9。添加attributereMover
移回参考网格,最终结果将包含一个名为ra的属性,其中包括路权和土地使用类型的数据。对于我们的最终输出,这些信息是不必要的,将复制我们的输出。我们就把它移走。在v4-1_lsd.shp和属性的参数中添加attributeremover转换器以删除select ra。
10。将Wells Excel文件与参考网格形状文件合并
添加FeatureMerge Transformer,将油井许可证的属性管理器连接到供应商输入端口,以及从引用网格到请求者输入端口的attributereMover。然后将请求者和供应商相互匹配。M到M,TWP到TWP,等。请注意,LSD与引用网格中的ls匹配。
11。添加形状文件编写器
最后一步是将孤立井写入一个形状文件,供现场技术人员在其GPS设备上使用。一旦添加了shapefile writer,进入参数并将几何体设置为“塑造多边形”。保存并运行工作区。工作区运行需要一段时间,所以去喝杯咖啡然后回来看看结果。
整个工作区的概述
ATS v4.1多边形(v4-1_lsd.shp)阿尔塔利斯:
数字数据受阿尔伯塔省政府版权保护,保留所有权利,并根据阿尔伯塔省的“开放政府许可证”获得许可。https://open.alberta.ca/许可证
aer_licence_details_report.xslx,来自孤儿井协会:
孤儿井协会或OWA不做任何陈述,保证,或保证,明示或暗示,以确保数据的适用性。OWA不负责使用本列表中的信息所产生的任何费用。
AER许可证详情报告包括单个油井的多个事件,以便报告产量。因此,将有比油井数量更多的入口。建议该列表的用户,该列表不一定反映OWA持有的孤儿井的当前库存,用户负责确认使用的任何信息。
如果有人能通过RCaller和RCharts包使用示例,请提前感谢(http://www.rpubs.com/dnchari/rchart)
如果需要执行比统计计算器变压器,这个变压器使更多的统计分析在FME中成为可能。RCaller允许用户在FME中运行R脚本,通过使用临时R数据帧.
这个例子涵盖了重要的RCaller基础知识,一些潜在用途的例子,还有一些卡勒的挑战。
确定此RCaller演示中树的高度和树的直径之间是否存在相关性。
RCaller可用于从点创建光栅。在这个例子中,克里金,插值法,用于根据单元信号点数据创建估计曲面。
简介:开始使用RCallerγ下一步:RCaller:树高和树宽是否相关?
如果需要执行比统计计算器变压器,这个变压器使更高级的统计分析在FME中成为可能。RCaller使您能够在FME中运行R脚本。
带有groups.fmwt的rcallerlinearegressionwithgroups.fmwt
在使用RCaller之前,您需要安装适当的R包。请参见安装R解释器在FME用户文档中。
在你和卡勒一起走之前,有一些有用的事情要记住:
当您将变压器或功能类型连接到连接输入端口时,FME会向RCaller添加新端口。新的输入端口将从源对象继承其名称(即转换器名称或功能类型名称)。
端口名用作r中的数据帧名,因此,将端口名重命名为可以在R脚本中使用的名称。
FME将您的数据加载到一个临时的sqlite数据库中,因此,无论是性能还是清晰度,只选择要在R脚本中使用的属性。确保数据类型正确。
FME将数据作为R传输到R中。数据帧.通过从“数据帧”菜单中拖动项,可以访问R脚本中的数据帧或数据帧列:
因此,要访问估计值的向量,请将data-estimated项拖到脚本窗口中,您将在r脚本窗口中看到data$estimated。
这不是R教程。要进一步了解R,请参阅本文末尾的参考资料部分。如果你刚接触R,我建议您使用R控制台来开发和调试您的脚本——您将获得更好的反馈,并且可以更容易地看到中间结果。然后复制脚本并将其粘贴到RCaller中。在R控制台中逐步构建您的脚本,这样就可以清楚地知道出现了什么问题。您可以使用R读者也就是说:
data=read.csv(“d:/tmp/sampledata.csv”)。
γ注释r使用unix路径,即'''不是''.
…可能很棘手!RCaller通过名为“fmeoutput”的数据帧将数据传回fme。数据帧中的每一行将成为FME中的单独输出功能。如果您知道如何构建和附加到R数据帧,您可能会跳过这一部分。
要填充fmeoutput数据框,您只需返回一个值列表(长度为1的向量)。即。:
>data=read.csv(“d:/tmp/sampledata.csv”)>meancact=平均值(数据$actual)>meanest=平均值(数据$estimated)>fmeoutput=数据.frame(平均值,平均行为)
但是许多r函数返回更复杂的结果。例如,线性回归函数求解y=mx+k:
lm.linear<-lm(数据$actual~数据$estimated)
使用R摘要()函数查看结果:
>总结(lm.线性)调用:lm(公式=数据$实际值~数据$估计值)残差:最小1q中值3q最大值-9.9667-2.1022 0.2679 2.3813 8.3354系数:估计标准。误差t值pr(>t)(截距)12.051001 9.149612 1.317 0.211数据$Estimated-0.009291 0.861531-0.011 0.992剩余标准误差:13自由度5.045多重r平方:8.946e-06,调整后的r平方:1和13 df上的-0.07691 f统计量:0.0001163,p值:0.9916
如何将其恢复到FME中?
这个名称()函数将返回摘要中的变量名,即。:
>名称(summary(lm.linear))[1]“call”“terms”“residuals”“coefficients”“aliased”[6]“sigma”“df”“r.squared”“adj.r.squared”“fstatistic”[11]“cov.unscaled”
但是…其中有些是更复杂的物体,就像“系数”一样:
>汇总(lm.linear)$系数估计标准错误t值pr(>t)(截距)12.051001492 9.1496116 1.31710525 0.2105480估计数据$0.009291111 0.8615308-0.01078442 0.9915592
那么,如果你想返回到fme,那么你该怎么做呢,y=mx+k分析的共同特征,比如r平方值,M & K?
您必须挑选出您需要的值,并将它们传递到FMEOUT数据帧。在上面的例子中,M由数据给出$Estimated Estimate=-0.009291111,K(y Intercept)由(Intercept)Estimate=12.051001492给出,R平方结果为简单值:R平方。所以你可以使用:
K<-摘要(lm.linear)$系数[1,1](第一行第一列)M<-摘要(lm.linear)$系数[2,1](第一行第二列)R2<-摘要(lm.linear)$R.squared
那很容易!
工作空间调解员线性回归.fmwt说明了上面描述的示例。
最后一个提示:在RCaller中公开结果变量,以使工作台中的生活更轻松:
在某些情况下,可能不适合为R结果使用数据帧,例如,对于大型光栅或图像。在这种情况下,您可以将R结果导出到临时数据文件,并让FME重新读取这些结果。文章RCaller:通过克里格插值点到光栅说明如何做到这一点。
对于许多统计问题,你有一个定性的价值,即代码abc abd txu,这与定量值有一定关系。所以简单的分组很有意义。
例如,您可能需要计算每个代码值的平均值:
日期代码预计实际11/29/2016XU46.1459.511/28/2016ABD43.8934.111/27/2016XU42.1525.811/27/2016ABC9.320.311/26/2016ABD42.1550.611/25/2016ABC11.0411.7
你可以把你的分析放在一个循环中,用代码对数据进行采样,然后计算回归。类似:
对于(unique中的currentcode(data$code))假设输入数据。帧是'data'tmpdata=data[数据$code==currentcode,]lm=lm(tmpdata$actual~tmpdata$estimated)y=mx+k上的线性模型
#初始化向量以保存结果r2<-c()m<-c()k<-c()code<-character()y=实际x=估计值(currentcode in unique(data$code))tmpdata=data[data$code==currentcode,]linear regression for y=m x+k lm.linear=lm(tmpdata$actual~tmpdata$estimated)linear model result vectors y=m x+k r2=c(r2,汇总(lm.linear)$r.squared)k=c(k,总结(lm.线性)$系数[1,1])m=c(m,汇总(lm.线性)$系数[2,1])代码=C(代码,当前代码)fmeoutput<-data.frame(代码,MKR2)
您可以将结果直接分配给更高效的数据帧,如果你能弄明白的话。
工作空间带有groups.fmwt的rcallerlinearegressionwithgroups.fmwt说明了上面描述的示例。
调试R脚本
如果你对R比较陌生,然后我建议您首先在R控制台中开发脚本,然后转移到RCaller。在那里调试要容易得多,请参见上面构建R脚本一节。如果遇到RCaller错误:
错误RCaller(inlinequeryfactory):执行R脚本时,inlinequeryfactory失败,退出代码为1。输出为:正在加载必需的包:gsubfnloading必需的包:protocoading必需的包:rsqlite
如果脚本中有语法错误,这似乎是常见的错误响应,或未定义的变量引用,因此,请仔细检查脚本中是否有未分配的变量或拼写错误。
记得,像FME一样,R区分大小写。
以下是有关在FME中使用R的一些有用资源:
呼气末正压通气文档
“R”教程:网址:http://www.r-tutor.com/和在这里
使用summary()提取“summary”信息:这里例子
附加到数据帧实例
知识中心调解员文章:
简介:开始使用RCallerγ上一篇:RCaller:树高和树宽是否相关?
本文也是本教程的一部分我该怎么做呢?γ下一步:从点生成轮廓数据
这个拉客Transformer允许比统计计算器变压器。此示例显示如何使用RCaller从点创建光栅。克里金,插值法,用于根据单元信号点数据创建估计曲面。
csv格式的单元信号点数据。
使用数据检查器查看的源csv数据
下载克里金fme2016.1.fmwt是完整的工作区。如果您想自己创建工作区,请下载DATAPONTCS.CSV,然后按照下面的步骤创建它。
请注意,工作区需要用户安装“geor”,以及“SP”R模块。
1。读取源数据
使用csv阅读器读取datapoints.csv。
2。重新设计
使用回注器将数据从lat/long(degree)重新投射到utm83-10(meter)。
三。提取坐标值
coordinatextractor提取点的X和Y坐标值,并将它们作为名为“东距(X)”和“北距(Y)”的属性添加。东距和北距将用于创建地图,并在RCaller中用于克里格。
4。为光栅输出创建临时文件
一个功能用于使用tempPathNameCreator生成临时文件。来自RCaller的光栅图像将临时保存到此位置。
5。添加呼叫器
R脚本将点插入光栅,并在临时文件位置创建光栅PNG。对于R脚本,请说明以下内容:
library(sp)library(geor)map=空间点数据帧(data=cellsignals,coords=cbind(cellsignals$东距,cellsignals$北距))pred.grid<-expand.grid(seq(min(cellsignals$东距),max(cellsignals$东距),50),seq(min(cellsignals$北距),max(cellsignals$北距),50))ml=likfit(coords=坐标(map),数据=地图质量,Ini=c(10000100001000)nug=10)kc<-krige.conv(coords=坐标(map),数据=地图质量,LoC=PRE.GRID,krige=krige.control(obj.m=ml))png(cellsignals$pathname[1])图像(kc,loc=预测网格,col=灰色(seq(1,0,l=30)),XLAB =“COORD X”,ylab=“coord y”)dev.off()fmeoutput<-data.frame(pathname=cellsignals$pathname[1])
RCaller参数
6。读取光栅PNG
FeatureReader读取在RCaller中创建的光栅png,它允许我们查看输出数据。
7。查看结果
在数据检查器中检查输出光栅。结果表明,该方法可用于从点数据生成光栅。注意,这个例子在统计上可能不准确。
在数据检查器中显示克里格输出
可选:直接从RCaller读取R光栅对象
在FME 2019.0 betas中(从19074年开始)您可以直接从RCaller输出一个R光栅对象,以便在FME中进一步使用。此方案非常适合希望使用R包进行光栅处理,然后在FME工作流中继续的用户。亚搏在线
有关此过程的详细文档将在春季发布,但是现在,您可以找到显示该方法的附加模板。基本流程是:
所附模板kriging_fme2019_graster_object.fmwt包含此示例。
在早期版本的FME中,技术上也可能出现类似的结果,但您将无法直接从RCaller输出光栅对象。相反,您必须编写一个临时光栅(例如光栅包的writeRaster()函数)然后使用FeatureReader和文件路径属性将其读回到工作区。