Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Adding Representativity PP and Metrics #1651

Closed
wants to merge 287 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
287 commits
Select commit Hold shift + click to select a range
a447b7c
Merge commit '40e31fa08d4767463e1cc4e76d9e8177ae38af32'
May 17, 2017
93315be
Merge commit '683d78a723c0a99045c7fcd643bc5fcbf874e1e5'
May 17, 2017
72e2a4c
Merge commit '5a644ad6e4d85e764e70b68e7dacff3ae0a97926'
May 17, 2017
136c223
Merge commit '4725763bb8b23cf3a5004b863f4034b4dfab5b4c'
May 18, 2017
9b61f2f
Merge commit '95490447f730d4a936f89789ad84410617677a9d'
May 18, 2017
b0db28f
Merge commit 'bc214b724f03212e4c382c931befeaa416f360dd'
May 18, 2017
e02b45b
Merge commit '4a9b4e32674086f3c9f27d2c29d5531be47b0799'
May 22, 2017
cd9d62b
Merge commit 'c22cf6840ead6a3ec22612225a7aa87fb8ec7c13'
May 22, 2017
b1ce374
Merge commit '99c48828a201a1afdc102fc69b731e5908f86bb8'
May 22, 2017
f7da183
Merge commit '142aad572c8308d5d00913d55f20e85903347bd3'
May 24, 2017
f2adddd
Merge commit '38ff4424cd5a092d1fa6d0aafcd0315b2e0134ff'
May 25, 2017
18a80c6
Merge commit 'a4164d93ae8471ff5026fa7508aff5a2185b15c2'
May 25, 2017
884dcdb
Merge commit '015743bbf56505b64f8ece68a1316cb817cde0bb'
May 30, 2017
42e3095
Merge commit 'ba1481339491fe1bbd45a83503fcce4be6332039'
May 30, 2017
9408b20
Merge commit '78e4ae35f1e7b5ca2122b6f49c1e00565edd3c69'
May 31, 2017
8ed6224
Merge commit 'cb1495ec30ba891d986e8c98e72b439bc3994ee5'
Jun 2, 2017
683856e
Merge commit '0d9d0e16e3c3091f4e653172b46ccf771a2de209'
Jun 5, 2017
c848a3d
Merge commit 'cc66f9672ae478083d4d07a75337279cd93d741b'
Jun 7, 2017
a1846c5
Merge commit '9d3b4eda7c16bcbab614c6cffc1b8b6b44ca195b'
Jun 7, 2017
176aa69
Merge commit '2cb8f98322df1bdd798838d37788372ebaa2895d'
Jun 19, 2017
c751813
Merge commit '6de81b58cd816a8ba3f7d261e209c1ae22a59364'
Jun 21, 2017
6d97aac
Merge commit '3cee81f6d6f9637d21aad32d360844f6ce7a90c4'
Jun 21, 2017
21f661c
Merge commit '03fcc9231a7daf7dc6ce792b1c4564199d167d31'
Jun 27, 2017
6b3d9a1
Merge commit 'f6dd1da494b9694608769fbf1947b9ecd8a97b83'
Jun 27, 2017
e6a1557
Merge commit '21f615180fcaf4451231b20134a74b1ca0c07f48'
Jun 27, 2017
031a688
Merge commit 'bdbf141ad334b6b4643ec58d2de521f3a59bca91'
Jun 28, 2017
169f5d8
Merge commit 'b61879b8f78d7709be5eb12d8fa44832f0e9c362'
Jul 3, 2017
841c88a
Merge commit 'fb5315ca6fcb1065839b0e87ed8b6e2cb62c6a0c'
Jul 3, 2017
139a07f
Merge commit '116f347138f0a7af69c67f0f7188dc2be825a520'
Jul 6, 2017
cf4c72c
Merge commit 'b678edc4f04ab621b9f336d00eec1b6f0f1ac50a'
Jul 10, 2017
0a727a3
Merge commit 'e531972a0ecd12b08c2148cb25b370a0c29a49dc'
Jul 11, 2017
0100311
Merge commit '38a6e324b204c170d0b0faa4d88590fb16e709fe'
Jul 13, 2017
94f8279
Merge commit '50b8edd467b79d7f649e5e1a6c583a4cd8db17ec'
Jul 17, 2017
e303e9c
Merge commit '9856823fcbcbc2c7b80bc96926db14e928d128c6'
Jul 18, 2017
9b2fdeb
Merge commit '9df60a504298c7335cb9867b00221890f1c38e71'
Jul 19, 2017
3992502
Merge commit '436c1318e7968951c3bdbec0f961643aeffcdfb3'
Jul 19, 2017
92bdc14
Merge commit '1e7f5de4e6532eb8dc8354a6e64b6d16d65cee70'
Jul 19, 2017
3329d26
Merge commit '45a693ab102526953b48c2be1caa1a08c7ce8c99'
Jul 20, 2017
232ed4d
Merge commit '3839a9fcd0e23c09df7a4bc0d5383ac298bdd003'
Jul 28, 2017
10fc4de
Merge commit '64a19fc82eb545ac69e4a8e3c0274aaac4696d1f'
Jul 28, 2017
9fb43b2
Merge commit '45fe4385e47f3363ebbd4240d71dde84280714bc'
Jul 31, 2017
e3435c6
Merge commit 'c85aeaf723cfe9a2fa0c67dfd0ddd14ffba4543f'
Aug 2, 2017
eb340f2
Merge commit '52031ba443128f7a297644c2b1b357c509a30c7e'
Aug 3, 2017
660199c
Merge commit '5ad7296f10444d96a15e34dc1b040ca1b8f947cc'
Aug 11, 2017
bef8b59
Merge commit 'ce94418921c1dc13cd7854d36aaa7ead1aed02b0'
Aug 11, 2017
e96eb0e
Merge commit 'a9475c843ed0844853a7a74b2125bb76ac2fd273'
Aug 11, 2017
8ca648e
Merge commit '367f13cc990ca36e007e016a7d97964c47f622a7'
Aug 14, 2017
f2ac3df
Merge commit '3c02c1253c884c1608fc6b1e19cd631943e7b5ca'
Aug 15, 2017
36216c5
Merge commit '0e8a9a34005f6c500107d51cb41c01b7a252f34b'
Aug 16, 2017
8525ce8
Merge commit '5718f69900f5ebc285b366ccbb4815e30d67834b'
Aug 16, 2017
7d22d64
Merge commit 'ea6c19b737cac4ef260e561aca992f76b72b2b5b'
Aug 16, 2017
58f3014
Merge commit '6123e07013e5dce5368ec46cf256c60d3fabec38'
Aug 17, 2017
514f654
Merge commit '0844b3bc41562c67b31a9695d39ffcd5b714e6e7'
Aug 17, 2017
ba7417d
Merge commit '40055b14bbda6731ccf230ccb17f62fee1e46d46'
Aug 22, 2017
7804da8
Merge commit '1f44c82e19e4b345510bfa24c5adc26ccaed1280'
Aug 25, 2017
1f364c9
Merge commit '3c0f8ab5e419ce6850281c9089fe4b0857ff77b1'
Aug 30, 2017
7e65b2f
Merge commit '765091306b3c2c828805866b95af7b6b60dfb34e'
Aug 30, 2017
c3f15b5
Merge commit 'c59b0f3de73ddff2f6b149cf8145cf442d8c497c'
Aug 30, 2017
7e54461
Merge commit '3d83e366dad7ab1003238007238c095bac34e3a8'
Aug 30, 2017
4804761
Merge commit '60410d27645caf7796755facf00bf68158a34aec'
Aug 31, 2017
4c19b2e
Merge commit '00553dec7199d515567c81bc7b0b9b91740b99d6'
Sep 6, 2017
99ad338
Merge commit '7351f5c73b1aa27bf92ade96bce027cd85168ac9'
Sep 6, 2017
4868d43
Merge commit 'bd64edc27a1f990698d70e2e75457597342c4b08'
Sep 8, 2017
a435dfc
Merge commit '5f0f2f8a363d9acd39973230ea66c036217701e8'
Sep 8, 2017
b25cf7f
Merge commit '90ba0df523a59f33d8bf5cfc1921e0465b88f90d'
Sep 10, 2017
945d108
Merge commit '5b0181368d63b7254c4de0e3724c682ed60a68c5'
Sep 12, 2017
db30082
Merge commit '4f44a7889439637184a84b408a7580a8927ce7b7'
Sep 12, 2017
ef79636
Merge commit '1bd0c479d35f48db5be823ffbea4ff223bc16e66'
Sep 13, 2017
df28684
Merge commit '17bb3d07b2d12f3d4a53cfa245cf99f84d5624be'
Sep 14, 2017
0d61af0
Merge commit '22cb191a1b5a12fd94a0d985033dfef5229e6651'
Sep 14, 2017
561ef9f
Merge commit '8a0dbc6f3d137f4703f54b7ca7fec2b1c896d687'
Sep 14, 2017
7472b1f
Merge commit 'fe45b8a5b122d1ce740a55dd51281268dd026c3d'
Sep 16, 2017
17e1771
Merge commit 'fbd80f079c52c9c373746dfea7636b2bd6abfc2b'
Sep 18, 2017
ebeabc1
Merge commit '489f6f22c8f4d54bf216655d3eda6d48946986da'
Sep 22, 2017
f7ed29f
Merge commit 'f844d02a1b66a9f5b8524ac8c4309b09b29cff23'
Sep 23, 2017
3c95f62
Merge commit '5c54f72da3712d1991ef124db940d257844c5b2a'
Sep 24, 2017
32d135f
Merge commit 'e8c8bd77966e726e0632b9c5822a995732662fb1'
Sep 26, 2017
a71004a
Merge commit 'ed05dd11fc5ddf5a1a6ebbb8b762050af789e249'
Sep 26, 2017
66ce9db
Merge commit '2a1e5ea5c97250c19da52e7fde4c3dd2fa5fb045'
Sep 27, 2017
60c2698
Merge commit '957bb81bd5d0e2b066b29a317c74646cef4f095f'
Sep 27, 2017
4e41935
Merge commit '9e05035ff87fbceddca890b184f65678787fffc2'
Oct 3, 2017
eaacebf
Merge commit '6755780df1a6fddaad6f4d4ec9040efc5f0b8069'
Oct 4, 2017
91dc79f
Merge commit 'd317572ffb80f564d27ec54e5db24d763705a8a5'
Oct 5, 2017
06e8d9e
Merge commit '5c0409d9e0ccffa34d663f363da358658318d3c4'
Oct 18, 2017
893a2a5
Merge commit '84d21ee902edb82475a0a452970618afb51a2d94'
Oct 24, 2017
b295b40
Merge commit 'f4b01f079a6254b29ba02765b8fe15fa7669745d'
Oct 26, 2017
7122e30
Merge commit '966a65632255cfee649013fcfc9ddd687cae0311'
Oct 31, 2017
1015191
Merge commit 'b7920de293a51139c1efed9bd591fd93edcc2f67'
Nov 1, 2017
3f99563
Merge commit '2af08d2264b8f03cc01b62fde155807d049f1a76'
Nov 9, 2017
36c487f
Merge commit 'fa37af3df7a3b6a9656d6f9c0c1096515618c9c0'
Nov 15, 2017
fb241c8
Merge commit 'a4cc5bfddec05aeb04615d7c6fa68eb073a71477'
Nov 18, 2017
ee62eaa
Merge commit '75d940507bd7530b7e927537ff444874ef510546'
Nov 23, 2017
b7183a8
Merge commit '152fb5056e523c08c8912341745c44efbcbf1bbe'
Nov 26, 2017
730229d
Merge commit 'd0782a47f31e628a1c1088d5256526d9e6819c98'
Nov 29, 2017
90222cd
Merge commit '4af01fe82a318d538886c4a58d283f9b29f04b1f'
Dec 8, 2017
84a7308
Merge commit 'bf8fd5e1999983f1779c529cd0a065c2abcb8728'
Dec 8, 2017
da83600
Merge commit 'fbee9e3def3c1ee576d1af85f3258cc816ceaaaf'
Jan 10, 2018
92f4af4
Merge commit '31d630598d3aa94e9779d958525cf1efdb0c8a11'
May 15, 2018
9b21c84
Merge commit '232b14c1e1da5be67214a4087e12648d4c05d48b'
May 16, 2018
fb76bbb
Merge commit '688cdd10102b2865f118c6ceeba2ec7a36610b66'
May 17, 2018
6e9c926
Merge commit 'e3d73512b1c3e0b5ebef824872fcbf68d4aaf265'
May 18, 2018
fca0fc5
Merge commit '4091469786d22dec4bda83e9e14d91c6f1ab5b6f'
May 18, 2018
00133e9
Merge commit '63564ba68410c26d555fae333c564a829b2098cc'
May 18, 2018
cf178e7
Merge commit '62a386fc1da99a1d77afb73e2ad19e7e47fd5a72'
May 22, 2018
cfbc990
Merge commit 'fc36f8fb64e523d3780b0ec7f91a4ee49d6034ff'
May 31, 2018
51f7adb
Merge commit 'a552753f9224e5f07e5a5ff917024f86df0d48ce'
Jun 12, 2018
b41ea51
Merge commit '673784335c74113b7518ec774e71b0fd086f9a89'
Jul 16, 2018
0a4d3a0
Merge commit '4603c46e13b77c75d00a4d79fb0e46ec57144623'
Jul 20, 2018
638c9fc
Merge commit '6ff507cf54a15292af1398a8e2419b8d9814598c'
Jul 20, 2018
3a06bc0
Merge commit '08780107503323e6bded3afd9a0e6492734d67c9'
Jul 23, 2018
1cb15bb
Merge commit '7bf9619f4e0cdeffc758d7a7f4a89d22f9f73c0e'
Jul 26, 2018
ad728d5
Merge commit '90e901048eb2a8c7f7cad168dcf7dca9e130e803'
Aug 1, 2018
fd652ed
Merge commit 'dff643ba5ac96426c92dba3ac9ea668898cad0aa'
Aug 1, 2018
edb813f
Merge commit '8a6f6203b40b23af7eef57a484ad4cc152f0a18e'
Aug 3, 2018
e52eb18
Merge commit 'a6d2629f7a045dd0b46e270086689fdc114c74f6'
Aug 3, 2018
b919e3b
Merge commit '3c202ee4594d8aeb61633783af77935bc91092d4'
Aug 8, 2018
637bac0
Merge commit '02ba1328002e0c2ced55487fd5c871e78793d8cd'
Aug 9, 2018
ef014bd
Merge commit '81cca1eb7c21f38912ed47ff16b43ca56379c814'
Aug 9, 2018
27c865f
Merge commit 'ff22bb1d0b561cd613d16de88237b2f615b07380'
Aug 26, 2018
bdbbfc8
Merge commit '66cb533420e0e3763418a42a310f88993f8ae78f'
Aug 26, 2018
1a59991
Merge commit 'b8cbae6b8e3dd9b45f47fedd00d8d9f9496ba9a8'
Aug 27, 2018
234e503
Merge commit '9e8e8edf021fe7ce7f24ca55d1ccf2db51b6135e'
Aug 27, 2018
9ac5adb
Merge commit '09e47cabaf09c32d402e8527d3804bac5f118ccf'
Sep 4, 2018
27e74d1
Merge commit '67ff4e446ba5b03a9a1fd5440e423675196b3486'
Sep 6, 2018
6c0dab1
Merge commit 'd42b144cf5072bd2af7a4629ad858891de57f751'
Sep 6, 2018
bc430a7
Merge commit '2e456ca5d2a72b4ad63f2d3252575f2f36a9bd3e'
Sep 6, 2018
a52797d
Merge commit 'ac6f522f6385a2fa7f900247c396f0d6cfccf30d'
Sep 8, 2018
a385f7a
Merge commit 'da4ec50fb71da108a5f067665ed243ed3ba9c2b0'
Sep 14, 2018
3d05b6f
Merge commit '5f29fe81b75e2ffbeb54a55aa63647e7b2f6457b'
Sep 20, 2018
da66d51
updated submodule moose
alfoa Sep 25, 2018
74963b4
Revert "updated submodule moose"
alfoa Sep 25, 2018
8a04eb1
Merge commit 'a96f4be1e31bf296a18eff2eac583f959ea77406'
Sep 27, 2018
2571447
Merge commit 'faf4cd5945c86a5c7ffcb9429431afb0fb64b17a'
Oct 18, 2018
aa745a2
Merge commit 'df5c80ab563785f4308c5fb376a6179f4e34b490'
Oct 18, 2018
74b4aec
Merge commit 'df5efa535fe88e03f00fd32c7b476bfece08e43a'
Oct 19, 2018
3c62067
Merge commit 'e6a78e037becd2d21bba40ef9dd5e67568dfac78'
Oct 19, 2018
d3b2d86
Merge commit '9d7b56399ac235e1d53725c22f09c9556de0a788'
Oct 29, 2018
cd29182
Merge commit '04c950978bb73845d5d033ec470becacad6dcb3b'
Oct 29, 2018
ecfc83a
Merge commit '2db73e92991e23d3bb8c0a58c4fbbaf2527dc0cc'
Nov 1, 2018
a26f2b5
Merge commit '2bf86b2b414eeada5d2f91a2cbe7041aa346fde7'
Nov 2, 2018
a065eb1
Merge commit 'b33b914213c3b2cf97c62b807353f9e008d726ae'
Nov 2, 2018
23b0233
Merge commit '9742628ebc8e7a68e1c1c7c543bc2940d5e36362'
Nov 5, 2018
ba310c6
Merge commit '2ac220ffb34d2dfb5c8fb1aeea5b0398e1e85560'
Nov 5, 2018
81193a4
Merge commit 'd230c80dc22b73cc207f34d8093ba33eeac8657b'
Nov 5, 2018
e884921
Merge commit 'f8431ba87cfe4e5e285e70ed9e81b21e1b34d719'
Nov 5, 2018
9fd97f9
Merge commit '666978e8546d1f948b2ad55a4c3b0fce5cc8533c'
Nov 7, 2018
5935b37
Merge commit '5bcb86950a913d00e9aacfe691674e9e0b5519b5'
Nov 8, 2018
df17bd8
Merge commit 'e90d3acc18098ee4ef4ced0c691387597d9667f0'
Nov 8, 2018
e6278c8
Merge commit 'a87baededaaf4ceb73ec05876f610a3aa8a06dfc'
Nov 12, 2018
a4ee9b1
Merge commit 'cb8ac066b553219cb0dfe28e3baaf5ccb7508ff6'
Nov 15, 2018
4aae9c2
Merge commit '00b6abb2485fe1f1c12ae454d6d1046e5e98768c'
Nov 15, 2018
be21ac4
Merge commit 'e56324cf9032347e49c36d4030f74f36beed725a'
Nov 15, 2018
8b71716
Merge commit '82ce63a126a73948bbbb1d7af0e3d63d76d96f0a'
Nov 16, 2018
3d54347
Merge commit 'f31a0a4bae9ff459aaec7a35b28c65bf51a55963'
Nov 16, 2018
e6d3405
Merge commit 'ba2343337b96c71c7e1a6c67fe2328051cb4463c'
Nov 16, 2018
9343309
Merge commit 'c0cddb51b37fd5f9836ab13d6861baeb1d20346f'
Nov 16, 2018
63a5f63
Merge commit '9aa922f7d279c32869dcbfe1439fc6728bde8383'
Nov 30, 2018
300c62b
Merge commit 'a6977d05ad01cee7bb12ad9d5d4d0ecf0a8e7bd7'
Dec 5, 2018
5860c60
Merge commit '197d5567ca7220bfb60ccb25c10b4654212e218b'
Dec 10, 2018
c5918b6
Merge commit 'e1eae85628570704e4d40724552832ff0e6f6d01'
Dec 13, 2018
d4734a4
Merge commit '4d59fc07802d2a84cc59a5cf14935053a5049474'
Dec 14, 2018
7434b15
Merge commit '464cc9d01a905e7331043dd12b099f01b1e39450'
Dec 18, 2018
eb4987e
Merge commit 'f764c48ab4333db30986787716a3dc9a23f6e745'
Dec 19, 2018
ded41e5
Merge commit 'e679d1050ba44bc4a7e7e489f11b0ce363a55f37'
Jan 7, 2019
d53bd8e
Merge commit '2a0203b49c27740da07ea7b9c1913a5c2642cf12'
Jan 8, 2019
a18df7e
Merge commit '6ae167b4a4689d8dcbbdadaab635acc3a93f1d1e'
Jan 11, 2019
f89455d
Merge commit '838354e5fba3fd04b437cefe3f612da8725219e4'
Jan 15, 2019
f11c3b0
Merge commit '7e5b1844dd309b38eb6923279af60083d242d28b'
Jan 21, 2019
55d3686
Merge commit '2ba117ad3863fa7d12d92f278fdae96daafc002c'
Jan 23, 2019
5344a41
Merge commit '2ef614dcb0d503cf5c2a1a7db76412375d7cb09c'
Jan 24, 2019
d8c4e84
Merge commit '5d61e1861042ac99efa6b89d561b56ce54fdc830'
Jan 25, 2019
b0d2f52
Merge commit 'da39d9f66ac180ffb9f0175da63d159e055a519e'
Jan 29, 2019
06ac3f0
Merge commit '9a0e0b4a450fe0f2f7118182adab6a47dd241964'
Jan 31, 2019
eddd98c
Merge commit '88c3c825d0dabd9c7a9136f088db33c4d6556308'
Jan 31, 2019
ad3327d
Merge commit '5e135912986e711a1191e20076b5f142e5d2e39f'
Jan 31, 2019
97b804c
Merge commit '21a766cca817906c1f066ef51b6379823a29ae14'
Feb 6, 2019
1713ef2
Merge commit 'b179f4bb7ea09f64148b4adf48bf07794dc5c6d8'
Feb 9, 2019
dff236b
Merge commit 'c86fba6f07bd7d1d415baca35ca83cf129b74d0d'
Feb 26, 2019
85f9ca2
Merge commit '49ee6fba865fe6a26b1dd4d5738b98f57efa142d'
Feb 28, 2019
ef6507a
Merge commit '2012ade30f50e99cf28100a2a1e4c5478ae46954'
Mar 2, 2019
89efcba
Merge commit '57ac28dc6505d0ac2fd0c50eeb6caf4a52c220b9'
Mar 3, 2019
fb4d82a
Merge commit '4165a083276c2aa42b512e6b4cbcb66ef805ba2d'
Mar 6, 2019
b6d5f89
Merge commit '389a15d3260627b3aa15fbc82ed3dbcc2f10646b'
Mar 8, 2019
c4318bd
Merge commit '8723d11c9513b2eb5702a2ab6c37ecd8c6d94923'
Mar 11, 2019
f23adfd
Merge commit '2e1228c4f6bc38eccbe82771c82305ee3d37f1ba'
Mar 18, 2019
b24af4c
Merge commit '2964e52cad089b07d1d82a5da68d0ae92fa9d697'
Mar 26, 2019
9303eab
Merge commit 'c5191d09c0f77f560520370b969a2703dbf65d15'
Mar 27, 2019
7b47047
Merge commit 'da3551f16a523c90610da3f59dde773a23619e6a'
Mar 27, 2019
1c720ff
Merge commit 'fe74929a53d32a30e2061cf7295754ebd58a4158'
Mar 27, 2019
dbb0ac1
Merge commit '9f3cb3d30c0766a4f7473fac4e6b77cac74fe869'
Mar 27, 2019
f772a1b
Merge commit '39e6650285db68185a377b9d9944c0b09b4dd51c'
Mar 27, 2019
709d6ee
Merge commit '064e7d8670fa1365f2b60bcf73b9845745e7e362'
Apr 8, 2019
eb9082f
Merge commit '73a7e643893ee18d63aa62eca218c907e006e865'
Apr 9, 2019
8587706
Merge commit 'a493f31ff2a0514a2e19add5b01736d21cc7dec7'
Apr 16, 2019
b33e09b
Merge commit '8a807cb1b5e101b9e93e5232caad004d3d0e2254'
Apr 19, 2019
a90360b
Merge commit '5c2c68957b486a5491045e775d2543f1f241f946'
May 1, 2019
fb40d49
Merge commit '94b1adf9a8b70d66c3d775f44f3c6c9389543406'
May 2, 2019
9666d56
Merge commit 'c493b48a9b9be1d4ed62895040407eb1781056f0'
May 2, 2019
b0eb148
Merge commit 'b7f3f4cccdb2f26a6d78b474a317bfcf4e37422f'
May 3, 2019
e7c9154
Merge commit '4b232197adb3f9dc14785fc4677d45ba7860e3d0'
May 5, 2019
c694c32
Merge commit '74a184c38a9d44a6c861ef854fc0fb4930262fdf'
May 7, 2019
02fa320
Merge commit '2dc37ab865c5611a5830f36fbe596f6044c50635'
May 8, 2019
69bf84e
Merge commit '67456d764b3f5ff1c2c6657996c4d82e6c4170ba'
May 9, 2019
5cbede2
Merge commit '69f066fdeac69f0d64fd0fb5f4dfa7a3dfa96e53'
May 10, 2019
1977bf6
Merge commit '9849909132d1d56cb0e57583d96d39416a8da0e4'
May 10, 2019
b06e178
Merge commit 'cc4ffec817c01cf4399e60359da7b1fc7047918b'
Jun 3, 2019
e525730
Merge commit '785fe9c8fd8ad1f679de4b7d82dc51224ff2a7e0'
Jun 24, 2019
aa30de3
Merge commit '6cc806b889bbcd4b2a858c049da240dbe2427e59'
Jun 24, 2019
24c9215
Merge commit '904a61ccb36f00b43d1cad390d6b3ce8479de49b'
Jun 24, 2019
dc16803
Merge commit '2949d93521a0aa6484e4a72e3b099f9f87d0ea12'
Jun 25, 2019
5cab996
Merge commit '75cd2bbd0102bfc303b475fc23630056ab12ce0e'
Jun 26, 2019
1806889
Merge branch 'devel' of https://github.com/idaholab/raven into devel
Jimmy-INL Sep 23, 2019
9cd1b03
Merge remote-tracking branch 'upstream/devel' into devel
Jimmy-INL Nov 20, 2019
2678917
Merge branch 'devel' of https://github.com/idaholab/raven into devel
Jimmy-INL Jan 7, 2020
5da7950
Few changes to probabilistic.py and representativity.py
Jimmy-INL Jul 24, 2021
01a87fb
Merge branch 'devel' into Jimmy-Congjian-Representativity
Jimmy-INL Sep 8, 2021
bbef143
Switching to PostProcessorReadyInterface
joshua-cogliati-inl Nov 23, 2021
4c280cc
Merge remote-tracking branch 'josh/cogljj/bs2' into Jimmy-testingRepr…
Jimmy-INL Nov 30, 2021
73cf876
fixind factories and __init__
Jimmy-INL Nov 30, 2021
fb773e8
adding the representativity again
Jimmy-INL Dec 2, 2021
edf8fcc
Fixing passing data.
joshua-cogliati-inl Dec 2, 2021
d6f9038
first attept to fix representativity
Jimmy-INL Dec 3, 2021
d5fe3e4
adding features to the BS call
Jimmy-INL Dec 9, 2021
9d22667
slowly adding differences from Josh's pathch
Jimmy-INL Jan 26, 2022
56b4401
Adding test
Jimmy-INL Mar 2, 2022
d605ee0
Merge branch 'devel' of https://github.com/idaholab/raven into devel
Jimmy-INL Mar 31, 2022
66faee7
returning xr temperarly with dict
Jimmy-INL Apr 5, 2022
19cd707
removing unnecessay imports for python3
Jimmy-INL Apr 6, 2022
6b81b9e
adding representativity to user_manual
Jimmy-INL Apr 13, 2022
ed2dd4f
removing unnecessary commented lines
Jimmy-INL Apr 13, 2022
d780bda
Updating test description
Jimmy-INL Apr 13, 2022
8203734
more cleaning
Jimmy-INL Apr 13, 2022
9950169
adding some descriptions to the inputs
Jimmy-INL Apr 13, 2022
9ed4c36
removing old methods
Jimmy-INL Apr 13, 2022
e1d4868
camelBack
Jimmy-INL Apr 13, 2022
d5cc347
cleaning test
Jimmy-INL Apr 13, 2022
f59508b
trying to fix imports
Jimmy-INL Apr 13, 2022
6df88b6
Merge branch 'devel' into wangc/representativity
wangcj05 Apr 26, 2022
efb48e7
remove changes from plugins
wangcj05 Apr 26, 2022
3d2b542
update basic stats pp
wangcj05 Apr 26, 2022
81659af
update and clean up Basic Statistics PP
wangcj05 Apr 27, 2022
194f282
update representativity
wangcj05 Apr 27, 2022
3776f12
update representativity
wangcj05 Apr 27, 2022
223b590
Merge branch 'wangc/representativity' of https://github.com/wangcj05/…
Jimmy-INL Apr 28, 2022
9b12b89
adding linModel.py
Jimmy-INL Apr 28, 2022
5a09647
changes to the metric
Jimmy-INL Apr 28, 2022
9f503a0
updating linear representativity test
Jimmy-INL May 16, 2022
b373759
updating from upstream
Jimmy-INL May 16, 2022
a39860d
pushing test_linModel
Jimmy-INL May 16, 2022
2ecbf88
resolving conflicts
Jimmy-INL May 16, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 93 additions & 0 deletions doc/user_manual/PostProcessors/Validation.tex
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ \subsubsection{Validation PostProcessors}
\hline
\textbf{Validation Algorithm} & \textbf{DataObject} & \textbf{Available Metrics} \\ \hline
Probabilistic & \begin{tabular}[c]{@{}c@{}}PointSet \\ HistorySet\end{tabular} & \begin{tabular}[c]{@{}c@{}}CDFAreaDifference\\ \\ PDFCommonArea\end{tabular} \\ \hline
Representativity & \begin{tabular}[c]{@{}c@{}}PointSet \\ HistorySet \\DataSet\end{tabular} & \begin{tabular}[c]{@{}c@{}}BiasFactor\end{tabular} \\ \hline
PPDSS & HistorySet & DSS \\ \hline
\end{tabular}
\end{table}
Expand Down Expand Up @@ -148,3 +149,95 @@ \subsubsection{Validation PostProcessors}
...
<Simulation>
\end{lstlisting}


