jblindsay / whitebox-tools

An advanced geospatial data analysis platform
https://www.whiteboxgeo.com/
MIT License
964 stars 160 forks source link

whitebox_tools 'Unrecognized tool name NormalizeLidar' #395

Open ithaca-oyler opened 8 months ago

ithaca-oyler commented 8 months ago

I am using whitebox_tools v2.3.0 and I would like to use the normalize_lidar function. However, when calling the function, I get this error:

thread 'main' panicked at 'Unrecognized tool name NormalizeLidar.', whitebox-tools-app/src/main.rs:72:21 note: run withRUST_BACKTRACE=1environment variable to display a backtrace

The help function ?wbt.normalize_lidar does indeed show the documentation, but print(wbt.tool_help("normalize_lidar")) shows the same thread main panicked at etc. error as listed above with calling the function itself. Additionally, normalize_lidar does not appear when listing the wbt tools with the "normalize" keyword: print(wbt.list_tools(['normalize']).keys())

I have confirmed I am setting the whitebox directory to the location of the binary file and the working directory to where my data is.

jblindsay commented 8 months ago

Hello, can I clarify are you using WhiteboxTools or Whitebox Workflows? If this is in fact an issue with Whitebox Workflows, then I believe that I have probably resolved this issue in the latest version.

ithaca-oyler commented 8 months ago

Hello! I'm using WhiteboxTools and the issue is within WhiteboxTools only. I have experimented with the NormalizeLidar tool with Whitebox Workflows (only to test it) and I didn't have any issues there.

Afrancioni commented 8 months ago

Hello @ithaca-oyler

I just successfully ran the NormalizeLidar Tool using whiteboxTools v2.3 without any errors. I was using the WhiteboxRunner front end.

Screen Shot 2024-03-11 at 7 28 10 PM

Are you interacting with the tools using a front end or command line/python?

ithaca-oyler commented 7 months ago

I am using the command line/python

Afrancioni commented 7 months ago

Hi @ithaca-oyler

I got it working from command line without any issues. I have attached a screengrab of my call

Screen Shot 2024-03-13 at 7 42 40 PM
ithaca-oyler commented 7 months ago

Hi @Afrancioni. Interesting... I'm still getting the same errors in the command line and in my jupyter notebook. Just to confirm, was your version of the package downloaded with conda? I used conda-forge for my installation. whiteboxtools_commandline

ithaca-oyler commented 7 months ago

I'm not sure if this is helpful at all, but I decided to dig into the stack trace, error messages, and explore the repo a little bit more and found that I have the same issue with all of the tools in whitebox-plugins in https://github.com/jblindsay/whitebox-tools/tree/5a82f513e77cf1c74778995b5d6304dd9d9f372f/whitebox-plugins. I'm not sure if this is an installation issue with conda-forge on my end or what. Feel free to ignore this comment if it ends up being unhelpful or totally unrelated!

Afrancioni commented 7 months ago

Hi @ithaca-oyler I am using v 2.3 of WhiteboxTools downloaded from the Whitebox Geospatial website (https://www.whiteboxgeo.com/download-whiteboxtools/). I did not pip install or use conda. I am assuming you did? Would you be able to try downloading directly from our website and test if you can run the tools from command line? I am just trying to figure out where exactly your issue is.

stephenwaltersNV5 commented 7 months ago

I would like to add I am experiencing the same issue running Conditional Evaluation through a python script. Let me know if I can provide more information or if I should start a new thread.

whitebox 2.3.1 from conda-forge.

Error

thread 'main' panicked at 'Unrecognized tool name ConditionalEvaluation.', whitebox-tools-app\src\main.rs:72:21
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Code snip

from whitebox import WhiteboxTools
wbt = WhiteboxTools()

wbt.conditional_evaluation(
                i=input_raster,
                output=output_raster,
                statement="value == 0",
                true=1,
                false=None,
            )
ithaca-oyler commented 7 months ago

@Afrancioni I downloaded v2.3 from the Whitebox Geospatial website and I was able to install the Rust compiler and clone the whitebox_tools repo, but I still received the same "Unrecognized tool name" error message for NormalizeLidar in both my jupyter notebook and the command line. I am able to use other lidar and raster tools, however (also both in the command line and in a jupyter notebook).

Afrancioni commented 7 months ago

@ithaca-oyler Can you please paste your command line call?

ithaca-oyler commented 7 months ago

This is the command line call I'm using: .\whitebox_tools.exe -r=NormalizeLidar --wd=<path to my data> -i=input.las -o=output.las --dtm=dtm.tif

Afrancioni commented 7 months ago

@ithaca-oyler are you able to see the name of the tool in the tool list when you call --list_tool? Id be curious if you can run the tool using WhiteboxRunner?

ithaca-oyler commented 7 months ago

@Afrancioni It does not show up when --list_tool is called. It also does not appear in the list of tools available to run in the WhiteboxRunner.

Afrancioni commented 7 months ago

@ithaca-oyler That is very strange. I just downloaded the WBT binary from our site here https://www.whiteboxgeo.com/download-whiteboxtools/ and all tools including the NormalizeLidar tool appear in WhiteboxRunner and when I call --list_tool. I know you have downloaded WBT through conda but I am not sure how that puts WBT together.

ithaca-oyler commented 7 months ago

@Afrancioni Thank you for your patience during the delay in my response. I uninstalled rust and whitebox_tools and tried the download again with no success in using the normalize_lidar tool or having it show up in the WhiteboxRunner. I've attached the log from cargo build --release. Do you see anything unusual here? Unfortunately, I don't know anything about Rust. whiteboxtools_cargo_build_log.txt