Skip to main content
Solved

Tin Generator

  • January 24, 2018
  • 8 replies
  • 101 views

Forum|alt.badge.img

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

Best answer by whkarto

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.

View original
Did this help you find an answer to your question?

8 replies

takashi
Influencer
  • January 24, 2018
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.

 

 


whkarto
Contributor
Forum|alt.badge.img+14
  • Contributor
  • Best Answer
  • January 24, 2018

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.


Forum|alt.badge.img
  • Author
  • January 24, 2018
takashi wrote:
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.

 


Forum|alt.badge.img
  • Author
  • January 24, 2018
flaganne wrote:
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.

 

 


Forum|alt.badge.img
  • Author
  • September 4, 2018

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


jkr_wrk
Influencer
Forum|alt.badge.img+28
  • September 5, 2018

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.


gio
Contributor
Forum|alt.badge.img+15
  • Contributor
  • September 5, 2018

@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.


Forum|alt.badge.img
  • Author
  • September 7, 2018
gio wrote:

@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...

 

 


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