\paragraph{Representativity}
The \textbf{Representativity} post-processor is one of three \textbf{Validation} post-processors, in fact there is a
post-processor interface that acts as a gate for applying these validation algorithms
(i.e., representativity, Physics-guided Convergence Mapping (PCM), and Dynamic System Scaling (DSS)).
The post-processor is in charge of deploying a common infrastructure for the user of \textbf{Validation} problems.
The usage of this post-processor is three fold. one, to quantitatively assess if a mock/prototype model/experiment
form a good representation of a target model. Two, if a set of experiments can represent a target model and can
claim a full coverage of the design space and scenarios, and three, if the available set of experiments are not
enough to declare coverage what are the remaining experiments required in order to achieve full coverage and
increase the representativity/bias factor. The representativity theory was first founded in the
Neutronics community \ref{} then shortly after, was transformed to the thermal hydraulics \ref{}.
So far several algorithms are implemented within this post-processor:
%
\ppType{Representativity}{Representativity}
%

\begin{itemize}
\item \xmlNode{Features}, \xmlDesc{comma separated string, required field}, specifies the names of the features, which can be the measuables/observables of the mock model. Reader should be warned that this nomenclature is different than the Machine learning nomenclature.

\item \xmlNode{Targets}, \xmlDesc{comma separated string, required field}, contains a comma separated list of
targets. These are the Figures of merit (FOMs) in the target model against which the mock model is being validated.

