首页 > 解决方案 > Spatstat:从数据库创建像素图像对象我无法转换为矩阵

问题描述

嘿 Stackoverflow 的人们!

我试图查看哪些因素会增加由闪电引起的火灾的发生率,但我在使用库 spatstat 的 im() 函数创建像素图像对象时遇到问题。

问题是我拥有的数据是区域的形状,而不是矩形或正方形,所以我无法将数据转换为矩阵。

我尝试使用函数 owin() 和 poly 参数创建一个窗口,但我拥有该区域的所有点(包括边框和填充),所以我无法获得该区域的多边形。

所以我需要帮助来获得想法a)直接从我的数据库创建一个像素图像对象或b)添加点以创建一个矩形,然后将我的数据转换为矩阵并用它创建像素图像对象。

我希望你能帮助我,如果你需要更多信息,请告诉我。

编辑:很抱歉之前没有提供数据示例。

所以我的数据看起来像这样:

no. lon      lat    elev  exp slope veg

1 700.5380 984.4786  548  -1     0   1
2 704.0483 984.4786  518 135     0   1
3 707.5586 984.4786  548  -1     0   1
4 711.0689 984.4786  569 254     4   1
5 714.5791 984.4786  590 178     5   1
6 697.0277 981.9342  518  -1     0   1

您可以在此处查看数据图。

我拥有的另一个数据文件只有闪电的数据。

希望您能帮助我并感谢您所做的一切!

另外,我不能使用,im()因为我不能将我的数据变成矩阵,我也尝试使用owin(poly=data),但它使我成为由数据线组成的形状,我读了更多,我认为 owin 不是我需要的解决方案...

我现在正在阅读其他库,看看我是否可以用其他库而不是 spatstat 来做光栅。

标签: rgeospatialspatstat

解决方案


我认为这个配方应该适用于您从您的数据创建 SpatialPointsDataframe 和图像(在带有 raster 包的示例中):

https://gis.stackexchange.com/questions/20018/how-can-i-convert-data-in-the-form-of-lat-lon-value-into-a-raster-file-using-r

然后,您可以使用以下方法将空间 df 转换为 spatstat:

library(maptools)
library(spatstat)
spatialPointsDF<-as(spatialPointsDataFrame, "ppp")
plot(spatialPointsDF)

查看 maptools 函数:

https://www.rdocumentation.org/packages/maptools/versions/0.9-2/topics/as.ppp

要从栅格创建 im 对象,请再次查看 maptools spatstat API (as.im.RasterLayer):

https://www.rdocumentation.org/packages/maptools/versions/0.9-2/topics/as.ppp


推荐阅读