Skip to main content

Reading and writing of data on regular grids in Python

Project description

The gridDataFormats package provides classes to unify reading and writing n-dimensional datasets. One can read grid data from files, make them available as a Grid object, and allows one to write out the data again.

The Grid class

A Grid consists of a rectangular, regular, N-dimensional array of data. It contains

  1. The position of the array cell edges.

  2. The array data itself.

This is equivalent to knowing

  1. The origin of the coordinate system (i.e. which data cell corresponds to (0,0,…,0)

  2. The spacing of the grid in each dimension.

  3. The data on a grid.

Grid objects have some convenient properties:

  • The data is represented as a numpy.array and thus shares all the advantages coming with this sophisticated and powerful library.

  • They can be manipulated arithmetically, e.g. one can simply add or subtract two of them and get another one, or multiply by a constant. Note that all operations are defined point-wise (see the NumPy documentation for details) and that only grids defined on the same cell edges can be combined.

  • A Grid object can also be created from within python code e.g. from the output of the numpy.histogramdd function.

  • The representation of the data is abstracted from the format that the files are saved in. This makes it straightforward to add additional readers for new formats.

  • The data can be written out again in formats that are understood by other programs such as VMD or PyMOL.

Supported file formats

The package can be easily extended. The OpenDX format is widely understood by many molecular viewers and is sufficient for many applications that were encountered so far. Hence, at the moment only a small number of file formats is directly supported.

format

extension

read

write

remarks

OpenDX

dx

x

x

subset of OpenDX implemented

gOpenMol

plt

x

pickle

pickle

x

x

standard Python pickle of the Grid class

Examples

In most cases, only one class is important, the gridData.Grid, so we just load this right away:

from gridData import Grid

Loading data

From a OpenDX file:

g = Grid("density.dx")

From a gOpenMol PLT file:

g = Grid("density.plt")

From the output of numpy.histogramdd:

import numpy
r = numpy.random.randn(100,3)
H, edges = numpy.histogramdd(r, bins = (5, 8, 4))
g = Grid(H, edges=edges)

For other ways to load data, see the docs for gridData.Grid

Subtracting two densities

Assuming one has two densities that were generated on the same grid positions, stored in files A.dx and B.dx, one first reads the data into two Grid objects:

A = Grid('A.dx')
B = Grid('B.dx')

Subtract A from B:

C = B - A

and write out as a dx file:

C.export('C.dx')

The resulting file C.dx can be visualized with any OpenDX-capable viewer, or later read-in again.

Resampling

Load data:

A = Grid('A.dx')

Interpolate with a cubic spline to twice the sample density:

A2 = A.resample_factor(2)

Downsample to half of the bins in each dimension:

Ahalf = A.resample_factor(0.5)

Resample to the grid of another density, B:

B = Grid('B.dx')
A_on_B = A.resample(B.edges)

or even simpler

A_on_B = A.resample(B)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

GridDataFormats-0.2.2.tar.gz (42.4 kB view details)

Uploaded Source

Built Distribution

GridDataFormats-0.2.2-py2.6.egg (51.7 kB view details)

Uploaded Source

File details

Details for the file GridDataFormats-0.2.2.tar.gz.

File metadata

File hashes

Hashes for GridDataFormats-0.2.2.tar.gz
Algorithm Hash digest
SHA256 8305897bb291b5cd4e6513e54225f149fab2f5ad13b3437dff77aa6d6c02a383
MD5 9e70200b9ad1cffbbd722c7ba52cab75
BLAKE2b-256 11c45e97c2cf8a1b32145058d2a33d341e35a626a754814a6aba7f62c227cd4b

See more details on using hashes here.

Provenance

File details

Details for the file GridDataFormats-0.2.2-py2.6.egg.

File metadata

File hashes

Hashes for GridDataFormats-0.2.2-py2.6.egg
Algorithm Hash digest
SHA256 615e874e3ea3fa2ae7e9105521021fa2987dd5e278c0eafdd093b8ca8f092d27
MD5 6a0b4be84d0f7d91a3a632132d245e62
BLAKE2b-256 3bd59a4193251f4980d54b263123d9d3cd56470a2c03dc6345ef0415719bfa15

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page