[GRASS-stats] Mapset and layer names in readVECT using GRASS GDAL plugin
Rainer M Krug
Rainer at krugs.de
Fri Jun 19 01:23:31 PDT 2015
Ahmadou Dicko <dicko.ahmadou at gmail.com> writes:
> I just tested the last version commited and it works now, thank you.
Great - thanks for reporting.
> Although we still need to give the layer name in order to read a
> vector using the plugin.
I don't understand you here:
readVect has an argument named "layer", which is passed on to the
function.read_vect_plugin():
,----
| res <- .read_vect_plugin(
| vname=vname,
| layer=layer,
| type=type,
| sss=sss,
| ignore.stderr=ignore.stderr,
| pointDropZ=pointDropZ,
| mapset = mapset
| )
`----
Where is the layer name missing?
As Roger, I also can't test it, so we have to rely on you for this and
reporting.
Thanks,
Rainer
> But this is another issue and I think we can solve this using
> rgdal::ogrListLayers but it will require more change in the code base.
>
> I will think about an alternative design of the readVECT using
> ogrListLayers that will pass all the tests and I will let you know.
>
> Thanks again
>
>
>
> On Thu, Jun 18, 2015 at 4:35 PM, Rainer M Krug <Rainer at krugs.de> wrote:
>> Roger Bivand <Roger.Bivand at nhh.no> writes:
>>
>>> Hi,
>>>
>>> Thanks for your interest. I do not use the plugins at all, as they
>>> have historically led to great difficulty in managing and maintaining
>>> rgdal (I sometimes rebuild GDAL more than once a day). If you would
>>> like commit rights on R-Forge, please file a request there, and we can
>>> try to find ways of automating checking (or testing) the
>>> functionality, but without my contribution.
>>
>> Roger - I think you can release the bug fix I just commited after
>> Ahmadou tried it out as it was an oversight.
>>
>> Cheers,
>>
>> Rainer
>>
>>>
>>> Best wishes,
>>>
>>> Roger
>>>
>>> On Thu, 18 Jun 2015, Ahmadou Dicko wrote:
>>>
>>>> Hi,
>>>>
>>>> I'm trying to use the direct OGR access to GRASS vector using plugin
>>>> through the rgrass7 package in R but I have some issues with the
>>>> mapset argument.
>>>>
>>>> Here are the steps to reproduce the bug using the nc_basic_spm_grass7
>>>> GRASS location and user1 mapset.
>>>>
>>>> Within the GRASS session, we launch R
>>>> library(rgrass7)
>>>> v <- readVECT("geonames", plugin = TRUE)
>>>> Error in .read_vect_plugin(vname = vname, layer = layer, type = type, :
>>>> object 'mapset' not found
>>>>
>>>> One way to fix this, is to add a mapset argument to .read_vect_plugin
>>>> and set it by default to the same argument in the readVECT function.
>>>>
>>>> ### Example of fix
>>>> readVECT <- function(..., mapset = NULL, ...) {
>>>> ....
>>>> if (plugin) {
>>>> res <- .read_vect_plugin(..., mapset = mapset, ...)
>>>> ....
>>>> }
>>>>
>>>> But once this problem solved, another one appears. This one, need
>>>> confirmation though. Using the GRASS GDAL plugin, I can't open a GRASS
>>>> vector without using the layer name. I am aware that we can use the
>>>> layer number using other driver (Shapefiles, GML, etc) but I looks
>>>> like (at least in my setup) that I can't open it without giving the
>>>> layer name.
>>>>
>>>> I modified rgrass7:::.read_vect_plugin and named it .read_vect_plugin2
>>>> and added a mapset argument (to correct the first bug).
>>>>
>>>> ### Reproducing the error
>>>> sss <- strsplit(packageDescription("rgdal")$Version, "-")[[1]]
>>>>
>>>> class(
>>>> .read_vect_plugin2("geonames",
>>>> mapset = NULL,
>>>> layer = 1L,
>>>> sss = sss,
>>>> ignore.stderr = TRUE,
>>>> pointDropZ = TRUE)
>>>> )
>>>> Error in ogrInfo(dsn = dsn, layer = layer, encoding = encoding,
>>>> use_iconv = use_iconv, :
>>>> Cannot open layer
>>>>
>>>>
>>>> class(
>>>> .read_vect_plugin2("geonames",
>>>> mapset = NULL,
>>>> layer = "geonames",
>>>> sss = sss,
>>>> ignore.stderr = TRUE,
>>>> pointDropZ = TRUE)
>>>> )
>>>> [1] "SpatialPointsDataFrame"
>>>> attr(,"package")
>>>> [1] "sp"
>>>>
>>>> Please can you confirm that it is a feature of the plugin to have the
>>>> real name instead of the layer number ?
>>>>
>>>> Nonetheless, one way to fix this is to add a call to
>>>> rgdal::ogrListLayers in the rgrass7:::.read_vect_plugin
>>>>
>>>> dsn <- paste(gg$GISDBASE, gg$LOCATION_NAME, mapset, "vector",
>>>> vname[1], "head", sep = "/")
>>>> layers <- rgdal::ogrListLayers(dsn = dsn)
>>>>
>>>> Using this approach we can have the layer names and use it in readOGR.
>>>> I hope that I described it clearly.
>>>>
>>>> Best regards,
>>>>
>>>> Info and spec
>>>> Linux:
>>>> Linux dickoa 4.0.5-1-ARCH #1 SMP PREEMPT Sat Jun 6 18:37:49 CEST 2015
>>>> x86_64 GNU/Linux
>>>>
>>>> GRASS:
>>>> version=7.1.svn
>>>> date=2015
>>>> revision=65487
>>>> build_date=2015-06-16
>>>> build_platform=x86_64-unknown-linux-gnu
>>>>
>>>> GDAL:
>>>> GDAL 1.11.2, released 2015/02/10
>>>>
>>>>
>>>> R:
>>>> sessionInfo()
>>>> R version 3.2.1 RC (2015-06-14 r68519)
>>>> Platform: x86_64-unknown-linux-gnu (64-bit)
>>>> Running under: Arch Linux
>>>>
>>>> locale:
>>>> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
>>>> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
>>>> [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
>>>> [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
>>>> [9] LC_ADDRESS=C LC_TELEPHONE=C
>>>> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
>>>>
>>>> attached base packages:
>>>> [1] stats graphics grDevices utils datasets methods
>>>> [7] base
>>>>
>>>> other attached packages:
>>>> [1] rgdal_0.9-3 rgrass7_0.1-0 XML_3.98-1.2 sp_1.1-1
>>>>
>>>> loaded via a namespace (and not attached):
>>>> [1] tools_3.2.1 grid_3.2.1 lattice_0.20-31
>>>>
>>>>
>>>>
>>>> --
>>>> Ahmadou H. DICKO
>>>> statistician economist (Ingénieur Statisticien Économiste)
>>>> PhD candidate in Climate change economics
>>>> Faculty of economics and managment - Cheikh Anta Diop University
>>>> West African Science Service Center on Climate Change and Adaptated
>>>> Land Use (WASCAL)
>>>> Center for Development Research (ZEF) - University of Bonn
>>>> email : ahmadou.dicko at ucad.edu.sn
>>>> twitter : @dickoah
>>>> github : github/dickoa
>>>> tel : +221 33 827 55 16
>>>> portable: +221 77 123 81 69
>>>> _______________________________________________
>>>> grass-stats mailing list
>>>> grass-stats at lists.osgeo.org
>>>> http://lists.osgeo.org/mailman/listinfo/grass-stats
>>
>> --
>> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)
>>
>> Centre of Excellence for Invasion Biology
>> Stellenbosch University
>> South Africa
>>
>> Tel : +33 - (0)9 53 10 27 44
>> Cell: +33 - (0)6 85 62 59 98
>> Fax : +33 - (0)9 58 10 27 44
>>
>> Fax (D): +49 - (0)3 21 21 25 22 44
>>
>> email: Rainer at krugs.de
>>
>> Skype: RMkrug
>>
>> PGP: 0x0F52F982
--
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)
Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa
Tel : +33 - (0)9 53 10 27 44
Cell: +33 - (0)6 85 62 59 98
Fax : +33 - (0)9 58 10 27 44
Fax (D): +49 - (0)3 21 21 25 22 44
email: Rainer at krugs.de
Skype: RMkrug
PGP: 0x0F52F982
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 480 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/grass-stats/attachments/20150619/170ffaf6/attachment.pgp>
More information about the grass-stats
mailing list