Solved

Tin Generator

  • 24 January 2018
  • 8 replies
  • 26 views

Badge

Hi,

I've an issue regarding the TinGenerator transformer. I have this error :

ERROR |Surface Model: Infinite loop detected while optimizing model.

ERROR | If there are input BREAKLINES, please first re-connect input to POINTS/LINES. 2018-01-24 ERROR | If this re-connection gets rid of the problem, please restore the connection tERROR | BREAKLINES, find the breaklines that caused the problem, then email support@safe.com.

Breaklines may cause trouble if they are self-intersecting, overlapping, or topologically incorrect.

ERROR |TINGenerator(SurfaceModelFactory): Fail to obtain the 'DRAPED_FEATURES' from the underlying Surface Model

ERROR |Error encountered by the SurfaceModelFactory.

TINGenerator(SurfaceModelFactory): A fatal error has occurred.

It seems there is a problem with the breaklines. How can I solve this problem ? Any test to run ?

Thank you in advance fpr your ideas.

Fabien

icon

Best answer by whkarto 24 January 2018, 13:28

View original

8 replies

Userlevel 3
Badge +17
It's hard to find what happened with no information how you are using the TINGenerator on what kind of source data. Ideally, if you could post a minimal data and workspace example that reproduce the same error, it would help us to understand the situation correctly.

 

 

Badge +11

Hi Fabien,

I know this error with breaklines quite well. In fact you'll have to ensure that your breaklines are topologically correct. Therefore make sure you don't have any intersecting or even touching breaklines in 2D. To ensure this you could use a coulpe of transformers like TopologyBuilder, Clipper, Intersector etc. Be aware that some of these transformers might harm your Z values during cleaning, So keep an eye on your results.

Another way to deal with this issue is to route the breaklines to the Points/Lines port. Surely this is only applicaple if you don't have to force your TIN over the given lines.

Badge
It's hard to find what happened with no information how you are using the TINGenerator on what kind of source data. Ideally, if you could post a minimal data and workspace example that reproduce the same error, it would help us to understand the situation correctly.

 

 

terrain.zip

 

 

Thanks @Takashi. I have 2 large datasets (points cloud + breaklines) for the whole city. Here is an extract that poses problem.

 

Badge
terrain.zip

 

 

Thanks @Takashi. I have 2 large datasets (points cloud + breaklines) for the whole city. Here is an extract that poses problem.

 

it actually works with these breaking lines. In the initial workbench I use a FeatureReader to only read the data from the area I want to extract. Checking at the moment the differences between the 2 datasets... I gonna have a look to @whkarto method as well for the topology.

 

 

Badge

Well, I though the subject was closed, but actually I found another area where I have the same error.

I tried topologybuilder,geometryfilter,intersector.. nothing works and I can't find where is the issue in my breaklines...

I use the TinGenerator with the points/lines port with the point cloud and the breaklines in the breaklines port. It works fine with breaklines and the point cloud in the same the points!/lines port but then the lines aren't used as brealklines...

If you guys have any ideas? you are are than welcome :-)

xyz.csv

lignes-extrait.zip

Userlevel 4
Badge +18

I also had much trouble finding the cause of the transformer (ContourGenerator) not working. And because my data was changing 2 times a day, what could fix an error in one place but create an error at another place I had to find a way to work around.

What didn't help is that when the transformer stops there is no data output at all.

What I did to fix the problem is create a workbench that cuts the area into pieces with a Tiler. Then save the pieces to disk. After that create a workbench that creates a tin for a single piece. And use a WorkspaceRunner to start this workbench piece by piece.

Then you know what area to look for the errors.

Badge +3

@flaganne

Hi.

Use a Hullaccumulator on the lines (concave yields better results). Coerce this to a line (GeometryCoercer)

(optionally; to get even better results, extend objects at boundaries to cross the hull-lines. This requires some additional fiddling though)

Intersect this together with the lines.

Use a snapper on the intersector result (I had it at 0.1) Then a line combiner.

Now they are fit to be used as Break lines.

Though, if the lines are generated from polygons, you might want to use the boundaries of those.

You r dxf has no data to reconnect the lines properly it seems.

Badge

@flaganne

Hi.

Use a Hullaccumulator on the lines (concave yields better results). Coerce this to a line (GeometryCoercer)

(optionally; to get even better results, extend objects at boundaries to cross the hull-lines. This requires some additional fiddling though)

Intersect this together with the lines.

Use a snapper on the intersector result (I had it at 0.1) Then a line combiner.

Now they are fit to be used as Break lines.

Though, if the lines are generated from polygons, you might want to use the boundaries of those.

You r dxf has no data to reconnect the lines properly it seems.

It works on the dataset I sent, but when I enlarge my area of extraction (the workbench is design to extract a 3D scene from the whole city), I still have the same problem. I have it too on other area radomly, I don't really understand...

 

 

Reply