首页 / PYTHON / 从Python运行R脚本
从Python运行R脚本
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了从Python运行R脚本,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1603字,纯文字阅读大概需要3分钟。
内容图文
![从Python运行R脚本](/upload/InfoBanner/zyjiaocheng/770/13d429bee03c4c0eb437904a6f2ce8ec.jpg)
我想从Python脚本运行R脚本.在不同的坐标系中投影lat lon坐标需要R脚本.我考虑过两种选择.在第一个选项中,我想将lat和lon坐标解析为R脚本,如下所示.最后我希望R脚本将x和y返回给python脚本,但我无法弄清楚如何做到这一点.
project<-function(lat,lon){
library(sp)
library(rgdal)
xy <- cbind(x = lon, y = lat)
S <- SpatialPoints(xy)
proj4string(S) <- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
Snew <- spTransform(S, CRS("+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +no_defs"))
x <- coordinates(Snew)[1]
y <- coordinates(Snew)[2]
return(x,y)
}
对于我的第二个选项,我考虑使用底部的R脚本,其中已经有lat和lon.我尝试使用subprocess.Popen(‘Rscript project.r’,shell = True)运行此命令.(等)但是这似乎不起作用.它不会写一个xy.txt文件.但是,如果我从cmd行运行它,则R脚本可以完成这项工作.谁可以帮我解决这两个选项之一?
library(sp)
library(rgdal)
lat <- 52.29999924
lon <- 4.76999998
xy <- cbind(x = lon, y = lat)
S <- SpatialPoints(xy)
proj4string(S) <- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
Snew <- spTransform(S, CRS("+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +no_defs"))
x <- coordinates(Snew)[1]
y <- coordinates(Snew)[2]
cat(x, file="xy.txt",sep="")
cat(y,file="xy.txt",append=TRUE)
解决方法:
对于您的第一个解决方案 – 让R将坐标输出到控制台(使用print或cat或R中的任何内容),然后在Python中捕获(请参见此处:Running shell command from Python and capturing the output)
这将为你提供一个包含teh lat / lon coords的字符串,你只需要使用适当的Python函数将它们解析出来.
内容总结
以上是互联网集市为您收集整理的从Python运行R脚本全部内容,希望文章能够帮你解决从Python运行R脚本所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。