ContourMetrics 0.4.1

Load stuff


In [1]:
# Load external jupyter stuff
%load_ext autoreload
%load_ext snakeviz

In [2]:
# jupyter settings
%autoreload 2
%matplotlib inline
%autocall 1

# imports
import numpy
import scipy
import pandas
import sklearn
import sklearn.cluster
import os
import glob
import json
from matplotlib import pyplot as plt

import itertools
import collections
import music21
import Levenshtein

from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "contourMetrics.settings.production")
application = get_wsgi_application()

import lib.contour
import cProfile

from django.db.models import Q
from lib.contour import ContourPoint as CP
from lib.contour import Contour as C

import lib.generator
import lib.utils
import lib.analysis
import lib

from apps.calculator import models


Automatic calling is: Smart

In [3]:
def log_progress(sequence, every=None, size=None):
    # https://github.com/alexanderkuk/log-progress
    from ipywidgets import IntProgress, HTML, VBox
    from IPython.display import display

    is_iterator = False
    if size is None:
        try:
            size = len(sequence)
        except TypeError:
            is_iterator = True
    if size is not None:
        if every is None:
            if size <= 200:
                every = 1
            else:
                every = int(size / 200)     # every 0.5%
    else:
        assert every is not None, 'sequence is iterator, set every'

    if is_iterator:
        progress = IntProgress(min=0, max=1, value=1)
        progress.bar_style = 'info'
    else:
        progress = IntProgress(min=0, max=size, value=0)
    label = HTML()
    box = VBox(children=[label, progress])
    display(box)

    index = 0
    try:
        for index, record in enumerate(sequence, 1):
            if index == 1 or index % every == 0:
                if is_iterator:
                    label.value = '{index} / ?'.format(index=index)
                else:
                    progress.value = index
                    label.value = u'{index} / {size}'.format(
                        index=index,
                        size=size
                    )
            yield record
    except:
        progress.bar_style = 'danger'
        raise
    else:
        progress.bar_style = 'success'
        progress.value = index
        label.value = str(index or '?')

Database commands

Feed with data


In [4]:
# Generate some contours and save to db
# lib.generator.generate_and_save_contours_to_db(8) # set the contour size

In [5]:
# Parse and save collections from corpora directory

# Use this to parse all collections:
# lib.generator.parse_and_save_all_collections()

# Or this to parse only one collection. Chorales, for instance:
# collections = lib.generator.get_collections()
# lib.generator.parse_and_save_collection(collections['Chorales'])

In [6]:
# Feed the comparisons DB
# This is a very slow process. It can take many hours

# Use this to save comparison from all the collections
# lib.generator.save_all_collections_comparisons()

# Or this to save comparison from a single collection. Chorales, for instance:
# lib.generator.save_collection_comparisons('Chorales')

Serialization


In [7]:
# Serialize a model class (for backup, for instance)
lib.utils.serialize_model(models.Comparison)


3115392

In [8]:
# Deserialize a json serialized file
# To save in db, set True in the second argument
lib.utils.deserialize('./Comparison-serialized.json')


