Giter Club home page Giter Club logo

blockedarray's Introduction

blockedarray

Build Status

C++ code and boost::python wrapper for a blocked, in-memory compressed array that supports read/write access to arbitrary regions of interest.

compressed array

The class BW::CompressedArray<N,T> represents a N-dimensional array with pixel type T. The array data can be stored compressed (CompressedArray::compress()) or uncompressed (BW::CompressedArray::uncompress()). When reading data (BW::CompressedArray::readArray), the data is - if needed - uncompressed first.

The compression algorithm used is google snappy.

blocked array

BW::Array<N,T> stores N-dimension array data of pixel type T in blocks (of a size to be specified in the constructor). Each block is stored compressed in memory, using google snappy, a fast compression/decompression algorithm.

Regions of interest of arbitrary offset and shape can be read, written and deleted.

This class is useful if the whole dataset does not fit into memory. It is the intention that this class is evaluated as a replacement for lazyflow's OpBlockedArrayCache, OpSlicedBlockArrayCache, OpCompressedCache. Towards this goal, a preliminary operator wrapper can be found in blockedarray/lazyflow.

installation

  • Dependencies: boost headers and boost python library, cmake.
    Ubuntu: sudo apt-get install libboost-dev libboost-python-dev cmake

  • Install latest vigra from https://github.com/ukoethe/vigra
    Ubuntu:

    ```
    git clone https://github.com/ukoethe/vigra
    mkdir build && cd build
    cmake -DCMAKE_INSTALL_PREFIX=<install prefix> ..
    make install
    ```
    
  • Finally, to install blockedarray:

    ```bash
    mkdir build
    cd build
    cmake ..
    git submodule init
    git submodule update
    make
    ```
    

blockedarray's People

Contributors

stuarteberg avatar ukoethe avatar btekgit avatar

Stargazers

Erik Garrison avatar  avatar Andrey avatar Viktor Dmitriyev avatar Wes McKinney avatar Alexander Böhn avatar Daniel Maturana avatar Thorben Kröger avatar

Watchers

James Cloos avatar Thorben Kröger avatar  avatar  avatar

blockedarray's Issues

Double registration of TinyVector converters

The ExportV.export_() call in blockwisecc_py.cxx, at line 106, implicitly registers a to-python converter for vigra::TinyVector, which is probably already registered in vigra. Should be replaced by an explicit from-python converter.

Warning:

$ python -c 'import blockedarray'
/home/markus/Coding/hci/blockedarray/blockedarray/__init__.py:1: RuntimeWarning: to-Python converter for vigra::TinyVector<int, 2> already registered; second conversion method ignored.
  from _blockedarray import *
/home/markus/Coding/hci/blockedarray/blockedarray/__init__.py:1: RuntimeWarning: to-Python converter for vigra::TinyVector<int, 3> already registered; second conversion method ignored.
  from _blockedarray import *

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.