@@ -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
102103indexing) 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
134160Unsupported features : not planned
135161 * user-defined datatypes are not supported
136162 * this includes compound and variable-length types
137163
138164Unsupported 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