diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00200_04.png b/Training/Karusel_dataset-COCO/images/train/frame_00200_04.png
deleted file mode 100644
index d7c7a6c..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00200_04.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00200_06.png b/Training/Karusel_dataset-COCO/images/train/frame_00200_06.png
deleted file mode 100644
index d555ca6..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00200_06.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00200_07.png b/Training/Karusel_dataset-COCO/images/train/frame_00200_07.png
deleted file mode 100644
index 951d7bc..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00200_07.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00200_09.png b/Training/Karusel_dataset-COCO/images/train/frame_00200_09.png
deleted file mode 100644
index e9d96f8..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00200_09.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00200_12.png b/Training/Karusel_dataset-COCO/images/train/frame_00200_12.png
deleted file mode 100644
index acc15f4..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00200_12.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00225.png b/Training/Karusel_dataset-COCO/images/train/frame_00225.png
deleted file mode 100644
index 659628a..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00225.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00225_03.png b/Training/Karusel_dataset-COCO/images/train/frame_00225_03.png
deleted file mode 100644
index 0b43106..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00225_03.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00225_05.png b/Training/Karusel_dataset-COCO/images/train/frame_00225_05.png
deleted file mode 100644
index 8cec632..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00225_05.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00250.png b/Training/Karusel_dataset-COCO/images/train/frame_00250.png
deleted file mode 100644
index d8f39fd..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00250.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00250_06.png b/Training/Karusel_dataset-COCO/images/train/frame_00250_06.png
deleted file mode 100644
index d139b1a..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00250_06.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00250_07.png b/Training/Karusel_dataset-COCO/images/train/frame_00250_07.png
deleted file mode 100644
index a46a145..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00250_07.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00275_06.png b/Training/Karusel_dataset-COCO/images/train/frame_00275_06.png
deleted file mode 100644
index 038139d..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00275_06.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00275_09.png b/Training/Karusel_dataset-COCO/images/train/frame_00275_09.png
deleted file mode 100644
index 92aa0c5..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00275_09.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00300_02.png b/Training/Karusel_dataset-COCO/images/train/frame_00300_02.png
deleted file mode 100644
index 7ce5cd4..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00300_02.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00300_05.png b/Training/Karusel_dataset-COCO/images/train/frame_00300_05.png
deleted file mode 100644
index 8681df7..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00300_05.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00325_01.png b/Training/Karusel_dataset-COCO/images/train/frame_00325_01.png
deleted file mode 100644
index dc877fb..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00325_01.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00325_07.png b/Training/Karusel_dataset-COCO/images/train/frame_00325_07.png
deleted file mode 100644
index a37191a..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00325_07.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00350_05.png b/Training/Karusel_dataset-COCO/images/train/frame_00350_05.png
deleted file mode 100644
index c63ff63..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00350_05.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00350_07.png b/Training/Karusel_dataset-COCO/images/train/frame_00350_07.png
deleted file mode 100644
index 7238ac6..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00350_07.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00375_01.png b/Training/Karusel_dataset-COCO/images/train/frame_00375_01.png
deleted file mode 100644
index 6583cc8..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00375_01.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00375_03.png b/Training/Karusel_dataset-COCO/images/train/frame_00375_03.png
deleted file mode 100644
index a0d94f4..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00375_03.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00400_02.png b/Training/Karusel_dataset-COCO/images/train/frame_00400_02.png
deleted file mode 100644
index 1d650f9..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00400_02.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00400_06.png b/Training/Karusel_dataset-COCO/images/train/frame_00400_06.png
deleted file mode 100644
index 6c9b5a1..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00400_06.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00425_05.png b/Training/Karusel_dataset-COCO/images/train/frame_00425_05.png
deleted file mode 100644
index e7cb75e..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00425_05.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00425_06.png b/Training/Karusel_dataset-COCO/images/train/frame_00425_06.png
deleted file mode 100644
index 03ec9d9..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00425_06.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00450_05.png b/Training/Karusel_dataset-COCO/images/train/frame_00450_05.png
deleted file mode 100644
index a852ae1..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00450_05.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00450_06.png b/Training/Karusel_dataset-COCO/images/train/frame_00450_06.png
deleted file mode 100644
index 50ce817..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00450_06.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00475_05.png b/Training/Karusel_dataset-COCO/images/train/frame_00475_05.png
deleted file mode 100644
index 20f644f..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00475_05.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00500_03.png b/Training/Karusel_dataset-COCO/images/train/frame_00500_03.png
deleted file mode 100644
index 3a12f3e..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00500_03.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00525_02.png b/Training/Karusel_dataset-COCO/images/train/frame_00525_02.png
deleted file mode 100644
index 1e8a68c..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00525_02.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00525_03.png b/Training/Karusel_dataset-COCO/images/train/frame_00525_03.png
deleted file mode 100644
index cfeaed0..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00525_03.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00525_04.png b/Training/Karusel_dataset-COCO/images/train/frame_00525_04.png
deleted file mode 100644
index 93980b3..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00525_04.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00550_02.png b/Training/Karusel_dataset-COCO/images/train/frame_00550_02.png
deleted file mode 100644
index 0398040..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00550_02.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00550_03.png b/Training/Karusel_dataset-COCO/images/train/frame_00550_03.png
deleted file mode 100644
index 1166efb..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00550_03.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00575.png b/Training/Karusel_dataset-COCO/images/train/frame_00575.png
deleted file mode 100644
index 9e74f8f..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00575.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00575_02.png b/Training/Karusel_dataset-COCO/images/train/frame_00575_02.png
deleted file mode 100644
index f3df126..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00575_02.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00575_03.png b/Training/Karusel_dataset-COCO/images/train/frame_00575_03.png
deleted file mode 100644
index c99a0a3..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00575_03.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00575_04.png b/Training/Karusel_dataset-COCO/images/train/frame_00575_04.png
deleted file mode 100644
index c379363..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00575_04.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00600_02.png b/Training/Karusel_dataset-COCO/images/train/frame_00600_02.png
deleted file mode 100644
index 258848d..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00600_02.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00600_03.png b/Training/Karusel_dataset-COCO/images/train/frame_00600_03.png
deleted file mode 100644
index 2cc569f..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00600_03.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00625_01.png b/Training/Karusel_dataset-COCO/images/train/frame_00625_01.png
deleted file mode 100644
index a70c2cc..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00625_01.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00625_02.png b/Training/Karusel_dataset-COCO/images/train/frame_00625_02.png
deleted file mode 100644
index b478620..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00625_02.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00875_01.png b/Training/Karusel_dataset-COCO/images/train/frame_00875_01.png
deleted file mode 100644
index e8c794b..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00875_01.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00900_01.png b/Training/Karusel_dataset-COCO/images/train/frame_00900_01.png
deleted file mode 100644
index 0f349ea..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00900_01.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00925.png b/Training/Karusel_dataset-COCO/images/train/frame_00925.png
deleted file mode 100644
index f96538c..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00925.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00925_01.png b/Training/Karusel_dataset-COCO/images/train/frame_00925_01.png
deleted file mode 100644
index 3ef457b..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00925_01.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_00975.png b/Training/Karusel_dataset-COCO/images/train/frame_00975.png
deleted file mode 100644
index 64ba6ac..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_00975.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01000.png b/Training/Karusel_dataset-COCO/images/train/frame_01000.png
deleted file mode 100644
index 916f39d..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01000.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01025.png b/Training/Karusel_dataset-COCO/images/train/frame_01025.png
deleted file mode 100644
index 2836f46..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01025.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01050.png b/Training/Karusel_dataset-COCO/images/train/frame_01050.png
deleted file mode 100644
index dc3b044..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01050.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01100.png b/Training/Karusel_dataset-COCO/images/train/frame_01100.png
deleted file mode 100644
index 0530835..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01100.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01150.png b/Training/Karusel_dataset-COCO/images/train/frame_01150.png
deleted file mode 100644
index 2b10822..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01150.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01175.png b/Training/Karusel_dataset-COCO/images/train/frame_01175.png
deleted file mode 100644
index 546d0c9..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01175.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01200.png b/Training/Karusel_dataset-COCO/images/train/frame_01200.png
deleted file mode 100644
index 545af15..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01200.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01225.png b/Training/Karusel_dataset-COCO/images/train/frame_01225.png
deleted file mode 100644
index 557c4eb..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01225.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01250.png b/Training/Karusel_dataset-COCO/images/train/frame_01250.png
deleted file mode 100644
index ce8a927..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01250.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01275.png b/Training/Karusel_dataset-COCO/images/train/frame_01275.png
deleted file mode 100644
index 1b7713f..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01275.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01300.png b/Training/Karusel_dataset-COCO/images/train/frame_01300.png
deleted file mode 100644
index 8018d23..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01300.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01325.png b/Training/Karusel_dataset-COCO/images/train/frame_01325.png
deleted file mode 100644
index 7f24178..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01325.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01350.png b/Training/Karusel_dataset-COCO/images/train/frame_01350.png
deleted file mode 100644
index c670f0b..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01350.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01400.png b/Training/Karusel_dataset-COCO/images/train/frame_01400.png
deleted file mode 100644
index bc5fced..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01400.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01425.png b/Training/Karusel_dataset-COCO/images/train/frame_01425.png
deleted file mode 100644
index eb8b892..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01425.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01450.png b/Training/Karusel_dataset-COCO/images/train/frame_01450.png
deleted file mode 100644
index aa1eab2..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01450.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01475.png b/Training/Karusel_dataset-COCO/images/train/frame_01475.png
deleted file mode 100644
index c18b0b2..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01475.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01500.png b/Training/Karusel_dataset-COCO/images/train/frame_01500.png
deleted file mode 100644
index 0593edd..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01500.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01525.png b/Training/Karusel_dataset-COCO/images/train/frame_01525.png
deleted file mode 100644
index 23e469c..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01525.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01550.png b/Training/Karusel_dataset-COCO/images/train/frame_01550.png
deleted file mode 100644
index 0c5a3d3..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01550.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01575.png b/Training/Karusel_dataset-COCO/images/train/frame_01575.png
deleted file mode 100644
index 73f72ed..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01575.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01625.png b/Training/Karusel_dataset-COCO/images/train/frame_01625.png
deleted file mode 100644
index 5779049..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01625.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01650.png b/Training/Karusel_dataset-COCO/images/train/frame_01650.png
deleted file mode 100644
index 3dd3a01..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01650.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/train/frame_01700.png b/Training/Karusel_dataset-COCO/images/train/frame_01700.png
deleted file mode 100644
index dbe59c3..0000000
Binary files a/Training/Karusel_dataset-COCO/images/train/frame_01700.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/val/frame_00025_05.png b/Training/Karusel_dataset-COCO/images/val/frame_00025_05.png
deleted file mode 100644
index e7bc58a..0000000
Binary files a/Training/Karusel_dataset-COCO/images/val/frame_00025_05.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/val/frame_00025_12.png b/Training/Karusel_dataset-COCO/images/val/frame_00025_12.png
deleted file mode 100644
index 77eb0a0..0000000
Binary files a/Training/Karusel_dataset-COCO/images/val/frame_00025_12.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/val/frame_00075_07.png b/Training/Karusel_dataset-COCO/images/val/frame_00075_07.png
deleted file mode 100644
index c67c928..0000000
Binary files a/Training/Karusel_dataset-COCO/images/val/frame_00075_07.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/val/frame_00075_11.png b/Training/Karusel_dataset-COCO/images/val/frame_00075_11.png
deleted file mode 100644
index ee572b0..0000000
Binary files a/Training/Karusel_dataset-COCO/images/val/frame_00075_11.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/val/frame_00175_12.png b/Training/Karusel_dataset-COCO/images/val/frame_00175_12.png
deleted file mode 100644
index 36865a7..0000000
Binary files a/Training/Karusel_dataset-COCO/images/val/frame_00175_12.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/val/frame_00200_11.png b/Training/Karusel_dataset-COCO/images/val/frame_00200_11.png
deleted file mode 100644
index d503e50..0000000
Binary files a/Training/Karusel_dataset-COCO/images/val/frame_00200_11.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/val/frame_00550_04.png b/Training/Karusel_dataset-COCO/images/val/frame_00550_04.png
deleted file mode 100644
index 92011a8..0000000
Binary files a/Training/Karusel_dataset-COCO/images/val/frame_00550_04.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/val/frame_01075.png b/Training/Karusel_dataset-COCO/images/val/frame_01075.png
deleted file mode 100644
index 19485b8..0000000
Binary files a/Training/Karusel_dataset-COCO/images/val/frame_01075.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/val/frame_01125.png b/Training/Karusel_dataset-COCO/images/val/frame_01125.png
deleted file mode 100644
index 4d15411..0000000
Binary files a/Training/Karusel_dataset-COCO/images/val/frame_01125.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/val/frame_01375.png b/Training/Karusel_dataset-COCO/images/val/frame_01375.png
deleted file mode 100644
index 17d8377..0000000
Binary files a/Training/Karusel_dataset-COCO/images/val/frame_01375.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/val/frame_01600.png b/Training/Karusel_dataset-COCO/images/val/frame_01600.png
deleted file mode 100644
index ac516ac..0000000
Binary files a/Training/Karusel_dataset-COCO/images/val/frame_01600.png and /dev/null differ
diff --git a/Training/Karusel_dataset-COCO/images/val/frame_01675.png b/Training/Karusel_dataset-COCO/images/val/frame_01675.png
deleted file mode 100644
index 51d897f..0000000
Binary files a/Training/Karusel_dataset-COCO/images/val/frame_01675.png and /dev/null differ
diff --git a/Training/openpifpaf_karussel/__init__.py b/Training/openpifpaf_karussel/__init__.py
deleted file mode 100644
index 386796c..0000000
--- a/Training/openpifpaf_karussel/__init__.py
+++ /dev/null
@@ -1,16 +0,0 @@
-import openpifpaf
-
-from . import karusel_kp
-
-
-def register():
- openpifpaf.DATAMODULES['karusel'] = karusel_kp.karusel_Kp
- openpifpaf.CHECKPOINT_URLS['shufflenetv2k16-apollo-24'] = \
- "http://github.com/DuncanZauss/openpifpaf_assets/releases/" \
- "download/v0.1.0/shufflenetv2k16-201113-135121-apollo.pkl.epoch290"
- openpifpaf.CHECKPOINT_URLS['shufflenetv2k16-apollo-66'] = \
- "http://github.com/DuncanZauss/openpifpaf_assets/releases/" \
- "download/v0.1.0/sk16_apollo_66kp.pkl"
- openpifpaf.CHECKPOINT_URLS['shufflenetv2k30-apollo-66'] = \
- "http://github.com/DuncanZauss/openpifpaf_assets/releases/" \
- "download/v0.1.0/sk30_apollo_66kp.pkl"
diff --git a/Training/openpifpaf_karussel/__pycache__/__init__.cpython-38.pyc b/Training/openpifpaf_karussel/__pycache__/__init__.cpython-38.pyc
deleted file mode 100644
index 2096b53..0000000
Binary files a/Training/openpifpaf_karussel/__pycache__/__init__.cpython-38.pyc and /dev/null differ
diff --git a/Training/openpifpaf_karussel/__pycache__/__init__.cpython-39.pyc b/Training/openpifpaf_karussel/__pycache__/__init__.cpython-39.pyc
deleted file mode 100644
index 62c62f1..0000000
Binary files a/Training/openpifpaf_karussel/__pycache__/__init__.cpython-39.pyc and /dev/null differ
diff --git a/Training/openpifpaf_karussel/__pycache__/constants.cpython-38.pyc b/Training/openpifpaf_karussel/__pycache__/constants.cpython-38.pyc
deleted file mode 100644
index 64ea8b3..0000000
Binary files a/Training/openpifpaf_karussel/__pycache__/constants.cpython-38.pyc and /dev/null differ
diff --git a/Training/openpifpaf_karussel/__pycache__/constants.cpython-39.pyc b/Training/openpifpaf_karussel/__pycache__/constants.cpython-39.pyc
deleted file mode 100644
index 8771417..0000000
Binary files a/Training/openpifpaf_karussel/__pycache__/constants.cpython-39.pyc and /dev/null differ
diff --git a/Training/openpifpaf_karussel/__pycache__/formulaE_kp.cpython-39.pyc b/Training/openpifpaf_karussel/__pycache__/formulaE_kp.cpython-39.pyc
deleted file mode 100644
index f7089fc..0000000
Binary files a/Training/openpifpaf_karussel/__pycache__/formulaE_kp.cpython-39.pyc and /dev/null differ
diff --git a/Training/openpifpaf_karussel/__pycache__/karusel_kp.cpython-38.pyc b/Training/openpifpaf_karussel/__pycache__/karusel_kp.cpython-38.pyc
deleted file mode 100644
index 8267b65..0000000
Binary files a/Training/openpifpaf_karussel/__pycache__/karusel_kp.cpython-38.pyc and /dev/null differ
diff --git a/Training/openpifpaf_karussel/__pycache__/karusel_kp.cpython-39.pyc b/Training/openpifpaf_karussel/__pycache__/karusel_kp.cpython-39.pyc
deleted file mode 100644
index 023e38d..0000000
Binary files a/Training/openpifpaf_karussel/__pycache__/karusel_kp.cpython-39.pyc and /dev/null differ
diff --git a/Training/openpifpaf_karussel/__pycache__/metrics.cpython-38.pyc b/Training/openpifpaf_karussel/__pycache__/metrics.cpython-38.pyc
deleted file mode 100644
index 265d110..0000000
Binary files a/Training/openpifpaf_karussel/__pycache__/metrics.cpython-38.pyc and /dev/null differ
diff --git a/Training/openpifpaf_karussel/__pycache__/metrics.cpython-39.pyc b/Training/openpifpaf_karussel/__pycache__/metrics.cpython-39.pyc
deleted file mode 100644
index 3d77347..0000000
Binary files a/Training/openpifpaf_karussel/__pycache__/metrics.cpython-39.pyc and /dev/null differ
diff --git a/Training/openpifpaf_karussel/constants.py b/Training/openpifpaf_karussel/constants.py
deleted file mode 100644
index 1fc48b6..0000000
--- a/Training/openpifpaf_karussel/constants.py
+++ /dev/null
@@ -1,267 +0,0 @@
-import os
-
-import numpy as np
-try:
- import matplotlib.cm as mplcm
- from matplotlib.animation import FuncAnimation
- from mpl_toolkits.mplot3d import Axes3D
-except ImportError:
- pass
-
-import openpifpaf
-
-CAR_KEYPOINTS_24 = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12',
- '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24']
-
-CAR_SKELETON_24 = [
- [1, 2],[2, 3],[3, 4],[4, 5],[5, 6],[6, 7],[7, 8],[8, 9],[9, 10],[10, 11],
- [11, 12],[12, 13],[13, 14],[14, 15],[15, 16],[16, 17],[17, 18],[18, 19],[19, 20],
- [20, 21],[21, 22],[22, 23],[23, 24],[24, 1],[24, 3],[1, 5]
- ]
-
-CAR_CATEGORIES_24 = ['karusel']
-
-
-CAR_SCORE_WEIGHTS_24 = [5,5,5,0.5,2,2,5,1,1,1,1,4,3,2,3,3,3,1,5,5,2,4,0.5,2]
-
-CAR_SIGMAS_24 = [0.05] * len(CAR_KEYPOINTS_24)
-
-CAR_POSE_24 = np.array([[ 129., -137., 0.],
- [ -41., 33., 0.],
- [ -65., 46., 0.],
- [ 22., -134., 0.],
- [ 70., -253., 0.],
- [ 69., -329., 0.],
- [ -37., -224., 0.],
- [ -88., -199., 0.],
- [-143., -171., 0.],
- [-173., -119., 0.],
- [-219., -30., 0.],
- [-307., -26., 0.],
- [-207., 123., 0.],
- [-138., 258., 0.],
- [ -43., 240., 0.],
- [ 10., 242., 0.],
- [ 62., 229., 0.],
- [ 146., 174., 0.],
- [ 213., 138., 0.],
- [ 230., 59., 0.],
- [ 302., -11., 0.],
- [ 288., -93., 0.],
- [ 172., -65., 0.],
- [ 103., -14., 0.]])
-
-HFLIP_24 = {
- '1': '1',
- '2': '2',
- '3': '3',
- '4': '4',
- '5': '5',
- '6': '6',
- '7': '7',
- '8': '8',
- '9': '9',
- '10': '10',
- '11': '11',
- '12': '12',
- '13': '13',
- '14': '14',
- '15': '15',
- '16': '16',
- '17': '17',
- '18': '18',
- '19': '19',
- '20': '20',
- '21': '21',
- '22': '22',
- '23': '23',
- '24': '24'
-}
-
-training_weights_local_centrality = [
- 0.890968488270775,
- 0.716506138617812,
- 1.05674590410869,
- 0.764774195768455,
- 0.637682585483328,
- 0.686680807728366,
- 0.955422595797394,
- 0.936714585642375,
- 1.34823795445326,
- 1.38308992581967,
- 1.32689945125819,
- 1.38838655605483,
- 1.18980184904613,
- 1.02584355494795,
- 0.90969156732068,
- 1.24732068576104,
- 1.11338768064342,
- 0.933815217550391,
- 0.852297518872114,
- 1.04167641424727,
- 1.01668968075247,
- 1.34625964088011,
- 0.911796331039028,
- 0.866206536337413,
- 1.55957820407853,
- 0.730844382675724,
- 0.651138644197359,
- 0.758018559633786,
- 1.31842501396691,
- 1.32186116654782,
- 0.744347016851606,
- 0.636390683664723,
- 0.715244950821949,
- 1.63122349407032,
- 0.849835699185461,
- 0.910488007220499,
- 1.44244151650561,
- 1.14150437331681,
- 1.19808610191343,
- 0.960186788642886,
- 1.05023623286937,
- 1.19761709710598,
- 1.3872216313401,
- 1.01256700741214,
- 1.1167909667759,
- 1.27893496336199,
- 1.54475684725655,
- 1.40343733870633,
- 1.45552060866114,
- 1.47264222155031,
- 0.970060423999993,
- 0.944450314768933,
- 0.623987071240172,
- 0.5745237907704,
- 0.66890646050993,
- 0.978411632994504,
- 0.587396395188292,
- 0.76307999741129,
- 0.609793563449648,
- 0.67983566494545,
- 0.685883538168462,
- 0.753587600664775,
- 0.770335133588157,
- 0.764713638033368,
- 0.792364155965385,
- 0.796435233566833
-]
-
-
-def get_constants(num_kps):
- if num_kps == 24:
- CAR_POSE_24[:, 2] = 2.0
- return [CAR_KEYPOINTS_24, CAR_SKELETON_24, HFLIP_24, CAR_SIGMAS_24,
- CAR_POSE_24, CAR_CATEGORIES_24, CAR_SCORE_WEIGHTS_24]
- if num_kps == 66:
- CAR_POSE_66[:, 2] = 2.0
- return [CAR_KEYPOINTS_66, CAR_SKELETON_66, HFLIP_66, CAR_SIGMAS_66,
- CAR_POSE_66, CAR_CATEGORIES_66, CAR_SCORE_WEIGHTS_66]
- # using no if-elif-else construction due to pylint no-else-return error
- raise Exception("Only poses with 24 or 66 keypoints are available.")
-
-
-def draw_ann(ann, *, keypoint_painter, filename=None, margin=0.5, aspect=None, **kwargs):
- from openpifpaf import show # pylint: disable=import-outside-toplevel
-
- bbox = ann.bbox()
- xlim = bbox[0] - margin, bbox[0] + bbox[2] + margin
- ylim = bbox[1] - margin, bbox[1] + bbox[3] + margin
- if aspect == 'equal':
- fig_w = 5.0
- else:
- fig_w = 5.0 / (ylim[1] - ylim[0]) * (xlim[1] - xlim[0])
-
- with show.canvas(filename, figsize=(fig_w, 5), nomargin=True, **kwargs) as ax:
- ax.set_axis_off()
- ax.set_xlim(*xlim)
- ax.set_ylim(*ylim)
-
- if aspect is not None:
- ax.set_aspect(aspect)
-
- keypoint_painter.annotation(ax, ann)
-
-
-def draw_skeletons(pose, sigmas, skel, kps, scr_weights):
- from openpifpaf.annotation import Annotation # pylint: disable=import-outside-toplevel
- from openpifpaf import show # pylint: disable=import-outside-toplevel
-
- scale = np.sqrt(
- (np.max(pose[:, 0]) - np.min(pose[:, 0]))
- * (np.max(pose[:, 1]) - np.min(pose[:, 1]))
- )
-
- show.KeypointPainter.show_joint_scales = True
- keypoint_painter = show.KeypointPainter()
- ann = Annotation(keypoints=kps, skeleton=skel, score_weights=scr_weights)
- ann.set(pose, np.array(sigmas) * scale)
- os.makedirs('docs', exist_ok=True)
- draw_ann(ann, filename='docs/skeleton_car.png', keypoint_painter=keypoint_painter)
-
-
-def plot3d_red(ax_2D, p3d, skeleton):
- skeleton = [(bone[0] - 1, bone[1] - 1) for bone in skeleton]
-
- rot_p90_x = np.array([[1, 0, 0], [0, 0, 1], [0, 1, 0]])
- p3d = p3d @ rot_p90_x
-
- fig = ax_2D.get_figure()
- ax = Axes3D(fig, auto_add_to_figure=False)
- fig.add_axes(ax)
- ax.set_axis_off()
- ax_2D.set_axis_off()
-
- ax.view_init(azim=-90, elev=20)
- ax.set_xlabel('X')
- ax.set_ylabel('Y')
- ax.set_zlabel('Z')
- max_range = np.array([p3d[:, 0].max() - p3d[:, 0].min(),
- p3d[:, 1].max() - p3d[:, 1].min(),
- p3d[:, 2].max() - p3d[:, 2].min()]).max() / 2.0
- mid_x = (p3d[:, 0].max() + p3d[:, 0].min()) * 0.5
- mid_y = (p3d[:, 1].max() + p3d[:, 1].min()) * 0.5
- mid_z = (p3d[:, 2].max() + p3d[:, 2].min()) * 0.5
-
- ax.set_xlim(mid_x - max_range, mid_x + max_range)
- ax.set_ylim(mid_y - max_range, mid_y + max_range)
- ax.set_zlim(mid_z - max_range, mid_z + max_range) # pylint: disable=no-member
-
- for ci, bone in enumerate(skeleton):
- c = mplcm.get_cmap('tab20')((ci % 20 + 0.05) / 20) # Same coloring as Pifpaf preds
- ax.plot(p3d[bone, 0], p3d[bone, 1], p3d[bone, 2], color=c)
-
- def animate(i):
- ax.view_init(elev=10., azim=i)
- return fig
-
- return FuncAnimation(fig, animate, frames=360, interval=100)
-
-
-def print_associations():
- print("\nAssociations of the car skeleton with 24 keypoints")
- for j1, j2 in CAR_SKELETON_24:
- print(CAR_KEYPOINTS_24[j1 - 1], '-', CAR_KEYPOINTS_24[j2 - 1])
- print("\nAssociations of the car skeleton with 66 keypoints")
- for j1, j2 in CAR_SKELETON_66:
- print(CAR_KEYPOINTS_66[j1 - 1], '-', CAR_KEYPOINTS_66[j2 - 1])
-
-
-def main():
-# print_associations()
-# =============================================================================
-# draw_skeletons(CAR_POSE_24, sigmas = CAR_SIGMAS_24, skel = CAR_SKELETON_24,
-# kps = CAR_KEYPOINTS_24, scr_weights = CAR_SCORE_WEIGHTS_24)
-# draw_skeletons(CAR_POSE_66, sigmas = CAR_SIGMAS_66, skel = CAR_SKELETON_66,
-# kps = CAR_KEYPOINTS_66, scr_weights = CAR_SCORE_WEIGHTS_66)
-# =============================================================================
-# with openpifpaf.show.Canvas.blank(nomargin=True) as ax_2D:
-# anim_66 = plot3d_red(ax_2D, CAR_POSE_66, CAR_SKELETON_66)
-# anim_66.save('./CAR_66_Pose.gif', fps=30)
- with openpifpaf.show.Canvas.blank(nomargin=True) as ax_2D:
- anim_24 = plot3d_red(ax_2D, CAR_POSE_24, CAR_SKELETON_24)
- anim_24.save('./CAR_24_Pose.gif', fps=30)
-
-
-if __name__ == '__main__':
- main()
\ No newline at end of file
diff --git a/Training/openpifpaf_karussel/karusel_kp.py b/Training/openpifpaf_karussel/karusel_kp.py
deleted file mode 100644
index aa637bc..0000000
--- a/Training/openpifpaf_karussel/karusel_kp.py
+++ /dev/null
@@ -1,332 +0,0 @@
-"""
-Interface for custom data.
-
-This module handles datasets and is the class that you need to inherit from for your custom dataset.
-This class gives you all the handles so that you can train with a new –dataset=mydataset.
-The particular configuration of keypoints and skeleton is specified in the headmeta instances
-"""
-
-
-import argparse
-import torch
-import numpy as np
-try:
- from pycocotools.coco import COCO
-except ImportError:
- COCO = None
-
-from openpifpaf.datasets import DataModule
-from openpifpaf import encoder, headmeta, metric, transforms
-from openpifpaf.datasets import collate_images_anns_meta, collate_images_targets_meta
-from openpifpaf.plugins.coco import CocoDataset as CocoLoader
-
-from .constants import get_constants, training_weights_local_centrality
-from .metrics import MeanPixelError
-
-
-class karusel_Kp(DataModule):
- """
- DataModule for the karusel Dataset.
- """
-
- train_annotations = 'Karusel_dataset-COCO/annotations/train.json'
- val_annotations = 'Karusel_dataset-COCO/annotations/val.json'
- eval_annotations = val_annotations
- train_image_dir = 'Karusel_dataset-COCO/images/train/'
- val_image_dir = 'Karusel_dataset-COCO/images/val/'
- eval_image_dir = val_image_dir
-
- n_images = None
- square_edge = 513
- extended_scale = False
- orientation_invariant = 0.0
- blur = 0.0
- augmentation = True
- rescale_images = 1.0
- upsample_stride = 1
- min_kp_anns = 1
- b_min = 1 # 1 pixel
-
- eval_annotation_filter = True
- eval_long_edge = 0 # set to zero to deactivate rescaling
- eval_orientation_invariant = 0.0
- eval_extended_scale = False
-
- def __init__(self):
- super().__init__()
- if self.weights is not None:
- caf_weights = []
- for bone in self.CAR_SKELETON:
- caf_weights.append(max(self.weights[bone[0] - 1],
- self.weights[bone[1] - 1]))
- w_np = np.array(caf_weights)
- caf_weights = list(w_np / np.sum(w_np) * len(caf_weights))
- else:
- caf_weights = None
- cif = headmeta.Cif('cif', 'apollo',
- keypoints=self.CAR_KEYPOINTS,
- sigmas=self.CAR_SIGMAS,
- pose=self.CAR_POSE,
- draw_skeleton=self.CAR_SKELETON,
- score_weights=self.CAR_SCORE_WEIGHTS,
- training_weights=self.weights)
- caf = headmeta.Caf('caf', 'apollo',
- keypoints=self.CAR_KEYPOINTS,
- sigmas=self.CAR_SIGMAS,
- pose=self.CAR_POSE,
- skeleton=self.CAR_SKELETON,
- training_weights=caf_weights)
-
- cif.upsample_stride = self.upsample_stride
- caf.upsample_stride = self.upsample_stride
- self.head_metas = [cif, caf]
-
- @classmethod
- def cli(cls, parser: argparse.ArgumentParser):
- group = parser.add_argument_group('data module Apollo')
-
- group.add_argument('--karusel-train-annotations',
- default=cls.train_annotations)
- group.add_argument('--karusel-val-annotations',
- default=cls.val_annotations)
- group.add_argument('--karusel-train-image-dir',
- default=cls.train_image_dir)
- group.add_argument('--karusel-val-image-dir',
- default=cls.val_image_dir)
-
- group.add_argument('--karusel-square-edge',
- default=cls.square_edge, type=int,
- help='square edge of input images')
- assert not cls.extended_scale
- group.add_argument('--karusel-extended-scale',
- default=False, action='store_true',
- help='augment with an extended scale range')
- group.add_argument('--karusel-orientation-invariant',
- default=cls.orientation_invariant, type=float,
- help='augment with random orientations')
- group.add_argument('--karusel-blur',
- default=cls.blur, type=float,
- help='augment with blur')
- assert cls.augmentation
- group.add_argument('--karusel-no-augmentation',
- dest='karusel_augmentation',
- default=True, action='store_false',
- help='do not apply data augmentation')
- group.add_argument('--karusel-rescale-images',
- default=cls.rescale_images, type=float,
- help='overall rescale factor for images')
- group.add_argument('--karusel-upsample',
- default=cls.upsample_stride, type=int,
- help='head upsample stride')
- group.add_argument('--karusel-min-kp-anns',
- default=cls.min_kp_anns, type=int,
- help='filter images with fewer keypoint annotations')
- group.add_argument('--karusel-bmin',
- default=cls.b_min, type=int,
- help='b minimum in pixels')
- group.add_argument('--karusel-apply-local-centrality-weights',
- dest='karusel_apply_local_centrality',
- default=False, action='store_true',
- help='Weigh the CIF and CAF head during training.')
-
- # evaluation
- assert cls.eval_annotation_filter
- group.add_argument('--karusel-no-eval-annotation-filter',
- dest='karusel_eval_annotation_filter',
- default=True, action='store_false')
- group.add_argument('--karusel-eval-long-edge', default=cls.eval_long_edge, type=int,
- help='set to zero to deactivate rescaling')
- assert not cls.eval_extended_scale
- group.add_argument('--karusel-eval-extended-scale', default=False, action='store_true')
- group.add_argument('--karusel-eval-orientation-invariant',
- default=cls.eval_orientation_invariant, type=float)
- group.add_argument('--karusel-use-24-kps', default=False, action='store_true',
- help=('The ApolloCar3D dataset can '
- 'be trained with 24 or 66 kps. If you want to train a model '
- 'with 24 kps activate this flag. Change the annotations '
- 'path to the json files with 24 kps.'))
-
- @classmethod
- def configure(cls, args: argparse.Namespace):
- # extract global information
- cls.debug = args.debug
- cls.pin_memory = args.pin_memory
-
- # Apollo specific
- cls.train_annotations = args.karusel_train_annotations
- cls.val_annotations = args.karusel_val_annotations
- cls.eval_annotations = cls.val_annotations
- cls.train_image_dir = args.karusel_train_image_dir
- cls.val_image_dir = args.karusel_val_image_dir
- cls.eval_image_dir = cls.val_image_dir
-
- cls.square_edge = args.karusel_square_edge
- cls.extended_scale = args.karusel_extended_scale
- cls.orientation_invariant = args.karusel_orientation_invariant
- cls.blur = args.karusel_blur
- cls.augmentation = args.karusel_augmentation # loaded by the dest name
- cls.rescale_images = args.karusel_rescale_images
- cls.upsample_stride = args.karusel_upsample
- cls.min_kp_anns = args.karusel_min_kp_anns
- cls.b_min = args.karusel_bmin
- if args.karusel_use_24_kps:
- (cls.CAR_KEYPOINTS, cls.CAR_SKELETON, cls.HFLIP, cls.CAR_SIGMAS, cls.CAR_POSE,
- cls.CAR_CATEGORIES, cls.CAR_SCORE_WEIGHTS) = get_constants(24)
- else:
- (cls.CAR_KEYPOINTS, cls.CAR_SKELETON, cls.HFLIP, cls.CAR_SIGMAS, cls.CAR_POSE,
- cls.CAR_CATEGORIES, cls.CAR_SCORE_WEIGHTS) = get_constants(66)
- # evaluation
- cls.eval_annotation_filter = args.karusel_eval_annotation_filter
- cls.eval_long_edge = args.karusel_eval_long_edge
- cls.eval_orientation_invariant = args.karusel_eval_orientation_invariant
- cls.eval_extended_scale = args.karusel_eval_extended_scale
- if args.karusel_apply_local_centrality:
- if args.karusel_use_24_kps:
- raise Exception("Applying local centrality weights only works with 66 kps.")
- cls.weights = training_weights_local_centrality
- else:
- cls.weights = None
-
- def _preprocess(self):
- encoders = (encoder.Cif(self.head_metas[0], bmin=self.b_min),
- encoder.Caf(self.head_metas[1], bmin=self.b_min))
-
- if not self.augmentation:
- return transforms.Compose([
- transforms.NormalizeAnnotations(),
- transforms.RescaleAbsolute(self.square_edge),
- transforms.CenterPad(self.square_edge),
- transforms.EVAL_TRANSFORM,
- transforms.Encoders(encoders),
- ])
-
- if self.extended_scale:
- rescale_t = transforms.RescaleRelative(
- scale_range=(0.2 * self.rescale_images,
- 2.0 * self.rescale_images),
- power_law=True, stretch_range=(0.75, 1.33))
- else:
- rescale_t = transforms.RescaleRelative(
- scale_range=(0.33 * self.rescale_images,
- 1.33 * self.rescale_images),
- power_law=True, stretch_range=(0.75, 1.33))
-
- return transforms.Compose([
- transforms.NormalizeAnnotations(),
- # transforms.AnnotationJitter(),
- transforms.RandomApply(transforms.HFlip(self.CAR_KEYPOINTS, self.HFLIP), 0.5),
- rescale_t,
- transforms.RandomApply(transforms.Blur(), self.blur),
- transforms.RandomChoice(
- [transforms.RotateBy90(),
- transforms.RotateUniform(30.0)],
- [self.orientation_invariant, 0.2],
- ),
- transforms.Crop(self.square_edge, use_area_of_interest=True),
- transforms.CenterPad(self.square_edge),
- transforms.MinSize(min_side=32.0),
- transforms.TRAIN_TRANSFORM,
- transforms.Encoders(encoders),
- ])
-
- def train_loader(self):
- train_data = CocoLoader(
- image_dir=self.train_image_dir,
- ann_file=self.train_annotations,
- preprocess=self._preprocess(),
- annotation_filter=True,
- min_kp_anns=self.min_kp_anns,
- category_ids=[1],
- )
- return torch.utils.data.DataLoader(
- train_data, batch_size=self.batch_size, shuffle=not self.debug,
- pin_memory=self.pin_memory, num_workers=self.loader_workers, drop_last=True,
- collate_fn=collate_images_targets_meta)
-
- def val_loader(self):
- val_data = CocoLoader(
- image_dir=self.val_image_dir,
- ann_file=self.val_annotations,
- preprocess=self._preprocess(),
- annotation_filter=True,
- min_kp_anns=self.min_kp_anns,
- category_ids=[1],
- )
- return torch.utils.data.DataLoader(
- val_data, batch_size=self.batch_size, shuffle=False,
- pin_memory=self.pin_memory, num_workers=self.loader_workers, drop_last=True,
- collate_fn=collate_images_targets_meta)
-
- @classmethod
- def common_eval_preprocess(cls):
- rescale_t = None
- if cls.eval_extended_scale:
- assert cls.eval_long_edge
- rescale_t = [
- transforms.DeterministicEqualChoice([
- transforms.RescaleAbsolute(cls.eval_long_edge),
- transforms.RescaleAbsolute((cls.eval_long_edge - 1) // 2 + 1),
- ], salt=1)
- ]
- elif cls.eval_long_edge:
- rescale_t = transforms.RescaleAbsolute(cls.eval_long_edge)
-
- if cls.batch_size == 1:
- padding_t = transforms.CenterPadTight(16)
- else:
- assert cls.eval_long_edge
- padding_t = transforms.CenterPad(cls.eval_long_edge)
-
- orientation_t = None
- if cls.eval_orientation_invariant:
- orientation_t = transforms.DeterministicEqualChoice([
- None,
- transforms.RotateBy90(fixed_angle=90),
- transforms.RotateBy90(fixed_angle=180),
- transforms.RotateBy90(fixed_angle=270),
- ], salt=3)
-
- return [
- transforms.NormalizeAnnotations(),
- rescale_t,
- padding_t,
- orientation_t,
- ]
-
- def _eval_preprocess(self):
- return transforms.Compose([
- *self.common_eval_preprocess(),
- transforms.ToAnnotations([
- transforms.ToKpAnnotations(
- self.CAR_CATEGORIES,
- keypoints_by_category={1: self.head_metas[0].keypoints},
- skeleton_by_category={1: self.head_metas[1].skeleton},
- ),
- transforms.ToCrowdAnnotations(self.CAR_CATEGORIES),
- ]),
- transforms.EVAL_TRANSFORM,
- ])
-
- def eval_loader(self):
- eval_data = CocoLoader(
- image_dir=self.eval_image_dir,
- ann_file=self.eval_annotations,
- preprocess=self._eval_preprocess(),
- annotation_filter=self.eval_annotation_filter,
- min_kp_anns=self.min_kp_anns if self.eval_annotation_filter else 0,
- category_ids=[1] if self.eval_annotation_filter else [],
- )
- return torch.utils.data.DataLoader(
- eval_data, batch_size=self.batch_size, shuffle=False,
- pin_memory=self.pin_memory, num_workers=self.loader_workers, drop_last=False,
- collate_fn=collate_images_anns_meta)
-
-# TODO: make sure that 24kp flag is activated when evaluating a 24kp model
- def metrics(self):
- return [metric.Coco(
- COCO(self.eval_annotations),
- max_per_image=20,
- category_ids=[1],
- iou_type='keypoints',
- keypoint_oks_sigmas=self.CAR_SIGMAS
- ), MeanPixelError()]
diff --git a/Training/openpifpaf_karussel/metrics.py b/Training/openpifpaf_karussel/metrics.py
deleted file mode 100644
index e797b85..0000000
--- a/Training/openpifpaf_karussel/metrics.py
+++ /dev/null
@@ -1,131 +0,0 @@
-import logging
-
-import numpy as np
-
-from openpifpaf.metric.base import Base
-from openpifpaf.annotation import Annotation
-
-try:
- import scipy
-except ImportError:
- scipy = None
-
-LOG = logging.getLogger(__name__)
-
-
-class MeanPixelError(Base):
- """
- Calculate mean pixel error and detection rate for a given image
- and category in an "all-vs-all setting"
- """
- predictions = []
- image_ids = []
- errors = [] # mean pixel errors
- detections = [] # detection rate
- errors_scaled = [] # mean pixel errors
- detections_scaled = [] # detection rate
- px_ref = 368 # CPM crop size in pixels
-
- def accumulate(self, predictions, image_meta, *, ground_truth=None):
- errors = []
- detections = []
- errors_scaled = []
- detections_scaled = []
-
- # Filter ground-truth
- for annotation in ground_truth:
- if not isinstance(annotation, Annotation):
- continue
- indices_gt = np.nonzero(annotation.data[:, 2] > 1.0)
- if indices_gt[0].size <= 3:
- continue
- gts = annotation.data[indices_gt, 0:2].squeeze()
- width = float(annotation.fixed_bbox[2])
- height = float(annotation.fixed_bbox[3])
- scale = np.array([self.px_ref / width, self.px_ref / height]).reshape(1, 2)
-
- # Evaluate each keypoint
- for idx, gt in zip(indices_gt[0], gts):
- preds = np.array([p.data[idx] for p in predictions]).reshape(-1, 3)[:, 0:2]
- if preds.size <= 0:
- continue
- i = np.argmin(np.linalg.norm(preds - gt, axis=1))
- dist = preds[i:i + 1] - gt
- dist_scaled = dist * scale
- d = float(np.linalg.norm(dist, axis=1))
- d_scaled = float(np.linalg.norm(dist_scaled, axis=1))
-
- # Prediction correct if error less than 10 pixels
- if d < 10:
- errors.append(d)
- detections.append(1)
- else:
- detections.append(0)
- if d_scaled < 10:
- errors_scaled.append(d)
- detections_scaled.append(1)
- else:
- detections_scaled.append(0)
-
- # Stats for a single image
- mpe = average(errors)
- mpe_scaled = average(errors_scaled)
- det_rate = 100 * average(detections)
- det_rate_scaled = 100 * average(detections_scaled)
- LOG.info('Mean Pixel Error (scaled): %s (%s) Det. Rate (scaled): %s (%s)',
- str(mpe)[:4], str(mpe_scaled)[:4], str(det_rate)[:4], str(det_rate_scaled)[:4])
-
- # Accumulate stats
- self.errors.extend(errors)
- self.detections.extend(detections)
- self.errors_scaled.extend(errors_scaled)
- self.detections_scaled.extend(detections_scaled)
-
- def write_predictions(self, filename, *, additional_data=None):
- raise NotImplementedError
-
- def stats(self):
- mpe = average(self.errors)
- mpe_scaled = average(self.errors_scaled)
- det_rate = 100 * average(self.detections)
- det_rate_scaled = 100 * average(self.detections_scaled)
- LOG.info('Final Results: \nMean Pixel Error [scaled] : %f [%f] '
- '\nDetection Rate [scaled]: %f [%f]',
- mpe, mpe_scaled, det_rate, det_rate_scaled)
- data = {
- 'stats': [mpe, mpe_scaled, det_rate, det_rate_scaled],
- 'text_labels': ['Mean Pixel Error',
- 'Mean Pixel Error Scaled',
- 'Detection Rate [%]',
- 'Detection Rate Scaled[%]'],
- }
- return data
-
-
-def hungarian_matching(gts, predictions, thresh=0.5):
- cost = np.zeros((len(gts), len(predictions)))
-
- for i, (dg, vg) in enumerate(gts):
- for j, pred in enumerate(predictions):
- p = np.array(pred.data)
- dp = p[:, 0:2][vg > 1.0]
- vp = p[:, 2][vg > 1.0]
-
- dp[vp < thresh] = -100
- dp[vp < thresh] = -100
-
- # measure the per-keypoint distance
- distances = np.clip(np.linalg.norm(dp - dg, axis=1), 0, 10)
- cost[i, j] = float(np.mean(distances))
-
- assert np.max(cost) < 11
- row, cols = scipy.optimize.linear_sum_assignment(cost)
- return row, cols, cost
-
-
-def average(my_list, *, empty_value=0.0):
- """calculate mean of a list"""
- if not my_list:
- return empty_value
-
- return sum(my_list) / float(len(my_list))
diff --git a/Training/training.ipynb b/Training/training.ipynb
deleted file mode 100644
index 3d30c86..0000000
--- a/Training/training.ipynb
+++ /dev/null
@@ -1,84 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 1,
- "id": "39a59328",
- "metadata": {
- "collapsed": true
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "INFO:__main__:neural network device: cuda (CUDA available: True, count: 1)\n",
- "INFO:openpifpaf.network.factory:filtering for dataset heads and extending existing heads\n",
- "INFO:openpifpaf.network.losses.multi_head:multihead loss: ['apollo.cif.c', 'apollo.cif.vec', 'apollo.cif.scales', 'apollo.caf.c', 'apollo.caf.vec', 'apollo.caf.scales'], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0]\n",
- "INFO:__main__:Single GPU training\n",
- "INFO:openpifpaf.logger:{'type': 'process', 'argv': ['C:\\\\Anaconda\\\\lib\\\\site-packages\\\\openpifpaf\\\\train.py', '--dataset', 'karusel', '--checkpoint=mobilenetv2', '--lr=0.00002', '--momentum=0.95', '--b-scale=5.0', '--epochs=151', '--lr-decay', '160', '260', '--lr-decay-epochs=10', '--weight-decay=1e-5', '--weight-decay=1e-5', '--val-interval', '10', '--loader-workers', '3', '--batch-size', '1', '--karusel-use-24-kps', '--karusel-square-edge=769', '--karusel-bmin', '2'], 'args': {'output': 'outputs/mobilenetv2-220516-170827-karusel.pkl', 'disable_cuda': False, 'ddp': False, 'local_rank': None, 'sync_batchnorm': True, 'quiet': False, 'debug': False, 'log_stats': False, 'shufflenetv2k_input_conv2_stride': 0, 'shufflenetv2k_input_conv2_outchannels': None, 'shufflenetv2k_stage4_dilation': 1, 'shufflenetv2k_kernel': 5, 'shufflenetv2k_conv5_as_stage': False, 'shufflenetv2k_instance_norm': False, 'shufflenetv2k_group_norm': False, 'shufflenetv2k_leaky_relu': False, 'squeezenet_pretrained': True, 'swin_drop_path_rate': 0.2, 'swin_input_upsample': False, 'swin_use_fpn': False, 'swin_fpn_out_channels': None, 'swin_fpn_level': 3, 'swin_pretrained': True, 'xcit_out_channels': None, 'xcit_out_maxpool': False, 'xcit_pretrained': True, 'mobilenetv3_pretrained': True, 'mobilenetv2_pretrained': True, 'resnet_pretrained': True, 'resnet_pool0_stride': 0, 'resnet_input_conv_stride': 2, 'resnet_input_conv2_stride': 0, 'resnet_block5_dilation': 1, 'resnet_remove_last_block': False, 'shufflenetv2_pretrained': True, 'cf4_dropout': 0.0, 'cf4_inplace_ops': True, 'checkpoint': 'mobilenetv2', 'basenet': None, 'cross_talk': 0.0, 'download_progress': True, 'head_consolidation': 'filter_and_extend', 'lambdas': None, 'component_lambdas': None, 'auto_tune_mtl': False, 'auto_tune_mtl_variance': False, 'task_sparsity_weight': 0.0, 'soft_clamp': 5.0, 'loss_prescale': 1.0, 'regression_loss': 'laplace', 'bce_total_soft_clamp': None, 'laplace_soft_clamp': 5.0, 'r_smooth': 0.0, 'b_scale': 5.0, 'scale_log': False, 'scale_soft_clamp': 5.0, 'background_weight': 1.0, 'focal_alpha': 0.5, 'focal_gamma': 1.0, 'focal_detach': False, 'focal_clamp': True, 'bce_min': 0.0, 'bce_soft_clamp': 5.0, 'bce_background_clamp': -15.0, 'epochs': 151, 'train_batches': None, 'val_batches': None, 'clip_grad_norm': 0.0, 'clip_grad_value': 0.0, 'log_interval': 11, 'val_interval': 10, 'stride_apply': 1, 'fix_batch_norm': False, 'ema': 0.01, 'profile': None, 'cif_side_length': 4, 'caf_min_size': 3, 'caf_fixed_size': False, 'caf_aspect_ratio': 0.0, 'encoder_suppress_selfhidden': True, 'encoder_suppress_invisible': False, 'encoder_suppress_collision': False, 'momentum': 0.95, 'beta2': 0.999, 'adam_eps': 1e-06, 'nesterov': True, 'weight_decay': 1e-05, 'adam': False, 'amsgrad': False, 'lr': 2e-05, 'lr_decay': [160.0, 260.0], 'lr_decay_factor': 0.1, 'lr_decay_epochs': 10.0, 'lr_warm_up_start_epoch': 0, 'lr_warm_up_epochs': 1, 'lr_warm_up_factor': 0.001, 'lr_warm_restarts': [], 'lr_warm_restart_duration': 0.5, 'dataset': 'karusel', 'loader_workers': 3, 'batch_size': 1, 'dataset_weights': None, 'animal_train_annotations': 'data-animalpose/annotations/animal_keypoints_20_train.json', 'animal_val_annotations': 'data-animalpose/annotations/animal_keypoints_20_val.json', 'animal_train_image_dir': 'data-animalpose/images/train/', 'animal_val_image_dir': 'data-animalpose/images/val/', 'animal_square_edge': 513, 'animal_extended_scale': False, 'animal_orientation_invariant': 0.0, 'animal_blur': 0.0, 'animal_augmentation': True, 'animal_rescale_images': 1.0, 'animal_upsample': 1, 'animal_min_kp_anns': 1, 'animal_bmin': 1, 'animal_eval_test2017': False, 'animal_eval_testdev2017': False, 'animal_eval_annotation_filter': True, 'animal_eval_long_edge': 0, 'animal_eval_extended_scale': False, 'animal_eval_orientation_invariant': 0.0, 'apollo_train_annotations': 'data-apollocar3d/annotations/apollo_keypoints_66_train.json', 'apollo_val_annotations': 'data-apollocar3d/annotations/apollo_keypoints_66_val.json', 'apollo_train_image_dir': 'data-apollocar3d/images/train/', 'apollo_val_image_dir': 'data-apollocar3d/images/val/', 'apollo_square_edge': 513, 'apollo_extended_scale': False, 'apollo_orientation_invariant': 0.0, 'apollo_blur': 0.0, 'apollo_augmentation': True, 'apollo_rescale_images': 1.0, 'apollo_upsample': 1, 'apollo_min_kp_anns': 1, 'apollo_bmin': 1, 'apollo_apply_local_centrality': False, 'apollo_eval_annotation_filter': True, 'apollo_eval_long_edge': 0, 'apollo_eval_extended_scale': False, 'apollo_eval_orientation_invariant': 0.0, 'apollo_use_24_kps': False, 'cifar10_root_dir': 'data-cifar10/', 'cifar10_download': False, 'cocodet_train_annotations': 'data-mscoco/annotations/instances_train2017.json', 'cocodet_val_annotations': 'data-mscoco/annotations/instances_val2017.json', 'cocodet_train_image_dir': 'data-mscoco/images/train2017/', 'cocodet_val_image_dir': 'data-mscoco/images/val2017/', 'cocodet_square_edge': 513, 'cocodet_extended_scale': False, 'cocodet_orientation_invariant': 0.0, 'cocodet_blur': 0.0, 'cocodet_augmentation': True, 'cocodet_rescale_images': 1.0, 'cocodet_upsample': 1, 'cocokp_train_annotations': 'data-mscoco/annotations/person_keypoints_train2017.json', 'cocokp_val_annotations': 'data-mscoco/annotations/person_keypoints_val2017.json', 'cocokp_train_image_dir': 'data-mscoco/images/train2017/', 'cocokp_val_image_dir': 'data-mscoco/images/val2017/', 'cocokp_square_edge': 385, 'cocokp_with_dense': False, 'cocokp_extended_scale': False, 'cocokp_orientation_invariant': 0.0, 'cocokp_blur': 0.0, 'cocokp_augmentation': True, 'cocokp_rescale_images': 1.0, 'cocokp_upsample': 1, 'cocokp_min_kp_anns': 1, 'cocokp_bmin': 0.1, 'cocokp_eval_test2017': False, 'cocokp_eval_testdev2017': False, 'coco_eval_annotation_filter': True, 'coco_eval_long_edge': 641, 'coco_eval_extended_scale': False, 'coco_eval_orientation_invariant': 0.0, 'crowdpose_train_annotations': 'data-crowdpose/json/crowdpose_train.json', 'crowdpose_val_annotations': 'data-crowdpose/json/crowdpose_val.json', 'crowdpose_image_dir': 'data-crowdpose/images/', 'crowdpose_square_edge': 385, 'crowdpose_extended_scale': False, 'crowdpose_orientation_invariant': 0.0, 'crowdpose_augmentation': True, 'crowdpose_rescale_images': 1.0, 'crowdpose_upsample': 1, 'crowdpose_min_kp_anns': 1, 'crowdpose_eval_test': False, 'crowdpose_eval_long_edge': 641, 'crowdpose_eval_extended_scale': False, 'crowdpose_eval_orientation_invariant': 0.0, 'crowdpose_index': None, 'nuscenes_train_annotations': '../../../NuScenes/mscoco_style_annotations/nuimages_v1.0-train.json', 'nuscenes_val_annotations': '../../../NuScenes/mscoco_style_annotations/nuimages_v1.0-val.json', 'nuscenes_train_image_dir': '../../../NuScenes/nuimages-v1.0-all-samples', 'nuscenes_val_image_dir': '../../../NuScenes/nuimages-v1.0-all-samples', 'nuscenes_square_edge': 513, 'nuscenes_extended_scale': False, 'nuscenes_orientation_invariant': 0.0, 'nuscenes_blur': 0.0, 'nuscenes_augmentation': True, 'nuscenes_rescale_images': 1.0, 'nuscenes_upsample': 1, 'karusel_train_annotations': 'Karusel_dataset-COCO/annotations/train.json', 'karusel_val_annotations': 'Karusel_dataset-COCO/annotations/val.json', 'karusel_train_image_dir': 'Karusel_dataset-COCO/images/train/', 'karusel_val_image_dir': 'Karusel_dataset-COCO/images/val/', 'karusel_square_edge': 769, 'karusel_extended_scale': False, 'karusel_orientation_invariant': 0.0, 'karusel_blur': 0.0, 'karusel_augmentation': True, 'karusel_rescale_images': 1.0, 'karusel_upsample': 1, 'karusel_min_kp_anns': 1, 'karusel_bmin': 2, 'karusel_apply_local_centrality': False, 'karusel_eval_annotation_filter': True, 'karusel_eval_long_edge': 0, 'karusel_eval_extended_scale': False, 'karusel_eval_orientation_invariant': 0.0, 'karusel_use_24_kps': True, 'posetrack2018_train_annotations': 'data-posetrack2018/annotations/train/*.json', 'posetrack2018_val_annotations': 'data-posetrack2018/annotations/val/*.json', 'posetrack2018_eval_annotations': 'data-posetrack2018/annotations/val/*.json', 'posetrack2018_data_root': 'data-posetrack2018', 'posetrack_square_edge': 385, 'posetrack_with_dense': False, 'posetrack_augmentation': True, 'posetrack_rescale_images': 1.0, 'posetrack_upsample': 1, 'posetrack_min_kp_anns': 1, 'posetrack_bmin': 0.1, 'posetrack_sample_pairing': 0.0, 'posetrack_image_augmentations': 0.0, 'posetrack_max_shift': 30.0, 'posetrack_eval_long_edge': 801, 'posetrack_eval_extended_scale': False, 'posetrack_eval_orientation_invariant': 0.0, 'posetrack_ablation_without_tcaf': False, 'posetrack2017_eval_annotations': 'data-posetrack2017/annotations/val/*.json', 'posetrack2017_data_root': 'data-posetrack2017', 'cocokpst_max_shift': 30.0, 'wholebody_train_annotations': 'data-mscoco/annotations/person_keypoints_train2017_wholebody_pifpaf_style.json', 'wholebody_val_annotations': 'data-mscoco/annotations/coco_wholebody_val_v1.0.json', 'wholebody_train_image_dir': 'data-mscoco/images/train2017/', 'wholebody_val_image_dir': 'data-mscoco/images/val2017', 'wholebody_square_edge': 385, 'wholebody_extended_scale': False, 'wholebody_orientation_invariant': 0.0, 'wholebody_blur': 0.0, 'wholebody_augmentation': True, 'wholebody_rescale_images': 1.0, 'wholebody_upsample': 1, 'wholebody_min_kp_anns': 1, 'wholebody_bmin': 1.0, 'wholebody_apply_local_centrality': False, 'wholebody_eval_test2017': False, 'wholebody_eval_testdev2017': False, 'wholebody_eval_annotation_filter': True, 'wholebody_eval_long_edge': 641, 'wholebody_eval_extended_scale': False, 'wholebody_eval_orientation_invariant': 0.0, 'save_all': None, 'show': False, 'image_width': None, 'image_height': None, 'image_dpi_factor': 2.0, 'image_min_dpi': 50.0, 'show_file_extension': 'jpeg', 'textbox_alpha': 0.5, 'text_color': 'white', 'font_size': 8, 'monocolor_connections': False, 'line_width': None, 'skeleton_solid_threshold': 0.5, 'show_box': False, 'white_overlay': False, 'show_joint_scales': False, 'show_joint_confidences': False, 'show_decoding_order': False, 'show_frontier_order': False, 'show_only_decoded_connections': False, 'video_fps': 10, 'video_dpi': 100, 'debug_indices': [], 'device': device(type='cuda'), 'pin_memory': True}, 'version': '0.13.3', 'plugin_versions': {'openpifpaf_karussel': 'unknown'}, 'hostname': 'DESKTOP-9FV4E0P'}\n",
- "loading annotations into memory...\n",
- "Done (t=0.00s)\n",
- "creating index...\n",
- "index created!\n",
- "INFO:openpifpaf.plugins.coco.dataset:filter for annotations (min kp=1) ...\n",
- "INFO:openpifpaf.plugins.coco.dataset:... done.\n",
- "INFO:openpifpaf.plugins.coco.dataset:Images: 104\n",
- "loading annotations into memory...\n",
- "Done (t=0.00s)\n",
- "creating index...\n",
- "index created!\n",
- "INFO:openpifpaf.plugins.coco.dataset:filter for annotations (min kp=1) ...\n",
- "INFO:openpifpaf.plugins.coco.dataset:... done.\n",
- "INFO:openpifpaf.plugins.coco.dataset:Images: 12\n",
- "INFO:openpifpaf.optimize:SGD optimizer\n",
- "INFO:openpifpaf.optimize:training batches per epoch = 104\n",
- "INFO:openpifpaf.network.trainer:{'type': 'config', 'field_names': ['apollo.cif.c', 'apollo.cif.vec', 'apollo.cif.scales', 'apollo.caf.c', 'apollo.caf.vec', 'apollo.caf.scales']}\n",
- "INFO:openpifpaf.network.trainer:{'type': 'train', 'epoch': 150, 'batch': 0, 'n_batches': 104, 'time': 3.312, 'data_time': 9.933, 'lr': 2e-05, 'loss': 3996.015, 'head_losses': [381.82, 1338.938, 2.815, 422.177, 1845.92, 4.346]}\n",
- "INFO:openpifpaf.network.trainer:{'type': 'train', 'epoch': 150, 'batch': 11, 'n_batches': 104, 'time': 0.11, 'data_time': 0.0, 'lr': 2e-05, 'loss': 2537.655, 'head_losses': [108.509, 748.191, 1.287, 225.264, 1452.322, 2.082]}\n",
- "INFO:openpifpaf.network.trainer:{'type': 'train', 'epoch': 150, 'batch': 22, 'n_batches': 104, 'time': 0.145, 'data_time': 0.0, 'lr': 2e-05, 'loss': 3143.217, 'head_losses': [110.165, 1304.007, 3.605, 168.33, 1549.557, 7.551]}\n",
- "INFO:openpifpaf.network.trainer:{'type': 'train', 'epoch': 150, 'batch': 33, 'n_batches': 104, 'time': 0.114, 'data_time': 0.838, 'lr': 2e-05, 'loss': 2561.634, 'head_losses': [104.38, 760.872, 0.937, 145.966, 1548.282, 1.197]}\n",
- "INFO:openpifpaf.network.trainer:{'type': 'train', 'epoch': 150, 'batch': 44, 'n_batches': 104, 'time': 0.158, 'data_time': 0.598, 'lr': 2e-05, 'loss': 3077.632, 'head_losses': [94.998, 1271.543, 1.153, 115.789, 1591.439, 2.709]}\n",
- "INFO:openpifpaf.network.trainer:{'type': 'train', 'epoch': 150, 'batch': 55, 'n_batches': 104, 'time': 0.147, 'data_time': 0.548, 'lr': 2e-05, 'loss': 3387.694, 'head_losses': [117.256, 1455.369, 14.965, 120.495, 1657.198, 22.411]}\n",
- "INFO:openpifpaf.network.trainer:{'type': 'train', 'epoch': 150, 'batch': 66, 'n_batches': 104, 'time': 0.136, 'data_time': 0.0, 'lr': 2e-05, 'loss': 2697.875, 'head_losses': [141.474, 840.148, 1.025, 203.103, 1510.888, 1.238]}\n",
- "INFO:openpifpaf.network.trainer:{'type': 'train', 'epoch': 150, 'batch': 77, 'n_batches': 104, 'time': 0.124, 'data_time': 0.0, 'lr': 2e-05, 'loss': 2917.647, 'head_losses': [117.105, 1214.693, 1.097, 128.015, 1454.447, 2.292]}\n",
- "INFO:openpifpaf.network.trainer:{'type': 'train', 'epoch': 150, 'batch': 88, 'n_batches': 104, 'time': 0.112, 'data_time': 0.0, 'lr': 2e-05, 'loss': 2877.594, 'head_losses': [117.213, 1145.017, 0.308, 142.698, 1471.487, 0.872]}\n",
- "INFO:openpifpaf.network.trainer:{'type': 'train', 'epoch': 150, 'batch': 99, 'n_batches': 104, 'time': 0.134, 'data_time': 0.0, 'lr': 2e-05, 'loss': 537.43, 'head_losses': [29.236, 148.922, 0.908, 44.595, 312.376, 1.394]}\n",
- "INFO:openpifpaf.network.trainer:applying ema\n",
- "INFO:openpifpaf.network.trainer:{'type': 'train-epoch', 'epoch': 151, 'loss': 2661.64299, 'head_losses': [103.41938, 976.64185, 3.44785, 147.09363, 1425.81744, 5.22282], 'time': 58.1, 'n_clipped_grad': 0, 'max_norm': 0.0}\n",
- "INFO:openpifpaf.network.trainer:model written: outputs/mobilenetv2-220516-170827-karusel.pkl.epoch151\n",
- "INFO:openpifpaf.network.trainer:{'type': 'val-epoch', 'epoch': 151, 'loss': 2293.58988, 'head_losses': [75.23923, 780.86423, 1.6363, 120.32408, 1312.80143, 2.72463], 'time': 13.4}\n"
- ]
- }
- ],
- "source": [
- "!python -m openpifpaf.train --dataset karusel \\\n",
- "--checkpoint=mobilenetv2 --lr=0.00002 --momentum=0.95 --b-scale=5.0 \\\n",
- "--epochs=151 --lr-decay 160 260 --lr-decay-epochs=10 --weight-decay=1e-5 \\\n",
- "--weight-decay=1e-5 --val-interval 10 --loader-workers 3 \\\n",
- "--batch-size 1 --karusel-use-24-kps --karusel-square-edge=769 --karusel-bmin 2"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.9.7"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000..e69de29
diff --git a/utils/coca-cola.png b/utils/coca-cola.png
deleted file mode 100644
index 4a95b1a..0000000
Binary files a/utils/coca-cola.png and /dev/null differ
diff --git a/utils/functions_shield.py b/utils/functions_shield.py
deleted file mode 100644
index 16d169f..0000000
--- a/utils/functions_shield.py
+++ /dev/null
@@ -1,133 +0,0 @@
-import cv2
-import numpy as np
-import os
-
-# Read shield with alpha channel
-def readAlpha(path):
- src = cv2.imread(path, cv2.IMREAD_UNCHANGED)
- src = cv2.cvtColor(src, cv2.COLOR_BGRA2RGBA)
- # b, g, r, alpha = cv2.split(src)
- # dst1 = cv2.merge((b, g, r))
- # alpha = cv2.cvtColor(alpha, cv2.COLOR_GRAY2BGR)
- # dst1_64 = dst1.astype(np.float64)
- # alpha_64 = alpha.astype(np.float64)
- # alpha_64 *= 1./255.
- # dst2_64 = np.multiply(dst1_64, alpha_64)
- # dst2 = dst2_64.astype(np.uint8)
- return src
-
-# Read shield with alpha channel and points
-def readShield(path, step_board=0):
- pict = readAlpha(path)
- h_pict = pict.shape[0]
- w_pict = pict.shape[1]
- pts_pict = np.array(
- [[step_board, step_board], [w_pict - step_board, step_board], [w_pict - step_board, h_pict - step_board],
- [step_board, h_pict - step_board]])
- return pict, pts_pict
-
-def ReadShields(shield_album):
- picts_paths = []
- f = open(shield_album)
- for g in f:
- if g[-1] == '\n':
- picts_paths.append(g[:-1])
- else:
- picts_paths.append(g)
- f.close()
- # print(picts_paths)
- picts = []
- pts_picts = []
- for shield_path in picts_paths:
- pict, pts_pict = readShield(shield_path)
- picts.append(pict)
- pts_picts.append(pts_pict)
- return picts, pts_picts
-
-def ReadShieldsAni(shield_album):
- picts_paths = []
- # filelist = os.listdir(shield_album)
- # for g in filelist:
- # picts_paths.append(shield_album + "/" + g)
- # # print(picts_paths)
- picts = []
- pts_picts = []
- for i in range(0,55):
- str_i = str(i).zfill(4)
- pict, pts_pict = readShield(shield_album + "/frame_"+str_i+".png")
- picts.append(pict)
- pts_picts.append(pts_pict)
- return picts, pts_picts
-
-# Overaling transformed shield on frame
-def overlaying(pict, img, pts_pict, pts_frame, part=1.0):
- # Homography
- # h, status = cv2.findHomography(pts_pict, pts_frame)
-
-
-
-# x1 = int(pts_frame[0][1])
-# if x1 < 0:
-# x1 = 0
-# x2 = int(pts_frame[2][1])
-# y1 = int(pts_frame[0][0])
-# if y1 < 0:
-# y1 = 0
-# y2 = int(pts_frame[2][0])
-
- (y1, x1), (y2, x2) = pts_frame.min(axis=0), pts_frame.max(axis=0)
- if (x2 - x1) > 50 and (y2 - y1) > 50:
- try:
- area = img[x1:x2, y1:y2]
- # rows, cols, channels = area.shape
-
- b, g, r, alpha = cv2.split(pict)
- pict_rgb = cv2.merge((r, g, b))
-
- h, status = cv2.findHomography(pts_pict, pts_frame)
- imgWarp = cv2.warpPerspective(pict_rgb, h, (img.shape[1], img.shape[0]))
- alphaWarp = cv2.warpPerspective(alpha, h, (img.shape[1], img.shape[0]))
- pict_area = imgWarp[x1:x2, y1:y2]
- alpha_area = alphaWarp[x1:x2, y1:y2]
-
- # pict = cv2.resize(pict, (cols, rows))
-
- znam = 1./255.
- alpha_area = cv2.cvtColor(alpha_area, cv2.COLOR_GRAY2BGR)
- pict_32 = pict_area.astype(np.float32)
- area_32 = area.astype(np.float32)
- alpha_32 = alpha_area.astype(np.float32)
- alpha_32 *= znam
- if part != 1.:
- alpha_32 *= part
- alpha_nega_32 = 1. - alpha_32
- dst1_32 = np.multiply(pict_32, alpha_32)
- dst2_32 = np.multiply(area_32, alpha_nega_32)
- dst_32 = dst1_32 + dst2_32
- img[x1:x2, y1:y2] = dst_32.astype(np.uint8)
-
- # Warp transform shield
- # imgWarp = cv2.warpPerspective(pict_rgb, h, (img.shape[1], img.shape[0]))
- # alphaWarp = cv2.warpPerspective(alpha, h, (img.shape[1], img.shape[0]))
-
- # Placing sheild on frame
- # imgAug = cv2.addWeighted(img, 1.0, imgWarp, 0.5, 0.0)
- except:
- pass
-
- return img
-
-def applistShields(album_paths):
- picts_paths = []
- picts_names = []
- f = open(album_paths)
- for g in f:
- if g[-1] == '\n':
- picts_paths.append(g[:-1])
- else:
- picts_paths.append(g)
- f.close()
- for path in picts_paths:
- name = path.split('.')[0].split("/")[1]
- picts_names.append(name)
- return picts_paths, picts_names
diff --git a/utils/karussel_24kps.csv b/utils/karussel_24kps.csv
deleted file mode 100644
index bf437e3..0000000
--- a/utils/karussel_24kps.csv
+++ /dev/null
@@ -1,25 +0,0 @@
-,x,y,z
-1,-11.728358247427778,-219.4412122023117,0.0
-2,-15.92420132696894,20.938476833288533,0.0
-3,-24.15779771912961,46.96169512870693,0.0
-4,-86.61374177228646,-142.95474716218305,0.0
-5,-134.74977744065188,-261.8997851845144,0.0
-6,-188.2631533958743,-315.8749516397929,0.0
-7,-191.57404333357664,-166.7104853355808,0.0
-8,-210.8939138893729,-113.29941343370568,0.0
-9,-231.00716853514677,-54.9516886489786,0.0
-10,-216.46512728143847,3.293732082401192,0.0
-11,-187.73016312616568,99.26925935365503,0.0
-12,-248.253432074131,163.27655515540138,0.0
-13,-72.81535484187529,200.9923483599607,0.0
-14,70.59797139345626,250.17179384400777,0.0
-15,126.43140175736619,171.23113224430733,0.0
-16,165.9457279162327,135.85291821065778,0.0
-17,194.32083871787557,90.37926554238746,0.0
-18,216.53917157107745,-7.535726594794127,0.0
-19,239.72723685724318,-79.97407022773838,0.0
-20,197.07800219673948,-148.61110675229477,0.0
-21,200.24438188899256,-248.98029544904819,0.0
-22,133.21163830661362,-298.2409418903916,0.0
-23,69.21865584018204,-197.5190565076657,0.0
-24,55.01178651022396,-112.90129912872368,0.0
diff --git a/utils/keypoints2pose_video.ipynb b/utils/keypoints2pose_video.ipynb
deleted file mode 100644
index 0fecc0b..0000000
--- a/utils/keypoints2pose_video.ipynb
+++ /dev/null
@@ -1,8034 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 1,
- "id": "f9a03d7c",
- "metadata": {},
- "outputs": [],
- "source": [
- "import json\n",
- "import os\n",
- "import pandas as pd\n",
- "import numpy as np\n",
- "import plotly.express as px\n",
- "import cv2\n",
- "from tqdm.notebook import tqdm \n",
- "from utils import *"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "id": "7e671b5a",
- "metadata": {},
- "outputs": [],
- "source": [
- "path_video_OpenPifPaf_detection = r'..\\Inference\\test\\videos\\turn180_1d.mp4.openpifpaf.json'\n",
- "\n",
- "video_json = []\n",
- "for line in open(path_video_OpenPifPaf_detection, 'r'):\n",
- " video_json.append(json.loads(line))\n",
- "\n",
- "keypoints_3d_path = r'karussel_24kps.csv'\n",
- "keypoints_3d = pd.read_csv(keypoints_3d_path, index_col=0).astype(float)\n",
- "\n",
- "axes_3d = np.float32([[0,0,0],\n",
- " [1,0,0],\n",
- " [0,1,0],\n",
- " [0,0,1]])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "id": "1beeef98",
- "metadata": {},
- "outputs": [],
- "source": [
- "def pict_points(size=100):\n",
- " s = size//2\n",
- " return np.float32([[0,0,0],\n",
- " [-s,-s, 0],\n",
- " [s, -s, 0],\n",
- " [s, s, 0],\n",
- " [-s, s, 0]])\n",
- "\n",
- "from functions_shield import *\n",
- "logo, pts_pict = readShield(\"coca-cola.png\")"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "99354896",
- "metadata": {},
- "source": [
- "### video"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "id": "3164afcb",
- "metadata": {
- "scrolled": true
- },
- "outputs": [
- {
- "data": {
- "application/vnd.jupyter.widget-view+json": {
- "model_id": "d11eec7ddd3a434082a3c453f81bc877",
- "version_major": 2,
- "version_minor": 0
- },
- "text/plain": [
- " 0%| | 0/375 [00:00, ?it/s]"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "name_video = path_video_OpenPifPaf_detection[:-16]\n",
- "video = cv2.VideoCapture(name_video)\n",
- "frame_width = int(video.get(3))\n",
- "frame_height = int(video.get(4))\n",
- "imageSize = (frame_height, frame_width)\n",
- "fps = int(video.get(5))\n",
- "num_frames = int(video.get(7))\n",
- "out = cv2.VideoWriter(name_video[:-4]+'_'+'logo'+'.mp4', cv2.VideoWriter_fourcc(*'XVID'), fps, imageSize[::-1])\n",
- "\n",
- "imgpts_list = []\n",
- "box_pict = pict_points(425)\n",
- "poses = []\n",
- "number = 0\n",
- "for n, frame in enumerate(tqdm(video_json)):\n",
- " fl, img = video.read()\n",
- " num = frame['frame']\n",
- " anns = frame['predictions']\n",
- " score = 0\n",
- " ann = []\n",
- " for i in anns:\n",
- " if i['score']>score:\n",
- " score = i['score']\n",
- " ann = i\n",
- " rvec = []\n",
- " if ann != []:\n",
- " keypoints_2d, bbox, score = encode(ann)\n",
- " conf_keypoints_2d = keypoints_2d[keypoints_2d['conf']>0.35]\n",
- " if len(conf_keypoints_2d)>5:\n",
- " rvec, tvec, camMatrx, dist = fit((1920, 1080), conf_keypoints_2d, keypoints_3d, focus=1)\n",
- "\n",
- " imgpts = cv.projectPoints(box_pict, rvec, tvec, camMatrx, dist)[0][:, 0].astype(int)\n",
- " imgpts_list.append(imgpts)\n",
- " \n",
- " imgpts = imgpts_filt_list[number]\n",
- " img = overlaying(logo, img, pts_pict, imgpts[1:])\n",
- " \n",
- " for p in imgpts[1:]:\n",
- " img = cv.circle(img, p.astype(int), 5, (0,0,0), -1)\n",
- "# for p in conf_keypoints_2d[['x', 'y']].values:\n",
- "# img = cv.circle(img, p.astype(int), 5, (0,0,0), -1)\n",
- " number += 1\n",
- " \n",
- " out.write(img)\n",
- " \n",
- "video.release()\n",
- "out.release()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "id": "ada19ded",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- " \n",
- " "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "application/vnd.plotly.v1+json": {
- "config": {
- "plotlyServerURL": "https://plot.ly"
- },
- "data": [
- {
- "hovertemplate": "variable=x0
index=%{x}
value=%{y}",
- "legendgroup": "x0",
- "line": {
- "color": "#636efa",
- "dash": "solid"
- },
- "marker": {
- "symbol": "circle"
- },
- "mode": "lines",
- "name": "x0",
- "showlegend": true,
- "type": "scattergl",
- "x": [
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332
- ],
- "xaxis": "x",
- "y": [
- 1112.7616798049653,
- 1110.7291916863508,
- 1108.6951042052044,
- 1106.6591287797173,
- 1104.6209768280803,
- 1102.5803597684844,
- 1100.5369890191203,
- 1098.4905759981789,
- 1096.4408321238514,
- 1094.387468814328,
- 1092.3301974878004,
- 1090.268729562459,
- 1088.2027764564948,
- 1086.1320495880987,
- 1084.0562603754615,
- 1081.975120236774,
- 1079.8883405902275,
- 1077.7956328540124,
- 1075.69670844632,
- 1073.591278785341,
- 1071.4790552892662,
- 1069.3597493762866,
- 1067.2330724645929,
- 1065.0987359723763,
- 1062.9564513178275,
- 1060.8059299190136,
- 1058.688509365887,
- 1056.5842487937339,
- 1054.4044032706192,
- 1052.1454619582455,
- 1049.8625110420303,
- 1047.5573625675465,
- 1045.2376044756304,
- 1042.905048811856,
- 1040.5939205869813,
- 1038.2587601076957,
- 1035.9337923847577,
- 1033.6532424289264,
- 1031.333461686441,
- 1029.0408616275497,
- 1026.7237536522846,
- 1024.3566332192058,
- 1022.0047792700793,
- 1019.6417812406793,
- 1017.299825590495,
- 1014.9575981334746,
- 1012.6523817072818,
- 1010.350630818247,
- 1008.0831728916805,
- 1005.9512106728309,
- 1003.8144238826435,
- 1001.7031869350345,
- 999.7446601280853,
- 997.7712065957295,
- 995.897981834127,
- 994.0687671293773,
- 992.2268907561867,
- 990.5185621417223,
- 988.8540170784142,
- 987.2611384175159,
- 985.7675825045849,
- 984.3419556500697,
- 982.9584135539862,
- 981.6115200796155,
- 980.3277990440317,
- 979.1126865839533,
- 977.9007905047671,
- 976.7499150602498,
- 975.6967768238233,
- 974.6808534733511,
- 973.6944438151484,
- 972.7293936441367,
- 971.7828716391082,
- 970.8840064326486,
- 969.9968742212734,
- 969.1499241204785,
- 968.279915739768,
- 967.4618904164312,
- 966.5995152776965,
- 965.752066864369,
- 964.9195451764487,
- 964.0959478129752,
- 963.2750458672913,
- 962.4561598223072,
- 961.6059706900506,
- 960.749756506264,
- 959.9183446962572,
- 959.0510996850452,
- 958.1726199912811,
- 957.2540034880763,
- 956.3573580374432,
- 955.4533285011003,
- 954.5771591654416,
- 953.7316813516748,
- 952.8606763458989,
- 952.0255724930371,
- 951.2287481029038,
- 950.4459444153912,
- 949.6735373393533,
- 948.9134521732116,
- 948.140750639768,
- 947.4157285554626,
- 946.7129946317045,
- 946.0335681441285,
- 945.4106548278586,
- 944.7859974177248,
- 944.2456227773027,
- 943.7634601009113,
- 943.2810256176841,
- 942.8517067203139,
- 942.4698407663851,
- 942.0973521482966,
- 941.7017146480136,
- 941.3738250015889,
- 940.9952433802613,
- 940.65641350869,
- 940.3296790413181,
- 939.987157126892,
- 939.6919749030593,
- 939.4157965071726,
- 939.1566966408111,
- 938.9657976397011,
- 938.7230741352051,
- 938.5497972772921,
- 938.3845387210395,
- 938.1980565810136,
- 938.0787560306048,
- 937.964755713497,
- 937.7939477676769,
- 937.6806949193677,
- 937.5948492603494,
- 937.5062628824021,
- 937.4111984415315,
- 937.3056920880467,
- 937.191329361824,
- 937.0694692970434,
- 936.9678814921101,
- 936.8819225802437,
- 936.8069491946628,
- 936.7116808986655,
- 936.6560737501454,
- 936.5822102424784,
- 936.5442705382947,
- 936.5109742008918,
- 936.4510407935668,
- 936.4510634441364,
- 936.3943011165638,
- 936.3673469386661,
- 936.3389204737407,
- 936.2777412850838,
- 936.2704025005135,
- 936.2592131191007,
- 936.2721692449472,
- 936.2784434527437,
- 936.3062583522883,
- 936.3250130239682,
- 936.3631565832787,
- 936.3579016511172,
- 936.3909714828236,
- 936.3998052049917,
- 936.380891979324,
- 936.3249450722592,
- 936.2226777502361,
- 936.102992140143,
- 935.9359668394569,
- 935.8040046206069,
- 935.6454506329742,
- 935.4579265667439,
- 935.2450565130623,
- 934.984053998849,
- 934.6787696209469,
- 934.3330539761984,
- 933.885931731074,
- 933.485537611162,
- 933.0178486487848,
- 932.5133525107069,
- 932.0083127589571,
- 931.4211193910438,
- 930.8410836031439,
- 930.2454189221774,
- 929.5847018051419,
- 928.9213798725954,
- 928.258850709987,
- 927.6271489726885,
- 926.9974857866592,
- 926.3792611383096,
- 925.728600874204,
- 925.0868649345452,
- 924.4569978933893,
- 923.8417178190954,
- 923.2492921695905,
- 922.7143989670265,
- 922.2126661984472,
- 921.6928582752781,
- 921.2211601620706,
- 920.7778432126494,
- 920.3427257694458,
- 920.0396837979401,
- 919.729982558954,
- 919.5368185008781,
- 919.4062379667774,
- 919.3162472535112,
- 919.3564973158001,
- 919.4661260729636,
- 919.6486443632984,
- 919.9337470836318,
- 920.3184896599076,
- 920.7730639424508,
- 921.3528958752238,
- 921.9628983667864,
- 922.6311807740889,
- 923.358762372766,
- 924.1670706017179,
- 925.0182563590396,
- 925.938843461805,
- 926.8960791862834,
- 927.8243448321642,
- 928.7752157465677,
- 929.740764230112,
- 930.7450225372082,
- 931.7851593466488,
- 932.8847539014517,
- 934.0616095493713,
- 935.2214319689049,
- 936.3609368274518,
- 937.529660920863,
- 938.7180910098793,
- 939.8900767853213,
- 941.127341502529,
- 942.2758612878015,
- 943.4495458559682,
- 944.6177942874161,
- 945.7500056625321,
- 946.788715486084,
- 947.7614668507806,
- 948.6629368727516,
- 949.5521755871054,
- 950.4615959590275,
- 951.3647874242927,
- 952.2029264534891,
- 953.0881107158732,
- 953.9024666469248,
- 954.7048177760556,
- 955.4358875624607,
- 956.165598314686,
- 956.8990464109056,
- 957.6413282292931,
- 958.4299531132089,
- 959.2586921559958,
- 960.0207705722678,
- 960.844934199983,
- 961.7247276267875,
- 962.6921108064746,
- 963.6289836688268,
- 964.4873949578707,
- 965.3481392555897,
- 966.3008675167054,
- 967.2525312010468,
- 968.2925547576391,
- 969.247751930848,
- 970.2714670772837,
- 971.3931685880766,
- 972.5568642550224,
- 973.7329724341431,
- 974.9505085051751,
- 976.1317130624695,
- 977.4816190626053,
- 978.9315499783678,
- 980.3713334389215,
- 981.9471788714342,
- 983.6170468186126,
- 985.3182631542034,
- 987.0469772813634,
- 988.8141973769486,
- 990.5035221634668,
- 992.2720333415227,
- 994.0767854310375,
- 995.7949217421657,
- 997.6245668077389,
- 999.3187614667343,
- 999.9089220592731,
- 1001.8062470269958,
- 1003.7018732019939,
- 1005.5359577792208,
- 1007.4311309428257,
- 1009.3808240276065,
- 1011.3465084145687,
- 1013.2956578856778,
- 1015.115835013132,
- 1016.9565335567004,
- 1019.050918480481,
- 1021.0381435591913,
- 1023.0260028538523,
- 1024.8126344876378,
- 1026.7151690863827,
- 1028.6806949193572,
- 1030.545335115058,
- 1033.4795352101899,
- 1034.946975016301,
- 1036.6372737773145,
- 1038.2496545786914,
- 1039.8294638608947,
- 1041.250016987806,
- 1042.4619130669919,
- 1043.56116786325,
- 1044.3315137374489,
- 1045.3600534552224,
- 1046.1823597362252,
- 1046.953714780542,
- 1047.5621868873334,
- 1047.9969836797804,
- 1048.247312780942,
- 1048.3023818138768,
- 1048.151398401644,
- 1047.7835701673023,
- 1047.188104733911,
- 1046.3542097245283,
- 1045.2710927622136,
- 1043.9279614700258,
- 1042.3140234710236,
- 1040.4184863882658,
- 1038.2305578448118,
- 1035.73944546372,
- 1032.9343568680495,
- 1029.8044996808592,
- 1026.339081525208,
- 1022.5273100241549,
- 1018.3583928007585,
- 1013.821537478078,
- 1008.9059516791721,
- 1003.6008430270998,
- 997.89541914492,
- 991.7788876556915
- ],
- "yaxis": "y"
- },
- {
- "hovertemplate": "variable=y0
index=%{x}
value=%{y}",
- "legendgroup": "y0",
- "line": {
- "color": "#EF553B",
- "dash": "solid"
- },
- "marker": {
- "symbol": "circle"
- },
- "mode": "lines",
- "name": "y0",
- "showlegend": true,
- "type": "scattergl",
- "x": [
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332
- ],
- "xaxis": "x",
- "y": [
- 792.4565645642228,
- 793.8881382193259,
- 795.2980486760098,
- 796.6862422924339,
- 798.0526654267578,
- 799.397264437141,
- 800.7199856817426,
- 802.0207755187224,
- 803.2995803062397,
- 804.556346402454,
- 805.7910201655247,
- 807.0035479536115,
- 808.1938761248736,
- 809.3619510374704,
- 810.5077190495615,
- 811.6311265193063,
- 812.7321198048644,
- 813.810645264395,
- 814.8666492560578,
- 815.9000781380121,
- 816.9108782684175,
- 817.8989960054332,
- 818.8643777072189,
- 819.8069697319339,
- 820.7267184377378,
- 821.623570182694,
- 822.4754581076756,
- 823.3017735395083,
- 824.1365149832557,
- 824.9493080250005,
- 825.7690547916318,
- 826.5660603863222,
- 827.3374934878648,
- 828.0807492807477,
- 828.7934494551571,
- 829.4676663117109,
- 830.1014745519881,
- 830.693175383264,
- 831.2945706583549,
- 831.9048676073232,
- 832.4649029422119,
- 833.0072028810552,
- 833.5056966181727,
- 833.9935898886885,
- 834.4721284739337,
- 834.9372352713697,
- 835.3262361547418,
- 835.7269700331989,
- 836.1098552627623,
- 836.4399873155835,
- 836.7093252394321,
- 837.0072934833333,
- 837.1822464834015,
- 837.3451493804091,
- 837.4362726221588,
- 837.5408503022875,
- 837.5736483271578,
- 837.5677591790455,
- 837.4652653513258,
- 837.3263494075898,
- 837.1468209924503,
- 836.8963056919905,
- 836.6094815283628,
- 836.2890665699266,
- 835.9382318964347,
- 835.5872386689553,
- 835.1165145302431,
- 834.5834107226823,
- 833.9598178893226,
- 833.3357267434303,
- 832.6570703752228,
- 831.9881084508305,
- 831.3023171531794,
- 830.5412127114027,
- 829.7644114248504,
- 828.9462954992351,
- 828.1205236810739,
- 827.2355206232472,
- 826.3578110488513,
- 825.516183831927,
- 824.6220072933872,
- 823.7371627895479,
- 822.8325216878244,
- 821.911594826514,
- 820.9514824796886,
- 819.9883349565285,
- 818.9937031415385,
- 818.0572379894401,
- 817.065482796797,
- 816.0494914946158,
- 815.0079050487169,
- 813.9717773901064,
- 812.9457518855651,
- 811.9346984075702,
- 810.970350404218,
- 810.0200684046259,
- 809.0248023736854,
- 808.0491517360718,
- 807.0931164917855,
- 806.124510181337,
- 805.1435593104228,
- 804.1504903847393,
- 803.1455299099835,
- 802.1289043918518,
- 801.100840336041,
- 800.0615642482474,
- 799.0055267389042,
- 797.932954313708,
- 796.8764864435412,
- 795.8099390698746,
- 794.7395410993661,
- 793.6333325782217,
- 792.5505900472473,
- 791.4917665178356,
- 790.3984914719683,
- 789.3036308862247,
- 788.2018618767341,
- 787.0936374548901,
- 785.9851865273496,
- 784.9093750706915,
- 783.7811954969753,
- 782.7189743821143,
- 781.605291172982,
- 780.4994224103825,
- 779.4015946000133,
- 778.2853971776482,
- 777.1566060385513,
- 776.0474076422117,
- 774.9899884481191,
- 773.9310743164287,
- 772.8113887063357,
- 771.7481256652704,
- 770.6549185711121,
- 769.5896849304862,
- 768.5246551449872,
- 767.4966590408854,
- 766.5101134792645,
- 765.5636594259453,
- 764.5968878116391,
- 763.6728125211458,
- 762.7687603342333,
- 761.8884685948963,
- 761.035448141432,
- 760.2396203763639,
- 759.4984937370289,
- 758.750526625656,
- 757.9927744681894,
- 757.3133026794741,
- 756.6556660399127,
- 755.9898298941335,
- 755.3709936804028,
- 754.795306801878,
- 754.232281591794,
- 753.6836168428756,
- 753.1241477722285,
- 752.5873066206738,
- 752.1005232280713,
- 751.5997644339877,
- 751.1444200320763,
- 750.6757797457728,
- 750.2527803573383,
- 749.8220344740795,
- 749.4153887969408,
- 749.0586876259065,
- 748.686312260666,
- 748.3560669549963,
- 748.0400688576447,
- 747.7044327163956,
- 747.4329203378594,
- 747.1914199641249,
- 746.9458198372818,
- 746.7266076240945,
- 746.4994450609562,
- 746.3154544835933,
- 746.113660558476,
- 745.9185485514091,
- 745.781240798119,
- 745.640988470773,
- 745.4960927766463,
- 745.3390790277505,
- 745.1682484313611,
- 745.0409522298615,
- 744.8911187115485,
- 744.7707762349354,
- 744.5876690297891,
- 744.4264649255059,
- 744.2808217625804,
- 744.0858003577922,
- 743.8621486329513,
- 743.6308410155647,
- 743.3866678746103,
- 743.124872590459,
- 742.8677886247972,
- 742.5793789212934,
- 742.2240594350081,
- 741.8197467665447,
- 741.3581734579759,
- 740.863938027955,
- 740.2708555119298,
- 739.6310675212617,
- 738.911708079372,
- 738.080364221074,
- 737.131486556801,
- 736.092165167868,
- 734.9899431469844,
- 733.7997689641038,
- 732.5294570657599,
- 731.1490860494289,
- 729.7146481233152,
- 728.1971279076819,
- 726.6270130692939,
- 724.9497836869751,
- 723.2083852408045,
- 721.4138032570678,
- 719.5126503430722,
- 717.5696391763415,
- 715.6175224806068,
- 713.6040453916581,
- 711.5686425512773,
- 709.4597386123432,
- 707.2048970530784,
- 704.9405649051251,
- 702.7061768102648,
- 700.4767944912995,
- 698.2010691068065,
- 695.9513012751459,
- 693.7085551200804,
- 691.4747559400312,
- 689.2576049286835,
- 687.1238533148306,
- 684.9901923032564,
- 682.9293755237148,
- 680.9171442160975,
- 678.9825137601418,
- 677.0690389362503,
- 675.2705610545318,
- 673.5042243311634,
- 671.7459965117339,
- 670.0628553307333,
- 668.4036784524352,
- 666.8558517745943,
- 665.4363858750271,
- 663.9971460281452,
- 662.5189698520144,
- 661.12075018679,
- 659.7975039071463,
- 658.5384719924938,
- 657.1997100726317,
- 655.9313914244178,
- 654.7748986386243,
- 653.574056037433,
- 652.3873473917107,
- 651.1607057916747,
- 649.9841219505912,
- 648.8769847560909,
- 647.7408095312842,
- 646.6595845884768,
- 645.5994246754552,
- 644.5530816099273,
- 643.374345964726,
- 642.1045776800537,
- 640.8317289179075,
- 639.5520623342929,
- 638.2731658700471,
- 636.9167138552793,
- 635.5539876327148,
- 634.2176266732369,
- 632.8161679765509,
- 631.4135314502424,
- 630.0407710253178,
- 628.5897528822118,
- 627.2637885342083,
- 625.9653899294838,
- 624.7029377788123,
- 623.2386237513147,
- 621.7683752745655,
- 620.6765272145869,
- 619.4954359101409,
- 618.5876690298039,
- 617.8797934267326,
- 617.22424063958,
- 616.3680038052238,
- 615.7366418264701,
- 615.3223402567857,
- 615.11105574298,
- 614.9342453961999,
- 614.7627579332903,
- 614.8430995038808,
- 615.2801195949361,
- 615.9695576343025,
- 616.8775283697665,
- 617.9106435026121,
- 618.9686063103765,
- 620.4159324106278,
- 622.012684318938,
- 623.8134952093316,
- 625.7373439941284,
- 627.5484835442878,
- 629.3767695756814,
- 631.4128292825827,
- 633.3988312305315,
- 636.2569707127392,
- 639.0843280707763,
- 641.8371424040566,
- 644.4494326031548,
- 647.4866927902481,
- 650.3094973837833,
- 652.7175473962409,
- 655.5286813709516,
- 658.3226742269233,
- 661.0870174097697,
- 663.809202365029,
- 666.4767205382393,
- 669.0770633749386,
- 671.597722320665,
- 674.0261888209563,
- 676.349954321351,
- 678.556510267387,
- 680.6333481046022,
- 682.5679592785348,
- 684.3478352347228,
- 685.9604674187042,
- 687.3933472760173,
- 688.6339662521999,
- 689.6698157927902,
- 690.4883873433264,
- 691.0771723493463,
- 691.423662256388,
- 691.5153485099895,
- 691.3397225556891,
- 690.8842758390248,
- 690.1364998055345,
- 689.0838859007564
- ],
- "yaxis": "y"
- },
- {
- "hovertemplate": "variable=x1
index=%{x}
value=%{y}",
- "legendgroup": "x1",
- "line": {
- "color": "#00cc96",
- "dash": "solid"
- },
- "marker": {
- "symbol": "circle"
- },
- "mode": "lines",
- "name": "x1",
- "showlegend": true,
- "type": "scattergl",
- "x": [
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332
- ],
- "xaxis": "x",
- "y": [
- 978.3584399733129,
- 976.4120916613707,
- 974.4761920378542,
- 972.550171753914,
- 970.6334614607014,
- 968.7254918093671,
- 966.8256934510623,
- 964.9334970369379,
- 963.0483332181446,
- 961.1696326458338,
- 959.2968259711561,
- 957.4293438452627,
- 955.5666169193044,
- 953.7080758444322,
- 951.8531512717971,
- 950.0012738525501,
- 948.1518742378421,
- 946.304383078824,
- 944.4582310266469,
- 942.6128487324617,
- 940.7676668474193,
- 938.9221160226707,
- 937.075626909367,
- 935.2276301586589,
- 933.3775564216976,
- 931.5248363495255,
- 929.5865138507148,
- 927.6654284354169,
- 925.7335839995295,
- 923.7953974041369,
- 921.8228725451371,
- 919.885025708289,
- 917.932999614833,
- 916.0033975853424,
- 914.0298081495682,
- 912.0692427913498,
- 910.0721647148364,
- 908.1333212529235,
- 906.1705361388782,
- 904.2841060951627,
- 902.4031801398752,
- 900.6278284897815,
- 898.8487847968328,
- 896.9272237195719,
- 894.9913474822847,
- 893.04727173878,
- 891.0948832362093,
- 889.1660286755174,
- 887.2599152867658,
- 885.5375886202505,
- 883.9039389339611,
- 882.0786880789022,
- 880.4730344967148,
- 878.9585494574163,
- 877.4809395455272,
- 876.0711454392055,
- 874.6741942058823,
- 873.4115835012232,
- 872.1746132414213,
- 870.9986409657186,
- 869.933656481359,
- 868.9173254206329,
- 867.919273369624,
- 866.9941335023565,
- 866.1048494868636,
- 865.3111508753436,
- 864.4956171146696,
- 863.770345874098,
- 863.102697682746,
- 862.4655824592982,
- 861.8314571110459,
- 861.2253731680348,
- 860.6128791138092,
- 860.0121180546687,
- 859.4789689459687,
- 858.9245736029259,
- 858.4365444289921,
- 857.9577566874806,
- 857.4781308748913,
- 856.9929103715958,
- 856.5026614418354,
- 856.0341344083805,
- 855.6138530883054,
- 855.2092912635754,
- 854.7934721057237,
- 854.359826949548,
- 853.9870212234842,
- 853.5883485468663,
- 853.1947495978527,
- 852.804525583719,
- 852.4215271013071,
- 852.0817912069493,
- 851.7298919566833,
- 851.4280504653698,
- 851.1412489523118,
- 850.8666560963015,
- 850.6127658609623,
- 850.4087068788788,
- 850.2511948174506,
- 850.0778953089678,
- 849.9174839746228,
- 849.745135790066,
- 849.5946227546631,
- 849.4670773968974,
- 849.3043557044468,
- 849.2247842532248,
- 849.1373530543302,
- 849.1335251080574,
- 849.0687897799638,
- 849.1253935535487,
- 849.2174228180847,
- 849.3062357017288,
- 849.4175632516167,
- 849.5826859044514,
- 849.7414210966415,
- 849.9188203582328,
- 850.1130716436527,
- 850.3545493668174,
- 850.5821649413492,
- 850.7934268045849,
- 851.1034904526857,
- 851.4241772179578,
- 851.7851819972278,
- 852.1305125822919,
- 852.4627737886611,
- 852.8373915602982,
- 853.2507418060568,
- 853.6992004347912,
- 854.1791433553557,
- 854.6278964414959,
- 855.1062085210446,
- 855.6157783867266,
- 856.1258918660806,
- 856.6322453508706,
- 857.1569457970869,
- 857.7278760559827,
- 858.2550454142921,
- 858.760334322308,
- 859.2711726198912,
- 859.7883530769794,
- 860.2802554983255,
- 860.8331332532009,
- 861.3831796868686,
- 861.9047770050411,
- 862.4311309428426,
- 862.9248454097612,
- 863.4397608098836,
- 863.9500328432251,
- 864.4240413145383,
- 864.8832136627227,
- 865.3489773266789,
- 865.8163491810808,
- 866.2863485015638,
- 866.7335839995364,
- 867.1593014563305,
- 867.6770708282302,
- 868.1327549886867,
- 868.5815533759661,
- 869.0198418989223,
- 869.4766359372923,
- 869.8690797072533,
- 870.2530521641604,
- 870.6198328386943,
- 870.9667036624955,
- 871.2911730729011,
- 871.6176130828674,
- 871.8851616117129,
- 872.1776937188952,
- 872.375976805715,
- 872.5168406984417,
- 872.6371152233461,
- 872.6766178168364,
- 872.7196765497634,
- 872.6796982943104,
- 872.6261523476296,
- 872.5430474075405,
- 872.43525334652,
- 872.3018641417814,
- 872.0886996306939,
- 871.8858637793721,
- 871.665586989411,
- 871.4116514529323,
- 871.1608869962064,
- 870.9443475502393,
- 870.7609005865481,
- 870.5239529773157,
- 870.2703345488123,
- 870.0632856915335,
- 869.8215361615331,
- 869.587238668951,
- 869.3166323132011,
- 869.110013816746,
- 868.9380280413039,
- 868.771093342896,
- 868.735463996818,
- 868.7216471493244,
- 868.7377970054933,
- 868.8182518289321,
- 868.9704863076292,
- 869.1751115539541,
- 869.4655598087277,
- 869.8102108767021,
- 870.2626786562665,
- 870.7376158009358,
- 871.358558517645,
- 872.0663435184377,
- 872.7691680444744,
- 873.578110489377,
- 874.4595121066275,
- 875.3794876440121,
- 876.3627488730318,
- 877.439556954755,
- 878.522072980033,
- 879.6074656276579,
- 880.7779111643629,
- 881.9650728214784,
- 883.1325737841277,
- 884.3348207206379,
- 885.582029037927,
- 886.85777707299,
- 888.1363337786909,
- 889.4450157420422,
- 890.7196765497612,
- 891.9814038822035,
- 893.3043330538721,
- 894.5708170059432,
- 895.8190445988673,
- 897.1020634667915,
- 898.3759088540029,
- 899.6938549003459,
- 900.8792045118885,
- 902.0496047474542,
- 903.2103784909137,
- 904.387709800796,
- 905.5374074156908,
- 906.615280074188,
- 907.6475118348168,
- 908.5861514416026,
- 909.4627058369456,
- 910.3084554575487,
- 911.1870937053004,
- 912.1569910982196,
- 913.1002740717863,
- 913.9314820266663,
- 914.774037916947,
- 915.5420281319007,
- 916.3528732246546,
- 917.2063466895121,
- 918.0169879271392,
- 918.9028970077525,
- 919.8057034133334,
- 920.6464019569017,
- 921.4902715802226,
- 922.3053523295035,
- 923.1833337107352,
- 924.0658452058991,
- 924.8412421571325,
- 925.7246370245132,
- 926.5659697840321,
- 927.5042016805642,
- 928.4161362657187,
- 929.2547283063084,
- 930.1969014019617,
- 931.125008493855,
- 932.1098779133207,
- 933.1728238464107,
- 934.0843280707419,
- 935.1507395409902,
- 936.2219982331462,
- 937.2601417924568,
- 938.3657160976503,
- 939.5065346892378,
- 940.5973634735815,
- 941.8095766607432,
- 942.9877913428422,
- 944.1211352464413,
- 945.3490226278087,
- 946.5604883461713,
- 947.6978414006007,
- 948.8627601983083,
- 949.9535889826521,
- 951.1428344921765,
- 952.2822487484449,
- 953.4864209833763,
- 954.6497315906381,
- 955.6992004347794,
- 956.6854968401339,
- 957.6861537066538,
- 958.6996987473117,
- 959.6931527326792,
- 960.7141271601859,
- 961.6874900902637,
- 962.4797390653252,
- 963.2790323675518,
- 964.1776484177453,
- 964.9540193434738,
- 965.8214682098127,
- 966.2778998390683,
- 967.0252553850601,
- 967.5714512218854,
- 968.1720990281775,
- 968.436431176131,
- 968.625925841922,
- 968.6861990077919,
- 968.825726516909,
- 968.6459262949332,
- 968.079707354527,
- 967.2023148881067,
- 966.4011732995083,
- 965.36179065724,
- 964.0689699004903,
- 962.5075139683352,
- 960.6622257998505,
- 958.5179083341125,
- 956.0593645101968,
- 953.2713972671796,
- 950.1388095441368,
- 946.6464042801446,
- 942.7789844142785,
- 938.5213528856149,
- 933.8583126332295,
- 928.7746665961984,
- 923.2552177135975,
- 917.2847689245028,
- 910.8481231679903,
- 903.930083383136,
- 896.5154525090157,
- 888.5890334847055,
- 880.1356292492815,
- 871.1400427418193,
- 861.5870769013952,
- 851.4615346670851,
- 840.7482189779648
- ],
- "yaxis": "y"
- },
- {
- "hovertemplate": "variable=y1
index=%{x}
value=%{y}",
- "legendgroup": "y1",
- "line": {
- "color": "#ab63fa",
- "dash": "solid"
- },
- "marker": {
- "symbol": "circle"
- },
- "mode": "lines",
- "name": "y1",
- "showlegend": true,
- "type": "scattergl",
- "x": [
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332
- ],
- "xaxis": "x",
- "y": [
- 750.360738780273,
- 752.2714192208091,
- 754.0859316150267,
- 755.8070858241704,
- 757.4376917094853,
- 758.9805591322164,
- 760.4384979536085,
- 761.8143180349066,
- 763.1108292373557,
- 764.3308414222005,
- 765.4771644506862,
- 766.5526081840576,
- 767.5599824835597,
- 768.5020972104373,
- 769.3817622259356,
- 770.2017873912993,
- 770.9649825677733,
- 771.6741576166027,
- 772.3321223990323,
- 772.9416867763072,
- 773.5056606096721,
- 774.0268537603721,
- 774.5080760896521,
- 774.9521374587571,
- 775.3618477289319,
- 775.7400167613312,
- 776.1498561687922,
- 776.5293891140457,
- 776.9160116876033,
- 777.262112392036,
- 777.5678044801921,
- 777.8658406758022,
- 778.1627896440688,
- 778.4598971663228,
- 778.7854991052117,
- 779.0180978050688,
- 779.2779451402293,
- 779.5412353619785,
- 779.8321139775755,
- 780.116355976262,
- 780.3335522887492,
- 780.5413939159657,
- 780.7331989398621,
- 780.9085143490447,
- 781.0731160387771,
- 781.2274570204528,
- 781.3724433168583,
- 781.4712451017231,
- 781.5138961243964,
- 781.4964325351871,
- 781.4151169901012,
- 781.3579016511354,
- 781.2364945977481,
- 781.0485175201246,
- 780.8184556840694,
- 780.5121973316718,
- 780.1340460711677,
- 779.7742191215199,
- 779.3409137238891,
- 778.7749665903191,
- 778.2265509976669,
- 777.6105461051437,
- 776.9219687874245,
- 776.1826994948017,
- 775.3942105143042,
- 774.5317900744301,
- 773.6566400144062,
- 772.7125416203315,
- 771.7025527191109,
- 770.6890076784533,
- 769.6758703480496,
- 768.6087340595719,
- 767.4924686854979,
- 766.3645835691874,
- 765.1449409951767,
- 763.897913882445,
- 762.6232757252956,
- 761.3210265237283,
- 759.9114815736729,
- 758.5507033000996,
- 757.1858705745566,
- 755.8234388093977,
- 754.4967269925959,
- 753.20709415833,
- 751.9239393869879,
- 750.6168882646523,
- 749.3203923077791,
- 748.0691295385205,
- 746.8600421299725,
- 745.5724251964067,
- 744.2946839112134,
- 743.0563999183713,
- 741.8019207682208,
- 740.4755940111029,
- 739.1718272213684,
- 737.8937914787696,
- 736.6124714035699,
- 735.3579016511408,
- 734.0688803822561,
- 732.8020793222095,
- 731.5287095969611,
- 730.2790323675788,
- 729.0187093704556,
- 727.74581530717,
- 726.4908378444869,
- 725.1930281545734,
- 723.856236834272,
- 722.6288251148674,
- 721.3266212144396,
- 720.0336134452941,
- 718.7807424855896,
- 717.4813019546604,
- 716.1664590363611,
- 714.8349679493605,
- 713.4798070170632,
- 712.0730933882156,
- 710.6781807061619,
- 709.20813608454,
- 707.7260866609969,
- 706.2627466079948,
- 704.7309565334746,
- 703.1612041042011,
- 701.5837504812429,
- 700.0288568256675,
- 698.4945978390541,
- 696.9584135540196,
- 695.4301569683666,
- 693.8548551495261,
- 692.2685451538299,
- 690.7985005322078,
- 689.3306983169823,
- 687.895626174918,
- 686.4704976329353,
- 685.0855738521025,
- 683.679652993193,
- 682.2559061359598,
- 680.8761013838703,
- 679.516319735362,
- 678.1790527530976,
- 676.8283766335934,
- 675.551790527453,
- 674.2922829508375,
- 673.019252984134,
- 671.7931096966305,
- 670.6476250876926,
- 669.5577476272747,
- 668.4660128201444,
- 667.4059661599711,
- 666.378513669541,
- 665.4376090057888,
- 664.4660581212842,
- 663.5555505220182,
- 662.647262678579,
- 661.7942422251148,
- 660.9638496907424,
- 660.1556320640694,
- 659.3689098280054,
- 658.6409658202136,
- 657.8794310176133,
- 657.1626310900954,
- 656.4299304626746,
- 655.6792905840816,
- 654.94063285684,
- 654.2436521777759,
- 653.5532175133441,
- 652.8073342543803,
- 652.126254275219,
- 651.42089288538,
- 650.7788624883156,
- 650.1699019229575,
- 649.5579741329736,
- 648.9982785566301,
- 648.4339169629359,
- 647.9200887901575,
- 647.4149810866987,
- 646.8767809009643,
- 646.3606876712195,
- 645.8364402363966,
- 645.3594645404579,
- 644.8733153638061,
- 644.4014586966111,
- 643.929398174289,
- 643.4220027632945,
- 642.9089673604541,
- 642.3287503679967,
- 641.7643208225938,
- 641.2134136672789,
- 640.6418038912932,
- 640.1011800946047,
- 639.525810324055,
- 638.9358762372128,
- 638.2929624679316,
- 637.6179301908699,
- 636.9587306620018,
- 636.1662098801041,
- 635.3271874786909,
- 634.4849713469555,
- 633.5714512219242,
- 632.6162087475761,
- 631.5846791546072,
- 630.41033771992,
- 629.2095857210073,
- 627.9492174227449,
- 626.5967066070981,
- 625.1199800674258,
- 623.5728782078143,
- 621.8975967744864,
- 620.1280210196563,
- 618.2718521370091,
- 616.3581055062816,
- 614.3250130240059,
- 612.2082719879692,
- 610.0173956374291,
- 607.7889872929595,
- 605.4688667919293,
- 603.0887675824343,
- 600.6866520192282,
- 598.2154748691231,
- 595.6874674397367,
- 593.1417246143047,
- 590.5529683570853,
- 587.928560103218,
- 585.3027248634621,
- 582.6568665201249,
- 579.9726154612113,
- 577.2258261794611,
- 574.5368638020576,
- 571.822985798026,
- 569.1519626717949,
- 566.4415049037822,
- 563.8985707489885,
- 561.2857142856487,
- 558.6926997213328,
- 556.1504677341986,
- 553.6371378739528,
- 551.1901062311074,
- 548.7823959771947,
- 546.4138938593668,
- 544.0580760605494,
- 541.6884187636687,
- 539.3638587509847,
- 536.9988221703148,
- 534.6844322634091,
- 532.3881628122326,
- 530.0983487734098,
- 527.8739269292006,
- 525.6885999682279,
- 523.4665564338333,
- 521.2556343291426,
- 518.9440757434444,
- 516.5965933542625,
- 514.3251715780051,
- 512.0329112776589,
- 509.62868921147424,
- 507.23026569112295,
- 504.7784774286484,
- 502.27298466550565,
- 499.798908242484,
- 497.3237219415489,
- 494.7942648757039,
- 492.21042379210087,
- 489.6251330720396,
- 486.95836825290473,
- 484.3334390359352,
- 481.65876916798834,
- 478.9131577158607,
- 476.08072663021926,
- 473.2039683797495,
- 470.29828535182173,
- 467.46431402744327,
- 464.56671725288464,
- 461.732089061986,
- 458.909873383262,
- 456.0814740990204,
- 453.31907857477336,
- 450.6622347051502,
- 448.0115291399056,
- 445.4380167160683,
- 442.97411039882485,
- 440.54544836797504,
- 438.3071870257025,
- 436.0222202087874,
- 433.81770821531103,
- 431.65453351146743,
- 429.51908310489,
- 427.59439624901574,
- 425.8690344061656,
- 424.2991460734743,
- 422.6599696481873,
- 421.20288115241186,
- 419.8988652064109,
- 418.71845341905464,
- 417.8295091621066,
- 417.04627511377043,
- 416.4717887154376,
- 415.9140637386545,
- 415.5933316722429,
- 415.81748170961646,
- 415.5860834899512,
- 415.4230899906647,
- 415.37781150191086,
- 415.2278647307495,
- 415.139754014765,
- 415.0797300051612,
- 415.0371469341969,
- 414.92144782436435,
- 414.7861333212046,
- 414.7852499489878,
- 414.7743327229294,
- 414.72082793123684,
- 414.6143738450063,
- 414.4446087352856,
- 414.2011708731225,
- 413.8736985295648,
- 413.4518299756604,
- 412.9252034824571,
- 412.2834573210027,
- 411.51622976234495,
- 410.61315907753175,
- 409.56388353761093,
- 408.3580414136302,
- 406.9852709766375,
- 405.43521049768054,
- 403.6974982478072,
- 401.7617724980653,
- 399.6176715195026,
- 397.25483358316694,
- 394.6628969601062,
- 391.8314999213681,
- 388.7502807380005,
- 385.40887768105125,
- 381.7969290215681,
- 377.9040730305989
- ],
- "yaxis": "y"
- },
- {
- "hovertemplate": "variable=x2
index=%{x}
value=%{y}",
- "legendgroup": "x2",
- "line": {
- "color": "#FFA15A",
- "dash": "solid"
- },
- "marker": {
- "symbol": "circle"
- },
- "mode": "lines",
- "name": "x2",
- "showlegend": true,
- "type": "scattergl",
- "x": [
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332
- ],
- "xaxis": "x",
- "y": [
- 1207.725019051324,
- 1206.636130162435,
- 1205.514103451412,
- 1204.3597770635433,
- 1203.1739891441182,
- 1201.957577838425,
- 1200.7113812917528,
- 1199.4362376493903,
- 1198.132985056626,
- 1196.8024616587488,
- 1195.4455056010474,
- 1194.0629550288108,
- 1192.6556480873276,
- 1191.2244229218863,
- 1189.7701176777762,
- 1188.2935705002856,
- 1186.7956195347033,
- 1185.2771029263183,
- 1183.7388588204192,
- 1182.1817253622946,
- 1180.6065406972336,
- 1179.0141429705247,
- 1177.405370327457,
- 1175.7810609133187,
- 1174.1420528733988,
- 1172.4891843528494,
- 1170.8218759200427,
- 1169.110489478674,
- 1167.4204172233572,
- 1165.6991777841854,
- 1164.006387460509,
- 1162.2837889871575,
- 1160.5377245236364,
- 1158.8009467936765,
- 1157.0680196605595,
- 1155.253595777799,
- 1153.4221613172226,
- 1151.5789259098524,
- 1149.7879227161222,
- 1147.8980724363878,
- 1145.9669528187294,
- 1144.0574644950987,
- 1142.1410450971507,
- 1140.5130354027071,
- 1139.003963849558,
- 1137.5662189402733,
- 1136.1785997416507,
- 1134.8785023442015,
- 1133.6649074722907,
- 1132.2448526579124,
- 1130.8603365873332,
- 1129.8375274636837,
- 1128.5633649684976,
- 1127.3322159050986,
- 1126.1718498718928,
- 1125.0509864321775,
- 1123.9438945388163,
- 1122.8892160636528,
- 1121.8605404424613,
- 1120.8900541347307,
- 1120.0363541641766,
- 1119.2343880947296,
- 1118.4246528798894,
- 1117.6650660262803,
- 1117.007542639567,
- 1116.3594871909727,
- 1115.7575030010703,
- 1115.2113298148147,
- 1114.654103150564,
- 1114.1306031845402,
- 1113.6378853426863,
- 1113.1403655800646,
- 1112.6934698406367,
- 1112.2078869282263,
- 1111.7650003396288,
- 1111.3014564314994,
- 1110.8124985842096,
- 1110.331106027187,
- 1109.8900314841624,
- 1109.4305646785722,
- 1109.0116423926768,
- 1108.5683254432556,
- 1108.1266846359895,
- 1107.7449772360483,
- 1107.3311739788962,
- 1106.878479693635,
- 1106.5035221634532,
- 1106.092957937763,
- 1105.736777729831,
- 1105.3156356881086,
- 1104.9190695144694,
- 1104.5509298057557,
- 1104.182654193624,
- 1103.7854538040344,
- 1103.3949126819252,
- 1103.0406124712752,
- 1102.6930847809535,
- 1102.3874606445065,
- 1102.1264581302933,
- 1101.8479693763013,
- 1101.607533579341,
- 1101.3483657612705,
- 1101.1313280027707,
- 1100.958232349415,
- 1100.771840811668,
- 1100.6267865635539,
- 1100.4596027088799,
- 1100.3626582707268,
- 1100.3104487076564,
- 1100.3041065481516,
- 1100.3447643206944,
- 1100.395365693319,
- 1100.365353688517,
- 1100.4376543068774,
- 1100.494620489577,
- 1100.557113411274,
- 1100.619130671008,
- 1100.718408117836,
- 1100.8602686356278,
- 1100.95857210796,
- 1101.071236041458,
- 1101.2501755417863,
- 1101.4294321500902,
- 1101.6342839021113,
- 1101.8367346937491,
- 1102.0351989851258,
- 1102.2545018005917,
- 1102.4928310945734,
- 1102.7541507167618,
- 1102.9833744817395,
- 1103.2697003328346,
- 1103.5520396836691,
- 1103.8547645471997,
- 1104.1223357266147,
- 1104.3844481187414,
- 1104.6647942194456,
- 1104.9337923847495,
- 1105.1882715349,
- 1105.4572470496341,
- 1105.7106842735805,
- 1106.0306462206233,
- 1106.3282747059798,
- 1106.6325851093864,
- 1106.8869057055492,
- 1107.237898933029,
- 1107.6233436769642,
- 1107.9812453281909,
- 1108.3142087022195,
- 1108.6836621439736,
- 1109.0540216085142,
- 1109.4487530860106,
- 1109.8324990372214,
- 1110.2080907833538,
- 1110.5783596456154,
- 1110.966998119873,
- 1111.3979252076892,
- 1111.804049921726,
- 1112.2097442749389,
- 1112.586332646136,
- 1112.931776484049,
- 1113.2440372374067,
- 1113.5477134248626,
- 1113.802804140394,
- 1114.0723232688001,
- 1114.3282747059789,
- 1114.5637500281832,
- 1114.745430247441,
- 1114.9256834808095,
- 1115.0774196469742,
- 1115.2004122402377,
- 1115.2738000859422,
- 1115.3091349746144,
- 1115.274003941069,
- 1115.1948175495315,
- 1115.0713492943046,
- 1114.9091485649562,
- 1114.7404018209756,
- 1114.5326960971768,
- 1114.2860313935596,
- 1113.9795465354655,
- 1113.6836168428335,
- 1113.371605245742,
- 1113.0435117441905,
- 1112.6993363381794,
- 1112.3772678881578,
- 1112.0300346552417,
- 1111.5835013249286,
- 1111.198826700362,
- 1110.8486941945293,
- 1110.538200185605,
- 1110.2458039818407,
- 1109.9439624905272,
- 1109.6695055379348,
- 1109.4323993747148,
- 1109.3014337809302,
- 1109.1094249019068,
- 1108.9242564949213,
- 1108.7864957302384,
- 1108.7420326619922,
- 1108.771704908249,
- 1108.8501211804185,
- 1108.9836236380052,
- 1109.284423203114,
- 1109.6935830934854,
- 1110.1901288816118,
- 1110.7734943032522,
- 1111.4368841875075,
- 1112.1464132821643,
- 1112.9589798182124,
- 1113.8455684159155,
- 1114.8091236493296,
- 1115.8521370811175,
- 1116.9442342973623,
- 1118.054361367058,
- 1119.2744343018921,
- 1120.5398536771893,
- 1121.8443905862925,
- 1123.1336383608739,
- 1124.51765611892,
- 1125.9291263673967,
- 1127.4181521663954,
- 1129.0079730003893,
- 1130.6951912839288,
- 1132.3849464312705,
- 1134.1322113749836,
- 1135.9002695416461,
- 1137.6901402068934,
- 1139.4699766697804,
- 1141.2871639220396,
- 1143.1298104145985,
- 1144.9707128132936,
- 1146.7879906678315,
- 1148.633219325332,
- 1150.4130104870794,
- 1152.1303087271301,
- 1153.8462026318616,
- 1155.5090036013057,
- 1157.3080930484052,
- 1159.0998663615037,
- 1160.9322747965757,
- 1162.7407189289454,
- 1164.5571587124057,
- 1166.3806881241703,
- 1168.1890869554006,
- 1170.0451425851998,
- 1171.8342657816477,
- 1173.6618496453818,
- 1175.6004213004585,
- 1177.6519060452995,
- 1179.6051326189477,
- 1181.7936533102427,
- 1184.0886090283789,
- 1186.5229790027834,
- 1188.9410405670315,
- 1191.1881809326112,
- 1193.5055607147128,
- 1195.980679063939,
- 1198.5711567644528,
- 1201.378898729163,
- 1204.1635144622483,
- 1206.9691952251192,
- 1209.8922738905471,
- 1212.851480214586,
- 1215.9948356699754,
- 1219.2341615890216,
- 1222.4446533328887,
- 1225.8633038119478,
- 1229.473578110346,
- 1233.2229948581767,
- 1237.159392058566,
- 1241.2600058890032,
- 1245.4221613172117,
- 1249.607329724197,
- 1253.9683118528967,
- 1258.016829373112,
- 1262.0310992319985,
- 1266.3689551290738,
- 1270.8732247614544,
- 1275.4369294886278,
- 1280.0651883393373,
- 1282.460780538481,
- 1287.3149561709974,
- 1292.1691997552227,
- 1296.8774151168386,
- 1301.566309542533,
- 1306.4360461164074,
- 1311.241930734405,
- 1316.189902375891,
- 1320.8543568369205,
- 1325.7344447211299,
- 1330.773652857214,
- 1335.8158282179238,
- 1340.6331513736006,
- 1345.4362046703905,
- 1350.3267797683536,
- 1355.218872454484,
- 1360.177444562572,
- 1366.946725859996,
- 1371.374617771477,
- 1375.9770323222021,
- 1380.9384131009285,
- 1385.4190355385822,
- 1389.7903236764785,
- 1393.999479036735,
- 1398.506036376652,
- 1402.4550499443426,
- 1406.905547124346,
- 1411.1115767059898,
- 1415.1551626746489,
- 1419.0510943322658,
- 1422.7886749087636,
- 1426.3572076339,
- 1429.7459957374335,
- 1432.9443424491226,
- 1435.9415509987252,
- 1438.726924616,
- 1441.2897665307048,
- 1443.6193799725984,
- 1445.7050681714386,
- 1447.536134356984,
- 1449.1018817589925,
- 1450.3916136072228,
- 1451.394633131433,
- 1452.1002435613814,
- 1452.4977481268265,
- 1452.576450057526,
- 1452.325652583239,
- 1451.734658933723,
- 1450.7927723387365,
- 1449.489296028038,
- 1447.813533231386,
- 1445.754787178538,
- 1443.3023610992527
- ],
- "yaxis": "y"
- },
- {
- "hovertemplate": "variable=y2
index=%{x}
value=%{y}",
- "legendgroup": "y2",
- "line": {
- "color": "#19d3f3",
- "dash": "solid"
- },
- "marker": {
- "symbol": "circle"
- },
- "mode": "lines",
- "name": "y2",
- "showlegend": true,
- "type": "scattergl",
- "x": [
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332
- ],
- "xaxis": "x",
- "y": [
- 744.2818836936489,
- 745.2163079326236,
- 746.1588219871085,
- 747.1086325902725,
- 748.0649464752846,
- 749.0269703753138,
- 749.9939110235292,
- 750.9649751530998,
- 751.9393694971944,
- 752.9163007889822,
- 753.894975761632,
- 754.8746011483131,
- 755.8543836821942,
- 756.8335300964444,
- 757.8112471242328,
- 758.7867414987282,
- 759.7592199530998,
- 760.7278892205164,
- 761.6919560341472,
- 762.6506271271611,
- 763.6031092327271,
- 764.5486090840141,
- 765.4863334141912,
- 766.4154889564275,
- 767.3352824438917,
- 768.2449206096637,
- 769.1215656072854,
- 769.9591383722403,
- 770.7920904209842,
- 771.6493238804056,
- 772.5220050283364,
- 773.4133049445289,
- 774.2411606150991,
- 775.0888808352627,
- 775.8954902714897,
- 776.685700695282,
- 777.4254003487282,
- 778.1453034042897,
- 778.9029876100474,
- 779.6061971957686,
- 780.2483634962509,
- 780.8611067067425,
- 781.4762735281881,
- 782.0555618472894,
- 782.6199460915527,
- 783.1375795600346,
- 783.6034791274086,
- 784.0071122787823,
- 784.4620489704399,
- 784.8849804071656,
- 785.2139119797946,
- 785.59063625441,
- 785.8952411152221,
- 786.1527780922772,
- 786.3621146570919,
- 786.5167953973124,
- 786.6223697025061,
- 786.6906158688973,
- 786.6898004483895,
- 786.5617794286608,
- 786.4843824321264,
- 786.3089084689565,
- 786.0962196198317,
- 785.7895309066107,
- 785.4767944912898,
- 785.1285419827393,
- 784.6891209312998,
- 784.1619289224208,
- 783.577000611474,
- 782.9970101247133,
- 782.3996240004524,
- 781.6981358580256,
- 781.0418129515045,
- 780.3179913473914,
- 779.5321071824047,
- 778.7752836982941,
- 778.0212235836825,
- 777.1850325034768,
- 776.332102652291,
- 775.5280527304357,
- 774.682892024644,
- 773.7923169266803,
- 772.890212688759,
- 772.0164669640542,
- 771.1141815215755,
- 770.2445582005488,
- 769.3511517813776,
- 768.4956171146807,
- 767.6543749574406,
- 766.798296677072,
- 765.957303676098,
- 765.1082697228942,
- 764.3195315861303,
- 763.5360030803885,
- 762.7825092300183,
- 761.9984144600348,
- 761.2467326552375,
- 760.4992412058276,
- 759.754354571929,
- 759.0047113184011,
- 758.2220888354458,
- 757.4695010078619,
- 756.6805363654012,
- 755.8800199324131,
- 755.0395025934021,
- 754.189358762285,
- 753.321773992528,
- 752.4937597679705,
- 751.650456408891,
- 750.7636413054911,
- 749.9287413077564,
- 749.0262973112899,
- 748.1135473056273,
- 747.2210922103818,
- 746.2940723458324,
- 745.3630886315921,
- 744.393916056902,
- 743.4493420008646,
- 742.5066932432484,
- 741.5432965638221,
- 740.6161634464243,
- 739.6644318103737,
- 738.7508890347732,
- 737.7613988990963,
- 736.817345806161,
- 735.8956035243427,
- 734.9672699267528,
- 734.056490520651,
- 733.1665496386379,
- 732.3331445785007,
- 731.4949602481651,
- 730.6495050849676,
- 729.7998369158133,
- 728.9812000270956,
- 728.1431516001779,
- 727.3471199799826,
- 726.5630705111384,
- 725.7931549977635,
- 725.0392987382786,
- 724.329837595331,
- 723.6074203265368,
- 722.9057056784136,
- 722.2847629617042,
- 721.6867879226321,
- 721.139436906754,
- 720.5789032593328,
- 720.0648032797184,
- 719.5977032321523,
- 719.1457564156899,
- 718.682665518954,
- 718.208317289096,
- 717.8136084621691,
- 717.4125121745975,
- 717.0575097962876,
- 716.7153955921156,
- 716.417563251632,
- 716.1363564292806,
- 715.8647534484656,
- 715.5688690569734,
- 715.3058279914907,
- 715.047067883674,
- 714.7962128246692,
- 714.5242474347397,
- 714.2931663230497,
- 714.014451063361,
- 713.8084667828563,
- 713.5862420439041,
- 713.4030895376187,
- 713.2019977801609,
- 713.0968764863603,
- 712.9983012071922,
- 712.9023080929653,
- 712.8579809281371,
- 712.8289428978308,
- 712.8436431175412,
- 712.8717071733522,
- 712.9093977212694,
- 712.9263403473765,
- 712.9452082719047,
- 712.9620376451636,
- 712.9995016873842,
- 713.0156741941228,
- 713.0334548913073,
- 713.022695870718,
- 713.0389363291655,
- 713.0791184397456,
- 713.108224421761,
- 713.1181000701336,
- 713.1065935807453,
- 713.0984167250973,
- 713.0539083557119,
- 713.0250968311021,
- 713.0056399917625,
- 712.925049264906,
- 712.8045255837352,
- 712.5800357878168,
- 712.3322838568558,
- 712.0245532174304,
- 711.647217377434,
- 711.2177399260761,
- 710.7334027949973,
- 710.1655303630058,
- 709.4859000203027,
- 708.7255656978946,
- 707.8778454777312,
- 706.8832363133107,
- 705.8327481935347,
- 704.7208317288357,
- 703.4835670116282,
- 702.2344107453483,
- 700.7718408117146,
- 699.2805952568892,
- 697.6510679742782,
- 695.9832159277994,
- 694.2271625630574,
- 692.3980837617258,
- 690.5113819111745,
- 688.6301841490509,
- 686.7268341297984,
- 684.8389544496245,
- 682.9076083262698,
- 680.9389114135425,
- 678.8384334865228,
- 676.7090760831845,
- 674.583138915865,
- 672.4398740627541,
- 670.3175836371503,
- 668.2223832928619,
- 666.2196652245027,
- 664.198351038451,
- 662.2566989059003,
- 660.3104940088473,
- 658.3401209539652,
- 656.4436114067503,
- 654.6810346779457,
- 653.0159006998265,
- 651.3056241363711,
- 649.6222791002435,
- 647.9995243379615,
- 646.4976556659645,
- 645.0002718067606,
- 643.5676685767896,
- 642.195315862119,
- 640.819633513708,
- 639.4946884413396,
- 638.2421345896104,
- 637.0039411990468,
- 635.8075381095093,
- 634.5356180207191,
- 633.3061677500451,
- 632.0751092889249,
- 630.8096899136278,
- 629.6480780990906,
- 628.3863734172181,
- 627.2597567328087,
- 626.0736370018976,
- 624.9189109605375,
- 623.7361888150758,
- 622.5399895806653,
- 621.158372783003,
- 619.7399261590706,
- 618.5280074293147,
- 617.215474869121,
- 615.8397245690011,
- 614.3580149040032,
- 612.8126118371162,
- 611.1179188655882,
- 609.5830030124548,
- 607.8300980768958,
- 606.1347255882779,
- 604.619651634168,
- 602.8147409906657,
- 601.0172597340122,
- 599.3410949284676,
- 597.5842487937875,
- 595.7260640104403,
- 594.5070103512409,
- 592.5234546648157,
- 591.0390948831673,
- 589.7718634622972,
- 589.1045550294904,
- 587.7178645042238,
- 586.5966613059634,
- 585.7918412647394,
- 585.3110149719583,
- 584.5211669572808,
- 583.673197580851,
- 583.2969716187681,
- 583.2512854197603,
- 583.3747536749868,
- 583.735962309384,
- 584.2589866134452,
- 584.9649142675255,
- 585.8308681962668,
- 586.8663842894964,
- 587.9689007677857,
- 589.3075494347995,
- 589.8516840697855,
- 590.7216244987873,
- 591.8566445445413,
- 592.9094656729926,
- 595.0420168066534,
- 597.0352895874635,
- 598.7771863461667,
- 600.3806881242363,
- 602.7869260911209,
- 604.534326938252,
- 605.6564814604382,
- 607.259829563175,
- 608.7835517274157,
- 610.2125433821327,
- 611.5316999562282,
- 612.7259168786043,
- 613.780089578163,
- 614.6791134838066,
- 615.407884024437,
- 615.9512966289562,
- 616.2942467262666,
- 616.42162974527,
- 616.3183411148686,
- 615.9692762639646,
- 615.3593306214599,
- 614.4733996162566,
- 613.2963786772569,
- 611.8131632333628,
- 610.0086487134765,
- 607.8677305465,
- 605.3753041613354,
- 602.5162649868847,
- 599.2755084520502,
- 595.6379299857339,
- 591.5884250168377,
- 587.1118889742639
- ],
- "yaxis": "y"
- },
- {
- "hovertemplate": "variable=x3
index=%{x}
value=%{y}",
- "legendgroup": "x3",
- "line": {
- "color": "#FF6692",
- "dash": "solid"
- },
- "marker": {
- "symbol": "circle"
- },
- "mode": "lines",
- "name": "x3",
- "showlegend": true,
- "type": "scattergl",
- "x": [
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332
- ],
- "xaxis": "x",
- "y": [
- 1267.9088572051958,
- 1263.8267205479203,
- 1259.8862073324744,
- 1256.0823598331456,
- 1252.4102203242214,
- 1248.8648310799897,
- 1245.4412343747376,
- 1242.134472482753,
- 1238.939587678323,
- 1235.8516222357357,
- 1232.8656184292784,
- 1229.9766185332385,
- 1227.179664821904,
- 1224.469799569562,
- 1221.8420650505004,
- 1219.2915035390065,
- 1216.813157309368,
- 1214.4020686358724,
- 1212.0532797928074,
- 1209.7618330544603,
- 1207.5227706951189,
- 1205.3311349890705,
- 1203.181968210603,
- 1201.0703126340036,
- 1198.9912105335602,
- 1196.9397041834204,
- 1194.83861469102,
- 1192.7564384242874,
- 1190.6611021765807,
- 1188.428843235269,
- 1186.235792430041,
- 1184.0371922352467,
- 1181.7998369157604,
- 1179.5875331263203,
- 1177.508278783074,
- 1175.4081406145992,
- 1173.4048789325682,
- 1171.4453328499844,
- 1169.53539151496,
- 1167.5570681101267,
- 1165.5952569705769,
- 1163.4660128200867,
- 1161.4411198440284,
- 1158.8018075153236,
- 1156.053047634013,
- 1153.2256676254062,
- 1150.3826813743024,
- 1147.3662144101586,
- 1144.2976511357926,
- 1141.8991370131625,
- 1139.4956850663464,
- 1136.499898072304,
- 1134.1928469499685,
- 1131.8191805022573,
- 1129.5775895262448,
- 1127.3508799744998,
- 1125.1335024574553,
- 1123.0106910687493,
- 1120.9704410064605,
- 1118.9683345034823,
- 1117.0742938683602,
- 1115.2345919498575,
- 1113.4485492308834,
- 1111.6504337582794,
- 1109.9625359576498,
- 1108.335998550234,
- 1106.6453600306756,
- 1105.0766042264672,
- 1103.5855172256295,
- 1102.1636050645388,
- 1100.823008448534,
- 1099.463543908001,
- 1098.2321003871966,
- 1096.9923214567568,
- 1095.7079435546527,
- 1094.5779972365028,
- 1093.3240163988849,
- 1092.1003873246138,
- 1090.848399737126,
- 1089.5679403835736,
- 1088.3499060000088,
- 1087.134906792779,
- 1085.8193617068202,
- 1084.573172665166,
- 1083.271444426701,
- 1081.9717547395053,
- 1080.6251330719706,
- 1079.229654125675,
- 1077.8628508005718,
- 1076.4044712223256,
- 1074.9755600352096,
- 1073.5144623886038,
- 1072.083172891673,
- 1070.6315884843254,
- 1069.0885184261138,
- 1067.6655643388185,
- 1066.2682053952412,
- 1064.840109628633,
- 1063.4101791658818,
- 1061.9920043487857,
- 1060.5931731181804,
- 1059.2152710139424,
- 1057.9187071053602,
- 1056.672653967124,
- 1055.5435230694818,
- 1054.356202858379,
- 1053.2623388977004,
- 1052.2575143263625,
- 1051.305125823792,
- 1050.330381208965,
- 1049.402772429604,
- 1048.4912455547033,
- 1047.5381095833338,
- 1046.6033205733904,
- 1045.6553715824732,
- 1044.7007180229364,
- 1043.7455888014367,
- 1042.769349249012,
- 1041.90142472071,
- 1041.056354617197,
- 1040.148451833442,
- 1039.3099956962706,
- 1038.4164307231115,
- 1037.5844979500023,
- 1036.8663389883045,
- 1036.036852476719,
- 1035.271602980694,
- 1034.418718430648,
- 1033.540759699986,
- 1032.7531087905656,
- 1031.9944506103125,
- 1031.2358830323378,
- 1030.4749144939794,
- 1029.6821898569547,
- 1028.807039796931,
- 1027.9368502116629,
- 1027.1530045979457,
- 1026.4250152890147,
- 1025.7226211238017,
- 1024.9773720807882,
- 1024.27665405773,
- 1023.5633423179398,
- 1022.8599968288008,
- 1022.162540487774,
- 1021.499309157506,
- 1020.9694670319766,
- 1020.3396452919599,
- 1019.7183175155664,
- 1019.1606831410621,
- 1018.5776574779666,
- 1018.0686312259566,
- 1017.550522095512,
- 1017.1113955014782,
- 1016.6302067995824,
- 1016.2425196492505,
- 1015.741828806876,
- 1015.3398491470875,
- 1014.9479489907986,
- 1014.4983578335812,
- 1014.0409522298303,
- 1013.534145733647,
- 1013.0160366032023,
- 1012.4450383925974,
- 1011.8235294116467,
- 1011.1272509002421,
- 1010.4382658722689,
- 1009.7800403178961,
- 1009.0377584995085,
- 1008.364991279413,
- 1007.5619153320531,
- 1006.7765521301687,
- 1005.9593648779094,
- 1004.9959908490524,
- 1004.1196856099759,
- 1003.2045346439292,
- 1002.1778975740071,
- 1001.1727105935546,
- 1000.0537498016909,
- 999.0544972704897,
- 997.9278579355106,
- 996.7743550249127,
- 995.6445446101807,
- 994.5092980587302,
- 993.3718997031617,
- 992.2680468412623,
- 991.2185779971211,
- 990.1530952002286,
- 988.9683345034974,
- 987.9024213457816,
- 986.8604951413375,
- 985.8979818341281,
- 984.9848467687813,
- 984.0701941152671,
- 983.0818138575039,
- 982.096876486329,
- 981.1536841150411,
- 980.2576728803587,
- 979.4462388727934,
- 978.6442275022075,
- 977.9678135403965,
- 977.3293845839081,
- 976.7760764682092,
- 976.2897460870001,
- 975.9581190965814,
- 975.6917710479281,
- 975.5129221498782,
- 975.5081655302492,
- 975.5130354027265,
- 975.6722689074492,
- 975.9210401140449,
- 976.2056218712762,
- 976.5837051800713,
- 977.0627873789886,
- 977.623502230967,
- 978.2369476091183,
- 978.9119572356103,
- 979.5596729256598,
- 980.2557022807981,
- 980.915377471629,
- 981.6300482455988,
- 982.4790595482331,
- 983.3381956555058,
- 984.4253097464252,
- 985.4985390381419,
- 986.5306801964919,
- 987.5886203536868,
- 988.706607171055,
- 989.797481256538,
- 991.0040544518537,
- 992.0182790096013,
- 993.2506738543316,
- 994.4580171690158,
- 995.5682348409902,
- 996.4726267864476,
- 997.3028834174016,
- 998.03372669811,
- 998.7894856054463,
- 999.6505243605711,
- 1000.5913384220446,
- 1001.4097261544958,
- 1002.2659629888523,
- 1002.8654782666613,
- 1003.5021631292858,
- 1004.0834220479475,
- 1004.7430972387782,
- 1005.4383338239783,
- 1006.1205010304835,
- 1006.799565108945,
- 1007.6981358579992,
- 1008.2863258509774,
- 1009.0293777887335,
- 1010.0133411854131,
- 1011.112528029962,
- 1012.2190310085118,
- 1013.0970803414525,
- 1013.906679652875,
- 1015.1027882850069,
- 1016.1918276743475,
- 1017.5666266505416,
- 1018.6024372011769,
- 1019.7986137850177,
- 1021.345466488363,
- 1022.8026682369868,
- 1024.318580262174,
- 1025.9054565221118,
- 1027.2727808103175,
- 1029.267661781574,
- 1031.294751862889,
- 1033.2557702325007,
- 1035.570749054218,
- 1037.994427959742,
- 1040.4318331104814,
- 1042.9966477155683,
- 1045.5698883325695,
- 1047.9275861286687,
- 1050.4835217104485,
- 1053.0684953225345,
- 1055.5774536228355,
- 1058.4030215858693,
- 1060.8616503203816,
- 1060.6736052910492,
- 1063.609028516943,
- 1066.6058347866206,
- 1069.373077532775,
- 1072.3017508889097,
- 1075.4800335227176,
- 1078.7761217693367,
- 1082.0491290854704,
- 1084.9117533804708,
- 1087.8850030577,
- 1091.4678475162375,
- 1094.944143695086,
- 1098.5519037802517,
- 1101.7646379305154,
- 1105.044757525523,
- 1108.5989037122988,
- 1111.9442569479327,
- 1119.2493148201372,
- 1121.626605358994,
- 1124.8028267909626,
- 1127.8019207681757,
- 1131.0626061744133,
- 1134.009286733429,
- 1136.7452263923112,
- 1139.2036512716966,
- 1141.1781920313965,
- 1144.388774377542,
- 1147.609979840859,
- 1150.489841916447,
- 1153.3181603523522,
- 1156.0924610063341,
- 1158.8102697360184,
- 1161.469112399031,
- 1164.0665148529977,
- 1166.600002955544,
- 1169.0671025642957,
- 1171.4653395368787,
- 1173.7922397309185,
- 1176.0453290040412,
- 1178.2221332138722,
- 1180.3201782180374,
- 1182.3369898741626,
- 1184.2700940398734,
- 1186.1170165727958,
- 1187.8752833305552,
- 1189.5424201707774,
- 1191.1159529510885,
- 1192.593407529114,
- 1193.9723097624797,
- 1195.250185508811,
- 1196.4245606257343,
- 1197.4929609708747,
- 1198.4529124018586
- ],
- "yaxis": "y"
- },
- {
- "hovertemplate": "variable=y3
index=%{x}
value=%{y}",
- "legendgroup": "y3",
- "line": {
- "color": "#B6E880",
- "dash": "solid"
- },
- "marker": {
- "symbol": "circle"
- },
- "mode": "lines",
- "name": "y3",
- "showlegend": true,
- "type": "scattergl",
- "x": [
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332
- ],
- "xaxis": "x",
- "y": [
- 841.3242234807167,
- 841.585854906388,
- 841.9580935163941,
- 842.4362073776458,
- 843.0154645570535,
- 843.6911331215282,
- 844.4584811379804,
- 845.3127766733207,
- 846.24928779446,
- 847.2632825683089,
- 848.3500290617781,
- 849.5047953417782,
- 850.7228494752198,
- 851.999459529014,
- 853.3298935700711,
- 854.709419665302,
- 856.1333058816172,
- 857.5968202859275,
- 859.0952309451436,
- 860.6238059261761,
- 862.1778132959358,
- 863.7525211213334,
- 865.3431974692794,
- 866.9451104066846,
- 868.5535280004598,
- 870.1637183174141,
- 871.5872613195204,
- 873.0043489092732,
- 874.4449024891957,
- 875.92751817698,
- 877.4827968922394,
- 878.9857301410105,
- 880.4234070985858,
- 881.8799293301198,
- 883.2893383767571,
- 884.6713628846733,
- 885.9926838658959,
- 887.2142064371883,
- 888.4204851750984,
- 889.6698905976447,
- 890.8654103149656,
- 892.045686198904,
- 893.1965389928514,
- 894.1512605040973,
- 895.031710797422,
- 895.805929919033,
- 896.4628190897955,
- 897.1151554960561,
- 897.6786110669635,
- 898.4673492037277,
- 899.169335658687,
- 899.6949421276896,
- 900.245803981865,
- 900.8115925614479,
- 901.2740945433726,
- 901.8427597453024,
- 902.34191034894,
- 902.7732451470101,
- 903.1120523680116,
- 903.4783573805826,
- 903.724478470528,
- 903.9062945932036,
- 904.0324129650807,
- 904.1973544133579,
- 904.3726698225405,
- 904.5305895942229,
- 904.5199211759121,
- 904.5164556387538,
- 904.374776325519,
- 904.1852137080192,
- 903.9526376587315,
- 903.7678316608608,
- 903.571972184995,
- 903.2627239574023,
- 902.9795012343508,
- 902.702801875362,
- 902.4462162222326,
- 902.1001381683698,
- 901.870846451683,
- 901.6325398082711,
- 901.3189200207332,
- 900.9875648371506,
- 900.5784049467794,
- 900.1552470043572,
- 899.5843393960309,
- 898.9940882012133,
- 898.3568370743477,
- 897.7630297400932,
- 897.07336519503,
- 896.4433395998865,
- 895.6956895964887,
- 894.9210854151938,
- 894.2426102515434,
- 893.633740288464,
- 893.0570794354436,
- 892.4756846133638,
- 891.8701669345944,
- 891.2211375115045,
- 890.6155292304561,
- 890.0226279189883,
- 889.4119459103358,
- 888.7529955377341,
- 888.0150626287216,
- 887.2908559649239,
- 886.5285736935249,
- 885.7885116309642,
- 885.0872273436644,
- 884.2437201294581,
- 883.4477111598327,
- 882.6473985819714,
- 881.81761761298,
- 880.9920269993762,
- 880.177648417755,
- 879.4671906497422,
- 878.6854288884341,
- 877.9459330901146,
- 877.238623751285,
- 876.5651996646693,
- 875.8743119888442,
- 875.2591225168292,
- 874.6685089128971,
- 874.1370359463521,
- 873.6022559966364,
- 873.0339079026819,
- 872.4336904572133,
- 871.8561235814062,
- 871.2434030214843,
- 870.6877845476798,
- 870.1902874356274,
- 869.601644431256,
- 868.9164193978465,
- 868.2521461413743,
- 867.5758454324115,
- 866.9133615709424,
- 866.2372647171065,
- 865.6761874560134,
- 865.1232417494291,
- 864.6369113682202,
- 864.1253935535469,
- 863.6851344310301,
- 863.2090194567387,
- 862.8196788148215,
- 862.4685949850633,
- 862.1545221861325,
- 861.837799270551,
- 861.4516750095258,
- 861.1056422568023,
- 860.8559197262807,
- 860.6202178983798,
- 860.3426578177437,
- 860.158916396647,
- 859.9689234183236,
- 859.775396951133,
- 859.5866044530017,
- 859.3839498062372,
- 859.2340709867851,
- 859.1063670750317,
- 858.9260458899538,
- 858.8121135245549,
- 858.6915671928147,
- 858.6241364469314,
- 858.5838637340728,
- 858.5769779608956,
- 858.6361185982826,
- 858.7233232914805,
- 858.8918661803342,
- 859.0238737003233,
- 859.1397540147133,
- 859.2918752405619,
- 859.5059684250054,
- 859.6898910506598,
- 859.9015606241494,
- 860.1340687217279,
- 860.3480939544627,
- 860.548053183437,
- 860.7971867991475,
- 861.1092210468088,
- 861.4450610431848,
- 861.7183401661546,
- 862.0344741669246,
- 862.2746834581884,
- 862.5674873722068,
- 862.8797934267038,
- 863.1995968197593,
- 863.5151192551485,
- 863.8205848376078,
- 864.1104441775702,
- 864.3793743911651,
- 864.56322906511,
- 864.7423724205656,
- 864.9119345850538,
- 865.1265487325996,
- 865.3178780945331,
- 865.4828648439499,
- 865.6397653399972,
- 865.769326598463,
- 865.7579786630624,
- 865.7223493169845,
- 865.5586309994686,
- 865.3783551155301,
- 865.1225848829088,
- 864.6413735304436,
- 864.0469319802385,
- 863.4250605901732,
- 862.7443656706959,
- 861.9590477699508,
- 861.1092210468089,
- 860.1914879158207,
- 859.2237649775889,
- 858.2037871751472,
- 857.1415207591472,
- 855.9827855669571,
- 854.7118168020928,
- 853.4043126683641,
- 852.0125484154933,
- 850.5687105029697,
- 849.0994360007165,
- 847.6109538153896,
- 846.0566717251951,
- 844.4224104735247,
- 842.6138530883068,
- 840.8041631746057,
- 839.0368524767418,
- 837.2850574190965,
- 835.5543273912363,
- 833.9740877482096,
- 832.3261455524635,
- 830.6751002286737,
- 828.9994110850921,
- 827.5721080884218,
- 825.958979818246,
- 824.5678044801864,
- 823.2376271262261,
- 822.0316881468609,
- 820.8893519671061,
- 819.8676300708006,
- 818.8845726969078,
- 817.901515323015,
- 817.0233980383653,
- 816.2632449205145,
- 815.707762350128,
- 815.4740537723571,
- 815.1398219664273,
- 814.7289632833314,
- 814.4349362385512,
- 814.2447167545315,
- 814.106638881873,
- 813.9022401412445,
- 813.8539944278649,
- 814.0731160387734,
- 814.302339803751,
- 814.5161611813586,
- 814.7643208225735,
- 815.1964257400122,
- 815.703005730499,
- 816.2123264399148,
- 816.9261364922376,
- 817.6601508526986,
- 818.4864662845315,
- 819.075381095739,
- 819.5369317537378,
- 820.053477994876,
- 820.5858116830682,
- 821.1437858161173,
- 821.6033885251255,
- 822.0749960360542,
- 822.7246596750949,
- 823.3261682030343,
- 823.9112550679688,
- 824.6494824343869,
- 825.3412534824289,
- 826.1687920450237,
- 827.0454823437846,
- 828.0109855261893,
- 828.5007134928477,
- 828.7906860856583,
- 829.9379374390298,
- 830.8094181067686,
- 832.2242179889854,
- 834.1012253957213,
- 835.4376996080478,
- 836.8555799677385,
- 838.6803551608344,
- 840.8842782394997,
- 843.4926498900462,
- 845.9542911503237,
- 848.1966069445656,
- 850.87478765081,
- 854.3380597521032,
- 858.2179890823252,
- 862.3845840221874,
- 866.7335839995363,
- 870.7782056217698,
- 875.5235679176309,
- 880.3587623727709,
- 885.6214183785689,
- 890.9272237195727,
- 899.7355999002325,
- 903.9037577294014,
- 908.4719019682284,
- 913.0485854718181,
- 919.4350268408177,
- 925.7256336495782,
- 931.894516296976,
- 937.9485605561887,
- 944.8270855510914,
- 951.5634782213663,
- 957.4096355522223,
- 963.8699676096852,
- 970.37352059353,
- 976.91299803908,
- 983.4811034815473,
- 990.0705404561435,
- 996.6740124980807,
- 1003.2842231425707,
- 1009.8938759248254,
- 1016.4956743800565,
- 1023.0823220434759,
- 1029.6465224502956,
- 1036.1809791357275,
- 1042.6783956349832,
- 1049.1314754832747,
- 1055.5329222158139,
- 1061.8754393678125,
- 1068.1517304744825,
- 1074.3544990710357,
- 1080.476448692684,
- 1086.5102828746394,
- 1092.4487051521135,
- 1098.2844190603182,
- 1104.0101281344655,
- 1109.6185359097672,
- 1115.1023459214352
- ],
- "yaxis": "y"
- },
- {
- "hovertemplate": "variable=x4
index=%{x}
value=%{y}",
- "legendgroup": "x4",
- "line": {
- "color": "#FF97FF",
- "dash": "solid"
- },
- "marker": {
- "symbol": "circle"
- },
- "mode": "lines",
- "name": "x4",
- "showlegend": true,
- "type": "scattergl",
- "x": [
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332
- ],
- "xaxis": "x",
- "y": [
- 998.4600902447743,
- 997.5646331553105,
- 996.5265071743909,
- 995.3500273194268,
- 994.0395086078298,
- 992.5992660570117,
- 991.033614684384,
- 989.3468695073582,
- 987.5433455433458,
- 985.6273578097586,
- 983.603221324008,
- 981.4752511035056,
- 979.2477621656631,
- 976.9250695278919,
- 974.5114882076037,
- 972.01133322221,
- 969.4289195891225,
- 966.7685623257527,
- 964.0345764495122,
- 961.2312769778125,
- 958.3629789280652,
- 955.4339973176819,
- 952.4486471640743,
- 949.4112434846537,
- 946.326101296832,
- 943.1975356179107,
- 940.32084531915,
- 937.4711771499958,
- 934.4325126275836,
- 931.2565403518811,
- 927.9736347368051,
- 924.6405807604982,
- 921.2553398716902,
- 917.7628258849638,
- 914.3022039003214,
- 910.8361684295298,
- 907.3959999092917,
- 903.9601576478593,
- 900.3892273889638,
- 896.9029649594642,
- 893.4056943531087,
- 889.7899612674221,
- 886.1567419419566,
- 882.9306892567317,
- 879.7331083375719,
- 876.6015085278373,
- 873.5787220547577,
- 870.6043398490458,
- 867.7793381502534,
- 864.735826405933,
- 861.6763686605713,
- 859.1139097147292,
- 856.4456952591358,
- 853.708464517783,
- 851.0461618608715,
- 848.4899544722562,
- 845.9202699946916,
- 843.5058778227288,
- 841.1853496114445,
- 838.950304650064,
- 836.7712745474572,
- 834.6565267615505,
- 832.6671498787223,
- 830.7079435546835,
- 828.8126797888001,
- 827.0795034994165,
- 825.1911934584193,
- 823.4039049581136,
- 821.7988855918768,
- 820.2633581733623,
- 818.8172778544426,
- 817.3680491063398,
- 815.9402704477064,
- 814.6226868104783,
- 813.2620670908925,
- 812.0907608325401,
- 810.8369838500493,
- 809.6826655189433,
- 808.4081632652118,
- 807.158327481842,
- 805.9330449159855,
- 804.7319758090977,
- 803.5163650364868,
- 802.2736415319908,
- 801.028970078504,
- 799.7864277785653,
- 798.5174522638312,
- 797.1548392941154,
- 795.8076287117692,
- 794.4458991142701,
- 793.0719155585836,
- 791.68771659598,
- 790.3599402024039,
- 789.0964008243886,
- 787.7546263787615,
- 786.4807130398412,
- 785.2171963123956,
- 783.9978481957907,
- 782.7592017938338,
- 781.5403519897615,
- 780.3211171260047,
- 779.1607737433687,
- 778.0329112776277,
- 776.8784796936736,
- 775.8530884050829,
- 774.8441867312058,
- 773.9367822599837,
- 773.0713719449142,
- 772.2148633037219,
- 771.3869849825824,
- 770.5481890868657,
- 769.7823506760296,
- 769.0878842101982,
- 768.3719676548968,
- 767.6061518946306,
- 766.9175972274807,
- 766.1650773516059,
- 765.436884187548,
- 764.7944460802296,
- 764.2345919498982,
- 763.6362771522813,
- 763.0815647012632,
- 762.4869192959313,
- 761.9776891887941,
- 761.5173843121266,
- 761.0486534235449,
- 760.5993793743025,
- 760.1381684748485,
- 759.6273981289743,
- 759.2059163287072,
- 758.8150127974833,
- 758.4226143286619,
- 758.0288341750911,
- 757.6011461187366,
- 757.1389838953567,
- 756.6737411945029,
- 756.2632222699518,
- 755.8739948808831,
- 755.5316768215839,
- 755.170649391744,
- 754.7898933157288,
- 754.4205757773929,
- 754.0880880653269,
- 753.7589979387102,
- 753.399873156722,
- 753.1009309383252,
- 752.7166413734426,
- 752.3902693151854,
- 752.0559695575466,
- 751.6536727897831,
- 751.3381956555331,
- 751.0230582798281,
- 750.7341049626523,
- 750.4117194046553,
- 750.1732089061165,
- 749.8737230740477,
- 749.6041586445024,
- 749.2993499285633,
- 749.0386418717557,
- 748.7570952908592,
- 748.4488210377617,
- 748.1345670342735,
- 747.7762576727933,
- 747.3624544156414,
- 746.8608575504802,
- 746.4218668598644,
- 745.9548121134376,
- 745.4931255520206,
- 744.9850053227968,
- 744.3786495729497,
- 743.7549887878812,
- 743.0562187138139,
- 742.3424086614912,
- 741.6738544473528,
- 740.9135201249447,
- 740.1161521211396,
- 739.2623615483068,
- 738.3649459783053,
- 737.5163876870643,
- 736.6058347866589,
- 735.6667195179101,
- 734.6731975808334,
- 733.7170717342685,
- 732.7989082424568,
- 731.9194998753366,
- 731.0590047338837,
- 730.229993884261,
- 729.3535753923361,
- 728.494914947026,
- 727.6274887312566,
- 726.7567328817472,
- 725.952456454195,
- 725.193005504004,
- 724.4240866156939,
- 723.6821898569904,
- 723.0033522842257,
- 722.3909714828485,
- 721.9072685677203,
- 721.4375410540733,
- 721.0377811501118,
- 720.7162563137623,
- 720.4810074972545,
- 720.2483861468274,
- 720.1376248611813,
- 720.1174432036125,
- 720.156334231722,
- 720.3138009920109,
- 720.5636594259504,
- 720.8737230740512,
- 721.2912636751973,
- 721.7188158281339,
- 722.2411606151053,
- 722.8134272576111,
- 723.4229314366412,
- 724.0567623274881,
- 724.7133343902756,
- 725.3051484743995,
- 726.0159460009572,
- 726.6549865228262,
- 727.3642891117862,
- 728.0292645359182,
- 728.6471947268625,
- 729.3538698497416,
- 729.9905094112265,
- 730.6016670818418,
- 731.211035357454,
- 731.8043443791757,
- 732.405739654267,
- 733.0398197013801,
- 733.5222994857465,
- 734.0549276313443,
- 734.5393327141319,
- 734.947971641401,
- 735.2533013204425,
- 735.5016874673539,
- 735.5949851637911,
- 735.7032095856352,
- 735.7020317560127,
- 735.6558245939027,
- 735.4314027496932,
- 735.2909239166506,
- 735.0521416112758,
- 734.8338354208751,
- 734.46044078,
- 734.0361050079553,
- 733.6536501392153,
- 733.3037894402189,
- 732.8658180252379,
- 732.422818183792,
- 731.967088722196,
- 731.4116967540881,
- 730.852635393695,
- 730.2360642369304,
- 729.6588824208078,
- 729.0626061744603,
- 728.4158418083365,
- 727.7788851388763,
- 727.041337289548,
- 726.2488618087898,
- 725.4147092798537,
- 724.5672155653868,
- 723.7615801036552,
- 722.9679947449836,
- 722.0390042808734,
- 721.180774196387,
- 720.2935740333029,
- 719.493238804872,
- 718.6987247728442,
- 717.7588393847268,
- 716.8493737116652,
- 715.8573240616167,
- 714.9380733424612,
- 714.0383474143541,
- 713.0671362883945,
- 712.2435389249208,
- 711.561349067846,
- 710.6108405625572,
- 709.5297062220287,
- 708.4644952319726,
- 707.1015878048507,
- 706.1595732631852,
- 704.8580035787079,
- 703.5328093500731,
- 702.266846361104,
- 701.0526399238123,
- 699.7599719132121,
- 698.5541008855557,
- 697.1352465513694,
- 695.8143106298311,
- 694.2984212552135,
- 692.981992797038,
- 691.5453124645278,
- 690.1945683933146,
- 688.5705905002707,
- 687.0811796415878,
- 685.6526761647254,
- 684.0363088630879,
- 681.4472581484631,
- 680.0494461934924,
- 678.6275340324016,
- 676.8043443791822,
- 675.0615868988316,
- 673.2061654849834,
- 671.1238533148326,
- 668.6929262270166,
- 665.990577362943,
- 663.0840336133681,
- 659.9189109605336,
- 656.932528134621,
- 653.7169648604481,
- 650.2558668363329,
- 646.5328797605156,
- 642.531649331237,
- 638.2358212467375,
- 633.629041205258,
- 628.6949549050388,
- 623.4172080443207,
- 617.779446321344,
- 611.7653154343496,
- 605.3584610815781,
- 598.5425289612698,
- 591.3011647716656,
- 583.618014211006,
- 575.4767229775314,
- 566.8609367694826,
- 557.7543012851002,
- 548.1404622226248,
- 538.0030652802968,
- 527.3257561563569,
- 516.0921805490458,
- 504.28598415660406,
- 491.89081267727204,
- 478.89031180929067
- ],
- "yaxis": "y"
- },
- {
- "hovertemplate": "variable=y4
index=%{x}
value=%{y}",
- "legendgroup": "y4",
- "line": {
- "color": "#FECB52",
- "dash": "solid"
- },
- "marker": {
- "symbol": "circle"
- },
- "mode": "lines",
- "name": "y4",
- "showlegend": true,
- "type": "scattergl",
- "x": [
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 126,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332
- ],
- "xaxis": "x",
- "y": [
- 850.5801499441902,
- 851.5544425155971,
- 852.5505004646595,
- 853.5666948411362,
- 854.6013966947852,
- 855.652977075365,
- 856.7198070326342,
- 857.8002576163509,
- 858.8926998762737,
- 859.9955048621609,
- 861.107043623771,
- 862.2256872108624,
- 863.3498066731934,
- 864.4777730605223,
- 865.6079574226077,
- 866.7387308092079,
- 867.8684642700814,
- 868.9955288549864,
- 870.1182956136815,
- 871.235135595925,
- 872.3444198514753,
- 873.4445194300908,
- 874.5338053815299,
- 875.610648755551,
- 876.6734206019125,
- 877.7204919702705,
- 878.610138394878,
- 879.5626174997274,
- 880.5204647895868,
- 881.4266687806171,
- 882.3805069196462,
- 883.2608213095529,
- 884.1442388275035,
- 885.0279281522899,
- 885.9361480440199,
- 886.7699608144111,
- 887.5924936011104,
- 888.3700876576011,
- 889.1225848829059,
- 889.9675190830012,
- 890.7551699924213,
- 891.5189698519878,
- 892.2395297740698,
- 892.6916577950893,
- 893.0830143377063,
- 893.3819792066729,
- 893.5837957823596,
- 893.742983985943,
- 893.7433690456272,
- 894.0231035809508,
- 894.2498584338352,
- 894.125234999556,
- 894.1779655257287,
- 894.2002763368456,
- 894.1007044326122,
- 894.0885863778431,
- 893.9821287004324,
- 893.8357380687081,
- 893.624362952624,
- 893.4355025027837,
- 893.1213617521439,
- 892.7434822984758,
- 892.3045822101386,
- 891.9199302361412,
- 891.5021404787291,
- 891.0823801217562,
- 890.5419828307643,
- 890.0306688712183,
- 889.377177285905,
- 888.6668554213102,
- 887.9320029897715,
- 887.2968357153147,
- 886.6125393552613,
- 885.8104373823969,
- 884.9779156944765,
- 884.1286778861456,
- 883.2711046681794,
- 882.4082538674818,
- 881.5112233571647,
- 880.6312487258027,
- 879.7136967993717,
- 878.828036875025,
- 877.9414029761823,
- 877.0213821376584,
- 876.014926725305,
- 874.9011755644634,
- 873.771138644035,
- 872.6894153886952,
- 871.5117216696983,
- 870.3295204873386,
- 869.0515753470186,
- 867.763346848072,
- 866.5238850256073,
- 865.307232326792,
- 864.087884210187,
- 862.8614238147082,
- 861.6027996103096,
- 860.3726471719759,
- 859.0815420506824,
- 857.8551722574822,
- 856.6045663547437,
- 855.3264400098662,
- 853.9966477155904,
- 852.682280459254,
- 851.4124668734426,
- 850.1311014971034,
- 848.8411289042929,
- 847.4806677386947,
- 846.1703096331886,
- 844.853949126722,
- 843.5287548980873,
- 842.1976715213405,
- 840.9018324309875,
- 839.6710457767034,
- 838.3792837888894,
- 837.056354617221,
- 835.7851140455207,
- 834.5041337288659,
- 833.2168112527058,
- 832.0122313075202,
- 830.6964597158649,
- 829.4822306280034,
- 828.1580556750037,
- 826.8658406757966,
- 825.5439307797628,
- 824.2543205960668,
- 822.9469070646167,
- 821.630410654732,
- 820.3075494347727,
- 818.9808149674009,
- 817.5343722393665,
- 816.1789168496636,
- 814.824571337874,
- 813.4611429476502,
- 812.0839883122114,
- 810.7322023147935,
- 809.4772928038196,
- 808.2615687783605,
- 807.05397630741,
- 805.861423814715,
- 804.749643253434,
- 803.6607171169417,
- 802.5480531834439,
- 801.4709279937455,
- 800.450202722505,
- 799.4001902646918,
- 798.3792611383245,
- 797.4189222858024,
- 796.459217649231,
- 795.5844752994609,
- 794.7611497428232,
- 793.9499195903851,
- 793.1494258079665,
- 792.4229087860635,
- 791.662461210807,
- 790.8718204261916,
- 790.1397313641515,
- 789.4368388864059,
- 788.7926113840841,
- 788.1241930733638,
- 787.5194228633932,
- 786.9156266279181,
- 786.3735531947711,
- 785.8949013566773,
- 785.4374051506478,
- 784.990985073183,
- 784.5626628008778,
- 784.0886316789952,
- 783.7024168156914,
- 783.2809350154241,
- 782.8453872113971,
- 782.4873496567525,
- 782.0626514755934,
- 781.6568665201017,
- 781.2374685722434,
- 780.824979048132,
- 780.4931935037255,
- 780.1452128020111,
- 779.8404267366413,
- 779.5414392171052,
- 779.1902194839291,
- 778.884799202609,
- 778.5940111892907,
- 778.3020000452102,
- 777.939862737457,
- 777.5889827628257,
- 777.2188724545515,
- 776.8259077214885,
- 776.3685021177376,
- 775.8965321976943,
- 775.4336904572247,
- 774.9128859089902,
- 774.3529411763803,
- 773.8170966498906,
- 773.1865727422143,
- 772.5614623206872,
- 771.8771659606339,
- 771.134363179144,
- 770.3284106094371,
- 769.4551178961253,
- 768.4783347300288,
- 767.3355002377416,
- 766.1085641802997,
- 764.8475163649473,
- 763.4318784116529,
- 761.9889238713464,
- 760.4696822124189,
- 758.8522729845771,
- 757.1949534529911,
- 755.4385603297042,
- 753.7337199029674,
- 751.9047543544842,
- 750.0179619016544,
- 748.0544066682405,
- 746.0220163536242,
- 743.9440304422789,
- 741.8707784999928,
- 739.6994495910709,
- 737.4511087452989,
- 735.1028562367485,
- 732.5365693446337,
- 729.9604294547156,
- 727.547962581174,
- 725.1788035968258,
- 722.809418106781,
- 720.5085958911026,
- 718.1684296359216,
- 715.7662461210064,
- 713.3701556093304,
- 711.1013159980143,
- 708.7805386304638,
- 706.5729461595135,
- 704.4878253187246,
- 702.4643140274159,
- 700.441550204906,
- 698.4612335499422,
- 696.5856984302342,
- 694.7594056489709,
- 692.9381412941726,
- 691.136061971878,
- 689.5531042604916,
- 688.1308070397167,
- 686.6040680422311,
- 684.9981426532078,
- 683.5025255384375,
- 682.0855965026726,
- 680.757231194285,
- 679.260934562425,
- 678.0409975310088,
- 676.9179143354665,
- 675.767922263166,
- 674.622868015052,
- 673.3867358263274,
- 672.3523975627203,
- 671.2324401457913,
- 670.1481347255101,
- 669.2089741556221,
- 668.2565177013422,
- 667.3796235474542,
- 666.3987632788187,
- 665.3011166730067,
- 663.9925932636431,
- 662.7462230174315,
- 661.5337833245734,
- 660.3323744591405,
- 659.1508301433013,
- 658.1664363857983,
- 656.8927495525746,
- 655.8409250491884,
- 654.8297356677756,
- 653.4877347164518,
- 652.6534915852372,
- 651.8935876236526,
- 651.0576230491438,
- 649.9365784048709,
- 648.8248657952989,
- 647.8565539422561,
- 647.4404856281379,
- 647.1404335318277,
- 646.9999093976458,
- 646.3138915942982,
- 645.9862284535702,
- 645.8442999840693,
- 645.8857278759806,
- 646.0213141859764,
- 646.455299100697,
- 646.9690366711968,
- 647.5571813630356,
- 648.5641803890611,
- 649.9424449024135,
- 651.443067793079,
- 653.0399782553769,
- 654.5372262111626,
- 656.6003533488101,
- 658.830279281447,
- 661.3580149039975,
- 663.8892160637066,
- 667.286008743042,
- 670.0979637137091,
- 673.0780538629762,
- 676.0354481414419,
- 679.656572062708,
- 683.411606151815,
- 687.2642641961644,
- 690.9351514189775,
- 694.5756868784439,
- 698.5863099956148,
- 702.4537362113838,
- 706.5970526381816,
- 710.8014229139487,
- 715.0582430682321,
- 719.3589091304963,
- 723.6948171302064,
- 728.0573630968272,
- 732.4379430598235,
- 736.8279530486602,
- 741.2187890928021,
- 745.601847221714,
- 749.9685234648609,
- 754.3102138517074,
- 758.6183144117186,
- 762.8842211743591,
- 767.099330169094,
- 771.2550374253879,
- 775.3427389727058,
- 779.3538308405124,
- 783.2797090582726,
- 787.1117696554513,
- 790.8414086615135,
- 794.4600221059236,
- 797.9590060181469,
- 801.3297564276479,
- 804.5636693638916
- ],
- "yaxis": "y"
- }
- ],
- "layout": {
- "legend": {
- "title": {
- "text": "variable"
- },
- "tracegroupgap": 0
- },
- "margin": {
- "t": 60
- },
- "template": {
- "data": {
- "bar": [
- {
- "error_x": {
- "color": "#2a3f5f"
- },
- "error_y": {
- "color": "#2a3f5f"
- },
- "marker": {
- "line": {
- "color": "#E5ECF6",
- "width": 0.5
- },
- "pattern": {
- "fillmode": "overlay",
- "size": 10,
- "solidity": 0.2
- }
- },
- "type": "bar"
- }
- ],
- "barpolar": [
- {
- "marker": {
- "line": {
- "color": "#E5ECF6",
- "width": 0.5
- },
- "pattern": {
- "fillmode": "overlay",
- "size": 10,
- "solidity": 0.2
- }
- },
- "type": "barpolar"
- }
- ],
- "carpet": [
- {
- "aaxis": {
- "endlinecolor": "#2a3f5f",
- "gridcolor": "white",
- "linecolor": "white",
- "minorgridcolor": "white",
- "startlinecolor": "#2a3f5f"
- },
- "baxis": {
- "endlinecolor": "#2a3f5f",
- "gridcolor": "white",
- "linecolor": "white",
- "minorgridcolor": "white",
- "startlinecolor": "#2a3f5f"
- },
- "type": "carpet"
- }
- ],
- "choropleth": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "type": "choropleth"
- }
- ],
- "contour": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "contour"
- }
- ],
- "contourcarpet": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "type": "contourcarpet"
- }
- ],
- "heatmap": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "heatmap"
- }
- ],
- "heatmapgl": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "heatmapgl"
- }
- ],
- "histogram": [
- {
- "marker": {
- "pattern": {
- "fillmode": "overlay",
- "size": 10,
- "solidity": 0.2
- }
- },
- "type": "histogram"
- }
- ],
- "histogram2d": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "histogram2d"
- }
- ],
- "histogram2dcontour": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "histogram2dcontour"
- }
- ],
- "mesh3d": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "type": "mesh3d"
- }
- ],
- "parcoords": [
- {
- "line": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "parcoords"
- }
- ],
- "pie": [
- {
- "automargin": true,
- "type": "pie"
- }
- ],
- "scatter": [
- {
- "fillpattern": {
- "fillmode": "overlay",
- "size": 10,
- "solidity": 0.2
- },
- "type": "scatter"
- }
- ],
- "scatter3d": [
- {
- "line": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scatter3d"
- }
- ],
- "scattercarpet": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scattercarpet"
- }
- ],
- "scattergeo": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scattergeo"
- }
- ],
- "scattergl": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scattergl"
- }
- ],
- "scattermapbox": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scattermapbox"
- }
- ],
- "scatterpolar": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scatterpolar"
- }
- ],
- "scatterpolargl": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scatterpolargl"
- }
- ],
- "scatterternary": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scatterternary"
- }
- ],
- "surface": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "surface"
- }
- ],
- "table": [
- {
- "cells": {
- "fill": {
- "color": "#EBF0F8"
- },
- "line": {
- "color": "white"
- }
- },
- "header": {
- "fill": {
- "color": "#C8D4E3"
- },
- "line": {
- "color": "white"
- }
- },
- "type": "table"
- }
- ]
- },
- "layout": {
- "annotationdefaults": {
- "arrowcolor": "#2a3f5f",
- "arrowhead": 0,
- "arrowwidth": 1
- },
- "autotypenumbers": "strict",
- "coloraxis": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "colorscale": {
- "diverging": [
- [
- 0,
- "#8e0152"
- ],
- [
- 0.1,
- "#c51b7d"
- ],
- [
- 0.2,
- "#de77ae"
- ],
- [
- 0.3,
- "#f1b6da"
- ],
- [
- 0.4,
- "#fde0ef"
- ],
- [
- 0.5,
- "#f7f7f7"
- ],
- [
- 0.6,
- "#e6f5d0"
- ],
- [
- 0.7,
- "#b8e186"
- ],
- [
- 0.8,
- "#7fbc41"
- ],
- [
- 0.9,
- "#4d9221"
- ],
- [
- 1,
- "#276419"
- ]
- ],
- "sequential": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "sequentialminus": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ]
- },
- "colorway": [
- "#636efa",
- "#EF553B",
- "#00cc96",
- "#ab63fa",
- "#FFA15A",
- "#19d3f3",
- "#FF6692",
- "#B6E880",
- "#FF97FF",
- "#FECB52"
- ],
- "font": {
- "color": "#2a3f5f"
- },
- "geo": {
- "bgcolor": "white",
- "lakecolor": "white",
- "landcolor": "#E5ECF6",
- "showlakes": true,
- "showland": true,
- "subunitcolor": "white"
- },
- "hoverlabel": {
- "align": "left"
- },
- "hovermode": "closest",
- "mapbox": {
- "style": "light"
- },
- "paper_bgcolor": "white",
- "plot_bgcolor": "#E5ECF6",
- "polar": {
- "angularaxis": {
- "gridcolor": "white",
- "linecolor": "white",
- "ticks": ""
- },
- "bgcolor": "#E5ECF6",
- "radialaxis": {
- "gridcolor": "white",
- "linecolor": "white",
- "ticks": ""
- }
- },
- "scene": {
- "xaxis": {
- "backgroundcolor": "#E5ECF6",
- "gridcolor": "white",
- "gridwidth": 2,
- "linecolor": "white",
- "showbackground": true,
- "ticks": "",
- "zerolinecolor": "white"
- },
- "yaxis": {
- "backgroundcolor": "#E5ECF6",
- "gridcolor": "white",
- "gridwidth": 2,
- "linecolor": "white",
- "showbackground": true,
- "ticks": "",
- "zerolinecolor": "white"
- },
- "zaxis": {
- "backgroundcolor": "#E5ECF6",
- "gridcolor": "white",
- "gridwidth": 2,
- "linecolor": "white",
- "showbackground": true,
- "ticks": "",
- "zerolinecolor": "white"
- }
- },
- "shapedefaults": {
- "line": {
- "color": "#2a3f5f"
- }
- },
- "ternary": {
- "aaxis": {
- "gridcolor": "white",
- "linecolor": "white",
- "ticks": ""
- },
- "baxis": {
- "gridcolor": "white",
- "linecolor": "white",
- "ticks": ""
- },
- "bgcolor": "#E5ECF6",
- "caxis": {
- "gridcolor": "white",
- "linecolor": "white",
- "ticks": ""
- }
- },
- "title": {
- "x": 0.05
- },
- "xaxis": {
- "automargin": true,
- "gridcolor": "white",
- "linecolor": "white",
- "ticks": "",
- "title": {
- "standoff": 15
- },
- "zerolinecolor": "white",
- "zerolinewidth": 2
- },
- "yaxis": {
- "automargin": true,
- "gridcolor": "white",
- "linecolor": "white",
- "ticks": "",
- "title": {
- "standoff": 15
- },
- "zerolinecolor": "white",
- "zerolinewidth": 2
- }
- }
- },
- "xaxis": {
- "anchor": "y",
- "domain": [
- 0,
- 1
- ],
- "title": {
- "text": "index"
- }
- },
- "yaxis": {
- "anchor": "x",
- "domain": [
- 0,
- 1
- ],
- "title": {
- "text": "value"
- }
- }
- }
- },
- "text/html": [
- "
"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "from scipy.signal import savgol_filter\n",
- "def filt(df, window_length=101, polyorder=2):\n",
- " df = df.copy()\n",
- " for column in df.columns:\n",
- " df[column] = savgol_filter(df[column].values, window_length, polyorder)\n",
- " return df\n",
- "\n",
- "df = pd.DataFrame(np.array(imgpts_list).reshape(-1, 10),\n",
- " columns=['x0', 'y0', 'x1', 'y1', 'x2', 'y2', 'x3', 'y3', 'x4', 'y4'])\n",
- "df[df==0] = None\n",
- "df_filt = filt(df.dropna(), 51, 3)\n",
- "imgpts_filt_list = df_filt.astype(int).values.reshape(-1, 5, 2)\n",
- "\n",
- "px.line(df-df_filt)\n",
- "\n",
- "px.line(df)\n",
- "\n",
- "px.line(df_filt)"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.9.7"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
diff --git a/utils/utils.py b/utils/utils.py
deleted file mode 100644
index d3952c7..0000000
--- a/utils/utils.py
+++ /dev/null
@@ -1,111 +0,0 @@
-import cv2 as cv
-import pandas as pd
-import math
-import numpy as np
-from tqdm.notebook import tqdm
-
-
-def encode(ann):
- keypoints_2d = pd.DataFrame(np.array(ann['keypoints']).reshape(-1, 3),
- columns=['x','y','conf'], index=range(1, 25))
- bbox = np.array(ann['bbox'])
- score = ann['score']
- return keypoints_2d, bbox, score
-
-
-def fit(imageSize, keypoints_2d, keypoints_3d, focus=1):
-
- objectPoints = keypoints_3d.loc[keypoints_2d.index].values
- imagePoints = keypoints_2d[['x', 'y']].values.astype('float')
-
- n = len(imagePoints)
- fx = fy = focus*np.hypot(*imageSize)
- cx = imageSize[0]/2
- cy = imageSize[1]/2
- distCoeffs = np.zeros(4, np.float32)
- if n < 6:
- raise ValueError('Number of keypoints must be > 5')
-
- cameraMatrix = np.float32([[fx,0, cx],
- [0, fy,cy],
- [0, 0, 1]])
-
- _, rvecs, tvecs = cv.solvePnP(objectPoints, imagePoints, cameraMatrix, distCoeffs, flags=cv.SOLVEPNP_ITERATIVE )
- return rvecs, tvecs, cameraMatrix, distCoeffs
-
-
-def rvec2euler(rvec):
- rvec_matrix = cv.Rodrigues(rvec)[0]
- proj_matrix = np.hstack((rvec_matrix, np.zeros_like(rvec)))
- euler_angles = cv.decomposeProjectionMatrix(proj_matrix)[6]
- return euler_angles.flatten()
-
-# Checks if a matrix is a valid rotation matrix.
-def isRotationMatrix(R) :
- Rt = np.transpose(R)
- shouldBeIdentity = np.dot(Rt, R)
- I = np.identity(3, dtype = R.dtype)
- n = np.linalg.norm(I - shouldBeIdentity)
- return n < 1e-6
-
-# Calculates rotation matrix to euler angles
-# The result is the same as MATLAB except the order
-# of the euler angles ( x and z are swapped ).
-def rotationMatrixToEulerAngles(R) :
-
- assert(isRotationMatrix(R))
-
- sy = math.sqrt(R[0,0] * R[0,0] + R[1,0] * R[1,0])
-
- singular = sy < 1e-6
-
- if not singular :
- x = math.atan2(R[2,1] , R[2,2])
- y = math.atan2(-R[2,0], sy)
- z = math.atan2(R[1,0], R[0,0])
- else :
- x = math.atan2(-R[1,2], R[1,1])
- y = math.atan2(-R[2,0], sy)
- z = 0
-
- return np.array([x, y, z])
-
-def rvec2euler_Fridman(rvec):
- R = cv.Rodrigues(rvec)[0]
- euler_angles = np.rad2deg(rotationMatrixToEulerAngles(R))
- return euler_angles
-
-
-def pose_estimation(img_json, keypoints_3d, ImageSize=(1920, 1080), treshhold=0.01, focus=1, fridman=False):
- poses = []
- for i, ann in enumerate(img_json):
- keypoints_2d, bbox, score = encode(ann)
-
- conf_keypoints_2d = keypoints_2d[keypoints_2d['conf']>treshhold]
- if len(conf_keypoints_2d)>5:
- rvec, tvec, camMatrx, dist = fit(ImageSize, conf_keypoints_2d, keypoints_3d, focus=focus)
- if not fridman:
- euler_angles = rvec2euler(rvec)
- else:
- euler_angles = rvec2euler_Fridman(rvec) #alternative
-
- pose = {'Euler angles':[-euler_angles[2], -euler_angles[0]+90, -euler_angles[1]],
- 'xyz coords':[tvec[2][0],tvec[0][0],-tvec[1][0]]}
- poses.append(pose)
- return poses
-
-
-def image_pose_estimation(img_json, img_name, *args, **kvargs):
- poses = pose_estimation(img_json, *args, **kvargs)
- UE4_json = {'data':{'filename':img_name, 'poses':poses}}
- return UE4_json
-
-
-def video_pose_estimation(video_json, video_name, *args, **kvargs):
- video_poses = []
- for frame in tqdm(video_json):
- num = frame['frame']
- frame_poses = pose_estimation(frame['predictions'], *args, **kvargs)
- video_poses.append({'frame':num, 'poses':frame_poses})
- UE4_json_video = {'filename':video_name, 'data':video_poses}
- return UE4_json_video
\ No newline at end of file