[GRASSLIST:263] raster to vector conversion

Does grass contain something analogous to ArcScan to facilitate raster
to vector conversion?

Thanks
--
Kirk R. Wythers Department of Forest Resources
Tel: 612.625.2261 University of Minnesota
Fax: 612.625.521 1530 Cleveland Ave. N
Email: kwythers@umn.edu Saint Paul, MN 55108 USA

Hi,

You can use r.poly and r.line or r.thin to do raster
to verctor conversion in Grass.

Regards.

Xueming

On 2003-05-30, 14:38 GMT, Xueming Wu wrote:

You can use r.poly and r.line or r.thin to do raster
to verctor conversion in Grass.

For transformation of plain bitmap to vector (without georeferencing
etc.) you can use autotrace (not part of GRASS).

Matej

--
Matej Cepl,
GPG Finger: 89EF 4BC6 288A BF43 1BAB 25C3 E09F EF25 D964 84AC
138 Highland Ave. #10, Somerville, Ma 02143, (617) 623-1488

On Fri, May 30, 2003 at 11:38:22AM -0500, Kirk R. Wythers wrote:

For transformation of plain bitmap to vector (without georeferencing etc.)

What if the image is georeferenced?

Then you have to make coordinate transformation of xy data. Make brief abstract of [Neteler, Mitasova, 2002, p. 128] the procedure should be probably as follows:

1) Stay in the location with the projection desired (i.e., in your case probably just stay in the original location)
2) Import DXF file (autotrace can produce .dxf files) as xy coordinated
            v.in.dxf -a dxf=vmap.dxf prefix=vmap

   It will generate a series of ASCII vector maps in $LOCATION/dig_ascii
      ls dig_ascii/vmap*
   3) Import one ASCII vector map as binary

   v.in.ascii in=vmap.lines out=vmap_xy

4) Find four well visible points in the map, which may be used as control points. Switch to the imported map region (xy):

   g.region -p vector=vmap_xy
   d.erase
   d.vect vmap_xy

5) Using d.what find xy coordinates of the control points:

   d.what.vect map=vmap_xy

   write them to some file (e.g., ./control_points), just one line for easting and northing.

6) Switch to region of the original raster map (named for example vmap.r):

   g.region rast=vmap.r
   d.erase
   d.rast vmap.r

7) Using d.what.rest get georeferenced coordinates of the control points and write them to the ./control_points file to the other columns:

   d.what.rast map=vmap.r

   The resulting ./control_points file should look like this:

   838.8 244.2 1661701.3 5108172.4
   796.2 192.6 1661643.2 5108204.3
   796.2 91.6 1661543.7 5108181.8
   1110.6 379.0 1661864.4 51O8076.6

8) Make the transofrmation with v.transform (see its manpage for further info) and build its topology:

   v.transform input=vmap.lines output=vmap_trans \
      pointsfile=./control_points
   v.in.ascii input=vmap_trans output=vmap_trans
   v.support vmap_trans

   v.transform prints out RMS (root mean square) error for each ground control point, if these are too big ([Neteler, Mitasova, 2002, p. 130] gives 1.2 to 2.4 meters as an acceptable error for map 1:24,000), you have to find another control points and redo the transformation with new ./control_points file.

9) To verify transformation display two maps in the new maps' region:

   g.region vect=vmap_trans
   d.erase
   d.rast vmap.r
   d.vect vmap_trans col=red

   The result should match.

BTW, PLEASE reply to the list when asking further information not to my personal address. It is selfish (because no one can find an answer in the list's archives) and stupid (because noone can control my answer) to do otherwise.

   Have a nice day,

      Matej

--
Matej Cepl, http://www.ceplovi.cz/matej
GPG Finger: 89EF 4BC6 288A BF43 1BAB 25C3 E09F EF25 D964 84AC
138 Highland Ave. #10, Somerville, Ma 02143, (617) 623-1488
Microwave oven? Whaddya mean, it's a microwave oven? I've been
watching Channel 4 on the thing for two weeks.