Scripts: edgesum.py

File edgesum.py, 966 bytes (added by goddard, 16 years ago)
Line 
1#
2# Add volume data values within p planes of boundary of active volume.
3# Report number of voxels and sum of volume data values.
4#
5from VolumeViewer import active_volume
6v = active_volume()
7
8p = 5
9
10# Get data matrix and matrix size.
11m = v.full_matrix()
12ksize, jsize, isize = m.shape
13
14vsum = 0
15vcount = 0
16
17# Add z planes
18vsum += m[0:p,:,:].sum()
19vsum += m[ksize-p:ksize,:,:].sum()
20vcount += 2*isize*jsize*p
21
22# Add y planes, but not the part that was already in a z plane.
23vsum += m[p:ksize-p,0:p,:].sum()
24vsum += m[p:ksize-p,jsize-p:jsize,:].sum()
25vcount += 2 * (ksize-2*p) * isize * p
26
27# Add x planes, but not part in z or y planes.
28vsum += m[p:ksize-p,p:jsize,0:p].sum()
29vsum += m[p:ksize-p,p:jsize,isize-p:isize].sum()
30vcount += 2 * (ksize-2*p) * (jsize-2*p) * p
31
32# Print result to reply log.
33print 'Edge sum for volume %s, %d planes, vsum = %.5g, vcount = %d' % (v.name, p, vsum, vcount)
34
35# Show the reply log.
36from chimera import runCommand
37runCommand('ac rl')