- Added
gio.find_closures()to automatically find closing contours in a grid. Also added short notebook about it to the docs. Many thanks to Rob Gooder for hugely improving this algorithm. - Development note: switched to PEP621-style build system, using only
pyproject.toml. - Now also building on and supporting Python 3.11.
- Moving to more conventional semantic versioning.
- Fixed bug issue #26, which garbled string comments in
array_to_zmap(). - Implemented enhancement issue #17. Created
gio.unmap_to_dataarray(), putting the guts of the algorithm into its own library,unmap, which is now a dependency ofgio. The library only produces NumPy arrays, sogioadds thexarraywrapper and a couple of extra options.
The overall plan of gio is starting to take shape. In general, the plan is to read specialist subsurace formats of various file types, with either xarray.Dataset or xarray.DataArray as the target. Then, gio will write these same formats via an accessor method on the xarray object (and possibly also via ordinary functions). This release implements this pattern for the first time, specifically for the ZMAP format.
- Added the
zmapmodule, with functions for reading ZMAP files (read_zmap()) and for writing files starting from anxarray.DataArrayor from a NumPy array. - Added
xarray.DataArrayaccessor (inxarray.py) to save in ZMAP and OpendTect formats. The plan is to add more target formats the the accessor, according to need. - Added tests for the ZMAP components. Removed
run_tests.pyand put thepytestoptions insetup.cfg, which seems cleaner. - Started trying to maintain this file properly!
- Note that there are two 'work in progress' modules:
esri.pyandusgs.py, which will eventually read some common DEM formats.
In general, everything is a work in progress but if there is a chapter on something in the User Guide then it mostly works, at least for the test cases I have. If you have a file that should work but doesn't, please consider making an issue.
Feedback is welcome on whether the target format for readers should be xarray.Dataset every time, even for singleton files.
- Added the
randommodule, which generates random surfaces using sums of Perlin noise. The high-level interface isgio.generate_random_surface(). Also added a notebook for help on this module. - Added the
logomodule, which plots gio's logo. Using the logo in the docs.
- New module:
surfer, adapted from Seequent'ssteno3d_surfer, for reading Surfer 6 binary and ASCII files, and Surfer 7 binary files. The module does not write files yet. - Started development on
iesxmodule for reading IESX formatted files, eg from Petrel or OpendTect
- Early development included setting up the package, and adding the
opendtectandxy_to_gridmodules.