\item \xmlNode{featureParameters}, \xmlDesc{comma separated string, required field}, specifies the names of the parameters/inputrs to the mock model.

\item \xmlNode{targetParameters}, \xmlDesc{comma separated string, required field}, contains a comma separated list of
target parameters/inputs.

\item \xmlNode{pivotParameter}, \xmlDesc{string, optional field}, ID of the temporal variable of the moch model. Default is ``time''.
\nb Used just in case the \xmlNode{pivotValue}-based operation is requested (i.e., time dependent validation).
\item \xmlNode{targetPivotParameter}, \xmlDesc{string, optional field}, ID of the temporal variable in the target model. Default is ``time''.
\nb Used just in case the \xmlNode{pivotValue}-based operation is requested (i.e., time dependent validation).

\item \xmlNode{Metric}, \xmlDesc{string, required field}, specifies the \textbf{Metric} name that is defined via
\textbf{Metrics} entity. In this xml-node, the following xml attributes need to be specified:
\begin{itemize}
\item \xmlAttr{class}, \xmlDesc{required string attribute}, the class of this metric (e.g. Metrics)
\item \xmlAttr{type}, \xmlDesc{required string attribute}, the sub-type of this Metric (e.g. SKL, Minkowski)
\end{itemize}
The choice of the available metrics depends on the specific validation algorithm that is chosen (see table \ref{tab:ValidationAlgorithms})
\end{itemize}


