@earthyscience/netcdf4-wasm 0.2.0 → 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.
@@ -1 +1 @@
1
- {"version":3,"file":"netcdf-getters.d.ts","sourceRoot":"","sources":["../src/netcdf-getters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"netcdf-getters.d.ts","sourceRoot":"","sources":["../src/netcdf-getters.ts"],"names":[],"mappings":"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"}
@@ -108,6 +108,7 @@ export function getAttributeValues(module, ncid, varid, attname) {
108
108
  [NC_CONSTANTS.NC_INT]: module.nc_get_att_int,
109
109
  [NC_CONSTANTS.NC_FLOAT]: module.nc_get_att_float,
110
110
  [NC_CONSTANTS.NC_DOUBLE]: module.nc_get_att_double,
111
+ [NC_CONSTANTS.NC_BYTE]: module.nc_get_att_schar,
111
112
  [NC_CONSTANTS.NC_UBYTE]: module.nc_get_att_uchar,
112
113
  [NC_CONSTANTS.NC_UINT]: module.nc_get_att_uint,
113
114
  [NC_CONSTANTS.NC_USHORT]: module.nc_get_att_ushort,
@@ -168,6 +169,90 @@ export function getVarIDs(module, ncid) {
168
169
  }
169
170
  return result.varids ?? [];
170
171
  }
172
+ export function getEnumType(module, ncid, xtype) {
173
+ // Get basic enum info
174
+ const { result: infoResult, name, baseType, baseSize, numMembers } = module.nc_inq_enum(ncid, xtype);
175
+ if (infoResult !== NC_CONSTANTS.NC_NOERR || !name || baseType === undefined || numMembers === undefined) {
176
+ throw new Error(`Failed to get enum info (error: ${infoResult})`);
177
+ }
178
+ // Get all members
179
+ const members = [];
180
+ for (let i = 0; i < numMembers; i++) {
181
+ const { result, name: memberName, value } = module.nc_inq_enum_member(ncid, xtype, i, baseType);
182
+ if (result === NC_CONSTANTS.NC_NOERR && memberName !== undefined && value !== undefined) {
183
+ members.push({ name: memberName, value });
184
+ }
185
+ }
186
+ return {
187
+ name,
188
+ baseType,
189
+ baseSize: baseSize,
190
+ numMembers,
191
+ members
192
+ };
193
+ }
194
+ export function getTypeClass(module, ncid, xtype) {
195
+ // Atomic types return themselves as the class
196
+ if (xtype < 13) { // Below NC_VLEN
197
+ return xtype;
198
+ }
199
+ // For user-defined types, query the class
200
+ const { result, typeClass } = module.nc_inq_user_type(ncid, xtype);
201
+ if (result === NC_CONSTANTS.NC_NOERR && typeClass !== undefined) {
202
+ return typeClass;
203
+ }
204
+ return xtype;
205
+ }
206
+ function buildEnumDict(module, ncid, enumTypeId, enumBaseType) {
207
+ const enumInqResult = module.nc_inq_enum(ncid, enumTypeId);
208
+ const { result: enumResult, numMembers } = enumInqResult;
209
+ if (enumResult !== NC_CONSTANTS.NC_NOERR || numMembers === undefined) {
210
+ throw new Error(`Failed to get enum info (error: ${enumResult})`);
211
+ }
212
+ const enumDict = {};
213
+ for (let i = 0; i < numMembers; i++) {
214
+ const memberResult = module.nc_inq_enum_member(ncid, enumTypeId, i, enumBaseType);
215
+ const { result: memberResultCode, name: memberName, value } = memberResult;
216
+ if (memberResultCode === NC_CONSTANTS.NC_NOERR && memberName !== undefined && value !== undefined) {
217
+ // Note: bigint values exceeding Number.MAX_SAFE_INTEGER will lose precision.
218
+ // In practice enum values are small named constants so this is acceptable.
219
+ const numValue = typeof value === 'bigint' ? Number(value) : value;
220
+ enumDict[numValue] = memberName;
221
+ }
222
+ else {
223
+ console.warn(`[buildEnumDict] Skipping member ${i}: result=${memberResultCode}, name=${memberName}, value=${value}`);
224
+ }
225
+ }
226
+ return enumDict;
227
+ }
228
+ function resolveEnumContext(module, ncid, varType) {
229
+ const typeClass = getTypeClass(module, ncid, varType);
230
+ if (typeClass === NC_CONSTANTS.NC_VLEN ||
231
+ typeClass === NC_CONSTANTS.NC_OPAQUE ||
232
+ typeClass === NC_CONSTANTS.NC_COMPOUND) {
233
+ throw new Error(`Unsupported type class: ${typeClass} (VLEN, OPAQUE, and COMPOUND not yet implemented)`);
234
+ }
235
+ if (typeClass !== NC_CONSTANTS.NC_ENUM) {
236
+ return { isEnum: false, baseType: varType };
237
+ }
238
+ const { result, baseType } = module.nc_inq_enum(ncid, varType);
239
+ if (result !== NC_CONSTANTS.NC_NOERR || baseType === undefined) {
240
+ throw new Error(`Failed to get enum base type (error: ${result})`);
241
+ }
242
+ const enumDict = buildEnumDict(module, ncid, varType, baseType);
243
+ return { isEnum: true, baseType, enumDict };
244
+ }
245
+ function resolveVariableType(module, ncid, varid) {
246
+ const result = module.nc_inq_var(ncid, varid);
247
+ if (result.result !== NC_CONSTANTS.NC_NOERR) {
248
+ throw new Error(`Failed to get variable info (error: ${result.result})`);
249
+ }
250
+ const dimids = result.dimids ? Array.from(result.dimids) : [];
251
+ const size = dimids.reduce((acc, dimid) => acc * getDim(module, ncid, dimid).len, 1);
252
+ const nctype = result.type;
253
+ const enumCtx = resolveEnumContext(module, ncid, nctype);
254
+ return { nctype, size, enumCtx };
255
+ }
171
256
  export function getVariableInfo(module, ncid, variable, groupPath) {
172
257
  const workingNcid = groupPath ? getGroupNCID(module, ncid, groupPath) : ncid;
173
258
  const info = {};
@@ -181,69 +266,77 @@ export function getVariableInfo(module, ncid, variable, groupPath) {
181
266
  if (result.result !== NC_CONSTANTS.NC_NOERR) {
182
267
  throw new Error(`Failed to get variable info (error: ${result.result})`);
183
268
  }
184
- const typeMultiplier = DATA_TYPE_SIZE[result.type];
185
- // Dim Info - FIXED to preserve order
269
+ const varType = result.type;
270
+ const enumCtx = resolveEnumContext(module, workingNcid, varType);
271
+ const actualType = enumCtx.baseType;
272
+ const typeMultiplier = DATA_TYPE_SIZE[actualType];
273
+ // Dim Info
186
274
  const dimids = result.dimids;
187
275
  const dims = [];
188
276
  const shape = [];
189
- const dimensions = []; // Array to store dimension names in order
277
+ const dimensions = [];
190
278
  let size = 1;
191
279
  if (dimids) {
192
- // Iterate through dimids in order - this matches the shape order
193
280
  for (let i = 0; i < dimids.length; i++) {
194
281
  const dimid = dimids[i];
195
282
  const dim = getDim(module, workingNcid, dimid);
196
283
  size *= dim.len;
197
284
  dims.push(dim);
198
285
  shape.push(dim.len);
199
- dimensions.push(dim.name); // Add dimension name in the same order
286
+ dimensions.push(dim.name);
200
287
  }
201
288
  }
202
289
  // Attribute Info
203
290
  const attNames = [];
204
291
  if (result.natts) {
205
292
  for (let i = 0; i < result.natts; i++) {
206
- const attname = getAttributeName(module, workingNcid, varid, i);
207
- attNames.push(attname);
293
+ attNames.push(getAttributeName(module, workingNcid, varid, i));
208
294
  }
209
295
  }
210
296
  const atts = {};
211
- if (attNames.length > 0) {
212
- for (const attname of attNames) {
213
- if (!attname)
214
- continue;
215
- atts[attname] = getAttributeValues(module, workingNcid, varid, attname);
216
- }
297
+ for (const attname of attNames) {
298
+ if (!attname)
299
+ continue;
300
+ atts[attname] = getAttributeValues(module, workingNcid, varid, attname);
217
301
  }
218
302
  // Chunking Info
219
- let chunks;
220
303
  const chunkResult = module.nc_inq_var_chunking(workingNcid, varid);
221
304
  const isChunked = chunkResult.chunking === NC_CONSTANTS.NC_CHUNKED;
222
- if (isChunked) {
223
- chunks = chunkResult.chunkSizes;
224
- }
225
- else {
226
- chunks = shape;
227
- }
305
+ const chunks = isChunked ? chunkResult.chunkSizes : shape;
228
306
  const chunkElements = chunks.reduce((a, b) => a * b, 1);
229
- // Output
307
+ // Output
230
308
  info["name"] = result.name;
231
- info["dtype"] = CONSTANT_DTYPE_MAP[result.type];
232
- info['nctype'] = result.type;
309
+ info["dtype"] = enumCtx.isEnum ? `enum(${CONSTANT_DTYPE_MAP[actualType]})` : CONSTANT_DTYPE_MAP[actualType];
310
+ info["dtype_base"] = CONSTANT_DTYPE_MAP[actualType];
311
+ info["nctype"] = varType;
312
+ info["nctype_base"] = actualType;
233
313
  info["shape"] = shape;
234
- info['dims'] = dims;
235
- info["dimensions"] = dimensions; // Add ordered dimension names array
314
+ info["dims"] = dims;
315
+ info["dimensions"] = dimensions;
236
316
  info["size"] = size;
237
317
  info["totalSize"] = size * typeMultiplier;
238
318
  info["attributes"] = atts;
239
319
  info["chunked"] = isChunked;
240
320
  info["chunks"] = chunks;
241
321
  info["chunkSize"] = chunkElements * typeMultiplier;
322
+ if (enumCtx.isEnum) {
323
+ info["enum"] = enumCtx.enumDict;
324
+ info["enumType"] = { name: result.name, baseType: actualType };
325
+ }
242
326
  return info;
243
327
  }
244
- export function getVariableArray(module, ncid, variable, groupPath) {
328
+ // Helper function to convert enum values to names
329
+ function convertEnumValuesToNames(data, enumDict) {
330
+ const enumNames = [];
331
+ for (let i = 0; i < data.length; i++) {
332
+ const value = data[i];
333
+ const numValue = typeof value === 'bigint' ? Number(value) : Number(value);
334
+ enumNames.push(enumDict[numValue] ?? `Unknown(${numValue})`);
335
+ }
336
+ return enumNames;
337
+ }
338
+ export function getVariableArray(module, ncid, variable, groupPath, options) {
245
339
  const workingNcid = groupPath ? getGroupNCID(module, ncid, groupPath) : ncid;
246
- // Resolve variable id
247
340
  let varid;
248
341
  if (typeof variable === "number") {
249
342
  varid = variable;
@@ -255,52 +348,51 @@ export function getVariableArray(module, ncid, variable, groupPath) {
255
348
  }
256
349
  varid = result.varid;
257
350
  }
258
- const info = getVariableInfo(module, workingNcid, varid);
259
- const arrayType = info.nctype;
260
- const arraySize = info.size;
261
- if (arrayType === undefined || arrayType === null) {
262
- throw new Error("Failed to determine variable type");
263
- }
264
- if (arraySize === undefined || arraySize === null) {
265
- throw new Error("Failed to determine variable size");
266
- }
267
- // Arrow wrappers = safe binding
351
+ const { size: arraySize, enumCtx } = resolveVariableType(module, workingNcid, varid);
352
+ const arrayType = enumCtx.baseType;
268
353
  const readers = {
269
354
  [NC_CONSTANTS.NC_CHAR]: (...args) => module.nc_get_var_text(...args),
270
- [NC_CONSTANTS.NC_SHORT]: (...args) => module.nc_get_var_short(...args),
271
- [NC_CONSTANTS.NC_INT]: (...args) => module.nc_get_var_int(...args),
272
- [NC_CONSTANTS.NC_FLOAT]: (...args) => module.nc_get_var_float(...args),
273
- [NC_CONSTANTS.NC_DOUBLE]: (...args) => module.nc_get_var_double(...args),
274
- [NC_CONSTANTS.NC_LONGLONG]: (...args) => module.nc_get_var_longlong(...args),
275
355
  [NC_CONSTANTS.NC_BYTE]: (...args) => module.nc_get_var_schar(...args),
276
356
  [NC_CONSTANTS.NC_UBYTE]: (...args) => module.nc_get_var_uchar(...args),
357
+ [NC_CONSTANTS.NC_SHORT]: (...args) => module.nc_get_var_short(...args),
277
358
  [NC_CONSTANTS.NC_USHORT]: (...args) => module.nc_get_var_ushort(...args),
359
+ [NC_CONSTANTS.NC_INT]: (...args) => module.nc_get_var_int(...args),
278
360
  [NC_CONSTANTS.NC_UINT]: (...args) => module.nc_get_var_uint(...args),
361
+ [NC_CONSTANTS.NC_FLOAT]: (...args) => module.nc_get_var_float(...args),
362
+ [NC_CONSTANTS.NC_DOUBLE]: (...args) => module.nc_get_var_double(...args),
279
363
  [NC_CONSTANTS.NC_INT64]: (...args) => module.nc_get_var_longlong(...args),
364
+ [NC_CONSTANTS.NC_LONGLONG]: (...args) => module.nc_get_var_longlong(...args),
280
365
  [NC_CONSTANTS.NC_UINT64]: (...args) => module.nc_get_var_ulonglong(...args),
366
+ [NC_CONSTANTS.NC_ULONGLONG]: (...args) => module.nc_get_var_ulonglong(...args),
281
367
  [NC_CONSTANTS.NC_STRING]: (...args) => module.nc_get_var_string(...args),
282
368
  };
283
- const reader = readers[arrayType];
284
369
  let arrayData;
285
- if (!reader) {
286
- console.warn(`Unknown NetCDF type ${arrayType}, falling back to double`);
287
- arrayData = module.nc_get_var_double(workingNcid, varid, arraySize);
370
+ if (enumCtx.isEnum) {
371
+ arrayData = module.nc_get_var_generic(workingNcid, varid, arraySize, arrayType);
288
372
  }
289
373
  else {
290
- arrayData = reader(workingNcid, varid, arraySize);
374
+ const reader = readers[arrayType];
375
+ if (!reader) {
376
+ console.warn(`Unknown NetCDF type ${arrayType}, falling back to double`);
377
+ arrayData = module.nc_get_var_double(workingNcid, varid, arraySize);
378
+ }
379
+ else {
380
+ arrayData = reader(workingNcid, varid, arraySize);
381
+ }
291
382
  }
292
383
  if (arrayData.result !== NC_CONSTANTS.NC_NOERR) {
293
384
  throw new Error(`Failed to read array data (error: ${arrayData.result})`);
294
385
  }
295
386
  if (!arrayData.data) {
296
- console.error("nc_get_var result:", arrayData);
297
387
  throw new Error("nc_get_var returned no data");
298
388
  }
389
+ if (enumCtx.isEnum && options?.convertEnumsToNames && enumCtx.enumDict) {
390
+ return convertEnumValuesToNames(arrayData.data, enumCtx.enumDict);
391
+ }
299
392
  return arrayData.data;
300
393
  }
301
- export function getSlicedVariableArray(module, ncid, variable, start, count, groupPath) {
394
+ export function getSlicedVariableArray(module, ncid, variable, start, count, groupPath, options) {
302
395
  const workingNcid = groupPath ? getGroupNCID(module, ncid, groupPath) : ncid;
303
- // Resolve variable id
304
396
  let varid;
305
397
  if (typeof variable === "number") {
306
398
  varid = variable;
@@ -312,40 +404,43 @@ export function getSlicedVariableArray(module, ncid, variable, start, count, gro
312
404
  }
313
405
  varid = result.varid;
314
406
  }
315
- const info = getVariableInfo(module, workingNcid, varid);
316
- const arrayType = info.nctype;
317
- if (arrayType === undefined || arrayType === null) {
318
- throw new Error("Failed to determine variable type");
319
- }
320
- // Arrow wrappers keep module binding intact
407
+ const { enumCtx } = resolveVariableType(module, workingNcid, varid);
408
+ const arrayType = enumCtx.baseType;
321
409
  const readers = {
322
- [NC_CONSTANTS.NC_SHORT]: (...args) => module.nc_get_vara_short(...args),
323
- [NC_CONSTANTS.NC_INT]: (...args) => module.nc_get_vara_int(...args),
324
- [NC_CONSTANTS.NC_FLOAT]: (...args) => module.nc_get_vara_float(...args),
325
- [NC_CONSTANTS.NC_DOUBLE]: (...args) => module.nc_get_vara_double(...args),
326
410
  [NC_CONSTANTS.NC_BYTE]: (...args) => module.nc_get_vara_schar(...args),
327
411
  [NC_CONSTANTS.NC_UBYTE]: (...args) => module.nc_get_vara_uchar(...args),
412
+ [NC_CONSTANTS.NC_SHORT]: (...args) => module.nc_get_vara_short(...args),
328
413
  [NC_CONSTANTS.NC_USHORT]: (...args) => module.nc_get_vara_ushort(...args),
414
+ [NC_CONSTANTS.NC_INT]: (...args) => module.nc_get_vara_int(...args),
329
415
  [NC_CONSTANTS.NC_UINT]: (...args) => module.nc_get_vara_uint(...args),
416
+ [NC_CONSTANTS.NC_FLOAT]: (...args) => module.nc_get_vara_float(...args),
417
+ [NC_CONSTANTS.NC_DOUBLE]: (...args) => module.nc_get_vara_double(...args),
330
418
  [NC_CONSTANTS.NC_INT64]: (...args) => module.nc_get_vara_longlong(...args),
331
419
  [NC_CONSTANTS.NC_UINT64]: (...args) => module.nc_get_vara_ulonglong(...args),
332
420
  [NC_CONSTANTS.NC_STRING]: (...args) => module.nc_get_vara_string(...args),
333
421
  };
334
- const reader = readers[arrayType];
335
422
  let arrayData;
336
- if (!reader) {
337
- console.warn(`Unknown NetCDF type ${arrayType}, falling back to double`);
338
- arrayData = module.nc_get_vara_double(workingNcid, varid, start, count);
423
+ if (enumCtx.isEnum) {
424
+ arrayData = module.nc_get_vara_generic(workingNcid, varid, start, count, arrayType);
339
425
  }
340
426
  else {
341
- arrayData = reader(workingNcid, varid, start, count);
427
+ const reader = readers[arrayType];
428
+ if (!reader) {
429
+ console.warn(`Unknown NetCDF type ${arrayType}, falling back to double`);
430
+ arrayData = module.nc_get_vara_double(workingNcid, varid, start, count);
431
+ }
432
+ else {
433
+ arrayData = reader(workingNcid, varid, start, count);
434
+ }
342
435
  }
343
436
  if (arrayData.result !== NC_CONSTANTS.NC_NOERR) {
344
437
  throw new Error(`Failed to read sliced array data (error: ${arrayData.result})`);
345
438
  }
346
439
  if (!arrayData.data) {
347
- console.error("nc_get_vara result:", arrayData);
348
- throw new Error("Failed to read array data - no data returned");
440
+ throw new Error("nc_get_vara returned no data");
441
+ }
442
+ if (enumCtx.isEnum && options?.convertEnumsToNames && enumCtx.enumDict) {
443
+ return convertEnumValuesToNames(arrayData.data, enumCtx.enumDict);
349
444
  }
350
445
  return arrayData.data;
351
446
  }
@@ -1 +1 @@
1
- {"version":3,"file":"netcdf-getters.js","sourceRoot":"","sources":["../src/netcdf-getters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"netcdf-getters.js","sourceRoot":"","sources":["../src/netcdf-getters.ts"],"names":[],"mappings":"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"}