[GRASS-stats] readVECT6 - ogr fails to export some columns

Eric Momsen eric.momsen at gmail.com
Fri Apr 20 13:16:28 EDT 2012


Thanks!  Follow up below.

On Fri, Apr 20, 2012 at 10:12 AM, Markus Metz <
markus.metz.giswork at googlemail.com> wrote:

> On Fri, Apr 20, 2012 at 4:47 PM, Eric Momsen <eric.momsen at ndsu.edu> wrote:
> > Hi,
> >
> > I've been using GRASS and R for a few months now, and just ran into a
> snag.
> >  We added some new attribute columns to our vector file in GRASS, and now
> > when I try to move the data into R the transfer fails.
> >
> > The original vector map in grass was imported from a shapefile.  I then
> used
> > v.db.addcol and v.rast.stats to add more attributes to the vector map.
> >
> > I first thought it had to do with null values, so I tried adding a column
> > filled with a constant value.  This didn't help.
> >
> > I tried to reproduce the error in SPEARFISH, columns added with
> v.rast.stats
> > were fine, but v.db.addcol wouldn't execute.
> >
> >
> > I don't know why the installation let me add columns in one location and
> not
> > another, maybe this is the root cause or another issue all together?
> >
> > v.db.addcolumn --verbose map=landuse at PERMANENT layer=1 columns=test
> >
> > Adding column <test> to the table
> > DBMI-DBF driver error:
> > SQL parser error (syntax error, unexpected $end processing
> > '') in statement:
> > ALTER TABLE landuse ADD COLUMN test
>
> I think the column type is missing. Try e.g.
> v.db.addcolumn --verbose map=landuse at PERMANENT layer=1 columns='test
> double precision'
>
> OK, that worked today. Yesterday when I tried it I was getting columns
named "test double precision".  Are those single quotes or back ticks?
 From the GUI I put it in without any surrounding marks with column name
and data type.


> > Unable to execute statement.
> > ERROR: Error while executing: 'ALTER TABLE landuse ADD COLUMN test'
> > ERROR: Unable to add column <test>.
> >
> >
> > Any ideas for what I'm missing, or a workaround to get the data to R?  (I
> > was supposed to get an R data file ready today for others to work with
> that
> > aren't used to GRASS...I had previously done the GRASS->R transfer via a
> > script a number of times, and didn't expect any problems!)
> >
> > Here are the R messages:
> >
> >> source("/home/emomsen/Documents/loaddata.R")
> >
> > first command in file:
> > field2007<-readVECT6("ACSC_2007_Field_Boundary")
> >
> > Loading required package: rgdal
> > Geospatial Data Abstraction Library extensions to R successfully loaded
> > Loaded GDAL runtime: GDAL 1.9.0, released 2011/12/29
> > Path to GDAL shared files: /usr/local/share/gdal
> > Loaded PROJ.4 runtime: Rel. 4.8.0, 6 March 2012, [PJ_VERSION: 480]
> > Path to PROJ.4 shared files: (autodetected)
> > Available OGR Drivers:
> > Warning 1: Field COUNTY of width 1000 truncated to 255.
> > ....snip... these are OK
> > ERROR 6: Failed to add field named 'HARVEST_DAY'
> > ERROR 6: Failed to add field named 'NDVI_04_B_DAY'
> > ....snip...These were added with v.db.addcol
> > ERROR 6: Failed to add field named 'NDVI_04_B_mean'
>
> The column name is probably too long for the OGR dbf driver, the max
> length is 10 I think. That is, NDVI_04_B_DAY becomes truncated to
> NDVI_04_B_ and NDVI_04_B_mean also becomes truncated to NDVI_04_B_,
> resulting in duplicate column names. You could try a shorter column
> prefix with v.rast.stats.
>
>
Ah ha!  OK, I did v.db.renamecol to test one of them, and that one
transfered fine.  I assume I'm OK going with renaming the existing columns,
some of the statistics results would be too long even with a short prefix.

I'm both embarrassed and happy that this was an easy solution.

Thanks for the quick response!
-Eric



> Markus M
>
> > ...snip,... there are about 100 of these, extended statistics for 10
> > rasters.
> >
> >
> > The import does finish, all of the "original" columns for the shapefile
> are
> > imported to R.  v.db.select shows most of the attribute columns together
> > (the last ones are lost from the line length), and querying the map gives
> > all the attributes.
> >
> > Thanks for any help!
> >
> > Eric
> >
> >> sessionInfo()
> > R version 2.14.1 (2011-12-22)
> > Platform: x86_64-pc-linux-gnu (64-bit)
> >
> > 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=C                 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   base
> >
> > other attached packages:
> > [1] rgdal_0.7-8     spgrass6_0.7-10 XML_3.9-4       sp_0.9-98
> >
> > loaded via a namespace (and not attached):
> > [1] grid_2.14.1    lattice_0.20-0
> >
> >
> > g.gisenv -n
> >
> > LANG=en_US.UTF-8
> > GRASS_ADDON_PATH=/home/emomsen/v.krige
> > GISDBASE=/home/shared/research/GRASSDATA
> > LOCATION_NAME=transferField
> > ADDON_PATH=/home/emomsen/v.krige
> > GUI=wxpython
> > MAPSET=PERMANENT
> >
> >
> > _______________________________________________
> > grass-stats mailing list
> > grass-stats at lists.osgeo.org
> > http://lists.osgeo.org/mailman/listinfo/grass-stats
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/grass-stats/attachments/20120420/7dc59465/attachment.html


More information about the grass-stats mailing list