Solved

How to apply the following formula on PointClouds?


Y

((@YValue()/0.999604)-5447183.654)-(((@XValue()/0.999604)-482902.876)*0.000039706)

 

X

((@XValue()/0.999604)-482902.876)+(((@YValue()/0.999604)-5447183.654)*0.000039706)

 

Thanks

 

icon

Best answer by nielsgerrits 28 April 2021, 15:08

View original

8 replies

Userlevel 6
Badge +33

You are probably looking for the PointCloudExpressionEvaluator.

You are probably looking for the PointCloudExpressionEvaluator.

Hello and thank you for the reply.

Here's my setup in the  PointCloudExpressionEvaluator:

Output is a LAS file. I'm getting this message:

Failed to parse the EXPRESSION_LIST clause. The provided value was '((@XValue()/0.999604)-482902.876)+(((@YValue()/0.999604)-5447183.654)*0.000039706);((@YValue()/0.999604)-5447183.654)-(((@XValue()/0.999604)-482902.876)*0.000039706)'. Please ensure that your syntax is correct

 

Any idea?

 

Thanks,

Tomer

Userlevel 6
Badge +33

Hello and thank you for the reply.

Here's my setup in the  PointCloudExpressionEvaluator:

Output is a LAS file. I'm getting this message:

Failed to parse the EXPRESSION_LIST clause. The provided value was '((@XValue()/0.999604)-482902.876)+(((@YValue()/0.999604)-5447183.654)*0.000039706);((@YValue()/0.999604)-5447183.654)-(((@XValue()/0.999604)-482902.876)*0.000039706)'. Please ensure that your syntax is correct

 

Any idea?

 

Thanks,

Tomer

For poinclouds you have to use @Component(x) instead of @XValue(). For example

((@Component(x)/0.999604)-482902.876)+(((@Component(y)/0.999604)-5447183.654)*0.000039706)

2021-04-28_15h08_52

Hello and thank you for the reply.

Here's my setup in the  PointCloudExpressionEvaluator:

Output is a LAS file. I'm getting this message:

Failed to parse the EXPRESSION_LIST clause. The provided value was '((@XValue()/0.999604)-482902.876)+(((@YValue()/0.999604)-5447183.654)*0.000039706);((@YValue()/0.999604)-5447183.654)-(((@XValue()/0.999604)-482902.876)*0.000039706)'. Please ensure that your syntax is correct

 

Any idea?

 

Thanks,

Tomer

Thank you very much - that was it. Great.

Much appreciated.

 

Tomer

Hello and thank you for the reply.

Here's my setup in the  PointCloudExpressionEvaluator:

Output is a LAS file. I'm getting this message:

Failed to parse the EXPRESSION_LIST clause. The provided value was '((@XValue()/0.999604)-482902.876)+(((@YValue()/0.999604)-5447183.654)*0.000039706);((@YValue()/0.999604)-5447183.654)-(((@XValue()/0.999604)-482902.876)*0.000039706)'. Please ensure that your syntax is correct

 

Any idea?

 

Thanks,

Tomer

One more question please: I have a bunch of PointClouds, tens of thousands - how to repeat the  PointCloudExpressionEvaluator usage in batch for all the LAS files? I need the output to have the same name as the source file......

 

Thank you,

Tomer

Userlevel 6
Badge +33

Hello and thank you for the reply.

Here's my setup in the  PointCloudExpressionEvaluator:

Output is a LAS file. I'm getting this message:

Failed to parse the EXPRESSION_LIST clause. The provided value was '((@XValue()/0.999604)-482902.876)+(((@YValue()/0.999604)-5447183.654)*0.000039706);((@YValue()/0.999604)-5447183.654)-(((@XValue()/0.999604)-482902.876)*0.000039706)'. Please ensure that your syntax is correct

 

Any idea?

 

Thanks,

Tomer

You need a Dynamic Workflow for this. Multiple ways to do.

 

Using FeatureReaders and FeatureWriters makes more sense and I think are easier than classic readers and writers.

What I use a lot is a FeatureReader with a Directory and File Pathnames reader to scan a directory for files. Then another FeatureReader to read the file and a FeatureWriter to write the result.

Some considerations:

  • You can do it all in one workflow. The downside is if the process takes a long time and you have an error when you're half way, you need to restart.
  • You can do it in two steps, scan the directory and write this out to a to-do table. Then use a parent and child construction, the parent reading the table with the files which need to be processed, starting the child workspace for each file. Let the child update the table when the file was successfully processed. Now you can stop and start the processing.

With the volume of files you have you probably want to do it file by file.

Hello and thank you for the reply.

Here's my setup in the  PointCloudExpressionEvaluator:

Output is a LAS file. I'm getting this message:

Failed to parse the EXPRESSION_LIST clause. The provided value was '((@XValue()/0.999604)-482902.876)+(((@YValue()/0.999604)-5447183.654)*0.000039706);((@YValue()/0.999604)-5447183.654)-(((@XValue()/0.999604)-482902.876)*0.000039706)'. Please ensure that your syntax is correct

 

Any idea?

 

Thanks,

Tomer

Thank you so much!! - it is the first time I received such a useful answer (if any) here in the community. I do not wish to bother you but could I use your help for another PointCloud related question I have?

How to scale coordinates around a specific origin, other than (0,0) or Center Point (the options available in Scaler)?

 

Thanks,

Tomer

Userlevel 6
Badge +33

Hello and thank you for the reply.

Here's my setup in the  PointCloudExpressionEvaluator:

Output is a LAS file. I'm getting this message:

Failed to parse the EXPRESSION_LIST clause. The provided value was '((@XValue()/0.999604)-482902.876)+(((@YValue()/0.999604)-5447183.654)*0.000039706);((@YValue()/0.999604)-5447183.654)-(((@XValue()/0.999604)-482902.876)*0.000039706)'. Please ensure that your syntax is correct

 

Any idea?

 

Thanks,

Tomer

One way is to use the Offsetter to move the object to (0,0). Then use the Scaler to resize. Use the offsetter again to move back to original coordinates. I think I use the CenterPointExtractor (center of gravity) to get a coordinate as attribute to use in the Offsetters.

 

Happy I could help. If you create separate questions next time other users have more chance to find the answers on their similar questions.

Reply