使用ppp函数绘制错误

时间:2018-03-19 01:59:57

标签: r plot geospatial spatstat

我正在密谋在德克萨斯州休斯顿的炼油厂所在地。我用以下代码定义了研究区域。

 P4S.latlon <- CRS("+proj=longlat +datum=WGS84 ")
 county.lines <-readShapePoly("tl_2017_us_county/tl_2017_us_county.shp", verbose = T, proj4string = P4S.latlon)

 harris <- subset(county.lines, county.lines$GEOID == 48201)
 brazoria <- subset(county.lines, county.lines$GEOID == 48039)
 galveston <- subset(county.lines, county.lines$GEOID == 48167)
 chambers <- subset(county.lines, county.lines$GEOID == 48071)
 liberty <- subset(county.lines, county.lines$GEOID == 48291)
 all.counties <- rbind(harris, brazoria, galveston, chambers, liberty)

 ShapePoly <- as(all.counties, "SpatialPolygons")
 study.area <- as(ShapePoly, "owin")

绘制研究区域按预期工作。

为了绘制炼油厂数据,我使用了以下代码

refinery <- data.frame(refinery)
attach(refinery)
refinery <- ppp(coords.x1, coords.x2, window = study.area)

炼油厂数据最初是一个shapefile。我将其转换为数据框,因此我可以使用ppp()。

出现的问题是当我绘制炼油厂时没有点,只有形状文件。

plot(refinery, pch = 20, col = "firebrick1")

This is the resulting plot

我正在为类项目编写此脚本,并且通常将ArcGIS用于我的空间项目。我不确定是什么导致这种情况,因为我已经对ppp函数进行了大量研究,并使用不同的数据集复制了这段代码。我想将炼油厂绘制成针对县形状文件的点。

2 个答案:

答案 0 :(得分:1)

我无法肯定地说,因为您没有提供可重复的示例(没有下载数据的链接,没有使用R包的加载等),但我认为这仅仅是因为着色:参数col控制研究区域(窗口)的颜色。要绘制给定颜色的点,请使用cols,例如cols = "firebrick1"

注意:你正在直接在lon,lat工作,所以你的点真的在一个球体(椭圆体)上,并且R中的很少分析可以直接为这些坐标完成(甚至绘图是稍微错误,因为1度长不同于1度纬度)。如果您继续进行分析,则确实需要将坐标投影到平面空间(例如使用sf::st_transform()sp::spTransform())。

答案 1 :(得分:1)

当您绘制类ppp的对象时,将执行函数plot.pppplot.ppp的帮助文件解释了点的颜色由参数cols控制。