[GRASS-user] r.stream.order export to shapefile
Micha Silver
micha at arava.co.il
Wed Aug 29 04:28:11 PDT 2012
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=500000 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 <stream_order> is now part of vector map <stream_500> 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 count min max
point 248 1 237
line 237 1 237
boundary 0 0 0
centroid 0 0 0
area 0 0 0
all 485 1 237
Layer/table: 2/stream_order
type count min max
point 248 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? Shouldn't I get all the cats
as in layer 1 when I use "key=cat" in the v.db.connect?? Do I need to
delete and recreate the cats in layer 2 ?
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 <stream_500> (ESRI_Shapefile).
Why am I getting 485 geometries? and why are 124 with no attributes?
Many thanks,
Micha
On 08/28/2012 11:15 PM, Markus Metz wrote:
> On Tue, Aug 28, 2012 at 9:05 PM, Micha Silver<micha at arava.co.il> 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:57 PM, Micha Silver wrote:
>>
>> I'm having two problems when exporting the output of r.stream.order to a
>> shapefile.
>> I have attached the created table (saved in my setup in sqlite) to the
>> 'streams' map thru layer 2. Then
>> v.db.select streams layer=2
>> shows all the details of strahler order, prev_str, etc.
>>
>>
>> First problem: When I try to do v.out.ogr, the column header named
>> "next_stream" fails because it's 10 characters long, too long for a
>> shapefile dbf. As a result all attributes are missing. Here's a patch to
>> io.c in r.stream.order I put in place to correct this:
>>
>> [micha at SL6 r.stream.order]$ diff -u io.c.orig io.c
>> --- io.c.orig 2012-08-28 12:21:46.020275045 +0300
>> +++ io.c 2012-08-28 12:22:17.951382882 +0300
>> @@ -292,7 +292,7 @@
>> /* table definition */
>> char *tab_cat_col_name = "cat integer";
>> char *tab_stream = "stream integer";
>> - char *tab_next_stream = "next_stream integer";
>> + char *tab_next_stream = "next_str integer";
>> char *tab_prev_streams;
>> char *tab_strahler = "strahler integer";
>> char *tab_horton = "horton integer";
>> @@ -300,7 +300,7 @@
>> char *tab_hack = "hack integer";
>> char *tab_length = "length double precision";
>> char *tab_cumlength = "cum_length double precision";
>> - char *tab_stright = "stright double precision";
>> + char *tab_stright = "straight double precision";
>> char *tab_fractal = "fractal double precision";
>> char *tab_distance = "out_dist double precision";
>> char *tab_topo_dim = "topo_dim integer";
>>
>> (Also corrects a small typo in the column name "stright")
>>
>> After recompiling, then rerunning the r.stream.order addon, the sqlite table
>> now has all column headers<= 10 characters suitable to shapefile.
>>
>>
>> Problem 2, where I'm stuck. I export the vector map using :
>> v.out.ogr streams layer=2 dsn=streams.shp
>> The process finishes OK, and the shape is created with all attrib columns,
>> but *all* values are NULL (including the cat). Any ideas what I've done
>> wrong?
>>
>> Thanks,
>> Micha
>>
>>
>> This mail was received via Mail-SeCure System.
>>
>>
>> _______________________________________________
>> grass-user mailing list
>> grass-user at lists.osgeo.org
>> http://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
>>
>>
>> _______________________________________________
>> grass-user mailing list
>> grass-user at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/grass-user
>>
> This mail was received via Mail-SeCure System.
>
>
More information about the grass-user
mailing list