@earthyscience/netcdf4-wasm 0.1.2 → 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.
@@ -30,6 +30,7 @@ export class WasmModuleLoader {
30
30
  }
31
31
  static wrapModule(module) {
32
32
  // Create wrappers for NetCDF functions
33
+ // https://docs.unidata.ucar.edu/netcdf-c/current/group__variables.html#details
33
34
  const nc_open_wrapper = module.cwrap('nc_open_wrapper', 'number', ['string', 'number', 'number']);
34
35
  const nc_close_wrapper = module.cwrap('nc_close_wrapper', 'number', ['number']);
35
36
  const nc_create_wrapper = module.cwrap('nc_create_wrapper', 'number', ['string', 'number', 'number']);
@@ -53,7 +54,7 @@ export class WasmModuleLoader {
53
54
  const nc_inq_var_wrapper = module.cwrap('nc_inq_var_wrapper', 'number', [
54
55
  'number', 'number', // ncid, varid
55
56
  'number', // name pointer
56
- 'number', 'number', 'number', // typep, ndimsp, dimidsp, nattsp
57
+ 'number', 'number', 'number', 'number' // typep, ndimsp, dimidsp, nattsp
57
58
  ]);
58
59
  // Variable inquiry wrappers
59
60
  const nc_inq_varname_wrapper = module.cwrap('nc_inq_varname_wrapper', 'number', ['number', 'number', 'number']);
@@ -76,17 +77,48 @@ export class WasmModuleLoader {
76
77
  const nc_get_att_float_wrapper = module.cwrap('nc_get_att_float_wrapper', 'number', ['number', 'number', 'string', 'number']);
77
78
  const nc_get_att_double_wrapper = module.cwrap('nc_get_att_double_wrapper', 'number', ['number', 'number', 'string', 'number']);
78
79
  const nc_get_att_longlong_wrapper = module.cwrap('nc_get_att_longlong_wrapper', 'number', ['number', 'number', 'string', 'number']);
80
+ const nc_get_att_string_wrapper = module.cwrap('nc_get_att_string_wrapper', 'number', ['number', 'number', 'string', 'number']);
81
+ const nc_free_string_wrapper = module.cwrap('nc_free_string_wrapper', 'number', ['number', 'number']);
82
+ // 8-bit unsigned
83
+ const nc_get_att_uchar_wrapper = module.cwrap('nc_get_att_uchar_wrapper', 'number', ['number', 'number', 'string', 'number']);
84
+ // 16-bit unsigned
85
+ const nc_get_att_ushort_wrapper = module.cwrap('nc_get_att_ushort_wrapper', 'number', ['number', 'number', 'string', 'number']);
86
+ // 32-bit unsigned
87
+ const nc_get_att_uint_wrapper = module.cwrap('nc_get_att_uint_wrapper', 'number', ['number', 'number', 'string', 'number']);
88
+ // 64-bit unsigned
89
+ const nc_get_att_ulonglong_wrapper = module.cwrap('nc_get_att_ulonglong_wrapper', 'number', ['number', 'number', 'string', 'number']);
79
90
  // Variable getters
80
91
  const nc_get_vara_short_wrapper = module.cwrap('nc_get_vara_short_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);
81
92
  const nc_get_vara_int_wrapper = module.cwrap('nc_get_vara_int_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);
82
93
  const nc_get_vara_float_wrapper = module.cwrap('nc_get_vara_float_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);
83
94
  const nc_get_vara_double_wrapper = module.cwrap('nc_get_vara_double_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);
95
+ const nc_get_vara_longlong_wrapper = module.cwrap('nc_get_vara_longlong_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);
96
+ const nc_get_vara_schar_wrapper = module.cwrap('nc_get_vara_schar_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);
97
+ const nc_get_vara_uchar_wrapper = module.cwrap('nc_get_vara_uchar_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);
98
+ const nc_get_vara_ushort_wrapper = module.cwrap('nc_get_vara_ushort_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);
99
+ const nc_get_vara_uint_wrapper = module.cwrap('nc_get_vara_uint_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);
100
+ const nc_get_vara_ulonglong_wrapper = module.cwrap('nc_get_vara_ulonglong_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);
101
+ const nc_get_vara_string_wrapper = module.cwrap('nc_get_vara_string_wrapper', 'number', ['number', 'number', 'number', 'number', 'number']);
84
102
  const nc_get_var_text_wrapper = module.cwrap('nc_get_var_text_wrapper', 'number', ['number', 'number', 'number']);
85
103
  const nc_get_var_short_wrapper = module.cwrap('nc_get_var_short_wrapper', 'number', ['number', 'number', 'number']);
86
104
  const nc_get_var_int_wrapper = module.cwrap('nc_get_var_int_wrapper', 'number', ['number', 'number', 'number']);
87
105
  const nc_get_var_longlong_wrapper = module.cwrap('nc_get_var_longlong_wrapper', 'number', ['number', 'number', 'number']);
88
106
  const nc_get_var_float_wrapper = module.cwrap('nc_get_var_float_wrapper', 'number', ['number', 'number', 'number']);
89
107
  const nc_get_var_double_wrapper = module.cwrap('nc_get_var_double_wrapper', 'number', ['number', 'number', 'number']);
108
+ const nc_get_var_schar_wrapper = module.cwrap('nc_get_var_schar_wrapper', 'number', ['number', 'number', 'number']);
109
+ const nc_get_var_uchar_wrapper = module.cwrap('nc_get_var_uchar_wrapper', 'number', ['number', 'number', 'number']);
110
+ const nc_get_var_ushort_wrapper = module.cwrap('nc_get_var_ushort_wrapper', 'number', ['number', 'number', 'number']);
111
+ const nc_get_var_uint_wrapper = module.cwrap('nc_get_var_uint_wrapper', 'number', ['number', 'number', 'number']);
112
+ const nc_get_var_ulonglong_wrapper = module.cwrap('nc_get_var_ulonglong_wrapper', 'number', ['number', 'number', 'number']);
113
+ const nc_get_var_string_wrapper = module.cwrap('nc_get_var_string_wrapper', 'number', ['number', 'number', 'number']);
114
+ // Group inquiry wrappers
115
+ const nc_inq_grps_wrapper = module.cwrap('nc_inq_grps_wrapper', 'number', ['number', 'number', 'number']);
116
+ const nc_inq_grp_ncid_wrapper = module.cwrap('nc_inq_grp_ncid_wrapper', 'number', ['number', 'string', 'number']);
117
+ const nc_inq_grpname_wrapper = module.cwrap('nc_inq_grpname_wrapper', 'number', ['number', 'number']);
118
+ const nc_inq_grp_parent_wrapper = module.cwrap('nc_inq_grp_parent_wrapper', 'number', ['number', 'number']);
119
+ const nc_inq_grp_full_ncid_wrapper = module.cwrap('nc_inq_grp_full_ncid_wrapper', 'number', ['number', 'string', 'number']);
120
+ const nc_inq_grpname_full_wrapper = module.cwrap('nc_inq_grpname_full_wrapper', 'number', ['number', 'number', 'number']);
121
+ const nc_inq_grpname_len_wrapper = module.cwrap('nc_inq_grpname_len_wrapper', 'number', ['number', 'number']);
90
122
  return {
91
123
  ...module,
92
124
  nc_open: (path, mode) => {
@@ -397,7 +429,7 @@ export class WasmModuleLoader {
397
429
  //---- Variable Getters ----//
398
430
  nc_get_vara_short: (ncid, varid, start, count) => {
399
431
  const totalLength = count.reduce((a, b) => a * b, 1);
400
- const dataPtr = module._malloc(totalLength * 2);
432
+ const dataPtr = module._malloc(totalLength * 4);
401
433
  const startPtr = module._malloc(start.length * 8);
402
434
  const countPtr = module._malloc(count.length * 8);
403
435
  start.forEach((val, i) => module.setValue(startPtr + i * 8, val, 'i64'));
@@ -413,7 +445,7 @@ export class WasmModuleLoader {
413
445
  },
414
446
  nc_get_vara_int: (ncid, varid, start, count) => {
415
447
  const totalLength = count.reduce((a, b) => a * b, 1);
416
- const dataPtr = module._malloc(totalLength * 4);
448
+ const dataPtr = module._malloc(totalLength * 8);
417
449
  const startPtr = module._malloc(start.length * 8);
418
450
  const countPtr = module._malloc(count.length * 8);
419
451
  start.forEach((val, i) => module.setValue(startPtr + i * 8, val, 'i64'));
@@ -459,12 +491,129 @@ export class WasmModuleLoader {
459
491
  module._free(countPtr);
460
492
  return { result, data };
461
493
  },
494
+ nc_get_vara_longlong: (ncid, varid, start, count) => {
495
+ const totalLength = count.reduce((a, b) => a * b, 1);
496
+ const dataPtr = module._malloc(totalLength * 8);
497
+ const startPtr = module._malloc(start.length * 8);
498
+ const countPtr = module._malloc(count.length * 8);
499
+ start.forEach((val, i) => module.setValue(startPtr + i * 8, val, 'i64'));
500
+ count.forEach((val, i) => module.setValue(countPtr + i * 8, val, 'i64'));
501
+ const result = nc_get_vara_longlong_wrapper(ncid, varid, startPtr, countPtr, dataPtr);
502
+ const data = result === NC_CONSTANTS.NC_NOERR
503
+ ? new BigInt64Array(module.HEAP64.buffer, dataPtr, totalLength).slice()
504
+ : undefined;
505
+ module._free(dataPtr);
506
+ module._free(startPtr);
507
+ module._free(countPtr);
508
+ return { result, data };
509
+ },
510
+ nc_get_vara_schar: (ncid, varid, start, count) => {
511
+ const totalLength = count.reduce((a, b) => a * b, 1);
512
+ const dataPtr = module._malloc(totalLength * 1);
513
+ const startPtr = module._malloc(start.length * 8);
514
+ const countPtr = module._malloc(count.length * 8);
515
+ start.forEach((val, i) => module.setValue(startPtr + i * 8, val, 'i64'));
516
+ count.forEach((val, i) => module.setValue(countPtr + i * 8, val, 'i64'));
517
+ const result = nc_get_vara_schar_wrapper(ncid, varid, startPtr, countPtr, dataPtr);
518
+ const data = result === NC_CONSTANTS.NC_NOERR
519
+ ? new Int8Array(module.HEAP8.buffer, dataPtr, totalLength).slice()
520
+ : undefined;
521
+ module._free(dataPtr);
522
+ module._free(startPtr);
523
+ module._free(countPtr);
524
+ return { result, data };
525
+ },
526
+ nc_get_vara_uchar: (ncid, varid, start, count) => {
527
+ const totalLength = count.reduce((a, b) => a * b, 1);
528
+ const dataPtr = module._malloc(totalLength * 1);
529
+ const startPtr = module._malloc(start.length * 8);
530
+ const countPtr = module._malloc(count.length * 8);
531
+ start.forEach((val, i) => module.setValue(startPtr + i * 8, val, 'i64'));
532
+ count.forEach((val, i) => module.setValue(countPtr + i * 8, val, 'i64'));
533
+ const result = nc_get_vara_uchar_wrapper(ncid, varid, startPtr, countPtr, dataPtr);
534
+ const data = result === NC_CONSTANTS.NC_NOERR
535
+ ? new Uint8Array(module.HEAPU8.buffer, dataPtr, totalLength).slice()
536
+ : undefined;
537
+ module._free(dataPtr);
538
+ module._free(startPtr);
539
+ module._free(countPtr);
540
+ return { result, data };
541
+ },
542
+ nc_get_vara_ushort: (ncid, varid, start, count) => {
543
+ const totalLength = count.reduce((a, b) => a * b, 1);
544
+ const dataPtr = module._malloc(totalLength * 2);
545
+ const startPtr = module._malloc(start.length * 8);
546
+ const countPtr = module._malloc(count.length * 8);
547
+ start.forEach((val, i) => module.setValue(startPtr + i * 8, val, 'i64'));
548
+ count.forEach((val, i) => module.setValue(countPtr + i * 8, val, 'i64'));
549
+ const result = nc_get_vara_ushort_wrapper(ncid, varid, startPtr, countPtr, dataPtr);
550
+ const data = result === NC_CONSTANTS.NC_NOERR
551
+ ? new Uint16Array(module.HEAPU16.buffer, dataPtr, totalLength).slice()
552
+ : undefined;
553
+ module._free(dataPtr);
554
+ module._free(startPtr);
555
+ module._free(countPtr);
556
+ return { result, data };
557
+ },
558
+ nc_get_vara_uint: (ncid, varid, start, count) => {
559
+ const totalLength = count.reduce((a, b) => a * b, 1);
560
+ const dataPtr = module._malloc(totalLength * 4);
561
+ const startPtr = module._malloc(start.length * 8);
562
+ const countPtr = module._malloc(count.length * 8);
563
+ start.forEach((val, i) => module.setValue(startPtr + i * 8, val, 'i64'));
564
+ count.forEach((val, i) => module.setValue(countPtr + i * 8, val, 'i64'));
565
+ const result = nc_get_vara_uint_wrapper(ncid, varid, startPtr, countPtr, dataPtr);
566
+ const data = result === NC_CONSTANTS.NC_NOERR
567
+ ? new Uint32Array(module.HEAPU32.buffer, dataPtr, totalLength).slice()
568
+ : undefined;
569
+ module._free(dataPtr);
570
+ module._free(startPtr);
571
+ module._free(countPtr);
572
+ return { result, data };
573
+ },
574
+ nc_get_vara_ulonglong: (ncid, varid, start, count) => {
575
+ const totalLength = count.reduce((a, b) => a * b, 1);
576
+ const dataPtr = module._malloc(totalLength * 8);
577
+ const startPtr = module._malloc(start.length * 8);
578
+ const countPtr = module._malloc(count.length * 8);
579
+ start.forEach((val, i) => module.setValue(startPtr + i * 8, val, 'i64'));
580
+ count.forEach((val, i) => module.setValue(countPtr + i * 8, val, 'i64'));
581
+ const result = nc_get_vara_ulonglong_wrapper(ncid, varid, startPtr, countPtr, dataPtr);
582
+ const data = result === NC_CONSTANTS.NC_NOERR
583
+ ? new BigUint64Array(module.HEAP64.buffer, dataPtr, totalLength).slice()
584
+ : undefined;
585
+ module._free(dataPtr);
586
+ module._free(startPtr);
587
+ module._free(countPtr);
588
+ return { result, data };
589
+ },
590
+ nc_get_vara_string: (ncid, varid, start, count) => {
591
+ const totalLength = count.reduce((a, b) => a * b, 1);
592
+ const dataPtr = module._malloc(totalLength * 4);
593
+ const startPtr = module._malloc(start.length * 8);
594
+ const countPtr = module._malloc(count.length * 8);
595
+ start.forEach((val, i) => module.setValue(startPtr + i * 8, val, 'i64'));
596
+ count.forEach((val, i) => module.setValue(countPtr + i * 8, val, 'i64'));
597
+ const result = nc_get_vara_string_wrapper(ncid, varid, startPtr, countPtr, dataPtr);
598
+ let data;
599
+ if (result === NC_CONSTANTS.NC_NOERR) {
600
+ data = [];
601
+ for (let i = 0; i < totalLength; i++) {
602
+ const strPtr = module.getValue(dataPtr + i * 4, '*');
603
+ data.push(module.UTF8ToString(strPtr));
604
+ }
605
+ }
606
+ module._free(dataPtr);
607
+ module._free(startPtr);
608
+ module._free(countPtr);
609
+ return { result, data };
610
+ },
462
611
  //---- Full Variable Getters ----//
463
612
  nc_get_var_text: (ncid, varid, length) => {
464
613
  const dataPtr = module._malloc(length);
465
614
  const result = nc_get_var_text_wrapper(ncid, varid, dataPtr);
466
615
  const data = result === NC_CONSTANTS.NC_NOERR
467
- ? Array.from({ length }, (_, i) => module.UTF8ToString(module.getValue(dataPtr + i, 'i8')))
616
+ ? [new TextDecoder().decode(module.HEAPU8.subarray(dataPtr, dataPtr + length)).replace(/\0/g, '')]
468
617
  : undefined;
469
618
  module._free(dataPtr);
470
619
  return { result, data };
@@ -511,6 +660,70 @@ export class WasmModuleLoader {
511
660
  module._free(dataPtr);
512
661
  return { result, data };
513
662
  },
663
+ nc_get_var_schar: (ncid, varid, length) => {
664
+ const dataPtr = module._malloc(length * 1);
665
+ const result = nc_get_var_schar_wrapper(ncid, varid, dataPtr);
666
+ let data;
667
+ if (result === NC_CONSTANTS.NC_NOERR) {
668
+ data = new Int8Array(module.HEAP8.buffer, dataPtr, length).slice();
669
+ }
670
+ module._free(dataPtr);
671
+ return { result, data };
672
+ },
673
+ nc_get_var_uchar: (ncid, varid, length) => {
674
+ const dataPtr = module._malloc(length * 1);
675
+ const result = nc_get_var_uchar_wrapper(ncid, varid, dataPtr);
676
+ let data;
677
+ if (result === NC_CONSTANTS.NC_NOERR) {
678
+ data = new Uint8Array(module.HEAPU8.buffer, dataPtr, length).slice();
679
+ }
680
+ module._free(dataPtr);
681
+ return { result, data };
682
+ },
683
+ nc_get_var_ushort: (ncid, varid, length) => {
684
+ const dataPtr = module._malloc(length * 2);
685
+ const result = nc_get_var_ushort_wrapper(ncid, varid, dataPtr);
686
+ let data;
687
+ if (result === NC_CONSTANTS.NC_NOERR) {
688
+ data = new Uint16Array(module.HEAPU16.buffer, dataPtr, length).slice();
689
+ }
690
+ module._free(dataPtr);
691
+ return { result, data };
692
+ },
693
+ nc_get_var_uint: (ncid, varid, length) => {
694
+ const dataPtr = module._malloc(length * 4);
695
+ const result = nc_get_var_uint_wrapper(ncid, varid, dataPtr);
696
+ let data;
697
+ if (result === NC_CONSTANTS.NC_NOERR) {
698
+ data = new Uint32Array(module.HEAPU32.buffer, dataPtr, length).slice();
699
+ }
700
+ module._free(dataPtr);
701
+ return { result, data };
702
+ },
703
+ nc_get_var_ulonglong: (ncid, varid, length) => {
704
+ const dataPtr = module._malloc(length * 8);
705
+ const result = nc_get_var_ulonglong_wrapper(ncid, varid, dataPtr);
706
+ let data;
707
+ if (result === NC_CONSTANTS.NC_NOERR) {
708
+ data = new BigUint64Array(module.HEAP64.buffer, dataPtr, length).slice();
709
+ }
710
+ module._free(dataPtr);
711
+ return { result, data };
712
+ },
713
+ nc_get_var_string: (ncid, varid, length) => {
714
+ const dataPtr = module._malloc(length * 4);
715
+ const result = nc_get_var_string_wrapper(ncid, varid, dataPtr);
716
+ let data;
717
+ if (result === NC_CONSTANTS.NC_NOERR) {
718
+ data = [];
719
+ for (let i = 0; i < length; i++) {
720
+ const strPtr = module.getValue(dataPtr + i * 4, '*');
721
+ data.push(module.UTF8ToString(strPtr));
722
+ }
723
+ }
724
+ module._free(dataPtr);
725
+ return { result, data };
726
+ },
514
727
  nc_def_dim: (ncid, name, len) => {
515
728
  const dimidPtr = module._malloc(4);
516
729
  const result = nc_def_dim_wrapper(ncid, name, len, dimidPtr);
@@ -549,7 +762,126 @@ export class WasmModuleLoader {
549
762
  },
550
763
  nc_enddef: (ncid) => {
551
764
  return nc_enddef_wrapper(ncid);
552
- }
765
+ },
766
+ //---- Group Functions ----//
767
+ nc_inq_grps: (ncid) => {
768
+ const numgrpsPtr = module._malloc(4);
769
+ const grpidsPtr = module._malloc(NC_MAX_VARS * 4); // reuse NC_MAX_VARS as max groups
770
+ const result = nc_inq_grps_wrapper(ncid, numgrpsPtr, grpidsPtr);
771
+ let numgrps, grpids;
772
+ if (result === NC_CONSTANTS.NC_NOERR) {
773
+ numgrps = module.getValue(numgrpsPtr, 'i32');
774
+ grpids = Int32Array.from({ length: numgrps }, (_, i) => module.getValue(grpidsPtr + (i * 4), 'i32'));
775
+ }
776
+ module._free(numgrpsPtr);
777
+ module._free(grpidsPtr);
778
+ return { result, numgrps, grpids };
779
+ },
780
+ nc_inq_grp_ncid: (ncid, grp_name) => {
781
+ const grp_ncidPtr = module._malloc(4);
782
+ const result = nc_inq_grp_ncid_wrapper(ncid, grp_name, grp_ncidPtr);
783
+ const grp_ncid = result === NC_CONSTANTS.NC_NOERR ? module.getValue(grp_ncidPtr, 'i32') : undefined;
784
+ module._free(grp_ncidPtr);
785
+ return { result, grp_ncid };
786
+ },
787
+ nc_inq_grpname: (ncid) => {
788
+ const namePtr = module._malloc(NC_MAX_NAME + 1);
789
+ const result = nc_inq_grpname_wrapper(ncid, namePtr);
790
+ const name = result === NC_CONSTANTS.NC_NOERR ? module.UTF8ToString(namePtr) : undefined;
791
+ module._free(namePtr);
792
+ return { result, name };
793
+ },
794
+ nc_inq_grp_parent: (ncid) => {
795
+ const parent_ncidPtr = module._malloc(4);
796
+ const result = nc_inq_grp_parent_wrapper(ncid, parent_ncidPtr);
797
+ const parent_ncid = result === NC_CONSTANTS.NC_NOERR ? module.getValue(parent_ncidPtr, 'i32') : undefined;
798
+ module._free(parent_ncidPtr);
799
+ return { result, parent_ncid };
800
+ },
801
+ nc_inq_grp_full_ncid: (ncid, full_name) => {
802
+ const grp_ncidPtr = module._malloc(4);
803
+ const result = nc_inq_grp_full_ncid_wrapper(ncid, full_name, grp_ncidPtr);
804
+ const grp_ncid = result === NC_CONSTANTS.NC_NOERR ? module.getValue(grp_ncidPtr, 'i32') : undefined;
805
+ module._free(grp_ncidPtr);
806
+ return { result, grp_ncid };
807
+ },
808
+ nc_inq_grpname_full: (ncid) => {
809
+ const maxLen = 1024; // NC_MAX_NAME * path depth estimate
810
+ const lenpPtr = module._malloc(8); // size_t
811
+ const namePtr = module._malloc(maxLen);
812
+ const result = nc_inq_grpname_full_wrapper(ncid, lenpPtr, namePtr);
813
+ const full_name = result === NC_CONSTANTS.NC_NOERR ? module.UTF8ToString(namePtr) : undefined;
814
+ module._free(lenpPtr);
815
+ module._free(namePtr);
816
+ return { result, full_name };
817
+ },
818
+ nc_inq_grpname_len: (ncid) => {
819
+ const lenpPtr = module._malloc(8); // size_t
820
+ const result = nc_inq_grpname_len_wrapper(ncid, lenpPtr);
821
+ const lenp = result === NC_CONSTANTS.NC_NOERR ? module.getValue(lenpPtr, 'i64') : undefined;
822
+ module._free(lenpPtr);
823
+ return { result, lenp };
824
+ },
825
+ nc_get_att_string: (ncid, varid, name, length) => {
826
+ // allocate space for char*
827
+ const ptrArray = module._malloc(length * 4); // pointer array (32bit in wasm)
828
+ const result = nc_get_att_string_wrapper(ncid, varid, name, ptrArray);
829
+ if (result !== NC_CONSTANTS.NC_NOERR) {
830
+ module._free(ptrArray);
831
+ return { result, data: undefined };
832
+ }
833
+ const data = [];
834
+ for (let i = 0; i < length; i++) {
835
+ const strPtr = module.getValue(ptrArray + i * 4, '*');
836
+ data.push(module.UTF8ToString(strPtr));
837
+ }
838
+ // free strings allocated by netcdf
839
+ nc_free_string_wrapper(length, ptrArray);
840
+ return { result, data };
841
+ },
842
+ nc_get_att_uchar: (ncid, varid, name, length) => {
843
+ const dataPtr = module._malloc(length);
844
+ const result = nc_get_att_uchar_wrapper(ncid, varid, name, dataPtr);
845
+ let data;
846
+ if (result === NC_CONSTANTS.NC_NOERR) {
847
+ data = new Uint8Array(module.HEAPU8.buffer, dataPtr, length).slice();
848
+ }
849
+ module._free(dataPtr);
850
+ return { result, data };
851
+ },
852
+ // 16-bit unsigned (NC_USHORT)
853
+ nc_get_att_ushort: (ncid, varid, name, length) => {
854
+ const dataPtr = module._malloc(length * 2);
855
+ const result = nc_get_att_ushort_wrapper(ncid, varid, name, dataPtr);
856
+ let data;
857
+ if (result === NC_CONSTANTS.NC_NOERR) {
858
+ data = new Uint16Array(module.HEAPU16.buffer, dataPtr, length).slice();
859
+ }
860
+ module._free(dataPtr);
861
+ return { result, data };
862
+ },
863
+ // 32-bit unsigned (NC_UINT)
864
+ nc_get_att_uint: (ncid, varid, name, length) => {
865
+ const dataPtr = module._malloc(length * 4);
866
+ const result = nc_get_att_uint_wrapper(ncid, varid, name, dataPtr);
867
+ let data;
868
+ if (result === NC_CONSTANTS.NC_NOERR) {
869
+ data = new Uint32Array(module.HEAPU32.buffer, dataPtr, length).slice();
870
+ }
871
+ module._free(dataPtr);
872
+ return { result, data };
873
+ },
874
+ // 64-bit unsigned (NC_UINT64 / NC_ULONGLONG)
875
+ nc_get_att_ulonglong: (ncid, varid, name, length) => {
876
+ const dataPtr = module._malloc(length * 8);
877
+ const result = nc_get_att_ulonglong_wrapper(ncid, varid, name, dataPtr);
878
+ let data;
879
+ if (result === NC_CONSTANTS.NC_NOERR) {
880
+ data = new BigUint64Array(module.HEAPU64.buffer, dataPtr, length).slice();
881
+ }
882
+ module._free(dataPtr);
883
+ return { result, data };
884
+ },
553
885
  };
554
886
  }
555
887
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wasm-module.js","sourceRoot":"","sources":["../src/wasm-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wasm-module.js","sourceRoot":"","sources":["../src/wasm-module.ts"],"names":[],"mappings":"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"}