Skip to main content
Question

Using FME to create a Polygon datasets froma Point dataset

  • February 22, 2016
  • 8 replies
  • 87 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 ?

8 replies

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

Yes, I can.


geosander
Forum|alt.badge.img+7
  • February 22, 2016
geosander wrote:

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
  • 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
Contributor
Forum|alt.badge.img+19
  • Contributor
  • 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
  • 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
  • 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.


takashi wrote:

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
Contributor
Forum|alt.badge.img+19
  • Contributor
  • April 21, 2018
takashi wrote:

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

 


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings