Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
davidDielmo
@davidDielmo

Hi, we are trying to add pdal to our java application, but we are facing some errors, we try to use the maven repository packages but none seems to work, the error says that we are missing some dependencies,
java.lang.UnsatisfiedLinkError: libpdaljni.2.3.so: libpdal_base.so.13

We tryed adding the maven pdal, pdal-native, pdal-scala on versions 2.3.1, 2.2.0 that gives us the previous error.

When used the 2.0.0 the error is a core-dump.

We followed the documentation on the pdal.io website to add the library to our project unsuccessfully, is there some example on how to add to a java (not scala) project?

Thanks in advanced

image.png
image.png
Andrew Bell
@abellgithub
@davidDielmo : libpdal_base.so.13 is the base PDAL library for version 2.3. Is it installed on your system where your java build can find it?
davidDielmo
@davidDielmo

Hi @abellgithub : We have installed pdal version 2.0.1 in our computers, in /usr/lib we have the libpdal_base.so.10 and the libpdal_base.so.9, with the pdal maven dependencies from version 2.1.5 backwards the problem is a core dump, from version 2.1.6 onwards simply doesn't find the apropiate so file

System configuration:
Ubuntu 20.04

Java versiĆ³n
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-8u312-b07-0ubuntu1~20.04-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)

pdal version
pdal 2.0.1 (git-version: Release)

Jakob
@jakobh:matrix.plxbx.eu
[m]

Hi there,
I followed the conda installation instructions and can't get filters.python to work.
I installed with:

$ conda create --yes --name myenv --channel conda-forge python-pdal

pdal --drivers doesn't return filters.python. Did I miss a step?

Howard Butler
@hobu
@jakobh:matrix.plxbx.eu confirmed there is some kind of bug with the latest release
you can install them yourself by issuing pip install pdal-plugins
but the python-pdal package should be bringing this in for you too. I will update the package
2 replies
Jakob
@jakobh:matrix.plxbx.eu
[m]
Thanks! I'll wait for the update
David Caron
@davidcaron

Hi :wave:,
I'm exploring creating copc with Untwine and PDAL, and I was wondering if you could help me figure out a couple differences I found.
My test file is a 600Mb las file. I have a lot of these to process, and I'm interested to compare processing on a single cpu. The higher memory usage of PDAL is not a concern for us.
PDAL is faster than Untwine (PDAL takes 35s and Untwine 3m30s using a single core on my machine)
Untwine produces smaller file sizes (76Mb vs 210Mb)

I'm thinking to go with Untwine, because the final file size is pretty important for us, but the speed of using PDAL is appealing...
Does someone know how we could bring the file size of PDAL copc down? I'm already using a scale of 0.001 for both PDAL and Untwine.

My PDAL pipeline looks like: {"pipeline": ["in.las", {"type":"writers.copc", "filename":"out.copc.laz", "forward":"offset", "scale_x":0.001, "scale_y":0.001, "scale_z":0.001}]}
Thanks!

Howard Butler
@hobu
Are the point formats the same for each file? If you are dropping the GPStime, you could see quite a big difference.
David Caron
@davidcaron
Yes, both output files have the same dimensions, it's the standard dimensions for point format 6. I'll investigate further...
Howard Butler
@hobu
@davidcaron the answer to your question about file sizes is PDAL/PDAL#3729
David Caron
@davidcaron
Awesome, thanks!
Howard Butler
@hobu
Expect some fluff up, even with that sorting. Chunking the data spatially disrupts the data coherence that LASzip takes advantage of. TANSTAAFL and all that...
Andrew Bell
@abellgithub
@davidcaron That's a big time difference. Much larger than I see. Perhaps you have spinning disk? If not, you might want to play with MaxBuffers and BufSize in the file EftTypes.hpp.
David Caron
@davidcaron

Ah, sorry about that, I was building untwine in debug mode...
After the untwine build fix, and the PDAL sorting update, here are the timings and sizes (all on a single cpu):

Source: .las 517Mb
Untwine: 75Mb in 55s
PDAL: 80Mb in 39s
Untwine (input and output on a ramdisk): 75Mb in 52s

