Skip to main content
Question

Using FME to create a Polygon datasets froma Point dataset

  • February 22, 2016
  • 8 replies
  • 110 views

I have a point dataset in Oracle and want to convert it using FME to a polygon dataset.Can anyone let me know how this can be done using FME ?

This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

8 replies

geosander
Forum|alt.badge.img+7
  • 327 replies
  • February 22, 2016

Yes, I can.


geosander
Forum|alt.badge.img+7
  • 327 replies
  • February 22, 2016

Yes, I can.

But seriously though: try to be more specific and I'm sure that someone will help you. Do you need to connect points to form polygons? Do they need to be grouped based on proximity and then turned into a convex/concave hull? Do the points have useful attributes?


  • Author
  • 1 reply
  • February 22, 2016

Currently the point dataset is held in Oracle and has the SDO_POINT_TYPE attribute , What i want to do is export this as a point data set initially and then transform into a polygon dataset. The grouping should be based on proximity of the point and turned into a convex hull. What is also important is to extract the useful attributes from the points also. hope that helps


takashi
Celebrity
  • 7843 replies
  • February 22, 2016

Hi, if a group of points represents the vertices of a polygon boundary, the PointConnector can be used to create the boundary line. Then, you can use the LineCloser to transform the boundary into a polygon.


geosander
Forum|alt.badge.img+7
  • 327 replies
  • February 22, 2016

In that case, you can use the NeighborhoodAggregator, followed by a HullReplacer.

 

The attributes you specify for the Group By clause in the NeighborhoodAggregator will also be persisted. Unfortunately, the NeighborhoodAggregator does not have a list attribute option, so if you want to keep additional attributes, you would need to figure something out (e.g. use a Counter to distinct the neighborhoods, deaggregate everything and then perform a spatial join with the original points to get the other attributes, then use the Aggregator with the count attribute as a Group By clause and specify a list attribute).

gio
Contributor
Forum|alt.badge.img+15
  • Contributor
  • 2252 replies
  • February 22, 2016

I did this by doing a iterative network building.

1. Find closest neighbour, using Neighbourfinder in "Candidates only" mode)

2. Create lines form these (using closest canditae_X and Y).

3. Then create a topology of these (TopologyBuilder ) followed by a NetworkTopology builder. This will give you the number of separate networks and their network_id (connected points).

4. Repeat this till there are no more points within your set distance. This should result in a collection of networks that are not within your set distance of eachother.

The Repeat bit is a bit tricky: u need to have the neighbourfinder only look at different networks. This means that after neighbourfinder you need to test if the list containes elements of other network and filter these. etc.

5. This then you can hullaccumulate grouped by network_id.

see pic. (based on near

est points)

I have another solution, wich connects the points totaly different, creates less boxtype shapes.


  • 1 reply
  • April 21, 2018

Hi, if a group of points represents the vertices of a polygon boundary, the PointConnector can be used to create the boundary line. Then, you can use the LineCloser to transform the boundary into a polygon.

 

But how do you sort the point connector (points), my output does not close my line as it is zig-zagged because my vertexes need to be ordered around the polygon! What's the easiest way to reorder the vertex points (I've tried counter then sorter).

 

 

Thank you!

 


takashi
Celebrity
  • 7843 replies
  • April 21, 2018

Hi, if a group of points represents the vertices of a polygon boundary, the PointConnector can be used to create the boundary line. Then, you can use the LineCloser to transform the boundary into a polygon.

Hi @logancohrs, in some special cases, the HullAccumulator (convex or concave hull) might help you. Otherwise, it's hard to find a solution perfectly automated unless you can find any regularity on attributes and/or geometry which can be used to reorder the points appropriately. See the discuss in this thread: build polygon from point