Out[8]:
[<DeserializedObject: calculator.Comparison(pk=946820)>,
 <DeserializedObject: calculator.Comparison(pk=947945)>,
 <DeserializedObject: calculator.Comparison(pk=946821)>,
 <DeserializedObject: calculator.Comparison(pk=946815)>,
 <DeserializedObject: calculator.Comparison(pk=946816)>,
 <DeserializedObject: calculator.Comparison(pk=946817)>,
 <DeserializedObject: calculator.Comparison(pk=946818)>,
 <DeserializedObject: calculator.Comparison(pk=947803)>,
 <DeserializedObject: calculator.Comparison(pk=946827)>,
 <DeserializedObject: calculator.Comparison(pk=947946)>,
 <DeserializedObject: calculator.Comparison(pk=946828)>,
 <DeserializedObject: calculator.Comparison(pk=946829)>,
 <DeserializedObject: calculator.Comparison(pk=946823)>,
 <DeserializedObject: calculator.Comparison(pk=946824)>,
 <DeserializedObject: calculator.Comparison(pk=946825)>,
 <DeserializedObject: calculator.Comparison(pk=947809)>,
 <DeserializedObject: calculator.Comparison(pk=947436)>,
 <DeserializedObject: calculator.Comparison(pk=947947)>,
 <DeserializedObject: calculator.Comparison(pk=947948)>,
 <DeserializedObject: calculator.Comparison(pk=946838)>,
 <DeserializedObject: calculator.Comparison(pk=946831)>,
 <DeserializedObject: calculator.Comparison(pk=946832)>,
 <DeserializedObject: calculator.Comparison(pk=947949)>,
 <DeserializedObject: calculator.Comparison(pk=947445)>,
 <DeserializedObject: calculator.Comparison(pk=946836)>,
 <DeserializedObject: calculator.Comparison(pk=947950)>,
 <DeserializedObject: calculator.Comparison(pk=946845)>,
 <DeserializedObject: calculator.Comparison(pk=946846)>,
 <DeserializedObject: calculator.Comparison(pk=946840)>,
 <DeserializedObject: calculator.Comparison(pk=946841)>,
 <DeserializedObject: calculator.Comparison(pk=946842)>,
 <DeserializedObject: calculator.Comparison(pk=947454)>,
 <DeserializedObject: calculator.Comparison(pk=946844)>,
 <DeserializedObject: calculator.Comparison(pk=947951)>,
 <DeserializedObject: calculator.Comparison(pk=946853)>,
 <DeserializedObject: calculator.Comparison(pk=946854)>,
 <DeserializedObject: calculator.Comparison(pk=946848)>,
 <DeserializedObject: calculator.Comparison(pk=946849)>,
 <DeserializedObject: calculator.Comparison(pk=946850)>,
 <DeserializedObject: calculator.Comparison(pk=947490)>,
 <DeserializedObject: calculator.Comparison(pk=946852)>,
 <DeserializedObject: calculator.Comparison(pk=947952)>,
 <DeserializedObject: calculator.Comparison(pk=946861)>,
 <DeserializedObject: calculator.Comparison(pk=946862)>,
 <DeserializedObject: calculator.Comparison(pk=946856)>,
 <DeserializedObject: calculator.Comparison(pk=946857)>,
 <DeserializedObject: calculator.Comparison(pk=946858)>,
 <DeserializedObject: calculator.Comparison(pk=947796)>,
 <DeserializedObject: calculator.Comparison(pk=946860)>,
 <DeserializedObject: calculator.Comparison(pk=947953)>,
 <DeserializedObject: calculator.Comparison(pk=946869)>,
 <DeserializedObject: calculator.Comparison(pk=946870)>,
 <DeserializedObject: calculator.Comparison(pk=946864)>,
 <DeserializedObject: calculator.Comparison(pk=946865)>,
 <DeserializedObject: calculator.Comparison(pk=946866)>,
 <DeserializedObject: calculator.Comparison(pk=947814)>,
 <DeserializedObject: calculator.Comparison(pk=946868)>,
 <DeserializedObject: calculator.Comparison(pk=947954)>,
 <DeserializedObject: calculator.Comparison(pk=946877)>,
 <DeserializedObject: calculator.Comparison(pk=946878)>,
 <DeserializedObject: calculator.Comparison(pk=946872)>,
 <DeserializedObject: calculator.Comparison(pk=946873)>,
 <DeserializedObject: calculator.Comparison(pk=946874)>,
 <DeserializedObject: calculator.Comparison(pk=946822)>,
 <DeserializedObject: calculator.Comparison(pk=946876)>,
 <DeserializedObject: calculator.Comparison(pk=947955)>,
 <DeserializedObject: calculator.Comparison(pk=946885)>,
 <DeserializedObject: calculator.Comparison(pk=946886)>,
 <DeserializedObject: calculator.Comparison(pk=946880)>,
 <DeserializedObject: calculator.Comparison(pk=946881)>,
 <DeserializedObject: calculator.Comparison(pk=946882)>,
 <DeserializedObject: calculator.Comparison(pk=947198)>,
 <DeserializedObject: calculator.Comparison(pk=946884)>,
 <DeserializedObject: calculator.Comparison(pk=947956)>,
 <DeserializedObject: calculator.Comparison(pk=946893)>,
 <DeserializedObject: calculator.Comparison(pk=946894)>,
 <DeserializedObject: calculator.Comparison(pk=946888)>,
 <DeserializedObject: calculator.Comparison(pk=946889)>,
 <DeserializedObject: calculator.Comparison(pk=946890)>,
 <DeserializedObject: calculator.Comparison(pk=947036)>,
 <DeserializedObject: calculator.Comparison(pk=946892)>,
 <DeserializedObject: calculator.Comparison(pk=947957)>,
 <DeserializedObject: calculator.Comparison(pk=947252)>,
 <DeserializedObject: calculator.Comparison(pk=947253)>,
 <DeserializedObject: calculator.Comparison(pk=946896)>,
 <DeserializedObject: calculator.Comparison(pk=946897)>,
 <DeserializedObject: calculator.Comparison(pk=946898)>,
 <DeserializedObject: calculator.Comparison(pk=946529)>,
 <DeserializedObject: calculator.Comparison(pk=946900)>,
 <DeserializedObject: calculator.Comparison(pk=947958)>,
 <DeserializedObject: calculator.Comparison(pk=946907)>,
 <DeserializedObject: calculator.Comparison(pk=946908)>,
 <DeserializedObject: calculator.Comparison(pk=946902)>,
 <DeserializedObject: calculator.Comparison(pk=946903)>,
 <DeserializedObject: calculator.Comparison(pk=946904)>,
 <DeserializedObject: calculator.Comparison(pk=946691)>,
 <DeserializedObject: calculator.Comparison(pk=946906)>,
 <DeserializedObject: calculator.Comparison(pk=947959)>,
 <DeserializedObject: calculator.Comparison(pk=946915)>,
 <DeserializedObject: calculator.Comparison(pk=946916)>,
 <DeserializedObject: calculator.Comparison(pk=946910)>,
 <DeserializedObject: calculator.Comparison(pk=946911)>,
 <DeserializedObject: calculator.Comparison(pk=946912)>,
 <DeserializedObject: calculator.Comparison(pk=947301)>,
 <DeserializedObject: calculator.Comparison(pk=946914)>,
 <DeserializedObject: calculator.Comparison(pk=947960)>,
 <DeserializedObject: calculator.Comparison(pk=946923)>,
 <DeserializedObject: calculator.Comparison(pk=946924)>,
 <DeserializedObject: calculator.Comparison(pk=946918)>,
 <DeserializedObject: calculator.Comparison(pk=946919)>,
 <DeserializedObject: calculator.Comparison(pk=946920)>,
 <DeserializedObject: calculator.Comparison(pk=947463)>,
 <DeserializedObject: calculator.Comparison(pk=946922)>,
 <DeserializedObject: calculator.Comparison(pk=947961)>,
 <DeserializedObject: calculator.Comparison(pk=946931)>,
 <DeserializedObject: calculator.Comparison(pk=946932)>,
 <DeserializedObject: calculator.Comparison(pk=946926)>,
 <DeserializedObject: calculator.Comparison(pk=946927)>,
 <DeserializedObject: calculator.Comparison(pk=946928)>,
 <DeserializedObject: calculator.Comparison(pk=946528)>,
 <DeserializedObject: calculator.Comparison(pk=946930)>,
 <DeserializedObject: calculator.Comparison(pk=947962)>,
 <DeserializedObject: calculator.Comparison(pk=946819)>,
 <DeserializedObject: calculator.Comparison(pk=946939)>,
 <DeserializedObject: calculator.Comparison(pk=946940)>,
 <DeserializedObject: calculator.Comparison(pk=946934)>,
 <DeserializedObject: calculator.Comparison(pk=946935)>,
 <DeserializedObject: calculator.Comparison(pk=946936)>,
 <DeserializedObject: calculator.Comparison(pk=946938)>,
 <DeserializedObject: calculator.Comparison(pk=947963)>,
 <DeserializedObject: calculator.Comparison(pk=946826)>,
 <DeserializedObject: calculator.Comparison(pk=946947)>,
 <DeserializedObject: calculator.Comparison(pk=946948)>,
 <DeserializedObject: calculator.Comparison(pk=946942)>,
 <DeserializedObject: calculator.Comparison(pk=946943)>,
 <DeserializedObject: calculator.Comparison(pk=946944)>,
 <DeserializedObject: calculator.Comparison(pk=946946)>,
 <DeserializedObject: calculator.Comparison(pk=947964)>,
 <DeserializedObject: calculator.Comparison(pk=946834)>,
 <DeserializedObject: calculator.Comparison(pk=946955)>,
 <DeserializedObject: calculator.Comparison(pk=946956)>,
 <DeserializedObject: calculator.Comparison(pk=946950)>,
 <DeserializedObject: calculator.Comparison(pk=946951)>,
 <DeserializedObject: calculator.Comparison(pk=946952)>,
 <DeserializedObject: calculator.Comparison(pk=946954)>,
 <DeserializedObject: calculator.Comparison(pk=947965)>,
 <DeserializedObject: calculator.Comparison(pk=946833)>,
 <DeserializedObject: calculator.Comparison(pk=946963)>,
 <DeserializedObject: calculator.Comparison(pk=946964)>,
 <DeserializedObject: calculator.Comparison(pk=946958)>,
 <DeserializedObject: calculator.Comparison(pk=946959)>,
 <DeserializedObject: calculator.Comparison(pk=946960)>,
 <DeserializedObject: calculator.Comparison(pk=946962)>,
 <DeserializedObject: calculator.Comparison(pk=947966)>,
 <DeserializedObject: calculator.Comparison(pk=946835)>,
 <DeserializedObject: calculator.Comparison(pk=946971)>,
 <DeserializedObject: calculator.Comparison(pk=946972)>,
 <DeserializedObject: calculator.Comparison(pk=946966)>,
 <DeserializedObject: calculator.Comparison(pk=946967)>,
 <DeserializedObject: calculator.Comparison(pk=946968)>,
 <DeserializedObject: calculator.Comparison(pk=946970)>,
 <DeserializedObject: calculator.Comparison(pk=947967)>,
 <DeserializedObject: calculator.Comparison(pk=946837)>,
 <DeserializedObject: calculator.Comparison(pk=946979)>,
 <DeserializedObject: calculator.Comparison(pk=946980)>,
 <DeserializedObject: calculator.Comparison(pk=946974)>,
 <DeserializedObject: calculator.Comparison(pk=946975)>,
 <DeserializedObject: calculator.Comparison(pk=946976)>,
 <DeserializedObject: calculator.Comparison(pk=946978)>,
 <DeserializedObject: calculator.Comparison(pk=947968)>,
 <DeserializedObject: calculator.Comparison(pk=947969)>,
 <DeserializedObject: calculator.Comparison(pk=946843)>,
 <DeserializedObject: calculator.Comparison(pk=946851)>,
 <DeserializedObject: calculator.Comparison(pk=946987)>,
 <DeserializedObject: calculator.Comparison(pk=946989)>,
 <DeserializedObject: calculator.Comparison(pk=946982)>,
 <DeserializedObject: calculator.Comparison(pk=946983)>,
 <DeserializedObject: calculator.Comparison(pk=947970)>,
 <DeserializedObject: calculator.Comparison(pk=947971)>,
 <DeserializedObject: calculator.Comparison(pk=947972)>,
 <DeserializedObject: calculator.Comparison(pk=946859)>,
 <DeserializedObject: calculator.Comparison(pk=946867)>,
 <DeserializedObject: calculator.Comparison(pk=946995)>,
 <DeserializedObject: calculator.Comparison(pk=946997)>,
 <DeserializedObject: calculator.Comparison(pk=946991)>,
 <DeserializedObject: calculator.Comparison(pk=946992)>,
 <DeserializedObject: calculator.Comparison(pk=947973)>,
 <DeserializedObject: calculator.Comparison(pk=947974)>,
 <DeserializedObject: calculator.Comparison(pk=947975)>,
 <DeserializedObject: calculator.Comparison(pk=946875)>,
 <DeserializedObject: calculator.Comparison(pk=946883)>,
 <DeserializedObject: calculator.Comparison(pk=947259)>,
 <DeserializedObject: calculator.Comparison(pk=947261)>,
 <DeserializedObject: calculator.Comparison(pk=947254)>,
 <DeserializedObject: calculator.Comparison(pk=947255)>,
 <DeserializedObject: calculator.Comparison(pk=947976)>,
 <DeserializedObject: calculator.Comparison(pk=947006)>,
 <DeserializedObject: calculator.Comparison(pk=947977)>,
 <DeserializedObject: calculator.Comparison(pk=947978)>,
 <DeserializedObject: calculator.Comparison(pk=946891)>,
 <DeserializedObject: calculator.Comparison(pk=946899)>,
 <DeserializedObject: calculator.Comparison(pk=947008)>,
 <DeserializedObject: calculator.Comparison(pk=947001)>,
 <DeserializedObject: calculator.Comparison(pk=947002)>,
 <DeserializedObject: calculator.Comparison(pk=947979)>,
 <DeserializedObject: calculator.Comparison(pk=947980)>,
 <DeserializedObject: calculator.Comparison(pk=947981)>,
 <DeserializedObject: calculator.Comparison(pk=946905)>,
 <DeserializedObject: calculator.Comparison(pk=946913)>,
 <DeserializedObject: calculator.Comparison(pk=947017)>,
 <DeserializedObject: calculator.Comparison(pk=947010)>,
 <DeserializedObject: calculator.Comparison(pk=947011)>,
 <DeserializedObject: calculator.Comparison(pk=947982)>,
 <DeserializedObject: calculator.Comparison(pk=947983)>,
 <DeserializedObject: calculator.Comparison(pk=947984)>,
 <DeserializedObject: calculator.Comparison(pk=946921)>,
 <DeserializedObject: calculator.Comparison(pk=946929)>,
 <DeserializedObject: calculator.Comparison(pk=947026)>,
 <DeserializedObject: calculator.Comparison(pk=947019)>,
 <DeserializedObject: calculator.Comparison(pk=947020)>,
 <DeserializedObject: calculator.Comparison(pk=947985)>,
 <DeserializedObject: calculator.Comparison(pk=947033)>,
 <DeserializedObject: calculator.Comparison(pk=947986)>,
 <DeserializedObject: calculator.Comparison(pk=947987)>,
 <DeserializedObject: calculator.Comparison(pk=946937)>,
 <DeserializedObject: calculator.Comparison(pk=946945)>,
 <DeserializedObject: calculator.Comparison(pk=947035)>,
 <DeserializedObject: calculator.Comparison(pk=947028)>,
 <DeserializedObject: calculator.Comparison(pk=947029)>,
 <DeserializedObject: calculator.Comparison(pk=947988)>,
 <DeserializedObject: calculator.Comparison(pk=947042)>,
 <DeserializedObject: calculator.Comparison(pk=947989)>,
 <DeserializedObject: calculator.Comparison(pk=947990)>,
 <DeserializedObject: calculator.Comparison(pk=946953)>,
 <DeserializedObject: calculator.Comparison(pk=946961)>,
 <DeserializedObject: calculator.Comparison(pk=947044)>,
 <DeserializedObject: calculator.Comparison(pk=947037)>,
 <DeserializedObject: calculator.Comparison(pk=947038)>,
 <DeserializedObject: calculator.Comparison(pk=947991)>,
 <DeserializedObject: calculator.Comparison(pk=947992)>,
 <DeserializedObject: calculator.Comparison(pk=947993)>,
 <DeserializedObject: calculator.Comparison(pk=946969)>,
 <DeserializedObject: calculator.Comparison(pk=946984)>,
 <DeserializedObject: calculator.Comparison(pk=947051)>,
 <DeserializedObject: calculator.Comparison(pk=947053)>,
 <DeserializedObject: calculator.Comparison(pk=947046)>,
 <DeserializedObject: calculator.Comparison(pk=947047)>,
 <DeserializedObject: calculator.Comparison(pk=947994)>,
 <DeserializedObject: calculator.Comparison(pk=947995)>,
 <DeserializedObject: calculator.Comparison(pk=947996)>,
 <DeserializedObject: calculator.Comparison(pk=946977)>,
 <DeserializedObject: calculator.Comparison(pk=946993)>,
 <DeserializedObject: calculator.Comparison(pk=947060)>,
 <DeserializedObject: calculator.Comparison(pk=947062)>,
 <DeserializedObject: calculator.Comparison(pk=947055)>,
 <DeserializedObject: calculator.Comparison(pk=947056)>,
 <DeserializedObject: calculator.Comparison(pk=947997)>,
 <DeserializedObject: calculator.Comparison(pk=947069)>,
 <DeserializedObject: calculator.Comparison(pk=947024)>,
 <DeserializedObject: calculator.Comparison(pk=947015)>,
 <DeserializedObject: calculator.Comparison(pk=946985)>,
 <DeserializedObject: calculator.Comparison(pk=947256)>,
 <DeserializedObject: calculator.Comparison(pk=947071)>,
 <DeserializedObject: calculator.Comparison(pk=947064)>,
 <DeserializedObject: calculator.Comparison(pk=947065)>,
 <DeserializedObject: calculator.Comparison(pk=947225)>,
 <DeserializedObject: calculator.Comparison(pk=947078)>,
 <DeserializedObject: calculator.Comparison(pk=947004)>,
 <DeserializedObject: calculator.Comparison(pk=947003)>,
 <DeserializedObject: calculator.Comparison(pk=947080)>,
 <DeserializedObject: calculator.Comparison(pk=947073)>,
 <DeserializedObject: calculator.Comparison(pk=947074)>,
 <DeserializedObject: calculator.Comparison(pk=947087)>,
 <DeserializedObject: calculator.Comparison(pk=947013)>,
 <DeserializedObject: calculator.Comparison(pk=947012)>,
 <DeserializedObject: calculator.Comparison(pk=947089)>,
 <DeserializedObject: calculator.Comparison(pk=947082)>,
 <DeserializedObject: calculator.Comparison(pk=947083)>,
 <DeserializedObject: calculator.Comparison(pk=947096)>,
 <DeserializedObject: calculator.Comparison(pk=947021)>,
 <DeserializedObject: calculator.Comparison(pk=946986)>,
 <DeserializedObject: calculator.Comparison(pk=947098)>,
 <DeserializedObject: calculator.Comparison(pk=947091)>,
 <DeserializedObject: calculator.Comparison(pk=947092)>,
 <DeserializedObject: calculator.Comparison(pk=947105)>,
 <DeserializedObject: calculator.Comparison(pk=947031)>,
 <DeserializedObject: calculator.Comparison(pk=947030)>,
 <DeserializedObject: calculator.Comparison(pk=947107)>,
 <DeserializedObject: calculator.Comparison(pk=947100)>,
 <DeserializedObject: calculator.Comparison(pk=947101)>,
 <DeserializedObject: calculator.Comparison(pk=947114)>,
 <DeserializedObject: calculator.Comparison(pk=947040)>,
 <DeserializedObject: calculator.Comparison(pk=947039)>,
 <DeserializedObject: calculator.Comparison(pk=947116)>,
 <DeserializedObject: calculator.Comparison(pk=947109)>,
 <DeserializedObject: calculator.Comparison(pk=947110)>,
 <DeserializedObject: calculator.Comparison(pk=947123)>,
 <DeserializedObject: calculator.Comparison(pk=946988)>,
 <DeserializedObject: calculator.Comparison(pk=947048)>,
 <DeserializedObject: calculator.Comparison(pk=947125)>,
 <DeserializedObject: calculator.Comparison(pk=947118)>,
 <DeserializedObject: calculator.Comparison(pk=947119)>,
 <DeserializedObject: calculator.Comparison(pk=947132)>,
 <DeserializedObject: calculator.Comparison(pk=946994)>,
 <DeserializedObject: calculator.Comparison(pk=947057)>,
 <DeserializedObject: calculator.Comparison(pk=947134)>,
 <DeserializedObject: calculator.Comparison(pk=947127)>,
 <DeserializedObject: calculator.Comparison(pk=947128)>,
 <DeserializedObject: calculator.Comparison(pk=947067)>,
 <DeserializedObject: calculator.Comparison(pk=947066)>,
 <DeserializedObject: calculator.Comparison(pk=947141)>,
 <DeserializedObject: calculator.Comparison(pk=947143)>,
 <DeserializedObject: calculator.Comparison(pk=947136)>,
 <DeserializedObject: calculator.Comparison(pk=947137)>,
 <DeserializedObject: calculator.Comparison(pk=947076)>,
 <DeserializedObject: calculator.Comparison(pk=947075)>,
 <DeserializedObject: calculator.Comparison(pk=947150)>,
 <DeserializedObject: calculator.Comparison(pk=947152)>,
 <DeserializedObject: calculator.Comparison(pk=947145)>,
 <DeserializedObject: calculator.Comparison(pk=947146)>,
 <DeserializedObject: calculator.Comparison(pk=947159)>,
 <DeserializedObject: calculator.Comparison(pk=947085)>,
 <DeserializedObject: calculator.Comparison(pk=947084)>,
 <DeserializedObject: calculator.Comparison(pk=947161)>,
 <DeserializedObject: calculator.Comparison(pk=947154)>,
 <DeserializedObject: calculator.Comparison(pk=947155)>,
 <DeserializedObject: calculator.Comparison(pk=947168)>,
 <DeserializedObject: calculator.Comparison(pk=947094)>,
 <DeserializedObject: calculator.Comparison(pk=947093)>,
 <DeserializedObject: calculator.Comparison(pk=947170)>,
 <DeserializedObject: calculator.Comparison(pk=947163)>,
 <DeserializedObject: calculator.Comparison(pk=947164)>,
 <DeserializedObject: calculator.Comparison(pk=947177)>,
 <DeserializedObject: calculator.Comparison(pk=947103)>,
 <DeserializedObject: calculator.Comparison(pk=947102)>,
 <DeserializedObject: calculator.Comparison(pk=947179)>,
 <DeserializedObject: calculator.Comparison(pk=947172)>,
 <DeserializedObject: calculator.Comparison(pk=947173)>,
 <DeserializedObject: calculator.Comparison(pk=947186)>,
 <DeserializedObject: calculator.Comparison(pk=947112)>,
 <DeserializedObject: calculator.Comparison(pk=947111)>,
 <DeserializedObject: calculator.Comparison(pk=947188)>,
 <DeserializedObject: calculator.Comparison(pk=947181)>,
 <DeserializedObject: calculator.Comparison(pk=947182)>,
 <DeserializedObject: calculator.Comparison(pk=947121)>,
 <DeserializedObject: calculator.Comparison(pk=947120)>,
 <DeserializedObject: calculator.Comparison(pk=947195)>,
 <DeserializedObject: calculator.Comparison(pk=947197)>,
 <DeserializedObject: calculator.Comparison(pk=947190)>,
 <DeserializedObject: calculator.Comparison(pk=947191)>,
 <DeserializedObject: calculator.Comparison(pk=947130)>,
 <DeserializedObject: calculator.Comparison(pk=947129)>,
 <DeserializedObject: calculator.Comparison(pk=947204)>,
 <DeserializedObject: calculator.Comparison(pk=947206)>,
 <DeserializedObject: calculator.Comparison(pk=947199)>,
 <DeserializedObject: calculator.Comparison(pk=947200)>,
 <DeserializedObject: calculator.Comparison(pk=946996)>,
 <DeserializedObject: calculator.Comparison(pk=947138)>,
 <DeserializedObject: calculator.Comparison(pk=947213)>,
 <DeserializedObject: calculator.Comparison(pk=947215)>,
 <DeserializedObject: calculator.Comparison(pk=947208)>,
 <DeserializedObject: calculator.Comparison(pk=947209)>,
 <DeserializedObject: calculator.Comparison(pk=946998)>,
 <DeserializedObject: calculator.Comparison(pk=947147)>,
 <DeserializedObject: calculator.Comparison(pk=947221)>,
 <DeserializedObject: calculator.Comparison(pk=947223)>,
 <DeserializedObject: calculator.Comparison(pk=947217)>,
 <DeserializedObject: calculator.Comparison(pk=947219)>,
 <DeserializedObject: calculator.Comparison(pk=947231)>,
 <DeserializedObject: calculator.Comparison(pk=947157)>,
 <DeserializedObject: calculator.Comparison(pk=947156)>,
 <DeserializedObject: calculator.Comparison(pk=947233)>,
 <DeserializedObject: calculator.Comparison(pk=947226)>,
 <DeserializedObject: calculator.Comparison(pk=947227)>,
 <DeserializedObject: calculator.Comparison(pk=947166)>,
 <DeserializedObject: calculator.Comparison(pk=947165)>,
 <DeserializedObject: calculator.Comparison(pk=947240)>,
 <DeserializedObject: calculator.Comparison(pk=947242)>,
 <DeserializedObject: calculator.Comparison(pk=947235)>,
 <DeserializedObject: calculator.Comparison(pk=947236)>,
 <DeserializedObject: calculator.Comparison(pk=947175)>,
 <DeserializedObject: calculator.Comparison(pk=947174)>,
 <DeserializedObject: calculator.Comparison(pk=947262)>,
 <DeserializedObject: calculator.Comparison(pk=947264)>,
 <DeserializedObject: calculator.Comparison(pk=947244)>,
 <DeserializedObject: calculator.Comparison(pk=947245)>,
 <DeserializedObject: calculator.Comparison(pk=947184)>,
 <DeserializedObject: calculator.Comparison(pk=947183)>,
 <DeserializedObject: calculator.Comparison(pk=946508)>,
 <DeserializedObject: calculator.Comparison(pk=946510)>,
 <DeserializedObject: calculator.Comparison(pk=946503)>,
 <DeserializedObject: calculator.Comparison(pk=946504)>,
 <DeserializedObject: calculator.Comparison(pk=946517)>,
 <DeserializedObject: calculator.Comparison(pk=947257)>,
 <DeserializedObject: calculator.Comparison(pk=947192)>,
 <DeserializedObject: calculator.Comparison(pk=946519)>,
 <DeserializedObject: calculator.Comparison(pk=946512)>,
 <DeserializedObject: calculator.Comparison(pk=946513)>,
 <DeserializedObject: calculator.Comparison(pk=947258)>,
 <DeserializedObject: calculator.Comparison(pk=947023)>,
 <DeserializedObject: calculator.Comparison(pk=947025)>,
 <DeserializedObject: calculator.Comparison(pk=947032)>,
 <DeserializedObject: calculator.Comparison(pk=947034)>,
 <DeserializedObject: calculator.Comparison(pk=947041)>,
 <DeserializedObject: calculator.Comparison(pk=947201)>,
 <DeserializedObject: calculator.Comparison(pk=947260)>,
 <DeserializedObject: calculator.Comparison(pk=946535)>,
 <DeserializedObject: calculator.Comparison(pk=946537)>,
 <DeserializedObject: calculator.Comparison(pk=946530)>,
 <DeserializedObject: calculator.Comparison(pk=946531)>,
 <DeserializedObject: calculator.Comparison(pk=947210)>,
 <DeserializedObject: calculator.Comparison(pk=947005)>,
 <DeserializedObject: calculator.Comparison(pk=946544)>,
 <DeserializedObject: calculator.Comparison(pk=946546)>,
 <DeserializedObject: calculator.Comparison(pk=946539)>,
 <DeserializedObject: calculator.Comparison(pk=946540)>,
 <DeserializedObject: calculator.Comparison(pk=946553)>,
 <DeserializedObject: calculator.Comparison(pk=947218)>,
 <DeserializedObject: calculator.Comparison(pk=947229)>,
 <DeserializedObject: calculator.Comparison(pk=946555)>,
 <DeserializedObject: calculator.Comparison(pk=946548)>,
 <DeserializedObject: calculator.Comparison(pk=946549)>,
 <DeserializedObject: calculator.Comparison(pk=946562)>,
 <DeserializedObject: calculator.Comparison(pk=947228)>,
 <DeserializedObject: calculator.Comparison(pk=947007)>,
 <DeserializedObject: calculator.Comparison(pk=946564)>,
 <DeserializedObject: calculator.Comparison(pk=946557)>,
 <DeserializedObject: calculator.Comparison(pk=946558)>,
 <DeserializedObject: calculator.Comparison(pk=946571)>,
 <DeserializedObject: calculator.Comparison(pk=947237)>,
 <DeserializedObject: calculator.Comparison(pk=947014)>,
 <DeserializedObject: calculator.Comparison(pk=946573)>,
 <DeserializedObject: calculator.Comparison(pk=946566)>,
 <DeserializedObject: calculator.Comparison(pk=946567)>,
 <DeserializedObject: calculator.Comparison(pk=946580)>,
 <DeserializedObject: calculator.Comparison(pk=947246)>,
 <DeserializedObject: calculator.Comparison(pk=947016)>,
 <DeserializedObject: calculator.Comparison(pk=946582)>,
 <DeserializedObject: calculator.Comparison(pk=946575)>,
 <DeserializedObject: calculator.Comparison(pk=946576)>,
 <DeserializedObject: calculator.Comparison(pk=946589)>,
 <DeserializedObject: calculator.Comparison(pk=946505)>,
 <DeserializedObject: calculator.Comparison(pk=946515)>,
 <DeserializedObject: calculator.Comparison(pk=946591)>,
 <DeserializedObject: calculator.Comparison(pk=946584)>,
 <DeserializedObject: calculator.Comparison(pk=946585)>,
 <DeserializedObject: calculator.Comparison(pk=946598)>,
 <DeserializedObject: calculator.Comparison(pk=946514)>,
 <DeserializedObject: calculator.Comparison(pk=947022)>,
 <DeserializedObject: calculator.Comparison(pk=946600)>,
 <DeserializedObject: calculator.Comparison(pk=946593)>,
 <DeserializedObject: calculator.Comparison(pk=946594)>,
 <DeserializedObject: calculator.Comparison(pk=946607)>,
 <DeserializedObject: calculator.Comparison(pk=946523)>,
 <DeserializedObject: calculator.Comparison(pk=947043)>,
 <DeserializedObject: calculator.Comparison(pk=946609)>,
 <DeserializedObject: calculator.Comparison(pk=946602)>,
 <DeserializedObject: calculator.Comparison(pk=946603)>,
 <DeserializedObject: calculator.Comparison(pk=946616)>,
 <DeserializedObject: calculator.Comparison(pk=946532)>,
 <DeserializedObject: calculator.Comparison(pk=947049)>,
 <DeserializedObject: calculator.Comparison(pk=946618)>,
 <DeserializedObject: calculator.Comparison(pk=946611)>,
 <DeserializedObject: calculator.Comparison(pk=946612)>,
 <DeserializedObject: calculator.Comparison(pk=946625)>,
 <DeserializedObject: calculator.Comparison(pk=946541)>,
 <DeserializedObject: calculator.Comparison(pk=946551)>,
 <DeserializedObject: calculator.Comparison(pk=946627)>,
 <DeserializedObject: calculator.Comparison(pk=946620)>,
 <DeserializedObject: calculator.Comparison(pk=946621)>,
 <DeserializedObject: calculator.Comparison(pk=946550)>,
 <DeserializedObject: calculator.Comparison(pk=946560)>,
 <DeserializedObject: calculator.Comparison(pk=946634)>,
 <DeserializedObject: calculator.Comparison(pk=946636)>,
 <DeserializedObject: calculator.Comparison(pk=946629)>,
 <DeserializedObject: calculator.Comparison(pk=946630)>,
 <DeserializedObject: calculator.Comparison(pk=946643)>,
 <DeserializedObject: calculator.Comparison(pk=946559)>,
 <DeserializedObject: calculator.Comparison(pk=946569)>,
 <DeserializedObject: calculator.Comparison(pk=946645)>,
 <DeserializedObject: calculator.Comparison(pk=946638)>,
 <DeserializedObject: calculator.Comparison(pk=946639)>,
 <DeserializedObject: calculator.Comparison(pk=946652)>,
 <DeserializedObject: calculator.Comparison(pk=946568)>,
 <DeserializedObject: calculator.Comparison(pk=946578)>,
 <DeserializedObject: calculator.Comparison(pk=946654)>,
 <DeserializedObject: calculator.Comparison(pk=946647)>,
 <DeserializedObject: calculator.Comparison(pk=946648)>,
 <DeserializedObject: calculator.Comparison(pk=946661)>,
 <DeserializedObject: calculator.Comparison(pk=946577)>,
 <DeserializedObject: calculator.Comparison(pk=946587)>,
 <DeserializedObject: calculator.Comparison(pk=946663)>,
 <DeserializedObject: calculator.Comparison(pk=946656)>,
 <DeserializedObject: calculator.Comparison(pk=946657)>,
 <DeserializedObject: calculator.Comparison(pk=946670)>,
 <DeserializedObject: calculator.Comparison(pk=946586)>,
 <DeserializedObject: calculator.Comparison(pk=946596)>,
 <DeserializedObject: calculator.Comparison(pk=946672)>,
 <DeserializedObject: calculator.Comparison(pk=946665)>,
 <DeserializedObject: calculator.Comparison(pk=946666)>,
 <DeserializedObject: calculator.Comparison(pk=946679)>,
 <DeserializedObject: calculator.Comparison(pk=946595)>,
 <DeserializedObject: calculator.Comparison(pk=946605)>,
 <DeserializedObject: calculator.Comparison(pk=946681)>,
 <DeserializedObject: calculator.Comparison(pk=946674)>,
 <DeserializedObject: calculator.Comparison(pk=946675)>,
 <DeserializedObject: calculator.Comparison(pk=946688)>,
 <DeserializedObject: calculator.Comparison(pk=946604)>,
 <DeserializedObject: calculator.Comparison(pk=946614)>,
 <DeserializedObject: calculator.Comparison(pk=946690)>,
 <DeserializedObject: calculator.Comparison(pk=946683)>,
 <DeserializedObject: calculator.Comparison(pk=946684)>,
 <DeserializedObject: calculator.Comparison(pk=946697)>,
 <DeserializedObject: calculator.Comparison(pk=946613)>,
 <DeserializedObject: calculator.Comparison(pk=946623)>,
 <DeserializedObject: calculator.Comparison(pk=946699)>,
 <DeserializedObject: calculator.Comparison(pk=946692)>,
 <DeserializedObject: calculator.Comparison(pk=946693)>,
 <DeserializedObject: calculator.Comparison(pk=946706)>,
 <DeserializedObject: calculator.Comparison(pk=946622)>,
 <DeserializedObject: calculator.Comparison(pk=947050)>,
 <DeserializedObject: calculator.Comparison(pk=946708)>,
 <DeserializedObject: calculator.Comparison(pk=946701)>,
 <DeserializedObject: calculator.Comparison(pk=946702)>,
 <DeserializedObject: calculator.Comparison(pk=946715)>,
 <DeserializedObject: calculator.Comparison(pk=946631)>,
 <DeserializedObject: calculator.Comparison(pk=946641)>,
 <DeserializedObject: calculator.Comparison(pk=946717)>,
 <DeserializedObject: calculator.Comparison(pk=946710)>,
 <DeserializedObject: calculator.Comparison(pk=946711)>,
 <DeserializedObject: calculator.Comparison(pk=946724)>,
 <DeserializedObject: calculator.Comparison(pk=946640)>,
 <DeserializedObject: calculator.Comparison(pk=946650)>,
 <DeserializedObject: calculator.Comparison(pk=946726)>,
 <DeserializedObject: calculator.Comparison(pk=946719)>,
 <DeserializedObject: calculator.Comparison(pk=946720)>,
 <DeserializedObject: calculator.Comparison(pk=946733)>,
 <DeserializedObject: calculator.Comparison(pk=946649)>,
 <DeserializedObject: calculator.Comparison(pk=946659)>,
 <DeserializedObject: calculator.Comparison(pk=946735)>,
 <DeserializedObject: calculator.Comparison(pk=946728)>,
 <DeserializedObject: calculator.Comparison(pk=946729)>,
 <DeserializedObject: calculator.Comparison(pk=946742)>,
 <DeserializedObject: calculator.Comparison(pk=946658)>,
 <DeserializedObject: calculator.Comparison(pk=946668)>,
 <DeserializedObject: calculator.Comparison(pk=946744)>,
 <DeserializedObject: calculator.Comparison(pk=946737)>,
 <DeserializedObject: calculator.Comparison(pk=946738)>,
 <DeserializedObject: calculator.Comparison(pk=946751)>,
 <DeserializedObject: calculator.Comparison(pk=946667)>,
 <DeserializedObject: calculator.Comparison(pk=946677)>,
 <DeserializedObject: calculator.Comparison(pk=946753)>,
 <DeserializedObject: calculator.Comparison(pk=946746)>,
 <DeserializedObject: calculator.Comparison(pk=946747)>,
 <DeserializedObject: calculator.Comparison(pk=946760)>,
 <DeserializedObject: calculator.Comparison(pk=946676)>,
 <DeserializedObject: calculator.Comparison(pk=946686)>,
 <DeserializedObject: calculator.Comparison(pk=946762)>,
 <DeserializedObject: calculator.Comparison(pk=946755)>,
 <DeserializedObject: calculator.Comparison(pk=946756)>,
 <DeserializedObject: calculator.Comparison(pk=946770)>,
 <DeserializedObject: calculator.Comparison(pk=946771)>,
 <DeserializedObject: calculator.Comparison(pk=946685)>,
 <DeserializedObject: calculator.Comparison(pk=946766)>,
 <DeserializedObject: calculator.Comparison(pk=946764)>,
 <DeserializedObject: calculator.Comparison(pk=946695)>,
 <DeserializedObject: calculator.Comparison(pk=946765)>,
 <DeserializedObject: calculator.Comparison(pk=947052)>,
 <DeserializedObject: calculator.Comparison(pk=946774)>,
 <DeserializedObject: calculator.Comparison(pk=946775)>,
 <DeserializedObject: calculator.Comparison(pk=946694)>,
 <DeserializedObject: calculator.Comparison(pk=946704)>,
 <DeserializedObject: calculator.Comparison(pk=946780)>,
 <DeserializedObject: calculator.Comparison(pk=947058)>,
 <DeserializedObject: calculator.Comparison(pk=946783)>,
 <DeserializedObject: calculator.Comparison(pk=946784)>,
 <DeserializedObject: calculator.Comparison(pk=946703)>,
 <DeserializedObject: calculator.Comparison(pk=946713)>,
 <DeserializedObject: calculator.Comparison(pk=946789)>,
 <DeserializedObject: calculator.Comparison(pk=947059)>,
 <DeserializedObject: calculator.Comparison(pk=946792)>,
 <DeserializedObject: calculator.Comparison(pk=946793)>,
 <DeserializedObject: calculator.Comparison(pk=946712)>,
 <DeserializedObject: calculator.Comparison(pk=946722)>,
 <DeserializedObject: calculator.Comparison(pk=946798)>,
 <DeserializedObject: calculator.Comparison(pk=946803)>,
 <DeserializedObject: calculator.Comparison(pk=946807)>,
 <DeserializedObject: calculator.Comparison(pk=946800)>,
 <DeserializedObject: calculator.Comparison(pk=946801)>,
 <DeserializedObject: calculator.Comparison(pk=946721)>,
 <DeserializedObject: calculator.Comparison(pk=946731)>,
 <DeserializedObject: calculator.Comparison(pk=946730)>,
 <DeserializedObject: calculator.Comparison(pk=946740)>,
 <DeserializedObject: calculator.Comparison(pk=946813)>,
 <DeserializedObject: calculator.Comparison(pk=947251)>,
 <DeserializedObject: calculator.Comparison(pk=946808)>,
 <DeserializedObject: calculator.Comparison(pk=946809)>,
 <DeserializedObject: calculator.Comparison(pk=946739)>,
 <DeserializedObject: calculator.Comparison(pk=946749)>,
 <DeserializedObject: calculator.Comparison(pk=947270)>,
 <DeserializedObject: calculator.Comparison(pk=947272)>,
 <DeserializedObject: calculator.Comparison(pk=947266)>,
 <DeserializedObject: calculator.Comparison(pk=947268)>,
 <DeserializedObject: calculator.Comparison(pk=946748)>,
 <DeserializedObject: calculator.Comparison(pk=946758)>,
 <DeserializedObject: calculator.Comparison(pk=947280)>,
 <DeserializedObject: calculator.Comparison(pk=947282)>,
 <DeserializedObject: calculator.Comparison(pk=947275)>,
 <DeserializedObject: calculator.Comparison(pk=947277)>,
 <DeserializedObject: calculator.Comparison(pk=946757)>,
 <DeserializedObject: calculator.Comparison(pk=946768)>,
 <DeserializedObject: calculator.Comparison(pk=947289)>,
 <DeserializedObject: calculator.Comparison(pk=947291)>,
 <DeserializedObject: calculator.Comparison(pk=947284)>,
 <DeserializedObject: calculator.Comparison(pk=947285)>,
 <DeserializedObject: calculator.Comparison(pk=946779)>,
 <DeserializedObject: calculator.Comparison(pk=946776)>,
 <DeserializedObject: calculator.Comparison(pk=947297)>,
 <DeserializedObject: calculator.Comparison(pk=947299)>,
 <DeserializedObject: calculator.Comparison(pk=947293)>,
 <DeserializedObject: calculator.Comparison(pk=947294)>,
 <DeserializedObject: calculator.Comparison(pk=946788)>,
 <DeserializedObject: calculator.Comparison(pk=946785)>,
 <DeserializedObject: calculator.Comparison(pk=947306)>,
 <DeserializedObject: calculator.Comparison(pk=947308)>,
 <DeserializedObject: calculator.Comparison(pk=947302)>,
 <DeserializedObject: calculator.Comparison(pk=947304)>,
 <DeserializedObject: calculator.Comparison(pk=946797)>,
 <DeserializedObject: calculator.Comparison(pk=946794)>,
 <DeserializedObject: calculator.Comparison(pk=947316)>,
 <DeserializedObject: calculator.Comparison(pk=947318)>,
 <DeserializedObject: calculator.Comparison(pk=947311)>,
 <DeserializedObject: calculator.Comparison(pk=947312)>,
 <DeserializedObject: calculator.Comparison(pk=947313)>,
 <DeserializedObject: calculator.Comparison(pk=946805)>,
 <DeserializedObject: calculator.Comparison(pk=946802)>,
 <DeserializedObject: calculator.Comparison(pk=947325)>,
 <DeserializedObject: calculator.Comparison(pk=947327)>,
 <DeserializedObject: calculator.Comparison(pk=947320)>,
 <DeserializedObject: calculator.Comparison(pk=947321)>,
 <DeserializedObject: calculator.Comparison(pk=947061)>,
 <DeserializedObject: calculator.Comparison(pk=947250)>,
 <DeserializedObject: calculator.Comparison(pk=947333)>,
 <DeserializedObject: calculator.Comparison(pk=947335)>,
 <DeserializedObject: calculator.Comparison(pk=947329)>,
 <DeserializedObject: calculator.Comparison(pk=947331)>,
 <DeserializedObject: calculator.Comparison(pk=947068)>,
 <DeserializedObject: calculator.Comparison(pk=947267)>,
 <DeserializedObject: calculator.Comparison(pk=947342)>,
 <DeserializedObject: calculator.Comparison(pk=947344)>,
 <DeserializedObject: calculator.Comparison(pk=947338)>,
 <DeserializedObject: calculator.Comparison(pk=947340)>,
 <DeserializedObject: calculator.Comparison(pk=947070)>,
 <DeserializedObject: calculator.Comparison(pk=947276)>,
 <DeserializedObject: calculator.Comparison(pk=947351)>,
 <DeserializedObject: calculator.Comparison(pk=947353)>,
 <DeserializedObject: calculator.Comparison(pk=947347)>,
 <DeserializedObject: calculator.Comparison(pk=947349)>,
 <DeserializedObject: calculator.Comparison(pk=947077)>,
 <DeserializedObject: calculator.Comparison(pk=947286)>,
 <DeserializedObject: calculator.Comparison(pk=947360)>,
 <DeserializedObject: calculator.Comparison(pk=947362)>,
 <DeserializedObject: calculator.Comparison(pk=947356)>,
 <DeserializedObject: calculator.Comparison(pk=947358)>,
 <DeserializedObject: calculator.Comparison(pk=947079)>,
 <DeserializedObject: calculator.Comparison(pk=947295)>,
 <DeserializedObject: calculator.Comparison(pk=947370)>,
 <DeserializedObject: calculator.Comparison(pk=947372)>,
 <DeserializedObject: calculator.Comparison(pk=947365)>,
 <DeserializedObject: calculator.Comparison(pk=947366)>,
 <DeserializedObject: calculator.Comparison(pk=947086)>,
 <DeserializedObject: calculator.Comparison(pk=947303)>,
 <DeserializedObject: calculator.Comparison(pk=947378)>,
 <DeserializedObject: calculator.Comparison(pk=947380)>,
 <DeserializedObject: calculator.Comparison(pk=947374)>,
 <DeserializedObject: calculator.Comparison(pk=947376)>,
 <DeserializedObject: calculator.Comparison(pk=947088)>,
 <DeserializedObject: calculator.Comparison(pk=947095)>,
 <DeserializedObject: calculator.Comparison(pk=947387)>,
 <DeserializedObject: calculator.Comparison(pk=947389)>,
 <DeserializedObject: calculator.Comparison(pk=947383)>,
 <DeserializedObject: calculator.Comparison(pk=947385)>,
 <DeserializedObject: calculator.Comparison(pk=947322)>,
 <DeserializedObject: calculator.Comparison(pk=947097)>,
 <DeserializedObject: calculator.Comparison(pk=947397)>,
 <DeserializedObject: calculator.Comparison(pk=947399)>,
 <DeserializedObject: calculator.Comparison(pk=947392)>,
 <DeserializedObject: calculator.Comparison(pk=947394)>,
 <DeserializedObject: calculator.Comparison(pk=947330)>,
 <DeserializedObject: calculator.Comparison(pk=947104)>,
 <DeserializedObject: calculator.Comparison(pk=947405)>,
 <DeserializedObject: calculator.Comparison(pk=947407)>,
 <DeserializedObject: calculator.Comparison(pk=947401)>,
 <DeserializedObject: calculator.Comparison(pk=947403)>,
 <DeserializedObject: calculator.Comparison(pk=947339)>,
 <DeserializedObject: calculator.Comparison(pk=947106)>,
 <DeserializedObject: calculator.Comparison(pk=947414)>,
 <DeserializedObject: calculator.Comparison(pk=947416)>,
 <DeserializedObject: calculator.Comparison(pk=947410)>,
 <DeserializedObject: calculator.Comparison(pk=947412)>,
 <DeserializedObject: calculator.Comparison(pk=947348)>,
 <DeserializedObject: calculator.Comparison(pk=947113)>,
 <DeserializedObject: calculator.Comparison(pk=947423)>,
 <DeserializedObject: calculator.Comparison(pk=947425)>,
 <DeserializedObject: calculator.Comparison(pk=947419)>,
 <DeserializedObject: calculator.Comparison(pk=947421)>,
 <DeserializedObject: calculator.Comparison(pk=947357)>,
 <DeserializedObject: calculator.Comparison(pk=947115)>,
 <DeserializedObject: calculator.Comparison(pk=947433)>,
 <DeserializedObject: calculator.Comparison(pk=947435)>,
 <DeserializedObject: calculator.Comparison(pk=947428)>,
 <DeserializedObject: calculator.Comparison(pk=947429)>,
 <DeserializedObject: calculator.Comparison(pk=947367)>,
 <DeserializedObject: calculator.Comparison(pk=947122)>,
 <DeserializedObject: calculator.Comparison(pk=947441)>,
 <DeserializedObject: calculator.Comparison(pk=947443)>,
 <DeserializedObject: calculator.Comparison(pk=947437)>,
 <DeserializedObject: calculator.Comparison(pk=947439)>,
 <DeserializedObject: calculator.Comparison(pk=947375)>,
 <DeserializedObject: calculator.Comparison(pk=947124)>,
 <DeserializedObject: calculator.Comparison(pk=947450)>,
 <DeserializedObject: calculator.Comparison(pk=947452)>,
 <DeserializedObject: calculator.Comparison(pk=947446)>,
 <DeserializedObject: calculator.Comparison(pk=947448)>,
 <DeserializedObject: calculator.Comparison(pk=947384)>,
 <DeserializedObject: calculator.Comparison(pk=947131)>,
 <DeserializedObject: calculator.Comparison(pk=947460)>,
 <DeserializedObject: calculator.Comparison(pk=947462)>,
 <DeserializedObject: calculator.Comparison(pk=947455)>,
 <DeserializedObject: calculator.Comparison(pk=947456)>,
 <DeserializedObject: calculator.Comparison(pk=947393)>,
 <DeserializedObject: calculator.Comparison(pk=947133)>,
 <DeserializedObject: calculator.Comparison(pk=947468)>,
 <DeserializedObject: calculator.Comparison(pk=947470)>,
 <DeserializedObject: calculator.Comparison(pk=947464)>,
 <DeserializedObject: calculator.Comparison(pk=947466)>,
 <DeserializedObject: calculator.Comparison(pk=947402)>,
 <DeserializedObject: calculator.Comparison(pk=947139)>,
 <DeserializedObject: calculator.Comparison(pk=947477)>,
 <DeserializedObject: calculator.Comparison(pk=947479)>,
 <DeserializedObject: calculator.Comparison(pk=947473)>,
 <DeserializedObject: calculator.Comparison(pk=947475)>,
 <DeserializedObject: calculator.Comparison(pk=947411)>,
 <DeserializedObject: calculator.Comparison(pk=947488)>,
 <DeserializedObject: calculator.Comparison(pk=947482)>,
 <DeserializedObject: calculator.Comparison(pk=947484)>,
 <DeserializedObject: calculator.Comparison(pk=947167)>,
 <DeserializedObject: calculator.Comparison(pk=947486)>,
 <DeserializedObject: calculator.Comparison(pk=947795)>,
 <DeserializedObject: calculator.Comparison(pk=947789)>,
 <DeserializedObject: calculator.Comparison(pk=947790)>,
 <DeserializedObject: calculator.Comparison(pk=947169)>,
 <DeserializedObject: calculator.Comparison(pk=947793)>,
 <DeserializedObject: calculator.Comparison(pk=947491)>,
 <DeserializedObject: calculator.Comparison(pk=947804)>,
 <DeserializedObject: calculator.Comparison(pk=947798)>,
 <DeserializedObject: calculator.Comparison(pk=947799)>,
 <DeserializedObject: calculator.Comparison(pk=947176)>,
 <DeserializedObject: calculator.Comparison(pk=947802)>,
 <DeserializedObject: calculator.Comparison(pk=947797)>,
 <DeserializedObject: calculator.Comparison(pk=947813)>,
 <DeserializedObject: calculator.Comparison(pk=947807)>,
 <DeserializedObject: calculator.Comparison(pk=947808)>,
 <DeserializedObject: calculator.Comparison(pk=947178)>,
 <DeserializedObject: calculator.Comparison(pk=947811)>,
 <DeserializedObject: calculator.Comparison(pk=947806)>,
 <DeserializedObject: calculator.Comparison(pk=947822)>,
 <DeserializedObject: calculator.Comparison(pk=947816)>,
 <DeserializedObject: calculator.Comparison(pk=947817)>,
 <DeserializedObject: calculator.Comparison(pk=947185)>,
 <DeserializedObject: calculator.Comparison(pk=947820)>,
 <DeserializedObject: calculator.Comparison(pk=947815)>,
 <DeserializedObject: calculator.Comparison(pk=947831)>,
 <DeserializedObject: calculator.Comparison(pk=947825)>,
 <DeserializedObject: calculator.Comparison(pk=947826)>,
 <DeserializedObject: calculator.Comparison(pk=947187)>,
 <DeserializedObject: calculator.Comparison(pk=947829)>,
 <DeserializedObject: calculator.Comparison(pk=947824)>,
 <DeserializedObject: calculator.Comparison(pk=947840)>,
 <DeserializedObject: calculator.Comparison(pk=947834)>,
 <DeserializedObject: calculator.Comparison(pk=947835)>,
 <DeserializedObject: calculator.Comparison(pk=947193)>,
 <DeserializedObject: calculator.Comparison(pk=947838)>,
 <DeserializedObject: calculator.Comparison(pk=947833)>,
 <DeserializedObject: calculator.Comparison(pk=947848)>,
 <DeserializedObject: calculator.Comparison(pk=947842)>,
 <DeserializedObject: calculator.Comparison(pk=947843)>,
 <DeserializedObject: calculator.Comparison(pk=947194)>,
 <DeserializedObject: calculator.Comparison(pk=947846)>,
 <DeserializedObject: calculator.Comparison(pk=947841)>,
 <DeserializedObject: calculator.Comparison(pk=947857)>,
 <DeserializedObject: calculator.Comparison(pk=947858)>,
 <DeserializedObject: calculator.Comparison(pk=947851)>,
 <DeserializedObject: calculator.Comparison(pk=947855)>,
 <DeserializedObject: calculator.Comparison(pk=947853)>,
 <DeserializedObject: calculator.Comparison(pk=947854)>,
 <DeserializedObject: calculator.Comparison(pk=947852)>,
 <DeserializedObject: calculator.Comparison(pk=947856)>,
 <DeserializedObject: calculator.Comparison(pk=947866)>,
 <DeserializedObject: calculator.Comparison(pk=947867)>,
 <DeserializedObject: calculator.Comparison(pk=947860)>,
 <DeserializedObject: calculator.Comparison(pk=947864)>,
 <DeserializedObject: calculator.Comparison(pk=947862)>,
 <DeserializedObject: calculator.Comparison(pk=947863)>,
 <DeserializedObject: calculator.Comparison(pk=947861)>,
 <DeserializedObject: calculator.Comparison(pk=947865)>,
 <DeserializedObject: calculator.Comparison(pk=947875)>,
 <DeserializedObject: calculator.Comparison(pk=947876)>,
 <DeserializedObject: calculator.Comparison(pk=947869)>,
 <DeserializedObject: calculator.Comparison(pk=947873)>,
 <DeserializedObject: calculator.Comparison(pk=947871)>,
 <DeserializedObject: calculator.Comparison(pk=947872)>,
 <DeserializedObject: calculator.Comparison(pk=947870)>,
 <DeserializedObject: calculator.Comparison(pk=947874)>,
 <DeserializedObject: calculator.Comparison(pk=947884)>,
 <DeserializedObject: calculator.Comparison(pk=947885)>,
 <DeserializedObject: calculator.Comparison(pk=947878)>,
 <DeserializedObject: calculator.Comparison(pk=947882)>,
 <DeserializedObject: calculator.Comparison(pk=947880)>,
 <DeserializedObject: calculator.Comparison(pk=947881)>,
 <DeserializedObject: calculator.Comparison(pk=947879)>,
 <DeserializedObject: calculator.Comparison(pk=947883)>,
 <DeserializedObject: calculator.Comparison(pk=947893)>,
 <DeserializedObject: calculator.Comparison(pk=947894)>,
 <DeserializedObject: calculator.Comparison(pk=947887)>,
 <DeserializedObject: calculator.Comparison(pk=947891)>,
 <DeserializedObject: calculator.Comparison(pk=947889)>,
 <DeserializedObject: calculator.Comparison(pk=947890)>,
 <DeserializedObject: calculator.Comparison(pk=947888)>,
 <DeserializedObject: calculator.Comparison(pk=947892)>,
 <DeserializedObject: calculator.Comparison(pk=947877)>,
 <DeserializedObject: calculator.Comparison(pk=947886)>,
 <DeserializedObject: calculator.Comparison(pk=947895)>,
 <DeserializedObject: calculator.Comparison(pk=947849)>,
 <DeserializedObject: calculator.Comparison(pk=947212)>,
 <DeserializedObject: calculator.Comparison(pk=947850)>,
 <DeserializedObject: calculator.Comparison(pk=947859)>,
 <DeserializedObject: calculator.Comparison(pk=947868)>,
 <DeserializedObject: calculator.Comparison(pk=946879)>,
 <DeserializedObject: calculator.Comparison(pk=946830)>,
 <DeserializedObject: calculator.Comparison(pk=946839)>,
 <DeserializedObject: calculator.Comparison(pk=947214)>,
 <DeserializedObject: calculator.Comparison(pk=946863)>,
 <DeserializedObject: calculator.Comparison(pk=946887)>,
 <DeserializedObject: calculator.Comparison(pk=946949)>,
 <DeserializedObject: calculator.Comparison(pk=946901)>,
 <DeserializedObject: calculator.Comparison(pk=946909)>,
 <DeserializedObject: calculator.Comparison(pk=947220)>,
 <DeserializedObject: calculator.Comparison(pk=946933)>,
 <DeserializedObject: calculator.Comparison(pk=946957)>,
 <DeserializedObject: calculator.Comparison(pk=947027)>,
 <DeserializedObject: calculator.Comparison(pk=946973)>,
 <DeserializedObject: calculator.Comparison(pk=946981)>,
 <DeserializedObject: calculator.Comparison(pk=947222)>,
 <DeserializedObject: calculator.Comparison(pk=946999)>,
 <DeserializedObject: calculator.Comparison(pk=947009)>,
 <DeserializedObject: calculator.Comparison(pk=947099)>,
 <DeserializedObject: calculator.Comparison(pk=947045)>,
 <DeserializedObject: calculator.Comparison(pk=947054)>,
 <DeserializedObject: calculator.Comparison(pk=947224)>,
 <DeserializedObject: calculator.Comparison(pk=947081)>,
 <DeserializedObject: calculator.Comparison(pk=947108)>,
 <DeserializedObject: calculator.Comparison(pk=947180)>,
 <DeserializedObject: calculator.Comparison(pk=947126)>,
 <DeserializedObject: calculator.Comparison(pk=947135)>,
 <DeserializedObject: calculator.Comparison(pk=947230)>,
 <DeserializedObject: calculator.Comparison(pk=947162)>,
 <DeserializedObject: calculator.Comparison(pk=947189)>,
 <DeserializedObject: calculator.Comparison(pk=946511)>,
 <DeserializedObject: calculator.Comparison(pk=947207)>,
 <DeserializedObject: calculator.Comparison(pk=947216)>,
 <DeserializedObject: calculator.Comparison(pk=947232)>,
 <DeserializedObject: calculator.Comparison(pk=947243)>,
 <DeserializedObject: calculator.Comparison(pk=946520)>,
 <DeserializedObject: calculator.Comparison(pk=946592)>,
 <DeserializedObject: calculator.Comparison(pk=946538)>,
 <DeserializedObject: calculator.Comparison(pk=946547)>,
 <DeserializedObject: calculator.Comparison(pk=947238)>,
 <DeserializedObject: calculator.Comparison(pk=946574)>,
 <DeserializedObject: calculator.Comparison(pk=946601)>,
 <DeserializedObject: calculator.Comparison(pk=946673)>,
 <DeserializedObject: calculator.Comparison(pk=946619)>,
 <DeserializedObject: calculator.Comparison(pk=946628)>,
 <DeserializedObject: calculator.Comparison(pk=947239)>,
 <DeserializedObject: calculator.Comparison(pk=946655)>,
 <DeserializedObject: calculator.Comparison(pk=946682)>,
 <DeserializedObject: calculator.Comparison(pk=946754)>,
 <DeserializedObject: calculator.Comparison(pk=946763)>,
 <DeserializedObject: calculator.Comparison(pk=946736)>,
 <DeserializedObject: calculator.Comparison(pk=946700)>,
 <DeserializedObject: calculator.Comparison(pk=946709)>,
 <DeserializedObject: calculator.Comparison(pk=947241)>,
 <DeserializedObject: calculator.Comparison(pk=947283)>,
 <DeserializedObject: calculator.Comparison(pk=946782)>,
 <DeserializedObject: calculator.Comparison(pk=946791)>,
 <DeserializedObject: calculator.Comparison(pk=947247)>,
 <DeserializedObject: calculator.Comparison(pk=947265)>,
 <DeserializedObject: calculator.Comparison(pk=947292)>,
 <DeserializedObject: calculator.Comparison(pk=947364)>,
 <DeserializedObject: calculator.Comparison(pk=947310)>,
 <DeserializedObject: calculator.Comparison(pk=947319)>,
 <DeserializedObject: calculator.Comparison(pk=947248)>,
 <DeserializedObject: calculator.Comparison(pk=947346)>,
 <DeserializedObject: calculator.Comparison(pk=947373)>,
 <DeserializedObject: calculator.Comparison(pk=947391)>,
 <DeserializedObject: calculator.Comparison(pk=947263)>,
 <DeserializedObject: calculator.Comparison(pk=947427)>,
 <DeserializedObject: calculator.Comparison(pk=947400)>,
 <DeserializedObject: calculator.Comparison(pk=947823)>,
 <DeserializedObject: calculator.Comparison(pk=947472)>,
 <DeserializedObject: calculator.Comparison(pk=947481)>,
 <DeserializedObject: calculator.Comparison(pk=946506)>,
 <DeserializedObject: calculator.Comparison(pk=947805)>,
 <DeserializedObject: calculator.Comparison(pk=947832)>,
 <DeserializedObject: calculator.Comparison(pk=947903)>,
 <DeserializedObject: calculator.Comparison(pk=947896)>,
 <DeserializedObject: calculator.Comparison(pk=947898)>,
 <DeserializedObject: calculator.Comparison(pk=947899)>,
 <DeserializedObject: calculator.Comparison(pk=947900)>,
 <DeserializedObject: calculator.Comparison(pk=947901)>,
 <DeserializedObject: calculator.Comparison(pk=947902)>,
 <DeserializedObject: calculator.Comparison(pk=946507)>,
 <DeserializedObject: calculator.Comparison(pk=947911)>,
 <DeserializedObject: calculator.Comparison(pk=947912)>,
 <DeserializedObject: calculator.Comparison(pk=947905)>,
 <DeserializedObject: calculator.Comparison(pk=947909)>,
 <DeserializedObject: calculator.Comparison(pk=947906)>,
 <DeserializedObject: calculator.Comparison(pk=947907)>,
 <DeserializedObject: calculator.Comparison(pk=947908)>,
 <DeserializedObject: calculator.Comparison(pk=947910)>,
 <DeserializedObject: calculator.Comparison(pk=947920)>,
 <DeserializedObject: calculator.Comparison(pk=947921)>,
 <DeserializedObject: calculator.Comparison(pk=947914)>,
 <DeserializedObject: calculator.Comparison(pk=947918)>,
 <DeserializedObject: calculator.Comparison(pk=947915)>,
 <DeserializedObject: calculator.Comparison(pk=947916)>,
 <DeserializedObject: calculator.Comparison(pk=947917)>,
 <DeserializedObject: calculator.Comparison(pk=947919)>,
 <DeserializedObject: calculator.Comparison(pk=947929)>,
 <DeserializedObject: calculator.Comparison(pk=947930)>,
 <DeserializedObject: calculator.Comparison(pk=947923)>,
 <DeserializedObject: calculator.Comparison(pk=947927)>,
 <DeserializedObject: calculator.Comparison(pk=947924)>,
 <DeserializedObject: calculator.Comparison(pk=947925)>,
 <DeserializedObject: calculator.Comparison(pk=947926)>,
 <DeserializedObject: calculator.Comparison(pk=947928)>,
 <DeserializedObject: calculator.Comparison(pk=947938)>,
 <DeserializedObject: calculator.Comparison(pk=947939)>,
 <DeserializedObject: calculator.Comparison(pk=947932)>,
 <DeserializedObject: calculator.Comparison(pk=947936)>,
 <DeserializedObject: calculator.Comparison(pk=947933)>,
 <DeserializedObject: calculator.Comparison(pk=947934)>,
 <DeserializedObject: calculator.Comparison(pk=947935)>,
 <DeserializedObject: calculator.Comparison(pk=947937)>,
 <DeserializedObject: calculator.Comparison(pk=947904)>,
 <DeserializedObject: calculator.Comparison(pk=947913)>,
 <DeserializedObject: calculator.Comparison(pk=947922)>,
 <DeserializedObject: calculator.Comparison(pk=947941)>,
 <DeserializedObject: calculator.Comparison(pk=947942)>,
 <DeserializedObject: calculator.Comparison(pk=947943)>,
 <DeserializedObject: calculator.Comparison(pk=947944)>,
 <DeserializedObject: calculator.Comparison(pk=947897)>,
 <DeserializedObject: calculator.Comparison(pk=947117)>,
 <DeserializedObject: calculator.Comparison(pk=947931)>,
 <DeserializedObject: calculator.Comparison(pk=946965)>,
 <DeserializedObject: calculator.Comparison(pk=946895)>,
 <DeserializedObject: calculator.Comparison(pk=947940)>,
 <DeserializedObject: calculator.Comparison(pk=946525)>,
 <DeserializedObject: calculator.Comparison(pk=946526)>,
 <DeserializedObject: calculator.Comparison(pk=946527)>,
 <DeserializedObject: calculator.Comparison(pk=946536)>,
 <DeserializedObject: calculator.Comparison(pk=946773)>,
 <DeserializedObject: calculator.Comparison(pk=947382)>,
 <DeserializedObject: calculator.Comparison(pk=946610)>,
 <DeserializedObject: calculator.Comparison(pk=946542)>,
 <DeserializedObject: calculator.Comparison(pk=946543)>,
 <DeserializedObject: calculator.Comparison(pk=946545)>,
 <DeserializedObject: calculator.Comparison(pk=946552)>,
 <DeserializedObject: calculator.Comparison(pk=946521)>,
 <DeserializedObject: calculator.Comparison(pk=946561)>,
 <DeserializedObject: calculator.Comparison(pk=946563)>,
 <DeserializedObject: calculator.Comparison(pk=946570)>,
 <DeserializedObject: calculator.Comparison(pk=946572)>,
 <DeserializedObject: calculator.Comparison(pk=946579)>,
 <DeserializedObject: calculator.Comparison(pk=946581)>,
 <DeserializedObject: calculator.Comparison(pk=946597)>,
 <DeserializedObject: calculator.Comparison(pk=946599)>,
 <DeserializedObject: calculator.Comparison(pk=946606)>,
 <DeserializedObject: calculator.Comparison(pk=946608)>,
 <DeserializedObject: calculator.Comparison(pk=946615)>,
 <DeserializedObject: calculator.Comparison(pk=946617)>,
 <DeserializedObject: calculator.Comparison(pk=946632)>,
 <DeserializedObject: calculator.Comparison(pk=946633)>,
 <DeserializedObject: calculator.Comparison(pk=946635)>,
 <DeserializedObject: calculator.Comparison(pk=946642)>,
 <DeserializedObject: calculator.Comparison(pk=946644)>,
 <DeserializedObject: calculator.Comparison(pk=946651)>,
 <DeserializedObject: calculator.Comparison(pk=946662)>,
 <DeserializedObject: calculator.Comparison(pk=946669)>,
 <DeserializedObject: calculator.Comparison(pk=946671)>,
 ...]