The \textbf{Represntativity} post-processor can make use of the \textbf{Metric} system (See Chapter \ref{sec:Metrics}),
in conjunction with the specific algorithm chosen from the list above,
to report validation scores for both static and time-dependent data.
Indeed, Both \textbf{PointSet} and \textbf{HistorySet} can be accepted by this post-processor.
If the name of given variable to be compared is unique, it can be used directly, otherwise the variable can be specified
with $DataObjectName|InputOrOutput|VariableName$ nomenclature.

\textbf{Example:}
\begin{lstlisting}[style=XML,morekeywords={subType}]
<Simulation>
...
<Steps>
<MultiRun name="mcRun" re-seeding="20021986">
<Input class="DataObjects" type="PointSet">inputPlaceHolder2</Input>
<Model class="Models" type="ExternalModel">linModel</Model>
<Sampler class="Samplers" type="MonteCarlo">MC_external</Sampler>
<Output class="DataObjects" type="PointSet">outputDataMC1</Output>
<Output class="DataObjects" type="PointSet">outputDataMC2</Output>
</MultiRun>
<PostProcess name="PP1">
<Input class="DataObjects" type="PointSet">outputDataMC1</Input>
<Input class="DataObjects" type="PointSet">outputDataMC2</Input>
<Model class="Models" type="PostProcessor">pp1</Model>
<Output class="DataObjects" type="PointSet">pp1_metric</Output>
<Output class="OutStreams" type="Print">pp1_metric_dump</Output>
</PostProcess>
</Steps>
...
<Models>
...
<PostProcessor name="pp1" subType="Representativity">
<Features>outputDataMC1|F1, outputDataMC1|F2, outputDataMC1|F3</Features>
<Targets>outputDataMC2|F1, outputDataMC2|F2, outputDataMC2|F3</Targets>
<Metric class="Metrics" type="Metric">simIndex</Metric>
<featureParameters>outputDataMC1|p1,outputDataMC1|p2</featureParameters>
<targetParameters>outputDataMC2|p1,outputDataMC2|p2</targetParameters>
<pivotParameter>outputDataMC1|time</pivotParameter>
<targetPivotParameter>outputDataMC2|time</targetPivotParameter>
</PostProcessor>
...
<Models>
...
<Metrics>
<Metric name="simIndex" subType="RepresentativityFactors"/>
</Metrics>
...
<Simulation>
\end{lstlisting}
1 change: 1 addition & 0 deletions doc/user_manual/postprocessor.tex
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ \subsection{PostProcessor}
%%%%% PP ComparisonStatistics %%%%%%%
\input{PostProcessors/ComparisonStatistics.tex}


