correctly ignore zero terminator
A very basic library to read GRIB files in Swift. This library is a wrapper for eccodes.
WARNING: No stable interface declared yet
Install eccodes via brew install eccodes or apt install libeccodes-dev
brew install eccodes
apt install libeccodes-dev
Add SwiftEccodes as a dependency to your Package.swift
SwiftEccodes
Package.swift
dependencies: [ .package(url: "https://github.com/patrick-zippenfenig/SwiftEccodes.git", from: "0.0.0") ], targets: [ .target(name: "MyApp", dependencies: [ .product(name: "SwiftEccodes", package: "SwiftEccodes"), ]) ]
Read GRIB messages and data from files:
import SwiftEccodes let messages = try SwiftEccodes.getMessages(fileName: "test.grib", multiSupport: true) for message in messages { message.iterate(namespace: .ls).forEach({ print($0) }) print(message.get(attribute: "name")!) let data = try message.getDouble() print(data[0..<10]) }
Or read directly from memory:
import SwiftEccodes let data = try Data(contentsOf: URL(fileURLWithPath: "test.grib")) try data.withUnsafeBytes { ptr in let messages = try SwiftEccodes.getMessages(memory: ptr, multiSupport: true) for message in messages { message.iterate(namespace: .ls).forEach({ print($0) }) message.iterate(namespace: .geography).forEach({ print($0) }) print(message.get(attribute: "name")!) let data = try message.getDouble() print(data.count) print(data[0..<10]) } }
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
SwiftEccodes
A very basic library to read GRIB files in Swift. This library is a wrapper for eccodes.
WARNING: No stable interface declared yet
Usage
Install eccodes via
brew install eccodes
orapt install libeccodes-dev
Add
SwiftEccodes
as a dependency to yourPackage.swift
Read GRIB messages and data from files:
Or read directly from memory: