Thank you! This seems to be an interesting solution to the problem especially because it involves changing the driver from DBF to SQLITE. I ended up using 'v.rast.stats', which adds columns for extended statistics and uploads values all at once. The only thing is: data are recorded as part of the same layer (i.e., Layer 1). So, I cheated!
However, I started trying your method. I created a new mapset to use sqlite and copied some vector maps from a mapset where default driver is DBF. I defined SQLITE as the new driver in the new mapset using 'db.connect' (driver=sqlite, database='$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite.db', no flags checked). Then I wanted to use 'v.db.connect' for a vector map but I cannot select table name etc. I also tried just using 'v.db.connect' but I still cannot see anything under Table. So. I am confused about how to define a new driver in a mapset. Thank you again, Bulent On Tue, Jan 3, 2012 at 9:13 PM, Micha Silver <mi...@arava.co.il> wrote: > ** > On 01/03/2012 04:50 PM, Bulent Arikan wrote: > > Dear List, > > I rasterized a centroid and ran 'r.univar', whose extended stats are > saved as a text file. Then, I ran 'v.db.addtable' to create a second layer > in the attribute table of the centroid and I had columns added in this > second layer using 'v.db.addcol'. I want GRASS to upload values from the > text file but I am not sure how to perform this task. > > Is there a shorter way of creating a second layer and uploading values > from the text file or what should I do next so that the columns in the > second layer will be populated using the text file I have? > > > I'm not sure about a shorter way, but here's an option: > First setup your mapset to save attributes to sqlite. > > v.db.connect centroid driver=sqlite database=.... > > Now add the columns which will accept r.univar values to the sqlite table: > > v.db.addcol centroid col="n double, null_cells double, cells double, min > double, max double, range double, mean double, mean_of_abs double, stddev > double, variance double, coeff_var double, sum double" > > Run r.univar on your raster, putting results into a text file > > r.univar your_rast -g > univar.txt > > Now do this loop to update values for the centroid: > > while read l; do \ > col=`echo $l | cut -d= -f1`; val=`echo $l | cut -d= -f2`; \ > sqlite3 sqlite.db "UPDATE centroid SET ${col}=${val} ;"; \ > > done < univar.txt > > Assuming you want to run this for several centroids/areas, you'll probably > want to add a WHERE clause to the UPDATE statement so as to put values for > only one certain row (centroid). > > HTH, Micha > > > Thank you for your time. > > GRASS 6.5 svn on Snow Leopard > > > -- > BÜLENT > > This mail was received via Mail-SeCure System. > > > _______________________________________________ > grass-user mailing > listgrass-user@lists.osgeo.orghttp://lists.osgeo.org/mailman/listinfo/grass-user > > This mail was received via Mail-SeCure System. > > > > > > -- > Micha Silver > GIS Consultant, Arava Development Co.http://www.surfaces.co.il > > -- BÜLENT ARIKAN, PhD Senior Research Fellow Research Center for Anatolian Civilizations Koç University İstiklal Caddesi No: 181 Merkez Han Beyoğlu - ISTANBUL TURKEY 34433 (+ 90) 212-393-6036
_______________________________________________ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user