【问题标题】:Spatstat: Creating a pixel image object from a database I can't transform into a matrixSpatstat:从数据库创建像素图像对象我无法转换为矩阵
【发布时间】:2018-11-08 16:45:01
【问题描述】:

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

你可以看到here的数据图。

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

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

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

我现在正在阅读其他库,看看我是否可以使用其他库而不是 spatstat 进行光栅化。

【问题讨论】:

  • 要获得有关 SO 的帮助,您需要提供一些示例数据、您尝试过的代码以及您尝试实现的结果。而且我们不需要查看您的所有数据/代码,最好是一个最小的工作示例。
  • 是的,我们需要这样的示例数据和代码。尤其是您的数据格式对于获取任何地方都很重要。
  • @SymbolixAU 和 Ege Rubak。我已经用数据示例编辑了这个问题。提前致谢!

标签: r geospatial spatstat


【解决方案1】:

我认为这个配方应该适用于您从您的数据创建 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)

查看地图工具功能:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多