netcdf-c/docs
Dennis Heimbigner 231ae96c4b Add support for Zarr string type to NCZarr
* re: https://github.com/Unidata/netcdf-c/pull/2278
* re: https://github.com/Unidata/netcdf-c/issues/2485
* re: https://github.com/Unidata/netcdf-c/issues/2474

This PR subsumes PR https://github.com/Unidata/netcdf-c/pull/2278.
Actually is a bit an omnibus covering several issues.

## PR https://github.com/Unidata/netcdf-c/pull/2278
Add support for the Zarr string type.
Zarr strings are restricted currently to be of fixed size.
The primary issue to be addressed is to provide a way for user to
specify the size of the fixed length strings. This is handled by providing
the following new attributes special:
1. **_nczarr_default_maxstrlen** —
This is an attribute of the root group. It specifies the default
maximum string length for string types. If not specified, then
it has the value of 64 characters.
2. **_nczarr_maxstrlen** —
This is a per-variable attribute. It specifies the maximum
string length for the string type associated with the variable.
If not specified, then it is assigned the value of
**_nczarr_default_maxstrlen**.

This PR also requires some hacking to handle the existing netcdf-c NC_CHAR
type, which does not exist in zarr. The goal was to choose numpy types for
both the netcdf-c NC_STRING type and the netcdf-c NC_CHAR type such that
if a pure zarr implementation read them, it would still work and an
NC_CHAR type would be handled by zarr as a string of length 1.

For writing variables and NCZarr attributes, the type mapping is as follows:
* "|S1" for NC_CHAR.
* ">S1" for NC_STRING && MAXSTRLEN==1
* ">Sn" for NC_STRING && MAXSTRLEN==n

Note that it is a bit of a hack to use endianness, but it should be ok since for
string/char, the endianness has no meaning.

For reading attributes with pure zarr (i.e. with no nczarr
atribute types defined), they will always be interpreted as of
type NC_CHAR.

## Issue: https://github.com/Unidata/netcdf-c/issues/2474
This PR partly fixes this issue because it provided more
comprehensive support for Zarr attributes that are JSON valued expressions.
This PR still does not address the problem in that issue where the
_ARRAY_DIMENSION attribute is incorrectly set. Than can only be
fixed by the creator of the datasets.

## Issue: https://github.com/Unidata/netcdf-c/issues/2485
This PR also fixes the scalar failure shown in this issue.
It generally cleans up scalar handling.
It also adds a note to the documentation describing that
NCZarr supports scalars while Zarr does not and also how
scalar interoperability is achieved.

