xm-netcdf-loader 1.0.0
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/dist/component/colorLegend.d.ts +25 -0
- package/dist/component/loadFile.d.ts +43 -0
- package/dist/component/loadonMap.d.ts +46 -0
- package/dist/component/statusInfo.d.ts +41 -0
- package/dist/composables/useGridLabels.d.ts +13 -0
- package/dist/composables/useLeafletMap.d.ts +56 -0
- package/dist/composables/useMapRendering.d.ts +38 -0
- package/dist/composables/useNetCdf.d.ts +49 -0
- package/dist/index.d.ts +9 -0
- package/dist/netcdf4-wasm/CONTRIBUTING.md +160 -0
- package/dist/netcdf4-wasm/LICENSE +22 -0
- package/dist/netcdf4-wasm/README.md +81 -0
- package/dist/netcdf4-wasm/dist/constants.d.ts +158 -0
- package/dist/netcdf4-wasm/dist/constants.d.ts.map +1 -0
- package/dist/netcdf4-wasm/dist/constants.js +249 -0
- package/dist/netcdf4-wasm/dist/constants.js.map +1 -0
- package/dist/netcdf4-wasm/dist/dimension.d.ts +9 -0
- package/dist/netcdf4-wasm/dist/dimension.d.ts.map +1 -0
- package/dist/netcdf4-wasm/dist/dimension.js +19 -0
- package/dist/netcdf4-wasm/dist/dimension.js.map +1 -0
- package/dist/netcdf4-wasm/dist/group.d.ts +35 -0
- package/dist/netcdf4-wasm/dist/group.d.ts.map +1 -0
- package/dist/netcdf4-wasm/dist/group.js +189 -0
- package/dist/netcdf4-wasm/dist/group.js.map +1 -0
- package/dist/netcdf4-wasm/dist/index.d.ts +17 -0
- package/dist/netcdf4-wasm/dist/index.d.ts.map +1 -0
- package/dist/netcdf4-wasm/dist/index.js +49 -0
- package/dist/netcdf4-wasm/dist/index.js.map +1 -0
- package/dist/netcdf4-wasm/dist/netcdf-getters.d.ts +120 -0
- package/dist/netcdf4-wasm/dist/netcdf-getters.d.ts.map +1 -0
- package/dist/netcdf4-wasm/dist/netcdf-getters.js +816 -0
- package/dist/netcdf4-wasm/dist/netcdf-getters.js.map +1 -0
- package/dist/netcdf4-wasm/dist/netcdf-worker.d.ts +2 -0
- package/dist/netcdf4-wasm/dist/netcdf-worker.d.ts.map +1 -0
- package/dist/netcdf4-wasm/dist/netcdf-worker.js +154 -0
- package/dist/netcdf4-wasm/dist/netcdf-worker.js.map +1 -0
- package/dist/netcdf4-wasm/dist/netcdf4-wasm.js +2 -0
- package/dist/netcdf4-wasm/dist/netcdf4-wasm.wasm +0 -0
- package/dist/netcdf4-wasm/dist/netcdf4.d.ts +218 -0
- package/dist/netcdf4-wasm/dist/netcdf4.d.ts.map +1 -0
- package/dist/netcdf4-wasm/dist/netcdf4.js +1049 -0
- package/dist/netcdf4-wasm/dist/netcdf4.js.map +1 -0
- package/dist/netcdf4-wasm/dist/slice.d.ts +57 -0
- package/dist/netcdf4-wasm/dist/slice.d.ts.map +1 -0
- package/dist/netcdf4-wasm/dist/slice.js +60 -0
- package/dist/netcdf4-wasm/dist/slice.js.map +1 -0
- package/dist/netcdf4-wasm/dist/test-setup.d.ts +13 -0
- package/dist/netcdf4-wasm/dist/test-setup.d.ts.map +1 -0
- package/dist/netcdf4-wasm/dist/test-setup.js +78 -0
- package/dist/netcdf4-wasm/dist/test-setup.js.map +1 -0
- package/dist/netcdf4-wasm/dist/types.d.ts +444 -0
- package/dist/netcdf4-wasm/dist/types.d.ts.map +1 -0
- package/dist/netcdf4-wasm/dist/types.js +3 -0
- package/dist/netcdf4-wasm/dist/types.js.map +1 -0
- package/dist/netcdf4-wasm/dist/variable.d.ts +36 -0
- package/dist/netcdf4-wasm/dist/variable.d.ts.map +1 -0
- package/dist/netcdf4-wasm/dist/variable.js +152 -0
- package/dist/netcdf4-wasm/dist/variable.js.map +1 -0
- package/dist/netcdf4-wasm/dist/wasm-module.d.ts +6 -0
- package/dist/netcdf4-wasm/dist/wasm-module.d.ts.map +1 -0
- package/dist/netcdf4-wasm/dist/wasm-module.js +1502 -0
- package/dist/netcdf4-wasm/dist/wasm-module.js.map +1 -0
- package/dist/netcdf4-wasm/package.json +78 -0
- package/dist/netcdf4-wasm.wasm +0 -0
- package/dist/types/colorsJson.d.ts +36 -0
- package/dist/types/netcdf.d.ts +70 -0
- package/dist/utils/color.d.ts +277 -0
- package/dist/utils/colorScales.d.ts +28 -0
- package/dist/utils/colorsJsonService.d.ts +24 -0
- package/dist/utils/dataProcessing.d.ts +64 -0
- package/dist/utils/errorHandling.d.ts +69 -0
- package/dist/utils/imageUtils.d.ts +29 -0
- package/dist/utils/performance.d.ts +75 -0
- package/dist/wasm/constants.d.ts +158 -0
- package/dist/wasm/constants.d.ts.map +1 -0
- package/dist/wasm/constants.js +249 -0
- package/dist/wasm/constants.js.map +1 -0
- package/dist/wasm/dimension.d.ts +9 -0
- package/dist/wasm/dimension.d.ts.map +1 -0
- package/dist/wasm/dimension.js +19 -0
- package/dist/wasm/dimension.js.map +1 -0
- package/dist/wasm/group.d.ts +35 -0
- package/dist/wasm/group.d.ts.map +1 -0
- package/dist/wasm/group.js +189 -0
- package/dist/wasm/group.js.map +1 -0
- package/dist/wasm/index.d.ts +17 -0
- package/dist/wasm/index.d.ts.map +1 -0
- package/dist/wasm/index.js +49 -0
- package/dist/wasm/index.js.map +1 -0
- package/dist/wasm/netcdf-getters.d.ts +120 -0
- package/dist/wasm/netcdf-getters.d.ts.map +1 -0
- package/dist/wasm/netcdf-getters.js +816 -0
- package/dist/wasm/netcdf-getters.js.map +1 -0
- package/dist/wasm/netcdf-worker.d.ts +2 -0
- package/dist/wasm/netcdf-worker.d.ts.map +1 -0
- package/dist/wasm/netcdf-worker.js +154 -0
- package/dist/wasm/netcdf-worker.js.map +1 -0
- package/dist/wasm/netcdf4-wasm.js +2 -0
- package/dist/wasm/netcdf4-wasm.wasm +0 -0
- package/dist/wasm/netcdf4.d.ts +218 -0
- package/dist/wasm/netcdf4.d.ts.map +1 -0
- package/dist/wasm/netcdf4.js +1049 -0
- package/dist/wasm/netcdf4.js.map +1 -0
- package/dist/wasm/slice.d.ts +57 -0
- package/dist/wasm/slice.d.ts.map +1 -0
- package/dist/wasm/slice.js +60 -0
- package/dist/wasm/slice.js.map +1 -0
- package/dist/wasm/test-setup.d.ts +13 -0
- package/dist/wasm/test-setup.d.ts.map +1 -0
- package/dist/wasm/test-setup.js +78 -0
- package/dist/wasm/test-setup.js.map +1 -0
- package/dist/wasm/types.d.ts +444 -0
- package/dist/wasm/types.d.ts.map +1 -0
- package/dist/wasm/types.js +3 -0
- package/dist/wasm/types.js.map +1 -0
- package/dist/wasm/variable.d.ts +36 -0
- package/dist/wasm/variable.d.ts.map +1 -0
- package/dist/wasm/variable.js +152 -0
- package/dist/wasm/variable.js.map +1 -0
- package/dist/wasm/wasm-module.d.ts +6 -0
- package/dist/wasm/wasm-module.d.ts.map +1 -0
- package/dist/wasm/wasm-module.js +1502 -0
- package/dist/wasm/wasm-module.js.map +1 -0
- package/dist/xm-netcdf-loader.cjs.js +2 -0
- package/dist/xm-netcdf-loader.cjs.js.map +1 -0
- package/dist/xm-netcdf-loader.es.js +18532 -0
- package/dist/xm-netcdf-loader.es.js.map +1 -0
- package/dist/xm-netcdf-loader.umd.js +2 -0
- package/dist/xm-netcdf-loader.umd.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
export declare const NC_CONSTANTS: {
|
|
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;
|
|
84
|
+
NC_NOWRITE: number;
|
|
85
|
+
NC_WRITE: number;
|
|
86
|
+
NC_CLOBBER: number;
|
|
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;
|
|
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;
|
|
105
|
+
NC_BYTE: number;
|
|
106
|
+
NC_CHAR: number;
|
|
107
|
+
NC_SHORT: number;
|
|
108
|
+
NC_INT: number;
|
|
109
|
+
NC_LONG: number;
|
|
110
|
+
NC_FLOAT: number;
|
|
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;
|
|
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;
|
|
127
|
+
NC_CHUNKED: number;
|
|
128
|
+
NC_CONTIGUOUS: number;
|
|
129
|
+
NC_COMPACT: number;
|
|
130
|
+
NC_VIRTUAL: number;
|
|
131
|
+
NC_ENDIAN_NATIVE: number;
|
|
132
|
+
NC_ENDIAN_LITTLE: number;
|
|
133
|
+
NC_ENDIAN_BIG: number;
|
|
134
|
+
NC_UNLIMITED: number;
|
|
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;
|
|
145
|
+
};
|
|
146
|
+
export declare const DATA_TYPE_MAP: {
|
|
147
|
+
[key: string]: number;
|
|
148
|
+
};
|
|
149
|
+
export declare const CONSTANT_DTYPE_MAP: {
|
|
150
|
+
[key: number]: string;
|
|
151
|
+
};
|
|
152
|
+
export declare const DATA_TYPE_SIZE: {
|
|
153
|
+
[key: number]: number;
|
|
154
|
+
};
|
|
155
|
+
export declare const TYPE_NAMES: {
|
|
156
|
+
[key: number]: string;
|
|
157
|
+
};
|
|
158
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,249 @@
|
|
|
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
|
|
4
|
+
export const NC_CONSTANTS = {
|
|
5
|
+
// Error codes
|
|
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,
|
|
89
|
+
// File modes
|
|
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,
|
|
139
|
+
// Storage types
|
|
140
|
+
NC_CHUNKED: 0,
|
|
141
|
+
NC_CONTIGUOUS: 1,
|
|
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,
|
|
150
|
+
// Special values
|
|
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,
|
|
163
|
+
};
|
|
164
|
+
// Data type mapping from string names to NetCDF constants
|
|
165
|
+
export const DATA_TYPE_MAP = {
|
|
166
|
+
// Short names
|
|
167
|
+
'f8': NC_CONSTANTS.NC_DOUBLE,
|
|
168
|
+
'f4': NC_CONSTANTS.NC_FLOAT,
|
|
169
|
+
'i8': NC_CONSTANTS.NC_INT64,
|
|
170
|
+
'i4': NC_CONSTANTS.NC_INT,
|
|
171
|
+
'i2': NC_CONSTANTS.NC_SHORT,
|
|
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,
|
|
177
|
+
'S1': NC_CONSTANTS.NC_CHAR,
|
|
178
|
+
// Long names
|
|
179
|
+
'double': NC_CONSTANTS.NC_DOUBLE,
|
|
180
|
+
'float': NC_CONSTANTS.NC_FLOAT,
|
|
181
|
+
'int64': NC_CONSTANTS.NC_INT64,
|
|
182
|
+
'int': NC_CONSTANTS.NC_INT,
|
|
183
|
+
'short': NC_CONSTANTS.NC_SHORT,
|
|
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,
|
|
189
|
+
'char': NC_CONSTANTS.NC_CHAR,
|
|
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,
|
|
196
|
+
};
|
|
197
|
+
// Reverse mapping: NetCDF type ID to dtype string
|
|
198
|
+
export const CONSTANT_DTYPE_MAP = {
|
|
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
|
|
212
|
+
};
|
|
213
|
+
// Data type sizes in bytes
|
|
214
|
+
export const DATA_TYPE_SIZE = {
|
|
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',
|
|
248
|
+
};
|
|
249
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class Dimension {
|
|
2
|
+
readonly name: string;
|
|
3
|
+
readonly size: number;
|
|
4
|
+
readonly isUnlimited: boolean;
|
|
5
|
+
constructor(name: string, size: number, isUnlimited?: boolean);
|
|
6
|
+
__len__(): number;
|
|
7
|
+
toString(): string;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=dimension.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dimension.d.ts","sourceRoot":"","sources":["../src/dimension.ts"],"names":[],"mappings":"AAEA,qBAAa,SAAS;aAEE,IAAI,EAAE,MAAM;aACZ,IAAI,EAAE,MAAM;aACZ,WAAW,EAAE,OAAO;gBAFpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,WAAW,GAAE,OAAe;IAGhD,OAAO,IAAI,MAAM;IAIjB,QAAQ,IAAI,MAAM;CAIrB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Dimension class similar to netcdf4-python
|
|
2
|
+
export class Dimension {
|
|
3
|
+
name;
|
|
4
|
+
size;
|
|
5
|
+
isUnlimited;
|
|
6
|
+
constructor(name, size, isUnlimited = false) {
|
|
7
|
+
this.name = name;
|
|
8
|
+
this.size = size;
|
|
9
|
+
this.isUnlimited = isUnlimited;
|
|
10
|
+
}
|
|
11
|
+
__len__() {
|
|
12
|
+
return this.size;
|
|
13
|
+
}
|
|
14
|
+
toString() {
|
|
15
|
+
const sizeStr = this.isUnlimited ? 'unlimited' : this.size.toString();
|
|
16
|
+
return `<netCDF4.Dimension '${this.name}': size = ${sizeStr}>`;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=dimension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dimension.js","sourceRoot":"","sources":["../src/dimension.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,MAAM,OAAO,SAAS;IAEE;IACA;IACA;IAHpB,YACoB,IAAY,EACZ,IAAY,EACZ,cAAuB,KAAK;QAF5B,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAQ;QACZ,gBAAW,GAAX,WAAW,CAAiB;IAC7C,CAAC;IAEJ,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,QAAQ;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtE,OAAO,uBAAuB,IAAI,CAAC,IAAI,aAAa,OAAO,GAAG,CAAC;IACnE,CAAC;CACJ"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { NetCDF4 } from './netcdf4.js';
|
|
2
|
+
import { Dimension } from './dimension.js';
|
|
3
|
+
import { Variable } from './variable.js';
|
|
4
|
+
import type { VariableOptions } from './types.js';
|
|
5
|
+
export declare class Group {
|
|
6
|
+
protected netcdf: NetCDF4;
|
|
7
|
+
readonly name: string;
|
|
8
|
+
protected groupId: number;
|
|
9
|
+
protected parent?: Group | undefined;
|
|
10
|
+
readonly dimensions: {
|
|
11
|
+
[name: string]: Dimension;
|
|
12
|
+
};
|
|
13
|
+
readonly variables: {
|
|
14
|
+
[name: string]: Variable;
|
|
15
|
+
};
|
|
16
|
+
readonly groups: {
|
|
17
|
+
[name: string]: Group;
|
|
18
|
+
};
|
|
19
|
+
private _attributes;
|
|
20
|
+
constructor(netcdf: NetCDF4, name: string, groupId: number, parent?: Group | undefined);
|
|
21
|
+
setAttr(name: string, value: any): void;
|
|
22
|
+
getAttr(name: string): any;
|
|
23
|
+
attrs(): string[];
|
|
24
|
+
createDimension(name: string, size: number | null): Promise<Dimension>;
|
|
25
|
+
loadMockDimensions(): void;
|
|
26
|
+
createVariable(name: string, datatype: string, dimensions?: string[], options?: VariableOptions): Promise<Variable>;
|
|
27
|
+
createGroup(name: string): Group;
|
|
28
|
+
children(): {
|
|
29
|
+
[name: string]: Group;
|
|
30
|
+
};
|
|
31
|
+
get path(): string;
|
|
32
|
+
load(): Promise<void>;
|
|
33
|
+
toString(): string;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=group.d.ts.map
|
|
@@ -0,0 +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;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"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
// Group class for hierarchical data organization
|
|
2
|
+
import { Dimension } from './dimension.js';
|
|
3
|
+
import { Variable } from './variable.js';
|
|
4
|
+
import { NC_CONSTANTS, DATA_TYPE_MAP } from './constants.js';
|
|
5
|
+
export class Group {
|
|
6
|
+
netcdf;
|
|
7
|
+
name;
|
|
8
|
+
groupId;
|
|
9
|
+
parent;
|
|
10
|
+
dimensions = {};
|
|
11
|
+
variables = {};
|
|
12
|
+
groups = {};
|
|
13
|
+
_attributes = {};
|
|
14
|
+
constructor(netcdf, name, groupId, parent) {
|
|
15
|
+
this.netcdf = netcdf;
|
|
16
|
+
this.name = name;
|
|
17
|
+
this.groupId = groupId;
|
|
18
|
+
this.parent = parent;
|
|
19
|
+
}
|
|
20
|
+
// Attribute methods
|
|
21
|
+
setAttr(name, value) {
|
|
22
|
+
this._attributes[name] = value;
|
|
23
|
+
// Store in mock file system if in test mode
|
|
24
|
+
if (typeof process !== 'undefined' && process.env.NODE_ENV === 'test') {
|
|
25
|
+
const mockFiles = global.__netcdf4_mock_files;
|
|
26
|
+
const dataset = this.netcdf;
|
|
27
|
+
if (mockFiles && dataset.filename && mockFiles[dataset.filename]) {
|
|
28
|
+
mockFiles[dataset.filename].attributes[name] = value;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// TODO: Implement actual NetCDF global attribute setting
|
|
32
|
+
}
|
|
33
|
+
getAttr(name) {
|
|
34
|
+
// Check mock file system first if in test mode
|
|
35
|
+
if (typeof process !== 'undefined' && process.env.NODE_ENV === 'test') {
|
|
36
|
+
const mockFiles = global.__netcdf4_mock_files;
|
|
37
|
+
const dataset = this.netcdf;
|
|
38
|
+
if (mockFiles && dataset.filename && mockFiles[dataset.filename]) {
|
|
39
|
+
const value = mockFiles[dataset.filename].attributes[name];
|
|
40
|
+
if (value !== undefined) {
|
|
41
|
+
this._attributes[name] = value; // Sync local cache
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return this._attributes[name];
|
|
47
|
+
}
|
|
48
|
+
attrs() {
|
|
49
|
+
return Object.keys(this._attributes);
|
|
50
|
+
}
|
|
51
|
+
async createDimension(name, size) {
|
|
52
|
+
// Check for duplicate dimension name
|
|
53
|
+
if (this.dimensions[name]) {
|
|
54
|
+
throw new Error(`Dimension '${name}' already exists`);
|
|
55
|
+
}
|
|
56
|
+
// Check for invalid size values
|
|
57
|
+
if (size !== null && size < 0) {
|
|
58
|
+
throw new Error(`Invalid dimension size: ${size}. Size must be non-negative or null for unlimited.`);
|
|
59
|
+
}
|
|
60
|
+
// Handle unlimited dimension (null only — size=0 is a valid finite dimension)
|
|
61
|
+
const isUnlimited = size === null;
|
|
62
|
+
const ncSize = isUnlimited ? 0 : size; // Use 0 for unlimited in the actual NetCDF API
|
|
63
|
+
const dimid = await this.netcdf.defineDimension(this.groupId, name, ncSize);
|
|
64
|
+
const actualSize = isUnlimited ? NC_CONSTANTS.NC_UNLIMITED : size;
|
|
65
|
+
const dimension = new Dimension(name, actualSize, isUnlimited);
|
|
66
|
+
this.dimensions[name] = dimension;
|
|
67
|
+
return dimension;
|
|
68
|
+
}
|
|
69
|
+
// Load dimensions and variables from mock storage when in test mode
|
|
70
|
+
loadMockDimensions() {
|
|
71
|
+
if (typeof process !== 'undefined' && process.env.NODE_ENV === 'test') {
|
|
72
|
+
const mockFiles = global.__netcdf4_mock_files;
|
|
73
|
+
const dataset = this.netcdf;
|
|
74
|
+
if (mockFiles && dataset.filename && mockFiles[dataset.filename]) {
|
|
75
|
+
// Load dimensions
|
|
76
|
+
const mockDims = mockFiles[dataset.filename].dimensions;
|
|
77
|
+
for (const [name, dimData] of Object.entries(mockDims)) {
|
|
78
|
+
const dimension = new Dimension(name, dimData.size, dimData.unlimited);
|
|
79
|
+
this.dimensions[name] = dimension;
|
|
80
|
+
}
|
|
81
|
+
// Load variables
|
|
82
|
+
const mockVars = mockFiles[dataset.filename].variables;
|
|
83
|
+
for (const [name, varData] of Object.entries(mockVars)) {
|
|
84
|
+
const varInfo = varData;
|
|
85
|
+
// Reconstruct variable - for now, assume double datatype and no dimensions for simplicity
|
|
86
|
+
const variable = new Variable(this.netcdf, name, varInfo.datatype || 'f8', varInfo.dimensions || [], 1, this.groupId);
|
|
87
|
+
// Restore variable attributes
|
|
88
|
+
if (varInfo.attributes) {
|
|
89
|
+
for (const [attrName, attrValue] of Object.entries(varInfo.attributes)) {
|
|
90
|
+
variable.setAttr(attrName, attrValue);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
this.variables[name] = variable;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
async createVariable(name, datatype, dimensions = [], options = {}) {
|
|
99
|
+
const ncType = DATA_TYPE_MAP[datatype];
|
|
100
|
+
if (ncType === undefined) {
|
|
101
|
+
throw new Error(`Unsupported datatype: ${datatype}`);
|
|
102
|
+
}
|
|
103
|
+
// Get dimension IDs
|
|
104
|
+
const dimIds = dimensions.map(dimName => {
|
|
105
|
+
const dim = this.dimensions[dimName];
|
|
106
|
+
if (!dim) {
|
|
107
|
+
throw new Error(`Dimension '${dimName}' not found`);
|
|
108
|
+
}
|
|
109
|
+
// For now, we'll use the dimension name as ID (simplified)
|
|
110
|
+
return Object.keys(this.dimensions).indexOf(dimName);
|
|
111
|
+
});
|
|
112
|
+
const varid = await this.netcdf.defineVariable(this.groupId, name, ncType, dimIds);
|
|
113
|
+
const variable = new Variable(this.netcdf, name, datatype, dimensions, varid, this.groupId);
|
|
114
|
+
this.variables[name] = variable;
|
|
115
|
+
// Store variable metadata in mock storage if in test mode
|
|
116
|
+
if (typeof process !== 'undefined' && process.env.NODE_ENV === 'test') {
|
|
117
|
+
const mockFiles = global.__netcdf4_mock_files;
|
|
118
|
+
const dataset = this.netcdf;
|
|
119
|
+
if (mockFiles && dataset.filename && mockFiles[dataset.filename]) {
|
|
120
|
+
mockFiles[dataset.filename].variables[name] = {
|
|
121
|
+
datatype: datatype,
|
|
122
|
+
dimensions: dimensions,
|
|
123
|
+
data: new Float64Array(0),
|
|
124
|
+
attributes: {}
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return variable;
|
|
129
|
+
}
|
|
130
|
+
createGroup(name) {
|
|
131
|
+
// For simplicity, groups use the same ncid for now
|
|
132
|
+
const group = new Group(this.netcdf, name, this.groupId, this);
|
|
133
|
+
this.groups[name] = group;
|
|
134
|
+
return group;
|
|
135
|
+
}
|
|
136
|
+
// Python-like method to get all children
|
|
137
|
+
children() {
|
|
138
|
+
return this.groups;
|
|
139
|
+
}
|
|
140
|
+
// Get group path (Python-like)
|
|
141
|
+
get path() {
|
|
142
|
+
if (!this.parent)
|
|
143
|
+
return '/';
|
|
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
|
+
}
|
|
184
|
+
}
|
|
185
|
+
toString() {
|
|
186
|
+
return `<netCDF4.Group '${this.path}'>`;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=group.js.map
|