Interpreted interface between GRASS geographical information system, versions 7 and 8, and R, based on starting R from within the GRASS environment, or on running R stand-alone and creating a throw-away GRASS environment from within R. The interface uses classes defined in the sp package to hold spatial data.

Details

Index:


read_RAST              read GRASS raster files
write_RAST             write GRASS raster files
read_VECT              read GRASS vector object files
write_VECT             write GRASS vector object files
gmeta                  read GRASS metadata from the current LOCATION
getLocationProj        return a WKT2 string of projection information
gmeta2grd              create a GridTopology object from the GRASS region
vInfo                  return vector geometry information
vColumns               return vector database columns information
vDataCount             return count of vector database rows
vect2neigh             return area neighbours with shared boundary length

Note that the examples now use the smaller subset North Carolina location: https://grass.osgeo.org/sampledata/north_carolina/nc_basic_spm_grass7.tar.gz

Author

Roger Bivand

Maintainer: Roger Bivand <Roger.Bivand@nhh.no>

Examples

run <- FALSE
if (nchar(Sys.getenv("GISRC")) > 0 &&
  read.dcf(Sys.getenv("GISRC"))[1,"LOCATION_NAME"] == "nc_basic_spm_grass7") run <- TRUE
Sys.setenv("_SP_EVOLUTION_STATUS_"="2")
run <- run && require("terra", quietly=TRUE) && require("sp", quietly=TRUE)
if (run) {
  grd <- gmeta2grd(ignore.stderr=TRUE)
  grd
}
#>                       X1     X2
#> cellcentre.offset 630005 215005
#> cellsize              10     10
#> cells.dim           1500   1350
if (run) {
  elevation <- read_RAST("elevation", ignore.stderr=TRUE)
}
if (run) {
  set.seed(1)
  smple <- spatSample(ext(elevation), lonlat=is.lonlat(elevation), size=200,
    method="random", as.points=TRUE)
  values(smple) <- extract(elevation, smple)[,2]
  smple
 }
