@earthyscience/netcdf4-wasm 0.1.3 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +9 -0
- package/README.md +3 -30
- package/dist/constants.d.ts +128 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +218 -31
- package/dist/constants.js.map +1 -1
- package/dist/group.d.ts +3 -1
- package/dist/group.d.ts.map +1 -1
- package/dist/group.js +48 -7
- package/dist/group.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/netcdf-getters.d.ts +107 -8
- package/dist/netcdf-getters.d.ts.map +1 -1
- package/dist/netcdf-getters.js +555 -123
- package/dist/netcdf-getters.js.map +1 -1
- package/dist/netcdf-worker.js +63 -68
- package/dist/netcdf-worker.js.map +1 -1
- package/dist/netcdf4-wasm.js +1 -1
- package/dist/netcdf4-wasm.wasm +0 -0
- package/dist/netcdf4.d.ts +139 -12
- package/dist/netcdf4.d.ts.map +1 -1
- package/dist/netcdf4.js +422 -43
- package/dist/netcdf4.js.map +1 -1
- package/dist/types.d.ts +159 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +1 -1
- package/dist/wasm-module.d.ts.map +1 -1
- package/dist/wasm-module.js +600 -6
- package/dist/wasm-module.js.map +1 -1
- package/package.json +17 -7
package/CONTRIBUTING.md
CHANGED
|
@@ -50,6 +50,12 @@ To start developing `netcdf4-wasm`:
|
|
|
50
50
|
npm test
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
+
and to build and synchronize with the **demo** do
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
npm run build-and-sync
|
|
57
|
+
```
|
|
58
|
+
|
|
53
59
|
### Project Structure
|
|
54
60
|
|
|
55
61
|
Understanding the project structure will help you navigate the codebase:
|
|
@@ -119,6 +125,9 @@ npm install
|
|
|
119
125
|
# Build the entire project (WASM + TypeScript)
|
|
120
126
|
npm run build
|
|
121
127
|
|
|
128
|
+
# Build and synchronize the demo
|
|
129
|
+
npm run build-and-sync
|
|
130
|
+
|
|
122
131
|
# Build only the WASM module
|
|
123
132
|
npm run build:wasm
|
|
124
133
|
|
package/README.md
CHANGED
|
@@ -37,46 +37,19 @@ npm install @earthyscience/netcdf4-wasm
|
|
|
37
37
|
|
|
38
38
|
## Quick Start
|
|
39
39
|
|
|
40
|
-
### Reading Files
|
|
41
40
|
```typescript
|
|
42
|
-
import { NetCDF4 } from '@earthyscience/netcdf4-wasm';
|
|
41
|
+
import { NetCDF4, DataTree } from '@earthyscience/netcdf4-wasm';
|
|
43
42
|
|
|
44
43
|
// Open existing file
|
|
45
44
|
const ds = await NetCDF4.fromBlobLazy(file);
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
// TODO: Add example
|
|
49
|
-
|
|
50
|
-
// Read variables
|
|
51
|
-
// TODO: Add example
|
|
52
|
-
|
|
53
|
-
// Close when done
|
|
54
|
-
ds.close();
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### Working with Groups
|
|
58
|
-
```typescript
|
|
59
|
-
// Access groups
|
|
60
|
-
// TODO: Add example
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### Writing Files
|
|
64
|
-
```typescript
|
|
65
|
-
import { NetCDF4 } from '@earthyscience/netcdf4-wasm';
|
|
66
|
-
|
|
67
|
-
// Create a new NetCDF file
|
|
68
|
-
// TODO: Add example
|
|
45
|
+
const dt = new DataTree(ds);
|
|
46
|
+
await dt.buildTree();
|
|
69
47
|
```
|
|
70
48
|
|
|
71
49
|
## API Reference
|
|
72
50
|
|
|
73
51
|
The API closely follows [netcdf4-python](https://unidata.github.io/netcdf4-python) conventions, making it intuitive for scientists familiar with Python.
|
|
74
52
|
|
|
75
|
-
**Core Classes:**
|
|
76
|
-
- `NetCDF4` - Main file interface
|
|
77
|
-
-
|
|
78
|
-
|
|
79
|
-
|
|
80
53
|
## Advanced Usage
|
|
81
54
|
|
|
82
55
|
<details>
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,22 +1,147 @@
|
|
|
1
1
|
export declare const NC_CONSTANTS: {
|
|
2
2
|
NC_NOERR: number;
|
|
3
|
+
NC_EBADID: number;
|
|
4
|
+
NC_ENFILE: number;
|
|
5
|
+
NC_EEXIST: number;
|
|
6
|
+
NC_EINVAL: number;
|
|
7
|
+
NC_EPERM: number;
|
|
8
|
+
NC_ENOTINDEFINE: number;
|
|
9
|
+
NC_EINDEFINE: number;
|
|
10
|
+
NC_EINVALCOORDS: number;
|
|
11
|
+
NC_EMAXDIMS: number;
|
|
12
|
+
NC_ENAMEINUSE: number;
|
|
13
|
+
NC_ENOTATT: number;
|
|
14
|
+
NC_EMAXATTS: number;
|
|
15
|
+
NC_EBADTYPE: number;
|
|
16
|
+
NC_EBADDIM: number;
|
|
17
|
+
NC_EUNLIMPOS: number;
|
|
18
|
+
NC_EMAXVARS: number;
|
|
19
|
+
NC_ENOTVAR: number;
|
|
20
|
+
NC_EGLOBAL: number;
|
|
21
|
+
NC_ENOTNC: number;
|
|
22
|
+
NC_ESTS: number;
|
|
23
|
+
NC_EMAXNAME: number;
|
|
24
|
+
NC_EUNLIMIT: number;
|
|
25
|
+
NC_ENORECVARS: number;
|
|
26
|
+
NC_ECHAR: number;
|
|
27
|
+
NC_EEDGE: number;
|
|
28
|
+
NC_ESTRIDE: number;
|
|
29
|
+
NC_EBADNAME: number;
|
|
30
|
+
NC_ERANGE: number;
|
|
31
|
+
NC_ENOMEM: number;
|
|
32
|
+
NC_EVARSIZE: number;
|
|
33
|
+
NC_EDIMSIZE: number;
|
|
34
|
+
NC_ETRUNC: number;
|
|
35
|
+
NC_EAXISTYPE: number;
|
|
36
|
+
NC_EDAP: number;
|
|
37
|
+
NC_ECURL: number;
|
|
38
|
+
NC_EIO: number;
|
|
39
|
+
NC_ENODATA: number;
|
|
40
|
+
NC_EDAPSVC: number;
|
|
41
|
+
NC_EDAS: number;
|
|
42
|
+
NC_EDDS: number;
|
|
43
|
+
NC_EDATADDS: number;
|
|
44
|
+
NC_EDAPURL: number;
|
|
45
|
+
NC_EDAPCONSTRAINT: number;
|
|
46
|
+
NC_ETRANSLATION: number;
|
|
47
|
+
NC_EACCESS: number;
|
|
48
|
+
NC_EAUTH: number;
|
|
49
|
+
NC_ENOTFOUND: number;
|
|
50
|
+
NC_ECANTREMOVE: number;
|
|
51
|
+
NC_EINTERNAL: number;
|
|
52
|
+
NC_EPNETCDF: number;
|
|
53
|
+
NC_EHDFERR: number;
|
|
54
|
+
NC_ECANTREAD: number;
|
|
55
|
+
NC_ECANTWRITE: number;
|
|
56
|
+
NC_ECANTCREATE: number;
|
|
57
|
+
NC_EFILEMETA: number;
|
|
58
|
+
NC_EDIMMETA: number;
|
|
59
|
+
NC_EATTMETA: number;
|
|
60
|
+
NC_EVARMETA: number;
|
|
61
|
+
NC_ENOCOMPOUND: number;
|
|
62
|
+
NC_EATTEXISTS: number;
|
|
63
|
+
NC_ENOTNC4: number;
|
|
64
|
+
NC_ESTRICTNC3: number;
|
|
65
|
+
NC_ENOTNC3: number;
|
|
66
|
+
NC_ENOPAR: number;
|
|
67
|
+
NC_EPARINIT: number;
|
|
68
|
+
NC_EBADGRPID: number;
|
|
69
|
+
NC_EBADTYPID: number;
|
|
70
|
+
NC_ETYPDEFINED: number;
|
|
71
|
+
NC_EBADFIELD: number;
|
|
72
|
+
NC_EBADCLASS: number;
|
|
73
|
+
NC_EMAPTYPE: number;
|
|
74
|
+
NC_ELATEFILL: number;
|
|
75
|
+
NC_ELATEDEF: number;
|
|
76
|
+
NC_EDIMSCALE: number;
|
|
77
|
+
NC_ENOGRP: number;
|
|
78
|
+
NC_ESTORAGE: number;
|
|
79
|
+
NC_EBADCHUNK: number;
|
|
80
|
+
NC_ENOTBUILT: number;
|
|
81
|
+
NC_EDISKLESS: number;
|
|
82
|
+
NC_ECANTEXTEND: number;
|
|
83
|
+
NC_EMPI: number;
|
|
3
84
|
NC_NOWRITE: number;
|
|
4
85
|
NC_WRITE: number;
|
|
5
86
|
NC_CLOBBER: number;
|
|
6
87
|
NC_NOCLOBBER: number;
|
|
88
|
+
NC_DISKLESS: number;
|
|
89
|
+
NC_MMAP: number;
|
|
90
|
+
NC_64BIT_DATA: number;
|
|
91
|
+
NC_CDF5: number;
|
|
92
|
+
NC_CLASSIC_MODEL: number;
|
|
93
|
+
NC_64BIT_OFFSET: number;
|
|
7
94
|
NC_NETCDF4: number;
|
|
95
|
+
NC_SHARE: number;
|
|
96
|
+
NC_INMEMORY: number;
|
|
97
|
+
NC_FORMAT_CLASSIC: number;
|
|
98
|
+
NC_FORMAT_64BIT_OFFSET: number;
|
|
99
|
+
NC_FORMAT_64BIT: number;
|
|
100
|
+
NC_FORMAT_NETCDF4: number;
|
|
101
|
+
NC_FORMAT_NETCDF4_CLASSIC: number;
|
|
102
|
+
NC_FORMAT_64BIT_DATA: number;
|
|
103
|
+
NC_FORMAT_CDF5: number;
|
|
104
|
+
NC_NAT: number;
|
|
8
105
|
NC_BYTE: number;
|
|
9
106
|
NC_CHAR: number;
|
|
10
107
|
NC_SHORT: number;
|
|
11
108
|
NC_INT: number;
|
|
109
|
+
NC_LONG: number;
|
|
12
110
|
NC_FLOAT: number;
|
|
13
111
|
NC_DOUBLE: number;
|
|
112
|
+
NC_UBYTE: number;
|
|
113
|
+
NC_USHORT: number;
|
|
114
|
+
NC_UINT: number;
|
|
115
|
+
NC_INT64: number;
|
|
116
|
+
NC_UINT64: number;
|
|
117
|
+
NC_STRING: number;
|
|
14
118
|
NC_LONGLONG: number;
|
|
119
|
+
NC_ULONGLONG: number;
|
|
120
|
+
NC_VLEN: number;
|
|
121
|
+
NC_OPAQUE: number;
|
|
122
|
+
NC_ENUM: number;
|
|
123
|
+
NC_COMPOUND: number;
|
|
124
|
+
NC_FIRSTUSERTYPEID: number;
|
|
125
|
+
NC_FILL: number;
|
|
126
|
+
NC_NOFILL: number;
|
|
15
127
|
NC_CHUNKED: number;
|
|
16
128
|
NC_CONTIGUOUS: number;
|
|
17
129
|
NC_COMPACT: number;
|
|
130
|
+
NC_VIRTUAL: number;
|
|
131
|
+
NC_ENDIAN_NATIVE: number;
|
|
132
|
+
NC_ENDIAN_LITTLE: number;
|
|
133
|
+
NC_ENDIAN_BIG: number;
|
|
18
134
|
NC_UNLIMITED: number;
|
|
19
135
|
NC_GLOBAL: number;
|
|
136
|
+
NC_MAX_DIMS: number;
|
|
137
|
+
NC_MAX_ATTRS: number;
|
|
138
|
+
NC_MAX_VARS: number;
|
|
139
|
+
NC_MAX_NAME: number;
|
|
140
|
+
NC_MAX_VAR_DIMS: number;
|
|
141
|
+
NC_NOCHECKSUM: number;
|
|
142
|
+
NC_FLETCHER32: number;
|
|
143
|
+
NC_NOSHUFFLE: number;
|
|
144
|
+
NC_SHUFFLE: number;
|
|
20
145
|
};
|
|
21
146
|
export declare const DATA_TYPE_MAP: {
|
|
22
147
|
[key: string]: number;
|
|
@@ -27,4 +152,7 @@ export declare const CONSTANT_DTYPE_MAP: {
|
|
|
27
152
|
export declare const DATA_TYPE_SIZE: {
|
|
28
153
|
[key: number]: number;
|
|
29
154
|
};
|
|
155
|
+
export declare const TYPE_NAMES: {
|
|
156
|
+
[key: number]: string;
|
|
157
|
+
};
|
|
30
158
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6KxB,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAiClD,CAAC;AAGF,eAAO,MAAM,kBAAkB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAcvD,CAAC;AAGF,eAAO,MAAM,cAAc,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAcnD,CAAC;AAGF,eAAO,MAAM,UAAU,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAkB/C,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -1,62 +1,249 @@
|
|
|
1
1
|
// NetCDF4 constants (populated from NetCDF4 headers)
|
|
2
|
+
// see: https://github.com/Unidata/netcdf-c/blob/main/include/netcdf.h
|
|
3
|
+
// https://docs.unidata.ucar.edu/netcdf-c/current/nc-error-codes.html
|
|
2
4
|
export const NC_CONSTANTS = {
|
|
3
5
|
// Error codes
|
|
4
6
|
NC_NOERR: 0,
|
|
7
|
+
NC_EBADID: -33,
|
|
8
|
+
NC_ENFILE: -34,
|
|
9
|
+
NC_EEXIST: -35,
|
|
10
|
+
NC_EINVAL: -36,
|
|
11
|
+
NC_EPERM: -37,
|
|
12
|
+
NC_ENOTINDEFINE: -38,
|
|
13
|
+
NC_EINDEFINE: -39,
|
|
14
|
+
NC_EINVALCOORDS: -40,
|
|
15
|
+
NC_EMAXDIMS: -41,
|
|
16
|
+
NC_ENAMEINUSE: -42,
|
|
17
|
+
NC_ENOTATT: -43,
|
|
18
|
+
NC_EMAXATTS: -44,
|
|
19
|
+
NC_EBADTYPE: -45,
|
|
20
|
+
NC_EBADDIM: -46,
|
|
21
|
+
NC_EUNLIMPOS: -47,
|
|
22
|
+
NC_EMAXVARS: -48,
|
|
23
|
+
NC_ENOTVAR: -49,
|
|
24
|
+
NC_EGLOBAL: -50,
|
|
25
|
+
NC_ENOTNC: -51,
|
|
26
|
+
NC_ESTS: -52,
|
|
27
|
+
NC_EMAXNAME: -53,
|
|
28
|
+
NC_EUNLIMIT: -54,
|
|
29
|
+
NC_ENORECVARS: -55,
|
|
30
|
+
NC_ECHAR: -56,
|
|
31
|
+
NC_EEDGE: -57,
|
|
32
|
+
NC_ESTRIDE: -58,
|
|
33
|
+
NC_EBADNAME: -59,
|
|
34
|
+
NC_ERANGE: -60,
|
|
35
|
+
NC_ENOMEM: -61,
|
|
36
|
+
NC_EVARSIZE: -62,
|
|
37
|
+
NC_EDIMSIZE: -63,
|
|
38
|
+
NC_ETRUNC: -64,
|
|
39
|
+
NC_EAXISTYPE: -65,
|
|
40
|
+
// NetCDF-4 error codes
|
|
41
|
+
NC_EDAP: -66,
|
|
42
|
+
NC_ECURL: -67,
|
|
43
|
+
NC_EIO: -68,
|
|
44
|
+
NC_ENODATA: -69,
|
|
45
|
+
NC_EDAPSVC: -70,
|
|
46
|
+
NC_EDAS: -71,
|
|
47
|
+
NC_EDDS: -72,
|
|
48
|
+
NC_EDATADDS: -73,
|
|
49
|
+
NC_EDAPURL: -74,
|
|
50
|
+
NC_EDAPCONSTRAINT: -75,
|
|
51
|
+
NC_ETRANSLATION: -76,
|
|
52
|
+
NC_EACCESS: -77,
|
|
53
|
+
NC_EAUTH: -78,
|
|
54
|
+
NC_ENOTFOUND: -90,
|
|
55
|
+
NC_ECANTREMOVE: -91,
|
|
56
|
+
NC_EINTERNAL: -92, // internal library error
|
|
57
|
+
NC_EPNETCDF: -93, // PnetCDF error
|
|
58
|
+
NC_EHDFERR: -101,
|
|
59
|
+
NC_ECANTREAD: -102,
|
|
60
|
+
NC_ECANTWRITE: -103,
|
|
61
|
+
NC_ECANTCREATE: -104,
|
|
62
|
+
NC_EFILEMETA: -105,
|
|
63
|
+
NC_EDIMMETA: -106,
|
|
64
|
+
NC_EATTMETA: -107,
|
|
65
|
+
NC_EVARMETA: -108,
|
|
66
|
+
NC_ENOCOMPOUND: -109,
|
|
67
|
+
NC_EATTEXISTS: -110,
|
|
68
|
+
NC_ENOTNC4: -111,
|
|
69
|
+
NC_ESTRICTNC3: -112,
|
|
70
|
+
NC_ENOTNC3: -113,
|
|
71
|
+
NC_ENOPAR: -114,
|
|
72
|
+
NC_EPARINIT: -115,
|
|
73
|
+
NC_EBADGRPID: -116,
|
|
74
|
+
NC_EBADTYPID: -117,
|
|
75
|
+
NC_ETYPDEFINED: -118,
|
|
76
|
+
NC_EBADFIELD: -119,
|
|
77
|
+
NC_EBADCLASS: -120,
|
|
78
|
+
NC_EMAPTYPE: -121,
|
|
79
|
+
NC_ELATEFILL: -122,
|
|
80
|
+
NC_ELATEDEF: -123,
|
|
81
|
+
NC_EDIMSCALE: -124,
|
|
82
|
+
NC_ENOGRP: -125,
|
|
83
|
+
NC_ESTORAGE: -126,
|
|
84
|
+
NC_EBADCHUNK: -127,
|
|
85
|
+
NC_ENOTBUILT: -128,
|
|
86
|
+
NC_EDISKLESS: -129,
|
|
87
|
+
NC_ECANTEXTEND: -130,
|
|
88
|
+
NC_EMPI: -131,
|
|
5
89
|
// File modes
|
|
6
|
-
NC_NOWRITE:
|
|
7
|
-
NC_WRITE:
|
|
8
|
-
NC_CLOBBER:
|
|
9
|
-
NC_NOCLOBBER:
|
|
10
|
-
|
|
11
|
-
//
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
90
|
+
NC_NOWRITE: 0x0000,
|
|
91
|
+
NC_WRITE: 0x0001,
|
|
92
|
+
NC_CLOBBER: 0x0000,
|
|
93
|
+
NC_NOCLOBBER: 0x0004,
|
|
94
|
+
NC_DISKLESS: 0x0008,
|
|
95
|
+
NC_MMAP: 0x0010, // deprecated
|
|
96
|
+
NC_64BIT_DATA: 0x0020,
|
|
97
|
+
NC_CDF5: 0x0020,
|
|
98
|
+
NC_CLASSIC_MODEL: 0x0100,
|
|
99
|
+
NC_64BIT_OFFSET: 0x0200,
|
|
100
|
+
NC_NETCDF4: 0x1000,
|
|
101
|
+
NC_SHARE: 0x0800,
|
|
102
|
+
NC_INMEMORY: 0x8000,
|
|
103
|
+
// Format versions
|
|
104
|
+
NC_FORMAT_CLASSIC: 1,
|
|
105
|
+
NC_FORMAT_64BIT_OFFSET: 2,
|
|
106
|
+
NC_FORMAT_64BIT: 2,
|
|
107
|
+
NC_FORMAT_NETCDF4: 3,
|
|
108
|
+
NC_FORMAT_NETCDF4_CLASSIC: 4,
|
|
109
|
+
NC_FORMAT_64BIT_DATA: 5,
|
|
110
|
+
NC_FORMAT_CDF5: 5,
|
|
111
|
+
// Data types (atomic types)
|
|
112
|
+
NC_NAT: 0, // Not A Type
|
|
113
|
+
NC_BYTE: 1, // signed 1-byte integer
|
|
114
|
+
NC_CHAR: 2, // text character
|
|
115
|
+
NC_SHORT: 3, // signed 2-byte integer
|
|
116
|
+
NC_INT: 4, // signed 4-byte integer
|
|
117
|
+
NC_LONG: 4, // deprecated, same as NC_INT
|
|
118
|
+
NC_FLOAT: 5, // single precision float
|
|
119
|
+
NC_DOUBLE: 6, // double precision float
|
|
120
|
+
NC_UBYTE: 7, // unsigned 1-byte integer
|
|
121
|
+
NC_USHORT: 8, // unsigned 2-byte integer
|
|
122
|
+
NC_UINT: 9, // unsigned 4-byte integer
|
|
123
|
+
NC_INT64: 10, // signed 8-byte integer
|
|
124
|
+
NC_UINT64: 11, // unsigned 8-byte integer
|
|
125
|
+
NC_STRING: 12, // variable-length string
|
|
126
|
+
// Aliases for 64-bit integers
|
|
127
|
+
NC_LONGLONG: 10, // alias for NC_INT64
|
|
128
|
+
NC_ULONGLONG: 11, // alias for NC_UINT64
|
|
129
|
+
// User-defined types (NetCDF-4)
|
|
130
|
+
NC_VLEN: 13, // variable-length type
|
|
131
|
+
NC_OPAQUE: 14, // opaque type
|
|
132
|
+
NC_ENUM: 15, // enumeration type
|
|
133
|
+
NC_COMPOUND: 16, // compound type
|
|
134
|
+
// First user-defined type ID
|
|
135
|
+
NC_FIRSTUSERTYPEID: 32,
|
|
136
|
+
// Fill modes
|
|
137
|
+
NC_FILL: 0,
|
|
138
|
+
NC_NOFILL: 0x100,
|
|
19
139
|
// Storage types
|
|
20
140
|
NC_CHUNKED: 0,
|
|
21
141
|
NC_CONTIGUOUS: 1,
|
|
22
142
|
NC_COMPACT: 2,
|
|
143
|
+
NC_VIRTUAL: 3,
|
|
144
|
+
// Endianness
|
|
145
|
+
NC_ENDIAN_NATIVE: 0,
|
|
146
|
+
NC_ENDIAN_LITTLE: 1,
|
|
147
|
+
NC_ENDIAN_BIG: 2,
|
|
148
|
+
// Unlimited dimension
|
|
149
|
+
NC_UNLIMITED: 0,
|
|
23
150
|
// Special values
|
|
24
|
-
|
|
25
|
-
|
|
151
|
+
NC_GLOBAL: -1, // Global attribute
|
|
152
|
+
NC_MAX_DIMS: 1024,
|
|
153
|
+
NC_MAX_ATTRS: 8192,
|
|
154
|
+
NC_MAX_VARS: 8192,
|
|
155
|
+
NC_MAX_NAME: 256,
|
|
156
|
+
NC_MAX_VAR_DIMS: 1024,
|
|
157
|
+
// Compression
|
|
158
|
+
NC_NOCHECKSUM: 0,
|
|
159
|
+
NC_FLETCHER32: 1,
|
|
160
|
+
// Shuffle filter
|
|
161
|
+
NC_NOSHUFFLE: 0,
|
|
162
|
+
NC_SHUFFLE: 1,
|
|
26
163
|
};
|
|
27
164
|
// Data type mapping from string names to NetCDF constants
|
|
28
165
|
export const DATA_TYPE_MAP = {
|
|
166
|
+
// Short names
|
|
29
167
|
'f8': NC_CONSTANTS.NC_DOUBLE,
|
|
30
168
|
'f4': NC_CONSTANTS.NC_FLOAT,
|
|
169
|
+
'i8': NC_CONSTANTS.NC_INT64,
|
|
31
170
|
'i4': NC_CONSTANTS.NC_INT,
|
|
32
171
|
'i2': NC_CONSTANTS.NC_SHORT,
|
|
33
172
|
'i1': NC_CONSTANTS.NC_BYTE,
|
|
173
|
+
'u8': NC_CONSTANTS.NC_UINT64,
|
|
174
|
+
'u4': NC_CONSTANTS.NC_UINT,
|
|
175
|
+
'u2': NC_CONSTANTS.NC_USHORT,
|
|
176
|
+
'u1': NC_CONSTANTS.NC_UBYTE,
|
|
34
177
|
'S1': NC_CONSTANTS.NC_CHAR,
|
|
35
|
-
|
|
178
|
+
// Long names
|
|
36
179
|
'double': NC_CONSTANTS.NC_DOUBLE,
|
|
37
180
|
'float': NC_CONSTANTS.NC_FLOAT,
|
|
181
|
+
'int64': NC_CONSTANTS.NC_INT64,
|
|
38
182
|
'int': NC_CONSTANTS.NC_INT,
|
|
39
183
|
'short': NC_CONSTANTS.NC_SHORT,
|
|
40
184
|
'byte': NC_CONSTANTS.NC_BYTE,
|
|
185
|
+
'uint64': NC_CONSTANTS.NC_UINT64,
|
|
186
|
+
'uint': NC_CONSTANTS.NC_UINT,
|
|
187
|
+
'ushort': NC_CONSTANTS.NC_USHORT,
|
|
188
|
+
'ubyte': NC_CONSTANTS.NC_UBYTE,
|
|
41
189
|
'char': NC_CONSTANTS.NC_CHAR,
|
|
42
|
-
'
|
|
190
|
+
'string': NC_CONSTANTS.NC_STRING,
|
|
191
|
+
'str': NC_CONSTANTS.NC_STRING,
|
|
192
|
+
// Aliases
|
|
193
|
+
'longlong': NC_CONSTANTS.NC_LONGLONG,
|
|
194
|
+
'ulonglong': NC_CONSTANTS.NC_ULONGLONG,
|
|
195
|
+
'long': NC_CONSTANTS.NC_INT,
|
|
43
196
|
};
|
|
197
|
+
// Reverse mapping: NetCDF type ID to dtype string
|
|
44
198
|
export const CONSTANT_DTYPE_MAP = {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
199
|
+
0: 'NAT', // NC_NAT
|
|
200
|
+
1: 'i1', // NC_BYTE
|
|
201
|
+
2: 'S1', // NC_CHAR
|
|
202
|
+
3: 'i2', // NC_SHORT
|
|
203
|
+
4: 'i4', // NC_INT
|
|
204
|
+
5: 'f4', // NC_FLOAT
|
|
205
|
+
6: 'f8', // NC_DOUBLE
|
|
206
|
+
7: 'u1', // NC_UBYTE
|
|
207
|
+
8: 'u2', // NC_USHORT
|
|
208
|
+
9: 'u4', // NC_UINT
|
|
209
|
+
10: 'i8', // NC_INT64
|
|
210
|
+
11: 'u8', // NC_UINT64
|
|
211
|
+
12: 'str', // NC_STRING
|
|
52
212
|
};
|
|
213
|
+
// Data type sizes in bytes
|
|
53
214
|
export const DATA_TYPE_SIZE = {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
215
|
+
0: 0, // NC_NAT
|
|
216
|
+
1: 1, // NC_BYTE
|
|
217
|
+
2: 1, // NC_CHAR
|
|
218
|
+
3: 2, // NC_SHORT
|
|
219
|
+
4: 4, // NC_INT
|
|
220
|
+
5: 4, // NC_FLOAT
|
|
221
|
+
6: 8, // NC_DOUBLE
|
|
222
|
+
7: 1, // NC_UBYTE
|
|
223
|
+
8: 2, // NC_USHORT
|
|
224
|
+
9: 4, // NC_UINT
|
|
225
|
+
10: 8, // NC_INT64
|
|
226
|
+
11: 8, // NC_UINT64
|
|
227
|
+
12: 0, // NC_STRING (variable length)
|
|
228
|
+
};
|
|
229
|
+
// Human-readable type names
|
|
230
|
+
export const TYPE_NAMES = {
|
|
231
|
+
0: 'NAT',
|
|
232
|
+
1: 'byte',
|
|
233
|
+
2: 'char',
|
|
234
|
+
3: 'short',
|
|
235
|
+
4: 'int',
|
|
236
|
+
5: 'float',
|
|
237
|
+
6: 'double',
|
|
238
|
+
7: 'ubyte',
|
|
239
|
+
8: 'ushort',
|
|
240
|
+
9: 'uint',
|
|
241
|
+
10: 'int64',
|
|
242
|
+
11: 'uint64',
|
|
243
|
+
12: 'string',
|
|
244
|
+
13: 'vlen',
|
|
245
|
+
14: 'opaque',
|
|
246
|
+
15: 'enum',
|
|
247
|
+
16: 'compound',
|
|
61
248
|
};
|
|
62
249
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,qDAAqD;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/group.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export declare class Group {
|
|
|
6
6
|
protected netcdf: NetCDF4;
|
|
7
7
|
readonly name: string;
|
|
8
8
|
protected groupId: number;
|
|
9
|
+
protected parent?: Group | undefined;
|
|
9
10
|
readonly dimensions: {
|
|
10
11
|
[name: string]: Dimension;
|
|
11
12
|
};
|
|
@@ -16,7 +17,7 @@ export declare class Group {
|
|
|
16
17
|
[name: string]: Group;
|
|
17
18
|
};
|
|
18
19
|
private _attributes;
|
|
19
|
-
constructor(netcdf: NetCDF4, name: string, groupId: number);
|
|
20
|
+
constructor(netcdf: NetCDF4, name: string, groupId: number, parent?: Group | undefined);
|
|
20
21
|
setAttr(name: string, value: any): void;
|
|
21
22
|
getAttr(name: string): any;
|
|
22
23
|
attrs(): string[];
|
|
@@ -28,6 +29,7 @@ export declare class Group {
|
|
|
28
29
|
[name: string]: Group;
|
|
29
30
|
};
|
|
30
31
|
get path(): string;
|
|
32
|
+
load(): Promise<void>;
|
|
31
33
|
toString(): string;
|
|
32
34
|
}
|
|
33
35
|
//# sourceMappingURL=group.d.ts.map
|
package/dist/group.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../src/group.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,qBAAa,KAAK;IAOV,SAAS,CAAC,MAAM,EAAE,OAAO;aACT,IAAI,EAAE,MAAM;IAC5B,SAAS,CAAC,OAAO,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../src/group.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,qBAAa,KAAK;IAOV,SAAS,CAAC,MAAM,EAAE,OAAO;aACT,IAAI,EAAE,MAAM;IAC5B,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK;IAT5B,SAAgB,UAAU,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAM;IAC/D,SAAgB,SAAS,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAM;IAC7D,SAAgB,MAAM,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAA;KAAE,CAAM;IACvD,OAAO,CAAC,WAAW,CAA8B;gBAGnC,MAAM,EAAE,OAAO,EACT,IAAI,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,KAAK,YAAA;IAI5B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAcvC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAgB1B,KAAK,IAAI,MAAM,EAAE;IAIX,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;IAoBrE,kBAAkB,IAAI,IAAI;IA8B3B,cAAc,CAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,GAAE,MAAM,EAAO,EACzB,OAAO,GAAE,eAAoB,GAC9B,OAAO,CAAC,QAAQ,CAAC;IAqCpB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAQhC,QAAQ,IAAI;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAA;KAAE;IAKrC,IAAI,IAAI,IAAI,MAAM,CAIjB;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmD3B,QAAQ,IAAI,MAAM;CAGrB"}
|
package/dist/group.js
CHANGED
|
@@ -6,14 +6,16 @@ export class Group {
|
|
|
6
6
|
netcdf;
|
|
7
7
|
name;
|
|
8
8
|
groupId;
|
|
9
|
+
parent;
|
|
9
10
|
dimensions = {};
|
|
10
11
|
variables = {};
|
|
11
12
|
groups = {};
|
|
12
13
|
_attributes = {};
|
|
13
|
-
constructor(netcdf, name, groupId) {
|
|
14
|
+
constructor(netcdf, name, groupId, parent) {
|
|
14
15
|
this.netcdf = netcdf;
|
|
15
16
|
this.name = name;
|
|
16
17
|
this.groupId = groupId;
|
|
18
|
+
this.parent = parent;
|
|
17
19
|
}
|
|
18
20
|
// Attribute methods
|
|
19
21
|
setAttr(name, value) {
|
|
@@ -52,11 +54,11 @@ export class Group {
|
|
|
52
54
|
throw new Error(`Dimension '${name}' already exists`);
|
|
53
55
|
}
|
|
54
56
|
// Check for invalid size values
|
|
55
|
-
if (size !== null && size < 0
|
|
57
|
+
if (size !== null && size < 0) {
|
|
56
58
|
throw new Error(`Invalid dimension size: ${size}. Size must be non-negative or null for unlimited.`);
|
|
57
59
|
}
|
|
58
|
-
// Handle unlimited dimension (null
|
|
59
|
-
const isUnlimited = size === null
|
|
60
|
+
// Handle unlimited dimension (null only — size=0 is a valid finite dimension)
|
|
61
|
+
const isUnlimited = size === null;
|
|
60
62
|
const ncSize = isUnlimited ? 0 : size; // Use 0 for unlimited in the actual NetCDF API
|
|
61
63
|
const dimid = await this.netcdf.defineDimension(this.groupId, name, ncSize);
|
|
62
64
|
const actualSize = isUnlimited ? NC_CONSTANTS.NC_UNLIMITED : size;
|
|
@@ -127,7 +129,7 @@ export class Group {
|
|
|
127
129
|
}
|
|
128
130
|
createGroup(name) {
|
|
129
131
|
// For simplicity, groups use the same ncid for now
|
|
130
|
-
const group = new Group(this.netcdf, name, this.groupId);
|
|
132
|
+
const group = new Group(this.netcdf, name, this.groupId, this);
|
|
131
133
|
this.groups[name] = group;
|
|
132
134
|
return group;
|
|
133
135
|
}
|
|
@@ -137,9 +139,48 @@ export class Group {
|
|
|
137
139
|
}
|
|
138
140
|
// Get group path (Python-like)
|
|
139
141
|
get path() {
|
|
140
|
-
if (this.
|
|
142
|
+
if (!this.parent)
|
|
141
143
|
return '/';
|
|
142
|
-
|
|
144
|
+
const parentPath = this.parent.path;
|
|
145
|
+
return parentPath === '/' ? `/${this.name}` : `${parentPath}/${this.name}`;
|
|
146
|
+
}
|
|
147
|
+
async load() {
|
|
148
|
+
// 1. Dimensions
|
|
149
|
+
const dims = await this.netcdf.getDims(this.path);
|
|
150
|
+
for (const key in this.dimensions)
|
|
151
|
+
delete this.dimensions[key];
|
|
152
|
+
for (const [name, d] of Object.entries(dims)) {
|
|
153
|
+
this.dimensions[name] = new Dimension(name, d.size, false);
|
|
154
|
+
}
|
|
155
|
+
// 2. Variables
|
|
156
|
+
const vars = await this.netcdf.getGroupVariables(this.path);
|
|
157
|
+
for (const key in this.variables)
|
|
158
|
+
delete this.variables[key];
|
|
159
|
+
for (const [name, v] of Object.entries(vars)) {
|
|
160
|
+
const info = await this.netcdf.getVariableInfo(v.id, this.path);
|
|
161
|
+
const dimNames = info.dims.map((d) => d.name);
|
|
162
|
+
const variable = new Variable(this.netcdf, name, info.dtype, dimNames, v.id, this.groupId);
|
|
163
|
+
if (info.attributes) {
|
|
164
|
+
for (const [k, val] of Object.entries(info.attributes)) {
|
|
165
|
+
variable.setAttr(k, val);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
this.variables[name] = variable;
|
|
169
|
+
}
|
|
170
|
+
// 3. Subgroups
|
|
171
|
+
const groups = await this.netcdf.getGroups(this.groupId);
|
|
172
|
+
for (const key in this.groups)
|
|
173
|
+
delete this.groups[key];
|
|
174
|
+
for (const [name, grpid] of Object.entries(groups)) {
|
|
175
|
+
const group = new Group(this.netcdf, name, grpid, this);
|
|
176
|
+
await group.load();
|
|
177
|
+
this.groups[name] = group;
|
|
178
|
+
}
|
|
179
|
+
// 4. Attributes
|
|
180
|
+
const attrs = await this.netcdf.getGlobalAttributes(this.path);
|
|
181
|
+
for (const [k, v] of Object.entries(attrs)) {
|
|
182
|
+
this.setAttr(k, v);
|
|
183
|
+
}
|
|
143
184
|
}
|
|
144
185
|
toString() {
|
|
145
186
|
return `<netCDF4.Group '${this.path}'>`;
|