[GRASS-stats] R in GRASS - v.db.addcolumn Error

Maximilian Bakenhus maximilianbakenhus at gmail.com
Sat May 7 03:49:29 PDT 2016


Okay it seems nabble really ate my content,
this is the code and my grass version

System Info

GRASS version: 7.0.3

GRASS SVN Revision: 67691

Build Date: 2016-01-10

Build Platform: x86_64-w64-mingw32

GDAL/OGR: 1.11.3

PROJ.4: 4.9.2

GEOS: 3.5.0

SQLite: 3.7.17

Python: 2.7.5

wxPython: 2.8.12.1

Platform: Windows-8-6.2.9200

# Initialize GRASS
loc <- initGRASS(gisBase = "C:/GRASS GIS 7.0.3",
                 home = tempdir(),
                 gisDbase = 'C:/Users/KingGoerge/Documents/GIS DataBase 2',
                 location = 'usa',
                 mapset = 'kansas-4', override = TRUE )
loc
# perhabs first create loaction and map before in GUI?

# # # read DEM
execGRASS("r.in.gdal", flags = c("overwrite", "o"),
          parameters = list(input = 'C:/Users/KingGoerge/Documents/Gis
Projekte/GIS Advanced
Projekt/Höhenmodell-Kansas/20160429133734_122375530.tif',
                            output = "DEM"))

execGRASS("g.list", parameters = list(type = "rast"))
# set region
execGRASS("g.region", parameters = list(raster = 'DEM'))
gmeta()



###
----------------------------------------------------------------------------
# # extract flow direction + streams from dem:
execGRASS("r.watershed", flags = "overwrite",
          parameters = list(elevation = "DEM",
                            drainage = 'fdir',  # save flow direction as
raster named "fdir"
                            stream = 'stream',  # save derived streams as
raster named "stream"
                            threshold = 750))
# list all rasters available in GRASS-Session
execGRASS("g.list", parameters = list(type = "rast"))
# now with fdir and stream

# thin streams and convert to line and clean
# thin = make stream 1pixel width
execGRASS("r.thin", flags = "overwrite", parameters = list(input =
'stream', output = 'stream_t'))
# convert to line vector
execGRASS("r.to.vect",  flags = "overwrite", parameters = list(input =
'stream_t', output = 'streams', type = 'line' ))
# clean vector (see help for more information)
execGRASS("v.clean",  flags = c("overwrite", "c"), parameters = list(input
= 'streams', output = 'streams_c', tool = 'break'))



# read sampling sites
sites3 <- read.table('C:/Users/KingGoerge/Documents/Gis Projekte/GIS
Advanced Projekt/Messpunkte_Kansas-formatiert.csv', header = TRUE, sep =
';')

# set coordinates to create a spatial R object
coordinates(sites3) <- ~longitude + latitude
plot(sites3)
# write to GRASS
writeVECT(sites3, "sites_3", v.in.ogr_flags = c("o", "overwrite"))

# list all vectors
execGRASS("g.list", parameters = list(type = "vect"))

