-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
TileDB support - https://www.tiledb.io #1402
Conversation
Some of travis builds are failing and yet the tiledb driver isn't enabled in travis. Is this a known problem or should I look into it some more? |
There are some code analysis being done even for uncompiled code, like no tabs, cppcheck, etc |
I am not seeing errors due to tabs/cppcheck, they are related to pytest errors with the GTIFF driver. |
You have to check all targets. They don't do all the same checks.
I let you check other ones |
Very partial review (I didn't have a look at tiledbdataset.cpp)...
|
Thanks for the quick look over. I use bStrict and -SDS to get past the initial gdal_translate check if the file has raster bands or subdatasets otherwise the command never reaches the driver. It is a hack for sure. If I add a dedicated method to that driver then I lose the additional gdal tooling (translate and warp in particular). I can find a small hdf file for testing, I was using a larger one for development :) |
99e936e
to
49ad15a
Compare
@normanb I've a branch based on yours at https://github.com/rouault/gdal/tree/tiledb_fixes_1 with a few fixes. I tried to issue a PR on TileDB-Inc/gdal:tiledb-dev but github doesn't show TileDB-Inc/gdal as a potential base (probably because not forked from github UI) |
@rouault thanks for the changes, I have created a PR here TileDB-Inc#2. I have a couple of CI issues to fix and then I will merge your changes in. |
@rouault I will hold off merging your changes until you are ready |
or
I see that a custom error handler is installed, but I guess early exit should be done when tiledb::Array::create() fails |
Another crashing situation
|
I'm done for tonight |
Thanks @rouault, your changes look great. For the invalid path I propose using tiledb::VFS (tiledb virtual file system) to check the parent path (or remote) exists and if not exiting early. The same with the second crash, if the path exists then the code will error out early. You have changed some of this code to use unique pointers so I will merge that in first. I will get to this tomorrow (central time). |
Regarding the crashes, in addition to the fixes you suggest, shouldn't exceptions be caught if libtiledb can throw ? |
this is tied to the error_handler, currently I have it using |
ok, I think it might be more reliable to do put the content of every method that calls the tiledb API within |
…rnings from ancient GCC about variable shadowing
lets hold off |
I hosed my local install of gdal for testing invalid creation paths, I will check again tomorrow (central time) |
new PR: TileDB-Inc#3 |
@rouault I ran the docker image travisci/ci-garnet:packer-1512502276-986baf0 and was able to build tiledb with GDAL as root without any problems. I will add this to my tasks for the osgeo code sprint, I have backed out my changes so we can move forward with merging this PR. |
Squashed and merged |
Thanks @rouault for the review and code changes :) |
What does this PR do?
This PR adds support for TileDB. https://www.tiledb.io
In particular it add simple copying of subdatasets from HDF5 and netCDF, by using the -SDS parameter.
e.g.
gdal_translate -OF TileDB -SDS DeepBlue-SeaWiFS-1.0_L3_20100101_v004-20130604T131317Z.h5 DeepBlue
The code also supports the GDAL API between regular rasters.
There are two items of particular interest;
Subdataset support in the TileDB driver is quite simple, I hack this by creating the XML tree on Create. This is currently overwritten by
gdalinfo -stats
, once we approve the metadata approach I will fix this bug.Secondly, I copy a block of a dataset with multiple subdatasets. I would like to use the swath calculation code in rasterio, can this be public rather than a static internal function?
What are related issues/pull requests?
Tasklist