Control of cellgeneration without interpolation would mean statisticcalculation based on cells or a grid.
There is a PointCloudStatistics calculator
I just tried it out A tiled PC of 24mil points clipped by 1500 objects (building is in my case) got me 1500 statistics sets in 2mins13sec.
Then you can use the PointCloudExpressionEvaluator to evaluate the points per cloudclip. (min, max, avg, etc)
Oh btw, after clipping the pointcloud you need to use a PointCloudConsumer (else the pc will still be the Original rather then clipped)
If you do this by some gridsize and then create a Raster with same gridsize you could use the RasterExpressionEvaluator tot calculate heightdifference between the 2 rasters.
Hi Gio,
Thanks for the pointers; I will check my understanding of your
suggestions in a minute. Typically after I posted my original question I found
the point cloud sorter.
Therefore; assuming that for
the given analysis, (when creating the raster from the point cloud,) it is
sufficient to use either the MIN or MAX value from the point cloud to assign to
the raster (and assuming that the numeric rasteriser does keep the last value for
the cell) then using the point cloud sorter before the numeric rasteriser will
suffice.
But you are right in what you
say, in that you might want to use a stat value which is not only MIN or MAX. Can
I please check my understanding of your post? Following your suggestion of the Point
Cloud Statistics Calculator I ran the post filtered PC though the stat calc,
and got a single set of stat values for the filtered point cloud (i.e. even
though the PC was class 5 points only, the stat values were for still just a single
set). Ok so far, but obviously the calculated stats are for the whole point
cloud and not for what will end up as the raster cells. Hence the reason you
say to clip the point cloud up first, so that you can obtain stats at a more granular
level.
So can I check the next part of
your suggestion? Namely; should I create a vector grid of cells of the size and
position that I want the raster to end up as? Then use these as multiple clippers
to clip the original single point cloud data? Once this is done, I will have
smaller point clouds, I can then use the stat calc to generate individual stats
for. Once this is done, should I then;
1.Push the stat value (that I want to use) back into the Vector grid
cells which I created for the clipping process in the first place. And then
test the vector grid against the raster DTM. I.e. I am using a vector on raster
process to compare the z values
2.Or, use the multiple point cloud and convert them to a Raster
AND then test this vegetation raster against the DTM raster? i.e. use a raster
on raster process to compare the z values
I am bit confused as when to
flip from vector to raster and which parts to do in which. I am not quite sure
whether I am effectively duplicating some processing tasks and therefore making
my process inefficient, as trying to complete some processes as vectors is extremely
processing heavy.
It seems a shame that when you
create a raster using the numeric rasteriser that it does not allow you to
select a cell assigning methods, i.e., centre cell, min, max, avg, sum, etc.
etc. if so then this issue would be circumvented to begin with.
Any further advice would be appreciated,
the pointers to the PC stat calc and clipping of PC is already a BIG help.
Thanks,
Rob
Hi You can do the proces without coercing to points.
When u clip the pc to a grid, you still have the overall pc.
If you use the stat calculator it will calculate stat on the clipped pc.
The stats are availabel per clip
1.Push the stat value (that I want to use) back into the Vector grid cells which I created for the clipping process in the first place. And then test the vector grid against the raster DTM. I.e. I am using a vector on raster process to compare the z values
No need for the push back.
You can then do the pc expressioncalculations.
Next you use a PointCLoudConsumer, it will output the filtered and or clipped objects.
You can use this then to create a raster ( i use a DEM- or surfacebuilder for its interpolation option and output the dem raster)
This you can use in the rasterexpressioncalculator together with your reference raster. You can then output a difference raster from there.
This is basicaly youre point 2.
2.Or, use the multiple point cloud and convert them to a Raster AND then test this vegetation raster against the DTM raster? i.e. use a raster on raster process to compare the z values.
You won't need to revert to pointobjects (vectors as you call it) No coersion i required.
Hi Gio,
Thanks again for the tips/advice.
I have done some more experimentation and I think I now understand things more clearly (slightly). More work still needs to be done as I have done things slightly differently, so I want to fully understand everything that you describe. But my temporary method is as follows, I have just described the part of moving and subtracting the z values from raster to pc.
1. read in GEOTIFF DTM
2. read in LAS PC
3. filter LAS PC classification 5 retain
4.connect outputs from 1 and 3 into PointCloudOnRasterComponentSetter. configure transformer to take band 0 (DTM_Z value) from GEOTIFF and create a new component in the point cloud called dtm_z
5. use a PointCloudExpressionEvaluator to subtract dtm_z value from PC_z.
Clearly at this stage the calculated delta z are not in an ordered ‘grid' format but associated
with the 'chaotic' pc data. So I need to decide for
the vegetation analysis whether I should create order first, in the form of a
grid first (i.e. perform a clip as you describe) or keep the PC data as was but with both z values recorded. I guess
the advantage of the latter is that the PC can be re-interpolated into a raster independently
at later date, according to any change of need? But I need to think about this.
Anyway thanks again for your help, I will look again at the clipping method.
rob