[GRASS-stats] rgrass7 read/write SpatialPolygonsDataFrames errors

Roger Bivand Roger.Bivand at nhh.no
Fri Oct 9 07:36:01 PDT 2015


If it is the v.info call, please run:

res <- execGRASS("v.info", flags="t", map="zm.gnrl", layer=1L, intern=TRUE)

and report the output of:

print(res)

and maybe send me offlist the output of 

save(res, file="vinfo_odd_output.RData")

Roger

--
Roger Bivand
Norwegian School of Economics
Helleveien 30, 5045 Bergen, Norway
Roger.Bivand at nhh.no


________________________________________
Fra: grass-stats [grass-stats-bounces at lists.osgeo.org] på vegne av Roger Bivand [Roger.Bivand at nhh.no]
Sendt: 9. oktober 2015 4:27
Til: Eduardo Diez
Kopi: grass-stats at lists.osgeo.org
Emne: Re: [GRASS-stats] rgrass7 read/write SpatialPolygonsDataFrames errors

OK, please provide the output of traceback() run immediately after the failing readVECT(). That will show which command invokes scan(). Also try to run vInfo(zm.gnrl) - I think the failure is in:

execGRASS("v.info", flags="t", map="zm.gnrl", layer=1L)

not returning a structure that vInfo understands, and which ois then used in readVECT().

Roger

--
Roger Bivand
Norwegian School of Economics
Helleveien 30, 5045 Bergen, Norway
Roger.Bivand at nhh.no







Fra: diez.edu at gmail.com [diez.edu at gmail.com] på vegne av Eduardo Diez [eduardodiez at gmx.com]

Sendt: 9. oktober 2015 4:04

Til: Roger Bivand

Kopi: grass-stats at lists.osgeo.org

Emne: Re: [GRASS-stats] rgrass7 read/write SpatialPolygonsDataFrames errors






Roger, with GRASS version 7.0.1 and rgrass7_0.1-3, readVECT now doesn't ask for the driver to use but gives the same error as before:




writeVECT(SDF = mz.pol, vname = zm.pol, v.in.ogr_flags = "o")
Over-riding projection check
Check if OGR layer <q7468fb> contains polygons...



Importing 205 features (OGR layer <q7468fb>)...



-----------------------------------------------------
Registering primitives...
3924 primitives registered
12866 vertices registered
Number of nodes: 2884
Number of primitives: 3924
Number of points: 0
Number of lines: 0
Number of boundaries: 3924
Number of centroids: 0
Number of areas: -
Number of isles: -
-----------------------------------------------------
Cleaning polygons
-----------------------------------------------------
Breaking polygons...
Breaking polygons (pass 1: select break points)...



Breaking polygons (pass 2: break at selected points)...



-----------------------------------------------------
Removing duplicates...



-----------------------------------------------------
Breaking boundaries...



-----------------------------------------------------
Removing duplicates...



-----------------------------------------------------
Cleaning boundaries at nodes...



-----------------------------------------------------
Merging boundaries...



-----------------------------------------------------
Removing dangles...



-----------------------------------------------------
Building areas...



205 areas built
13 isles built
Number of nodes: 2929
Number of primitives: 7268
Number of points: 0
Number of lines: 0
Number of boundaries: 7268
Number of centroids: 0
Number of areas: 205
Number of isles: 13
-----------------------------------------------------
Removing bridges...



-----------------------------------------------------
Registering primitives...
498 primitives registered
5828 vertices registered
Building areas...



205 areas built
13 isles built
Attaching islands...



Number of nodes: 306
Number of primitives: 498
Number of points: 0
Number of lines: 0
Number of boundaries: 498
Number of centroids: 0
Number of areas: 205
Number of isles: 13
-----------------------------------------------------
Finding centroids for OGR layer <q7468fb>...



-----------------------------------------------------
Writing centroids...



