Giter Club home page Giter Club logo

wrench's Introduction

wrench's People

Contributors

alexbruy avatar basilrabi avatar hobu avatar jvdkwast avatar kylemann16 avatar mehdichinoune avatar wonder-sk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wrench's Issues

Curl SSL error

Hi,
I'm trying to create a VPC from a list of links targeting online COPC point cloud data.
Point clouds are from the French LiDAR-HD open-data project and links to the data are provided by the IGN.

So I have a list of links just like the sample below in a file 'list.txt' :
https://storage.sbg.cloud.ovh.net/v1/AUTH_63234f509d6048bca3c9fd7928720ca1/ppk-lidar/ON/LHD_FXX_0870_6426_PTS_C_LAMB93_IGN69.copc.laz
https://storage.sbg.cloud.ovh.net/v1/AUTH_63234f509d6048bca3c9fd7928720ca1/ppk-lidar/ON/LHD_FXX_0873_6428_PTS_C_LAMB93_IGN69.copc.laz

When running following command to build the VPC :
pdal_wrench build_vpc --output=my_vpc.vpc --input-file-list=list.txt
I get the following error line :
Curl failure: SSL peer certificate or SSH remote key was not OK

Is there any way to bypass this error ?

Thanks!

Unexpected warning with "DayOfYear" in "build_vpc"

Hi, I'm building a VPC with the most recent commit of PDAL wrench (43caeb9):

