On 06/17/2010 12:36 PM, Jenny Turner wrote:
Thanks Micha for your help but I got an error while doing this

1- Create new empty vectorial
2- run v.db.addtable command that you kindly sent me
3- use v.digit as defined previously
4- Inside tcltk's digitizing menu select Digitize new Centroid
5- Leave layer as 1
6- Change Mode to Manual Entry
7- First digitize boundary (by selecting boundary) by selecting points with left-mouse-button and close polygon with right-mouse-button 8- A panel with "FORM" title appears with a tab saying Attributes saying: "New record was created" saying CAT : 1 (this cat refers to the land cover category right?); train_lbl value and GRASSRGB;
9- I place the values (water,1) for train_lbl and GRASSRGB
10- a box ask me for "ASSUME DATA ENCODING AS" a list appears. I should select which one? ASCII? 11- In trhis case I select ASCII and press SUBMIT. In the bottom of that box "Record successfully updated" appeared.
12- Insert centroid-1  and press submit in "Form" panel
13- Did the same for a few more polygons of cat 1
14- Did the same for a few more polygons of cat 2 and 3
15- Pressed Save and Exit

Then I realized that at my v.digit panel command output I had this warning in there:
*Could not set Tcl system encoding to 'ascii' (unknown encoding "ascii")*
*Unable to read vector map*

Questions:
1- Is this the right procedure?
Yes. I'd just add one thing that might make the work easier. You don't need to enter the label and GRASSRGB for each centroid. Just leave them blank. Then, when you're all finished digitizing, you can run an update such as:
echo 'UPDATE vector06 SET train_lbl="Forest" WHERE cat=1' | db.execute
echo 'UPDATE vector06 SET GRASSRGB="0:255:0" WHERE cat=1' | db.execute
(The second line will set the GRASSRGB column to green )

2- What encoding should I use?
Perhaps try Latin1
3- Regarding GRASSRGB field, what information usually you place in there? Color code or color description?
The format is a text string containing three numbers <=255 separated by ':'. So i.e. "128:128:128" is medium gray.
4- For Supervised classification algorithms in GRASS, Vector type (accessible by using Query raster/vector tool) should be Boundary? Because, for instance, if I press a defined boundary, in some places I get Type: AREA and in others: Boundary (as shown bellow)
AFAIK, each of the classification algorithms needs a *raster* map of training areas. So your next step, after finishing the vector map of training areas, will be to convert it to raster. So you'll be doing something like:
v.to.rast vector06 out=train06 use=cat type=area
Now the cat value that will be used for each raster pixels inside a vector area is the cat value of the *centroid*. Again, the boundary in GRASS's topological vector structure is not relevant to the enclosed area's attributes. You can, if you want, give the boundary the same cat value, and same GRASSRGB as the centroid. Then, if you use this column to color the vector when displaying the map, the boundary and the filled area will be in the same color. But for classification, when you convert the vector training areas to raster, what will be used is the *centroid* cat value.

(...)
Map: vector06
Mapset: landsat
Type: Boundary
Id: 9
Layer: 1
Category: 3
Driver: dbf
Database: C:\GRASS6\grassdata/North-Carolina/landsat/dbf/
Table: vector06
Key column: cat
cat : 3
train_lbl : urban
GRASSRGB : 3
(Thu Jun 17 10:34:04 2010) Command finished (0 sec)
(Thu Jun 17 10:34:06 2010)
v.what --q -a map=vecto...@landsat east_north=639279.744997,227730.071998
(...)
Map: vector06
Mapset: landsat
Type: Area
Sq Meters: 2158429.741
Hectares: 215.843
Acres: 533.360
Sq Miles: 0.8334
Layer: 1
Category: 3
Driver: dbf
Database: C:\GRASS6\grassdata/North-Carolina/landsat/dbf/
Table: vector06
Key column: cat
cat : 3
train_lbl : urban
GRASSRGB : 3

Thanks for your help and support

Jenny



On Wed, Jun 16, 2010 at 7:59 PM, Micha Silver <mi...@arava.co.il <mailto:mi...@arava.co.il>> wrote:

    On 06/16/2010 06:55 PM, Jenny Turner wrote:
    Hi Micha and GRASS-users/list

    Let me see if I get this straight
    1- use v.digit (e.g. v.digit -n map=vector00 bgcmd=d.rast
    map=lsat5_1987_40 )
    2- Inside tcltk's digitizing menu select Digitize new Centroid
    3- Leave layer as 1?
    4- Change Mode to Manual Entry?
    All the above looks good.

    5- And for each Centroid I select a Cat right?
    Yes, always using the *same* cat for training areas of the same type.
    (Is this the proceeding?)

    About this, I have two questions:
    a- I have to leave "Insert New record into table" checked right?
    Yes

    b- After I left "Insert New record into table" checked, Layer 1
    and Cat 1 and Mode: Manual Entry, when I presss in the image a
    Error Window appeared stating: Database table for this layer is
    not defined. Where shall i define the database table for a new
    vectorial that I digitizing?
    Ah, v.db.addtable vector00 col="train_lbl varchar(16), GRASSRGB
    varchar(16)"
    THis should setup an attrib table with two columns, one for a
    label and one for an RGB color for the training area.

    c- When I press the image a point is created but how can I define
    the boundaries of the centroid?
    First digitize the boundary. Here you need not enter any
    attributes. The cat values are also not relevant.
    NExt digitize a centroid inside each boundary. Give each centroid
    a cat value that matches the type of training area. So all the
    forests will be i.e cat=1, and all the urban will be i.e cat=10, etc.



    Thanks
    Jenny


    On Wed, Jun 9, 2010 at 7:06 PM, Micha Silver <mi...@arava.co.il
    <mailto:mi...@arava.co.il>> wrote:

        polygon to a certain category?
        This indeed is not obvious. What I've done is change the
        category mode from "Next not used" to "Manual entry". This is
        set in the lower part of the v.digit window (in tcltk
        interface). Now each time you digitize a *centroid* for a
        training area, set its cat value to some standard value you
        choose. For example, you might decide:
        train_area        cat
        ------------------------
        forest             1
        agriculture        2
        urban              9
        water             10
        ....

        Now for each training polygon which is a forest, set the cat
        value of its centroid to 1, agri areas will get value 2, and
        so on for all the centroids of all the training polygons.
        (Note that the cat values for the boundary lines are pretty
        much irrelevant in GRASS's vector model).

        When you're done digitizing training areas, you might add
        another column or two to the attrib table for the training
        areas -
        v.db.addcol train_areas col="train_label varchar(16),
        RGBCOLOR varchar(16)"
        then give each centroid cat value a suitable label and an RGB
        color combo, etc.  Makes life easier down the line...


        This mail was received via Mail-SeCure System.


        _______________________________________________
        grass-user mailing list
        grass-user@lists.osgeo.org  <mailto:grass-user@lists.osgeo.org>
        http://lists.osgeo.org/mailman/listinfo/grass-user

        This mail was received via Mail-SeCure System.




-- Micha Silver
        Arava Development Co. +972-52-3665918
        http://www.surfaces.co.il




    This mail was received via Mail-SeCure System.


    -- Micha Silver Arava Development Co. +972-52-3665918
    http://surfaces.co.il



This mail was received via Mail-SeCure System.


--
Micha Silver
Arava Development Co. +972-52-3665918
http://surfaces.co.il


_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user

Reply via email to