-----------------------------------------------------
205 input polygons
Total area: 1.25187E+006 (205 areas)
-----------------------------------------------------
Copying features...



WARNING: Unable to delete file
         'C:/Users/ediez1/AppData/Local/Temp/Rtmpqkeay4/file480c1e5e16a7/file480c11cc233b/.tmp/unknown/vector/tmp_8308/coor'
Building topology for vector map <q7468fb at file480c11cc233b>...
Registering primitives...
703 primitives registered
6033 vertices registered
Building areas...



205 areas built
13 isles built
Attaching islands...



Attaching centroids...



Number of nodes: 306
Number of primitives: 703
Number of points: 0
Number of lines: 0
Number of boundaries: 498
Number of centroids: 205
Number of areas: 205
Number of isles: 13
> execGRASS("v.clean", flags = c("overwrite"), input = zm.pol,
+ output = zm.gnrl, tool = "rmarea", threshold = 3000)
--------------------------------------------------
Tool: Threshold
Remove small areas: 3000
--------------------------------------------------
Copying features...



Rebuilding parts of topology...
Building topology for vector map <u10f44b at file480c11cc233b>...
Registering primitives...
703 primitives registered
6033 vertices registered
Building areas...



205 areas built
13 isles built
Attaching islands...



Attaching centroids...



Number of nodes: 306
Number of primitives: 703
Number of points: 0
Number of lines: 0
Number of boundaries: 498
Number of centroids: 205
Number of areas: 205
Number of isles: 13
--------------------------------------------------
Tool: Remove small areas



174 areas of total size 50601.7 removed
--------------------------------------------------
Rebuilding topology for output vector map...
Building topology for vector map <u10f44b at file480c11cc233b>...
Registering primitives...
333 primitives registered
4705 vertices registered
Building areas...



31 areas built
3 isles built
Attaching islands...



Attaching centroids...



Number of nodes: 274
Number of primitives: 333
Number of points: 0
Number of lines: 0
Number of boundaries: 302
Number of centroids: 31
Number of areas: 31
Number of isles: 3
> zm.fnl <- readVECT(zm.gnrl)


Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  :
  line 4 did not have 2 elements
> sessionInfo()
R version 3.2.2 (2015-08-14)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1



locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252



attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base



other attached packages:
 [1] RPyGeo_0.9-3    RSAGA_0.94-3    plyr_1.8.3      gstat_1.0-26    shapefiles_0.7  foreign_0.8-65  maptools_0.8-37 rgdal_1.0-7     classInt_0.1-23
[10] raster_2.4-20   rgrass7_0.1-3   XML_3.98-1.3    sp_1.2-0



loaded via a namespace (and not attached):
 [1] Rcpp_0.12.1      intervals_0.15.1 lattice_0.20-33  FNN_1.1          spacetime_1.1-4  class_7.3-13     zoo_1.7-12       grid_3.2.2
 [9] e1071_1.6-7      xts_0.9-7        tools_3.2.2




Thanks






2015-10-08 18:57 GMT-03:00 Roger Bivand
<Roger.Bivand at nhh.no>:


Sorry this has taken a long time; please try installing the development version available from:



http://win-builder.r-project.org/8Y3Ihj451Clx



(rgrass7_0.1-3.zip). The problem was the use of "_" instead of " " in the name of the OGR shapefile driver - in OGR and R it is "ESRI Shapefile", in GRASS it is "ESRI_Shapefile". Because the new long-name work-around worked on systems not needing to use this
 driver, it wasn't properly tested - and on Windows the GRASS standalone has OGR with the SQLite driver, but the Windows rgdal binary does not have SQLite. You may wish to install the R RSQLite package to move data if you use long field/column names.



Before installing this development version, and after library(rgrass7), run example(readVECT) in the basic nc location from:



https://grass.osgeo.org/sampledata/north_carolina/nc_basic_spm_grass7.zip



