On Fri, 20 Oct 2017, Markus Metz wrote:

Hi Vero,

On Thu, Oct 19, 2017 at 9:26 PM, Veronica Andreo <[email protected]>
wrote:

Hello again,

I come back to this thread beacuse the issue was solved for readVECT, but
I now realize (when trying to write vectors back into GRASS after some
processing in R) that writeVECT shows the same problem, i.e. the only
driver working is ESRI Shapefile (all smooth, no errors), but driver =
"SQLite" throws the same error as reported for readVECT at the begining of
this thread. Would it be possible to fix also writeVECT?

in both readVECT and writeVECT in the file vect_link.R, replace
   ogrDGRASSs <- gsub(" ", "_", sapply(strsplit(ogrDGRASS, ": "), "[", 2))
with
   ogrDGRASSs <- gsub(" ", "_", trimws(sapply(strsplit(ogrDGRASS, " [(]"),
"[", 1)))

this works with all versions of GRASS 7 and all versions of GDAL.

Please try:

install.packages("rgrass7", repos="http://R-Forge.R-project.org";)

which incorporates the change in both places, not just one as before (svn revision 63 on R-Forge, spgrass project).

Roger


Markus M



Here an example:

library(rgrass7)
Loading required package: sp
Loading required package: XML
GRASS GIS interface loaded with GRASS version: GRASS 7.3.svn (2017)
and location: eu_laea

bbox <- readVECT("bbox_greece", driver = "SQLite")
WARNING: No attribute table found -> using only category numbers as
attributes
Exporting 1 area (may take some time)...
 100%
v.out.ogr complete. 1 feature (Polygon type) written to <bbox_greece>
(SQLite format).
OGR data source with driver: SQLite
...
WARNING: No attribute table found -> using only category numbers as
attributes
Exporting 1 area (may take some time)...
 100%
v.out.ogr complete. 1 feature (Polygon type) written to <bbox_greece>
(SQLite format).

writeVECT(bbox, "bbox_from_R", driver = "SQLite")
Error: driver %in% candDrivers is not TRUE

writeVECT(bbox, "bbox_from_R", driver = "ESRI Shapefile")
... all goes fine...

Sorry for bothersome and thanks much in advance!

best,
Vero

ps: sessionInfo() and ogrDrivers() are the same as before.

2017-10-11 15:03 GMT+02:00 Roger Bivand <[email protected]>:

OK, thanks, will revise at next release.


Roger

On Wed, 11 Oct 2017, Markus Metz wrote:

Dear Roger,

On Wed, Oct 11, 2017 at 2:36 PM, Roger Bivand <[email protected]>
wrote:


Dear Markus,

I can't see how to get the same strings out without conditioning,


with

ogrDGRASSs <- gsub(" ", "_", trimws(sapply(strsplit(ogrDGRASS, " [(]"),
"[", 1)))

because for v.in.ogr -f and GDAL >= 2.0, GRASS < 7.3 presents for
example:

GML (rw): GML
SQLite (rw): SQLite
ESRI Shapefile (rw): ESRI Shapefile
GeoJSON (rw): GeoJSON

(readOGR used the string following ":" )


The structure of the output of r.in.gdal -f and v.in.ogr -f is

<short name> (<read/write flags>): <description>

readOGR must use the string preceding "(". Anything following ":" is a
description which can change any time. Before GDAL 2.0, there was
nothing
else but the short name for OGR drivers, therefore the short name was
used
as description.


and >= 7.3:

GML (rw+): Geography Markup Language (GML)
SQLite (rw+): SQLite / Spatialite
ESRI Shapefile (rw+): ESRI Shapefile
GeoJSON (rw+): GeoJSON

where the string after ":" is different.


the string before the read/write flags, i.e. before "(" is identical.

If we can depend on all GRASS < 7.3 having the same short name
position,

yes, I could avoid conditioning by changing the string processing to
suit

= 7.3 and apply it to all previous; I chose not to modify the string

processing for < 7.3 to avoid any problems I can't readily check.

For all versions of GRASS 7 and all versions of GDAL, the short name
position has been and continues to be the first position. For v.in.ogr
-f,
the short name may also appear after ":", but only if there is no long
name.

Best regards,

Markus


Best wishes,

Roger


On Wed, 11 Oct 2017, Markus Metz wrote:

Dear Roger,

On Wed, Oct 11, 2017 at 1:41 PM, Roger Bivand <[email protected]>

wrote:



New version submitted to CRAN; until then:

install.packages("rgrass7", repos="http://R-Forge.R-project.org";)

should pick up the latest version; #3425 closed. Please report back


whether this works ... (conditioning on GRASS version to create

comparable

driver name strings).

I don't think there is a need to condition on the GRASS version, see
my
suggestion in #3425

Markus M



Roger