%%%%% PP ImportanceRank %%%%%%%
\input{PostProcessors/ImportanceRank.tex}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,247 @@
# Copyright 2017 Battelle Energy Alliance, LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
Created on April 29, 2021

@author: Mohammad Abdo (@Jimmy-INL)

This class represents a base class for the validation algorithms
It inherits from the PostProcessor directly
##TODO: Recast it once the new PostProcesso API gets in place
"""

#External Modules------------------------------------------------------------------------------------
import numpy as np
import xarray as xr
#External Modules End--------------------------------------------------------------------------------

#Internal Modules------------------------------------------------------------------------------------
#from utils import xmlUtils
from utils import InputData, InputTypes
#import Files
#import Distributions
#import MetricDistributor
from utils import utils
from ..Validation import Validation
# from utils.mathUtils import partialDerivative, derivatives
#Internal Modules End--------------------------------------------------------------------------------

class Representativity(Validation):
"""
Representativity is a base class for validation problems
It represents the base class for most validation problems
"""

@classmethod
def getInputSpecification(cls):
"""
Method to get a reference to a class that specifies the input data for
class cls.
@ In, cls, the class for which we are retrieving the specification
@ Out, specs, InputData.ParameterInput, class to use for
specifying input of cls.
"""
specs = super(Representativity, cls).getInputSpecification()
parametersInput = InputData.parameterInputFactory("featureParameters", contentType=InputTypes.StringListType)
parametersInput.addParam("type", InputTypes.StringType)
specs.addSub(parametersInput)
targetParametersInput = InputData.parameterInputFactory("targetParameters", contentType=InputTypes.StringListType)
targetParametersInput.addParam("type", InputTypes.StringType)
specs.addSub(targetParametersInput)
targetPivotParameterInput = InputData.parameterInputFactory("targetPivotParameter", contentType=InputTypes.StringType)
specs.addSub(targetPivotParameterInput)
return specs

def __init__(self):
"""
Constructor
@ In, None
@ Out, None
"""
super().__init__()
from Models.PostProcessors import factory as ppFactory # delay import to allow definition
self.printTag = 'POSTPROCESSOR Representativity'
self.dynamicType = ['static','dynamic'] # for now only static is available
self.acceptableMetrics = ["RepresentativityFactors"] # acceptable metrics
self.name = 'Represntativity'
self.stat = ppFactory.returnInstance('BasicStatistics')
self.stat.what = ['NormalizedSensitivities'] # expected value calculation


# def inputToInternal(self, currentInputs):
# """
# Method to convert an input object into the internal format that is
# understandable by this pp.
# @ In, currentInputs, list or DataObject, data object or a list of data objects
# @ Out, measureList, list of (feature, target), the list of the features and targets to measure the distance between
# """
# if type(currentInputs) != list:
# currentInputs = [currentInputs]
# hasPointSet = False
# hasHistorySet = False
# #Check for invalid types
# for currentInput in currentInputs:
# inputType = None
# if hasattr(currentInput, 'type'):
# inputType = currentInput.type