## snap sites to streams
# add columns to attributed table of sites
# for distance id and coordinates of nearest streams,
execGRASS("v.db.addcolumn", parameters = list(map = "sites_3", columns =
"dist double precision, cats integer, xm double precision, ym double
precision"))
# hat den Befehl nicht gefunden, ausführung über GUI in GRASS über
Befehlssuche


# calc distance of points to nearest stream
# and save distance and new coordinates to newly created columns
execGRASS("v.distance",  flags = c("overwrite"),
          parameters = list(from = 'sites_2',
                            to = 'streams_c',
                            output = 'connectors',
                            upload = 'dist,cat,to_x,to_y',
                            column = 'dist,cats,xm,ym'))

# extract new points (=snapped coordinates)
# save to disc
execGRASS("v.db.select", flags = c('c', 'overwrite'),
          parameters = list(map = 'sites_2',
                            columns = c('xm,ym'),
                            file = 'C:/Users/KingGoerge/Documents/Gis
Projekte/GIS Advanced Projekt/new_points_kansas.txt'))
# load from disc
execGRASS("v.in.ascii", flags = c("overwrite"),
          parameters = list(input = 'C:/Users/KingGoerge/Documents/Gis
Projekte/GIS Advanced Projekt//new_points_kansas.txt',
                            output = "new_sites"))


###
-------------------------------------------------------------------------
### Calculate catchments
# read new sites
snapped <- readVECT('new_sites')
# copy sites_id from table to vectordata
snapped at data$site_id <- sites$site_id

# for each Point in snapped...
for (i in seq_len(nrow(snapped))) {
  # extract respective point
  take <- snapped[i,]
  message(paste0(i, ' out of ', nrow(snapped)))
  # calculate drainage area
  execGRASS("r.water.outlet", flags = 'overwrite',
            parameters = list(input = 'fdir',    # flow direction as input
                              output = paste0('da_', take at data$site_id),  #
save as raster named "da_<site_id>" (da = drainage area)
                              coordinates = coordinates(take)[ ,1:2])) #
coordinates of point for which drainage should be calculated
  # execGRASS("g.list", parameters = list(type = "rast"))
  # make raster to vector
  execGRASS("r.to.vect",  flags = 'overwrite',
            parameters = list(input = paste0('da_', take at data$site_id), #
input = "da_<site_id>" (=raster)
                              output = paste0('ws_', take at data$site_id), #
output = "ws_<site_id>" (=vector polygon)
                              type = 'area'))
  #   execGRASS("g.list", parameters = list(type = "rast"))
  #   execGRASS("g.list", parameters = list(type = "vect"))
  # Add a column 'area_sqkm' for area in sq.km to attributed table
  execGRASS("v.db.addcolumn",
            parameters = list(map = paste0('ws_', take at data$site_id),
                              columns = "area_sqkm double"))
  # calculate aresa and save to "area_sqkm" column
  execGRASS("v.to.db", parameters = list(
    map = paste0('ws_', take at data$site_id),
    option = 'area',
    columns = 'area_sqkm',  units = 'kilometers'))
}





2016-05-06 22:11 GMT+02:00 Roger Bivand <Roger.Bivand at nhh.no>:

> You have still not stated your rgrass7 version. This really is important,
> without knowing this no help is possible. You must give much more detail of
> what you are actually doing; make sure that rstudio is not getting in the
> way (it runs R in separate sessions).
>
> * DO NOT POST IN NABBLE, IT CAN EAT CONTENT*
>
> Roger
>
> On Fri, 6 May 2016, Maximilian Bakenhus wrote:
>
> Hello Community,
>>
>> I am a german student and I work with some other students at a GRASS
>> Project,
>> its about watershed modeling of a DEM Projection and snap measuring points
>> over the new streams.
>> We do this with the newest version of R Studio and GRASS 7.0.3
>>
>> This here is part of our code:
>>
>>
> Where???
>
>
>
>> As we try do do the last order,
>> the* v.db.addcolumn*, we retrieve this error:
>>
>> *Error in system(cmd0, intern = TRUE) : 'v.db.addcolumn.exe' not found
>> Error in parseGRASS(cmd, legacyExec = legacyExec) :
>>  v.db.addcolumn not found*
>>
>> We really dont know, how to fix it and hope someone here does, cause we
>> need
>> it very urgent.
>> Thanks for reading,
>> have a nice day
>>
>> Max
>>
>>
>>
>>
>> --
>> View this message in context:
>> http://osgeo-org.1560.x6.nabble.com/R-in-GRASS-v-db-addcolumn-Error-tp5265014.html
>> Sent from the Grass - Stats mailing list archive at Nabble.com.
>> _______________________________________________
>> grass-stats mailing list
>> grass-stats at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/grass-stats
>>
>
> --
> Roger Bivand
> Department of Economics, Norwegian School of Economics,
> Helleveien 30, N-5045 Bergen, Norway.
> voice: +47 55 95 93 55; fax +47 55 95 91 00
> e-mail: Roger.Bivand at nhh.no
> http://orcid.org/0000-0003-2392-6140
> https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en
> http://depsy.org/person/434412
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-stats/attachments/20160507/254c5e41/attachment-0001.html>


More information about the grass-stats mailing list