Interactive stuff

DB Queries


In [9]:
# To get all the contours in db
all_contours = models.Contour.objects.all()

# Filter only contours shorter than 8:
contours1 = models.Contour.objects.filter(size__lt=8)

# Filter contours from Chorales
contours2 = models.Contour.objects.filter(phrase__piece__collection__name='Chorales')

# Filter contours from pieces in minor mode
contours3 = models.Contour.objects.filter(phrase__piece__mode='m')

# Single filter concatenation. Pieces in C Minor
contours4 = models.Contour.objects.filter(phrase__piece__key='C', phrase__piece__mode='m')

# Advanced filter concatenation. Pieces in C Minor or G Major
query = [
    Q(phrase__piece__mode='M') &
    Q(phrase__piece__key='G') |
    Q(phrase__piece__mode='m') &
    Q(phrase__piece__key='C')
]
contours5 = models.Contour.objects.filter(*query)

Contour comparisons with Comparison class

Compare contour objects pair


In [10]:
# Compare two single contour objects
# Instantiate the Comparison object
cmp1 = lib.analysis.Comparison(C([0, 1, 2, 3]), C([0, 2, 1, 3]))

# Choose an algorithm and compare
cmp1.compare('OSC')


Out[10]:
1.0

In [11]:
# Show all available similarity algorithms
cmp1.algorithms()


        OSC	Oscillation Spectrum correlation Similarity
        AED	Adjacent edit distance Similarity
        CMS	Rigid matrix Similarity (only for contours with equal size)
        NGP	N-gram Gestalt Pattern Matching Similarity
        AGP	Adjacent Gestalt Pattern Matching Similarity
        

