[GRASS-user] multiple polygons with same cat
Markus Metz
markus.metz.giswork at gmail.com
Tue Nov 26 06:21:00 PST 2013
On Tue, Nov 26, 2013 at 2:43 PM, Dave Roberts
<dvrbts at ecology.msu.montana.edu> wrote:
> Thanks Markus. This has me on the right track, but I haven't gotten it all
> to work yet.
>
>
> v.category map=geo type=centroid op=add layer=2
>
> refused to work without a new output map, so
ah, right.
>
> v.category inp=geo out=new_geo op=add layer=2
you need to add the option type=centroid, see above, otherwise the
results might be unexpected.
>
> produced a new vector map where the cats are unique for each polygon.
>
> doing d.what.vect new_geo shows the old data in layer 1 and the new data in
> layer 2
>
> Curiously, there are now 3938 polygons (instead of 1082).
That can be a side-effect of not using type=centroid with v.category.
Additionally, boundaries have now also categories, leading to a much
larger attribute table. I would suggest to run
v.category inp=geo type=centroid out=new_geo op=add layer=2 --o
followed by
v.category inp=geo op=report
to see what happened.
HTH,
Markus M
> If I do a
> v.db.connect to a table in Postgres and then v.to.db move over the cat and
> coor data psql shows that the first 2725 records are null (except for cat)
> and the X,Y coordinates start at cat 2726, giving me 1212 polygons with real
> data.
>
> I could maybe delete the first 2726 records and join this new table to
> the one with the stratigraphy data on the X and Y coordinates, but doing
> exact equality on floating point numbers is madness.
>
> Any ideas?
>
> Thanks, Dave
>
>
> On 11/26/2013 02:25 AM, Markus Metz wrote:
>>
>> On Tue, Nov 26, 2013 at 3:39 AM, Dave Roberts
>> <dvrbts at ecology.msu.montana.edu> wrote:
>>>
>>> Friends,
>>>
>>> I'm not exactly a newbie, but still yet quite naive in GRASS. This
>>> seems
>>> like a simple problem, but I suspect unforeseen problems with the simple
>>> solution.
>>>
>>> I have imported a surficial geology map from a shapefile. There are
>>> 1082
>>> polygons. Each of the polygons with the same surficial geology (e.g Agn,
>>> Archean gneiss) has the same cat (i.e. there are 29 polygons with cat=3).
>>> I
>>> would like to add several columns to this table (e.g. geologic era and
>>> primary lithology (e.g. granite vs limestone)).
>>>
>>> I normally associate all vector maps with a table in PostgreSQL using
>>> cat
>>> as the primary key (i.e. v.db.connect -o key=cat), but that clearly won't
>>> work here. I could rename the column 'cat' in the DBF file, and add a
>>> new
>>> column with values 1-1082 as cat.
>>
>>
>> That does not work because the geometries don't get new categories.
>>
>>> If I save that as a new DBF file in a new
>>> shapefile directory, when I re-import with v.in.ogr will it necessarily
>>> get
>>> it right? I.e, will GRASS associate the vertices the first polygon in
>>> the
>>> shapefile with the first row in the DBF file? I only ask because
>>> PostgreSQl
>>> (like most DBMSs) does not guarantee the records to be in any specific
>>> order, and perhaps shapefiles don't either?
>>
>>
>> Shapefiles (using DBF) require the records in a specific order. GRASS
>> vectors do not require records to be in a specific order, they link
>> geometries to the appropriate record with the key column.
>>>
>>>
>>> Is there a simple way to renumber the polygons 1 through 1082 that
>>> maintains integrity and allows me to connect the vector coverage to
>>> PostgreSQL instead of DBF?
>>
>>
>> v.category map=geo type=centroid op=add layer=2
>>
>> That will create a new layer where each area has a unique category.
>> The original layer where several areas share the same category is
>> preserved. You can add a new table to this layer with v.db.addtable
>> layer=2. Then you can transfer attributes from one layer to another
>> with v.to.db.
>>
>> HTH,
>>
>> Markus M
>>
>
> --
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> David W. Roberts office 406-994-4548
> Professor and Head FAX 406-994-3190
> Department of Ecology email droberts at montana.edu
> Montana State University
> Bozeman, MT 59717-3460
More information about the grass-user
mailing list