Skip to main content
Question

Find lowest Z-values in a area

  • March 16, 2018
  • 6 replies
  • 18 views

joostsieben
Contributor
Forum|alt.badge.img+6

Hi,

I am doing a analyse to find most low z-values in a buffer of 50 meter from a point. I started with this steps:

- buffer points,

- Clip raster file on buffer area's

- Use RasterCellCoercer to extract point value's only in this buffered area for efficiency

- PointonAreaoverlayer, use buffers and points to merge attributes.

But now I get stuck, these buffers have an overlap with each other. So some points only get the ID from one bufferid, not from both buffers with an intersect.(Arcgis 'Intersect' does it the way I like to see with all points tested on all intersecting buffers)

Goal: I want to find the 10 lowest Z-values in each area(buffers from a point with main ID)

Who can help me to achieve this goal?

Thanks a lot!

This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

6 replies

redgeographics
Celebrity
Forum|alt.badge.img+60
  • Celebrity
  • 3703 replies
  • March 16, 2018

Hi Joost :)

I think you can make the PointOnAreaOverlayer create a list. So take the points output and explode the list. If a point falls within 2 buffers you'll now have 2 copies of the point (one for buffer A and one for buffer B, you have to make sure the buffers have a unique id). ListBuilder grouped by that buffer id, ListSorter on the z-values and then pick list elements 0-9.


jdh
Contributor
Forum|alt.badge.img+37
  • Contributor
  • 2002 replies
  • March 16, 2018

Instead of a PointonAreaOverlayer, I would use a SpatialRelator on the points, explode the _relationships list (ListExploder), so now there are multiple copies of the points that fall into multiple buffers, and then an Aggregator grouped by the main (buffer) ID.

 

So for each original point, you now have an aggregate of all the points within the buffer distance, in a list form, which you can then sort to get the lowest values (ListSorter).

takashi
Celebrity
  • 7843 replies
  • March 18, 2018

Hi @joostsieben, assuming that every point has an attribute which stores unique identifier (say Point ID), if you create copies of the raster equal to the number of point and add Point ID to them, you can then perform clipping each raster by corresponding point. In addition, you can use the RasterBandMinMaxExtractor to extract the minimum value in a raster more efficiently. e.g.


joostsieben
Contributor
Forum|alt.badge.img+6
  • Author
  • Contributor
  • 2 replies
  • March 20, 2018

Thank you all for the answers. I did a combination of youre answers so it helpt me pretty good! Now it have run for 900.000 points, so this will take a while.


owen
Forum|alt.badge.img+1
  • 156 replies
  • March 20, 2018

Thank you all for the answers. I did a combination of youre answers so it helpt me pretty good! Now it have run for 900.000 points, so this will take a while.

This potentially could be quicker if you coerce the raster to a point cloud, and use the PointCloudStatisticsCalculator

 

 


joostsieben
Contributor
Forum|alt.badge.img+6
  • Author
  • Contributor
  • 2 replies
  • March 20, 2018
This potentially could be quicker if you coerce the raster to a point cloud, and use the PointCloudStatisticsCalculator

 

 

Thank you! Unfortunately I need more than one value, so only the lowest z-value is not enought. Thats why I am now working with Lists to find more value's.