In [1]:
%matplotlib inline
import io
import numpy as np
import matplotlib.pyplot as plt
from scipy.cluster import hierarchy
from scipy.spatial import distance
In [18]:
%download https://examples.obspy.org/dissimilarities.npz
Downloaded 'dissimilarities.npz'.
In [17]:
url = "dissimilarities.npz"
with io.BytesIO(open(url, "rb").read()) as fh, np.load(fh) as data:
     dissimilarity = data['dissimilarity']
In [18]:
dissimilarity
Out[18]:
array([[ 0.        ,  0.93888207,  0.96150459, ...,  0.96971566,
         0.65356486,  0.73541168],
       [ 0.93888207,  0.        ,  0.98167743, ...,  0.91176233,
         0.60265653,  0.58080099],
       [ 0.96150459,  0.98167743,  0.        , ...,  0.85596097,
         0.93469123,  0.77658697],
       ..., 
       [ 0.96971566,  0.91176233,  0.85596097, ...,  0.        ,
         0.97555222,  0.65943323],
       [ 0.65356486,  0.60265653,  0.93469123, ...,  0.97555222,
         0.        ,  0.21069725],
       [ 0.73541168,  0.58080099,  0.77658697, ...,  0.65943323,
         0.21069725,  0.        ]])
In [19]:
len(dissimilarity)
Out[19]:
33
In [20]:
dissimilarity = distance.squareform(dissimilarity)
In [21]:
dissimilarity
Out[21]:
array([ 0.93888207,  0.96150459,  1.        ,  0.68538174,  0.97862019,
        0.95732425,  0.88929751,  0.74416172,  0.8120546 ,  0.63233502,
        0.68508224,  0.68878307,  0.82971361,  0.93221387,  0.99861152,
        0.8815054 ,  0.88068856,  0.76391142,  1.        ,  0.97721853,
        0.88318716,  0.84955382,  0.86369877,  0.98763165,  0.91343057,
        1.        ,  0.84156442,  1.        ,  0.86324721,  0.96971566,
        0.65356486,  0.73541168,  0.98167743,  0.78085595,  0.90033752,
        0.90494312,  0.88419423,  0.96923988,  0.71998968,  0.93512688,
        0.84986643,  0.91862085,  0.73623252,  0.90527974,  0.60132527,
        1.        ,  0.82492802,  0.83972715,  0.61912734,  0.84393098,
        0.98633653,  0.98452806,  0.76259394,  0.98720732,  0.82518932,
        0.85128888,  1.        ,  0.92485085,  0.91238983,  0.93038732,
        0.91176233,  0.60265653,  0.58080099,  0.91306048,  0.73423293,
        0.86543878,  0.67716302,  1.        ,  0.95931128,  0.58181014,
        0.71968672,  0.70648874,  0.6685183 ,  0.95320051,  0.98842509,
        0.75611159,  0.52758392,  0.57014619,  0.65980726,  0.63492586,
        0.79565094,  1.        ,  1.        ,  1.        ,  0.7841689 ,
        0.6117646 ,  0.63130788,  1.        ,  0.88230793,  1.        ,
        0.85596097,  0.93469123,  0.77658697,  0.85032548,  0.89224028,
        0.58790815,  0.80479222,  0.96821465,  0.97745347,  0.60526953,
        0.97708644,  0.9784995 ,  0.98046401,  0.76511608,  0.78267888,
        0.73015123,  0.79286143,  0.79494161,  0.93774377,  1.        ,
        1.        ,  0.99570001,  0.64777174,  0.74406892,  0.81944359,
        0.7548781 ,  0.96143823,  0.80918253,  0.92018793,  0.79635791,
        0.83017116,  0.8414229 ,  0.56429289,  0.65044684,  0.55269893,
        0.44188927,  0.20488142,  0.52200707,  0.18073403,  0.1675657 ,
        0.2129899 ,  0.90483297,  0.3831195 ,  0.65499954,  0.67533379,
        0.45446101,  0.69960382,  0.84161212,  1.        ,  1.        ,
        0.77143381,  0.85191795,  0.68257506,  0.59801396,  0.69865218,
        0.69884547,  0.71579616,  0.68030409,  0.41243143,  0.50046058,
        0.6485806 ,  0.77454182,  0.72265667,  0.5845938 ,  0.66623526,
        0.60942704,  0.59818574,  0.52799929,  0.95400164,  0.81868374,
        1.        ,  0.76452384,  0.6706793 ,  0.78791189,  0.91275991,
        0.66950683,  0.66052778,  0.70392136,  0.66445939,  0.7875532 ,
        0.65700753,  0.64884699,  0.72279969,  0.79475795,  0.61223415,
        0.67304787,  0.58596424,  0.77602711,  0.77793322,  0.69631784,
        0.15026725,  0.79026875,  0.80325117,  0.65473106,  0.81691666,
        0.62044313,  0.55035417,  0.39784863,  0.68867162,  0.40246332,
        0.93868431,  0.68824351,  0.60481299,  0.92112504,  0.7648137 ,
        0.40721604,  0.23316495,  0.50911266,  0.49754708,  0.5996995 ,
        0.48176781,  0.68963577,  0.75404799,  0.62741588,  0.49153694,
        0.7032785 ,  0.43661662,  0.40371082,  0.46613514,  0.95871575,
        0.63426474,  0.51362222,  0.60535603,  0.52962333,  0.6543014 ,
        1.        ,  0.89691283,  0.84816973,  0.84709477,  1.        ,
        0.59878968,  0.62989347,  0.83261837,  0.66968924,  0.63845773,
        0.86176237,  0.52765558,  0.63713423,  0.36799243,  0.61850343,
        0.38251971,  0.39445395,  0.42481065,  0.93068673,  0.54074455,
        0.60453251,  0.68092583,  0.49502888,  0.7260657 ,  1.        ,
        1.        ,  0.84658622,  0.84728396,  1.        ,  0.68150066,
        0.7013547 ,  0.62382352,  0.81169668,  0.83847222,  0.85886975,
        0.46391951,  0.55635821,  0.54545511,  0.1301536 ,  0.10193699,
        0.12946733,  0.91936604,  0.33514303,  0.9217109 ,  0.56505263,
        0.30643902,  0.61977694,  0.81924785,  1.        ,  0.82117565,
        1.        ,  1.        ,  0.57035375,  0.55282904,  0.72367949,
        0.76617387,  0.74889084,  0.83658191,  0.35461064,  0.49880495,
        0.4955816 ,  0.56116595,  0.56758363,  0.7028769 ,  0.4673118 ,
        0.9830755 ,  1.        ,  0.4593218 ,  0.97750609,  0.95329368,
        0.71414558,  0.69370974,  0.73634846,  0.98689414,  1.        ,
        1.        ,  0.74206515,  0.88981931,  0.77797241,  0.7608349 ,
        0.46098103,  0.40075586,  0.06797162,  0.11862359,  0.89975063,
        0.3378624 ,  0.47588603,  0.56875416,  0.32915934,  0.61759867,
        0.8518421 ,  1.        ,  0.84827515,  1.        ,  0.84970493,
        0.55410556,  0.77874446,  0.51555066,  0.74160474,  0.76918101,
        0.8037141 ,  0.32750667,  0.48368975,  0.07343822,  0.90263383,
        0.3882076 ,  0.40510246,  0.52763538,  0.34809961,  0.56664056,
        0.85266674,  1.        ,  0.82484363,  1.        ,  0.85062975,
        0.51763942,  0.78087713,  0.47654548,  0.93058261,  0.7678651 ,
        0.80557119,  0.33992337,  0.50533063,  0.87620205,  0.40608619,
        0.43308953,  0.50416051,  0.37417889,  0.58365476,  1.        ,
        1.        ,  0.81221815,  1.        ,  1.        ,  0.51204949,
        0.50497999,  0.41758213,  0.51313095,  0.75057162,  0.58867394,
        0.38080921,  0.53036769,  1.        ,  0.95937965,  0.96950625,
        0.92087194,  1.        ,  0.89956495,  0.66176862,  0.60361294,
        0.91541492,  0.72233389,  0.99052916,  0.93150791,  1.        ,
        0.77277337,  1.        ,  0.83554832,  0.92709572,  0.9619748 ,
        0.99260295,  1.        ,  0.52523932,  0.9939295 ,  0.99557776,
        0.9894934 ,  0.79671547,  0.73075086,  0.78691815,  1.        ,
        0.98442829,  0.50845067,  0.54864295,  0.56270932,  0.66111684,
        0.51732841,  0.62035284,  0.4633079 ,  0.52776121,  0.50285288,
        0.78911551,  1.        ,  0.77622309,  0.81331657,  1.        ,
        0.43488541,  0.48816976,  0.40181325,  0.38796986,  0.36513637,
        0.5629852 ,  0.53723105,  0.60884071,  0.941744  ,  0.17758826,
        1.        ,  0.82670183,  0.7792973 ,  1.        ,  0.83013155,
        0.06945653,  0.23163494,  0.46629163,  0.51609293,  0.46235202,
        0.60879421,  0.5894823 ,  0.67732176,  0.91178597,  0.84473057,
        0.86712963,  0.84229942,  1.        ,  1.        ,  0.96407039,
        0.59460724,  1.        ,  1.        ,  0.99723952,  0.93564962,
        0.12139526,  0.273916  ,  1.        ,  1.        ,  0.98164858,
        0.80080135,  0.69915668,  0.13621555,  0.33228821,  0.51096018,
        0.49964611,  0.49665298,  0.65518214,  0.62679682,  0.68233381,
        0.89383896,  0.62470824,  0.23048196,  0.42331155,  1.        ,
        0.69563822,  0.794525  ,  0.68649458,  0.82732507,  0.76385348,
        0.85207077,  1.        ,  0.89550569,  0.43040175,  0.57946445,
        0.83229735,  0.99488546,  0.8160061 ,  0.98378634,  0.87217807,
        0.95581388,  1.        ,  1.        ,  0.93143121,  0.94222351,
        0.85519252,  0.75398807,  0.74132101,  0.68524077,  0.77859882,
        0.64539027,  0.84710621,  0.85474693,  0.45494841,  0.83777608,
        1.        ,  0.72506533,  0.9943554 ,  1.        ,  0.96791288,
        0.82300733,  1.        ,  0.82623169,  0.7775087 ,  1.        ,
        0.69513196,  1.        ,  0.73483582,  0.83641542,  1.        ,
        0.25149369,  0.45094747,  0.50467077,  0.44533345,  0.6356088 ,
        0.58389733,  0.66432989,  0.45051552,  0.48473151,  0.47771943,
        0.59385131,  0.60490077,  0.64042403,  0.05676754,  0.0767261 ,
        0.2181077 ,  0.7667143 ,  0.76339372,  0.08073411,  0.1686845 ,
        0.78191313,  0.62577551,  0.2925989 ,  0.80794125,  0.63562642,
        0.97555222,  0.65943323,  0.21069725])
In [27]:
len(dissimilarity)
Out[27]:
528
In [28]:
plt.rcParams["figure.figsize"] = (13, 5)
In [29]:
threshold = 0.3
linkage = hierarchy.linkage(dissimilarity, method="single")
clusters = hierarchy.fcluster(linkage, threshold, criterion="distance")
In [30]:
hierarchy.dendrogram(linkage, color_threshold=0.3)
plt.xlabel("Event number")
plt.ylabel("Distance")
Out[30]:
<matplotlib.text.Text at 0x7f2762b46780>