Compare a contour object list


In [12]:
# Compare a given list of contours
# Instantiate the generalComparison object
gc1 = lib.analysis.GeneralComparison([C([0, 1, 2]), C([4, 1, 2, 3]), C([5, 0, 1, 4, 2, 3])])

In [13]:
# Get the main contour features
gc1.features_table()


Out[13]:
Direction Oscillation Diversity
< 0 1 2 > 1.000000 0.00 1.00
< 4 1 2 3 > 0.500000 0.50 1.25
< 5 0 1 4 2 3 > 0.533333 0.75 1.00

In [14]:
# Get the comparison similarity map base on a given algorithm
gc1.similarity_map('AGP')


Out[14]:
< 0 1 2 > < 4 1 2 3 > < 5 0 1 4 2 3 >
< 0 1 2 > 1.000000 0.80 0.571429
< 4 1 2 3 > 0.800000 1.00 0.750000
< 5 0 1 4 2 3 > 0.571429 0.75 1.000000

In [15]:
# Get the comparison similarity as a pandas Series
gc1_series = gc1.similarity_series()
gc1_series


Out[15]:
0    0.800000
1    0.571429
2    0.750000
dtype: float64

In [16]:
# Get statistics data from the similarity series
gc1_series.describe()


Out[16]:
count    3.000000
mean     0.707143
std      0.120161
min      0.571429
25%      0.660714
50%      0.750000
75%      0.775000
max      0.800000
dtype: float64

Compare contours of a collection of pieces


In [17]:
# Instantiate the CollectionComparison object with a glob type argument
cc1 = lib.analysis.CollectionComparison('./corpora/folk/brasil/500 Cancoes Brasileiras/*.xml')
# Retrieve the music info
cc1.get_info()

In [18]:
# Get the collection contours features table
cc1_ft = cc1.features_table()
cc1_ft


Out[18]:
Direction Oscillation Diversity
02 - O bau.xml 0.396825 0.529412 0.250000
03 - Fadinho.xml 0.400000 0.787879 0.142857
04 - Periquito Maracana.xml 0.298048 0.600000 0.189189
05 - O Cravo Brigou com a Rosa.xml 0.398462 0.500000 0.346154
06 - Eu Pisei na Barca Velha.xml 0.542090 0.490196 0.188679
07 - Lavadeira.xml 0.415385 0.458333 0.307692
08 - A Vida Desta Alma.xml 0.551093 0.457627 0.180328
09 - Solucando eu te digo.xml 0.475610 0.410256 0.317073
10 - Meu Anjo Escuta.xml 0.489655 0.500000 0.333333
12 - Boi-bumba.xml 0.417379 0.480000 0.296296
13 - Repartimento do boi.xml 0.412195 0.538462 0.146341
16 - Fui passa na ponte.xml 0.395604 0.416667 0.357143
17 - Oh botucatu.xml 0.313187 0.500000 0.357143
18 - Meu boi pintado.xml 0.321429 0.166667 0.750000
19 - Acalanto.xml 0.354167 0.500000 0.375000
20 - Ciranda cirandinha.xml 0.357143 0.538462 0.250000
21 - Bam-ba-la-lao.xml 0.553571 0.833333 0.375000
22 - Vai abobora.xml 0.497096 0.575000 0.142857
23 - Cantiga de Cego.xml 0.424901 0.523810 0.260870
24 - Na barca chegou.xml 0.494152 0.294118 0.526316
25 - Joao da Rocha foi a praia.xml 0.540000 0.708333 0.192308
26 - Cantiga de roceiro.xml 0.497748 0.600000 0.189189
27 - Quero-mana.xml 0.772727 0.350000 0.409091
28 - Papao de coco.xml 0.561905 0.263158 0.380952
30 - Canto de trabalho.xml 0.621324 0.466667 0.352941
31 - Durma nenem.xml 0.250000 0.500000 0.437500
33 - Bailes pastoris.xml 0.499206 0.470588 0.222222
34 - Bailes pastoris.xml 0.558333 0.608696 0.280000
346 - Ponto de Terreiro.xml 0.287281 0.490909 0.175439
347 - Folia de Reis.xml 0.575758 0.650000 0.227273
... ... ... ...
40 - Serena.xml 0.433824 0.600000 0.411765
41 - Cantiga de roceiro.xml 0.433824 0.600000 0.411765
42 - Mamae eu sou solteiro.xml 0.668763 0.576923 0.166667
43 - Coco mineiro.xml 0.330000 0.608696 0.320000
44 - La Condessa.xml 0.429379 0.362069 0.116667
45 - O Viageiro.xml 0.289474 0.378378 0.230769
46 - A Margarida.xml 0.423077 0.333333 0.428571
47 - Bailes pastoris.xml 0.625541 0.600000 0.318182
48 - A gerra.xml 0.258333 0.500000 0.500000
50 - Tengo, tengo, tengo.xml 0.163399 0.875000 0.500000
51 - Sinhaninha.xml 0.503695 0.370370 0.310345
52 - Vamos maninha.xml 0.324561 0.588235 0.368421
53 - O ba be bi bo bu.xml 0.298913 0.590909 0.375000
54 - Licença para entrar.xml 0.515810 0.619048 0.173913
55 - Tangolomango.xml 0.384211 0.333333 0.450000
61 - Papagaio, periquito.xml 0.495726 0.520000 0.333333
62 - Maculele.xml 0.182432 0.514286 0.297297
63 - Baile das borboletas.xml 0.345850 0.714286 0.304348
64 - Acalanto.xml 0.260526 0.611111 0.350000
65 - Capelinha de Malao.xml 0.454167 0.500000 0.312500
66 - Pezinho.xml 0.601326 0.580645 0.212121
67 - Rosa amarela.xml 0.452960 0.500000 0.204545
69 - Tororo.xml 0.380372 0.500000 0.214286
70 - Vamos maninha.xml 0.418421 0.444444 0.350000
71 - Na mao direita tem uma roseira.xml 0.346667 0.478261 0.240000
72 - Olhe a rolinha.xml 0.387566 0.346154 0.321429
73 - Tema de chegança.xml 0.513333 0.608696 0.240000
74 - Tengo, tengo, tengo.xml 0.400000 0.666667 0.250000
76 - Chora Mane, nao chora.xml 0.383193 0.424242 0.228571
77 - O caranguejo.xml 0.509524 0.421053 0.428571