On Wed, 11 Oct 2017, Roger Bivand wrote:

Thanks for trying to contribute. The GH site is not the rgrass7


development site - that is SVN on R-forge (GH is a very preliminary
trial
site for using sf vector representation in R, and maybe raster raster
representation (or forthcoming stars), instead of sp classes).



GRAS 7.2.2 works OK with the current logic checks; I can reproduce
the


issue in 7.3 (latest); there is a change in vector/v.in.ogr/main.c
returning the DriverLongName for GDAL >= 2.0; in GRASS 7.2.2, there
is no
such change. Could the GRASS developer responsible for this obvious
regression provide an additional flag in v.in.ogr (and v.external,
v.out.ogr) to permit backwards compatibility? See line 387, needs to

change



#if GDAL_VERSION_NUM >= 2000000

to add a !backwards_compatible test too.

I'll hold off trying to fix this in rgrass7 because it is a
regression.


I can add the backwards_compatibility=TRUE flag to readVECT() once it
is
exposed.



This is:

https://trac.osgeo.org/grass/ticket/3425

Roger

On Tue, 10 Oct 2017, Ahmadou Dicko wrote:

In the readVECT function, internally v.in.ogr is used to list the


supported


vector format and it is compared the format available using rgdal
(or


sf).


However, using v.external instead of v.in.ogr fix this single
problem
because of the way the output is different (in form).
For example, if you use v.in.ogr you will have to compare



SQLite_/_Spatialite



(GRASS) to SQLite (R) and they are not the same.

I tried to send a PR, let me know if it works

https://github.com/rsbivand/rgrass7/pull/1

Best,

On Tue, Oct 10, 2017 at 9:29 PM, Helmut Kudrnovsky <[email protected]>


wrote:



Gesendet: Dienstag, 10. Oktober 2017 um 23:24 Uhr
Von: "Ahmadou Dicko" <[email protected]>
An: "Helmut Kudrnovsky" <[email protected]>
Cc: "Roger Bivand" <[email protected]>, "

[email protected]"


<



[email protected]>



Betreff: Re: [GRASS-stats] rgrass7 - SQLite and GML drivers not


working



for readVECT




Hi everyone,

I think that using v.external -f (instead of v.in.ogr -f) can fix

this



issue (didn't try yet)





execGRASS("v.external", flags = "f", intern = TRUE)
[1] "ARCGEN"         "AVCBin"         "AVCE00"
[4] "AeronavFAA"     "AmigoCloud"     "BNA"
[7] "CAD"            "CSV"            "CSW"
[10] "Carto"          "Cloudant"       "CouchDB"
[13] "DGN"            "DXF"            "EDIGEO"
[16] "ESRI_Shapefile" "ElasticSearch"  "GFT"
[19] "GML"            "GPKG"           "GPSBabel"
[22] "GPSTrackMaker"  "GPX"            "GeoJSON"
[25] "GeoRSS"         "Geoconcept"     "Geomedia"
[28] "HTF"            "HTTP"           "Idrisi"
[31] "JML"            "JPEG2000"       "KML"
[34] "MSSQLSpatial"   "MapInfo_File"   "Memory"
[37] "MySQL"          "ODBC"           "ODS"
[40] "OGR_GMT"        "OGR_GRASS"      "OGR_PDS"
[43] "OGR_SDTS"       "OGR_VRT"        "OSM"
[46] "OpenAir"        "OpenFileGDB"    "PCIDSK"
[49] "PDF"            "PGDUMP"         "PGeo"
[52] "PLSCENES"       "PostgreSQL"     "REC"




in a quick check, there is no difference in available formats.










--
Roger Bivand
Department of Economics, Norwegian School of Economics,
Helleveien 30, N-5045 Bergen, Norway.
voice: +47 55 95 93 55; e-mail: [email protected]
Editor-in-Chief of The R Journal,

https://journal.r-project.org/index.html

http://orcid.org/0000-0003-2392-6140
https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en
_______________________________________________
grass-stats mailing list
[email protected]
https://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; e-mail: [email protected]
Editor-in-Chief of The R Journal,
https://journal.r-project.org/index.html
http://orcid.org/0000-0003-2392-6140
https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en



--
Roger Bivand
Department of Economics, Norwegian School of Economics,
Helleveien 30, N-5045 Bergen, Norway.
voice: +47 55 95 93 55; e-mail: [email protected]
Editor-in-Chief of The R Journal,
https://journal.r-project.org/index.html
http://orcid.org/0000-0003-2392-6140
https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en
_______________________________________________
grass-stats mailing list
[email protected]
https://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; e-mail: [email protected]
Editor-in-Chief of The R Journal, https://journal.r-project.org/index.html
http://orcid.org/0000-0003-2392-6140
https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en
_______________________________________________
grass-stats mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/grass-stats

Reply via email to