## Misc. Other Changes
1. Convert the nczarr special attributes and keys to be all lower case. So "_NCZARR_ATTR" now used "_nczarr_attr. Support back compatibility for the upper case names.
2. Cleanup my too-clever-by-half handling of scalars in libnczarr.
2022-08-27 20:21:13 -06:00
..
images Correct error in make dist 2022-06-10 14:08:57 -06:00
obsolete Docs migration 2021-11-11 10:47:49 -07:00
old docs cleanup 2021-11-11 11:40:45 -07:00
static-pages correct links for gliderscope and netcdfninja in software.html 2022-05-12 15:07:42 -06:00
.gitignore Fix up documentation to replace old auth documentation 2017-08-20 18:27:48 -06:00
architecture.dox Use PnetCDF instead of parallel-netcdf to avoid confusion with 2018-09-17 17:18:48 -05:00
attribute_conventions.md Docs migration 2021-11-11 10:47:49 -07:00
auth.md Significantly Improve Amazon S3 Cloud Storage Support 2021-09-27 18:36:33 -06:00
building-with-cmake.md Updated documentation to reflect minimum cmake version of 2.8.12. 2014-07-29 14:53:12 -06:00
byterange.dox changed/removed references to jetstream remotetest instance. 2020-01-03 13:12:58 -07:00
CMakeLists.txt adding quantize documentation 2022-05-28 13:48:16 +03:00
COPYRIGHT.md Updating files to refer to the top-level COPYRIGHT file. 2018-12-04 15:52:43 -07:00
credits.md Docs migration 2021-11-11 10:47:49 -07:00
dispatch.dox Spelling fixes 2019-09-18 08:03:01 -06:00
dispatch.md fixed some doxygen warnings 2022-05-28 18:54:08 +03:00
docmap.pdf The 'Credits' page is now a generated document distributed with netcdf, even though the contents are static. It is currently included as a subpage underneath the NetCDF Overview page. Also, renamed 'Credits' on the Overview page to 'About NetCDF'. 2014-12-10 11:14:43 -07:00
Doxyfile.developer Updated doxygen version, added target release date to RELEASE_NOTES 2022-06-03 11:03:00 -06:00
Doxyfile.in turned on WARN_AS_ERROR and added documentation build to CI 2022-06-07 15:24:21 +03:00
Doxyfile.user docs cleanup 2021-11-11 11:40:45 -07:00
DoxygenLayout.xml Further reorganization. Figured out how subpage works with different files. Renamed some of the header cells. 2014-12-09 16:36:15 -07:00
esg.md More doxygen tweaks. 2016-01-15 12:23:56 -07:00
FAQ.md Merge branch 'main' into ejh_doc_4 2022-05-05 08:16:40 -06:00
file_format_specifications.md This PR adds EXPERIMENTAL support for accessing data in the 2020-06-28 18:02:47 -06:00
filters.md moved quantize error documentation 2022-06-23 09:51:09 +02:00
footer.html Update footer.html and Doxyfile to use local Unidata image. 2021-08-24 12:38:40 -06:00
groups.dox Renamed man4 directory to docs. 2014-05-21 14:40:39 -06:00
header.html Renamed man4 directory to docs. 2014-05-21 14:40:39 -06:00
indexing.dox Provide a Number of fixes/improvements to NCZarr 2020-11-19 17:01:04 -07:00
inmeminternal.dox Spelling fixes 2019-09-18 08:03:01 -06:00
inmemory.md Spelling fixes 2019-09-18 08:03:01 -06:00
install-fortran.md Docs migration 2021-11-11 10:47:49 -07:00
internal.dox Change (again), and hopefully simplify, the file model inference algorithm. 2019-09-29 12:59:28 -06:00
internal.md fixed some doxygen warnings 2022-05-28 19:12:52 +03:00
known_problems.md docs cleanup 2021-11-11 11:40:45 -07:00
mainpage.dox docs cleanup 2021-11-11 11:40:45 -07:00
Makefile.am adding quantize documentation 2022-05-28 13:48:16 +03:00
nczarr.md Add support for Zarr string type to NCZarr 2022-08-27 20:21:13 -06:00
netcdf-50x50.png Renamed man4 directory to docs. 2014-05-21 14:40:39 -06:00
netcdf.m4 Docs migration 2021-11-11 10:47:49 -07:00
notes.md fixed some doxygen warnings 2022-05-28 18:54:08 +03:00
quantize.md moved quantize error documentation 2022-06-23 09:51:09 +02:00
release_header.html Update release_header.html 2022-01-19 11:50:59 -07:00
release.css Tweaks to css 2016-01-21 11:19:23 -07:00
tests.md Added a document to catalog what the various tests are. 2016-06-06 14:51:57 -06:00
testserver.dox Update d4ts.war and dts.war build instructions 2021-02-26 15:14:57 -07:00
tutorial.dox more doxygen warning fixes 2022-05-03 12:54:14 -06:00
unidata_logo_cmyk.png Renamed man4 directory to docs. 2014-05-21 14:40:39 -06:00
windows-binaries.md Incorporated GitHub-generated release notes into the manually managed release notes, and updated the list of included dependencies for Windows installer downloads. 2022-06-10 14:43:50 -06:00