91 rows × 3 columns


In [19]:
# Get the statistics data from the features table
cc1_ft.describe()


Out[19]:
Direction Oscillation Diversity
count 91.000000 91.000000 91.000000
mean 0.441626 0.521714 0.289302
std 0.112495 0.132606 0.110007
min 0.163399 0.166667 0.074074
25% 0.364469 0.456086 0.212121
50% 0.433824 0.500000 0.280000
75% 0.512581 0.600000 0.355042
max 0.772727 1.000000 0.750000

In [20]:
# Get the features table data histogram
cc1_ft.hist()


Out[20]:
array([[<matplotlib.axes._subplots.AxesSubplot object at 0x1192dcf60>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x11936aa20>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x1193c1278>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x1194212b0>]], dtype=object)

In [21]:
# Get the collection contours similarity map
cc1.similarity_map()


Out[21]:
02 - O bau.xml 03 - Fadinho.xml 04 - Periquito Maracana.xml 05 - O Cravo Brigou com a Rosa.xml 06 - Eu Pisei na Barca Velha.xml 07 - Lavadeira.xml 08 - A Vida Desta Alma.xml 09 - Solucando eu te digo.xml 10 - Meu Anjo Escuta.xml 12 - Boi-bumba.xml ... 66 - Pezinho.xml 67 - Rosa amarela.xml 69 - Tororo.xml 70 - Vamos maninha.xml 71 - Na mao direita tem uma roseira.xml 72 - Olhe a rolinha.xml 73 - Tema de chegança.xml 74 - Tengo, tengo, tengo.xml 76 - Chora Mane, nao chora.xml 77 - O caranguejo.xml
02 - O bau.xml 1.000000 0.811594 0.478873 0.666667 0.735632 0.500000 0.378947 0.720000 0.781250 0.721311 ... 0.746269 0.538462 0.789474 0.703704 0.644068 0.516129 0.576271 0.518519 0.753623 0.581818
03 - Fadinho.xml 0.811594 1.000000 0.628571 0.474576 0.604651 0.711864 0.425532 0.405405 0.317460 0.366667 ... 0.242424 0.571429 0.213333 0.641509 0.482759 0.327869 0.586207 0.566038 0.352941 0.592593
04 - Periquito Maracana.xml 0.478873 0.628571 1.000000 0.557377 0.295455 0.688525 0.708333 0.578947 0.553846 0.645161 ... 0.411765 0.582278 0.441558 0.472727 0.666667 0.539683 0.766667 0.654545 0.657143 0.607143
05 - O Cravo Brigou com a Rosa.xml 0.666667 0.474576 0.557377 1.000000 0.623377 0.760000 0.517647 0.615385 0.777778 0.666667 ... 0.807018 0.647059 0.545455 0.818182 0.734694 0.500000 0.653061 0.545455 0.711864 0.400000
06 - Eu Pisei na Barca Velha.xml 0.735632 0.604651 0.295455 0.623377 1.000000 0.519481 0.321429 0.565217 0.271605 0.512821 ... 0.452381 0.694737 0.645161 0.253521 0.526316 0.556962 0.526316 0.507042 0.697674 0.527778
07 - Lavadeira.xml 0.500000 0.711864 0.688525 0.760000 0.519481 1.000000 0.517647 0.584615 0.740741 0.588235 ... 0.666667 0.617647 0.575758 0.590909 0.530612 0.615385 0.734694 0.590909 0.745763 0.622222
08 - A Vida Desta Alma.xml 0.378947 0.425532 0.708333 0.517647 0.321429 0.517647 1.000000 0.420000 0.629213 0.395349 ... 0.543478 0.504854 0.475248 0.430380 0.523810 0.459770 0.523810 0.481013 0.638298 0.400000
09 - Solucando eu te digo.xml 0.720000 0.405405 0.578947 0.615385 0.565217 0.584615 0.420000 1.000000 0.724638 0.606061 ... 0.583333 0.530120 0.370370 0.305085 0.687500 0.537313 0.625000 0.644068 0.459459 0.533333
10 - Meu Anjo Escuta.xml 0.781250 0.317460 0.553846 0.777778 0.271605 0.740741 0.629213 0.724638 1.000000 0.690909 ... 0.721311 0.666667 0.771429 0.500000 0.528302 0.428571 0.301887 0.375000 0.698413 0.734694
12 - Boi-bumba.xml 0.721311 0.366667 0.645161 0.666667 0.512821 0.588235 0.395349 0.606061 0.690909 1.000000 ... 0.758621 0.724638 0.298507 0.711111 0.760000 0.603774 0.760000 0.755556 0.300000 0.739130
13 - Repartimento do boi.xml 0.773333 0.621622 0.578947 0.676923 0.413043 0.584615 0.600000 0.625000 0.521739 0.303030 ... 0.500000 0.506024 0.222222 0.508475 0.343750 0.716418 0.562500 0.576271 0.648649 0.500000
16 - Fui passa na ponte.xml 0.458333 0.468085 0.448980 0.578947 0.246154 0.578947 0.356164 0.490566 0.619048 0.512821 ... 0.577778 0.464286 0.259259 0.562500 0.702703 0.450000 0.648649 0.687500 0.553191 0.666667
17 - Oh botucatu.xml 0.500000 0.510638 0.489796 0.631579 0.338462 0.473684 0.356164 0.301887 0.523810 0.615385 ... 0.577778 0.428571 0.333333 0.812500 0.648649 0.450000 0.702703 0.750000 0.510638 0.727273
18 - Meu boi pintado.xml 0.333333 0.341463 0.325581 0.437500 0.237288 0.437500 0.208955 0.297872 0.388889 0.424242 ... 0.307692 0.280000 0.291667 0.538462 0.451613 0.411765 0.451613 0.461538 0.341463 0.518519
19 - Acalanto.xml 0.600000 0.612245 0.549020 0.600000 0.447761 0.550000 0.346667 0.509091 0.500000 0.731707 ... 0.638298 0.517241 0.321429 0.705882 0.615385 0.333333 0.717949 0.705882 0.326531 0.457143
20 - Ciranda cirandinha.xml 0.419355 0.524590 0.698413 0.692308 0.455696 0.653846 0.620690 0.716418 0.785714 0.566038 ... 0.644068 0.657143 0.470588 0.434783 0.470588 0.703704 0.666667 0.739130 0.491803 0.680851
21 - Bam-ba-la-lao.xml 0.333333 0.341463 0.325581 0.375000 0.237288 0.375000 0.208955 0.297872 0.388889 0.424242 ... 0.358974 0.280000 0.291667 0.538462 0.387097 0.411765 0.451613 0.538462 0.292683 0.518519
22 - Vai abobora.xml 0.210526 0.293333 0.623377 0.696970 0.623656 0.636364 0.435644 0.740741 0.685714 0.686567 ... 0.657534 0.738095 0.780488 0.333333 0.584615 0.558824 0.646154 0.566667 0.746667 0.557377
23 - Cantiga de Cego.xml 0.736842 0.678571 0.310345 0.808511 0.594595 0.680851 0.341463 0.451613 0.666667 0.666667 ... 0.555556 0.676923 0.666667 0.731707 0.739130 0.653061 0.347826 0.634146 0.571429 0.571429
24 - Na barca chegou.xml 0.301887 0.461538 0.481481 0.651163 0.228571 0.744186 0.384615 0.379310 0.297872 0.590909 ... 0.400000 0.590164 0.542373 0.702703 0.571429 0.755556 0.476190 0.702703 0.653846 0.473684
25 - Joao da Rocha foi a praia.xml 0.566667 0.813559 0.491803 0.560000 0.623377 0.760000 0.494118 0.523077 0.370370 0.431373 ... 0.736842 0.323529 0.242424 0.727273 0.734694 0.461538 0.612245 0.454545 0.440678 0.711111
26 - Cantiga de roceiro.xml 0.563380 0.714286 0.555556 0.721311 0.568182 0.557377 0.645833 0.684211 0.800000 0.354839 ... 0.235294 0.582278 0.493506 0.690909 0.666667 0.412698 0.666667 0.690909 0.400000 0.714286
27 - Quero-mana.xml 0.642857 0.690909 0.596491 0.260870 0.575342 0.478261 0.493827 0.524590 0.640000 0.765957 ... 0.528302 0.437500 0.516129 0.700000 0.622222 0.583333 0.666667 0.650000 0.254545 0.731707
28 - Papao de coco.xml 0.400000 0.370370 0.428571 0.666667 0.444444 0.444444 0.500000 0.466667 0.612245 0.695652 ... 0.307692 0.571429 0.557377 0.410256 0.545455 0.765957 0.363636 0.564103 0.629630 0.600000
30 - Canto de trabalho.xml 0.588235 0.360000 0.615385 0.780488 0.470588 0.682927 0.421053 0.571429 0.711111 0.619048 ... 0.666667 0.542373 0.456140 0.800000 0.500000 0.511628 0.700000 0.742857 0.480000 0.833333
31 - Durma nenem.xml 0.400000 0.408163 0.588235 0.750000 0.447761 0.650000 0.400000 0.545455 0.681818 0.682927 ... 0.595745 0.517241 0.535714 0.588235 0.769231 0.523810 0.615385 0.647059 0.448980 0.742857
33 - Bailes pastoris.xml 0.657143 0.463768 0.816901 0.766667 0.666667 0.733333 0.610526 0.773333 0.656250 0.688525 ... 0.716418 0.717949 0.552632 0.592593 0.406780 0.645161 0.745763 0.666667 0.608696 0.363636
34 - Bailes pastoris.xml 0.711864 0.793103 0.666667 0.816327 0.500000 0.775510 0.500000 0.718750 0.679245 0.720000 ... 0.571429 0.597015 0.492308 0.790698 0.791667 0.705882 0.666667 0.558140 0.793103 0.545455
346 - Ponto de Terreiro.xml 0.593407 0.311111 0.608696 0.543210 0.444444 0.543210 0.551724 0.437500 0.541176 0.560976 ... 0.386364 0.707071 0.680412 0.453333 0.500000 0.602410 0.550000 0.453333 0.555556 0.447368
347 - Folia de Reis.xml 0.607143 0.472727 0.666667 0.521739 0.547945 0.695652 0.518519 0.622951 0.720000 0.595745 ... 0.754717 0.531250 0.354839 0.650000 0.800000 0.666667 0.800000 0.700000 0.618182 0.536585
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
40 - Serena.xml 0.431373 0.440000 0.615385 0.731707 0.470588 0.682927 0.421053 0.535714 0.666667 0.714286 ... 0.583333 0.508475 0.491228 0.571429 0.600000 0.558140 0.700000 0.628571 0.600000 0.722222
41 - Cantiga de roceiro.xml 0.431373 0.440000 0.615385 0.731707 0.470588 0.682927 0.421053 0.535714 0.666667 0.714286 ... 0.583333 0.508475 0.491228 0.571429 0.600000 0.558140 0.700000 0.628571 0.600000 0.722222
42 - Mamae eu sou solteiro.xml 0.613636 0.390805 0.539326 0.641026 0.476190 0.564103 0.495575 0.645161 0.560976 0.556962 ... 0.682353 0.770833 0.382979 0.500000 0.519481 0.500000 0.571429 0.527778 0.551724 0.273973
43 - Coco mineiro.xml 0.576271 0.655172 0.566667 0.408163 0.289474 0.693878 0.476190 0.656250 0.716981 0.440000 ... 0.357143 0.626866 0.400000 0.558140 0.791667 0.666667 0.625000 0.418605 0.551724 0.772727
44 - La Condessa.xml 0.553191 0.408602 0.631579 0.428571 0.720721 0.547619 0.504202 0.606061 0.545455 0.517647 ... 0.439560 0.627451 0.560000 0.461538 0.578313 0.627907 0.409639 0.461538 0.688172 0.303797
45 - O Viageiro.xml 0.712329 0.250000 0.702703 0.761905 0.666667 0.571429 0.510204 0.743590 0.686567 0.718750 ... 0.542857 0.716049 0.632911 0.561404 0.709677 0.615385 0.516129 0.596491 0.805556 0.620690
46 - A Margarida.xml 0.541667 0.340426 0.530612 0.526316 0.276923 0.684211 0.356164 0.452830 0.476190 0.564103 ... 0.488889 0.392857 0.481481 0.437500 0.702703 0.600000 0.648649 0.562500 0.553191 0.545455
47 - Bailes pastoris.xml 0.678571 0.436364 0.596491 0.521739 0.547945 0.652174 0.493827 0.557377 0.680000 0.723404 ... 0.603774 0.593750 0.290323 0.800000 0.755556 0.458333 0.711111 0.750000 0.690909 0.682927
48 - A gerra.xml 0.600000 0.530612 0.588235 0.650000 0.388060 0.700000 0.320000 0.327273 0.590909 0.585366 ... 0.425532 0.413793 0.464286 0.823529 0.717949 0.666667 0.512821 0.411765 0.612245 0.571429
50 - Tengo, tengo, tengo.xml 0.538462 0.666667 0.452830 0.619048 0.463768 0.714286 0.337662 0.385965 0.695652 0.465116 ... 0.571429 0.533333 0.517241 0.555556 0.439024 0.272727 0.536585 0.666667 0.588235 0.594595
51 - Sinhaninha.xml 0.603175 0.290323 0.500000 0.528302 0.525000 0.566038 0.409091 0.647059 0.526316 0.814815 ... 0.766667 0.732394 0.434783 0.765957 0.615385 0.654545 0.692308 0.723404 0.580645 0.708333
52 - Vamos maninha.xml 0.226415 0.346154 0.481481 0.697674 0.400000 0.558140 0.435897 0.482759 0.553191 0.681818 ... 0.600000 0.557377 0.508475 0.702703 0.666667 0.622222 0.523810 0.864865 0.346154 0.473684
53 - O ba be bi bo bu.xml 0.482759 0.771930 0.576271 0.333333 0.186667 0.416667 0.554217 0.698413 0.730769 0.857143 ... 0.690909 0.666667 0.312500 0.619048 0.553191 0.320000 0.808511 0.523810 0.631579 0.837209
54 - Licença para entrar.xml 0.631579 0.571429 0.482759 0.680851 0.405405 0.723404 0.512195 0.612903 0.470588 0.666667 ... 0.703704 0.246154 0.666667 0.731707 0.652174 0.530612 0.652174 0.780488 0.500000 0.666667
55 - Tangolomango.xml 0.481481 0.452830 0.400000 0.636364 0.366197 0.727273 0.481013 0.508475 0.708333 0.488889 ... 0.313725 0.548387 0.533333 0.736842 0.558140 0.695652 0.465116 0.578947 0.641509 0.666667
61 - Papagaio, periquito.xml 0.524590 0.766667 0.741935 0.549020 0.435897 0.666667 0.558140 0.696970 0.763636 0.653846 ... 0.482759 0.492754 0.626866 0.666667 0.760000 0.679245 0.760000 0.577778 0.566667 0.695652
62 - Maculele.xml 0.478873 0.600000 0.472222 0.622951 0.545455 0.622951 0.458333 0.526316 0.584615 0.612903 ... 0.558824 0.784810 0.545455 0.654545 0.566667 0.761905 0.500000 0.363636 0.485714 0.535714
63 - Baile das borboletas.xml 0.666667 0.750000 0.620690 0.808511 0.540541 0.808511 0.512195 0.258065 0.431373 0.500000 ... 0.666667 0.646154 0.634921 0.878049 0.608696 0.326531 0.782609 0.439024 0.607143 0.333333
64 - Acalanto.xml 0.481481 0.452830 0.436364 0.727273 0.507042 0.727273 0.455696 0.440678 0.625000 0.711111 ... 0.705882 0.580645 0.600000 0.421053 0.465116 0.739130 0.790698 0.684211 0.603774 0.666667
65 - Capelinha de Malao.xml 0.320000 0.448980 0.588235 0.700000 0.268657 0.650000 0.400000 0.545455 0.500000 0.682927 ... 0.638298 0.448276 0.357143 0.764706 0.717949 0.619048 0.666667 0.823529 0.367347 0.628571
66 - Pezinho.xml 0.746269 0.242424 0.411765 0.807018 0.452381 0.666667 0.543478 0.583333 0.721311 0.758621 ... 1.000000 0.480000 0.767123 0.392157 0.714286 0.508475 0.678571 0.705882 0.181818 0.653846
67 - Rosa amarela.xml 0.538462 0.571429 0.582278 0.647059 0.694737 0.617647 0.504854 0.530120 0.666667 0.724638 ... 0.480000 1.000000 0.738095 0.580645 0.507463 0.371429 0.597015 0.451613 0.467532 0.412698
69 - Tororo.xml 0.789474 0.213333 0.441558 0.545455 0.645161 0.575758 0.475248 0.370370 0.771429 0.298507 ... 0.767123 0.738095 1.000000 0.633333 0.369231 0.705882 0.400000 0.333333 0.693333 0.524590
70 - Vamos maninha.xml 0.703704 0.641509 0.472727 0.818182 0.253521 0.590909 0.430380 0.305085 0.500000 0.711111 ... 0.392157 0.580645 0.633333 1.000000 0.790698 0.391304 0.558140 0.684211 0.377358 0.717949
71 - Na mao direita tem uma roseira.xml 0.644068 0.482759 0.666667 0.734694 0.526316 0.530612 0.523810 0.687500 0.528302 0.760000 ... 0.714286 0.507463 0.369231 0.790698 1.000000 0.627451 0.666667 0.604651 0.689655 0.636364
72 - Olhe a rolinha.xml 0.516129 0.327869 0.539683 0.500000 0.556962 0.615385 0.459770 0.537313 0.428571 0.603774 ... 0.508475 0.371429 0.705882 0.391304 0.627451 1.000000 0.666667 0.652174 0.754098 0.553191
73 - Tema de chegança.xml 0.576271 0.586207 0.766667 0.653061 0.526316 0.734694 0.523810 0.625000 0.301887 0.760000 ... 0.678571 0.597015 0.400000 0.558140 0.666667 0.666667 1.000000 0.837209 0.689655 0.636364
74 - Tengo, tengo, tengo.xml 0.518519 0.566038 0.654545 0.545455 0.507042 0.590909 0.481013 0.644068 0.375000 0.755556 ... 0.705882 0.451613 0.333333 0.684211 0.604651 0.652174 0.837209 1.000000 0.641509 0.256410
76 - Chora Mane, nao chora.xml 0.753623 0.352941 0.657143 0.711864 0.697674 0.745763 0.638298 0.459459 0.698413 0.300000 ... 0.181818 0.467532 0.693333 0.377358 0.689655 0.754098 0.689655 0.641509 1.000000 0.481481
77 - O caranguejo.xml 0.581818 0.592593 0.607143 0.400000 0.527778 0.622222 0.400000 0.533333 0.734694 0.739130 ... 0.653846 0.412698 0.524590 0.717949 0.636364 0.553191 0.636364 0.256410 0.481481 1.000000