# if isinstance(currentInput, Files.File):
# self.raiseAnError(IOError, "Input type '", inputType, "' can not be accepted")
# elif isinstance(currentInput, Distributions.Distribution):
# pass #Allowed type
# elif inputType == 'HDF5':
# self.raiseAnError(IOError, "Input type '", inputType, "' can not be accepted")
# elif inputType == 'PointSet':
# hasPointSet = True
# elif inputType == 'HistorySet':
# hasHistorySet = True
# if self.multiOutput == 'raw_values':
# self.dynamic = True
# if self.pivotParameter not in currentInput.getVars('indexes'):
# self.raiseAnError(IOError, self, 'Pivot parameter', self.pivotParameter,'has not been found in DataObject', currentInput.name)
# if not currentInput.checkIndexAlignment(indexesToCheck=self.pivotParameter):
# self.raiseAnError(IOError, "HistorySet", currentInput.name," is not syncronized, please use Interfaced PostProcessor HistorySetSync to pre-process it")
# pivotValues = currentInput.asDataset()[self.pivotParameter].values
# if len(self.pivotValues) == 0:
# self.pivotValues = pivotValues
# elif set(self.pivotValues) != set(pivotValues):
# self.raiseAnError(IOError, "Pivot values for pivot parameter",self.pivotParameter, "in provided HistorySets are not the same")
# else:
# self.raiseAnError(IOError, "Metric cannot process "+inputType+ " of type "+str(type(currentInput)))
# if self.multiOutput == 'raw_values' and hasPointSet and hasHistorySet:
# self.multiOutput = 'mean'
# self.raiseAWarning("Reset 'multiOutput' to 'mean', since both PointSet and HistorySet are provided as Inputs. Calculation outputs will be aggregated by averaging")

