- 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, sogio
adds thexarray
wrapper 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
zmap
module, with functions for reading ZMAP files (read_zmap()
) and for writing files starting from anxarray.DataArray
or from a NumPy array. - Added
xarray.DataArray
accessor (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.py
and put thepytest
options insetup.cfg
, which seems cleaner. - Started trying to maintain this file properly!
- Note that there are two 'work in progress' modules:
esri.py
andusgs.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
random
module, 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
logo
module, 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
iesx
module for reading IESX formatted files, eg from Petrel or OpendTect
- Early development included setting up the package, and adding the
opendtect
andxy_to_grid
modules.