Question

area from lines problem


Badge

Hi everyone, i have drawn lines to split areas into new areas. I use a chopper to drop the areas and an extenter to extend all lines (to delete gaps) then i use an intersector to cut of the lines with each other.

finaly i use an areabuilder to create all areas.

But not all areas are created the right why . (green lines are the lines i have drawn)

 

is there a solution to this problem. (i have allso used an anchorsnapper same results)


18 replies

Badge +22

We would need an actual sample of the data to test.

Badge +3

@robert_punt

A standard procedure.

If the topology is correct, it should create areas.

So there must be gaps. (most obvious thing to surmise)

Mostly this is solved by using a snapper, endpoint mode. Then a intersector. Then areabuilder.

Yes, data sample is required. Pref. the displayed area.

Badge

@robert_punt

A standard procedure.

If the topology is correct, it should create areas.

So there must be gaps. (most obvious thing to surmise)

Mostly this is solved by using a snapper, endpoint mode. Then a intersector. Then areabuilder.

Yes, data sample is required. Pref. the displayed area.

@gio, thanks for your comment. as i mentioned, i have used the anchorsnapper but it has the same result. i think i can use the topology builder if the topology is right.(good tip)

the source data is cad file and de coordinates were the lines intersect are the same. but at milimeter accuracy.

Badge

here is the data sample.

1 ffs (zipped) file with the areas (origine is the oracle database)

1 dgn file with the centroides and linestemp_parking_lines.dgnarea.zip

Badge

This is the script i use.

Badge +3

@robert_punt

 

Hi Robert.

Here is a workspace. It's small as need be.

RPUNT_Areabuilding.fmw

 

1 On the (drawn)lines u you must use 1 snapper Endpoint, then one snapper segmentsnapping.

2 Coerce areas to lines.

3 Feed all to a anchor snapper with areas lines as anchor. Use segmentsnapping.

4 Then intersector and then areabuilder.

 

Easy peasy! :)

 

Badge +3

@robert_punt

Hoi Robert,

 

Ik forgot to filter the areas.

Hierbij another workbench.

RPUNT_Areabuilding.fmw

 

Greets,

Gio

Badge

@robert_punt

Hoi Robert,

 

Ik forgot to filter the areas.

Hierbij another workbench.

RPUNT_Areabuilding.fmw

 

Greets,

Gio

@gio thanks. the filtering isn't a problem :-). but i am still working on the script with your tips. i will let you know what my findings are.

Badge +3

@robert_punt

Hoi Robert,

 

Ik forgot to filter the areas.

Hierbij another workbench.

RPUNT_Areabuilding.fmw

 

Greets,

Gio

@robert_punt

 

Ok.

Findings?

The script does exactly what is required at as little transformers as can be.

No mystery there, right?

 

You did manage to download the scripts I assume?

 

Greets.

Badge

Well i have created a new workbench in fme 2016 but the results aren't great.

Userlevel 2
Badge +17

I was able to create areas from your sample datasets, applying your approach - Extender, Intersector, AreaBuilder. See the attached workspace example: igds_ffs2none.fmwt (FME 2016.1.3)

Badge

I was able to create areas from your sample datasets, applying your approach - Extender, Intersector, AreaBuilder. See the attached workspace example: igds_ffs2none.fmwt (FME 2016.1.3)

maybe i should write from oracle to ffs.and then use it in the workbench. Or could it be a local problem?

Badge +3

Well i have created a new workbench in fme 2016 but the results aren't great.

The result of the wb I posted is correct:

Badge +3

Well i have created a new workbench in fme 2016 but the results aren't great.

@robert_punt

Hi.

 

The result seem good. Your testing with a centerpoint is flawed.

 

Remove the Chopper. It has no function and just slows down things.

 

Use an AreOnAreaOverlayer instead of the PointOnAreaOverlayer (where you use centerpoints form the areas). Because not all of the newly built objects wil a have centerpoint (save 1 = engels voor "op 1 na")

Therefore it will not match all required objects, as you clearly noticed yourself.

Test for overlaps >1 after the AoA overlayer.

That is what i did in the last workbench I posted and results in the pic I just posted.

 

 

Does fme 2016 have a AtributeManager?? Have not used it in a while so I did or do not know.

Badge

hi everybody here is the complete workbench with all data. there are still 9 areas that aren't created correctly dgnv82none.fmwt

Badge +3

@robert_punt

 

Hi Robert.

The workspace i posted works fine.

I have restructured your workspace and it results in same ws i posted before.

RPUNT_bu.fmw

I have no fme 2016 available atm. so i also added a picture of workspace.

 

One thing you missed is that you'll want to coerce the polygon.

Also you use too low tolerance settings in your snappers. The drawn lines are not drawn accurately, so you need a higher tolerance.

I also entered a topologybuilder after the intersector, there were too many faulty lines.

 

You also have lines where there are no areas to split.

 

Your testing using PointOnLineOverlayer is not usefull. Mainly because you have no Centerpoints for the newly created objects nor for the spliced objects.

As i suggested earlier, you should use a AreaOnAreOverlayer.

At the end i added a spatialrelator to check if there were still faulty lines.

 

 

Result:

I see no flaws.

All areas are split by the lines.

 

Apart of caourse where there is no input WGD area (see solitary green lines):

 

Alos you do not need to check the INcomplete from the areabuilder; those are all overshoots (lines with only one side connected to the WGD boundaries) because you extended the lines at some fixed distance.

Badge

@robert_punt

 

Hi Robert.

The workspace i posted works fine.

I have restructured your workspace and it results in same ws i posted before.

RPUNT_bu.fmw

I have no fme 2016 available atm. so i also added a picture of workspace.

 

One thing you missed is that you'll want to coerce the polygon.

Also you use too low tolerance settings in your snappers. The drawn lines are not drawn accurately, so you need a higher tolerance.

I also entered a topologybuilder after the intersector, there were too many faulty lines.

 

You also have lines where there are no areas to split.

 

Your testing using PointOnLineOverlayer is not usefull. Mainly because you have no Centerpoints for the newly created objects nor for the spliced objects.

As i suggested earlier, you should use a AreaOnAreOverlayer.

At the end i added a spatialrelator to check if there were still faulty lines.

 

 

Result:

I see no flaws.

All areas are split by the lines.

 

Apart of caourse where there is no input WGD area (see solitary green lines):

 

Alos you do not need to check the INcomplete from the areabuilder; those are all overshoots (lines with only one side connected to the WGD boundaries) because you extended the lines at some fixed distance.

Sadly your workbench has allmost the same results as mine. som area's aren't created properly or some line i created aren't used at all.you can check it if you use the centro's and filter igds_text_string = 'eigen'. alle centros has to be used and not one area has to have multiple centro's.

Badge +3

@robert_punt

 

Hi,

 

I thought i posted a new one. (apperantly not, or probaly uploaded to wrong forum topic..)

 

I added some, and changed some paramater values.

It now catches all drawing errors. Except a couple were the tolerances would have to be set way too high.

 

The workbench shows wich are not created. At those locations you miss helperlines.

 

RPUNT_bu_.fmw

 

Reply