In [22]:
import os
import sys
import numpy as np
In [23]:
class ClustersFileParser(object):
    """
    Parses and prints info about "clusters.out"
    files from ATAT.
    
    A "cluster orbit" (also called a cluster family)
    is simply a collection of symmetrically equivalent
    clusters. This is really what the clusters.out file
    lists: a prototype cluster from each cluster orbit.
    
    Author/Date: Jesper Kristensen; Summer 2015
    """
    
    def _comment(self, msg):
        """
        Print a comment to the user.
        """
        print 'IIII ', msg
        
    def _errorquit(self, msg):
        """
        Prints msg and exits.
        """
        print 'EEEE', msg
        sys.exit(1)
    
    def __init__(self, clusters_out=None):
        """
        Parses a clusters.out file in path
        "clusters_out".
        """
        if not os.path.isfile(clusters_out):
            self._errorquit('please provide a valid clusters.out file')
        self._clusters_out = clusters_out
        self._cluster_info = {}
    
    def _parse_single_site(self, line_with_site_details=None):
        """
        Line which contains details of site in cluster.
        Only parses (x,y,z) coordinates of site.
        """
        line_details = line_with_site_details.split()
        return map(float, line_details[:3])
    
    def _parse_single_site_all(self, line_with_site_details=None):
        """
        Line which contains details of site in cluster.
        Parses all line (not just coordinates of cluster).
        """
        return line_with_site_details.split()
    
    def _parse_a_single_cluster_block(self, starting_at=None):
        """
        Parses a single cluster block starting at index
        "starting_at" in the clusters.out file.
        
        Returns a dictionary containing the cluster block
        information (multiplicity, size of the cluster, etc.)
        """
        all_lines = self._all_lines_in_clusters_out
        
        block_start = starting_at + 1

        _cluster_block = {}
        
        clus_mult = int(all_lines[block_start])
        clus_size = float(all_lines[block_start + 1])
        num_sites = int(all_lines[block_start + 2])
        
        all_coords = []
        for j in xrange(num_sites):
            #coordinates of this site in the cluster
            entire_line = self._parse_single_site_all(all_lines[block_start + 3 + j])
            all_coords.append(entire_line)
        
        _cluster_block['mult'] = clus_mult #number of clusters in the orbit
        _cluster_block['size'] = clus_size #size of a cluster in the orbit
        _cluster_block['num sites'] = num_sites #number of sites in a cluster from the orbit
        _cluster_block['site coords'] = all_coords #coordinates of the sites in a cluster in the orbit
        #Note that each cluster in the orbit will have different coordinates from the others.
        #we just store the coordinates of the prototype cluster stored in clusters.out
        #To get the coordinates of all clusters in the orbit you need to apply the space group
        #symmetry operations (not part of clusters.out) to the coordinates in "all_coords".
        
        if str(num_sites) in self._cluster_info:
            self._cluster_info[str(num_sites)] += 1
        else:
            self._cluster_info[str(num_sites)] = 1
        
        return _cluster_block
    
    def parse(self):
        """
        Parse the clusters.out file.
        This is a brute-force approach.
        """
        with open(self._clusters_out, 'r') as fd:
            self._all_lines_in_clusters_out = fd.readlines()
            if self._all_lines_in_clusters_out[0].rstrip('\n'):
                #let us create an empty line to treat the first
                #block the same as the rest
                newline = ['\n']
                newline.extend(self._all_lines_in_clusters_out)
                self._all_lines_in_clusters_out = newline
            
            #clean the end of the file for newlines:
            k = -1
            while not self._all_lines_in_clusters_out[k].rstrip('\n'):
                k -= 1
            if k < -1:
                self._all_lines_in_clusters_out = self._all_lines_in_clusters_out[:k + 1]
            
            self._all_cluster_blocks = []
            
            for i, line_ in enumerate(self._all_lines_in_clusters_out):
                #go through all lines in clusters.out file
                line_no_newline = line_.rstrip('\n')
                
                #is this part of the file a new "cluster block"?
                if not line_no_newline or i == 0:
                    #yes, so parse the block and put in a dictionary:
                    cluster_block = self._parse_a_single_cluster_block(starting_at=i)
                    self._all_cluster_blocks.append(cluster_block)

            if len(self._all_cluster_blocks) == 0:
                self._errorquit("No clusters found in the file?")
    
    def multiplicities_in_cluster_orbits(self):
        """
        Returns a list containing as the ith element the multiplicities
        of the clusters in the orbit (number of cluster in the cluster orbit).
        """
        return [block_['mult'] for block_ in self._all_cluster_blocks]
    
    def number_of_sites_in_cluster_orbits(self):
        """
        Returns a list containing as the ith element the number of sites
        in cluster orbit i.
        """
        return [block_['num sites'] for block_ in self._all_cluster_blocks]
    
    def sizes_of_cluster_orbits(self):
        """
        Returns list containing as the ith element the size of clusters
        in cluster orbit i.
        """
        return [block_['size'] for block_ in self._all_cluster_blocks]
    
    def site_coordinates(self):
        """
        Returns the xyz-coordinates of the sites in the prototype cluster
        from each cluster orbit.
        """
        return [block_['site coords'] for block_ in self._all_cluster_blocks]
    
    def cluster_info(self):
        """
        Print some info about the clusters file.
        """
        from monty.pprint import pprint_table
        
        tab_ = []
        for cluster in self._cluster_info.keys():
            singular = int(self._cluster_info[cluster]) == 1
            col1 = 'There {}:'.format('is' if singular else 'are')
            col2 = '{}'.format(self._cluster_info[cluster])
            col3 = '{}-point cluster{}'.format(cluster, ' ' if singular else 's')
            tab_.append([col1, col2, col3])
        
        pprint_table(tab_, out=sys.stdout)
        
    def pickle_clusters(self, filename='cfp.pkl'):
        """
        Saves the cluster information to the Python pickle format.
        """
        import cPickle as pickle
        pickle.dump(self._cluster_info, open(filename, 'w'))
        
        