91 rows × 91 columns


In [22]:
# Plot the similarity map as heatplot. In the first time, call similarity_map() or similarity_series() first
cc1.similarity.heat_plot()


<matplotlib.figure.Figure at 0x1195a5f28>

In [23]:
# Get the collection contour similarities as a Pandas Series
cc1_ss = cc1.similarity_series()

In [24]:
# Plot similarity series histogram
cc1_ss.hist()


Out[24]:
<matplotlib.axes._subplots.AxesSubplot at 0x119578c88>

Similarity Algorithms comparison


In [25]:
# Set the available algorithms
algorithms = ['OSC', 'AED', 'NGP', 'AGP']

# Choose the contour query set
query = [
    Q(phrase__piece__collection__name='Chorales'),
    Q(phrase__piece__mode='M')
]
contour_qs = models.Contour.objects.filter(*query)
ac1 = lib.analysis.AlgorithmsComparison(contour_qs, algorithms)

In [26]:
# Calculate similarity with all algorithms. It set resultes in similarity_measures attribute
ac1.calculate_similarity()


/Users/marcossampaio/.virtualenvs/contourmetrics/lib/python3.6/site-packages/numpy/lib/function_base.py:2487: RuntimeWarning: Degrees of freedom <= 0 for slice
  warnings.warn("Degrees of freedom <= 0 for slice", RuntimeWarning)
