netcdf4-wasm
Version:
NetCDF4 library compiled to WebAssembly with TypeScript bindings
132 lines • 4.2 kB
TypeScript
export interface EmscriptenModule {
ccall: (name: string, returnType: string, argTypes: string[], args: any[]) => any;
cwrap: (name: string, returnType: string, argTypes: string[]) => (...args: any[]) => any;
getValue: (ptr: number, type: string) => number;
setValue: (ptr: number, value: number, type: string) => void;
UTF8ToString: (ptr: number) => string;
stringToUTF8: (str: string, outPtr: number, maxBytesToWrite: number) => void;
lengthBytesUTF8: (str: string) => number;
_malloc: (size: number) => number;
_free: (ptr: number) => void;
allocateString: (str: string) => number;
freeString: (ptr: number) => void;
FS: any;
ready: Promise<EmscriptenModule>;
HEAPF64: Float64Array;
HEAP32: Int32Array;
HEAPU8: Uint8Array;
}
export interface NetCDF4Module extends EmscriptenModule {
nc_open: (path: string, mode: number) => {
result: number;
ncid: number;
};
nc_close: (ncid: number) => number;
nc_create: (path: string, mode: number) => {
result: number;
ncid: number;
};
nc_def_dim: (ncid: number, name: string, len: number) => {
result: number;
dimid: number;
};
nc_def_var: (ncid: number, name: string, xtype: number, ndims: number, dimids: number[]) => {
result: number;
varid: number;
};
nc_put_var_double: (ncid: number, varid: number, data: Float64Array) => number;
nc_get_var_double: (ncid: number, varid: number, size: number) => {
result: number;
data: Float64Array;
};
nc_enddef: (ncid: number) => number;
nc_inq_ndims: (ncid: number) => {
result: number;
ndims: number;
};
nc_inq_unlimdim: (ncid: number) => {
result: number;
unlimdimid: number;
};
nc_inq_dim: (ncid: number, dimid: number) => {
result: number;
name: string;
len: number;
};
nc_inq_nvars: (ncid: number) => {
result: number;
nvars: number;
};
nc_inq_var: (ncid: number, varid: number) => {
result: number;
name: string;
xtype: number;
ndims: number;
dimids: number[];
natts: number;
};
nc_inq_natts: (ncid: number) => {
result: number;
natts: number;
};
nc_inq_attname: (ncid: number, varid: number, attnum: number) => {
result: number;
name: string;
};
nc_inq_att: (ncid: number, varid: number, name: string) => {
result: number;
xtype: number;
len: number;
};
nc_get_att_text: (ncid: number, varid: number, name: string, len: number) => {
result: number;
text: string;
};
nc_get_att_double: (ncid: number, varid: number, name: string, len: number) => {
result: number;
values: Float64Array;
};
}
export interface NetCDF4WasmOptions {
wasmPath?: string;
memoryInitialPages?: number;
memoryMaximumPages?: number;
}
export interface DatasetOptions extends NetCDF4WasmOptions {
format?: string;
diskless?: boolean;
persist?: boolean;
keepweakref?: boolean;
memory?: ArrayBuffer;
/**
* Open the file lazily: read byte ranges on demand instead of loading the
* whole file into memory. Read-only. In the browser this requires running
* inside a Web Worker (see the lazy module). Defaults to false.
*/
lazy?: boolean;
/** Lazy cache block size in bytes (default 64 KiB). */
blockSize?: number;
/** Maximum number of cached lazy blocks (default 256). */
maxCacheBlocks?: number;
}
export interface MemoryDatasetSource {
data: ArrayBuffer | Uint8Array;
filename?: string;
}
export interface LazyDatasetSource {
reader: import("./lazy/types").LazyReader;
filename: string;
}
export type DatasetSource = string | Blob | ArrayBuffer | Uint8Array;
export interface VariableOptions {
zlib?: boolean;
complevel?: number;
shuffle?: boolean;
fletcher32?: boolean;
contiguous?: boolean;
chunksizes?: number[];
}
declare global {
function NetCDF4Module(options?: any): Promise<EmscriptenModule>;
}
//# sourceMappingURL=types.d.ts.map