@earthyscience/netcdf4-wasm 0.1.3 → 0.2.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.
@@ -1,5 +1,6 @@
1
1
  export declare const NC_CONSTANTS: {
2
2
  NC_NOERR: number;
3
+ NC_ERANGE: number;
3
4
  NC_NOWRITE: number;
4
5
  NC_WRITE: number;
5
6
  NC_CLOBBER: number;
@@ -11,7 +12,13 @@ export declare const NC_CONSTANTS: {
11
12
  NC_INT: number;
12
13
  NC_FLOAT: number;
13
14
  NC_DOUBLE: number;
15
+ NC_UINT: number;
16
+ NC_UINT64: number;
17
+ NC_INT64: number;
18
+ NC_UBYTE: number;
14
19
  NC_LONGLONG: number;
20
+ NC_USHORT: number;
21
+ NC_STRING: number;
15
22
  NC_CHUNKED: number;
16
23
  NC_CONTIGUOUS: number;
17
24
  NC_COMPACT: number;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;CA2BxB,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAelD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAQvD,CAAA;AAED,eAAO,MAAM,cAAc,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAQnD,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCxB,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAoBlD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAavD,CAAA;AAED,eAAO,MAAM,cAAc,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAanD,CAAA"}
package/dist/constants.js CHANGED
@@ -2,6 +2,7 @@
2
2
  export const NC_CONSTANTS = {
3
3
  // Error codes
4
4
  NC_NOERR: 0,
5
+ NC_ERANGE: -60,
5
6
  // File modes
6
7
  NC_NOWRITE: 0,
7
8
  NC_WRITE: 1,
@@ -9,13 +10,20 @@ export const NC_CONSTANTS = {
9
10
  NC_NOCLOBBER: 4,
10
11
  NC_NETCDF4: 4096,
11
12
  // Data types
13
+ // See: https://docs.unidata.ucar.edu/nug/current/md_types.html
12
14
  NC_BYTE: 1,
13
15
  NC_CHAR: 2,
14
16
  NC_SHORT: 3,
15
17
  NC_INT: 4,
16
18
  NC_FLOAT: 5,
17
19
  NC_DOUBLE: 6,
20
+ NC_UINT: 7,
21
+ NC_UINT64: 8,
22
+ NC_INT64: 9,
23
+ NC_UBYTE: 9,
18
24
  NC_LONGLONG: 10,
25
+ NC_USHORT: 11,
26
+ NC_STRING: 12,
19
27
  // Storage types
20
28
  NC_CHUNKED: 0,
21
29
  NC_CONTIGUOUS: 1,
@@ -39,7 +47,12 @@ export const DATA_TYPE_MAP = {
39
47
  'short': NC_CONSTANTS.NC_SHORT,
40
48
  'byte': NC_CONSTANTS.NC_BYTE,
41
49
  'char': NC_CONSTANTS.NC_CHAR,
42
- 'longlong': NC_CONSTANTS.NC_LONGLONG
50
+ 'longlong': NC_CONSTANTS.NC_LONGLONG,
51
+ 'str': NC_CONSTANTS.NC_STRING,
52
+ 'u1': NC_CONSTANTS.NC_UBYTE,
53
+ 'u2': NC_CONSTANTS.NC_USHORT,
54
+ 'u4': NC_CONSTANTS.NC_UINT,
55
+ 'u8': NC_CONSTANTS.NC_UINT64
43
56
  };
44
57
  export const CONSTANT_DTYPE_MAP = {
45
58
  1: 'i1',
@@ -48,7 +61,12 @@ export const CONSTANT_DTYPE_MAP = {
48
61
  4: 'i4',
49
62
  5: 'f4',
50
63
  6: 'f8',
51
- 10: 'i8'
64
+ 7: 'u4',
65
+ 8: 'u8',
66
+ 9: 'u1',
67
+ 10: 'i8',
68
+ 11: 'u2',
69
+ 12: 'str'
52
70
  };
53
71
  export const DATA_TYPE_SIZE = {
54
72
  1: 1,
@@ -57,6 +75,11 @@ export const DATA_TYPE_SIZE = {
57
75
  4: 4,
58
76
  5: 4,
59
77
  6: 8,
60
- 10: 8
78
+ 7: 4,
79
+ 8: 8,
80
+ 9: 1,
81
+ 10: 8,
82
+ 11: 2,
83
+ 12: 0
61
84
  };
62
85
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,cAAc;IACd,QAAQ,EAAE,CAAC;IAEX,aAAa;IACb,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,CAAC;IACb,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,IAAI;IAEhB,aAAa;IACb,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,EAAE;IAEf,gBAAgB;IAChB,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,CAAC;IAChB,UAAU,EAAE,CAAC;IACb,iBAAiB;IACjB,YAAY,EAAE,CAAC,IAAI,EAAE,0CAA0C;IAC/D,SAAS,EAAE,CAAC,CAAC;CAChB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,CAAC,MAAM,aAAa,GAA8B;IACpD,IAAI,EAAE,YAAY,CAAC,SAAS;IAC5B,IAAI,EAAE,YAAY,CAAC,QAAQ;IAC3B,IAAI,EAAE,YAAY,CAAC,MAAM;IACzB,IAAI,EAAE,YAAY,CAAC,QAAQ;IAC3B,IAAI,EAAE,YAAY,CAAC,OAAO;IAC1B,IAAI,EAAE,YAAY,CAAC,OAAO;IAC1B,IAAI,EAAE,YAAY,CAAC,WAAW;IAC9B,QAAQ,EAAE,YAAY,CAAC,SAAS;IAChC,OAAO,EAAE,YAAY,CAAC,QAAQ;IAC9B,KAAK,EAAE,YAAY,CAAC,MAAM;IAC1B,OAAO,EAAE,YAAY,CAAC,QAAQ;IAC9B,MAAM,EAAE,YAAY,CAAC,OAAO;IAC5B,MAAM,EAAE,YAAY,CAAC,OAAO;IAC5B,UAAU,EAAE,YAAY,CAAC,WAAW;CACvC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAA8B;IACzD,CAAC,EAAG,IAAI;IACR,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,EAAE,EAAE,IAAI;CACX,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAA8B;IACrD,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,EAAE,EAAE,CAAC;CACR,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,cAAc;IACd,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC,EAAE;IAEd,aAAa;IACb,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,CAAC;IACb,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,IAAI;IAEhB,aAAa;IACb,+DAA+D;IAC/D,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,gBAAgB;IAChB,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,CAAC;IAChB,UAAU,EAAE,CAAC;IACb,iBAAiB;IACjB,YAAY,EAAE,CAAC,IAAI,EAAE,0CAA0C;IAC/D,SAAS,EAAE,CAAC,CAAC;CAChB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,CAAC,MAAM,aAAa,GAA8B;IACpD,IAAI,EAAE,YAAY,CAAC,SAAS;IAC5B,IAAI,EAAE,YAAY,CAAC,QAAQ;IAC3B,IAAI,EAAE,YAAY,CAAC,MAAM;IACzB,IAAI,EAAE,YAAY,CAAC,QAAQ;IAC3B,IAAI,EAAE,YAAY,CAAC,OAAO;IAC1B,IAAI,EAAE,YAAY,CAAC,OAAO;IAC1B,IAAI,EAAE,YAAY,CAAC,WAAW;IAC9B,QAAQ,EAAE,YAAY,CAAC,SAAS;IAChC,OAAO,EAAE,YAAY,CAAC,QAAQ;IAC9B,KAAK,EAAE,YAAY,CAAC,MAAM;IAC1B,OAAO,EAAE,YAAY,CAAC,QAAQ;IAC9B,MAAM,EAAE,YAAY,CAAC,OAAO;IAC5B,MAAM,EAAE,YAAY,CAAC,OAAO;IAC5B,UAAU,EAAE,YAAY,CAAC,WAAW;IACpC,KAAK,EAAE,YAAY,CAAC,SAAS;IAC7B,IAAI,EAAE,YAAY,CAAC,QAAQ;IAC3B,IAAI,EAAE,YAAY,CAAC,SAAS;IAC5B,IAAI,EAAE,YAAY,CAAC,OAAO;IAC1B,IAAI,EAAE,YAAY,CAAC,SAAS;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAA8B;IACzD,CAAC,EAAG,IAAI;IACR,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,KAAK;CACZ,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAA8B;IACrD,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;CACR,CAAA"}
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
@@ -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;IAR7B,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;IAI7B,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;IAuBrE,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,CAGjB;IAED,QAAQ,IAAI,MAAM;CAGrB"}
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;IAuBrE,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) {
@@ -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.name === '')
142
+ if (!this.parent)
141
143
  return '/';
142
- return `/${this.name}`;
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}'>`;
package/dist/group.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"group.js","sourceRoot":"","sources":["../src/group.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"group.js","sourceRoot":"","sources":["../src/group.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- export { NetCDF4 } from './netcdf4.js';
1
+ export { NetCDF4, DataTree } from './netcdf4.js';
2
+ export type { GroupNode } from './netcdf4.js';
2
3
  export { Variable } from './variable.js';
3
4
  export { Dimension } from './dimension.js';
4
5
  export { Group } from './group.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG7D,YAAY,EACR,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,aAAa,EAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhE,wBAAsB,OAAO,CACzB,MAAM,EAAE,aAAa,EACrB,IAAI,GAAE,MAAY,EAClB,OAAO,GAAE,cAAmB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAGD,wBAAsB,eAAe,CACjC,IAAI,EAAE,IAAI,EACV,IAAI,GAAE,MAAY,EAClB,OAAO,GAAE,cAAmB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAsB,sBAAsB,CACxC,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE,MAAY,EAClB,OAAO,GAAE,cAAmB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAsB,iBAAiB,CACnC,IAAI,EAAE,UAAU,GAAG,WAAW,EAC9B,IAAI,GAAE,MAAY,EAClB,OAAO,GAAE,cAAmB,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAKlB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG7D,YAAY,EACR,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,aAAa,EAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhE,wBAAsB,OAAO,CACzB,MAAM,EAAE,aAAa,EACrB,IAAI,GAAE,MAAY,EAClB,OAAO,GAAE,cAAmB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAGD,wBAAsB,eAAe,CACjC,IAAI,EAAE,IAAI,EACV,IAAI,GAAE,MAAY,EAClB,OAAO,GAAE,cAAmB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAsB,sBAAsB,CACxC,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE,MAAY,EAClB,OAAO,GAAE,cAAmB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAsB,iBAAiB,CACnC,IAAI,EAAE,UAAU,GAAG,WAAW,EAC9B,IAAI,GAAE,MAAY,EAClB,OAAO,GAAE,cAAmB,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAKlB"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // NetCDF4 WASM - Main entry point
2
2
  // JavaScript API modeled on netcdf4-python for familiarity
3
3
  // Export all classes and types
4
- export { NetCDF4 } from './netcdf4.js';
4
+ export { NetCDF4, DataTree } from './netcdf4.js';
5
5
  export { Variable } from './variable.js';
6
6
  export { Dimension } from './dimension.js';
7
7
  export { Group } from './group.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,2DAA2D;AAE3D,+BAA+B;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAa7D,2DAA2D;AAC3D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAElD,uFAAuF;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,MAAM,CAAC,KAAK,UAAU,OAAO,CACzB,MAAqB,EACrB,OAAe,GAAG,EAClB,UAA0B,EAAE;IAE5B,6BAA6B;IAC7B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7B,YAAY;QACZ,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;SAAM,IAAI,MAAM,YAAY,IAAI,EAAE,CAAC;QAChC,cAAc;QACd,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;SAAM,IAAI,MAAM,YAAY,WAAW,EAAE,CAAC;QACvC,cAAc;QACd,OAAO,MAAM,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;SAAM,IAAI,MAAM,YAAY,UAAU,EAAE,CAAC;QACtC,aAAa;QACb,OAAO,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;IAC/F,CAAC;AACL,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,IAAU,EACV,OAAe,GAAG,EAClB,UAA0B,EAAE;IAE5B,OAAO,MAAM,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CACxC,MAAmB,EACnB,OAAe,GAAG,EAClB,UAA0B,EAAE;IAE5B,OAAO,MAAM,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACnC,IAA8B,EAC9B,OAAe,GAAG,EAClB,UAA0B,EAAE,EAC5B,QAAiB;IAEjB,IAAI,QAAQ,EAAE,CAAC;QACX,OAAO,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,MAAM,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,2DAA2D;AAE3D,+BAA+B;AAC/B,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAa7D,2DAA2D;AAC3D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAElD,uFAAuF;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,MAAM,CAAC,KAAK,UAAU,OAAO,CACzB,MAAqB,EACrB,OAAe,GAAG,EAClB,UAA0B,EAAE;IAE5B,6BAA6B;IAC7B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7B,YAAY;QACZ,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;SAAM,IAAI,MAAM,YAAY,IAAI,EAAE,CAAC;QAChC,cAAc;QACd,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;SAAM,IAAI,MAAM,YAAY,WAAW,EAAE,CAAC;QACvC,cAAc;QACd,OAAO,MAAM,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;SAAM,IAAI,MAAM,YAAY,UAAU,EAAE,CAAC;QACtC,aAAa;QACb,OAAO,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;IAC/F,CAAC;AACL,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,IAAU,EACV,OAAe,GAAG,EAClB,UAA0B,EAAE;IAE5B,OAAO,MAAM,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CACxC,MAAmB,EACnB,OAAe,GAAG,EAClB,UAA0B,EAAE;IAE5B,OAAO,MAAM,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACnC,IAA8B,EAC9B,OAAe,GAAG,EAClB,UAA0B,EAAE,EAC5B,QAAiB;IAEjB,IAAI,QAAQ,EAAE,CAAC;QACX,OAAO,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,MAAM,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC"}
@@ -1,16 +1,95 @@
1
1
  import type { NetCDF4Module } from './types.js';
2
- export declare function getVariables(module: NetCDF4Module, ncid: number): Record<string, any>;
2
+ export declare function getGroupVariables(module: NetCDF4Module, ncid: number, groupPath?: string): Record<string, any>;
3
3
  export declare function getVarCount(module: NetCDF4Module, ncid: number): number;
4
4
  export declare function getDimCount(module: NetCDF4Module, ncid: number): number;
5
- export declare function getDims(module: NetCDF4Module, ncid: number): Record<string, any>;
6
- export declare function getDimIDs(module: NetCDF4Module, ncid: number): number[] | Int32Array;
5
+ export declare function getDims(module: NetCDF4Module, ncid: number, groupPath?: string): Record<string, any>;
6
+ export declare function getDimIDs(module: NetCDF4Module, ncid: number, includeParents?: boolean): number[] | Int32Array;
7
7
  export declare function getDim(module: NetCDF4Module, ncid: number, dimid: number): Record<string, any>;
8
8
  export declare function getAttributeValues(module: NetCDF4Module, ncid: number, varid: number, attname: string): any;
9
- export declare function getGlobalAttributes(module: NetCDF4Module, ncid: number): Record<string, any>;
9
+ export declare function getGlobalAttributes(module: NetCDF4Module, ncid: number, groupPath?: string): Record<string, any>;
10
10
  export declare function getAttributeName(module: NetCDF4Module, ncid: number, varid: number, attId: number): string | undefined;
11
- export declare function getFullMetadata(module: NetCDF4Module, ncid: number): Record<string, any>[];
11
+ export declare function getFullMetadata(module: NetCDF4Module, ncid: number, groupPath?: string): Record<string, any>[];
12
12
  export declare function getVarIDs(module: NetCDF4Module, ncid: number): number[] | Int32Array;
13
- export declare function getVariableInfo(module: NetCDF4Module, ncid: number, variable: number | string): Record<string, any>;
14
- export declare function getVariableArray(module: NetCDF4Module, ncid: number, variable: number | string): Float32Array | Float64Array | Int16Array | Int32Array | BigInt64Array | BigInt[] | string[];
15
- export declare function getSlicedVariableArray(module: NetCDF4Module, ncid: number, variable: number | string, start: number[], count: number[]): Float32Array | Float64Array | Int16Array | Int32Array | BigInt64Array | BigInt[] | string[];
13
+ export declare function getVariableInfo(module: NetCDF4Module, ncid: number, variable: number | string, groupPath?: string): Record<string, any>;
14
+ export declare function getVariableArray(module: NetCDF4Module, ncid: number, variable: number | string, groupPath?: string): Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array | string[];
15
+ export declare function getSlicedVariableArray(module: NetCDF4Module, ncid: number, variable: number | string, start: number[], count: number[], groupPath?: string): Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array | string[];
16
+ /**
17
+ * Get group ncid by path (supports nested groups)
18
+ * Uses nc_inq_grp_full_ncid for absolute paths and manual traversal for relative paths
19
+ * @param module - NetCDF4 module
20
+ * @param ncid - Current ncid (can be root or any group)
21
+ * @param groupPath - Can be absolute ("/group1/subgroup") or relative ("subgroup" or "group1/subgroup")
22
+ * @returns The ncid of the requested group
23
+ */
24
+ export declare function getGroupNCID(module: NetCDF4Module, ncid: number, groupPath: string): number;
25
+ /**
26
+ * Alias for getGroupNCID (matches nc_inq_ncid API)
27
+ * @param module - NetCDF4 module
28
+ * @param ncid - Current ncid
29
+ * @param groupName - Group name or path
30
+ * @returns The ncid of the requested group
31
+ */
32
+ export declare const getNCID: typeof getGroupNCID;
33
+ /**
34
+ * Get immediate child groups (non-recursive)
35
+ * @param module - NetCDF4 module
36
+ * @param ncid - Group ncid to query
37
+ * @returns Object mapping group names to their ncids
38
+ */
39
+ export declare function getGroups(module: NetCDF4Module, ncid: number): Record<string, number>;
40
+ /**
41
+ * Get all groups recursively (returns nested structure)
42
+ * @param module - NetCDF4 module
43
+ * @param ncid - Group ncid to start from (usually root)
44
+ * @returns Nested object structure with group names, ncids, and subgroups
45
+ */
46
+ export declare function getGroupsRecursive(module: NetCDF4Module, ncid: number): Record<string, any>;
47
+ /**
48
+ * Get the name of a group
49
+ * @param module - NetCDF4 module
50
+ * @param ncid - Group ncid
51
+ * @returns Group name
52
+ */
53
+ export declare function getGroupName(module: NetCDF4Module, ncid: number): string;
54
+ /**
55
+ * Get the full absolute path of a group
56
+ * Uses nc_inq_grpname_full for efficient path retrieval
57
+ * @param module - NetCDF4 module
58
+ * @param ncid - Group ncid
59
+ * @returns Full path like "/group1/subgroup"
60
+ */
61
+ export declare function getGroupPath(module: NetCDF4Module, ncid: number): string;
62
+ /**
63
+ * Get the length of a group's full path name
64
+ * @param module - NetCDF4 module
65
+ * @param ncid - Group ncid
66
+ * @returns Length of the full group path name
67
+ */
68
+ export declare function getGroupPathLength(module: NetCDF4Module, ncid: number): number;
69
+ /**
70
+ * Get the parent group ncid
71
+ * @param module - NetCDF4 module
72
+ * @param ncid - Group ncid
73
+ * @returns Parent group ncid, or null if this is the root group
74
+ */
75
+ export declare function getGroupParent(module: NetCDF4Module, ncid: number): number | null;
76
+ /**
77
+ * Get complete hierarchy: groups + their variables, dimensions, and attributes recursively
78
+ * This is the unified method that should be used for exploring the file structure
79
+ * @param module - NetCDF4 module
80
+ * @param ncid - Group ncid to start from
81
+ * @param groupPath - Optional path to a specific starting group
82
+ * @param includeParentDims - Whether to include parent dimensions in each group (default: false)
83
+ * @returns Complete hierarchical structure
84
+ */
85
+ export declare function getCompleteHierarchy(module: NetCDF4Module, ncid: number, groupPath?: string, includeParentDims?: boolean): Record<string, any>;
86
+ /**
87
+ * Get all variables recursively from all groups
88
+ * Returns a flat structure with full paths as keys
89
+ * @param module - NetCDF4 module
90
+ * @param ncid - Group ncid to start from
91
+ * @param currentPath - Current path (used internally for recursion)
92
+ * @returns Flat dictionary with full variable paths
93
+ */
94
+ export declare function getVariables(module: NetCDF4Module, ncid: number, currentPath?: string): Record<string, any>;
16
95
  //# sourceMappingURL=netcdf-getters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"netcdf-getters.d.ts","sourceRoot":"","sources":["../src/netcdf-getters.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,wBAAgB,YAAY,CACxB,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAiBrB;AAED,wBAAgB,WAAW,CACvB,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,MAAM,CAMR;AAED,wBAAgB,WAAW,CACvB,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,MAAM,CAMR;AAED,wBAAgB,OAAO,CACnB,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAYrB;AAED,wBAAgB,SAAS,CACrB,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,MAAM,EAAE,GAAG,UAAU,CAMvB;AAED,wBAAgB,MAAM,CAClB,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAUrB;AAED,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAChB,GAAG,CAkBL;AAED,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAkBrB;AAED,wBAAgB,gBAAgB,CAC5B,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAC,MAAM,EACZ,KAAK,EAAE,MAAM,GACb,MAAM,GAAG,SAAS,CAMrB;AAED,wBAAgB,eAAe,CAC3B,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CASvB;AAED,wBAAgB,SAAS,CACrB,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,MAAM,EAAE,GAAG,UAAU,CAMvB;AAED,wBAAgB,eAAe,CAC3B,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAsElD;AAED,wBAAgB,gBAAgB,CAC5B,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,MAAM,GAC1B,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAqB7F;AAED,wBAAgB,sBAAsB,CAClC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,KAAK,EAAE,MAAM,EAAE,EACf,KAAK,EAAE,MAAM,EAAE,GAChB,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAoB7F"}
1
+ {"version":3,"file":"netcdf-getters.d.ts","sourceRoot":"","sources":["../src/netcdf-getters.ts"],"names":[],"mappings":"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"}