Skip to content

Commit e800514

Browse files
authored
Update README.md
1 parent 62a311a commit e800514

File tree

1 file changed

+41
-28
lines changed

1 file changed

+41
-28
lines changed

README.md

Lines changed: 41 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,14 @@ This enables the user to freely mix+match operations from both projects, getting
1414
* [Motivation](#motivation)
1515
* [Primary Use](#primary-use)
1616
* [Secondary Uses](#secondary-uses)
17+
* [Principles](#principles)
1718
* [Working Usage Examples](#code-examples)
1819
* [API documentation](#api-documentation)
20+
* [Installation](#installation)
1921
* [Project Status](#project-status)
2022
* [Code stability](#code-stability)
2123
* [Iris and Xarray version compatibility](#iris-and-xarray-compatibility)
2224
* [Current Limitations](#known-limitations)
23-
* [Principles](#principles)
2425
* [References](#references)
2526
* [Developer Notes](#developer-notes)
2627

@@ -102,60 +103,72 @@ This could be added in future, but it is also true that many such operations (li
102103
indexing) may be better done using Iris/Xarray.
103104

104105

106+
# Principles
107+
* ncdata represents NetCDF data as Python objects
108+
* ncdata objects can be freely manipulated, independent of any data file
109+
* ncdata variables can contain either real (numpy) or lazy (Dask) arrays
110+
* ncdata can be losslessly converted to and from actual NetCDF files
111+
* Iris or Xarray objects can be converted to and from ncdata, in the same way that
112+
they are read from and saved to NetCDF files
113+
* **_translation_** between Xarray and Iris is based on conversion to ncdata, which
114+
is in turn equivalent to file i/o
115+
* thus, Iris/Xarray translation is equivalent to _saving_ from one
116+
package into a file, then _loading_ the file in the other package
117+
* ncdata exchanges variable data directly with Iris/Xarray, with no copying of real
118+
data or computing of lazy data
119+
* ncdata exchanges lazy arrays with files using Dask 'streaming', thus allowing
120+
transfer of arrays larger than memory
121+
122+
105123
# Code Examples
106124
* mostly TBD
107125
* proof-of-concept script for
108126
[netCDF4 file i/o](https://github.com/pp-mo/ncdata/blob/main/tests/integration/example_scripts/ex_ncdata_netcdf_conversion.py)
109127
* proof-of-concept script for
110128
[iris-xarray conversions](https://github.com/pp-mo/ncdata/blob/main/tests/integration/example_scripts/ex_iris_xarray_conversion.py)
111129

130+
112131
# API documentation
113132
* see the [ReadTheDocs build](https://ncdata.readthedocs.io/en/latest/index.html)
114133

134+
135+
# Installation
136+
Not yet building as a package, or uploading to PyPI / conda-forge. Though this is planned for future "proper" releases.
137+
138+
Code is pure Python. Download and add repo>/lib to PYTHONPATH.
139+
An installation process will be provided shortly (Jan 2024) ...
140+
115141
# Project Status
116142
## Code Stability
143+
We intend to follow [PEP 440](https://peps.python.org/pep-0440/) or (older) [SemVer](https://semver.org/) versioning principles.
117144

118-
Code here is all still experimental.
119-
Current APIs are unsupported and not stable.
120-
There is no release yet.
145+
Release version is at **"v0.0.1"**.
146+
This is a first complete implementation, with functional operational of all public APIs.
147+
A **release "v0.1.0"** will follow when build and deployment mechanisms are sorted out.
148+
The code is however still experimental, and APIs are not stable (hence no major version yet).
121149

122150
## Iris and Xarray Compatibility
123151
### Iris
124-
* **currently** functions with a test branch of Iris
125-
* branch in pp-mo fork : https://github.com/pp-mo/iris/tree/bridge_support , *or*
126-
* this PR in main Iris repo : https://github.com/SciTools/iris/pull/5216
127-
* **in future** the necessary changes should be included and released with
128-
(planned) [Iris 3.7](https://github.com/SciTools/iris/discussions/5209).
152+
* tested working with latest Iris
153+
* compatible with iris >= v3.7.0
154+
* see : [support added in v3.7.0](https://scitools-iris.readthedocs.io/en/stable/whatsnew/3.7.html#internal)
129155
### Xarray
130156
* appears working against 'current' Xarray at time of writing
131-
* [v2023.03.0 (March 22, 2023)](https://docs.xarray.dev/en/latest/whats-new.html#v2023-03-0-march-22-2023)
157+
* [v2023.11.0 (November 16, 2023)](https://docs.xarray.dev/en/latest/whats-new.html#v2023-11-0-nov-16-2023)
132158

133159
## Known limitations
134160
Unsupported features : not planned
135161
* user-defined datatypes are not supported
136162
* this includes compound and variable-length types
137163

138164
Unsupported features : planned for future release
139-
* groups (not yet fully supported)
140-
* unlimited dimensions (not yet fully supported)
141-
* file compression and encoding options
165+
* groups (not yet fully supported ?)
142166
* file output chunking control
143167

144-
# Principles
145-
* ncdata represents NetCDF data as Python objects
146-
* ncdata objects can be freely manipulated, independent of any data file
147-
* ncdata variables can contain either real (numpy) or lazy (Dask) arrays
148-
* ncdata can be losslessly converted to and from actual NetCDF files
149-
* Iris or Xarray objects can be converted to and from ncdata, in the same way that
150-
they are read from and saved to NetCDF files
151-
* **_translation_** between Xarray and Iris is based on conversion to ncdata, which
152-
is in turn equivalent to file i/o
153-
* thus, Iris/Xarray translation is equivalent to _saving_ from one
154-
package into a file, then _loading_ the file in the other package
155-
* ncdata exchanges variable data directly with Iris/Xarray, with no copying of real
156-
data or computing of lazy data
157-
* ncdata exchanges lazy arrays with files using Dask 'streaming', thus allowing
158-
transfer of arrays larger than memory
168+
Untested features : probably done, pending test
169+
* unlimited dimensions (not yet fully supported)
170+
* file compression and encoding options
171+
* iris and xarray load/save keywords generally
159172

160173
# References
161174
* Iris issue : https://github.com/SciTools/iris/issues/4994

0 commit comments

Comments
 (0)