Thanks a lot for your help, I have around 100Tb to convert that will make a tremendous difference.

Andrew Bell
@abellgithub
One other note...if you use PDAL and you're merging multiple input files into a single output COPC, make sure you stick a merge filter before the output or you will only get the result from a single input file.
Jakob
@jakobh:matrix.plxbx.eu
[m]
I see, I couldnt update until today. Thanks for the fix!
Rowan Winsemius
@rowanwins
I'm using the python pdal library and was wondering if there is any easy way to see how long each stage takes?
I've got a simple pipeline where I read an input, use a voxel filter, then write the output to gdal. I'm interested in understanding approximately how long each of those stages take relative to eachother.
1 reply
Julien Laurenceau
@julienlau
PDAL version returned by pdal info in docker image 2.4.0 is wrong :
"pdal_version": "2.3.0 (git-version: 26cc5e)",
Andrew Bell
@abellgithub
@rowanwins : Sorry, but there is no support for this at the current time. Some stages have some log messages that can be used along with the --logtiming option.
1 reply
pmdifran
@pmdifran
Is there test LAS or LAZ file in the PDAL repository, or any other repositories, that contains Classification VLRs? If not, would you like me to generate one?
https://lidarmag.com/2020/11/20/xyz-exchange/
coumbsek
@coumbsek
Hi, I'm trying to make a writer plugin but it is not showing when calling pdal --drivers. I am using this tutorial . I try to just compile the exemple and use it but it is not showing either. I have add my folder to the PDAL_DRIVER_PATH, try to drop the dll along pdal or inside the current folder but no more luck... I see some differences between pages and the source code available especially here, main differences are the CMakeList.txt and the name of the dll which on one side is libpdal_plugin_writer_mywriter.dll and on the other pdal_plugin_writer_mywriter.dll.
I do not know what other things to test.
Any help would be greatly appreciated,
Thank you
Howard Butler
@hobu
@pmdifran I wrote classification VLR into the Autzen Classified file at https://github.com/PDAL/data/blob/master/autzen/autzen-classified.copc.laz
@coumbsek if you issue your call as pdal --drivers --debug it will show you what it is trying to read/load as it wakes up the plugins. The filename does need to follow a special pattern (and yes it is prefixed with 'lib' on windows because of some old weirdness)
@lowbrows PDAL's writers.gdal interpolates, not strictly bins. We've talked about adding support for that, however. Reach out if you can financially support, make a PR if you have time, or use lasgrid if that's available to you
1 reply
coumbsek
@coumbsek
@hobu thank you, ouput of the command indeed reveel that it see it but No symbol 'PF_initPlugin' found in plugin while in the tutorial code there is the CREATE_SHARED_STAGE(MyWriter, s_info); that is responsible for this according to the macro definition...
Howard Butler
@hobu
rummage around in https://github.com/PDAL/PDAL/tree/master/plugins to see if there's some discrepancy between how those plugins are made and what the tutorial might be doing. Please make a PR for any doc updates that might be needed. Docs may indeed have diverged.
coumbsek
@coumbsek
ok, I will have a look in details, I had a first look but thinked it was only static plugin examples. I have to confess that I am not on latest PDAL version, I come from ODM and as such use currently the 2.3.0 version. Thank you again
twelvechairs
@twelvechairs:matrix.org
[m]
Hi are there any issues with greedy projection filter? It seems to crash when i use python extension (fatal exception: access violation) and not output anything when i use command line with json pipeline [i havent figured out how log this - '--log x.txt' seems to output an empty file]. Poisson filter works fine for comparison
Guilhem Villemin
@gui2dev
@coumbsek @hobu PDALL_DLL needs to be defined as if you were building PDAL otherwise the macro won't be much helpful. The documentation is not clear about that point.
1 reply
Andrew Bell
@abellgithub
@twelvechairs:matrix.org : First, you should run the filter from the command line using a PDAL pipeline or one of the PDAL commands. If it still crashes, you should open an issue. Be sure to include the file that's causing issues.
twelvechairs
@twelvechairs:matrix.org
[m]
@abellgithub: Thanks will do
CharlyBRT
@CharlyBRT
Hi ! I have a question, i'm using the filters.smrf to classify the ground, it do it well but is it possible the keep the points that don't pass this filter in the default class ? Thx !!
chambbj
@chambbj
@CharlyBRT Not sure what you mean by the "default class." Are you wanting the non-ground points to retain their original class label and not be relabeled as class 1? If so, you could use the Ferry filter to backup the original classifications to a new dimension (Classification=>OriginalClass) prior to running SMRF. Then after SMRF, use Ferry again to transfer the backed up labels only where Classification==1 (OriginalClass=>Classification WHERE Classification==1).
Andrew Bell
@abellgithub
@chambbj : Would it be useful to have an option that causes SMRF to leave non-ground point classification alone?
chambbj
@chambbj
It could be. We always approached this as if 1) ground classification was the first step anyway, or 2) you'd excluded previously classified things like noise or perhaps withheld points. Of course if we changed it here, we'd want to look again at CSF, PMF, maybe others...
Andrew Bell
@abellgithub
I thought that was the case. Perhaps @charlyBRT has a special case and it's not worth messing with, but it would also be simple to just not set values to Unclassified.
CharlyBRT
@CharlyBRT
I'll do it, thanks you @chambbj !
Jonathan Chemla
@jo-chemla
Hi all, I'd like to use PDAL to crop multiple pointclouds using 3D bboxes. I've seen the crop fliter does almost what I want https://pdal.io/stages/filters.crop.html
But rather than using an AABB, I'd like to use a generic bbox defined by center, rotation (matrix or quaternion) and scale (in the same CRS as the pointcloud data).
Another thing that might make it tricky: I'd like to apply it to pointclouds which might require more ram than on the computer that the code will run on (in the several billions). So I would need stream mode for the pipeline - which I assume crop uses, not sure how to check that.
Jonathan Chemla
@jo-chemla
So I'd like to crop my massive pointclouds with this oriented BB using a python pipeline (haven't done much C for the past decade). Can be really simple to do given the matrix representation of the box transformation (assuming a transform M from a [0,1] bbox to the oriented-translated-scaled bbox, I simply need to check
Vector(0,0,0) < M_inv * points < Vector(1,1,1)
Jonathan Chemla
@jo-chemla
A few questtons:
  • would that python pipeline be streamable by default or do I need to activate some tags?
  • would it be efficient or would I get better performance writing a python code to parse the whole pointcloud by batches of n_points that fit in memory (500M for example)? I have a portion of code doing this using laspy and working with numpy arrays with a loop like for points_chunk in fh.chunk_iterator(chunk_npoints):
  • regarding precision, is double precision used within the python pipeline operations? Or should I use a local origin close to my pointcloud origin to avoid precision loss?
  • could this cropping with an OBB be part of the official pdal crop filter at some point?
    Thanks a lot for your replies!
Andrew Bell
@abellgithub
@jo-chemla : PDAL doesn't do OBB cropping. You'll have to do it yourself. The Python interface does support chunking of points and they're provided via the API in a Numpy array. You should be able to easily transform the points appropriately and then filter with the OBB. Hope that helps.
Andrew Bell
@abellgithub
I should add that there is such filtering in PDAL, but it's specific to the ESRI I3S/SLPK reader, which uses an OBB as part of its fetch processing. You might take a look at EsriReader::processPoint(). This is in C++, not Python.
Andrew Bell
@abellgithub
Oh, also, X, Y and Z are always double-precision in PDAL.
Howard Butler
@hobu
So I'd like to crop my massive pointclouds with this oriented BB using a python pipeline (haven't done much C for the past decade).
  • Use the PDAL-Python quickinfo capability against a spatially organized data source like EPT or COPC to estimate how many points there might be in a window (see https://github.com/hobuinc/copc-dem for inspiration)
  • Wait for the next release of laspy, which will have COPC read support
CharlyBRT
@CharlyBRT
Hey ! How can I use the writer Gdal to write an extra dimension ? I created an extra dim HAG but I can't use the the writer Gdal to create an HAG raster. Should I use the Ferry filter to convert my extra dim HAG in a dimension or there is an other solution ?