[GRASS-dev] problem with creating areas from set of points with specific category

Hi,

my problem is - I have polygons defined as a set of coordinates with assigned categories and I want to create vector areas where the centroid would have that category. I don’t want to use PyGRASS because of ctypes. I wanted to write an ascii file (ascii vector format) but it allows me to write only boundaries and centroids (not areas). But I don’t have centroids. So I can write boundaries and then use v.centroids afterwards but I don’t know how to specify the correct category values for those new centroids. There doesn’t seem to be any way to transfer categories from boundaries to centroids. So, am I missing something? Why vector ascii format doesn’t support areas? Would it be difficult to add it?

Thanks,

Anna

On 05/11/14 22:00, Anna Petrášová wrote:

Hi,

my problem is - I have polygons defined as a set of coordinates with
assigned categories and I want to create vector areas where the centroid
would have that category. I don't want to use PyGRASS because of ctypes.
I wanted to write an ascii file (ascii vector format) but it allows me
to write only boundaries and centroids (not areas). But I don't have
centroids. So I can write boundaries and then use v.centroids afterwards
but I don't know how to specify the correct category values for those
new centroids.

You could try something like this:

- Import your boundaries with the correct cat values
- Create a table linked to your new centroids
- Add a cat2 column
- Use v.distance to get for each centroid the cat value of the closest boundary and load it into cat2
- Use v.reclass to make cat2 into the actual cat values of the centroids
- Erase the cat values of the boundaries

There doesn't seem to be any way to transfer categories
from boundaries to centroids. So, am I missing something? Why vector
ascii format doesn't support areas?

Because GRASS uses a topological vector format and areas do not exist as such in that format. But I can understand that it would be nice to have an easy way. If your polygons are not too complex you can always try the simple average of the x and y coordinates of your points as coordinates for a centroid, but you might have situations where these mean coordinates do not lie within the polygon.

Would it be difficult to add it?

No idea. At the very least, scripting the above process should be possible...if it works :wink:

Moritz

Thanks,

Anna

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