#>  class       : SpatVector 
#>  geometry    : points 
#>  dimensions  : 200, 1  (geometries, attributes)
#>  extent      : 630018.8, 644843.7, 215167.3, 228487.3  (xmin, xmax, ymin, ymax)
#>  coord. ref. :  
#>  names       : value
#>  type        : <num>
#>  values      : 107.2
#>                129.3
#>                118.3
if (run) {
  write_VECT(smple, "sp_dem", flags=c("overwrite", "o"), ignore.stderr=TRUE)
}
#> Warning: GDAL Message 6: dataset /tmp/grass8-rsb-948300/RtmpxWgOQS/filee8063522642b5.gpkg does not support layer creation option ENCODING
#> WARNING: Vector map <sp_dem> already exists and will be overwritten
if (run) {
  schoolsDF <- read_VECT("schools", ignore.stderr=TRUE)
  summary(schoolsDF)
}
#>       cat            TAG             NAMESHORT           NAMELONG        
#>  Min.   :  1.0   Length:167         Length:167         Length:167        
#>  1st Qu.: 42.5   Class :character   Class :character   Class :character  
#>  Median : 84.0   Mode  :character   Mode  :character   Mode  :character  
#>  Mean   : 84.0                                                           
#>  3rd Qu.:125.5                                                           
#>  Max.   :167.0                                                           
#>                                                                          
#>    CORECAPACI       MOBILEUNIT       MOBILECAPA      GLEVEL         
#>  Min.   :   0.0   Min.   : 0.000   Min.   :0.00   Length:167        
#>  1st Qu.: 498.5   1st Qu.: 0.000   1st Qu.:0.75   Class :character  
#>  Median : 586.0   Median : 6.000   Median :1.50   Mode  :character  
#>  Mean   : 763.7   Mean   : 7.318   Mean   :1.75                     
#>  3rd Qu.: 903.0   3rd Qu.:11.000   3rd Qu.:2.50                     
#>  Max.   :2294.0   Max.   :49.000   Max.   :4.00                     
#>  NA's   :23       NA's   :19       NA's   :163                      
#>    LOGRADE            HIGRADE            CALENDAR           HASBASE         
#>  Length:167         Length:167         Length:167         Length:167        
#>  Class :character   Class :character   Class :character   Class :character  
#>  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
#>                                                                             
#>                                                                             
#>                                                                             
#>                                                                             
#>    ISMAGNET            PHONE            ADDRNUMBER         ADDRPREFIX       
#>  Length:167         Length:167         Length:167         Length:167        
#>  Class :character   Class :character   Class :character   Class :character  
#>  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
#>                                                                             
#>                                                                             
#>                                                                             
#>                                                                             
#>    ADDRROOT           ADDRTYPE          ADDRSUFFIX          ADDRCITY        
#>  Length:167         Length:167         Length:167         Length:167        
#>  Class :character   Class :character   Class :character   Class :character  
#>  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
#>                                                                             
#>                                                                             
#>                                                                             
#>                                                                             
#>   ADDRZIPCOD             SPED        STATUS             NODEID         
#>  Length:167         Min.   : NA   Length:167         Length:167        
#>  Class :character   1st Qu.: NA   Class :character   Class :character  
#>  Mode  :character   Median : NA   Mode  :character   Mode  :character  
#>                     Mean   :NaN                                        
#>                     3rd Qu.: NA                                        
#>                     Max.   : NA                                        
#>                     NA's   :167                                        
#>    CAPACITYTO         ESL             BOARDDIS2            PROJ_CAP     
#>  Min.   :   0.0   Length:167         Length:167         Min.   :   0.0  
#>  1st Qu.: 543.0   Class :character   Class :character   1st Qu.: 497.0  
#>  Median : 761.0   Mode  :character   Mode  :character   Median : 722.0  
#>  Mean   : 867.0                                         Mean   : 793.1  
#>  3rd Qu.: 992.5                                         3rd Qu.: 975.0  
#>  Max.   :2294.0                                         Max.   :2390.0  
#>  NA's   :20                                             NA's   :2       
#>     NOTES          
#>  Length:167        
#>  Class :character  
#>  Mode  :character  
#>                    
#>                    
#>                    
#>                    
if (run) {
  vInfo("streams", ignore.stderr=TRUE)
}
#>      nodes     points      lines boundaries  centroids      areas    islands 
#>       8645          0       8554          0          0          0          0 
#> primitives      map3d 
#>       8554          0 
if (run) {
  vColumns("streams", ignore.stderr=TRUE)
}
#>         storageType       name
#> 1           INTEGER        cat
#> 2  DOUBLE PRECISION     FNODE_
#> 3  DOUBLE PRECISION     TNODE_
#> 4  DOUBLE PRECISION     LPOLY_
#> 5  DOUBLE PRECISION     RPOLY_
#> 6  DOUBLE PRECISION     LENGTH
#> 7  DOUBLE PRECISION FULL_HYDRO
#> 8  DOUBLE PRECISION FULL_HYD_1
#> 9         CHARACTER      FTYPE
#> 10          INTEGER      FCODE
#> 11        CHARACTER       NAME
#> 12        CHARACTER   RCH_CODE
#> 13        CHARACTER     I_vs_P
#> 14        CHARACTER   USGSstrm
if (run) {
  vDataCount("streams", ignore.stderr=TRUE)
}
#> [1] 8554
if (run) {
  streams <- read_VECT("streams", type="line", ignore.stderr=TRUE)
  summary(streams)
}
#>       cat             FNODE_           TNODE_           LPOLY_      
#>  Min.   : 40102   Min.   : 42043   Min.   : 42046   Min.   :0.0000  
#>  1st Qu.: 75598   1st Qu.: 79168   1st Qu.: 79172   1st Qu.:0.0000  
#>  Median : 83078   Median : 86896   Median : 86888   Median :0.0000  
#>  Mean   : 77835   Mean   : 81394   Mean   : 81395   Mean   :0.6937  
#>  3rd Qu.: 95135   3rd Qu.: 99410   3rd Qu.: 99410   3rd Qu.:2.0000  
#>  Max.   :101347   Max.   :105801   Max.   :105800   Max.   :2.0000  
#>      RPOLY_           LENGTH           FULL_HYDRO       FULL_HYD_1    
#>  Min.   :0.0000   Min.   :   0.001   Min.   : 40102   Min.   : 84728  
#>  1st Qu.:0.0000   1st Qu.:  60.370   1st Qu.: 75598   1st Qu.:163202  
#>  Median :0.0000   Median : 171.338   Median : 83078   Median :211732  
#>  Mean   :0.6937   Mean   : 293.022   Mean   : 77835   Mean   :186607  
#>  3rd Qu.:2.0000   3rd Qu.: 395.517   3rd Qu.: 95135   3rd Qu.:228227  
#>  Max.   :2.0000   Max.   :3966.165   Max.   :101347   Max.   :234417  
#>     FTYPE               FCODE           NAME             RCH_CODE        
#>  Length:8554        Min.   :33400   Length:8554        Length:8554       
#>  Class :character   1st Qu.:33600   Class :character   Class :character  
#>  Mode  :character   Median :46000   Mode  :character   Mode  :character  
#>                     Mean   :43347                                        
#>                     3rd Qu.:46000                                        
#>                     Max.   :55800                                        
#>     I_vs_P            USGSstrm        
#>  Length:8554        Length:8554       
#>  Class :character   Class :character  
#>  Mode  :character   Mode  :character  
#>                                       
#>                                       
#>