it should fail. Then restart R, install the development version of rgrass7 from the first link, and repeat - it works for me and should resolve the problem.



Hope this helps,



Roger





--

Roger Bivand

Norwegian School of Economics

Helleveien 30, 5045 Bergen, Norway

Roger.Bivand at nhh.no











Fra:
grass-stats-bounces at lists.osgeo.org [grass-stats-bounces at lists.osgeo.org]
 på vegne av Eduardo Diez [eduardodiez at gmx.com]

Sendt: 24. september 2015 9:11

Til:
grass-stats at lists.osgeo.org

Emne: [GRASS-stats] rgrass7 read/write SpatialPolygonsDataFrames errors






Hi, I'm a user of R mostly for spatial information processing. Besides sp, maptools, etc. i also use functions from GRASS, at first through spgrass6 and then rgrass7. A few days ago, I started having trouble reading and writing SpatialPolygonsDataFrames using
 readVECT and writeVECT. I tried both reinstalling both grass (6.4.4, 7.0.0 and 7.0.1) and the R packages (spgrass6 0.8-6 and rgrass7 0.1-2), and also with different R objects but i kept getting the same errors.





The "mult.r" object is a RasterLayer with 4 zones and the objective is to convert it to polygons and "clean" small areas with v.clean rmarea (as i don't currently know a way of doing this in plain R).







The first thing that came out strange was that when executing writeVECT it would ask me for the driver to use (in the way of rgdal's writeOGR, it didn't ask for it before). I figured out that object to be written should be projected (not in lat-lon, don't know
 why). After doing this i could write the vector and execute v.clean. The problem came again when trying to read the cleaned polygons back to R.

Below i paste an extract of my R console with the errors and some information.







Thanks in advance,



Eduardo





> mult.rp <- projectRaster(mult.r, crs = prj.crs, method = "ngb")

> mult.pol <- rasterToPolygons(mult.rp, dissolve = T)



> initGRASS(gisBase = "c:/Program Files (x86)/GRASS GIS 7.0.1", home = tempdir(), override = T)

gisdbase    C:/Users/ediez1/AppData/Local/Temp/RtmpegbyiQ

location    file2f7c6dc070e6

mapset      file2f7c30eb3f52

rows        1

columns     1

north       1

south       0

west        0

east        1

nsres       1

ewres       1

projection  NA

> writeVECT(mult.pol, "pol1", v.in.ogr_flags = "o")

Error: !is.null(driver) is not TRUE

> writeVECT(mult.pol, "pol1", v.in.ogr_flags = "o", driver = "ESRI Shapefile")



Over-riding projection check

Check if OGR layer <r848659> contains polygons...





Importing 4 features (OGR layer <r848659>)...





-----------------------------------------------------

Registering primitives...

3005 primitives registered

15587 vertices registered

Number of nodes: 2691

Number of primitives: 3005

Number of points: 0

Number of lines: 0

Number of boundaries: 3005

Number of centroids: 0

Number of areas: -

Number of isles: -

-----------------------------------------------------

Cleaning polygons

-----------------------------------------------------

Breaking polygons...

Breaking polygons (pass 1: select break points)...





Breaking polygons (pass 2: break at selected points)...





-----------------------------------------------------

Removing duplicates...





-----------------------------------------------------

Breaking boundaries...





-----------------------------------------------------

Removing duplicates...





-----------------------------------------------------

Cleaning boundaries at nodes...





-----------------------------------------------------

Merging boundaries...





-----------------------------------------------------

Removing dangles...





-----------------------------------------------------

Building areas...





95 areas built

8 isles built

Number of nodes: 2771

Number of primitives: 7307

Number of points: 0

Number of lines: 0

Number of boundaries: 7307

Number of centroids: 0

Number of areas: 95

Number of isles: 8

-----------------------------------------------------

Removing bridges...





-----------------------------------------------------

Registering primitives...

231 primitives registered

7594 vertices registered

Building areas...





95 areas built

8 isles built

Attaching islands...





Number of nodes: 144

Number of primitives: 231

Number of points: 0

Number of lines: 0

Number of boundaries: 231

Number of centroids: 0

Number of areas: 95

Number of isles: 8

-----------------------------------------------------

Finding centroids for OGR layer <r848659>...





-----------------------------------------------------

Writing centroids...





-----------------------------------------------------

95 input polygons

Total area: 1.28981E+006 (95 areas)

-----------------------------------------------------

Copying features...





WARNING: Unable to delete file

         'C:/Users/ediez1/AppData/Local/Temp/Rtmpg10lvi/filec2473b0126/filec24129b63ac/.tmp/unknown/vector/tmp_10484/coor'

Building topology for vector map <r848659 at filec24129b63ac>...

Registering primitives...

326 primitives registered

7689 vertices registered

Building areas...





95 areas built

8 isles built

Attaching islands...





Attaching centroids...





Number of nodes: 144

Number of primitives: 326

Number of points: 0

Number of lines: 0

Number of boundaries: 231

Number of centroids: 95

Number of areas: 95

Number of isles: 8





> execGRASS("v.clean", flags = c("overwrite"), input = "pol1",

+ output = "clnpol", tool = "rmarea", threshold = 3000)

--------------------------------------------------

Tool: Threshold

Remove small areas: 3000

--------------------------------------------------

Copying features...





Rebuilding parts of topology...

Building topology for vector map <k1f9f75 at filec24129b63ac>...

Registering primitives...

326 primitives registered

7689 vertices registered

Building areas...





95 areas built

8 isles built

Attaching islands...





Attaching centroids...





Number of nodes: 144

Number of primitives: 326

Number of points: 0

Number of lines: 0

Number of boundaries: 231

Number of centroids: 95

Number of areas: 95

Number of isles: 8

--------------------------------------------------

Tool: Remove small areas





55 areas of total size 29487.1 removed

--------------------------------------------------

Rebuilding topology for output vector map...

Building topology for vector map <k1f9f75 at filec24129b63ac>...

Registering primitives...

212 primitives registered

6840 vertices registered

Building areas...





40 areas built

4 isles built

Attaching islands...





Attaching centroids...





Number of nodes: 136

Number of primitives: 212

Number of points: 0

Number of lines: 0

Number of boundaries: 172

Number of centroids: 40

Number of areas: 40

Number of isles: 4

> cln.pol <- readVECT("clnpol")

Error: !is.null(driver) is not TRUE

> cln.pol <- readVECT("clnpol", driver = "ESRI Shapefile")

Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  :

  line 4 did not have 2 elements





> sessionInfo()

R version 3.2.2 (2015-08-14)

Platform: x86_64-w64-mingw32/x64 (64-bit)

Running under: Windows 7 x64 (build 7601) Service Pack 1





locale:

[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252

[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252





attached base packages:

[1] stats     graphics  grDevices utils     datasets  methods   base





other attached packages:

[1] rgrass7_0.1-2   classInt_0.1-22 maptools_0.8-36 ggplot2_1.0.1   XML_3.98-1.3    raster_2.4-20   sp_1.2-0





loaded via a namespace (and not attached):

 [1] Rcpp_0.12.1      magrittr_1.5     MASS_7.3-43      munsell_0.4.2    colorspace_1.2-6 lattice_0.20-33  stringr_1.0.0    plyr_1.8.3

 [9] tools_3.2.2      parallel_3.2.2   rgdal_1.0-7      grid_3.2.2       gtable_0.1.2     e1071_1.6-7      class_7.3-13     rgeos_0.3-12

[17] digest_0.6.8     reshape2_1.4.1   labeling_0.3     stringi_0.5-5    scales_0.3.0     foreign_0.8-65   proto_0.3-10










_______________________________________________
grass-stats mailing list
grass-stats at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-stats


More information about the grass-stats mailing list