@@ -340,33 +340,32 @@ class measure:
340
340
List of member curves.
341
341
weights : numpy.ndarray
342
342
Array of positive weights associated to each curve.
343
- intensities : numpy.ndarray
344
- Array of the intensities associated to each curve.
343
+ energies : numpy.ndarray
344
+ Array of stored Benamou-Brenier energy associated to each curve.
345
345
main_energy : float
346
346
The Tikhonov energy of the measure.
347
347
"""
348
348
def __init__ (self ):
349
349
self .curves = []
350
350
self .energies = np .array ([])
351
- self .intensities = np .array ([])
351
+ self .weights = np .array ([])
352
352
self .main_energy = None
353
353
354
- def add (self , new_curve , new_intensity ):
355
- # Input: new_curve is a curve class object. new_intensity > 0 real.
356
- if new_intensity > config .measure_coefficient_too_low :
354
+ def add (self , new_curve , new_weight ):
355
+ # Input: new_curve is a curve class object. new_weight > 0 real.
356
+ if new_weight > config .measure_coefficient_too_low :
357
357
self .curves .extend ([new_curve ])
358
358
self .energies = np .append (self .energies ,
359
359
new_curve .energy ())
360
- self .intensities = np .append (self .intensities , new_intensity )
360
+ self .weights = np .append (self .weights , new_weight )
361
361
self .main_energy = None
362
362
363
363
def __add__ (self , measure2 ):
364
364
new_measure = copy .deepcopy (self )
365
365
new_measure .curves .extend (copy .deepcopy (measure2 .curves ))
366
366
new_measure .energies = np .append (new_measure .energies ,
367
367
measure2 .energies )
368
- new_measure .intensities = np .append (new_measure .intensities ,
369
- measure2 .intensities )
368
+ new_measure .weights = np .append (new_measure .weights , measure2 .weights )
370
369
new_measure .main_energy = None
371
370
return new_measure
372
371
@@ -375,46 +374,46 @@ def __mul__(self, factor):
375
374
raise Exception ('Cannot use a negative factor for a measure' )
376
375
new_measure = copy .deepcopy (self )
377
376
new_measure .main_energy = None
378
- for i in range (len (self .intensities )):
379
- new_measure .intensities [i ] = new_measure .intensities [i ]* factor
377
+ for i in range (len (self .weights )):
378
+ new_measure .weights [i ] = new_measure .weights [i ]* factor
380
379
return new_measure
381
380
382
381
def __rmul__ (self , factor ):
383
382
return self * factor
384
383
385
- def modify_intensity (self , curve_index , new_intensity ):
384
+ def modify_weight (self , curve_index , new_weight ):
386
385
self .main_energy = None
387
386
if curve_index >= len (self .curves ):
388
387
raise Exception ('Trying to modify an unexistant curve! The given'
389
388
+ 'curve index is too high for the current array' )
390
- if new_intensity < config .measure_coefficient_too_low :
389
+ if new_weight < config .measure_coefficient_too_low :
391
390
del self .curves [curve_index ]
392
- self .intensities = np .delete (self .intensities , curve_index )
391
+ self .weights = np .delete (self .weights , curve_index )
393
392
self .energies = np .delete (self .energies , curve_index )
394
393
else :
395
- self .intensities [curve_index ] = new_intensity
394
+ self .weights [curve_index ] = new_weight
396
395
397
396
def integrate_against (self , w_t ):
398
397
assert isinstance (w_t , op .w_t )
399
398
# Method to integrate against this measure.
400
399
integral = 0
401
400
for i , curv in enumerate (self .curves ):
402
- integral += self .intensities [i ]/ self .energies [i ] * \
401
+ integral += self .weights [i ]/ self .energies [i ] * \
403
402
curv .integrate_against (w_t )
404
403
return integral
405
404
406
405
def spatial_integrate (self , t , target ):
407
406
# Method to integrate against this measure for a fixed time, target is
408
407
# a function handle
409
408
val = 0
410
- for i in range (len (self .intensities )):
411
- val = val + self .intensities [i ]/ self .energies [i ] * \
409
+ for i in range (len (self .weights )):
410
+ val = val + self .weights [i ]/ self .energies [i ] * \
412
411
target (self .curves [i ].eval_discrete (t ))
413
412
return val
414
413
415
414
def to_curve_product (self ):
416
415
# transforms the measure to a curve product object
417
- return curve_product (self .curves , self .intensities )
416
+ return curve_product (self .curves , self .weights )
418
417
419
418
def get_main_energy (self ):
420
419
if self .main_energy is None :
@@ -425,8 +424,8 @@ def get_main_energy(self):
425
424
426
425
427
426
def draw (self , ax = None ):
428
- num_plots = len (self .intensities )
429
- total_intensities = self .intensities / self .energies
427
+ num_plots = len (self .weights )
428
+ total_intensities = self .weights / self .energies
430
429
'get the brg colormap for the intensities of curves'
431
430
colors = plt .cm .brg (total_intensities / max (total_intensities ))
432
431
ax = ax or plt .gca ()
@@ -467,13 +466,13 @@ def animate(self, filename=None, show=True, block=False):
467
466
def reorder (self ):
468
467
# Script to reorder the curves inside the measure with an increasing
469
468
# total energy.
470
- total_intensities = self .intensities / self .energies
469
+ total_intensities = self .weights / self .energies
471
470
new_order = np .argsort (total_intensities )
472
471
new_measure = measure ()
473
472
for idx in new_order :
474
- new_measure .add (self .curves [idx ], self .intensities [idx ])
473
+ new_measure .add (self .curves [idx ], self .weights [idx ])
475
474
self .curves = new_measure .curves
476
- self .intensities = new_measure .intensities
475
+ self .weights = new_measure .weights
477
476
self .energies = new_measure .energies
478
477
479
478
0 commit comments