From 2310926cf41fab4636fe7dcf850b12f8503a5c86 Mon Sep 17 00:00:00 2001 From: gaelforget Date: Sun, 26 Jun 2022 23:18:44 -0400 Subject: [PATCH 1/2] mv OptimalTransport example from OceanStateEstimation.jl here --- examples/OptimalTransport/M.csv | 141 ++ .../OptimalTransport/OptimalTransport_demo.jl | 1480 +++++++++++++++++ .../OptimalTransport/OptimalTransport_loop.jl | 214 +++ .../OptimalTransport_plots.jl | 47 + .../OptimalTransport_setup.jl | 88 + examples/OptimalTransport/S.csv | 141 ++ 6 files changed, 2111 insertions(+) create mode 100644 examples/OptimalTransport/M.csv create mode 100644 examples/OptimalTransport/OptimalTransport_demo.jl create mode 100644 examples/OptimalTransport/OptimalTransport_loop.jl create mode 100644 examples/OptimalTransport/OptimalTransport_plots.jl create mode 100644 examples/OptimalTransport/OptimalTransport_setup.jl create mode 100644 examples/OptimalTransport/S.csv diff --git a/examples/OptimalTransport/M.csv b/examples/OptimalTransport/M.csv new file mode 100644 index 0000000..9e9e0fc --- /dev/null +++ b/examples/OptimalTransport/M.csv @@ -0,0 +1,141 @@ +Column1,Column2,Column3,Column4,Column5,Column6,Column7,Column8,Column9,Column10,Column11,Column12 +0.0011333448914698876,0.001117673551971125,0.0011294607005775089,0.00117375546079006,0.001161852574661613,0.0011498060820410848,0.0010950056831258218,0.0010660841206702983,0.0013398448296917484,0.0016274335727043492,0.0013900255987392327,0.0012041214511533396 +0.0012416561666610713,0.00121467172713194,0.0012183809830941105,0.0012560565356219322,0.0012355164168982977,0.0012167696610944872,0.0011578079827519675,0.0011342014559989906,0.001444954839069432,0.0017345149517923536,0.0015044733756101603,0.0013202419636978747 +0.0013623632776035128,0.0013169679093857055,0.001311129701139155,0.001341654192741473,0.0013135465560779932,0.00129076472640622,0.0012298399860939191,0.001215291390991523,0.001567047283909697,0.0018697529000417528,0.0016523200772552123,0.0014607016930186028 +0.0014851658312115509,0.0014201782954933286,0.0014045471241135791,0.001427829144196986,0.0013923305527638583,0.0013659567236411036,0.0013034291919070062,0.0012985485957939264,0.0016920152429159758,0.002009700911729609,0.001805749647655716,0.001605244024532124 +0.0015988580097110018,0.0015136920618564025,0.001489602168073676,0.001504733063530926,0.0014759621169884774,0.0014381127856475686,0.001379221620279538,0.001396383057759089,0.0018389851134137374,0.0021789248119026008,0.0019776612561962737,0.0017528753752995279 +0.0017399077519066834,0.0016332624132608113,0.001600764181740133,0.0016076249955081453,0.0015601504410413007,0.001534870761635264,0.0014799141311038191,0.0015212358832348285,0.0020270822887076202,0.002398472316949239,0.0021876263821334818,0.001930959328638648 +0.001859747981179014,0.0017367546231174492,0.001699076769377489,0.001700260115517797,0.0016510376359603117,0.0016315923667741164,0.0015811626335066106,0.0016590109012504632,0.0022319585804083824,0.0026378762809302213,0.0024007356538533744,0.0020965328152354264 +0.0019794628642326715,0.0018403739344791013,0.0017981983100029374,0.0017941508358087755,0.0017437461823034811,0.0017314686648948617,0.001701277883300979,0.0018181190134221434,0.0024643171543864283,0.0028825656933761236,0.0026151836412031094,0.002261806070700952 +0.0021005533750497276,0.001945565143460779,0.0019030683065270788,0.001896797031474486,0.0018493235004531745,0.0018541368190288564,0.0018488185080863992,0.0020240645393864143,0.0027555771627734444,0.003164186685466452,0.002837083720007622,0.0024223968700570952 +0.0022212892471948358,0.0020511891739752987,0.0020093080766276908,0.0020026134935719774,0.0019600863866554557,0.0019848168173467393,0.002006379068165957,0.002240995412780487,0.003056447738272348,0.0034500715431342263,0.003058436424794934,0.0025811614585163874 +0.0023408302876587925,0.0021589708685567765,0.0021217648025113026,0.0021225313364362074,0.002093787154124875,0.0021509426160816955,0.002208281920103164,0.002506610467064581,0.003400143167830013,0.0037550763934647824,0.003277764640288654,0.002732323563289726 +0.002462600074671896,0.0022714473241424045,0.0022401597351697946,0.002252499310979059,0.0022406969525188255,0.002333969253365808,0.002429207689200041,0.002793746997735841,0.0037584750137993565,0.004066136848930579,0.003495955083512098,0.0028652192471151664 +0.002577744996637866,0.002386346756367453,0.002377423140318435,0.0024040820427808775,0.0024194038670209074,0.0025601400051752372,0.0026995803542136706,0.00313630600908091,0.0041457000532357305,0.004377427537020511,0.0036934486998332857,0.0030124696813016282 +0.0027287537595160026,0.0025369041425809314,0.0025273361832136606,0.0025938304152368324,0.0026413432436833014,0.002833105431294346,0.0030169904044102364,0.003529734393606278,0.004590685534784138,0.004741529727567171,0.0039333390630042625,0.0031805981078449233 +0.0028738459112624755,0.002689022483226489,0.0027001199668090113,0.0028094433462110087,0.0029028391545227908,0.0031531561559259786,0.0033785167094955728,0.00395654074481699,0.005040670432778821,0.005079453295820718,0.00414022370808387,0.003329323481686044 +0.003032549880480214,0.002859938499280836,0.0028988241955076573,0.003056743967978131,0.00320023374347529,0.0035101830240024706,0.003777654035758466,0.004423926768580937,0.005515275353410453,0.005417367593276379,0.0043447379397598814,0.003485804013243742 +0.003219820743571083,0.003069663158279469,0.0031496721234854706,0.003367414289713461,0.0035692660210931114,0.003940866711785685,0.004252147113694332,0.004974385858889295,0.006044255005782262,0.005762020067061884,0.004549147974246502,0.0036599816430542336 +0.0034361530821315285,0.003308178101000748,0.0034329507571189554,0.0037181823235310205,0.003985250603904948,0.004418717237075532,0.004776362884238659,0.005570261678960863,0.00660532189180738,0.006122565646556278,0.004772616676347756,0.003862599783547971 +0.0037001897307564224,0.003593942420806121,0.0037694430321186414,0.004134745083562021,0.004478277278017655,0.004973930752123779,0.005382125643774394,0.006240545982776419,0.007218889328295981,0.006509064761456114,0.0050273269915732085,0.004111908863621186 +0.004020158155854143,0.003928588365658044,0.004159206803888736,0.004612783300927589,0.005030834454638757,0.005582500194808985,0.006045337907340273,0.006958746965227115,0.007847288065555215,0.006923857876492501,0.005331117272936077,0.004419479566998828 +0.0044179025693094,0.004331191377586477,0.004623023542852795,0.00517626500538263,0.005666099334847405,0.006265162581750809,0.006785922988148238,0.007721458063719568,0.008447722095098725,0.007377904923148607,0.005703149317086062,0.004808071712276726 +0.004906881287972608,0.004799231979378551,0.00513788268860241,0.005776847635863866,0.00628133398819325,0.006901668560352158,0.00744503890604215,0.008216168142612642,0.00881511121759133,0.007902543032966926,0.006172995493341215,0.005292722525191124 +0.005490196899879623,0.005342399511263902,0.00571096107058197,0.006349407223723615,0.006833512441589045,0.0074556621109187135,0.007994173968477741,0.008607268331717747,0.009078161329756846,0.008457529078724225,0.00674075055484983,0.005870165401684183 +0.006054268743360441,0.0058823409052629625,0.006260355765709184,0.006865533868723258,0.007346684065595618,0.00795997316365284,0.008459182905913902,0.008943721402240978,0.009285249383259902,0.008749686862269814,0.00727419979813757,0.006441120735133837 +0.006589336346456432,0.0063462039494796285,0.006712056435752612,0.0073321853137436315,0.007830143914192116,0.008429023868703771,0.00887462030046248,0.009244894133344589,0.009449887469234228,0.00893213139736014,0.007679517845383726,0.006963542003784849 +0.00713518674872333,0.006824623959583754,0.007114405941184386,0.00774984067591413,0.008265620869637723,0.00883313568665755,0.00922963552427861,0.00951288936170781,0.009595055268320142,0.009078508324318205,0.00799718535945492,0.007409208048773389 +0.007625387434378737,0.007287843238768469,0.007490953954712603,0.00814220922613217,0.008669734714796602,0.009197439103092916,0.009550324779241764,0.009759904190924757,0.00972926073058612,0.0092087654642991,0.00826162199369822,0.007789594921042217 +0.008162711879588301,0.007837762723462793,0.007883956955194456,0.008502316041381495,0.009028850426821132,0.009506912172632321,0.009806729359482073,0.009932818076323466,0.009812562626133777,0.009318463835290669,0.008521809760613046,0.008190065292162731 +0.008638766061807612,0.008368051126976056,0.008274849128833566,0.008841570705014528,0.009365539444590808,0.009796973867466328,0.010040733415517412,0.010084941919870232,0.009882118976076718,0.009418764790470269,0.008765484402554011,0.008553784537888798 +0.009186456002232342,0.009070284326288243,0.008754553998467453,0.009193437579015775,0.009684631382615942,0.010060010956576645,0.010219590940967749,0.010189541836093068,0.009918163847978475,0.009528627548566607,0.009067178147482544,0.00899282813099234 +0.009725112298861152,0.009749112034383603,0.009292812804772906,0.009548121344814902,0.009995368876697757,0.010310238237602522,0.010371109487587736,0.010273085120889492,0.009960182003675754,0.009669164104207015,0.00940527021425104,0.009423347337970338 +0.010235547955801689,0.010318311108301824,0.009877734120902405,0.009912074941934756,0.010302764581224172,0.01054873043161524,0.010491312378514101,0.010332471344309563,0.010008314313080233,0.009837497251416968,0.00976846788148511,0.009846006284372759 +0.010778486235662122,0.011005812674048213,0.010613234419303145,0.010333613105211283,0.010608516264696851,0.010752956043060174,0.010567049695890344,0.01037835131667583,0.010123413202635314,0.010135984099323536,0.010258023055112555,0.010356454697828109 +0.011237130878564894,0.011595132186025897,0.01132770686004146,0.010776702295639517,0.01089779731209944,0.010923423697897647,0.01062355235810858,0.010433092063012916,0.010291221211856473,0.01051468087491143,0.010761991055553758,0.010848706917835054 +0.011600494898859143,0.011988097426476012,0.011943844330298504,0.011217458097390071,0.011154766256364775,0.011051417589199834,0.010662970089402942,0.010509865393889449,0.01050256372739464,0.010921172325868544,0.011238340508506795,0.011281667481526935 +0.011846732421084645,0.012166306355641811,0.012251724121909821,0.011613031477976814,0.01136911002498957,0.01114376188574436,0.010692931366913865,0.010611922322549002,0.010732030339619718,0.011282256010201355,0.011620509100245504,0.011598682881538813 +0.011998901625673282,0.012240043495900776,0.012349667209998789,0.011937032115913558,0.011550579881789187,0.011220310569015495,0.010735295747683452,0.010740674756629657,0.010950166334633159,0.01156165542630589,0.011895290734725256,0.01181768155986063 +0.012078958616435702,0.012266036207328176,0.012378139689009904,0.012148615585945774,0.011689400714789557,0.01124769264896602,0.010771762406202513,0.010885266965839257,0.011146002342509162,0.01175313355402293,0.012098994534805495,0.011976678474396417 +0.012125711400965836,0.012272679593339811,0.012380846451213564,0.012246901858303348,0.011752346569895444,0.011210409663533337,0.010801796171307857,0.011017819516875017,0.011300727117767532,0.01189930347708934,0.01224778014619914,0.012082421098145236 +0.012163251704756151,0.012276610344805927,0.012376151260017345,0.012300998753755761,0.011788721993604813,0.01120250184099009,0.010869636756135712,0.011120025586749842,0.011418067852586134,0.01202853804841119,0.012357864657669823,0.012173260755754391 +0.01218955467814757,0.012278648329245332,0.012372453755359638,0.01233717393437685,0.011805888696013825,0.011185490039055033,0.010871495999646374,0.01111275422375245,0.011452356162434351,0.012084849763033714,0.012411128160132595,0.012240455111244174 +0.012160433757012725,0.012267646411275895,0.012348925933514715,0.012275796337416638,0.011581468873221128,0.010882046959418426,0.010650666855899407,0.01094960931263287,0.011392751239026635,0.012033384733778105,0.012358390969693892,0.012203355890090124 +0.01203132622006865,0.012199551468537477,0.012243496575179851,0.012025357754580756,0.011040363793259022,0.01023985757842533,0.010217701106340888,0.010733081412997962,0.011249077094320048,0.01189243351497446,0.012183663715664756,0.012044192578183212 +0.011782649254146873,0.011966965615439175,0.011954003931719697,0.01144647877917936,0.01018297763525534,0.009530723367933322,0.009774569478700243,0.01052936594382466,0.011062983934367367,0.011635745841412611,0.011876477103609296,0.01177984156529149 +0.011494289945754101,0.011574662422201065,0.011437230097903834,0.010782138905313392,0.009551258427120537,0.008992370937780757,0.009421774843531277,0.010398902820418672,0.01091838783251749,0.011331660603921996,0.011553678469229516,0.011503581230520034 +0.011191663124996122,0.011137079460084943,0.010952862142792428,0.01028217451157942,0.009190425195298944,0.008550763697589378,0.00913150359026194,0.01032419801937862,0.010822516203855824,0.011056591851934468,0.011243657635035674,0.011231604541702817 +0.010846723482503626,0.010694830584861481,0.010544089681122824,0.010008958627078996,0.009104397653356765,0.00825067153333445,0.008843537494679046,0.010248293818979709,0.010738111114856036,0.0107739129336434,0.010908595861339434,0.01091822293858476 +0.010401808960231067,0.010210498985716247,0.010108383591638733,0.009893429083946581,0.009211164385772474,0.008086338344156651,0.008576618577379421,0.010146843757994455,0.010641656526549689,0.010458710932360582,0.010477358610848067,0.010498832259313404 +0.00974910146325524,0.009519312732450975,0.009737038405236854,0.00985799733034525,0.009391913118059755,0.008035093978624239,0.008355118073260512,0.010008912015749756,0.010504248702535962,0.010077322092923925,0.009873318804367665,0.009903121736038346 +0.008552884879411015,0.008534230730769645,0.00944687055588527,0.009847106462768807,0.00962328523784861,0.008179622888374987,0.008232906912657536,0.009915563471745858,0.010390728348461033,0.009719529604776476,0.009244148338540072,0.009228435912634284 +0.007107042049855833,0.0074439484827666744,0.009130321096922646,0.009806177606508572,0.009843069223390474,0.008421878633677963,0.008155937659428437,0.00978861483848219,0.010238095950508725,0.009305535914578476,0.0082728802035663,0.007781159852087601 +0.006014810258520524,0.006657847469874287,0.008795928368993018,0.009738577314608119,0.010050918442444668,0.008748646626479225,0.00812150436797834,0.0096293269421973,0.010057096627953689,0.008622228929636273,0.00670758764772471,0.0062714052900637645 +0.0054958051568181525,0.006186769616959144,0.008507101381595128,0.009642727718497512,0.010213166971609398,0.009157826634266458,0.008246212687752016,0.009498276411869065,0.009901163071896413,0.007943424926373545,0.006060787660980841,0.005573812677740355 +0.005068691989337135,0.005754235176273824,0.008194147056309206,0.009509539274656122,0.010325656334854792,0.009548019217487503,0.008414159444764285,0.009369038475895701,0.009708756920763074,0.007364237595685449,0.005558336983928898,0.00502991980215369 +0.004829802886251054,0.005374785609245863,0.007769001277768918,0.009239214543729127,0.01029059009576091,0.009896782624078518,0.008694904818862932,0.009227238559315197,0.009349420772782693,0.00693631916075668,0.005343652314922148,0.0048543198948191625 +0.00462507957142399,0.0050205353353108394,0.007186370119023833,0.00892517507651324,0.010211520197416243,0.01010744972270103,0.00878030821870911,0.008958194391974822,0.008629641638992562,0.006501936090610199,0.005136894008391865,0.004711430602897012 +0.004481589585930535,0.004711867068475953,0.006517486076595368,0.00853654439113418,0.010021171296216045,0.01010098142151945,0.00875975750853112,0.008357776981707787,0.007842074639896056,0.0060569561693696395,0.004944685746651117,0.0046270666175003425 +0.004367973786305155,0.004464340217687076,0.005908263937161632,0.00809289818983077,0.009696766617266171,0.009885040990331169,0.008738225410672179,0.008011071757962491,0.007298197918387076,0.005739352225745457,0.004802475561950935,0.004546863255458041 +0.00428849330228942,0.004286683421419411,0.005433698794826452,0.007466250108197236,0.009206016555892047,0.009470831970175373,0.008715613708970515,0.007959113354836957,0.007032653507305425,0.005567245482462333,0.004717386386854162,0.004471438343508826 +0.004225718799172029,0.004141806335181977,0.0050246679069461805,0.0067565436012231375,0.008498284506087198,0.008993719520758794,0.008596785458290861,0.007872110033882924,0.006804322022341071,0.005443567418233864,0.0046801995008694175,0.004426395238443411 +0.004177471102259481,0.004025433058971307,0.004672603217951674,0.006094965052991782,0.007679071743146954,0.008463087910845124,0.008394208592330437,0.0077545944907733005,0.0066083368052551016,0.005362007369044782,0.004684682461222941,0.004407779212281679 +0.0041531359807554175,0.003951727713502946,0.004419149358560587,0.0055650412952004,0.006968344980339908,0.007887553385367322,0.00812973863018023,0.007618294216032141,0.006489791645719386,0.0053342294561339425,0.00472098743658353,0.004408154678125207 +0.004145975489132001,0.003908702491233425,0.004236667216956683,0.005130007178158875,0.006335990600682214,0.007280201075702416,0.00782104355519891,0.007468618287399643,0.0064269148063120915,0.0053450641503505324,0.004780085806675857,0.00442214716221309 +0.004150691941725458,0.0038781003359073963,0.0040847159493308275,0.004755334355482584,0.005793463952411993,0.006736833517701559,0.007509890885137232,0.0073019219533884475,0.006340281421753208,0.005348380770489925,0.004834192747195468,0.004455082546537625 +0.004162607129973833,0.0038550762640367224,0.003951484057239203,0.0044177484432280385,0.005306071483903797,0.006232911569645828,0.007197601582365132,0.007125092892352758,0.0062393245584431685,0.0053471269200308135,0.004885195534927694,0.0044994664124261615 +0.004191025303294614,0.0038510033331493644,0.0038562160360506815,0.004177097693304895,0.004922210742359795,0.005838861915220344,0.006892663471178898,0.006907513058940305,0.006093934643767655,0.005311775156598851,0.00492329167576804,0.004554193052017308 +0.004227808717355882,0.0038565947773731603,0.003780441947108122,0.003986213992709539,0.004591649636124657,0.005501338271274542,0.006591888296550387,0.006669476325229342,0.005926106957451062,0.005259094931111299,0.0049547535286097,0.0046141036721038435 +0.004245964228036478,0.0038591471362612534,0.0037158892889531175,0.00384146721886017,0.004317249214764609,0.005176694850288711,0.006314840981895269,0.006438139620726636,0.005752197445694695,0.005166286716710841,0.004939997200173643,0.004640919671934652 +0.004256353279255347,0.0038604270883134113,0.003656098684769505,0.003716109241601834,0.004066601116237387,0.004857886316748282,0.006048064770809498,0.006209970764609725,0.005576064303869538,0.0050569846968874475,0.004906089633997464,0.004653952059794546 +0.004240739965400838,0.0038465056148368143,0.003603284503565271,0.00362561697949797,0.0038945435324392722,0.004596285876667553,0.005788881464564362,0.005999670549956378,0.005388351162951926,0.0049176789158809475,0.004837361694932913,0.0046143100570637426 +0.004216829097313137,0.00382773404198989,0.0035527956980227456,0.003546452198816715,0.003747966190872473,0.004353465047493017,0.00553257578535415,0.0057954763301005605,0.00519729045941734,0.004769035578928537,0.004757624789080038,0.004557878486886064 +0.004157570489157825,0.0037802910600202013,0.003501973242264428,0.0034809967575781245,0.0036439619635181327,0.004183992232838931,0.005287013150961793,0.005550693102437565,0.00500568588340946,0.004619977980470052,0.004658898144480649,0.004479451745430622 +0.004090462680590355,0.0037264693732078705,0.003451172287400422,0.003418762026229086,0.003549769367612753,0.0040314060548880485,0.005044361143750095,0.0052972479527755145,0.004814361238753993,0.004471144859784373,0.004556104322744744,0.004396231279726021 +0.004010763203490522,0.0036580845190304617,0.003380407392276803,0.003366422518618344,0.003484621635016235,0.003942804338482545,0.0048653066363780135,0.005078788335979728,0.004637266060216027,0.004330888670173846,0.0044444038285434044,0.004301950712093845 +0.003929580021344525,0.0035879195712908447,0.003307142540018471,0.003315503672585173,0.0034234675844419015,0.0038628829250257285,0.004695086856848752,0.004865461522974089,0.004462467107162173,0.004192097002797421,0.004331787463159323,0.004206424487990207 +0.003871925323406116,0.003532338664027556,0.0032236115862367474,0.003233761628752958,0.0033502280244379267,0.003778385117820075,0.004560855694735733,0.004643656196627335,0.004270485270609029,0.004061459849229934,0.004227245420417042,0.004132411623824243 +0.003817038703429336,0.0034799157560072977,0.0031418313245854777,0.0031523158169686153,0.003277808245042975,0.0036943655081277025,0.00442661633578547,0.004422372686088783,0.004078840863578079,0.003931282384867788,0.004124379298945175,0.0040607094426025085 +0.0037962273201529806,0.003477830166565721,0.0031019736162392923,0.003101497015392691,0.0032307362820617838,0.0036212727694260975,0.004254059855535784,0.004209546796527576,0.0039008541231768303,0.0037968782516557835,0.004044212472897505,0.004014496989759228 +0.003741794944544602,0.003441551216091846,0.0030338471948488494,0.0030204949526666646,0.0031485494247431526,0.0035108960790449354,0.004036137965866525,0.003956998197494208,0.003685402076065488,0.003630329900362804,0.003928953892296225,0.003935244280784456 +0.0036756014131974317,0.0033897360049593996,0.002968530530330482,0.0029174159966982296,0.0030240909615559704,0.0033580319454769273,0.003758466292668381,0.003685196800242546,0.0034505782938768523,0.003462665266702805,0.0038038489374759934,0.0038528772225188304 +0.003683603879630853,0.0033934376906623316,0.0029500032879141063,0.0028699678335129945,0.0029598408272614968,0.003267659038975673,0.0035726135158799495,0.0035099393288087477,0.0033157651117378677,0.003384624786811288,0.0037629618914609307,0.0038547472299368 +0.0035821462191946724,0.003270057188498153,0.00280730684190251,0.0027094732933032523,0.002769864868469123,0.003011120801839199,0.00326188086280712,0.003236381629384984,0.003105970420410942,0.0032111806265542305,0.0035935308006313136,0.0037368848676286493 +0.0035040235069990757,0.0031601648658424616,0.0026764920420162125,0.00256027893716431,0.002603241491539739,0.002795584439120825,0.0029947070453567827,0.003004567965652105,0.002935045728026009,0.003075747493177105,0.00345913777679479,0.0036403360859676784 +0.0033772469313486154,0.003000673889291845,0.0025048691226154433,0.002370887323536053,0.0024139568527027913,0.0025798124834306873,0.0027252614035488763,0.0027673329722314264,0.002752414927305199,0.002920305666053819,0.0032897567819194715,0.003481450257896264 +0.003234120253843916,0.002839281518096373,0.0023404601298111383,0.0021842547659181146,0.0022185929035543296,0.002373125369448533,0.0024901953548808337,0.00254834844421337,0.002566493210612241,0.0027570427060256584,0.0031175524782444362,0.0033102348449846196 +0.003082678951281675,0.0026823358016628855,0.002189393348758246,0.002010360209115988,0.0020306753510628116,0.0021911347117932445,0.002305309870049176,0.002358628837905554,0.002386636151163221,0.0025950003474570628,0.0029515875562481477,0.0031364823254026704 +0.0029252965651446056,0.0025321890594588448,0.002051202603279513,0.001858973872133451,0.0018615130755048354,0.00202186503268137,0.0021420036820569382,0.0021918316765588185,0.002225090051368786,0.0024376679952733565,0.002798865985643874,0.002975045545591758 +0.00276368572760362,0.0023850374550964354,0.0019194349021458199,0.0017189213149764163,0.001701190624508634,0.0018576614257925467,0.0019887424692556894,0.002036223579716976,0.002072306424106009,0.0022815755941855754,0.0026521943942716024,0.00281922311226106 +0.0026220623286505695,0.002288206286850122,0.0018285476765724823,0.001614169380542312,0.0015761694382064812,0.0017127362658654387,0.0018411948679453503,0.0019014979979344944,0.001952246902020893,0.0021569655019277128,0.0024862045371042995,0.0026483586901566536 +0.0024844952264145687,0.002204524545767798,0.001748349219029586,0.0015186731920344854,0.0014604252748446616,0.001573003671101234,0.0016953620794875996,0.0017723535399315692,0.001840784023415826,0.0020406475634727203,0.0023155598219299772,0.002473975077131553 +0.00247763586968487,0.002243782343275411,0.0017650350173314272,0.0015036707115495087,0.0014161227259770215,0.0014968140884998227,0.0015972616590816291,0.001655238344116519,0.0017240145633579003,0.0019074439684034481,0.0021903938742578507,0.002405922987570914 +0.0024982452776888897,0.0023137560202203603,0.0018046575356500704,0.0015064070321261587,0.0013880035192431839,0.001437248049938331,0.001514825829945147,0.0015520193388374284,0.0016189210478758844,0.0017886488154092582,0.0020843144348554363,0.002359831876934929 +0.0026463371859308943,0.002531811728841565,0.001956836368326112,0.0015947897104465756,0.001438207768418855,0.001460049563926854,0.001512423988064891,0.0015261116744065247,0.0015819304641518591,0.0017562548078012088,0.0020783641449246045,0.002417710629705173 +0.002865800686535443,0.0028392273110088547,0.0021665200759598585,0.00172337004049174,0.001523645804908233,0.0015179849335992335,0.0015433196112729652,0.0015318835938210144,0.0015761377136036345,0.001757702336057142,0.0021116814384807615,0.0025213518224435493 +0.0032181472375188043,0.0033110923817297206,0.0024867696136149846,0.001929218366921689,0.0016767669617785016,0.001643372577620139,0.001638103149615185,0.0015983954331134677,0.001630136051848054,0.001824018880154256,0.0022203135476283765,0.002713794258874312 +0.003743298513940353,0.004021468552714698,0.00297008308464124,0.002212330733271021,0.0018945300362634052,0.0018284196277371675,0.001788640563756452,0.001716090222842173,0.0017359467548043706,0.0019466116956536245,0.0023998663323876153,0.0029947800205029525 +0.004398891800658633,0.004911493433143042,0.0035681442630952085,0.0025577881631703705,0.0021644595094319208,0.0020616161146121696,0.001984179791153459,0.0018751025099292278,0.00188358617485147,0.0021146334683754386,0.002636666754911015,0.0033395482944669785 +0.005318424564374095,0.006172503787289136,0.0045084282471411115,0.003050544054076164,0.002547208945564493,0.0023912552597534368,0.0022644144923128907,0.0021132224001820005,0.002110245968426528,0.0023758391122846397,0.002993935675746585,0.0038285889605838928 +0.006280977204541594,0.007413929377937093,0.005518376163607137,0.0035393761224638376,0.0029328721404527566,0.00273749279545721,0.0025694226950533057,0.002375539065042054,0.002361015782365191,0.0026654948845144196,0.0033574336668959668,0.004332094384088064 +0.007426073947937229,0.008657959734861682,0.006822642210685098,0.004233961669414482,0.0034037750140459627,0.0031565377576145324,0.0029456264274059845,0.002713823133445694,0.0026954158892145475,0.00303107779752967,0.0038361815351179935,0.005019626089587925 +0.008420570821466453,0.009616427137872887,0.007864771718905999,0.005004784316185516,0.003877565017449682,0.0035691100842510787,0.0033169649203863825,0.003042649815272362,0.003013716223391794,0.003381592099167687,0.004310178342501925,0.005728800425860402 +0.009376032796770442,0.010549647321666498,0.008888454835928756,0.006060512264203289,0.0044250868515842805,0.004034542305475729,0.003729413067508444,0.0034054148166249632,0.0033664738171837335,0.0037772581847965135,0.004848880498043129,0.006580601997475722 +0.010264377945860754,0.011357527275900739,0.009877034699340564,0.0073607364825850185,0.005085064622244623,0.004551664339128322,0.0041852563220438595,0.0038054594912424865,0.0037546776123082264,0.004216329450936342,0.005446871498569573,0.007578837096691521 +0.011090642558312904,0.011869446748684958,0.010740688814534554,0.008370204385904245,0.005831469264167483,0.005102620771797574,0.004671841823927095,0.004232389915629548,0.004167513805729991,0.004684086347433927,0.006089941383836643,0.00864534966517664 +0.011632274786882248,0.01219594610713904,0.011459933561920432,0.009489862673363212,0.006903955404936932,0.005761378364569876,0.005243171877159938,0.004731691462916934,0.004652638301718311,0.005231850954497409,0.006884307886165838,0.009795455861380475 +0.011984414327959655,0.012285818638718336,0.011967371255065706,0.010311391978479939,0.00808892266823427,0.00644489168762315,0.005830905107654485,0.005245836515379726,0.005145078726268058,0.005791758588359703,0.007724922273499259,0.010726138191482267 +0.01222301140307959,0.012285818638718336,0.01234032033436578,0.011075512413231261,0.009172466468920823,0.007251049824128679,0.006504521746718202,0.00582816631920554,0.005699430334763724,0.006439603711688978,0.008750885345241263,0.011416331698743223 +0.012276613060580074,0.012285818638718336,0.012428860016810532,0.011679777726681814,0.00994935030683068,0.008118555946928192,0.00720595812255343,0.006435333465508885,0.0062735469732990955,0.007125030012084954,0.009750553457495597,0.01187748877300686 +0.012276613060580074,0.012285818638718336,0.012428860016810532,0.012193162285174315,0.01052248781049857,0.009066096190535822,0.007944841616720726,0.007074939693974181,0.006875777949507184,0.00786021472358285,0.010662632112592068,0.01225802354480509 +0.012174307951741906,0.012183436816729017,0.01232528618333711,0.012457111199146699,0.010984412704384399,0.009927368767668112,0.008631822330741182,0.007657805741952258,0.007417877181012247,0.008579678948475623,0.01115304242271875,0.012416394121487595 +0.012072002842903738,0.012081054994739698,0.01222171234986369,0.012379468940151172,0.011371976112550853,0.010487284499369687,0.009341287646050906,0.008257077224861686,0.007975435458005045,0.009342239842666807,0.01148581662853837,0.012356791625102236 +0.01196969773406557,0.011978673172750379,0.012118138516390268,0.012274558186421076,0.011798206035102277,0.010866611745623981,0.010105649695891134,0.008915356415084104,0.008596905237828405,0.010110693665112183,0.011821105961924224,0.01225207305200815 +0.011867392625227402,0.01187629135076106,0.012014564682916846,0.01216964743269098,0.01213505048640511,0.011238915686185291,0.010640882945620544,0.00961122369941466,0.009281537545337061,0.01058641779881802,0.012103201467901373,0.012147354478914064 +0.011867392625227402,0.01187629135076106,0.012014564682916846,0.01216964743269098,0.01235593076304239,0.011687750724133314,0.011104498994939947,0.010235455644604183,0.009980555486533375,0.011024867711649757,0.012326624565469478,0.012147354478914064 +0.011765087516389234,0.01177390952877174,0.011910990849443425,0.012064736678960885,0.012305209269753665,0.01202453411663522,0.011443412172710415,0.010623799381666932,0.010390040510428803,0.011386687972429067,0.012227610004061378,0.012042635905819978 +0.011765087516389234,0.01177390952877174,0.011910990849443425,0.012064736678960885,0.012305209269753665,0.012301982701401051,0.011843797577715974,0.011045711467591807,0.010807055815853258,0.011764093935068472,0.012227610004061378,0.012042635905819978 +0.011662782407551066,0.011671527706782422,0.011807417015970004,0.01195982592523079,0.012198207450016676,0.012377109763305898,0.012024388266269777,0.011313970863172903,0.011089392849450912,0.011905026562540468,0.0121212829605478,0.011937917332725891 +0.011560477298712898,0.011569145884793101,0.011703843182496582,0.011854915171500694,0.012091205630279687,0.012368221290279906,0.012103945159526314,0.01146822146198662,0.011272106182795366,0.011916192696169146,0.012014955917034222,0.011833198759631803 +0.011458172189874731,0.011466764062803782,0.011600269349023161,0.011750004417770599,0.011984203810542698,0.01226000847554218,0.012109651233078772,0.011527495533757606,0.01133991013133856,0.01181784142494709,0.011908628873520644,0.011728480186537717 +0.011458172189874731,0.011466764062803782,0.011600269349023161,0.011750004417770599,0.011984203810542698,0.01226000847554218,0.012156977162609139,0.011635563642024328,0.011444849526639576,0.01181784142494709,0.011908628873520644,0.011728480186537717 +0.011355867081036565,0.011364382240814463,0.01149669551554974,0.011645093664040505,0.011877201990805709,0.01215054411415341,0.01204843272365727,0.011579550410394636,0.011383401332330765,0.01171232498365292,0.011802301830007068,0.01162376161344363 +0.011458172189874731,0.011466764062803782,0.011600269349023161,0.011750004417770599,0.011984203810542698,0.01226000847554218,0.012156977162609139,0.011683870684362156,0.011485954497486899,0.01181784142494709,0.011908628873520644,0.011728480186537717 +0.011458172189874731,0.011466764062803782,0.011600269349023161,0.011750004417770599,0.011984203810542698,0.01226000847554218,0.012156977162609139,0.011683870684362156,0.011485954497486899,0.01181784142494709,0.011908628873520644,0.011728480186537717 +0.011458172189874731,0.011466764062803782,0.011600269349023161,0.011750004417770599,0.011984203810542698,0.01226000847554218,0.012156977162609139,0.011683870684362156,0.011485954497486899,0.01181784142494709,0.011908628873520644,0.011728480186537717 +0.011355867081036565,0.011364382240814463,0.01149669551554974,0.011645093664040505,0.011877201990805709,0.01215054411415341,0.01204843272365727,0.011579550410394636,0.011383401332330765,0.01171232498365292,0.011802301830007068,0.01162376161344363 +0.011355867081036565,0.011364382240814463,0.01149669551554974,0.011645093664040505,0.011877201990805709,0.01215054411415341,0.01204843272365727,0.011579550410394636,0.011383401332330765,0.01171232498365292,0.011802301830007068,0.01162376161344363 +0.011355867081036565,0.011364382240814463,0.01149669551554974,0.011645093664040505,0.011877201990805709,0.01215054411415341,0.01204843272365727,0.011579550410394636,0.011383401332330765,0.01171232498365292,0.011802301830007068,0.01162376161344363 +0.011458172189874731,0.011466764062803782,0.011600269349023161,0.011750004417770599,0.011984203810542698,0.01226000847554218,0.012156977162609139,0.011683870684362156,0.011485954497486899,0.01181784142494709,0.011908628873520644,0.011728480186537717 +0.011458172189874731,0.011466764062803782,0.011600269349023161,0.011750004417770599,0.011984203810542698,0.01226000847554218,0.012156977162609139,0.011683870684362156,0.011485954497486899,0.01181784142494709,0.011908628873520644,0.011728480186537717 +0.011458172189874731,0.011466764062803782,0.011600269349023161,0.011750004417770599,0.011984203810542698,0.01226000847554218,0.012156977162609139,0.011683870684362156,0.011485954497486899,0.01181784142494709,0.011908628873520644,0.011728480186537717 +0.011458172189874731,0.011466764062803782,0.011600269349023161,0.011750004417770599,0.011984203810542698,0.01226000847554218,0.012156977162609139,0.011683870684362156,0.011485954497486899,0.01181784142494709,0.011908628873520644,0.011728480186537717 +0.011458172189874731,0.011466764062803782,0.011600269349023161,0.011750004417770599,0.011984203810542698,0.01226000847554218,0.012156977162609139,0.011683870684362156,0.011485954497486899,0.01181784142494709,0.011908628873520644,0.011728480186537717 +0.011560477298712898,0.011569145884793101,0.011703843182496582,0.011854915171500694,0.012091205630279687,0.01236947283693095,0.012265521601561007,0.011788190958329677,0.01158850766264303,0.011923357866241262,0.012014955917034222,0.011833198759631803 +0.011458172189874731,0.011466764062803782,0.011600269349023161,0.011750004417770599,0.011984203810542698,0.01226000847554218,0.012156977162609139,0.011683870684362156,0.011485954497486899,0.01181784142494709,0.011908628873520644,0.011728480186537717 +0.011458172189874731,0.011466764062803782,0.011600269349023161,0.011750004417770599,0.011984203810542698,0.01226000847554218,0.012156977162609139,0.011683870684362156,0.011485954497486899,0.01181784142494709,0.011908628873520644,0.01162376161344363 +0.011355867081036565,0.011364382240814463,0.01149669551554974,0.011645093664040505,0.011877201990805709,0.01215054411415341,0.01204843272365727,0.011579550410394636,0.011383401332330765,0.01171232498365292,0.011802301830007068,0.01162376161344363 +0.011355867081036565,0.011364382240814463,0.01149669551554974,0.011645093664040505,0.011877201990805709,0.01215054411415341,0.01204843272365727,0.011579550410394636,0.011383401332330765,0.01171232498365292,0.011802301830007068,0.01162376161344363 +0.011253561972198397,0.011262000418825142,0.011393121682076318,0.01154018291031041,0.01177020017106872,0.012041079752764642,0.011939888284705404,0.011475230136427117,0.011280848167174631,0.01160680854235875,0.01169597478649349,0.011519043040349543 +0.011048951754522062,0.011057236774846504,0.011185974015129479,0.01133036140285022,0.011556196531594745,0.011822151029987103,0.01172279940680167,0.01126658958849208,0.011075741836862366,0.01150129210106458,0.011483320699466336,0.01130960589416137 +0.010844341536845728,0.010852473130867867,0.010978826348182636,0.011120539895390032,0.011342192892120767,0.011603222307209563,0.011505710528897935,0.011057949040557041,0.0108706355065501,0.011184742777182068,0.011270666612439181,0.011100168747973198 diff --git a/examples/OptimalTransport/OptimalTransport_demo.jl b/examples/OptimalTransport/OptimalTransport_demo.jl new file mode 100644 index 0000000..d556db0 --- /dev/null +++ b/examples/OptimalTransport/OptimalTransport_demo.jl @@ -0,0 +1,1480 @@ +### A Pluto.jl notebook ### +# v0.19.0 + +using Markdown +using InteractiveUtils + +# This Pluto notebook uses @bind for interactivity. When running this notebook outside of Pluto, the following 'mock version' of @bind gives bound variables a default value (instead of an error). +macro bind(def, element) + quote + local iv = try Base.loaded_modules[Base.PkgId(Base.UUID("6e696c72-6542-2067-7265-42206c756150"), "AbstractPlutoDingetjes")].Bonds.initial_value catch; b -> missing; end + local el = $(esc(element)) + global $(esc(def)) = Core.applicable(Base.get, el) ? Base.get(el) : iv(el) + el + end +end + +# ╔═╡ db98d796-c0d2-11ec-2c96-f7510a6d771c +begin + using OptimalTransport, LinearAlgebra + using Tables, DataFrames + import PlutoUI, CSV, Downloads, Tulip + import CairoMakie as Makie + "Done with packages" +end + +# ╔═╡ 8d867c72-2924-46a0-8a60-7c6e52f71a67 +md"""# `OptimalTransport.jl` applied to `CBIOMES` + +#### Methods + +See [this wikipedia page](https://en.wikipedia.org/wiki/Transportation_theory_(mathematics)) and the [package documentation](https://juliaoptimaltransport.github.io/OptimalTransport.jl/dev/examples/basic/). + +#### Climatologies + +Zonal mean Chl computed, between `-179.75 W` and `-120.25 W`, for each month as a function of latitude. + +- Model : see +- Satellite : +""" + +# ╔═╡ c1df03d1-6205-4caa-9bdf-7daa5ba59d3a +md"""## Input Data Visualization""" + +# ╔═╡ da9cc45d-8529-4965-b213-61b2657fce28 +begin + + m1_select = @bind m1 PlutoUI.Slider(1:12;default=1, show_value=true) + m2_select = @bind m2 PlutoUI.Slider(1:12;default=2, show_value=true) + + md"""## Select Months To Compare + + Compute Earth Mover Distance / Optimal Transport between two months. + + - month 1 index : $(m1_select) + - month 2 index : $(m2_select) + + """ +end + +# ╔═╡ 29b6a32d-9003-4bc7-8351-0d1881153bf6 +md"""## Appendix""" + +# ╔═╡ 973f46d5-83b7-466a-a8c3-406643f7dbc5 +begin + lons=-179.75:0.5:-120.25 + lats=-19.75:0.5:49.75 + + pth=joinpath(tempdir(),"OptimalTransport_example") + url="https://raw.githubusercontent.com/gaelforget/OceanStateEstimation.jl/master/examples/OptimalTransport/M.csv" + M=Tables.matrix(CSV.read(Downloads.download(url),DataFrame)) + url="https://raw.githubusercontent.com/gaelforget/OceanStateEstimation.jl/master/examples/OptimalTransport/S.csv" + S=Tables.matrix(CSV.read(Downloads.download(url),DataFrame)) + + nx=size(M,1) + Cost=Float64.([abs(i-j) for i in 1:nx, j in 1:nx]) + + "Input Data Ready" +end + +# ╔═╡ a5301146-6eac-4bcd-97d9-3bfd6fe4f213 +let + f=Makie.Figure() + ax1=Makie.Axis(f[1,1],title="model Chl",ylabel="month",xlabel="latitude") + hm1=Makie.heatmap!(ax1,lats,1:12,M,colorrange=(0.0,0.015)) + Makie.Colorbar(f[1, 2], hm1) + ax2=Makie.Axis(f[2,1],title="satellite Chl",ylabel="month",xlabel="latitude") + hm2=Makie.heatmap!(ax2,lats,1:12,S,colorrange=(0.005,0.01)) + Makie.Colorbar(f[2, 2], hm2) + + f +end + +# ╔═╡ ab49655b-ab30-457c-a476-9f6dd310ab4b +begin + Da=emd2(M[:,m1],M[:,m2], Cost, Tulip.Optimizer()) + Da=round(Da,digits=4) +end + +# ╔═╡ 7796c8e9-a090-4aab-a073-50f839ceab22 +begin + ε = 0.01 +# γ = sinkhorn(M[:,m1], S[:,m2], Cost, ε, SinkhornGibbs(); maxiter=5_000) +# γ = sinkhorn(M[:,m1], S[:,m2], Cost, ε, SinkhornStabilized(); maxiter=5_000) + γ = sinkhorn(M[:,m1], M[:,m2], Cost, ε, SinkhornEpsilonScaling(SinkhornStabilized()); maxiter=5_000) + Db=dot(γ, Cost) #compute optimal cost, directly + Db=round(Db,digits=4) +end + +# ╔═╡ fe0ac519-7995-419a-a8ac-02af958342cd +md""" +#### Linear Programming + +optimal distance : $(Da) + +#### Stabilized Sinkhorn + +optimal distance : $(Db) + +""" + +# ╔═╡ 00000000-0000-0000-0000-000000000001 +PLUTO_PROJECT_TOML_CONTENTS = """ +[deps] +CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" +CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" +DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +Downloads = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +OptimalTransport = "7e02d93a-ae51-4f58-b602-d97af76e3b33" +PlutoUI = "7f904dfe-b85e-4ff6-b463-dae2292396a8" +Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +Tulip = "6dd1b50a-3aae-11e9-10b5-ef983d2400fa" + +[compat] +CSV = "~0.10.4" +CairoMakie = "~0.7.5" +DataFrames = "~1.3.3" +OptimalTransport = "~0.3.19" +PlutoUI = "~0.7.38" +Tables = "~1.7.0" +Tulip = "~0.9.2" +""" + +# ╔═╡ 00000000-0000-0000-0000-000000000002 +PLUTO_MANIFEST_TOML_CONTENTS = """ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.7.2" +manifest_format = "2.0" + +[[deps.AMD]] +deps = ["Libdl", "LinearAlgebra", "SparseArrays", "Test"] +git-tree-sha1 = "fc66ffc5cff568936649445f58a55b81eaf9592c" +uuid = "14f7f29c-3bd6-536c-9a0b-7339e30b5a3e" +version = "0.4.0" + +[[deps.AbstractFFTs]] +deps = ["ChainRulesCore", "LinearAlgebra"] +git-tree-sha1 = "6f1d9bc1c08f9f4a8fa92e3ea3cb50153a1b40d4" +uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" +version = "1.1.0" + +[[deps.AbstractPlutoDingetjes]] +deps = ["Pkg"] +git-tree-sha1 = "8eaf9f1b4921132a4cff3f36a1d9ba923b14a481" +uuid = "6e696c72-6542-2067-7265-42206c756150" +version = "1.1.4" + +[[deps.AbstractTrees]] +git-tree-sha1 = "03e0550477d86222521d254b741d470ba17ea0b5" +uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" +version = "0.3.4" + +[[deps.Adapt]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "af92965fb30777147966f58acb05da51c5616b5f" +uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" +version = "3.3.3" + +[[deps.Animations]] +deps = ["Colors"] +git-tree-sha1 = "e81c509d2c8e49592413bfb0bb3b08150056c79d" +uuid = "27a7e980-b3e6-11e9-2bcd-0b925532e340" +version = "0.4.1" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" + +[[deps.ArrayInterface]] +deps = ["Compat", "IfElse", "LinearAlgebra", "Requires", "SparseArrays", "Static"] +git-tree-sha1 = "c933ce606f6535a7c7b98e1d86d5d1014f730596" +uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" +version = "5.0.7" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.Automa]] +deps = ["Printf", "ScanByte", "TranscodingStreams"] +git-tree-sha1 = "d50976f217489ce799e366d9561d56a98a30d7fe" +uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b" +version = "0.8.2" + +[[deps.AxisAlgorithms]] +deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] +git-tree-sha1 = "66771c8d21c8ff5e3a93379480a2307ac36863f7" +uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" +version = "1.0.1" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.BenchmarkTools]] +deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] +git-tree-sha1 = "4c10eee4af024676200bc7752e536f858c6b8f93" +uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" +version = "1.3.1" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "19a35467a82e236ff51bc17a3a44b69ef35185a2" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.8+0" + +[[deps.CEnum]] +git-tree-sha1 = "215a9aa4a1f23fbd05b92769fdd62559488d70e9" +uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" +version = "0.4.1" + +[[deps.CSV]] +deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings"] +git-tree-sha1 = "873fb188a4b9d76549b81465b1f75c82aaf59238" +uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" +version = "0.10.4" + +[[deps.Cairo]] +deps = ["Cairo_jll", "Colors", "Glib_jll", "Graphics", "Libdl", "Pango_jll"] +git-tree-sha1 = "d0b3f8b4ad16cb0a2988c6788646a5e6a17b6b1b" +uuid = "159f3aea-2a34-519c-b102-8c37f9878175" +version = "1.0.5" + +[[deps.CairoMakie]] +deps = ["Base64", "Cairo", "Colors", "FFTW", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "SHA", "StaticArrays"] +git-tree-sha1 = "4a0de4f5aa2d5d27a1efa293aeabb1a081e46b2b" +uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" +version = "0.7.5" + +[[deps.Cairo_jll]] +deps = ["Artifacts", "Bzip2_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.16.1+1" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "9950387274246d08af38f6eef8cb5480862a435f" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.14.0" + +[[deps.ChangesOfVariables]] +deps = ["ChainRulesCore", "LinearAlgebra", "Test"] +git-tree-sha1 = "bf98fa45a0a4cee295de98d4c1462be26345b9a1" +uuid = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" +version = "0.1.2" + +[[deps.CodecBzip2]] +deps = ["Bzip2_jll", "Libdl", "TranscodingStreams"] +git-tree-sha1 = "2e62a725210ce3c3c2e1a3080190e7ca491f18d7" +uuid = "523fee87-0ab8-5b00-afb7-3ecf72e48cfd" +version = "0.7.2" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "ded953804d019afa9a3f98981d99b33e3db7b6da" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.0" + +[[deps.ColorBrewer]] +deps = ["Colors", "JSON", "Test"] +git-tree-sha1 = "61c5334f33d91e570e1d0c3eb5465835242582c4" +uuid = "a2cac450-b92f-5266-8821-25eda20663c8" +version = "0.4.0" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "Colors", "FixedPointNumbers", "Random"] +git-tree-sha1 = "12fc73e5e0af68ad3137b886e3f7c1eacfca2640" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.17.1" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "024fe24d83e4a5bf5fc80501a314ce0d1aa35597" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.11.0" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "SpecialFunctions", "Statistics", "TensorCore"] +git-tree-sha1 = "3f1f500312161f1ae067abe07d13b40f78f32e07" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.9.8" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "417b0ed7b8b838aa6ca0a87aadf1bb9eb111ce40" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.12.8" + +[[deps.Compat]] +deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "SHA", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"] +git-tree-sha1 = "b153278a25dd42c65abbf4e62344f9d22e59191b" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "3.43.0" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" + +[[deps.Contour]] +deps = ["StaticArrays"] +git-tree-sha1 = "9f02045d934dc030edad45944ea80dbd1f0ebea7" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.5.7" + +[[deps.Crayons]] +git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" +uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" +version = "4.1.1" + +[[deps.DataAPI]] +git-tree-sha1 = "cc70b17275652eb47bc9e5f81635981f13cea5c8" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.9.0" + +[[deps.DataFrames]] +deps = ["Compat", "DataAPI", "Future", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrettyTables", "Printf", "REPL", "Reexport", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] +git-tree-sha1 = "6c19003824cbebd804a51211fd3bbd81bf1ecad5" +uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +version = "1.3.3" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "3daef5523dd2e769dad2365274f760ff5f282c7d" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.11" + +[[deps.DataValueInterfaces]] +git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" +uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" +version = "1.0.0" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" + +[[deps.DensityInterface]] +deps = ["InverseFunctions", "Test"] +git-tree-sha1 = "80c3e8639e3353e5d2912fb3a1916b8455e2494b" +uuid = "b429d917-457f-4dbc-8f4c-0cc954292b1d" +version = "0.4.0" + +[[deps.Distances]] +deps = ["LinearAlgebra", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "3258d0659f812acde79e8a74b11f17ac06d0ca04" +uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" +version = "0.10.7" + +[[deps.Distributed]] +deps = ["Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" + +[[deps.Distributions]] +deps = ["ChainRulesCore", "DensityInterface", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SparseArrays", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns", "Test"] +git-tree-sha1 = "5a4168170ede913a2cd679e53c2123cb4b889795" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.53" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "b19534d1895d702889b219c382a6e18010797f0b" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.8.6" + +[[deps.Downloads]] +deps = ["ArgTools", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" + +[[deps.EarCut_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3f3a2501fa7236e9b911e0f7a588c657e822bb6d" +uuid = "5ae413db-bbd1-5e63-b57d-d24a61df00f5" +version = "2.2.3+0" + +[[deps.EllipsisNotation]] +deps = ["ArrayInterface"] +git-tree-sha1 = "d064b0340db45d48893e7604ec95e7a2dc9da904" +uuid = "da5c29d0-fa7d-589e-88eb-ea29b0a81949" +version = "1.5.0" + +[[deps.ExactOptimalTransport]] +deps = ["Distances", "Distributions", "FillArrays", "LinearAlgebra", "MathOptInterface", "PDMats", "QuadGK", "SparseArrays", "StatsBase"] +git-tree-sha1 = "170c201050738e908c92018bc2cfc7272089cd48" +uuid = "24df6009-d856-477c-ac5c-91f668376b31" +version = "0.2.2" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "bad72f730e9e91c08d9427d5e8db95478a3c323d" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.4.8+0" + +[[deps.ExprTools]] +git-tree-sha1 = "56559bbef6ca5ea0c0818fa5c90320398a6fbf8d" +uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" +version = "0.1.8" + +[[deps.FFMPEG]] +deps = ["FFMPEG_jll"] +git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" +uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" +version = "0.4.1" + +[[deps.FFMPEG_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "Pkg", "Zlib_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "d8a578692e3077ac998b50c0217dfd67f21d1e5f" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "4.4.0+0" + +[[deps.FFTW]] +deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] +git-tree-sha1 = "505876577b5481e50d089c1c68899dfb6faebc62" +uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" +version = "1.4.6" + +[[deps.FFTW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" +uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" +version = "3.3.10+0" + +[[deps.FastClosures]] +git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" +uuid = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a" +version = "0.3.2" + +[[deps.FileIO]] +deps = ["Pkg", "Requires", "UUIDs"] +git-tree-sha1 = "80ced645013a5dbdc52cf70329399c35ce007fae" +uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" +version = "1.13.0" + +[[deps.FilePathsBase]] +deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"] +git-tree-sha1 = "129b104185df66e408edd6625d480b7f9e9823a0" +uuid = "48062228-2e41-5def-b9a4-89aafe57970f" +version = "0.9.18" + +[[deps.FillArrays]] +deps = ["LinearAlgebra", "Random", "SparseArrays", "Statistics"] +git-tree-sha1 = "246621d23d1f43e3b9c368bf3b72b2331a27c286" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "0.13.2" + +[[deps.FixedPointNumbers]] +deps = ["Statistics"] +git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.8.4" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.13.93+0" + +[[deps.Formatting]] +deps = ["Printf"] +git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" +uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" +version = "0.4.2" + +[[deps.FreeType]] +deps = ["CEnum", "FreeType2_jll"] +git-tree-sha1 = "cabd77ab6a6fdff49bfd24af2ebe76e6e018a2b4" +uuid = "b38be410-82b0-50bf-ab77-7b57e271db43" +version = "4.0.0" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "87eb71354d8ec1a96d4a7636bd57a7347dde3ef9" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.10.4+0" + +[[deps.FreeTypeAbstraction]] +deps = ["ColorVectorSpace", "Colors", "FreeType", "GeometryBasics"] +git-tree-sha1 = "b5c7fe9cea653443736d264b85466bad8c574f4a" +uuid = "663a7486-cb36-511b-a19d-713bb74d65c9" +version = "0.9.9" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.10+0" + +[[deps.Future]] +deps = ["Random"] +uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" + +[[deps.GeometryBasics]] +deps = ["EarCut_jll", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "83ea630384a13fc4f002b77690bc0afeb4255ac9" +uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" +version = "0.4.2" + +[[deps.Gettext_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" +uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" +version = "0.21.0+0" + +[[deps.Glib_jll]] +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "a32d672ac2c967f3deb8a81d828afc739c838a06" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.68.3+2" + +[[deps.Graphics]] +deps = ["Colors", "LinearAlgebra", "NaNMath"] +git-tree-sha1 = "1c5a84319923bea76fa145d49e93aa4394c73fc2" +uuid = "a2bd30eb-e257-5431-a919-1863eab51364" +version = "1.1.1" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.14+0" + +[[deps.GridLayoutBase]] +deps = ["GeometryBasics", "InteractiveUtils", "Observables"] +git-tree-sha1 = "169c3dc5acae08835a573a8a3e25c62f689f8b5c" +uuid = "3955a311-db13-416c-9275-1d80ed98e5e9" +version = "0.6.5" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] +git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "2.8.1+1" + +[[deps.Hyperscript]] +deps = ["Test"] +git-tree-sha1 = "8d511d5b81240fc8e6802386302675bdf47737b9" +uuid = "47d2ed2b-36de-50cf-bf87-49c2cf4b8b91" +version = "0.0.4" + +[[deps.HypertextLiteral]] +git-tree-sha1 = "2b078b5a615c6c0396c77810d92ee8c6f470d238" +uuid = "ac1192a8-f4b3-4bfe-ba22-af5b92cd3ab2" +version = "0.9.3" + +[[deps.IOCapture]] +deps = ["Logging", "Random"] +git-tree-sha1 = "f7be53659ab06ddc986428d3a9dcc95f6fa6705a" +uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" +version = "0.2.2" + +[[deps.IfElse]] +git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" +uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" +version = "0.1.1" + +[[deps.ImageCore]] +deps = ["AbstractFFTs", "ColorVectorSpace", "Colors", "FixedPointNumbers", "Graphics", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "Reexport"] +git-tree-sha1 = "9a5c62f231e5bba35695a20988fc7cd6de7eeb5a" +uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534" +version = "0.9.3" + +[[deps.ImageIO]] +deps = ["FileIO", "JpegTurbo", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs"] +git-tree-sha1 = "464bdef044df52e6436f8c018bea2d48c40bb27b" +uuid = "82e4d734-157c-48bb-816b-45c225c6df19" +version = "0.6.1" + +[[deps.Imath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "87f7662e03a649cffa2e05bf19c303e168732d3e" +uuid = "905a6f67-0a94-5f89-b386-d35d92009cd1" +version = "3.1.2+0" + +[[deps.IndirectArrays]] +git-tree-sha1 = "012e604e1c7458645cb8b436f8fba789a51b257f" +uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959" +version = "1.0.0" + +[[deps.Inflate]] +git-tree-sha1 = "f5fc07d4e706b84f72d54eedcc1c13d92fb0871c" +uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" +version = "0.1.2" + +[[deps.InlineStrings]] +deps = ["Parsers"] +git-tree-sha1 = "61feba885fac3a407465726d0c330b3055df897f" +uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" +version = "1.1.2" + +[[deps.IntelOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "d979e54b71da82f3a65b62553da4fc3d18c9004c" +uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" +version = "2018.0.3+2" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.Interpolations]] +deps = ["AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] +git-tree-sha1 = "b7bc05649af456efc75d178846f47006c2c4c3c7" +uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" +version = "0.13.6" + +[[deps.IntervalSets]] +deps = ["Dates", "EllipsisNotation", "Statistics"] +git-tree-sha1 = "bcf640979ee55b652f3b01650444eb7bbe3ea837" +uuid = "8197267c-284f-5f27-9208-e0e47529a953" +version = "0.5.4" + +[[deps.InverseFunctions]] +deps = ["Test"] +git-tree-sha1 = "91b5dcf362c5add98049e6c29ee756910b03051d" +uuid = "3587e190-3f89-42d0-90ee-14403ec27112" +version = "0.1.3" + +[[deps.InvertedIndices]] +git-tree-sha1 = "bee5f1ef5bf65df56bdd2e40447590b272a5471f" +uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f" +version = "1.1.0" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "7fd44fd4ff43fc60815f8e764c0f352b83c49151" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.1.1" + +[[deps.Isoband]] +deps = ["isoband_jll"] +git-tree-sha1 = "f9b6d97355599074dc867318950adaa6f9946137" +uuid = "f1662d9f-8043-43de-a69a-05efc1cc6ff4" +version = "0.1.1" + +[[deps.IterTools]] +git-tree-sha1 = "fa6287a4469f5e048d763df38279ee729fbd44e5" +uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" +version = "1.4.0" + +[[deps.IterativeSolvers]] +deps = ["LinearAlgebra", "Printf", "Random", "RecipesBase", "SparseArrays"] +git-tree-sha1 = "1169632f425f79429f245113b775a0e3d121457c" +uuid = "42fd0dbc-a981-5370-80f2-aaf504508153" +version = "0.9.2" + +[[deps.IteratorInterfaceExtensions]] +git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "1.0.0" + +[[deps.JLLWrappers]] +deps = ["Preferences"] +git-tree-sha1 = "abc9885a7ca2052a736a600f7fa66209f96506e1" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.4.1" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "3c837543ddb02250ef42f4738347454f95079d4e" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.3" + +[[deps.JpegTurbo]] +deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"] +git-tree-sha1 = "a77b273f1ddec645d1b7c4fd5fb98c8f90ad10a5" +uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0" +version = "0.1.1" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "b53380851c6e6664204efb2e62cd24fa5c47e4ba" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "2.1.2+0" + +[[deps.KernelDensity]] +deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] +git-tree-sha1 = "591e8dc09ad18386189610acafb970032c519707" +uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" +version = "0.6.3" + +[[deps.Krylov]] +deps = ["LinearAlgebra", "Printf", "SparseArrays"] +git-tree-sha1 = "a024280a69c49f51ba29d2deb66f07508f0b9b49" +uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" +version = "0.7.13" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.1+0" + +[[deps.LDLFactorizations]] +deps = ["AMD", "LinearAlgebra", "SparseArrays", "Test"] +git-tree-sha1 = "736e01b9b2d443c4e3351aebe551b8a374ab9c05" +uuid = "40e66cde-538c-5869-a4ad-c39174c6795b" +version = "0.8.2" + +[[deps.LZO_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" +uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" +version = "2.10.1+0" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "f2355693d6778a178ade15952b7ac47a4ff97996" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.3.0" + +[[deps.LazyArtifacts]] +deps = ["Artifacts", "Pkg"] +uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" + +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" + +[[deps.LibGit2]] +deps = ["Base64", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" +uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" +version = "3.2.2+1" + +[[deps.Libgcrypt_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] +git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" +uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" +version = "1.8.7+0" + +[[deps.Libgpg_error_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" +uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" +version = "1.42.0+0" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "42b62845d70a619f063a7da093d995ec8e15e778" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.16.1+1" + +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.35.0+0" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.36.0+0" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.LinearOperators]] +deps = ["FastClosures", "LDLFactorizations", "LinearAlgebra", "Printf", "SparseArrays", "TimerOutputs"] +git-tree-sha1 = "5f5884fcd1ab037a286de2b21c38db7e4c903056" +uuid = "5c8ed15e-5a4c-59e4-a42b-c7e8811fb125" +version = "2.3.1" + +[[deps.LogExpFunctions]] +deps = ["ChainRulesCore", "ChangesOfVariables", "DocStringExtensions", "InverseFunctions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "a970d55c2ad8084ca317a4658ba6ce99b7523571" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.12" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[deps.MKL_jll]] +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] +git-tree-sha1 = "e595b205efd49508358f7dc670a940c790204629" +uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" +version = "2022.0.0+0" + +[[deps.Makie]] +deps = ["Animations", "Base64", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "Distributions", "DocStringExtensions", "FFMPEG", "FileIO", "FixedPointNumbers", "Formatting", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageIO", "IntervalSets", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MakieCore", "Markdown", "Match", "MathTeXEngine", "Observables", "OffsetArrays", "Packing", "PlotUtils", "PolygonOps", "Printf", "Random", "RelocatableFolders", "Serialization", "Showoff", "SignedDistanceFields", "SparseArrays", "StaticArrays", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "UnicodeFun"] +git-tree-sha1 = "63de3b8a5c1f764e4e3a036c7752a632b4f0b8d1" +uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" +version = "0.16.6" + +[[deps.MakieCore]] +deps = ["Observables"] +git-tree-sha1 = "c5fb1bfac781db766f9e4aef96adc19a729bc9b2" +uuid = "20f20a25-4f0e-4fdf-b5d1-57303727442b" +version = "0.2.1" + +[[deps.MappedArrays]] +git-tree-sha1 = "e8b359ef06ec72e8c030463fe02efe5527ee5142" +uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900" +version = "0.4.1" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.Match]] +git-tree-sha1 = "1d9bc5c1a6e7ee24effb93f175c9342f9154d97f" +uuid = "7eb4fadd-790c-5f42-8a69-bfa0b872bfbf" +version = "1.2.0" + +[[deps.MathOptInterface]] +deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "JSON", "LinearAlgebra", "MutableArithmetics", "OrderedCollections", "Printf", "SparseArrays", "Test", "Unicode"] +git-tree-sha1 = "e8c9653877adcf8f3e7382985e535bb37b083598" +uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" +version = "0.10.9" + +[[deps.MathTeXEngine]] +deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "Test"] +git-tree-sha1 = "70e733037bbf02d691e78f95171a1fa08cdc6332" +uuid = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53" +version = "0.2.1" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "bf210ce90b6c9eed32d25dbcae1ebc565df2687f" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.0.2" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.MosaicViews]] +deps = ["MappedArrays", "OffsetArrays", "PaddedViews", "StackViews"] +git-tree-sha1 = "b34e3bc3ca7c94914418637cb10cc4d1d80d877d" +uuid = "e94cdb99-869f-56ef-bcf0-1ae2bcbe0389" +version = "0.3.3" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" + +[[deps.MutableArithmetics]] +deps = ["LinearAlgebra", "SparseArrays", "Test"] +git-tree-sha1 = "842b5ccd156e432f369b204bb704fd4020e383ac" +uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" +version = "0.3.3" + +[[deps.NNlib]] +deps = ["Adapt", "ChainRulesCore", "Compat", "LinearAlgebra", "Pkg", "Requires", "Statistics"] +git-tree-sha1 = "a59a614b8b4ea6dc1dcec8c6514e251f13ccbe10" +uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" +version = "0.8.4" + +[[deps.NaNMath]] +git-tree-sha1 = "b086b7ea07f8e38cf122f5016af580881ac914fe" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "0.3.7" + +[[deps.Netpbm]] +deps = ["FileIO", "ImageCore"] +git-tree-sha1 = "18efc06f6ec36a8b801b23f076e3c6ac7c3bf153" +uuid = "f09324ee-3d7c-5217-9330-fc30815ba969" +version = "1.0.2" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" + +[[deps.Observables]] +git-tree-sha1 = "fe29afdef3d0c4a8286128d4e45cc50621b1e43d" +uuid = "510215fc-4207-5dde-b226-833fc4488ee2" +version = "0.4.0" + +[[deps.OffsetArrays]] +deps = ["Adapt"] +git-tree-sha1 = "043017e0bdeff61cfbb7afeb558ab29536bbb5ed" +uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" +version = "1.10.8" + +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.5+1" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" + +[[deps.OpenEXR]] +deps = ["Colors", "FileIO", "OpenEXR_jll"] +git-tree-sha1 = "327f53360fdb54df7ecd01e96ef1983536d1e633" +uuid = "52e1d378-f018-4a11-a4be-720524705ac7" +version = "0.3.2" + +[[deps.OpenEXR_jll]] +deps = ["Artifacts", "Imath_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "923319661e9a22712f24596ce81c54fc0366f304" +uuid = "18a262bb-aa17-5467-a713-aee519bc75cb" +version = "3.1.1+0" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ab05aa4cc89736e95915b01e7279e61b1bfe33b8" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "1.1.14+0" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.5+0" + +[[deps.OptimalTransport]] +deps = ["ExactOptimalTransport", "IterativeSolvers", "LinearAlgebra", "LogExpFunctions", "NNlib", "Reexport"] +git-tree-sha1 = "79ba1dab46dfc7b677278ebe892a431788da86a9" +uuid = "7e02d93a-ae51-4f58-b602-d97af76e3b33" +version = "0.3.19" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.3.2+0" + +[[deps.OrderedCollections]] +git-tree-sha1 = "85f8e6578bf1f9ee0d11e7bb1b1456435479d47c" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.4.1" + +[[deps.PCRE_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "b2a7af664e098055a7529ad1a900ded962bca488" +uuid = "2f80f16e-611a-54ab-bc61-aa92de5b98fc" +version = "8.44.0+0" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "e8185b83b9fc56eb6456200e873ce598ebc7f262" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.7" + +[[deps.PNGFiles]] +deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] +git-tree-sha1 = "eb4dbb8139f6125471aa3da98fb70f02dc58e49c" +uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883" +version = "0.3.14" + +[[deps.Packing]] +deps = ["GeometryBasics"] +git-tree-sha1 = "1155f6f937fa2b94104162f01fa400e192e4272f" +uuid = "19eb6ba3-879d-56ad-ad62-d5c202156566" +version = "0.4.2" + +[[deps.PaddedViews]] +deps = ["OffsetArrays"] +git-tree-sha1 = "03a7a85b76381a3d04c7a1656039197e70eda03d" +uuid = "5432bcbf-9aad-5242-b902-cca2824c8663" +version = "0.5.11" + +[[deps.Pango_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3a121dfbba67c94a5bec9dde613c3d0cbcf3a12b" +uuid = "36c8627f-9965-5494-a995-c6b170f724f3" +version = "1.50.3+0" + +[[deps.Parsers]] +deps = ["Dates"] +git-tree-sha1 = "621f4f3b4977325b9128d5fae7a8b4829a0c2222" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.2.4" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "b4f5d02549a10e20780a24fce72bea96b6329e29" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.40.1+0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" + +[[deps.PkgVersion]] +deps = ["Pkg"] +git-tree-sha1 = "a7a7e1a88853564e551e4eba8650f8c38df79b37" +uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688" +version = "0.1.1" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "Printf", "Random", "Reexport", "Statistics"] +git-tree-sha1 = "bb16469fd5224100e422f0b027d26c5a25de1200" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.2.0" + +[[deps.PlutoUI]] +deps = ["AbstractPlutoDingetjes", "Base64", "ColorTypes", "Dates", "Hyperscript", "HypertextLiteral", "IOCapture", "InteractiveUtils", "JSON", "Logging", "Markdown", "Random", "Reexport", "UUIDs"] +git-tree-sha1 = "670e559e5c8e191ded66fa9ea89c97f10376bb4c" +uuid = "7f904dfe-b85e-4ff6-b463-dae2292396a8" +version = "0.7.38" + +[[deps.PolygonOps]] +git-tree-sha1 = "77b3d3605fc1cd0b42d95eba87dfcd2bf67d5ff6" +uuid = "647866c9-e3ac-4575-94e7-e3d426903924" +version = "0.1.2" + +[[deps.PooledArrays]] +deps = ["DataAPI", "Future"] +git-tree-sha1 = "28ef6c7ce353f0b35d0df0d5930e0d072c1f5b9b" +uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" +version = "1.4.1" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "47e5f437cc0e7ef2ce8406ce1e7e24d44915f88d" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.3.0" + +[[deps.PrettyTables]] +deps = ["Crayons", "Formatting", "Markdown", "Reexport", "Tables"] +git-tree-sha1 = "dfb54c4e414caa595a1f2ed759b160f5a3ddcba5" +uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" +version = "1.3.1" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.Profile]] +deps = ["Printf"] +uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" + +[[deps.ProgressMeter]] +deps = ["Distributed", "Printf"] +git-tree-sha1 = "d7a7aef8f8f2d537104f170139553b14dfe39fe9" +uuid = "92933f4c-e287-5a05-a399-4b506db050ca" +version = "1.7.2" + +[[deps.QOI]] +deps = ["ColorTypes", "FileIO", "FixedPointNumbers"] +git-tree-sha1 = "18e8f4d1426e965c7b532ddd260599e1510d26ce" +uuid = "4b34888f-f399-49d4-9bb3-47ed5cae4e65" +version = "1.0.0" + +[[deps.QPSReader]] +deps = ["Logging", "Pkg"] +git-tree-sha1 = "374833c0c1fd5cc623278581bf0c8259d7b35f10" +uuid = "10f199a5-22af-520b-b891-7ce84a7b1bd0" +version = "0.2.1" + +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "78aadffb3efd2155af139781b8a8df1ef279ea39" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.4.2" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.Random]] +deps = ["SHA", "Serialization"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.Ratios]] +deps = ["Requires"] +git-tree-sha1 = "dc84268fe0e3335a62e315a3a7cf2afa7178a734" +uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439" +version = "0.4.3" + +[[deps.RecipesBase]] +git-tree-sha1 = "6bf3f380ff52ce0832ddd3a2a7b9538ed1bcca7d" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "1.2.1" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "cdbd3b1338c72ce29d9584fdbe9e9b70eeb5adca" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "0.1.3" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "bf3188feca147ce108c76ad82c2792c57abe7b1f" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.7.0" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "68db32dff12bb6127bac73c209881191bf0efbb7" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.3.0+0" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" + +[[deps.SIMD]] +git-tree-sha1 = "7dbc15af7ed5f751a82bf3ed37757adf76c32402" +uuid = "fdea26ae-647d-5447-a871-4b548cad5224" +version = "3.4.1" + +[[deps.ScanByte]] +deps = ["Libdl", "SIMD"] +git-tree-sha1 = "9cc2955f2a254b18be655a4ee70bc4031b2b189e" +uuid = "7b38b023-a4d7-4c5e-8d43-3f3097f304eb" +version = "0.3.0" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "0b4b7f1393cff97c33891da2a0bf69c6ed241fda" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.1.0" + +[[deps.SentinelArrays]] +deps = ["Dates", "Random"] +git-tree-sha1 = "6a2f7d70512d205ca8c7ee31bfa9f142fe74310c" +uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" +version = "1.3.12" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" + +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" + +[[deps.SignedDistanceFields]] +deps = ["Random", "Statistics", "Test"] +git-tree-sha1 = "d263a08ec505853a5ff1c1ebde2070419e3f28e9" +uuid = "73760f76-fbc4-59ce-8f25-708e95d2df96" +version = "0.4.0" + +[[deps.Sixel]] +deps = ["Dates", "FileIO", "ImageCore", "IndirectArrays", "OffsetArrays", "REPL", "libsixel_jll"] +git-tree-sha1 = "8fb59825be681d451c246a795117f317ecbcaa28" +uuid = "45858cf5-a6b0-47a3-bbea-62219f50df47" +version = "0.1.2" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "b3363d7460f7d098ca0912c69b082f75625d7508" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.0.1" + +[[deps.SparseArrays]] +deps = ["LinearAlgebra", "Random"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + +[[deps.SpecialFunctions]] +deps = ["ChainRulesCore", "IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "5ba658aeecaaf96923dce0da9e703bd1fe7666f9" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.1.4" + +[[deps.StackViews]] +deps = ["OffsetArrays"] +git-tree-sha1 = "46e589465204cd0c08b4bd97385e4fa79a0c770c" +uuid = "cae243ae-269e-4f55-b966-ac2d0dc13c15" +version = "0.1.1" + +[[deps.Static]] +deps = ["IfElse"] +git-tree-sha1 = "87e9954dfa33fd145694e42337bdd3d5b07021a6" +uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" +version = "0.6.0" + +[[deps.StaticArrays]] +deps = ["LinearAlgebra", "Random", "Statistics"] +git-tree-sha1 = "4f6ec5d99a28e1a749559ef7dd518663c5eca3d5" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "1.4.3" + +[[deps.Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "8d7530a38dbd2c397be7ddd01a424e4f411dcc41" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.2.2" + +[[deps.StatsBase]] +deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "8977b17906b0a1cc74ab2e3a05faa16cf08a8291" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.33.16" + +[[deps.StatsFuns]] +deps = ["ChainRulesCore", "InverseFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "5950925ff997ed6fb3e985dcce8eb1ba42a0bbe7" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "0.9.18" + +[[deps.StructArrays]] +deps = ["Adapt", "DataAPI", "StaticArrays", "Tables"] +git-tree-sha1 = "57617b34fa34f91d536eb265df67c2d4519b8b98" +uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" +version = "0.6.5" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" + +[[deps.TableTraits]] +deps = ["IteratorInterfaceExtensions"] +git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" +uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" +version = "1.0.1" + +[[deps.Tables]] +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits", "Test"] +git-tree-sha1 = "5ce79ce186cc678bbb5c5681ca3379d1ddae11a1" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "1.7.0" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" + +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.TiffImages]] +deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "OffsetArrays", "PkgVersion", "ProgressMeter", "UUIDs"] +git-tree-sha1 = "aaa19086bc282630d82f818456bc40b4d314307d" +uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" +version = "0.5.4" + +[[deps.TimerOutputs]] +deps = ["ExprTools", "Printf"] +git-tree-sha1 = "d60b0c96a16aaa42138d5d38ad386df672cb8bd8" +uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" +version = "0.5.16" + +[[deps.TranscodingStreams]] +deps = ["Random", "Test"] +git-tree-sha1 = "216b95ea110b5972db65aa90f88d8d89dcb8851c" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.9.6" + +[[deps.Tulip]] +deps = ["CodecBzip2", "CodecZlib", "Krylov", "LDLFactorizations", "LinearAlgebra", "LinearOperators", "Logging", "MathOptInterface", "Printf", "QPSReader", "SparseArrays", "SuiteSparse", "Test", "TimerOutputs"] +git-tree-sha1 = "e1b60649eb84746ca7200e330819ea0ef647a57c" +uuid = "6dd1b50a-3aae-11e9-10b5-ef983d2400fa" +version = "0.9.2" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.WeakRefStrings]] +deps = ["DataAPI", "InlineStrings", "Parsers"] +git-tree-sha1 = "b1be2855ed9ed8eac54e5caff2afcdb442d52c23" +uuid = "ea10d353-3f73-51f8-a26c-33c1cb351aa5" +version = "1.4.2" + +[[deps.WoodburyMatrices]] +deps = ["LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "de67fa59e33ad156a590055375a30b23c40299d3" +uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" +version = "0.5.5" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "1acf5bdf07aa0907e0a37d3718bb88d4b687b74a" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.9.12+0" + +[[deps.XSLT_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" +uuid = "aed1982a-8fda-507f-9586-7b0439959a61" +version = "1.1.34+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "5be649d550f3f4b95308bf0183b82e2582876527" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.6.9+4" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4e490d5c960c314f33885790ed410ff3a94ce67e" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.9+4" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4fe47bd2247248125c428978740e18a681372dd4" +uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" +version = "1.1.3+4" + +[[deps.Xorg_libXext_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.4+4" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.10+4" + +[[deps.Xorg_libpthread_stubs_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6783737e45d3c59a4a4c4091f5f88cdcf0908cbb" +uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" +version = "0.1.0+3" + +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] +git-tree-sha1 = "daf17f441228e7a3833846cd048892861cff16d6" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.13.0+3" + +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "79c31e7844f6ecf779705fbc12146eb190b7d845" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.4.0+3" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" + +[[deps.isoband_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51b5eeb3f98367157a7a12a1fb0aa5328946c03c" +uuid = "9a68df92-36a6-505f-a73e-abb412b6bfb4" +version = "0.2.3+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.15.1+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl", "OpenBLAS_jll"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.2+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "94d180a6d2b5e55e447e2d27a29ed04fe79eb30c" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.38+0" + +[[deps.libsixel_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "78736dab31ae7a53540a6b752efc61f77b304c5b" +uuid = "075b6546-f08a-558a-be8f-8157d0f608a5" +version = "1.8.6+1" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] +git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.7+1" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "2021.5.5+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "3.5.0+0" +""" + +# ╔═╡ Cell order: +# ╟─8d867c72-2924-46a0-8a60-7c6e52f71a67 +# ╟─c1df03d1-6205-4caa-9bdf-7daa5ba59d3a +# ╟─a5301146-6eac-4bcd-97d9-3bfd6fe4f213 +# ╟─da9cc45d-8529-4965-b213-61b2657fce28 +# ╟─fe0ac519-7995-419a-a8ac-02af958342cd +# ╟─29b6a32d-9003-4bc7-8351-0d1881153bf6 +# ╟─db98d796-c0d2-11ec-2c96-f7510a6d771c +# ╟─973f46d5-83b7-466a-a8c3-406643f7dbc5 +# ╟─ab49655b-ab30-457c-a476-9f6dd310ab4b +# ╟─7796c8e9-a090-4aab-a073-50f839ceab22 +# ╟─00000000-0000-0000-0000-000000000001 +# ╟─00000000-0000-0000-0000-000000000002 diff --git a/examples/OptimalTransport/OptimalTransport_loop.jl b/examples/OptimalTransport/OptimalTransport_loop.jl new file mode 100644 index 0000000..689fc4a --- /dev/null +++ b/examples/OptimalTransport/OptimalTransport_loop.jl @@ -0,0 +1,214 @@ +using Distributed + +calc_SatToSat=true +calc_ModToMod=false +calc_ModToSat=false + +zm_test_case=true +choice_method="emd2" #only for 2D case + +test_methods=false + +println(calc_SatToSat) +println(calc_ModToMod) +println(calc_ModToSat) +println(choice_method) +println(zm_test_case) + +## + +pth_output=joinpath(tempdir(),"OptimalTransport_example") +!isdir(pth_output) ? mkdir(pth_output) : nothing + +@everywhere using Distributed, DistributedArrays, SharedArrays +@everywhere using OptimalTransport, Statistics, LinearAlgebra +@everywhere using Tulip, Distances, JLD2, Tables, CSV, DataFrames + +#@everywhere Cost=load("examples/example_Cost.jld2")["Cost"] +@everywhere M=Tables.matrix(CSV.read("examples/M.csv",DataFrame)) +@everywhere S=Tables.matrix(CSV.read("examples/S.csv",DataFrame)) + +@everywhere nx=size(M,1) + +## functions that use the "zonal sum" test case + +@everywhere function ModToMod_MS(i,j) + Cost=Float64.([abs(i-j) for i in 1:nx, j in 1:nx]) + emd2(M[:,i],M[:,j], Cost, Tulip.Optimizer()) +end + +@everywhere function SatToSat_MS(i,j) + Cost=Float64.([abs(i-j) for i in 1:nx, j in 1:nx]) + emd2(S[:,i],S[:,j], Cost, Tulip.Optimizer()) +end + +@everywhere function ModToSat_MS(i,j) + Cost=Float64.([abs(i-j) for i in 1:nx, j in 1:nx]) + emd2(M[:,i],S[:,j], Cost, Tulip.Optimizer()) + #ε = 0.01 + #γ = sinkhorn_stabilized_epsscaling(M[:,i],S[:,j], Cost, ε; maxiter=5_000) + #dot(γ, Cost) #compute optimal cost, directly +end + +## functions that use the full 2D case + +@everywhere function ModToSat(i,j) + a=Chl_from_Mod[:,:,i][:] + b=Chl_from_Sat[:,:,j][:] + a,b=preprocess_Chl(a,b) + + if choice_method=="sinkhorn2" + ε = 0.05 + sinkhorn2(a,b, Cost, ε) + elseif choice_method=="emd2" + emd2(a,b, Cost, Tulip.Optimizer()) + elseif choice_method=="epsscaling" + ε = 0.01 + γ = sinkhorn_stabilized_epsscaling(a,b, Cost, ε; maxiter=5_000) + dot(γ, Cost) #compute optimal cost, directly + end +end + +@everywhere function ModToMod(i,j) + a=Chl_from_Mod[:,:,i][:] + b=Chl_from_Mod[:,:,j][:] + a,b=preprocess_Chl(a,b) + + if choice_method=="sinkhorn2" + ε = 0.05 + sinkhorn2(a,b, Cost, ε) + elseif choice_method=="emd2" + emd2(a,b, Cost, Tulip.Optimizer()) + elseif choice_method=="epsscaling" + ε = 0.01 + γ = sinkhorn_stabilized_epsscaling(a,b, Cost, ε; maxiter=5_000) + dot(γ, Cost) #compute optimal cost, directly + end +end + +@everywhere function SatToSat(i,j) + a=Chl_from_Sat[:,:,i][:] + b=Chl_from_Sat[:,:,j][:] + a,b=preprocess_Chl(a,b) + + if choice_method=="sinkhorn2" + ε = 0.05 + sinkhorn2(a,b, Cost, ε) + elseif choice_method=="emd2" + emd2(a,b, Cost, Tulip.Optimizer()) + elseif choice_method=="epsscaling" + ε = 0.01 + γ = sinkhorn_stabilized_epsscaling(a,b, Cost, ε; maxiter=5_000) + dot(γ, Cost) #compute optimal cost, directly + end +end + +## + +@everywhere include("OptimalTransport_setup.jl") + +II=[[i,j] for i in 1:12, j in 1:12][:]; + +using Random; JJ=shuffle(II); + +if calc_ModToMod + d = SharedArray{Float64}(12,12) + t0=[time()] + for kk in 1:36 + @sync @distributed for k in (kk-1)*4 .+ collect(1:4) + i=JJ[k][1] + j=JJ[k][2] + zm_test_case ? d[i,j]=ModToMod_MS(i,j) : d[i,j]=ModToMod(i,j) + end + dt=time()-t0[1] + println("ModToMod $(kk) $(dt)") + t0[1]=time() + jldsave(joinpath(pth_output,"ModToMod_$(choice_method).jld2"); d = d.s) + end +end + +if calc_SatToSat + d = SharedArray{Float64}(12,12) + t0=[time()] + for kk in 1:36 + @sync @distributed for k in (kk-1)*4 .+ collect(1:4) + i=JJ[k][1] + j=JJ[k][2] + zm_test_case ? d[i,j]=SatToSat_MS(i,j) : d[i,j]=SatToSat(i,j) + end + dt=time()-t0[1] + println("SatToSat $(kk) $(dt)") + t0[1]=time() + jldsave(joinpath(pth_output,"SatToSat.jld2"); d = d.s) + end +end + +if calc_ModToSat + d = SharedArray{Float64}(12,12) + t0=[time()] + for kk in 1:36 + @sync @distributed for k in (kk-1)*4 .+ collect(1:4) + i=JJ[k][1] + j=JJ[k][2] + zm_test_case ? d[i,j]=ModToSat_MS(i,j) : d[i,j]=ModToSat(i,j) + end + dt=time()-t0[1] + println("ModToSat $(kk) $(dt)") + t0[1]=time() + jldsave(joinpath(pth_output,"ModToSat.jld2"); d = d.s) + end +end + +## function used only for testing several methods at once + +@everywhere function ModToMod_methods(i,j,mthd=1) + a=Chl_from_Mod[:,:,i][:] + b=Chl_from_Mod[:,:,j][:] + a,b=preprocess_Chl(a,b) + + a=sum(reshape(a,(120,140)),dims=1)[:] + b=sum(reshape(b,(120,140)),dims=1)[:] + Cost=Float64.([abs(i-j) for i in 1:140, j in 1:140]) + + if mthd==1 + ε = 0.05 + sinkhorn2(a,b, Cost, ε) + elseif mthd==2 + emd2(a,b, Cost, Tulip.Optimizer()) + elseif mthd==3 + ε = 0.005 + γ = sinkhorn_stabilized(a,b, Cost, ε; maxiter=5_000) + dot(γ, Cost) #compute optimal cost, directly + elseif mthd==4 + ε = 0.005 + γ = sinkhorn_stabilized_epsscaling(a,b, Cost, ε; maxiter=5_000) + dot(γ, Cost) #compute optimal cost, directly +# elseif mthd==5 +# ε = 0.05 +# γ = quadreg(a,b, Cost, ε; maxiter=100) +# dot(γ, Cost) #compute optimal cost, directly +end +end + +if test_methods + #KK=([1,1],[1,2],[1,9]) + KK=[[1,j] for j in 1:12] + d = SharedArray{Float64}(6,length(KK)) + t0=[time()] + for k in 1:4 + for kk in 1:12 + i=KK[kk][1] + j=KK[kk][2] + try + d[k,kk]=ModToMod_methods(i,j,k) + catch + d[k,kk]=NaN + end + println("$(k) $(kk) $(d[k,kk])") + end + dt=time()-t0[1] + println("ModToMod_methods $(k) $(dt)") + t0[1]=time() + jldsave(joinpath(pth_output,"ModToMod_methods.jld2"); d = d.s) + end +end diff --git a/examples/OptimalTransport/OptimalTransport_plots.jl b/examples/OptimalTransport/OptimalTransport_plots.jl new file mode 100644 index 0000000..ec5b850 --- /dev/null +++ b/examples/OptimalTransport/OptimalTransport_plots.jl @@ -0,0 +1,47 @@ + +#using OceanStateEstimation, MeshArrays, NCTiles +using JLD2 +import CairoMakie as Mkie + +pth_output=joinpath(tempdir(),"OptimalTransport_example") + +function EMD_plot(fil) + d=load(fil)["d"]; + d[findall(d.==0.0)].=NaN; + fig = Mkie.Figure(resolution = (600,400), backgroundcolor = :grey95, fontsize=12) + ax = Mkie.Axis(fig[1,1]) + hm=Mkie.heatmap!(d) + Mkie.Colorbar(fig[1,2], hm, height = Mkie.Relative(0.65)) + fig +end + +function EMD_plot_all(pth=pth_output) + fil1=joinpath(pth,"ModToMod.jld2") + fil2=joinpath(pth,"SatToSat.jld2") + fil3=joinpath(pth,"ModToSat.jld2") + + d1=load(fil1)["d"]; d1[findall(d1.==0.0)].=NaN; + d2=load(fil2)["d"]; d2[findall(d2.==0.0)].=NaN; + d3=load(fil3)["d"]; d3[findall(d3.==0.0)].=NaN; + #just to check the alignment of dimensions d3[1:end,1].=NaN + + #cr=(0.07, 0.15) + cr=(0.0, 10.0) + + fig = Mkie.Figure(resolution = (600,400), backgroundcolor = :grey95, fontsize=12) + ax = Mkie.Axis(fig[1,1]) + hm=Mkie.heatmap!(d1, colorrange = cr, colormap=:inferno) + Mkie.ylims!(ax, (12.5, 0.5)); Mkie.xlims!(ax, (0.5,12.5)) + ax = Mkie.Axis(fig[1,2]) + hm=Mkie.heatmap!(transpose(d3), colorrange = cr, colormap=:inferno) + Mkie.ylims!(ax, (12.5, 0.5)); Mkie.xlims!(ax, (0.5,12.5)) + ax = Mkie.Axis(fig[2,1]) + hm=Mkie.heatmap!(d3, colorrange = cr, colormap=:inferno) + Mkie.ylims!(ax, (12.5, 0.5)); Mkie.xlims!(ax, (0.5,12.5)) + ax = Mkie.Axis(fig[2,2]) + hm=Mkie.heatmap!(d2, colorrange = cr, colormap=:inferno) + Mkie.ylims!(ax, (12.5, 0.5)); Mkie.xlims!(ax, (0.5,12.5)) + Mkie.Colorbar(fig[1:2,3], hm, height = Mkie.Relative(0.65)) + fig +end + diff --git a/examples/OptimalTransport/OptimalTransport_setup.jl b/examples/OptimalTransport/OptimalTransport_setup.jl new file mode 100644 index 0000000..b1b108b --- /dev/null +++ b/examples/OptimalTransport/OptimalTransport_setup.jl @@ -0,0 +1,88 @@ + +""" +object: setup to compute optimal transport between model and/or satellite climatologies +date: 2021/10/28 +author: Gaël Forget + +- examples/CBIOMES_climatology_compare.jl +""" + +import OceanStateEstimation, NCTiles +using Statistics, LinearAlgebra, JLD2 + +## load files + +fil_out=joinpath(OceanStateEstimation.CBIOMESclim_path,"CBIOMES-global-alpha-climatology.nc") +nc=NCTiles.NCDataset(fil_out,"r") +lon=nc["lon"][:] +lat=nc["lat"][:] +uni=nc["Chl"].attrib["units"] + +## region and base distance (Cost) definition + +i1=findall( (lon.>-180.0).*(lon.<-120.0) ) +j1=findall( (lat.>-20.0).*(lat.<50.0) ) + +## main arrays +Chl_from_Mod=nc["Chl"][i1,j1,:] +fil_sat="examples_climatology_prep/gridded_geospatial_montly_clim_360_720_ver_0_2.nc" +Chl_from_Sat=NCTiles.NCDataset(fil_sat,"r")["Chl"][i1,j1,:] + +## cost matrix + +if !isfile("examples_EMD_paper_exploration/example_Cost.jld2") + #this only needs to be done one + #C = [[i,j] for i in i1, j in j1] + C = [[lon[i],lat[j]] for i in i1, j in j1] + C=C[:] + + gcdist(lo1,lo2,la1,la2) = acos(sind(la1)*sind(la2)+cosd(la1)*cosd(la2)*cosd(lo1-lo2)) + + #C=[gcdist(C[i][1],C[j][1],C[i][2],C[j][2]) for i in 1:length(C), j in 1:length(C)] + + nx=length(C) + Cost=zeros(nx,nx) + for i in 1:length(C), j in 1:length(C) + i!==j ? Cost[i,j]=gcdist(C[i][1],C[j][1],C[i][2],C[j][2]) : nothing + end + + @save "examples_EMD_paper_exploration/example_Cost.jld2" Cost +end +Cost=load("examples_EMD_paper_exploration/example_Cost.jld2")["Cost"] +println("reusing Cost matrix computed previously\n") + +## helper functions + +function preprocess_Chl(a,b) + k=findall(ismissing.(a).|ismissing.(b)); + a[k].=0.0; b[k].=0.0; + k=findall((a.<0).|(b.<0)); + a[k].=0.0; b[k].=0.0; + k=findall(isnan.(a).|isnan.(b)); + a[k].=0.0; b[k].=0.0; + + M=0.1 + k=findall((a.>M).|(b.>M)); + a[findall(a.>M)].=M; + b[findall(b.>M)].=M; + + a=Float64.(a); a=a/sum(a) + b=Float64.(b); b=b/sum(b) + + a,b +end + +## + +function export_zm() + M=NaN*zeros(140,12) + S=NaN*zeros(140,12) + for t in 1:12 + a=Chl_from_Mod[:,:,t][:] + b=Chl_from_Sat[:,:,t][:] + a,b=preprocess_Chl(a,b) + M[:,t]=sum(reshape(a,(120,140)),dims=1)[:] + S[:,t]=sum(reshape(b,(120,140)),dims=1)[:] + end + (M,S) +end diff --git a/examples/OptimalTransport/S.csv b/examples/OptimalTransport/S.csv new file mode 100644 index 0000000..53943a1 --- /dev/null +++ b/examples/OptimalTransport/S.csv @@ -0,0 +1,141 @@ +Column1,Column2,Column3,Column4,Column5,Column6,Column7,Column8,Column9,Column10,Column11,Column12 +0.003779908502677875,0.0037762350965833014,0.00385296049815886,0.004059941335946241,0.004524981880103058,0.004931526603653506,0.005201343075291132,0.004930117880595771,0.004440599124033811,0.00395843828117551,0.0037227406238826994,0.0037799988784864586 +0.004008055740392532,0.003992957281534772,0.004011118750837599,0.004245018775624216,0.004709539605349882,0.005102931530723264,0.005345839513726937,0.005069110023390472,0.0045909050836606,0.004117462487620851,0.003933521999881796,0.004020365977076245 +0.004144327827378833,0.0042125100372741725,0.004305771739174704,0.004539810810894274,0.0049256806335465355,0.00530977475077162,0.005522771129055601,0.005268701424492943,0.004799546574931828,0.004382915841719509,0.004196340019601409,0.00418761389082382 +0.004269505653288671,0.004346455362005503,0.004460988817327024,0.004709283908688431,0.00506747224449364,0.005427989219140594,0.005640114890323053,0.0054022565718898335,0.004939275231166114,0.004599382405813973,0.004305815031622689,0.004313182649817915 +0.0044989805438785625,0.004506840360438621,0.004636187955195063,0.004878841494317483,0.005285324820293411,0.005563412820871547,0.005768832033232851,0.005564256839815624,0.005092786373672982,0.00475302761300875,0.004448366359343463,0.004443418537311788 +0.004607705906846754,0.0046047887811472895,0.004796035012463012,0.004982069669074815,0.005375507068860898,0.005761638558788403,0.005968185817653506,0.005821725186407749,0.0053742959314680185,0.004986660830492102,0.004713838701831041,0.004576530107565103 +0.004903689685729756,0.004811405923424598,0.0049962319701007925,0.0052050374563876395,0.005552495593707604,0.005968960240485212,0.006160671854373655,0.006028674002038871,0.005627326835365848,0.005324042178696644,0.0050116635214476485,0.004881051200092375 +0.0050477055293073995,0.00498744662214869,0.005139474816093485,0.005409481973310467,0.005736427032182088,0.006119444934570971,0.006403612430446744,0.006360831736425764,0.006021327102920055,0.005636540630924184,0.005309297932125721,0.0050819159922664385 +0.005220364465170123,0.005221550873358066,0.005227971196701763,0.00546341290799497,0.005902546695531119,0.006208018421779343,0.0064791303980017015,0.006535599211647761,0.006289849891109132,0.005875887094430755,0.005523013573032061,0.0052381759234127285 +0.0054889370418268356,0.005446732893383972,0.005494025216800968,0.005684019043528761,0.0059850075482696784,0.006291463189215025,0.006558648008915837,0.006696471331264201,0.006536570353879318,0.006118669877143654,0.005801029863983493,0.005515278760059342 +0.0056842864516092,0.00556319333939645,0.005579886349792391,0.005811492821291665,0.006106210123234761,0.006400273200280547,0.0066790001685266,0.006878477564410218,0.006803378281922603,0.006434619056189579,0.0060930906716224675,0.005809591324210684 +0.005863123601688848,0.005699078117028164,0.005706957262468897,0.005922051759485649,0.006187464471142632,0.00646041366527325,0.006809259359101024,0.007077963258263822,0.007050381013057525,0.006734597454593672,0.006359394957984923,0.005954584508233733 +0.005988078166331208,0.005859820345540699,0.005865575392306225,0.005947468713011363,0.006203945967347929,0.006488929373581887,0.006851536697792759,0.0071667843621144155,0.007179128321609583,0.006933690079124701,0.006541634566884547,0.006156150501262173 +0.006088106590598684,0.0060127292564352165,0.005989536229563122,0.006091198576822023,0.006338997395999427,0.006634470609325255,0.0069938996538425075,0.007308014350669437,0.007359106131515119,0.007143652900275616,0.006700270202687469,0.006289198569948917 +0.006175892832722508,0.006102701472037182,0.006080358027674189,0.006176011226749088,0.006377330572014963,0.006689587784284806,0.007088994208438897,0.007387969882397738,0.0074762962082394885,0.007256251636911271,0.006768504262477748,0.006358328042936237 +0.006290010557518237,0.006170747614741454,0.0061663800068345945,0.006269283966004119,0.006537915342928986,0.006856875813065361,0.007209487843124375,0.007546594062452899,0.0076714530383645355,0.007451496206095469,0.006928057787888723,0.006461543437543054 +0.006336221271110174,0.006206092963880115,0.006236057892648656,0.006358493857006988,0.0066161375893453115,0.006949885687537647,0.007278400554411996,0.0076623838288914356,0.007850269647926799,0.00763153223593247,0.007063407952157203,0.00653124310467208 +0.006473729977152459,0.0063225610624611855,0.006365163639728284,0.006469251861996691,0.00672709804816379,0.007083188502439081,0.007439057434019961,0.007852154408097285,0.008113045284504173,0.007847027896764558,0.007234720121837039,0.006679209052638561 +0.0066395050287126715,0.00650885594691912,0.006500839936256545,0.006640438588746969,0.006877217288116924,0.007208355112014916,0.007624433906984814,0.00811560881692672,0.008350060493914289,0.008063058552796428,0.007415353885038327,0.00684766485357176 +0.006888872676600448,0.006804395914781051,0.006764504157964856,0.006856534816125758,0.007008287821151501,0.007360674974799669,0.00784334578554297,0.008364560301186937,0.008562354939995888,0.008270856167543236,0.007598105690132395,0.007033254811012014 +0.007139596073390293,0.007081566126463969,0.007070502556437322,0.007104708979485657,0.007216714205695729,0.007566489636782565,0.008034365344757842,0.00853471800992104,0.008768939920915798,0.008483336419993878,0.007797348022225084,0.0072484586942398 +0.007370717138623614,0.00734694195562098,0.0073887701053385645,0.007367920228400328,0.007477268302081763,0.007809249085578185,0.008194859336733095,0.008646040793056108,0.00885463805078976,0.008623803441944826,0.00793717964109388,0.007473847431526414 +0.007577311256158927,0.007621543301994536,0.007638734671566303,0.0075880519389123985,0.007679796634096911,0.007971867694326363,0.00832136194977361,0.00871295457045761,0.00891886374600847,0.008662128820135551,0.008030266651204905,0.0076219541316624 +0.007721104585087261,0.0078018906893943685,0.0078697516216839,0.007789948897203918,0.007848332040131144,0.008089558234684286,0.00840912026184332,0.008741989492356089,0.008963253551173257,0.008718073151916904,0.008125500179220313,0.0077323167673875 +0.007853105420367063,0.007983042757506097,0.008023419520813098,0.007967911813034849,0.008062687352203564,0.008181696454257847,0.008472311891162817,0.008763559248128477,0.008967759071088554,0.008756152661669191,0.008231483320969204,0.007886501248402606 +0.007950238603975186,0.00809165129207707,0.008181925479433326,0.008130093117737757,0.00820243839321391,0.00828884043630727,0.008504404284814459,0.008768718781053187,0.008967759071088554,0.008777609794376933,0.008328270849402915,0.007983475517084702 +0.00801840787384637,0.008125614113333181,0.008266152763092616,0.008236448860336174,0.008288005990356926,0.00835056319769617,0.008507880242637753,0.008768718781053187,0.008967759071088554,0.00879180625493688,0.008365216125303339,0.008037234199302428 +0.00802637479074347,0.008127059151494857,0.008319454028856118,0.008346643902851862,0.00835134335094648,0.00839962175352785,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793135211107712,0.00838001601333465,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.00843199420645729,0.008423033438503355,0.008427545158988275,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793132612387235,0.008379979196916215,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459161913058181,0.008462057386948779,0.008427748159050084,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793135211107712,0.00838001601333465,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793135211107712,0.00838001601333465,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793135211107712,0.00838001601333465,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793135211107712,0.00838001601333465,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793135211107712,0.00838001601333465,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793135211107712,0.00838001601333465,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793135211107712,0.00838001601333465,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793135211107712,0.00838001601333465,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793135211107712,0.00838001601333465,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793135211107712,0.00838001601333465,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793135211107712,0.00838001601333465,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793135211107712,0.00838001601333465,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793135211107712,0.00838001601333465,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793135211107712,0.00838001601333465,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793135211107712,0.00838001601333465,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793135211107712,0.00838001601333465,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793135211107712,0.00838001601333465,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793135211107712,0.00838001601333465,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008511189323074805,0.008768718781053187,0.008967759071088554,0.008793135211107712,0.00838001601333465,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.00850928477327454,0.008754366501291147,0.008952256123345114,0.008785793525486887,0.008378197471653068,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008507801869082055,0.008730121202278382,0.008903201667181122,0.008762563290165047,0.008367669890683903,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008500744121920405,0.008691354489727651,0.00880732806217319,0.008627398853617685,0.008317247792075464,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008507466254186077,0.00860023377955683,0.008616586156376796,0.008265419174787904,0.008206011931823116,0.008038279435762545 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008506714869981552,0.008506082130709304,0.008258387685045393,0.007834084366152738,0.007831977490254103,0.008003243004922 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.00850188412925617,0.008428857345077269,0.007780857264894159,0.007313158363329233,0.007460822814782992,0.007921749691631627 +0.008030125571062705,0.008130161359442556,0.008329625107278223,0.008459617975612413,0.008489571921108809,0.008427748159050084,0.008492700667837846,0.008334260349456078,0.007458265904764063,0.006869570276452056,0.006961333107880522,0.007745736096611026 +0.007963231225872659,0.008129703669208895,0.008329384386387475,0.008452251574492144,0.008489571921108809,0.008427748159050084,0.008487173659635465,0.0082418846978095,0.007183063447346132,0.0062728533989122705,0.006440139760701685,0.007448000796647798 +0.007716282099829346,0.008004492049131598,0.008243556990636855,0.008408403015846057,0.008482419220888713,0.008421701054334794,0.008457582693480525,0.008162619772074099,0.0068930442045054465,0.0059859959538470404,0.006218482663289363,0.00709056172864709 +0.007427556414262104,0.007849802593497926,0.008138338252451789,0.008335043077860725,0.008433440245031456,0.008381373390142013,0.008359193310586502,0.008110813194381537,0.0069976777195581985,0.0062437469898041775,0.006251526866081201,0.006819058268853116 +0.007149360542698745,0.007642091968072237,0.007976064390068711,0.008201081387575204,0.008354018014036065,0.008260666429507494,0.008244986742719075,0.007983341998402772,0.0071430402007941,0.0067311279498360405,0.006563956102272901,0.0066951191477984135 +0.006948048383478405,0.007382419806258962,0.007724259177095292,0.007971936854353092,0.008136066875435043,0.00811533393664248,0.008154802676358621,0.007877259713651394,0.00719266986738553,0.00688463219828291,0.0066349922786092495,0.0066407291912512914 +0.006796950506377828,0.007174701139578811,0.007489663715285042,0.007798739770941578,0.007949967545537933,0.007960049469745892,0.008040210946669303,0.007646967042398416,0.007161449080904323,0.006905285671223537,0.006693785190375133,0.006595817600586189 +0.00667328093018133,0.007020515733802772,0.0073295999823146055,0.007562246245752085,0.007760491618736697,0.007837053974479776,0.007839478956058469,0.007431324488812122,0.007048040246594898,0.00681476850816125,0.0066339368685439225,0.0065379314701408675 +0.006549532217445034,0.0068409850486135845,0.007134789058902502,0.007357353594806113,0.007602702791809307,0.007582501721242885,0.007497930754931239,0.007169939899889677,0.006863450296720681,0.006696507773798847,0.006558659595332816,0.006484756159161275 +0.006411389591447532,0.006670562121441472,0.006931414691040805,0.007164858135830168,0.007345585532178411,0.0073770861575384854,0.00711061713742181,0.006883525469369479,0.006663349322838599,0.006574359932308996,0.006497787180285141,0.006458679379650047 +0.006357490415880388,0.006557223875459745,0.006741586850954743,0.006988362943686002,0.007060952325754148,0.007095872830092902,0.006802203643807229,0.006602344859753532,0.006481584008166848,0.006439757662876995,0.006407405893365727,0.0064414891105907856 +0.006349033523021803,0.006443392359343487,0.0065644144155867,0.006791467491365098,0.006766119595659646,0.0067553793037239945,0.006505243340116623,0.006422933503827454,0.006269689917629587,0.006346664736521412,0.006352695717406237,0.006419132113510794 +0.006329553203082982,0.006388571397289862,0.0064516526920147645,0.0066782270000008736,0.0065585373412340026,0.00649084926648505,0.00616600329331328,0.0061374677245450366,0.0060350643442945336,0.006166320212358164,0.006275212240091754,0.006395024877838684 +0.0062909911251830646,0.006275377161947553,0.006310520111339573,0.006471266680590459,0.006423265019951245,0.006285097134486398,0.0059311944743445045,0.005870541040019497,0.005728644346491336,0.00599271179005207,0.006229736143216452,0.006364650069639485 +0.006294397002810101,0.006206041240895896,0.006221518859376296,0.0063582917910782796,0.00631141096249235,0.006112633281755901,0.005762114873626871,0.005650519007237556,0.005485047065095343,0.005769770991594269,0.0061542158197279845,0.006346885110840797 +0.006248897084669185,0.006154017002410179,0.006161583775521208,0.006260042192843103,0.006199935071721205,0.006003447381762938,0.005543200371343385,0.0055016908719009395,0.0052974792620632035,0.005525186809695353,0.0060732181590814095,0.006374338352461932 +0.006239480773756851,0.0060921021017000445,0.006089168250870696,0.0062239373982057224,0.006158087767350119,0.005946533796229357,0.00545163628622923,0.0053301229764190616,0.005182218117995067,0.005295297876173382,0.005941911796580438,0.0063531827489264146 +0.006220489335404305,0.006086997500242049,0.006022543721146618,0.006184753452553714,0.00605051335900997,0.005824594414082847,0.005420470334484194,0.005284163192098973,0.005113048562983119,0.005191759010694328,0.005819414612880535,0.006332818922549112 +0.006248320201854639,0.006075704784979864,0.005910542848271976,0.0060531709229961345,0.005934977159435978,0.005713189879608455,0.005356860180019773,0.005241690598236435,0.0050740767675513075,0.005185944712115067,0.005709606879501691,0.006340192077443043 +0.00629690328656616,0.006044188748858238,0.0058259431616555415,0.005953234963753914,0.005818975059683387,0.005688504559294285,0.005322108840231541,0.005198435745688316,0.005049572276060674,0.00514107091318872,0.0056399640479928796,0.006340062339487952 +0.006302077607221176,0.00599877692780835,0.005751654794642062,0.0057714764534096,0.005700856102522919,0.005589586187366337,0.005271151628925364,0.005175367525964467,0.0050420833267180165,0.005094723372236375,0.005552995236187978,0.006270313358149492 +0.0062433597954059585,0.005882267020256723,0.005574979212117441,0.005597213264884786,0.0054934836715867285,0.005506023528671664,0.005233939052462214,0.0051498837464291234,0.004984933839465009,0.00506175975766481,0.005516947037901015,0.006160682405928864 +0.006052824721650178,0.005726276272087695,0.00540771859082608,0.005445483859868821,0.005412736743681266,0.005480948575915106,0.005203076681327226,0.005099844838823936,0.004978441552933769,0.00501220887607263,0.00544919494748453,0.006077047914371086 +0.0058702701460127535,0.00553627778168109,0.00526301896234317,0.005301780751896088,0.005316587463382682,0.005449708716139057,0.005191197634095391,0.005081900693057351,0.005005006469021767,0.005024580633584465,0.005420132339408361,0.0059536848092571395 +0.005687330098521104,0.005350553412364862,0.005151281213045972,0.005151780239374725,0.005257340669885751,0.005381729727790501,0.005172911840650813,0.005032168625568183,0.004955127376427337,0.004967632395882576,0.005305933850101638,0.005806971467185825 +0.0055965632719218944,0.005255159374630932,0.005012151762613776,0.005045670782846258,0.005151314315288743,0.005334048657801612,0.005181914909723106,0.005038125680377496,0.004969788326973385,0.00499989054246674,0.005323106248283622,0.005772427564041266 +0.005739033386551434,0.005323179003406095,0.005088316394084033,0.0051582787066394515,0.005267357526361099,0.005458215967588714,0.0053230216747006225,0.005198323241184594,0.005164160445420869,0.005197084801689068,0.005555815115771435,0.005936856907852098 +0.005816636223064312,0.005334294180086523,0.005051877145089423,0.0050928810281677065,0.0051911678036696465,0.0054263332080035625,0.005278254999314924,0.005142644648234037,0.005147504047875398,0.005200960989822915,0.005619274586619048,0.0060002606652030735 +0.006092921873920438,0.00555202179316888,0.005209800390713565,0.005243862722016444,0.0053212684769477865,0.005509388955215114,0.005403331563471818,0.005250877908903184,0.0052823709237731775,0.0053959001902427845,0.0058315979857335625,0.0062479482664960515 +0.006262731136514293,0.005678042924768198,0.005290986524526783,0.005268135944883373,0.005305525223977663,0.00550625556200691,0.005396343858943433,0.005271362621905101,0.005285346004108154,0.00545099795607166,0.005935142076182068,0.0064202534329672115 +0.006469506643624195,0.005856755671018965,0.005393481671790356,0.00533334659511074,0.005354883826595183,0.0054854372633624925,0.005410474987287673,0.0052672162746678275,0.0053097365871413145,0.00550426054753756,0.00604143081865807,0.0065951253384786135 +0.006684263643512381,0.006046502000204303,0.005480566173573245,0.0053850324292615106,0.00535090987291148,0.005475367350978216,0.005426657818639558,0.005297874510055833,0.0053257893667439495,0.005511059875827167,0.006174411402064117,0.006773945625067758 +0.006908320653887914,0.0063063921996480265,0.00560287995423346,0.005462164417778385,0.005382578329187913,0.0054084866063072645,0.005442853858453614,0.005328321551441755,0.005359805988374036,0.005581517772121168,0.006299462295545622,0.006918891702719366 +0.007120117326460026,0.00653864140462758,0.005754039220630204,0.0055498585516948334,0.005459107257823468,0.005453617486384481,0.0054709666367803375,0.005382069811123643,0.005378491780512301,0.005597907132382743,0.00636624046526161,0.007086856289670135 +0.007275956246362852,0.006738009362315726,0.005898884793783648,0.005624398606492708,0.005487712740244757,0.005404770161548937,0.005419759828078879,0.0053683949293927315,0.005322140827292204,0.005582097958305722,0.006384315120642209,0.007173668069892061 +0.0074353207944664185,0.006987644705921069,0.00602498749446689,0.005663659725981906,0.005521083224662356,0.005438489055254174,0.005447341808011113,0.005339804137458578,0.005315736324549237,0.00557484751998468,0.006449154062521465,0.007249291840887259 +0.007593195411800186,0.007227858768399019,0.0062131436714721955,0.005747189175061265,0.005547940686658275,0.005468505825922158,0.005475279428231363,0.0053381257218334,0.005325817587734109,0.005641600885643257,0.006462095236518632,0.007339226772786565 +0.007719132346461079,0.007446937582292238,0.006345258165851278,0.005814583832275282,0.005595559515361072,0.005474031276206159,0.005444670781640667,0.0053820772861984615,0.005356484856394698,0.005677197642819501,0.0065037620359785055,0.007451116370745467 +0.007839651480679836,0.007640464873486526,0.006522650088574094,0.005847628127248739,0.005602048509838502,0.00542672432128156,0.005413385264116438,0.005325690779707405,0.005318795427544175,0.005654943546417467,0.006546340817041469,0.007538124393798088 +0.007966948267526605,0.007831649963809107,0.0067103424153776535,0.00590239537358183,0.005636295567502216,0.005414418213693924,0.005364838968388551,0.00532442027014975,0.005290063764689016,0.005625951721228234,0.006615421961432692,0.007709118179429 +0.008006860430500634,0.007934380805771033,0.006995584410351421,0.005962123915968527,0.005702162643404921,0.005463692280816897,0.005369371790783228,0.005314333658438738,0.00533338945728905,0.00570359649092202,0.006750065092816344,0.0077926729240783334 +0.008019114715586504,0.008008902987648833,0.0071654412187617976,0.006079294503243796,0.005787816400639343,0.005579430716172663,0.005434224671562285,0.005358395032360663,0.005453419904150915,0.0058175498460932215,0.0068490392126500255,0.00790836572777683 +0.008018747658651775,0.008019934140034735,0.0072582664161239905,0.006200721485271372,0.00583738420213046,0.0056734693213873555,0.005473389796410178,0.005386388890843656,0.005503647233797347,0.005868780134415398,0.006971377694485158,0.007983443503433826 +0.008026368867655785,0.008060107358910374,0.00737494101038822,0.006395505093632176,0.005920420478934764,0.005756117660896561,0.005511767222369795,0.00540981345876282,0.005548610222667583,0.006015414766281093,0.007032866482767712,0.008015202074094119 +0.008029604832937066,0.008096861293028597,0.007530318285468746,0.0066100549606874694,0.0060246277650290725,0.005839503286478948,0.005609530166400192,0.005528917315683416,0.005671983221287643,0.00611879292328256,0.007159117567556434,0.008040893490968789 +0.008030135188601547,0.008115691795925624,0.007711519818561074,0.006850794769716818,0.006154674882109442,0.006010228379187826,0.0057839612763672405,0.005607638093537878,0.0058088365158065185,0.00626500457517409,0.00729470771753607,0.008043188173917895 +0.008030135188601547,0.008123276990617146,0.007830063429582264,0.007034106804688307,0.006362763323118834,0.006196308143835683,0.005989366423008043,0.005744585732593037,0.0059682924348070585,0.006418635440270771,0.007470663714396541,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.007936250565996995,0.007194931385139644,0.006556777658677088,0.0063804205712818755,0.006167138719038041,0.005926766222636179,0.00608364003193117,0.006606805803690668,0.007649071254957153,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008021650399190675,0.007317707848328782,0.006800090847206702,0.006549252036297292,0.0064058167005723535,0.006091371951573204,0.0062233796179876275,0.00672073495691255,0.007779906483329015,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008131165461051457,0.007443260610503322,0.006992282063483457,0.006734810884315346,0.006609209167165663,0.006294802835297415,0.0063044318468247745,0.006888874295541112,0.007920158733420541,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008200202331530427,0.007570479981951783,0.007186683481659632,0.006946307802945233,0.006804560562959647,0.00648198368490404,0.006444529230047689,0.007042138771077719,0.00807162614595561,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.00828576579409259,0.007776057349141118,0.007400763620137781,0.007180122630522763,0.006927351172732475,0.006574170908044059,0.006552700112726196,0.007148066215542748,0.008131568597836869,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008327261726003047,0.007938997529034318,0.007541555924775737,0.007336331567916065,0.0070126662390092255,0.00663452011611596,0.006590691289301044,0.007273856663325558,0.008208148543218071,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008095605100020095,0.007682715545706964,0.0075194243641715335,0.007128165798801279,0.0067501796240675375,0.00667595170290383,0.007406161661125834,0.00827063161933933,0.008045185612940865 +0.008030135188601547,0.008130161359442556,0.008332075523030016,0.008297875069568382,0.007807491255459948,0.007646430501231036,0.007230933600628505,0.006808878947562762,0.006758746692721666,0.007597428154317133,0.008300208366929938,0.008045185612940865 +0.0079632173953632,0.008062410014780535,0.0082626415603381,0.008336110212448745,0.007916357709377358,0.007726538558822308,0.007226252758377999,0.006757976388432549,0.00676490479284087,0.007677793050048381,0.008298047717681226,0.00797814239949969 +0.007896299602124854,0.007994658670118514,0.008193207597646184,0.00831626353129403,0.008011110970595502,0.007766445199997349,0.007216299359080143,0.0067176035365536305,0.006792432026040808,0.007785784397224618,0.008238113694657778,0.007911099186058517 +0.007829381808886508,0.007926907325456494,0.008123773634954267,0.008248127526222103,0.008067213508474806,0.007780371318195525,0.007256319139335595,0.006700602918903633,0.006828450144212748,0.007874630266369155,0.008170515613001285,0.007844055972617343 +0.007762464015648162,0.007859155980794473,0.00805433967226235,0.008177630709758667,0.008110658646101039,0.007818851239668216,0.007371040364270165,0.006702840307339637,0.006880743357799715,0.007984597323545273,0.008100682146223497,0.00777701275917617 +0.007762464015648162,0.007859155980794473,0.00805433967226235,0.008177630709758667,0.008199450763317321,0.007891335060758415,0.007562840889994511,0.006857261219613286,0.007095767330699956,0.008187909142745423,0.008100682146223497,0.00777701275917617 +0.0076955462224098155,0.0077914046361324514,0.007984905709570434,0.00810713389329523,0.008135839757729272,0.007970712862321178,0.007674139899878454,0.006969040641077136,0.007264325088346725,0.00825450110384057,0.008030848679445708,0.007709969545734996 +0.0076955462224098155,0.0077914046361324514,0.007984905709570434,0.00810713389329523,0.008135839757729272,0.008048570201531578,0.007884066177086549,0.007157608936435527,0.00752126635466775,0.008367800102833424,0.008030848679445708,0.007709969545734996 +0.007628628429171469,0.00772365329147043,0.007915471746878518,0.008036637076831794,0.008065093325053365,0.007997568752751066,0.007920364299399222,0.007336353753060795,0.0077275048162382225,0.008347551418823622,0.00796101521266792,0.007642926332293822 +0.007561710635933123,0.007655901946808409,0.007846037784186601,0.007966140260368355,0.007994346892377458,0.00793552388083749,0.007932650901274891,0.0075687777951736965,0.007853578165788903,0.0082802023237931,0.007891181745890131,0.0075758831188526485 +0.007494792842694777,0.0075881506021463875,0.007776603821494685,0.007895643443904919,0.00792360045970155,0.007865898281780076,0.007902134407421772,0.007740022939464419,0.00791715509838919,0.008206926197033868,0.007821348279112343,0.007508839905411475 +0.007494792842694777,0.0075881506021463875,0.007776603821494685,0.007895643443904919,0.00792360045970155,0.007865898281780076,0.007933127240854853,0.007856092792546532,0.008044717704417947,0.008206926197033868,0.007821348279112343,0.007508839905411475 +0.007427875049456431,0.007520399257484366,0.0077071698588027674,0.007825146627441482,0.007852854027025645,0.007795667047121325,0.007870862492050625,0.007875688703908255,0.008073903458789828,0.008133650070274636,0.007751514812334554,0.007441796691970301 +0.007494792842694777,0.0075881506021463875,0.007776603821494685,0.007895643443904919,0.00792360045970155,0.007865898281780076,0.007942467095326972,0.008047789235220303,0.008266802537319134,0.008206926197033868,0.007821348279112343,0.007508839905411475 +0.007494792842694777,0.0075881506021463875,0.007776603821494685,0.007895643443904919,0.00792360045970155,0.007865898281780076,0.007943776701536481,0.008134020903465877,0.008336871311017255,0.008206926197033868,0.007821348279112343,0.007508839905411475 +0.007494792842694777,0.0075881506021463875,0.007776603821494685,0.007895643443904919,0.00792360045970155,0.007865898281780076,0.007943776701536481,0.008183129978184423,0.008369908466349314,0.008206926197033868,0.007821348279112343,0.007508839905411475 +0.007427875049456431,0.007520399257484366,0.0077071698588027674,0.007825146627441482,0.007852854027025645,0.007795667047121325,0.007872850123844193,0.008111064872474198,0.008295177140756909,0.008133650070274636,0.007751514812334554,0.007441796691970301 +0.007427875049456431,0.007520399257484366,0.0077071698588027674,0.007825146627441482,0.007852854027025645,0.007795667047121325,0.007872850123844193,0.008111064872474198,0.008295177140756909,0.008133650070274636,0.007751514812334554,0.007441796691970301 +0.007427875049456431,0.007520399257484366,0.0077071698588027674,0.007825146627441482,0.007852854027025645,0.007795667047121325,0.007872850123844193,0.008111064872474198,0.008295177140756909,0.008133650070274636,0.007751514812334554,0.007441796691970301 +0.007494792842694777,0.0075881506021463875,0.007776603821494685,0.007895643443904919,0.00792360045970155,0.007865898281780076,0.007943776701536481,0.008184137528982975,0.008369908466349314,0.008206926197033868,0.007821348279112343,0.007508839905411475 +0.007494792842694777,0.0075881506021463875,0.007776603821494685,0.007895643443904919,0.00792360045970155,0.007865898281780076,0.007943776701536481,0.008184137528982975,0.008369908466349314,0.008206926197033868,0.007821348279112343,0.007508839905411475 +0.007494792842694777,0.0075881506021463875,0.007776603821494685,0.007895643443904919,0.00792360045970155,0.007865898281780076,0.007943776701536481,0.008184137528982975,0.008369908466349314,0.008206926197033868,0.007821348279112343,0.007508839905411475 +0.007494792842694777,0.0075881506021463875,0.007776603821494685,0.007895643443904919,0.00792360045970155,0.007865898281780076,0.007943776701536481,0.008184137528982975,0.008369908466349314,0.008206926197033868,0.007821348279112343,0.007508839905411475 +0.007494792842694777,0.0075881506021463875,0.007776603821494685,0.007895643443904919,0.00792360045970155,0.007865898281780076,0.007943776701536481,0.008184137528982975,0.008369908466349314,0.008206926197033868,0.007821348279112343,0.007508839905411475 +0.007561710635933123,0.007655901946808409,0.007846037784186601,0.007966140260368355,0.007994346892377458,0.007936129516438828,0.008014703279228772,0.008257210185491751,0.008444639791941719,0.0082802023237931,0.007891181745890131,0.0075758831188526485 +0.007494792842694777,0.0075881506021463875,0.007776603821494685,0.007895643443904919,0.00792360045970155,0.007865898281780076,0.007943776701536481,0.008184137528982975,0.008369908466349314,0.008206926197033868,0.007821348279112343,0.007508839905411475 +0.007494792842694777,0.0075881506021463875,0.007776603821494685,0.007895643443904919,0.00792360045970155,0.007865898281780076,0.007943776701536481,0.008184137528982975,0.008369908466349314,0.008206926197033868,0.007821348279112343,0.007441796691970301 +0.007427875049456431,0.007520399257484366,0.0077071698588027674,0.007825146627441482,0.007852854027025645,0.007795667047121325,0.007872850123844193,0.008111064872474198,0.008295177140756909,0.008133650070274636,0.007751514812334554,0.007441796691970301 +0.007427875049456431,0.007520399257484366,0.0077071698588027674,0.007825146627441482,0.007852854027025645,0.007795667047121325,0.007872850123844193,0.008111064872474198,0.008295177140756909,0.008133650070274636,0.007751514812334554,0.007441796691970301 +0.007360957256218084,0.007452647912822345,0.007637735896110851,0.007754649810978044,0.007782107594349737,0.007725435812462576,0.007801923546151901,0.008037992215965422,0.008220445815164503,0.008060373943515407,0.007681681345556766,0.007374753478529127 +0.007227121669741391,0.007317145223498302,0.007498867970727017,0.007613656178051171,0.007640614728997923,0.007584973343145074,0.007660070390767321,0.007891846902947868,0.008070983163979695,0.007987097816756175,0.007542014412001188,0.007240667051646778 +0.007093286083264699,0.00718164253417426,0.007360000045343183,0.007472662545124298,0.00749912186364611,0.0074445108738275725,0.007518217235382741,0.007745701589930315,0.007921520512794886,0.007767269436478483,0.0074023474784456105,0.007106580624764431 From 39fbcd4f1af6cec1399d2ab2f24922f59911528a Mon Sep 17 00:00:00 2001 From: gaelforget Date: Sun, 26 Jun 2022 23:23:38 -0400 Subject: [PATCH 2/2] bump version, and compat --- Project.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Project.toml b/Project.toml index 1044ef2..f895bdf 100644 --- a/Project.toml +++ b/Project.toml @@ -1,13 +1,13 @@ name = "OceanDistributions" uuid = "aa3b323a-0e68-4b14-b952-9911d94e084a" authors = ["gaelforget "] -version = "0.1.2" +version = "0.1.3" [deps] CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" [compat] -CSV = "0.5, 0.6, 0.7, 0.8, 0.9" +CSV = "0.5, 0.6, 0.7, 0.8, 0.9, 0.10" DataFrames = "1" julia = "1"