# measureList = []

# for cnt in range(len(self.features)):
# feature = self.features[cnt]
# target = self.targets[cnt]
# featureData = self.__getMetricSide(feature, currentInputs)
# targetData = self.__getMetricSide(target, currentInputs)
# measureList.append((featureData, targetData))

# return measureList

# def initialize(self, features, targets, **kwargs):
# """
# Set up this interface for a particular activity
# @ In, features, list, list of features
# @ In, targets, list, list of targets
# @ In, kwargs, dict, keyword arguments
# """
# super().initialize(features, targets, **kwargs)
# self.stat.toDo = {'NormalizedSensitivity':[{'targets':set(self.targets), 'prefix':'nsen'}]}
# # self.stat.toDo = {'NormalizedSensitivity'[{'targets':set([self.targets]), 'prefix':'nsen'}]}
# fakeRunInfo = {'workingDir':'','stepName':''}
# self.stat.initialize(fakeRunInfo, self.Parameters, features, **kwargs)

def _handleInput(self, paramInput):
"""
Function to handle the parsed paramInput for this class.
@ In, paramInput, ParameterInput, the already parsed input.
@ Out, None
"""
super()._handleInput(paramInput)
for child in paramInput.subparts:
if child.getName() == 'featureParameters':
self.Parameters = child.value
elif child.getName() == 'targetParameters':
self.targetParameters = child.value
elif child.getName() == 'targetPivotParameter':
self.targetPivotParameter = child.value

