Interpolation methods on GeoArray types
Crghilardi opened this issue · 5 comments
I have been working on writing some existing LiDAR ground filtering methods in Julia. The one I am working on now uses nearest neighbor interpolation to fill in the grid after selecting a minimum.
After making a GeoArray with PointCloudRasterizers.jl
I have tried different functions in GridInterpolations.jl
, Interpolations.jl
, and NearestNeighbor.jl
but typically run into method errors like ERROR: MethodError: no method matching interpolate(::GeoArray{Union{Missing, Float64}})
Before going any further, I wanted to open an issue for visibility. Not sure if I am missing something where GeoArray should work since it already subtypes AbstractArray
or if some glue code needs to be written to make everything work together.
I've run into these issues myself before. You can use the field .A
to access the underlying Array, which should help. Although if you've got missing data, most of the packages still don't like it.
I've got a interpolate.jl
in an offline branch for this packages, but it's not mature yet. I will try to make a preliminary PR soon, so you've got an example to work with.
With regards to ground filtering algorithms, I will try to see if I can push our methods to a new repository. We have an implementation of the PMF around, as well as other filters.
PS. I believe in your linked paper, Zhang (2003) uses Kriging interpolation.
Oh cool. I started an empty repo hoping I would be very productive, but I would be happy to delete it or pass the repo name onto you.
I would be interested in the PMF filter, and I have some very rough types written out for the Cloth SImulation FIlter.
I will have to go back and re-read the Khang paper, thank you for pointing that out. I am mainly working my way through exploring most of the functionality and citations [in the lidR package](https://github.com/Jean-Romain/lidR.
In the meantime, check out #6. You could get something up and running by not using the Union{Missing, Float64}
type for now. Or convert those missing values to NaN
s and change the array type back to Float64
.
We've got a work in progress repo up and running @ https://github.com/Deltares/GeoRasterFiltering.jl. For now, it only includes the PMF filter.
That sounds great, thanks for taking a look at it. I'll delete my repo anyway and just submit a request to GeoRasterFiltering
if I come up with anything useful.