Skip to main content
Solved

Natural neighbour interpolation method in raster

  • October 18, 2018
  • 5 replies
  • 189 views

Hi,

I cannot find "Natural neighbour" as a interpolation method in any raster transformers in FME.

 

I have FME Home Edition, ver: FME(R) 2018.1.0.3 (20180926 - Build 18552 - WIN64).

The function is in the arcgis program, see more here Natural neighbour

I have tried RasterDEMGenerator transformer in FME with "Auto", "Planar" and "Constant" as interpolation methods and with "Surface Tolerance" = 0 but the result is not as good as with QGIS or ArcGis.

Will there be a future support for "Natural Neighbour" as a interpolation method in raster transformers in FME?

 

I attache a raster done in QGIS from LIDAR point cloud and Grid 1 x 1 meter and the same done in FME so you can compare the difference.Best regards,Jonas

Best answer by jdh

There is not one currently. You can post it as an idea https://knowledge.safe.com/content/idea/post.html?space=155 to garner votes for development.

 

 

That said, the algorithm seems like a relatively straightforward implementation and can be done with VoronoiDiagrammer and AreaOnAreaOverlayer.

 

 

naturalneighbour.fmw

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

5 replies

jdh
Contributor
Forum|alt.badge.img+28
  • Contributor
  • Best Answer
  • October 18, 2018

There is not one currently. You can post it as an idea https://knowledge.safe.com/content/idea/post.html?space=155 to garner votes for development.

 

 

That said, the algorithm seems like a relatively straightforward implementation and can be done with VoronoiDiagrammer and AreaOnAreaOverlayer.

 

 

naturalneighbour.fmw


  • Author
  • October 19, 2018
jdh wrote:

There is not one currently. You can post it as an idea https://knowledge.safe.com/content/idea/post.html?space=155 to garner votes for development.

 

 

That said, the algorithm seems like a relatively straightforward implementation and can be done with VoronoiDiagrammer and AreaOnAreaOverlayer.

 

 

naturalneighbour.fmw

Hi jdh,

 

Holy cow! That one I did not understand how you did :-)

 

Anyhow I tried it now with my LIDAR data and it does not recognize the "_random_number" in the creation of the "_weightedValue" attribute.

 

What shall I do to fix this?

 

Best regards,

 

Jonas

 

 


jdh
Contributor
Forum|alt.badge.img+28
  • Contributor
  • October 19, 2018
bigjonas69 wrote:
Hi jdh,

 

Holy cow! That one I did not understand how you did :-)

 

Anyhow I tried it now with my LIDAR data and it does not recognize the "_random_number" in the creation of the "_weightedValue" attribute.

 

What shall I do to fix this?

 

Best regards,

 

Jonas

 

 

The _random_number is an attribute storing the value you wish to interpolate (presumably Z). The thiessen polygons generated from the VoronoiDiagrammer need to have an attribute containing that value.

 

 

If your source data is a point cloud, you will need to either coerce the cloud into individual points, each containing the the Z value as an attribute prior to the VoronoiDiagrammer, or figure out a way to transfer the values to the thiessen polygons after generation.

 

 

In the AttributeCreator you need to change the _weightedValue expression to use the appropriate attribute name.

 

 

The workspace above was more a proof of concept than anything. I used this description of the algorithm to design the workspace:

 

The natural neighbors of any point are those associated with neighboring Voronoi (Thiessen) polygons. Initially, a Voronoi diagram is constructed of all the given points, represented by the olive-colored polygons. A new Voronoi polygon, beige color, is then created around the interpolation point (red star). The proportion of overlap between this new polygon and the initial polygons is then used as the weights.

 

 

 

http://desktop.arcgis.com/en/arcmap/10.3/tools/spatial-analyst-toolbox/how-natural-neighbor-works.htm

 

 


  • Author
  • October 19, 2018
jdh wrote:
The _random_number is an attribute storing the value you wish to interpolate (presumably Z). The thiessen polygons generated from the VoronoiDiagrammer need to have an attribute containing that value.

 

 

If your source data is a point cloud, you will need to either coerce the cloud into individual points, each containing the the Z value as an attribute prior to the VoronoiDiagrammer, or figure out a way to transfer the values to the thiessen polygons after generation.

 

 

In the AttributeCreator you need to change the _weightedValue expression to use the appropriate attribute name.

 

 

The workspace above was more a proof of concept than anything. I used this description of the algorithm to design the workspace:

 

The natural neighbors of any point are those associated with neighboring Voronoi (Thiessen) polygons. Initially, a Voronoi diagram is constructed of all the given points, represented by the olive-colored polygons. A new Voronoi polygon, beige color, is then created around the interpolation point (red star). The proportion of overlap between this new polygon and the initial polygons is then used as the weights.

 

 

 

http://desktop.arcgis.com/en/arcmap/10.3/tools/spatial-analyst-toolbox/how-natural-neighbor-works.htm

 

 

Good evening jdh,

 

I think I made the right modification but nothing comes out to the inspector.

 

See attached picture...What do I do wrong?

Best regards,

 

Jonas

jdh
Contributor
Forum|alt.badge.img+28
  • Contributor
  • October 22, 2018
bigjonas69 wrote:
Good evening jdh,

 

I think I made the right modification but nothing comes out to the inspector.

 

See attached picture...What do I do wrong?

Best regards,

 

Jonas
Your Clipper-clipper need to be a polygon of the area of interest, not the individual points. A BoundingBoxReplacer, or BoundingBoxAccumulator would make one, depending on where in the workflow you place it.

 

 

 


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