hnetcdf: Haskell NetCDF library

[ bsd3, data, library, program ] [ Propose Tags ]

Bindings to the Unidata NetCDF library, along with a higher-level Haskell interface that attempts to provide container polymorphic data access (initially just Storable vectors and Repa arrays).


[Skip to Readme]
Versions [faq] 0.1.0.0, 0.2.0.0, 0.2.1.0, 0.2.2.0, 0.3.0.0, 0.4.0.0, 0.5.0.0
Change log CHANGELOG.markdown
Dependencies base (>=4.3 && <5), containers (>=0.4 && <0.6), either (>=3.4.1 && <5), errors (>=1.4.2 && <1.5), filepath (==1.3.*), hmatrix (>=0.16.0.2 && <0.17), repa, transformers (>=0.2 && <0.5), vector (>=0.9 && <0.11) [details]
License BSD-3-Clause
Copyright Copyright (2013) Ian Ross
Author Ian Ross
Maintainer ian@skybluetrades.net
Revised Revision 2 made by IanRoss at Fri Jun 27 09:42:34 UTC 2014
Category Data
Home page https://github.com/ian-ross/hnetcdf
Source repo head: git clone https://github.com/ian-ross/hnetcdf
Uploaded by IanRoss at Fri Jun 27 09:40:18 UTC 2014
Distributions NixOS:0.5.0.0
Downloads 3185 total (64 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs not available [build log]
All reported builds failed as of 2016-12-14 [all 7 reports]

Modules

  • Data
    • Data.NetCDF
      • Data.NetCDF.HMatrix
      • Data.NetCDF.Metadata
      • Data.NetCDF.PutGet
      • Data.NetCDF.Raw
        • Data.NetCDF.Raw.Attributes
        • Data.NetCDF.Raw.Base
        • Data.NetCDF.Raw.PutGet
        • Data.NetCDF.Raw.Utils
      • Data.NetCDF.Repa
      • Data.NetCDF.Storable
      • Data.NetCDF.Store
      • Data.NetCDF.Types
      • Data.NetCDF.Utils
      • Data.NetCDF.Vector

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees


Readme for hnetcdf-0.2.1.0

[back to package description]

hnetcdf

Haskell NetCDF library: as well as conventional low-level FFI bindings to the functions in the NetCDF library (in the Data.NetCDF.Raw modules), hnetcdf provides a higher-level Haskell interface (currently only for reading data). This higher-level interface aims to provide a "container polymorphic" view of NetCDF data allowing NetCDF variables to be read into Storable Vectors and Repa arrays easily.

For example:

import Data.NetCDF
import Foreign.C
import qualified Data.Vector.Storable as SV
...
type SVRet = IO (Either NcError (SV.Vector a))
...
  enc <- openFile "tst.nc" ReadMode
  case enc of
    Right nc -> do
      eval <- get nc "varname" :: SVRet CDouble
      ...

gets the full contents of a NetCDF variable as a Storable Vector, while the following code reads the same variable (assumed to be three-dimensional) into a Repa array:

import Data.NetCDF
import Foreign.C
import qualified Data.Array.Repa as R
import qualified Data.Array.Repa.Eval as RE
import Data.Array.Repa.Repr.ForeignPtr (F)
...
type RepaRet3 a = IO (Either NcError (R.Array F R.DIM3 a))
...
  enc <- openFile "tst.nc" ReadMode
  case enc of
    Right nc -> do
      eval <- get nc "varname" :: RepaRet3 CDouble
      ...