rgisrasterterra

How to construct lon, lat, value dataframe from terra SpatRaster


I have read a single-variable .nc file into R as a SpatRaster object using the excellent terra package, with the intention of fitting geostatistical models based on the cell centroids. For this I need to construct a dataframe with columns corresponding to "lon, lat, value" using data from the SpatRaster. This feels like a task which might have a standard solution, but I'm unfamiliar with R's spatial statistics ecosystem.

Any advice/suggestions would be much appreciated.


Solution

  • library(terra)
    #> Warning: package 'terra' was built under R version 4.0.5
    #> terra version 1.3.22
    
    r <- rast(ncol=10, nrow=10)
    values(r) <- runif(ncell(r))
    plot(r)
    

    enter image description here

    p <- terra::as.points(r)
    df <- data.frame(values(p), geom(p))
    head(df)
    #>       lyr.1 geom part    x  y hole
    #> 1 0.9557333    1    1 -162 81    0
    #> 2 0.2974196    2    1 -126 81    0
    #> 3 0.9703617    3    1  -90 81    0
    #> 4 0.3046196    4    1  -54 81    0
    #> 5 0.7334711    5    1  -18 81    0
    #> 6 0.8880635    6    1   18 81    0