def run(self, inputIn):
"""
This method executes the postprocessor action. In this case it loads the
results to specified dataObject
@ In, inputIn, list, dictionary of data to process
@ Out, outputDict, dict, dictionary containing the post-processed results
"""
dataSets = [data for _, _, data in inputIn['Data']]
pivotParameter = self.pivotParameter
names=[]
if isinstance(inputIn['Data'][0][-1], xr.Dataset):
names = [inp[-1].attrs['name'] for inp in inputIn['Data']]
if len(inputIn['Data'][0][-1].indexes) and self.pivotParameter is None:
if 'dynamic' not in self.dynamicType: #self.model.dataType:
self.raiseAnError(IOError, "The validation algorithm '{}' is not a dynamic model but time-dependent data has been inputted in object {}".format(self._type, inputIn['Data'][0][-1].name))
else:
pivotParameter = self.pivotParameter
evaluation ={k: np.atleast_1d(val) for k, val in self._evaluate(dataSets, **{'dataobjectNames': names}).items()}
if pivotParameter:
if len(dataSets[0][pivotParameter]) != len(list(evaluation.values())[0]):
self.raiseAnError(RuntimeError, "The pivotParameter value '{}' has size '{}' and validation output has size '{}'".format( len(dataSets[0][self.pivotParameter]), len(evaluation.values()[0])))
if pivotParameter not in evaluation:
evaluation[pivotParameter] = dataSets[0][pivotParameter]
return evaluation

def _evaluate(self, datasets, **kwargs):
"""
Main method to "do what you do".
@ In, datasets, list, list of datasets (data1,data2,etc.) to used.
@ In, kwargs, dict, keyword arguments
@ Out, outputDict, dict, dictionary containing the results {"feat"_"target"_"metric_name":value}
"""
# self.stat.run({'targets':{self.target:xr.DataArray(self.functionS.evaluate(tempDict)[self.target])}})[self.computationPrefix +"_"+self.target]
for data in datasets:
sen = self.stat.run(data)
names = kwargs.get('dataobjectNames')
outs = {}
for feat, targ, param, targParam in zip(self.features, self.targets, self.Parameters, self.targetParameters):
featData = self._getDataFromDatasets(datasets, feat, names)
targData = self._getDataFromDatasets(datasets, targ, names)
Parameters = self._getDataFromDatasets(datasets, param, names)
targetParameters = self._getDataFromDatasets(datasets, targParam, names)
# senFOMs = partialDerivative(featData.data,np.atleast_2d(Parameters.data)[0,:],'x1')
senFOMs = np.atleast_2d(Parameters[0])#.data
senMeasurables = np.atleast_2d(targetParameters[0])
covParameters = senFOMs @ senMeasurables.T
for metric in self.metrics:
name = "{}_{}_{}".format(feat.split("|")[-1], targ.split("|")[-1], metric.name)
outs[name] = metric.evaluate((featData, targData), senFOMs = senFOMs, senMeasurables=senMeasurables, covParameters=covParameters)
return outs

def _getDataFromDatasets(self, datasets, var, names=None):
"""
Utility function to retrieve the data from datasets
@ In, datasets, list, list of datasets (data1,data2,etc.) to search from.
@ In, names, list, optional, list of datasets names (data1,data2,etc.). If not present, the search will be done on the full list.
@ In, var, str, the variable to find (either in fromat dataobject|var or simply var)
@ Out, data, tuple(numpy.ndarray, xarray.DataArray or None), the retrived data (data, probability weights (None if not present))
"""
data = None
pw = None
dat = None
if "|" in var and names is not None:
do, feat = var.split("|")
doindex = names.index(do)
dat = datasets[doindex][feat]
else:
for doindex, ds in enumerate(datasets):
if var in ds:
dat = ds[var]
break
if 'ProbabilityWeight-{}'.format(feat) in datasets[names.index(do)]:
pw = datasets[doindex]['ProbabilityWeight-{}'.format(feat)].values
elif 'ProbabilityWeight' in datasets[names.index(do)]:
pw = datasets[doindex]['ProbabilityWeight'].values
dim = len(dat.shape)
# (numRealizations, numHistorySteps) for MetricDistributor
dat = dat.values
if dim == 1:
# the following reshaping does not require a copy
dat.shape = (dat.shape[0], 1)
data = dat, pw
return data
1 change: 1 addition & 0 deletions ravenframework/Metrics/metrics/Factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
from .CDFAreaDifference import CDFAreaDifference
from .PDFCommonArea import PDFCommonArea
from .ScipyMetric import ScipyMetric
from .RepresentativityFactors import RepresentativityFactors
from .DSS import DSS

factory = EntityFactory('Metrics')
Expand Down
Loading