pdal_wrench build_vpc --output=merged.vpc laz_files/*.laz

The output VPC is fine, but I also got the following warning several times (I guess it's printed once for each *.laz file):

Warning: DayOfYear(2024) is out of range. Defualting to 1.

The *.laz files have been created today, so "2024" makes sense, while on the other hand the year should not be the argument of a "DayOfYear" function. Also note the typo "Defualting".

Thanks!

Read from remote VPCs

Right now pdal_wrench expects that the input VPC is a local file. It would be good to support also remote VPCs (hosted on a HTTP server) where we would download the VPCs first and then read it.

Input format

Hi

I was willing to use the PDAL Thin filtering on a layer with billions of points (just lat/lon coordinate).
Input is either gpkg or geoparquet but none seems supported by the plugin:
image
Is it normal?

thanks

Option to write PDAL pipelines

It may be useful to have a way to dump pipelines that are being run - e.g. for debugging

See pdal::PipelineWriter::writePipeline()

confusion with datetime and LAS spec

datetime is defined as

likely the aquisition time
(https://github.com/radiantearth/stac-api-spec/blob/main/stac-spec/item-spec/item-spec.md#datetime)

which is also assumed for vpc creation

// Acquisition time: readers.las and readers.copc provide "creation_year" and "creation_doy"
(https://github.com/PDAL/wrench/blob/main/src/vpc.cpp#L260)

However I am unsure if this is what "creation_year" and "creation_doy" are defined as (see ASPRSorg/LAS#148)
there it simply says

(date) this file was created.

And from my experience this is what providers populate it with, the date at which the file was created after inital processing, so usually this is days to month later than the aquisition date.

In my understanding the definition is unclear and the implementation here is correct, however I am not sure.

Any thoughts on this?

Crash when trying to convert a vpc into a raster with raster_tin

Hello,

I would like to report an issue:

I have a bunch of .laz files which I would like to convert into a raster.

To begin I create a vpc, which works fine:

pdal_wrench build_vpc --output=myterrain.vpc --input-file-list=my-laz-tiles.txt

Then I want to convert the vpc into a raster tif using the raster_tin method:

pdal_wrench to_raster_tin --resolution=0.2 --input=myterrain.vpc --output=myterrain.tif

If I have only a few .laz files in my-laz-tiles.txt, everything works well.

However, if I have more files (let's say 100+), the process starts and begins to create the temporary directory, but after a while it crashes

0...Killed

I tried with different files on several computers, it always crash after a while if there are too many files in the vpc. Sometimes it goes up to 100 but then it stucks creating the final tif (probably because it don't use bigtiff and is over the 4Gb limit of the regular tiffs).

Random error when creating Virtual PoinCloud

Running QGIS 3.32 on Manjaro Linux, 24 threads available, 128Gb ram.

  • QGIS-versjon: 3.32.0-Lima
  • Qt-versjon: 5.15.10
  • Python-versjon: 3.11.3
  • GDAL-versjon: 3.7.0
  • GEOS-versjon: 3.11.2-CAPI-1.17.2
  • PROJ-versjon: Rel. 9.2.1, June 1st, 2023
  • PDAL-versjon: 2.5.5 (git-version: Release)

This usually works great, but today I have been working with a rather large dataset (209 laz files (converted to copc.laz, no problems). Toal file size 9.6 Gb.

When trying to point to the files on disk (which has worked well in all other projects so far), creating stats and boundaries, and exporting to vpc, I get an error saying there is someting wrong with LAYERS (capitalized in error message).
This is repeatable. also tried without computing stats etc, same error.
image
(sorry, in Norwegian...)

EDIT: Tried the above with a small subsection (28 files), same error message.

But: when trying the same with all copc.laz files loaded in QGIS, i.e. all 9.6 Gb, and creating the vpc with stats, boundaries as well as overview cloud, all works smoothly.

This is possible to view in detail in 2D, crashes in 3D view (expected).

Resulting output from the info-tool on the VPC:

Inndataparametre:
{ 'INPUT' : '/home/.../Skjold_Eggja_Vats/virtuell_skjold.vpc', 'OUTPUT' : 'TEMPORARY_OUTPUT' }

PDAL wrench-kommando:/usr/lib/qgis/pdal_wrench info --input=/home/.../Skjold_Eggja_Vats/virtuell_skjold.vpc
VPC 209 files
count 1985328417
extent 305600 6.5946e+06 -408.06
318400 6.60703e+06 685.11
crs ETRS89 / UTM zone 32N + NN2000 (EPSG:25832+5941)
units metre

Unable to use --input-file-list for the build_vpc command

Hi,

I'm trying to create a vpc file for a large number of copc files (about 9000 tiles). I first created a list of files. Here are some lines of this file:

/gpfs/fs5/nrcan/nrcan_geobase/work/transfer/work/pro/validationlidar/AB/Grande_Prairie_County_2022-08ce/POINTCLOUD_PREP/copc/661319NE.copc.laz
/gpfs/fs5/nrcan/nrcan_geobase/work/transfer/work/pro/validationlidar/AB/Grande_Prairie_County_2022-08ce/POINTCLOUD_PREP/copc/661319NW.copc.laz
/gpfs/fs5/nrcan/nrcan_geobase/work/transfer/work/pro/validationlidar/AB/Grande_Prairie_County_2022-08ce/POINTCLOUD_PREP/copc/661319SE.copc.laz
/gpfs/fs5/nrcan/nrcan_geobase/work/transfer/work/pro/validationlidar/AB/Grande_Prairie_County_2022-08ce/POINTCLOUD_PREP/copc/661319SW.copc.laz
/gpfs/fs5/nrcan/nrcan_geobase/work/transfer/work/pro/validationlidar/AB/Grande_Prairie_County_2022-08ce/POINTCLOUD_PREP/copc/661320NE.copc.laz
/gpfs/fs5/nrcan/nrcan_geobase/work/transfer/work/pro/validationlidar/AB/Grande_Prairie_County_2022-08ce/POINTCLOUD_PREP/copc/661320NW.copc.laz
/gpfs/fs5/nrcan/nrcan_geobase/work/transfer/work/pro/validationlidar/AB/Grande_Prairie_County_2022-08ce/POINTCLOUD_PREP/copc/661320SW.copc.laz

I then ran the following command:

/gpfs/fs5/nrcan/nrcan_geobase/work/transfer/work/pro/validationlidar/AB/Grande_Prairie_County_2022-08ce$ /space/partner/nrcan/geobase/work/opt/miniconda-elevation/envs/qgis332/lib/qgis/**pdal_wrench build_vpc** --output=/gpfs/fs5/nrcan/nrcan_geobase/work/transfer/work/pro/validationlidar/AB/Grande_Prairie_County_2022-08ce/Project_PointCloud.vpc --threads=128 --input-file-list=/gpfs/fs5/nrcan/nrcan_geobase/work/transfer/work/pro/validationlidar/AB/Grande_Prairie_County_2022-08ce/liste_copc.txt
**No input files!**

It does work if I pass a few files on the command line but since I would like to have a single vpc for the entire project, I would prefer to pass a text file.

[to_raster] Add support for other output dimensions (min, max, mean)

I was not sure whether to post this in the QGIS issue tracker or here. But since pdal_wrench is doing the work in the background, it might make more sense here:
As of now, the Export to Raster algorithm in QGIS only supports IDW as an output, whereas writers.gdal has several more options. For generating DTMs IDW is a great default, but for DSMs I would rather opt for the maximum. So it would be great if this could be incorporated in the to_raster algorithm as well as the QGIS algorithm.
I had a quick look at the source code

writer_opts.add(pdal::Option("output_type", "idw")); // TODO: other outputs like min/max/mean as well?
and it seems this idea was already on your mind, so a definitive πŸ‘ from my side to implement this ;-)
Thanks for the great work, I really like the recent additions of point cloud processing and viewing capabilities to QGIS!

Installation error after make

Hi,
I really would like to try this but I got the following error when I ran 'make' after 'cmake ..'. Could you please advise? I install pdal 2.7.1 and I install on AWS EC2 linux2023. Thank you!

error

[ 86%] Building CXX object CMakeFiles/pdal_wrench.dir/src/tile/TileGrid.cpp.o
[ 91%] Building CXX object CMakeFiles/pdal_wrench.dir/src/tile/ThreadPool.cpp.o
[ 95%] Building CXX object CMakeFiles/pdal_wrench.dir/src/tile/Writer.cpp.o
[100%] Linking CXX executable pdal_wrench
/usr/bin/ld: /workspaces/plhtn_python/.venv/lib/libtiledb.so.2.22: undefined reference to std::__exception_ptr::exception_ptr::_M_release()@CXXABI_1.3.13' /usr/bin/ld: /workspaces/plhtn_python/.venv/lib/libpdalcpp.so.17.0.0: undefined reference to std::condition_variable::wait(std::unique_lockstd::mutex&)@GLIBCXX_3.4.30'
/usr/bin/ld: /workspaces/plhtn_python/.venv/lib/libazure-storage-blobs.so: undefined reference to std::__atomic_futex_unsigned_base::_M_futex_wait_until_steady(unsigned int*, unsigned int, bool, std::chrono::duration<long, std::ratio<1l, 1l> >, std::chrono::duration<long, std::ratio<1l, 1000000000l> >)@GLIBCXX_3.4.29' /usr/bin/ld: /workspaces/plhtn_python/.venv/lib/libpdalcpp.so.17.0.0: undefined reference to std::__throw_bad_array_new_length()@GLIBCXX_3.4.29'
/usr/bin/ld: /workspaces/plhtn_python/.venv/lib/libtiledb.so.2.22: undefined reference to std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::str() const &@GLIBCXX_3.4.29' /usr/bin/ld: /workspaces/plhtn_python/.venv/lib/libtiledb.so.2.22: undefined reference to std::__exception_ptr::exception_ptr::_M_addref()@CXXABI_1.3.13'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/pdal_wrench.dir/build.make:435: pdal_wrench] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/pdal_wrench.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

Crashes when exporting to raster

Two crashes while specifying extent. And one example of (almost flawless) execution.

Runnin on Manjaro Linux
QGIS-versjon: 3.32.0-Lima
Qt-versjon: 5.15.10
Python-versjon: 3.11.3
GDAL-versjon: 3.7.0
GEOS-versjon: 3.11.2-CAPI-1.17.2
PROJ-versjon: Rel. 9.2.1, June 1st, 2023
PDAL-versjon: 2.5.5 (git-version: Release)

  1. log-output when drawing extent in window
    Inndataparametre:
    { 'ATTRIBUTE' : 'Z', 'FILTER_EXPRESSION' : 'Classification = 2 ', 'FILTER_EXTENT' : '262721.579400000,268085.082200000,6578236.486600000,6583358.773700000 [EPSG:25832]', 'INPUT' : '/home/.../2023_UTSIRA/copc_merged.laz', 'ORIGIN_X' : None, 'ORIGIN_Y' : None, 'OUTPUT' : '/home/.../2023_UTSIRA/1M_DEM.tif', 'RESOLUTION' : 1, 'TILE_SIZE' : 1000 }

PDAL wrench-kommando:/usr/lib/qgis/pdal_wrench to_raster --input=/home/.../2023_UTSIRA/copc_merged.laz --output=/home/.../2023_UTSIRA/1M_DEM.tif --attribute=Z --resolution=1 --tile-size=1000 "--filter=Classification == 2" "--bounds=([262722, 268085], [6.57824e+06, 6.58336e+06])" --threads=24

pdal_wrench: /usr/src/debug/pdal/PDAL-2.5.5-src/pdal/util/Bounds.cpp:93: pdal::BOX2D& pdal::BOX2D::grow(double): Assertion `valid()' failed.

Prosessen ble plutselig avsluttet
Execution failed after 0.16 sekunder


  1. log-output when specifying current map window as extent
    Inndataparametre:
    { 'ATTRIBUTE' : 'Z', 'FILTER_EXPRESSION' : 'Classification = 2 ', 'FILTER_EXTENT' : '262191.850700000,268978.999300000,6578175.000200000,6583424.989800000 [EPSG:25832]', 'INPUT' : '/home/.../2023_UTSIRA/copc_merged.laz', 'ORIGIN_X' : None, 'ORIGIN_Y' : None, 'OUTPUT' : '/home/.../2023_UTSIRA/1M_DEM.tif', 'RESOLUTION' : 1, 'TILE_SIZE' : 1000 }

PDAL wrench-kommando:/usr/lib/qgis/pdal_wrench to_raster --input=/home/.../2023_UTSIRA/copc_merged.laz --output=/home/.../2023_UTSIRA/1M_DEM.tif --attribute=Z --resolution=1 --tile-size=1000 "--filter=Classification == 2" "--bounds=([262192, 268979], [6.57818e+06, 6.58342e+06])" --threads=24

pdal_wrench: /usr/src/debug/pdal/PDAL-2.5.5-src/pdal/util/Bounds.cpp:93: pdal::BOX2D& pdal::BOX2D::grow(double): Assertion `valid()' failed.

Prosessen ble plutselig avsluttet
Execution failed after 0.15 sekunder


Finally, the same dataset but this time without specifying extent:
Inndataparametre:
{ 'ATTRIBUTE' : 'Z', 'FILTER_EXPRESSION' : 'Classification = 2 ', 'FILTER_EXTENT' : None, 'INPUT' : '/home/.../2023_UTSIRA/copc_merged.laz', 'ORIGIN_X' : None, 'ORIGIN_Y' : None, 'OUTPUT' : '/home/.../2023_UTSIRA/1M_DEM.tif', 'RESOLUTION' : 1, 'TILE_SIZE' : 1000 }

PDAL wrench-kommando:/usr/lib/qgis/pdal_wrench to_raster --input=/home/.../2023_UTSIRA/copc_merged.laz --output=/home/.../2023_UTSIRA/1M_DEM.tif --attribute=Z --resolution=1 --tile-size=1000 "--filter=Classification == 2" --threads=24
(writers.gdal Error) GDAL failure (1) libpodofo.so.0.9.8: cannot open shared object file: No such file or directory
(writers.gdal Error) GDAL failure (1) libpodofo.so.0.9.8: cannot open shared object file: No such file or directory
(writers.gdal Error) GDAL failure (1) libpodofo.so.0.9.8: cannot open shared object file: No such file or directory
(writers.gdal Error) GDAL failure (1) libpodofo.so.0.9.8: cannot open shared object file: No such file or directory
0....10....20....30....40....50....60....70....80....90....100 - done.

Prosessen er fullfΓΈrt
Execution completed in 84.02 sekunder (1 minutt 24 sekunder)
Resultat:
{'OUTPUT': '/home/.../2023_UTSIRA/1M_DEM.tif'}

This - despite the GDAL errors - actually produces a DEM rasterfile in the correct location.

All three were from the same session. Input and output set for first attempt, after that the parameters were changed in the same session.

pdal_wrench: symbol lookup error: pdal_wrench: undefined symbol: [continued in text]

I'm trying to get pdal_wrench to work on ubuntu 22.04 but am stuck at the following error:

pdal_wrench: symbol lookup error: pdal_wrench: undefined symbol: _ZN4pdal9FileUtils10fromNativeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE

The full output is appended

Thanks for taking a look at this.

Michael

(pdal) /time_trials/wrench2$ cmake .
-- The CXX compiler identification is GNU 11.4.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found GDAL: /home/lefsky/miniconda3/envs/pdal/lib/libgdal.so (found version "3.4.1")
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Pedantic compiler settings enabled
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lefsky/time_trials/wrench2
(pdal) lefsky@lefsky-X10DRi:
/time_trials/wrench2$ make
[ 4%] Building CXX object CMakeFiles/pdal_wrench.dir/src/main.cpp.o
[ 8%] Building CXX object CMakeFiles/pdal_wrench.dir/src/alg.cpp.o
[ 13%] Building CXX object CMakeFiles/pdal_wrench.dir/src/boundary.cpp.o
[ 17%] Building CXX object CMakeFiles/pdal_wrench.dir/src/clip.cpp.o
[ 21%] Building CXX object CMakeFiles/pdal_wrench.dir/src/density.cpp.o
[ 26%] Building CXX object CMakeFiles/pdal_wrench.dir/src/info.cpp.o
[ 30%] Building CXX object CMakeFiles/pdal_wrench.dir/src/merge.cpp.o
[ 34%] Building CXX object CMakeFiles/pdal_wrench.dir/src/thin.cpp.o
[ 39%] Building CXX object CMakeFiles/pdal_wrench.dir/src/to_raster.cpp.o
[ 43%] Building CXX object CMakeFiles/pdal_wrench.dir/src/to_raster_tin.cpp.o
[ 47%] Building CXX object CMakeFiles/pdal_wrench.dir/src/to_vector.cpp.o
[ 52%] Building CXX object CMakeFiles/pdal_wrench.dir/src/translate.cpp.o
[ 56%] Building CXX object CMakeFiles/pdal_wrench.dir/src/utils.cpp.o
[ 60%] Building CXX object CMakeFiles/pdal_wrench.dir/src/vpc.cpp.o
[ 65%] Building CXX object CMakeFiles/pdal_wrench.dir/src/tile/tile.cpp.o
[ 69%] Building CXX object CMakeFiles/pdal_wrench.dir/src/tile/BufferCache.cpp.o
[ 73%] Building CXX object CMakeFiles/pdal_wrench.dir/src/tile/Cell.cpp.o
[ 78%] Building CXX object CMakeFiles/pdal_wrench.dir/src/tile/FileProcessor.cpp.o
[ 82%] Building CXX object CMakeFiles/pdal_wrench.dir/src/tile/Las.cpp.o
[ 86%] Building CXX object CMakeFiles/pdal_wrench.dir/src/tile/TileGrid.cpp.o
[ 91%] Building CXX object CMakeFiles/pdal_wrench.dir/src/tile/ThreadPool.cpp.o
[ 95%] Building CXX object CMakeFiles/pdal_wrench.dir/src/tile/Writer.cpp.o
[100%] Linking CXX executable pdal_wrench
[100%] Built target pdal_wrench
(pdal) lefsky@lefsky-X10DRi:~/time_trials/wrench2$ pdal_wrench
pdal_wrench: symbol lookup error: pdal_wrench: undefined symbol: _ZN4pdal9FileUtils10fromNativeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE

Proper releases?

Are you guys at the point of making proper releases? To be eligible for inclusion in Conda Forge, the software must have actual releases. I would be happy to manage the Conda Forge feedstock of PDAL wrench.

No points rendered in VPC

When I build a VPC, I get the boundaries display, but at any zoom level the points are never displayed.
On the other hand, creating an overview works and the points in the overview are displayed.
All treatments and renderings work on individual point clouds.
The data used corresponds to the LIDARHD_1-0_LAZ_GR1-0452_6227-2021.7z tile.
geoservices.ign.fr/lidarhd
Uncompressed with 7z, we obtain 4 point clouds in laz format
Semis_2021_0452_6226_LA93_IGN69.laz
Semis_2021_0452_6227_LA93_IGN69.laz
Semis_2021_0453_6226_LA93_IGN69.laz
Semis_2021_0453_6227_LA93_IGN69.laz
Point clouds have no src declared

I've tried:
change laz format to las
the problem is the same

Assigning a projection (EPSG:2154)
The problem is the same

I've tried a VPC as a temporary file and as a permanent file
The problem is the same
QGis version 3.32
Windows 11 Pro

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.