In [24]:
cfp = ClustersFileParser(clusters_out='clusters.out')
In [25]:
cfp.parse()
In [26]:
print cfp.number_of_sites_in_cluster_orbits()
cfp.cluster_info()
[0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]
There is:     1  1-point cluster 
There is:     1  0-point cluster 
There are:   55  3-point clusters
There are:   19  2-point clusters
There are:   11  4-point clusters
In [27]:
cfp.pickle_clusters('cfp.pkl')
In [28]:
os.path.isfile('cfp.pkl')
Out[28]:
True
In [29]:
import cPickle as pickle
In [30]:
pickle.load(open('cfp.pkl', 'r'))
Out[30]:
{'0': 1, '1': 1, '2': 19, '3': 55, '4': 11}
In [31]:
cfp.site_coordinates()
Out[31]:
[[],
 [['3.71975100', '3.19031400', '1.84193000', '0', '0']],
 [['3.71975100', '3.19031400', '1.84193000', '0', '0'],
  ['3.71975100', '1.59515600', '-0.92096400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '1.59516000', '-4.60482400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '-1.59515600', '-4.60482400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['3.71975100', '3.19031400', '1.84193000', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['3.71975100', '4.78547200', '-0.92096400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '3.19031800', '-7.36771800', '0', '0']],
 [['3.71975100', '3.19031400', '1.84193000', '0', '0'],
  ['11.15925300', '-1.59515600', '0.92096400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '-3.19031400', '-7.36771800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['3.71975100', '6.38063000', '-3.68385800', '0', '0']],
 [['3.71975100', '3.19031400', '1.84193000', '0', '0'],
  ['-3.71975100', '-3.19031400', '-1.84193000', '0', '0']],
 [['3.71975100', '3.19031400', '1.84193000', '0', '0'],
  ['-3.71975100', '0.00000200', '9.20964600', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '1.59516000', '-10.13061200', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '-1.59515600', '-10.13061200', '0', '0']],
 [['3.71975100', '3.19031400', '1.84193000', '0', '0'],
  ['-3.71975100', '-4.78547200', '6.44675200', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['3.71975100', '7.97578800', '-6.44675200', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['3.71975100', '3.19031400', '-9.20964600', '0', '0']],
 [['3.71975100', '3.19031400', '1.84193000', '0', '0'],
  ['3.71975100', '9.57094600', '-9.20964600', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['3.71975100', '6.38063000', '-9.20964600', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '0.00000200', '-12.89350600', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '3.19031800', '-1.84193000', '0', '0'],
  ['11.15925300', '0.00000200', '-1.84193000', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '-1.59515600', '0.92096400', '0', '0'],
  ['11.15925300', '0.00000200', '-1.84193000', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '0.00000200', '-1.84193000', '0', '0'],
  ['11.15925300', '1.59516000', '-4.60482400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '-3.19031400', '-1.84193000', '0', '0'],
  ['11.15925300', '1.59516000', '-4.60482400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '0.00000200', '-1.84193000', '0', '0'],
  ['11.15925300', '-1.59515600', '-4.60482400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '3.19031800', '-1.84193000', '0', '0'],
  ['11.15925300', '-1.59515600', '-4.60482400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '-1.59515600', '0.92096400', '0', '0'],
  ['11.15925300', '-1.59515600', '-4.60482400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '4.78547600', '-4.60482400', '0', '0'],
  ['11.15925300', '-1.59515600', '-4.60482400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '-4.78547200', '0.92096400', '0', '0'],
  ['11.15925300', '-1.59515600', '-4.60482400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '3.19031800', '3.68385800', '0', '0'],
  ['3.71975100', '3.19031400', '1.84193000', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '3.19031800', '-1.84193000', '0', '0'],
  ['3.71975100', '4.78547200', '-0.92096400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '6.38063400', '-1.84193000', '0', '0'],
  ['3.71975100', '4.78547200', '-0.92096400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '4.78547600', '-4.60482400', '0', '0'],
  ['3.71975100', '4.78547200', '-0.92096400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '0.00000200', '-1.84193000', '0', '0'],
  ['11.15925300', '3.19031800', '-7.36771800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '3.19031800', '-1.84193000', '0', '0'],
  ['11.15925300', '3.19031800', '-7.36771800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '4.78547600', '0.92096400', '0', '0'],
  ['11.15925300', '3.19031800', '-7.36771800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '-3.19031400', '-1.84193000', '0', '0'],
  ['11.15925300', '3.19031800', '-7.36771800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '6.38063400', '-1.84193000', '0', '0'],
  ['11.15925300', '3.19031800', '-7.36771800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '-4.78547200', '-4.60482400', '0', '0'],
  ['11.15925300', '3.19031800', '-7.36771800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '9.57095000', '-1.84193000', '0', '0'],
  ['11.15925300', '3.19031800', '-7.36771800', '0', '0']],
 [['3.71975100', '3.19031400', '1.84193000', '0', '0'],
  ['3.71975100', '1.59515600', '-0.92096400', '0', '0'],
  ['3.71975100', '4.78547200', '-6.44675200', '0', '0']],
 [['3.71975100', '3.19031400', '1.84193000', '0', '0'],
  ['3.71975100', '4.78547200', '-0.92096400', '0', '0'],
  ['3.71975100', '4.78547200', '-6.44675200', '0', '0']],
 [['3.71975100', '3.19031400', '1.84193000', '0', '0'],
  ['3.71975100', '6.38063000', '1.84193000', '0', '0'],
  ['3.71975100', '4.78547200', '-6.44675200', '0', '0']],
 [['3.71975100', '3.19031400', '1.84193000', '0', '0'],
  ['3.71975100', '7.97578800', '-0.92096400', '0', '0'],
  ['3.71975100', '4.78547200', '-6.44675200', '0', '0']],
 [['3.71975100', '3.19031400', '1.84193000', '0', '0'],
  ['3.71975100', '1.59515600', '-0.92096400', '0', '0'],
  ['11.15925300', '-1.59515600', '0.92096400', '0', '0']],
 [['3.71975100', '3.19031400', '1.84193000', '0', '0'],
  ['3.71975100', '1.59515600', '4.60482400', '0', '0'],
  ['11.15925300', '-1.59515600', '0.92096400', '0', '0']],
 [['3.71975100', '3.19031400', '1.84193000', '0', '0'],
  ['3.71975100', '-0.00000200', '1.84193000', '0', '0'],
  ['11.15925300', '-1.59515600', '0.92096400', '0', '0']],
 [['3.71975100', '3.19031400', '1.84193000', '0', '0'],
  ['3.71975100', '-1.59516000', '-0.92096400', '0', '0'],
  ['11.15925300', '-1.59515600', '0.92096400', '0', '0']],
 [['3.71975100', '3.19031400', '1.84193000', '0', '0'],
  ['3.71975100', '-1.59516000', '4.60482400', '0', '0'],
  ['11.15925300', '-1.59515600', '0.92096400', '0', '0']],
 [['3.71975100', '3.19031400', '1.84193000', '0', '0'],
  ['3.71975100', '-0.00000200', '-3.68385800', '0', '0'],
  ['11.15925300', '-1.59515600', '0.92096400', '0', '0']],
 [['3.71975100', '3.19031400', '1.84193000', '0', '0'],
  ['3.71975100', '-3.19031800', '1.84193000', '0', '0'],
  ['11.15925300', '-1.59515600', '0.92096400', '0', '0']],
 [['3.71975100', '3.19031400', '1.84193000', '0', '0'],
  ['11.15925300', '6.38063400', '3.68385800', '0', '0'],
  ['11.15925300', '-1.59515600', '0.92096400', '0', '0']],
 [['3.71975100', '3.19031400', '1.84193000', '0', '0'],
  ['3.71975100', '-3.19031800', '-3.68385800', '0', '0'],
  ['11.15925300', '-1.59515600', '0.92096400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '0.00000200', '-1.84193000', '0', '0'],
  ['11.15925300', '-3.19031400', '-7.36771800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '3.19031800', '-1.84193000', '0', '0'],
  ['11.15925300', '-3.19031400', '-7.36771800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '-1.59515600', '0.92096400', '0', '0'],
  ['11.15925300', '-3.19031400', '-7.36771800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '1.59516000', '-4.60482400', '0', '0'],
  ['11.15925300', '-3.19031400', '-7.36771800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '-3.19031400', '-1.84193000', '0', '0'],
  ['11.15925300', '-3.19031400', '-7.36771800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '4.78547600', '-4.60482400', '0', '0'],
  ['11.15925300', '-3.19031400', '-7.36771800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '-4.78547200', '0.92096400', '0', '0'],
  ['11.15925300', '-3.19031400', '-7.36771800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['18.59875500', '-0.00000200', '-3.68385800', '0', '0'],
  ['11.15925300', '-3.19031400', '-7.36771800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '6.38063400', '-7.36771800', '0', '0'],
  ['11.15925300', '-3.19031400', '-7.36771800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '-7.97578800', '0.92096400', '0', '0'],
  ['11.15925300', '-3.19031400', '-7.36771800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '0.00000200', '-1.84193000', '0', '0'],
  ['3.71975100', '6.38063000', '-3.68385800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '3.19031800', '-1.84193000', '0', '0'],
  ['3.71975100', '6.38063000', '-3.68385800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '4.78547600', '0.92096400', '0', '0'],
  ['3.71975100', '6.38063000', '-3.68385800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '1.59516000', '-4.60482400', '0', '0'],
  ['3.71975100', '6.38063000', '-3.68385800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '6.38063400', '-1.84193000', '0', '0'],
  ['3.71975100', '6.38063000', '-3.68385800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '4.78547600', '-4.60482400', '0', '0'],
  ['3.71975100', '6.38063000', '-3.68385800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '7.97579200', '0.92096400', '0', '0'],
  ['3.71975100', '6.38063000', '-3.68385800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['3.71975100', '-0.00000200', '1.84193000', '0', '0'],
  ['3.71975100', '6.38063000', '-3.68385800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['3.71975100', '1.59515600', '4.60482400', '0', '0'],
  ['3.71975100', '6.38063000', '-3.68385800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['3.71975100', '-1.59516000', '-0.92096400', '0', '0'],
  ['3.71975100', '6.38063000', '-3.68385800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '3.19031800', '-7.36771800', '0', '0'],
  ['3.71975100', '6.38063000', '-3.68385800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '11.16610800', '0.92096400', '0', '0'],
  ['3.71975100', '6.38063000', '-3.68385800', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '3.19031800', '-1.84193000', '0', '0'],
  ['11.15925300', '0.00000200', '-1.84193000', '0', '0'],
  ['11.15925300', '1.59516000', '-4.60482400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '0.00000200', '-1.84193000', '0', '0'],
  ['11.15925300', '-3.19031400', '-1.84193000', '0', '0'],
  ['11.15925300', '1.59516000', '-4.60482400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '3.19031800', '-1.84193000', '0', '0'],
  ['11.15925300', '0.00000200', '-1.84193000', '0', '0'],
  ['11.15925300', '-1.59515600', '-4.60482400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '-1.59515600', '0.92096400', '0', '0'],
  ['11.15925300', '0.00000200', '-1.84193000', '0', '0'],
  ['11.15925300', '-1.59515600', '-4.60482400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '-1.59515600', '0.92096400', '0', '0'],
  ['11.15925300', '3.19031800', '-1.84193000', '0', '0'],
  ['11.15925300', '-1.59515600', '-4.60482400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '3.19031800', '-1.84193000', '0', '0'],
  ['11.15925300', '1.59516000', '-4.60482400', '0', '0'],
  ['11.15925300', '-1.59515600', '-4.60482400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '-1.59515600', '0.92096400', '0', '0'],
  ['11.15925300', '1.59516000', '-4.60482400', '0', '0'],
  ['11.15925300', '-1.59515600', '-4.60482400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '-1.59515600', '0.92096400', '0', '0'],
  ['11.15925300', '-3.19031400', '-1.84193000', '0', '0'],
  ['11.15925300', '-1.59515600', '-4.60482400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '0.00000200', '-1.84193000', '0', '0'],
  ['11.15925300', '4.78547600', '-4.60482400', '0', '0'],
  ['11.15925300', '-1.59515600', '-4.60482400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '0.00000200', '-1.84193000', '0', '0'],
  ['11.15925300', '-4.78547200', '0.92096400', '0', '0'],
  ['11.15925300', '-1.59515600', '-4.60482400', '0', '0']],
 [['11.15925300', '1.59516000', '0.92096400', '0', '0'],
  ['11.15925300', '4.78547600', '0.92096400', '0', '0'],
  ['11.15925300', '3.19031800', '3.68385800', '0', '0'],
  ['3.71975100', '3.19031400', '1.84193000', '0', '0']]]
In [ ]:
 
In [ ]:
 
In [ ]: