Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build with GDAL? #23

Closed
mccarthyryanc opened this issue Nov 26, 2018 · 3 comments
Closed

Build with GDAL? #23

mccarthyryanc opened this issue Nov 26, 2018 · 3 comments

Comments

@mccarthyryanc
Copy link

It looks like there are Rust bindings for GDAL. Is it possibly the offload the Raster/Vector IO to that library for more supported file options?

@jblindsay
Copy link
Owner

I understand why you would want WhiteboxTools to use GDAL in the backend for raster/vector IO. However, using these bindings would require the user to install GDAL ahead of time. One of the design goals of the WhiteboxTools project is to have a stand-alone executable that does not rely on other libraries, and is therefore very easy for users to install and use. Now this design has certain compromises built into it. One of them is that we will necessarily never support as wide a range of file formats as GDAL does. Another one is that I have to write custom encoders and decoders for each format that we do support. Believe me, I get no joy in writing a GeoTIFF reader/writer and all that know me know my disdain for the seemingly infinite flexibility of the file format. However, unless I'm willing to give up on the idea of a single contained executable, this is what I need to do. Would I rather spend my time writing novel and interesting geospatial analysis tools than writing a reader for the LAS format? You bet I would. Would I rather spend the time completing a vector buffering tool for WhiteboxTools than trying to get the GeoTIFF reader to understand some obscure compression format that a user has all of their data stored in? Yes I would. But until there is a Rust library equivalent to GDAL that would allow me to statically link these capabilities into WhiteboxTools, I'm afraid that I need to go it alone and re-write the functionality. I'm sorry if that's not the reply that you were hoping for. If there is some critical file format, that you think is widely used in the industry and that is relatively open in its description (i.e. a specification exists) then let me know and I can try to incorporate it.

@mccarthyryanc
Copy link
Author

@jblindsay , completely understand your design decisions. I didn't see any mention of GDAL bindings so I figured I'd just ask. Great set of tools and awesome work with the Rust implementation!

@jblindsay
Copy link
Owner

@mccarthyryanc Yes, I was aware of the Rust bindings to GDAL and had in the inception of the project thought about using them but ultimately decided that the need for a stand-alone application was more inline with the project goals. Anyhow, thank you for raising the issue again. Do consider voicing an opinion if you think that there are vital file formats that are currently unsupported or if you have troubles with reading/writing any of the currently support formats. For example, one user recently reported an issue with reading their GeoTIFF data that led to an important improvement in WhiteboxTools. I wouldn't have been able to make this improvement had they not reported it, so I do value these contributions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants