Hi Markus:
Again, many thanks for the detailed explanation.
I am using your suggestion: v.db.connect -o to overwrite and connect
the r.streams.order table to the streams vector thru layer 1,
overwriting the original connection. Works fine.
I guess if I had used layer=3 from the start it would also work correctly?
BTW: I missed the section you quoted from the man page, because I got no
man page when compiling the extensions. The error was:
sudo make MODULE_TOPDIR=/usr/local/grass-6.4.2/
GRASS_PERL=/usr/bin/perl VERSION_NUMBER=6.4.2 sh
/usr/local/grass-6.4.2//tools/g.html2man
/usr/local/grass-6.4.2/docs/html/r.stream.extract.html
/usr/local/grass-6.4.2/man/man1/r.stream.extract.1 1
/usr/local/grass-6.4.2//tools/g.html2man:
/usr/local/grass-6.4.2//tools/g.html2man: is a directory
make[2]: *** [/usr/local/grass-6.4.2/man/man1/r.stream.extract.1] Error 126
make[2]: Leaving directory
`/home/micha/Downloads/grass-addons/r.stream.extract'
make[1]: *** [mancmd] Error 2
make[1]: Leaving directory
`/home/micha/Downloads/grass-addons/r.stream.extract'
make: *** [cmd] Error 2
The g.html2man perl script is *under a directory* also called
g.html2man. Is that correct? Do I need to change something in the addon
Makefile?
Cheers,
Micha
On 09/02/2012 03:33 PM, Markus Metz wrote:
On Wed, Aug 29, 2012 at 1:28 PM, Micha Silver wrote:
Hi Markus,
Thanks for responding. I still can't seem to get this to work.
Here are my steps:
r.stream.extract elev=dtm thresh=50 stream_rast=stream_500
stream_vect=stream_500 dir=fdir_500
r.stream.order stream=stream_500 dir=fdir_500 table=stream_order
v.db.connect map=stream_500 driv=sqlite table=stream_order key=cat layer=2
Here I get:
The table is now part of vector map and may be
deleted or overwritten by GRASS modules
DBMI-SQLite driver error:
Cannot create index:
create unique index stream_order_cat on stream_order ( cat )
index stream_order_cat already exists
WARNING: Cannot create index
Select privileges were granted on the table
Next:
v.category stream_500 opt=report layer=2
Layer/table: 1/stream_500
type countminmax
point248 1237
line 237 1237
boundary 0 0 0
centroid 0 0 0
area 0 0 0
all 485 1237
Layer/table: 2/stream_order
type countminmax
point248 0 2
line 237 0 1
boundary 0 0 0
centroid 0 0 0
area 0 0 0
all 485 0 2
Why in layer 2 are there only 2 cat values?
Because
"In layer 1, categories are unique IDs,
identical to the cell value of the raster output. The attribute table
for layer 1 holds information about the type of stream segment: start
segment, or intermediate segment with tributaries. Columns are cat int,
stream_type varchar(), type_code int. The encoding for type_code is 0 =
start, 1 = intermediate. In layer 2, categories are identical to
type_code in layer 1 with additional category 2 = outlet for outlet
points. Points with category 1 = intermediate in layer 2 are at the
location of confluences."
Shouldn't I get all the cats as
in layer 1 when I use "key=cat" in the v.db.connect??
No, v.db.connect connects a table to a vector layer. It does not
modify the vector layer.
Do I need to delete
and recreate the cats in layer 2 ?
No. Simply connect the table to layer 1, this should give you the
desired result.
And finally, the export:
GRASS 6.4.2 (ITM):~/GIS/DEM/LIDAR_EinYahav> v.out.ogr -c -e stream_500
type=line dsn=stream_500.shp layer=2
WARNING: 248 point(s) found, but not requested to be exported. Verify
'type' parameter.
Exporting 485 geometries...
WARNING: 124 features without attributes were written
v.out.ogr complete. 237 features written to (ESRI_Shapefile).
Why am I getting 485 geometries?
This is probably a bogus message. There are a total of 485 geometries
in the vector, 248 points and 237 lines. As the last message of
v.out.ogr says, 237 features were written.
and why are 124 with no attributes?
Because you exported layer 2, where cat=0 is a valid cat, but the
table you attached to layer 2 does not have an entry for cat=0.
Markus M
On 08/28/2012 11:15 PM, Markus Metz wrote:
On Tue, Aug 28, 2012 at 9:05 PM, Micha Silver wrote:
A few more details regarding v.out.ogr when layer=2
I see this ticket, possibly similar:
http://trac.osgeo.org/grass/ticket/991
I tried to export to PostGIS, and again, all attribute fields are created
but all values are NULL. I also tried with the layer 2 database as a dbf
file, instead of sqlite. Same result.
This was all with GRASS 6.4.2 on scientific linux 6
What does v.category op=report say? Are there any categories in layer
2? If not, there is nothing to export.
Markus M
Thanks,
Micha
On 08/28/2012 02