Changeset 265


Ignore:
Timestamp:
01/22/11 15:30:33 (10 years ago)
Author:
sc
Message:

synapse/synapse-render_video.py:

  • renderHistoryFrames added
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/synapse/synapse-render_video.py

    r264 r265  
    5757##################################################################### 
    5858# Functions 
     59##################################################################### 
     60 
     61def renderCurrentValuesImage(x=None, y=None ,\ 
     62                                  width = DEFAULT_CURRENT_VALUES_WIDTH, \ 
     63                                  height = DEFAULT_CURRENT_VALUES_HEIGHT, \ 
     64                                  x_color = DEFAULT_ATTENTION_COLOR, \ 
     65                                  y_color = DEFAULT_MEDITATION_COLOR, \ 
     66                                  output_file=DEFAULT_CURRENT_VALUES_IMAGE_FILE): 
     67         
     68        figsize = (width / 100.0, height / 100.0) # @ 100 dpi 
     69         
     70        fig = plt.figure(figsize=figsize) 
     71         
     72        ax = fig.add_subplot(111, projection='3d') 
     73         
     74        if x == None: 
     75                x = numpy.random.rand(1)[0] * 100 
     76         
     77        if y == None: 
     78                y = numpy.random.rand(1)[0] * 100 
     79         
     80        if type(x) != type([]): 
     81                x = [x] 
     82         
     83        if type(y) != type([]): 
     84                y = [y] 
     85                 
     86        hist, xedges, yedges = numpy.histogram2d(x, y, bins=[2,1]) 
     87 
     88        elements = (len(xedges) - 1) * (len(yedges) - 1) 
     89        xpos, ypos = numpy.meshgrid(xedges[:-1], yedges[:-1]) 
     90 
     91        xpos = xpos.flatten() 
     92        ypos = ypos.flatten() 
     93        zpos = numpy.zeros(elements) 
     94        dx = 0.5 * numpy.ones_like(zpos) 
     95        dy = dx.copy() 
     96        dz = hist.flatten() 
     97 
     98        dx = [0.5] 
     99        dy = [0.5] 
     100        dz = [x, y] 
     101 
     102        ax.bar3d(xpos, ypos, zpos, dx, dy, dz, color=[x_color, y_color], zsort='average') 
     103 
     104        ax.set_axis_bgcolor('black') 
     105 
     106        ax.set_zlim3d(0, 100) 
     107 
     108        ax.view_init(10, -120) 
     109 
     110        plt.savefig(output_file, \ 
     111                dpi=100, \ 
     112                facecolor='black', \ 
     113                edgecolor='black', \ 
     114                format='png', \ 
     115                pad_inches=0) 
     116 
     117 
    59118##################################################################### 
    60119 
     
    129188        ax.set_ylim3d(0, 1) 
    130189        ax.set_zlim3d(0, 100) 
    131  
    132         plt.savefig(output_file, \ 
    133                 dpi=100, \ 
    134                 facecolor='black', \ 
    135                 edgecolor='black', \ 
    136                 format='png', \ 
    137                 pad_inches=0) 
    138  
    139  
    140 ##################################################################### 
    141  
    142 def renderCurrentValuesImage(x=None, y=None ,\ 
    143                                   width = DEFAULT_CURRENT_VALUES_WIDTH, \ 
    144                                   height = DEFAULT_CURRENT_VALUES_HEIGHT, \ 
    145                                   x_color = DEFAULT_ATTENTION_COLOR, \ 
    146                                   y_color = DEFAULT_MEDITATION_COLOR, \ 
    147                                   output_file=DEFAULT_CURRENT_VALUES_IMAGE_FILE): 
    148          
    149         figsize = (width / 100.0, height / 100.0) # @ 100 dpi 
    150          
    151         fig = plt.figure(figsize=figsize) 
    152          
    153         ax = fig.add_subplot(111, projection='3d') 
    154          
    155         if x == None: 
    156                 x = numpy.random.rand(1)[0] * 100 
    157          
    158         if y == None: 
    159                 y = numpy.random.rand(1)[0] * 100 
    160          
    161         if type(x) != type([]): 
    162                 x = [x] 
    163          
    164         if type(y) != type([]): 
    165                 y = [y] 
    166                  
    167         hist, xedges, yedges = numpy.histogram2d(x, y, bins=[2,1]) 
    168  
    169         elements = (len(xedges) - 1) * (len(yedges) - 1) 
    170         xpos, ypos = numpy.meshgrid(xedges[:-1], yedges[:-1]) 
    171  
    172         xpos = xpos.flatten() 
    173         ypos = ypos.flatten() 
    174         zpos = numpy.zeros(elements) 
    175         dx = 0.5 * numpy.ones_like(zpos) 
    176         dy = dx.copy() 
    177         dz = hist.flatten() 
    178  
    179         dx = [0.5] 
    180         dy = [0.5] 
    181         dz = [x, y] 
    182  
    183         ax.bar3d(xpos, ypos, zpos, dx, dy, dz, color=[x_color, y_color], zsort='average') 
    184  
    185         ax.set_axis_bgcolor('black') 
    186  
    187         ax.set_zlim3d(0, 100) 
    188  
    189         ax.view_init(10, -120) 
    190190 
    191191        plt.savefig(output_file, \ 
     
    276276 
    277277##################################################################### 
     278 
     279def renderHistoryFrames(data, \ 
     280                            output_directory=DEFAULT_OUTPUT_DIRECTORY, \ 
     281                            prefix=DEFAULT_OUTPUT_IMAGE_PREFIX): 
     282 
     283        data_keys = data.keys() 
     284        data_keys.sort() 
     285 
     286        counter = 1 
     287         
     288        attention = [] 
     289        meditation = [] 
     290         
     291        for x in range(30): 
     292                attention.append(0) 
     293                meditation.append(0) 
     294 
     295        for each in data_keys: 
     296                 
     297                if DEBUG > 1: 
     298                        print each, 
     299                        print data[each] 
     300                 
     301                index = int(each) 
     302                 
     303                output_image = "%s-history-%i.png" % (prefix, index) 
     304                 
     305                output_path = os.path.join( os.getcwd(), \ 
     306                                            output_directory, \ 
     307                                            output_image ) 
     308                 
     309                if DEBUG: 
     310                        progress = int((float(counter) / len(data_keys)) * 100) 
     311                        print '%i%% [%i/%i] %s' % \ 
     312                           (progress, counter, len(data_keys), output_image) 
     313                 
     314                attention.append(data[each]['attention']) 
     315                attention = attention[1:] 
     316                 
     317                meditation.append(data[each]['meditation']) 
     318                meditation = meditation[1:] 
     319                 
     320                renderHistoryImage(attention=attention, \ 
     321                                   meditation=meditation, \ 
     322                                   output_file = output_path) 
     323                 
     324                 
     325                counter += 1 
     326 
     327 
     328##################################################################### 
    278329# Main 
    279330##################################################################### 
     
    295346        data = openData(input_file) 
    296347         
    297         #renderCurrentValuesImage() 
    298         #renderHistoryImage() 
    299          
    300348        data = mergeDataValues(data) 
     349 
    301350        renderValuesFrames(data, output_directory, prefix) 
    302  
     351        renderHistoryFrames(data, output_directory, prefix) 
     352 
Note: See TracChangeset for help on using the changeset viewer.