[GRASS-user] Transforming raster lines to vectors with correct segment attributes

Johannes Radinger johannesradinger at gmail.com
Mon Feb 3 02:48:13 PST 2014

Hi Moritz,
hi all,

sorry for my late response. I can now provide an example using the NC
First I needed to generate data (rasterized line/river) similar to the data
input I am using.
So I transformed the streams vector into a raster using the attribute
column FCODE as
value for the raster (v.to.rast input=streams at PERMANENT output=r_streams
Thereafter I thinned the raster (r.thin
input=r_streams at PERMANENToutput=r_streams_thin). The
output corresponds to a map similar to my original map I am using.

Now I wanted to (back-)transform the raster map back to lines where the
resulting line segments should
correspond to the segments visible in the raster map
(r.to.vect input=r_streams_thin at PERMANENT output=v_r_streams_thin
feature=line). However, lines
are broken only where different lines join.

I attached a screenshot that illustrates my task. You can see the raster
map with three
different segments (two different values) for that single tribuatry
(indicated by blue-yellow-blow).
However when the raster gets transformed into a line this information gets
lost, as lines
are not broken where a new raster value starts. Any suggestions how to
solve such
a task?


On Tue, Jan 28, 2014 at 9:31 AM, Moritz Lennert <
mlennert at club.worldonline.be> wrote:

> On 27/01/14 11:27, Johannes Radinger wrote:
>> Hi,
>> I have a raster river (processed with r.thin) which I want to transfrom
>> to a vector.
>> Therefore I use r.to.vect with the lines option. However, the raster has
>> two different
>> values representing e.g. habitat quality (good/bad) for single segments
>> (group of raster cells). This information is written strangely to the
>> vector attribute table as the lines
>> are not broken at changes of habitat quality which is a reasonable
>> behaviour of r.to.vect.
>> As I need the attributes in my vector table I thought about splitting
>> the vector into
>> small segments (<raster resolution) and updating the attribute table
>> with v.what.rast. However when I use v.split the attribute table of the
>> created map still has the same number of entries than before. So what do
>> I miss here to get single rows and thus categories for the single
>> created lines from v.split?
>> Or is there any other/better way for such transformation of raster lines
>> to vector lines incl. an update of the attribute table?
> I'm not sure I totally understand your problem (an example with the NC
> data would probably help), but have you tried the '-v' flag (Use raster
> values as categories instead of unique sequence) of r.to.vect ?
> Moritz
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20140203/4edbb216/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: screenshot_rtovect.png
Type: image/png
Size: 55214 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20140203/4edbb216/attachment-0001.png>

More information about the grass-user mailing list