Socket
Book a DemoInstallSign in
Socket

@openmeteo/file-reader

Package Overview
Dependencies
Maintainers
3
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@openmeteo/file-reader

JavaScript reader for the om file format using WebAssembly

0.0.11
latest
npmnpm
Version published
Maintainers
3
Created
Source

Open-Meteo File-Reader

JavaScript/TypeScript bindings for the Open-Meteo File Format!

Overview

This library provides JavaScript/TypeScript bindings to the OmFileFormat C library through WebAssembly. It enables efficient reading of OmFile data in web browsers and Node.js environments.

Features

  • Read OmFile format (scientific data format optimized for meteorological data)
  • High-performance data access through WebAssembly
  • Multiple backends for different data sources:
    • File backend for local files
    • Memory/HTTP backend for remote files
    • S3 backend for files in AWS S3
  • Browser and Node.js compatibility
  • TypeScript type definitions included

Installation

npm install @openmeteo/file-reader

Usage

Usage depends on the backend you want to use to access the data and the environment you are in (Node, Browser). Expect this to be improved in the future!

Node.js: Reading from a Local File

import { OmFileReader, FileBackendNode, OmDataType } from "@openmeteo/file-reader";

const backend = new FileBackendNode("/path/to/your/file.om");
const reader = await OmFileReader.create(backend);
// this selects all data of all dimensions
// If the array you are reading is too big, this might result in OOM
const readRanges = reader.getDimensions().map((dim) => {
  return {
    start: 0,
    end: dim,
  };
});

const data = await reader.read(OmDataType.FloatArray, readRanges);
console.log(data);

Browser: Reading from a File Input

import { OmFileReader, FileBackend } from "@openmeteo/file-reader";

// Assume you have a <input type="file" id="fileInput" />
const fileInput = document.getElementById("fileInput");
fileInput.addEventListener("change", async (event) => {
  const file = event.target.files[0];
  const backend = new FileBackend(file);
  const reader = await OmFileReader.create(backend);

  // this selects all data of all dimensions
  // If the array you are reading is too big, this might result in OOM
  const readRanges = reader.getDimensions().map((dim) => {
    return {
      start: 0,
      end: dim,
    };
  });

  const data = await reader.read(OmDataType.FloatArray, readRanges);
  console.log(data);
});

In-Memory Data

const buffer = new Uint8Array([...]); // Your OmFile data
const backend = new FileBackend(buffer);
const reader = await OmFileReader.create(backend);

Remote HTTP File

import { MemoryHttpBackend, OmFileReader } from "@openmeteo/file-reader";

const backend = new MemoryHttpBackend({ url: "https://example.com/data.om" });
const reader = await OmFileReader.create(backend);

License

This code depends on TurboPFor and open-meteo code; their license restrictions apply.

Keywords

open-meteo

FAQs

Package last updated on 30 Aug 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.