idMap = SectionIndexerWithOffsetDF(morph=morph, offset=offset)()
            idMap[ morph.getDummySection() ] = dummyOffset
            
            
            if regionname_to_int_map is None:
                regionname_to_int_map = AutoRegionToIntMapTable()
                  
            region_type_map = dict( (s,0) if not s.region else (s,regionname_to_int_map.regionNameToInt(s.region.name)) for s in morph )
            
            context = [{ 'morph':morph, 'ids':idMap, 'region_type_map':region_type_map }]
            newOP = Template(swc_templ, context ).respond()
            output += newOP
            offset += len( idMap ) 
        return output
        













MorphologyExporter.register("toSWCFile", lambda filename,morphology: SWCTreeWriter.toFile(filename=filename, morph=morphology), allow_override=False, from_type=MorphologyTree )
MorphologyExporter.register("toSWCStr",  lambda morphology: SWCTreeWriter.toStr(morph=morphology), allow_override=False, from_type=MorphologyTree )
        # Root Vertex:
        data = [vertex_to_data(morphology._dummy_vertex_index, None, 0)]

        # Add Each Vertex
        for (conn_index,
             (v_index, v_index_parent)) in enumerate(morphology._connectivity):
            rgn = morphology._section_types[conn_index]
            data.append(vertex_to_data(v_index, v_index_parent, rgn))

        # Save the file:
        if op:
            np.savetxt(op, np.array(data), fmt=fmt)
        else:
            op = StringIO()
            np.savetxt(op, np.array(data), fmt=fmt)
            return op.getvalue()


# Wrapper function to avoid binding error:


def _export_single_swc(morphology, **kwargs):
    return ExportArray_SWC._export_single_swc(morphology=morphology, **kwargs)


MorphologyExporter.register('toSWC',
                            _export_single_swc,
                            allow_override=False,
                            from_type=MorphologyArray)
    @classmethod
    def export_single(cls, morphology, swc_vertex_offset = 1, op=None, fmt='%d %d %0.2f %0.2f %0.2f %0.2f %d'):
                
        def vertexToData(v_index, v_index_parent, rgn):
            x,y,z,r = morphology._vertices[v_index,:]
            return [ v_index+swc_vertex_offset, rgn,  x, y, z, r,  v_index_parent+swc_vertex_offset if v_index_parent is not None else -1 ]
        
        #Root Vertex: 
        data = [ vertexToData(morphology._dummy_vertex_index, None, 0)  ]
        
        # Add Each Vertex
        for conn_index,(v_index, v_index_parent) in enumerate(morphology._connectivity):
            rgn =  morphology._section_types[conn_index] 
            data.append( vertexToData(v_index, v_index_parent, rgn) )
            
        # Save the file:
        if op:
            np.savetxt(op, np.array(data), fmt=fmt )
        else:
            op = StringIO()
            np.savetxt(op, np.array(data), fmt=fmt )
            return op.getvalue()
        
        
#Wrapper function to avoid binding error:        
def export_single( morphology, **kwargs):        
    return ExportArray_SWC.export_single(morphology=morphology, **kwargs)


MorphologyExporter.register("toSWC",export_single, allow_override=False, from_type=MorphologyArray )
Beispiel #4
0
            id_map[morph.get_dummy_section()] = dummy_offset

            if regionname_to_int_map is None:
                regionname_to_int_map = AutoRegionToIntMapTable()

            region_type_map = dict((s, 0) if not s.region else (
                s, regionname_to_int_map.region_name_to_int(s.region.name))
                                   for s in morph)

            context = [{
                'morph': morph,
                'ids': id_map,
                'region_type_map': region_type_map
            }]
            new_op = Template(swc_templ, context).respond()
            output += new_op
            offset += len(id_map)
        return output


MorphologyExporter.register("toSWCFile",
                            lambda filename, morphology: SWCTreeWriter.to_file(
                                filename=filename, morph=morphology),
                            allow_override=False,
                            from_type=MorphologyTree)
MorphologyExporter.register(
    "toSWCStr",
    lambda morphology: SWCTreeWriter.to_str(morph=morphology),
    allow_override=False,
    from_type=MorphologyTree)
        def vertex_to_data(v_index, v_index_parent, rgn):
            (x, y, z, r) = morphology._vertices[v_index, :]
            return [v_index + swc_vertex_offset, rgn,  x, y, z, r, v_index_parent + swc_vertex_offset if v_index_parent is not None else -1]

        # Root Vertex:
        data = [vertex_to_data(morphology._dummy_vertex_index, None, 0)]

        # Add Each Vertex
        for (conn_index, (v_index, v_index_parent)) in enumerate(morphology._connectivity):
            rgn = morphology._section_types[conn_index]
            data.append(vertex_to_data(v_index, v_index_parent, rgn))

        # Save the file:
        if op:
            np.savetxt(op, np.array(data), fmt=fmt)
        else:
            op = StringIO()
            np.savetxt(op, np.array(data), fmt=fmt)
            return op.getvalue()


# Wrapper function to avoid binding error:

def _export_single_swc(morphology, **kwargs):
    return ExportArray_SWC._export_single_swc(morphology=morphology, **kwargs)


MorphologyExporter.register('toSWC', _export_single_swc,
                            allow_override=False,
                            from_type=MorphologyArray)