/Users/marcossampaio/.virtualenvs/contourmetrics/lib/python3.6/site-packages/numpy/lib/function_base.py:2496: RuntimeWarning: divide by zero encountered in double_scalars
  c *= 1. / np.float64(fact)
/Users/marcossampaio/.virtualenvs/contourmetrics/lib/python3.6/site-packages/numpy/lib/function_base.py:2496: RuntimeWarning: invalid value encountered in multiply
  c *= 1. / np.float64(fact)

In [27]:
# Get the algorithms similarity comparison
ac1.similarity_measures


Out[27]:
OSC AED NGP AGP
0 0.525505 0.500000 0.000000 0.615385
1 0.744760 0.800000 0.333333 0.800000
2 0.999855 0.666667 0.857143 0.727273
3 0.539848 0.800000 0.800000 0.888889
4 0.450424 0.555556 0.400000 0.714286
5 0.080513 0.400000 0.000000 0.500000
6 0.539848 0.800000 0.800000 0.888889
7 0.743933 0.400000 0.500000 0.500000
8 0.984024 0.833333 0.285714 0.909091
9 0.895484 0.263158 0.200000 0.416667
10 0.795786 0.500000 0.285714 0.545455
11 0.539848 0.800000 0.800000 0.888889
12 0.471703 0.714286 0.250000 0.833333
13 0.795786 0.666667 0.571429 0.727273
14 0.328935 0.312500 0.235294 0.476190
15 0.576450 0.400000 0.000000 0.400000
16 0.082990 0.454545 0.166667 0.375000
17 0.445242 0.500000 0.444444 0.615385
18 0.807606 0.444444 0.400000 0.571429
19 0.963734 0.666667 0.285714 0.545455
20 0.616955 0.500000 0.545455 0.666667
21 0.238091 0.600000 0.400000 0.666667
22 0.821841 0.714286 0.500000 0.666667
23 0.571294 0.312500 0.352941 0.476190
24 0.882882 0.500000 0.444444 0.615385
25 0.243482 0.500000 0.545455 0.666667
26 0.285186 0.500000 0.363636 0.533333
27 0.434977 0.500000 0.285714 0.545455
28 0.484213 0.600000 0.333333 0.600000
29 0.515579 0.714286 0.250000 0.833333
... ... ... ... ...
64950 0.479947 0.333333 0.000000 0.500000
64951 0.389944 0.500000 0.166667 0.625000
64952 0.699117 0.538462 0.444444 0.636364
64953 0.413702 0.692308 0.500000 0.750000
64954 0.777030 0.384615 0.285714 0.555556
64955 0.124590 0.538462 0.625000 0.700000
64956 0.128489 0.461538 0.250000 0.500000
64957 0.792307 0.153846 0.000000 0.266667
64958 0.623759 0.615385 0.315789 0.782609
64959 0.497021 0.636364 0.625000 0.700000
64960 0.893893 0.444444 0.400000 0.571429
64961 0.163702 0.555556 0.500000 0.375000
64962 0.248133 0.555556 0.666667 0.625000
64963 0.906147 0.222222 0.000000 0.363636
64964 0.780916 0.800000 0.666667 0.842105
64965 0.615855 0.454545 0.500000 0.625000
64966 0.540725 0.545455 0.285714 0.666667
64967 0.723552 0.545455 0.714286 0.666667
64968 0.476356 0.181818 0.000000 0.307692
64969 0.212762 0.636364 0.588235 0.666667
64970 0.728396 0.714286 0.250000 0.833333
64971 0.238282 0.571429 0.500000 0.666667
64972 1.000000 0.400000 0.000000 0.571429
64973 0.734874 0.500000 0.545455 0.666667
64974 0.820714 0.428571 0.400000 0.714286
64975 0.808764 0.285714 0.000000 0.444444
64976 0.122463 0.700000 0.307692 0.823529
64977 0.333333 0.285714 0.000000 0.444444
64978 0.677890 0.600000 0.615385 0.705882
64979 0.744970 0.200000 0.000000 0.333333

64980 rows × 4 columns


In [28]:
# Plot similarity values boxplot for all algorithms
ac1.similarity_measures.boxplot()


Out[28]:
<matplotlib.axes._subplots.AxesSubplot at 0x11c711d68>

In [29]:
# Plot similarity values histogram for all algorithms
ac1.similarity_measures.hist()


Out[29]:
array([[<matplotlib.axes._subplots.AxesSubplot object at 0x119f47c50>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x11adab6d8>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x11bccf1d0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x11a4f15f8>]], dtype=object)

In [30]:
# Plot similarity values correlation calculated between two algorithms
ac1.similarity_measures.plot(kind='scatter', x='AED', y='AGP')


Out[30]:
<matplotlib.axes._subplots.AxesSubplot at 0x119b7c828>

In [31]:
# Calculate KS test among all algorithms results. If statistic value < 0.5 and pvalue < 0.5 
ac1.ks_test()


Out[31]:
statistic pvalue
OSC AED 0.378994 0.0
OSC NGP 0.457033 0.0
OSC AGP 0.274469 0.0
AED NGP 0.414050 0.0
AED AGP 0.271453 0.0
NGP AGP 0.531225 0.0

In [32]:
# Calculate similarity values entropy for all algorithms
ac1.entropy()


Out[32]:
OSC    10.919820
AED    11.015528
NGP    10.763661
AGP    11.036261
dtype: float64