1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
Basic use
=========
In most cases, only one class is important, the
:class:`~gridData.core.Grid`, so we just load this right away::
from gridData import Grid
Loading data
------------
From a OpenDX file::
g = Grid("density.dx")
(See also :ref:`opendx-read-write` for more information, especially
when working with visualization programs such as PyMOL, VMD, or
Chimera.)
From a gOpenMol PLT file::
g = Grid("density.plt")
From the output of :func:`numpy.histogramdd`::
import numpy
r = numpy.random.randn(100,3)
H, edges = np.histogramdd(r, bins = (5, 8, 4))
g = Grid(H, edges=edges)
For other ways to load data, see the docs for :class:`~gridData.core.Grid`.
Writing out data
----------------
Some formats support writing data (see
:ref:`supported-file-formats` for more details), using the
:meth:`gridData.core.Grid.export` method::
g.export("density.dx")
The format can also be specified explicitly::
g.export("density.pkl", file_format="pickle")
Some of the exporters (such as for OpenDX, see
:ref:`opendx-read-write`) may take additional, format-specific
keywords, which are documented separately.
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 :class:`~gridData.core.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)
.. Note:: The cubic spline generates region with values that did not
occur in the original data; in particular if the original data's
lowest value was 0 then the spline interpolation will probably
produce some values <0 near regions where the density changed
abruptly.
|