In [1]:
from pylab import *
import numpy as np
from trackeddy.datastruct import *
%matplotlib inline
import gsw

In [2]:
eddydict=np.load('../data_bk/aviso_1993-1-3_pos.npy')

In [3]:
eddyd=eddydict.item()

In [4]:
new_dict_0={}
new_dict_1={}
new_dict_2={}
for key,item in eddyd.items():
    if int(item['time'])==0:
        new_dict_0[key]=item
    elif int(item['time'])==1:
        new_dict_1[key]=item
    elif int(item['time'])==2:
        new_dict_2[key]=item
    else:
        break

In [5]:
new_dict_0.keys(),new_dict_1.keys()


Out[5]:
(dict_keys(['eddyn_0', 'eddyn_1', 'eddyn_2', 'eddyn_3', 'eddyn_4', 'eddyn_5', 'eddyn_6', 'eddyn_7', 'eddyn_8', 'eddyn_9', 'eddyn_10', 'eddyn_11', 'eddyn_12', 'eddyn_13', 'eddyn_14', 'eddyn_15', 'eddyn_16', 'eddyn_17', 'eddyn_18', 'eddyn_19', 'eddyn_20', 'eddyn_21', 'eddyn_22', 'eddyn_23', 'eddyn_24', 'eddyn_25', 'eddyn_26', 'eddyn_27', 'eddyn_28', 'eddyn_29', 'eddyn_30', 'eddyn_31', 'eddyn_32', 'eddyn_33', 'eddyn_34', 'eddyn_35', 'eddyn_36', 'eddyn_37', 'eddyn_38', 'eddyn_39', 'eddyn_40', 'eddyn_41', 'eddyn_42', 'eddyn_43', 'eddyn_44', 'eddyn_45', 'eddyn_46', 'eddyn_47', 'eddyn_48', 'eddyn_49', 'eddyn_50', 'eddyn_51', 'eddyn_52', 'eddyn_53', 'eddyn_54', 'eddyn_55', 'eddyn_56', 'eddyn_57', 'eddyn_58', 'eddyn_59', 'eddyn_60', 'eddyn_61', 'eddyn_62', 'eddyn_63', 'eddyn_64', 'eddyn_65', 'eddyn_66', 'eddyn_67', 'eddyn_68', 'eddyn_69', 'eddyn_70', 'eddyn_71', 'eddyn_72', 'eddyn_73', 'eddyn_74', 'eddyn_75', 'eddyn_76', 'eddyn_77', 'eddyn_78', 'eddyn_79', 'eddyn_80', 'eddyn_81', 'eddyn_82', 'eddyn_83', 'eddyn_84', 'eddyn_85', 'eddyn_86', 'eddyn_87', 'eddyn_88', 'eddyn_89', 'eddyn_90', 'eddyn_91', 'eddyn_92', 'eddyn_93', 'eddyn_94', 'eddyn_95', 'eddyn_96', 'eddyn_97', 'eddyn_98', 'eddyn_99', 'eddyn_100', 'eddyn_101', 'eddyn_102', 'eddyn_103', 'eddyn_104', 'eddyn_105', 'eddyn_106', 'eddyn_107', 'eddyn_108', 'eddyn_109', 'eddyn_110', 'eddyn_111', 'eddyn_112', 'eddyn_113', 'eddyn_114', 'eddyn_115', 'eddyn_116', 'eddyn_117', 'eddyn_118', 'eddyn_119', 'eddyn_120', 'eddyn_121', 'eddyn_122', 'eddyn_123', 'eddyn_124', 'eddyn_125', 'eddyn_126', 'eddyn_127', 'eddyn_128', 'eddyn_129', 'eddyn_130', 'eddyn_131', 'eddyn_132', 'eddyn_133', 'eddyn_134', 'eddyn_135', 'eddyn_136', 'eddyn_137', 'eddyn_138', 'eddyn_139', 'eddyn_140', 'eddyn_141', 'eddyn_142', 'eddyn_143', 'eddyn_144', 'eddyn_145', 'eddyn_146', 'eddyn_147', 'eddyn_148', 'eddyn_149', 'eddyn_150', 'eddyn_151', 'eddyn_152', 'eddyn_153', 'eddyn_154', 'eddyn_155', 'eddyn_156', 'eddyn_157', 'eddyn_158', 'eddyn_159', 'eddyn_160', 'eddyn_161', 'eddyn_162', 'eddyn_163', 'eddyn_164', 'eddyn_165', 'eddyn_166', 'eddyn_167', 'eddyn_168', 'eddyn_169', 'eddyn_170', 'eddyn_171', 'eddyn_172', 'eddyn_173', 'eddyn_174', 'eddyn_175', 'eddyn_176', 'eddyn_177', 'eddyn_178', 'eddyn_179', 'eddyn_180', 'eddyn_181', 'eddyn_182', 'eddyn_183', 'eddyn_184', 'eddyn_185', 'eddyn_186', 'eddyn_187', 'eddyn_188', 'eddyn_189', 'eddyn_190', 'eddyn_191', 'eddyn_192', 'eddyn_193', 'eddyn_194', 'eddyn_195', 'eddyn_196', 'eddyn_197', 'eddyn_198', 'eddyn_199', 'eddyn_200', 'eddyn_201', 'eddyn_202', 'eddyn_203', 'eddyn_204', 'eddyn_205', 'eddyn_206', 'eddyn_207', 'eddyn_208', 'eddyn_209', 'eddyn_210', 'eddyn_211', 'eddyn_212', 'eddyn_213', 'eddyn_214', 'eddyn_215', 'eddyn_216', 'eddyn_217', 'eddyn_218', 'eddyn_219', 'eddyn_220', 'eddyn_221', 'eddyn_222', 'eddyn_223', 'eddyn_224', 'eddyn_225', 'eddyn_226', 'eddyn_227', 'eddyn_228', 'eddyn_229', 'eddyn_230', 'eddyn_231', 'eddyn_232', 'eddyn_233', 'eddyn_234', 'eddyn_235', 'eddyn_236', 'eddyn_237', 'eddyn_238', 'eddyn_239', 'eddyn_240', 'eddyn_241', 'eddyn_242', 'eddyn_243', 'eddyn_244', 'eddyn_245', 'eddyn_246', 'eddyn_247', 'eddyn_248', 'eddyn_249', 'eddyn_250', 'eddyn_251', 'eddyn_252', 'eddyn_253', 'eddyn_254', 'eddyn_255', 'eddyn_256', 'eddyn_257', 'eddyn_258', 'eddyn_259', 'eddyn_260', 'eddyn_261', 'eddyn_262', 'eddyn_263', 'eddyn_264', 'eddyn_265', 'eddyn_266', 'eddyn_267', 'eddyn_268', 'eddyn_269', 'eddyn_270', 'eddyn_271', 'eddyn_272', 'eddyn_273', 'eddyn_274', 'eddyn_275', 'eddyn_276', 'eddyn_277', 'eddyn_278', 'eddyn_279', 'eddyn_280', 'eddyn_281', 'eddyn_282', 'eddyn_283', 'eddyn_284', 'eddyn_285', 'eddyn_286', 'eddyn_287', 'eddyn_288', 'eddyn_289', 'eddyn_290', 'eddyn_291', 'eddyn_292', 'eddyn_293', 'eddyn_294', 'eddyn_295', 'eddyn_296', 'eddyn_297', 'eddyn_298', 'eddyn_299', 'eddyn_300', 'eddyn_301', 'eddyn_302', 'eddyn_303', 'eddyn_304', 'eddyn_305', 'eddyn_306', 'eddyn_307', 'eddyn_308', 'eddyn_309', 'eddyn_310', 'eddyn_311', 'eddyn_312', 'eddyn_313', 'eddyn_314', 'eddyn_315', 'eddyn_316', 'eddyn_317', 'eddyn_318', 'eddyn_319', 'eddyn_320', 'eddyn_321', 'eddyn_322', 'eddyn_323', 'eddyn_324', 'eddyn_325', 'eddyn_326', 'eddyn_327', 'eddyn_328', 'eddyn_329', 'eddyn_330', 'eddyn_331', 'eddyn_332', 'eddyn_333', 'eddyn_334', 'eddyn_335', 'eddyn_336', 'eddyn_337', 'eddyn_338', 'eddyn_339', 'eddyn_340', 'eddyn_341', 'eddyn_342', 'eddyn_343', 'eddyn_344', 'eddyn_345', 'eddyn_346', 'eddyn_347', 'eddyn_348', 'eddyn_349', 'eddyn_350', 'eddyn_351', 'eddyn_352', 'eddyn_353', 'eddyn_354', 'eddyn_355', 'eddyn_356', 'eddyn_357', 'eddyn_358', 'eddyn_359', 'eddyn_360', 'eddyn_361', 'eddyn_362', 'eddyn_363', 'eddyn_364', 'eddyn_365', 'eddyn_366', 'eddyn_367', 'eddyn_368', 'eddyn_369', 'eddyn_370', 'eddyn_371', 'eddyn_372', 'eddyn_373', 'eddyn_374', 'eddyn_375', 'eddyn_376', 'eddyn_377', 'eddyn_378', 'eddyn_379', 'eddyn_380', 'eddyn_381', 'eddyn_382', 'eddyn_383', 'eddyn_384', 'eddyn_385', 'eddyn_386', 'eddyn_387', 'eddyn_388', 'eddyn_389', 'eddyn_390', 'eddyn_391', 'eddyn_392', 'eddyn_393', 'eddyn_394', 'eddyn_395', 'eddyn_396', 'eddyn_397', 'eddyn_398', 'eddyn_399', 'eddyn_400', 'eddyn_401', 'eddyn_402', 'eddyn_403', 'eddyn_404', 'eddyn_405', 'eddyn_406', 'eddyn_407', 'eddyn_408', 'eddyn_409', 'eddyn_410', 'eddyn_411', 'eddyn_412', 'eddyn_413', 'eddyn_414', 'eddyn_415', 'eddyn_416', 'eddyn_417', 'eddyn_418', 'eddyn_419', 'eddyn_420', 'eddyn_421', 'eddyn_422', 'eddyn_423', 'eddyn_424', 'eddyn_425', 'eddyn_426', 'eddyn_427', 'eddyn_428', 'eddyn_429', 'eddyn_430', 'eddyn_431', 'eddyn_432', 'eddyn_433', 'eddyn_434', 'eddyn_435', 'eddyn_436', 'eddyn_437', 'eddyn_438', 'eddyn_439', 'eddyn_440', 'eddyn_441', 'eddyn_442', 'eddyn_443', 'eddyn_444', 'eddyn_445', 'eddyn_446', 'eddyn_447', 'eddyn_448', 'eddyn_449', 'eddyn_450', 'eddyn_451', 'eddyn_452', 'eddyn_453', 'eddyn_454', 'eddyn_455', 'eddyn_456', 'eddyn_457', 'eddyn_458', 'eddyn_459', 'eddyn_460', 'eddyn_461', 'eddyn_462', 'eddyn_463', 'eddyn_464', 'eddyn_465', 'eddyn_466', 'eddyn_467', 'eddyn_468', 'eddyn_469', 'eddyn_470', 'eddyn_471', 'eddyn_472', 'eddyn_473', 'eddyn_474', 'eddyn_475', 'eddyn_476', 'eddyn_477', 'eddyn_478', 'eddyn_479', 'eddyn_480', 'eddyn_481', 'eddyn_482', 'eddyn_483', 'eddyn_484', 'eddyn_485', 'eddyn_486', 'eddyn_487', 'eddyn_488', 'eddyn_489', 'eddyn_490', 'eddyn_491', 'eddyn_492', 'eddyn_493', 'eddyn_494', 'eddyn_495', 'eddyn_496', 'eddyn_497', 'eddyn_498', 'eddyn_499', 'eddyn_500', 'eddyn_501', 'eddyn_502', 'eddyn_503', 'eddyn_504', 'eddyn_505', 'eddyn_506', 'eddyn_507', 'eddyn_508', 'eddyn_509', 'eddyn_510', 'eddyn_511', 'eddyn_512', 'eddyn_513', 'eddyn_514', 'eddyn_515', 'eddyn_516', 'eddyn_517', 'eddyn_518', 'eddyn_519', 'eddyn_520', 'eddyn_521', 'eddyn_522', 'eddyn_523', 'eddyn_524', 'eddyn_525', 'eddyn_526', 'eddyn_527', 'eddyn_528', 'eddyn_529', 'eddyn_530', 'eddyn_531', 'eddyn_532', 'eddyn_533', 'eddyn_534', 'eddyn_535', 'eddyn_536', 'eddyn_537', 'eddyn_538', 'eddyn_539', 'eddyn_540', 'eddyn_541', 'eddyn_542', 'eddyn_543', 'eddyn_544', 'eddyn_545', 'eddyn_546', 'eddyn_547', 'eddyn_548', 'eddyn_549', 'eddyn_550', 'eddyn_551', 'eddyn_552', 'eddyn_553', 'eddyn_554', 'eddyn_555', 'eddyn_556', 'eddyn_557', 'eddyn_558', 'eddyn_559', 'eddyn_560', 'eddyn_561', 'eddyn_562', 'eddyn_563', 'eddyn_564', 'eddyn_565', 'eddyn_566', 'eddyn_567', 'eddyn_568', 'eddyn_569', 'eddyn_570', 'eddyn_571', 'eddyn_572', 'eddyn_573', 'eddyn_574', 'eddyn_575', 'eddyn_576', 'eddyn_577', 'eddyn_578', 'eddyn_579', 'eddyn_580', 'eddyn_581', 'eddyn_582', 'eddyn_583', 'eddyn_584', 'eddyn_585', 'eddyn_586', 'eddyn_587', 'eddyn_588', 'eddyn_589', 'eddyn_590', 'eddyn_591', 'eddyn_592', 'eddyn_593', 'eddyn_594', 'eddyn_595', 'eddyn_596', 'eddyn_597', 'eddyn_598', 'eddyn_599', 'eddyn_600', 'eddyn_601', 'eddyn_602', 'eddyn_603', 'eddyn_604', 'eddyn_605', 'eddyn_606', 'eddyn_607', 'eddyn_608', 'eddyn_609', 'eddyn_610', 'eddyn_611', 'eddyn_612', 'eddyn_613', 'eddyn_614', 'eddyn_615', 'eddyn_616', 'eddyn_617', 'eddyn_618', 'eddyn_619', 'eddyn_620', 'eddyn_621', 'eddyn_622', 'eddyn_623', 'eddyn_624', 'eddyn_625', 'eddyn_626', 'eddyn_627', 'eddyn_628', 'eddyn_629', 'eddyn_630', 'eddyn_631', 'eddyn_632', 'eddyn_633', 'eddyn_634', 'eddyn_635', 'eddyn_636', 'eddyn_637', 'eddyn_638', 'eddyn_639', 'eddyn_640', 'eddyn_641', 'eddyn_642', 'eddyn_643', 'eddyn_644', 'eddyn_645', 'eddyn_646', 'eddyn_647', 'eddyn_648', 'eddyn_649', 'eddyn_650', 'eddyn_651', 'eddyn_652', 'eddyn_653', 'eddyn_654', 'eddyn_655', 'eddyn_656', 'eddyn_657', 'eddyn_658', 'eddyn_659', 'eddyn_660', 'eddyn_661', 'eddyn_662', 'eddyn_663', 'eddyn_664', 'eddyn_665', 'eddyn_666', 'eddyn_667', 'eddyn_668', 'eddyn_669', 'eddyn_670', 'eddyn_671', 'eddyn_672', 'eddyn_673', 'eddyn_674', 'eddyn_675', 'eddyn_676', 'eddyn_677', 'eddyn_678', 'eddyn_679', 'eddyn_680', 'eddyn_681', 'eddyn_682', 'eddyn_683', 'eddyn_684', 'eddyn_685', 'eddyn_686', 'eddyn_687', 'eddyn_688', 'eddyn_689', 'eddyn_690', 'eddyn_691', 'eddyn_692', 'eddyn_693', 'eddyn_694', 'eddyn_695', 'eddyn_696', 'eddyn_697', 'eddyn_698', 'eddyn_699', 'eddyn_700', 'eddyn_701', 'eddyn_702', 'eddyn_703', 'eddyn_704', 'eddyn_705', 'eddyn_706', 'eddyn_707', 'eddyn_708', 'eddyn_709', 'eddyn_710', 'eddyn_711', 'eddyn_712', 'eddyn_713', 'eddyn_714', 'eddyn_715', 'eddyn_716', 'eddyn_717', 'eddyn_718', 'eddyn_719', 'eddyn_720', 'eddyn_721', 'eddyn_722', 'eddyn_723', 'eddyn_724', 'eddyn_725', 'eddyn_726', 'eddyn_727', 'eddyn_728', 'eddyn_729', 'eddyn_730', 'eddyn_731', 'eddyn_732', 'eddyn_733', 'eddyn_734', 'eddyn_735', 'eddyn_736', 'eddyn_737', 'eddyn_738', 'eddyn_739', 'eddyn_740', 'eddyn_741', 'eddyn_742', 'eddyn_743', 'eddyn_744', 'eddyn_745', 'eddyn_746', 'eddyn_747', 'eddyn_748', 'eddyn_749', 'eddyn_750', 'eddyn_751', 'eddyn_752', 'eddyn_753', 'eddyn_754', 'eddyn_755', 'eddyn_756', 'eddyn_757', 'eddyn_758', 'eddyn_759', 'eddyn_760', 'eddyn_761', 'eddyn_762', 'eddyn_763', 'eddyn_764', 'eddyn_765', 'eddyn_766', 'eddyn_767', 'eddyn_768', 'eddyn_769', 'eddyn_770', 'eddyn_771', 'eddyn_772', 'eddyn_773', 'eddyn_774', 'eddyn_775', 'eddyn_776', 'eddyn_777', 'eddyn_778', 'eddyn_779', 'eddyn_780', 'eddyn_781', 'eddyn_782', 'eddyn_783', 'eddyn_784', 'eddyn_785', 'eddyn_786', 'eddyn_787', 'eddyn_788', 'eddyn_789', 'eddyn_790', 'eddyn_791', 'eddyn_792', 'eddyn_793', 'eddyn_794', 'eddyn_795', 'eddyn_796', 'eddyn_797', 'eddyn_798', 'eddyn_799', 'eddyn_800', 'eddyn_801', 'eddyn_802', 'eddyn_803', 'eddyn_804', 'eddyn_805', 'eddyn_806', 'eddyn_807', 'eddyn_808', 'eddyn_809', 'eddyn_810', 'eddyn_811', 'eddyn_812', 'eddyn_813', 'eddyn_814', 'eddyn_815', 'eddyn_816', 'eddyn_817', 'eddyn_818', 'eddyn_819', 'eddyn_820', 'eddyn_821', 'eddyn_822', 'eddyn_823', 'eddyn_824', 'eddyn_825', 'eddyn_826', 'eddyn_827', 'eddyn_828', 'eddyn_829', 'eddyn_830', 'eddyn_831', 'eddyn_832', 'eddyn_833', 'eddyn_834', 'eddyn_835', 'eddyn_836', 'eddyn_837', 'eddyn_838', 'eddyn_839', 'eddyn_840', 'eddyn_841', 'eddyn_842', 'eddyn_843', 'eddyn_844', 'eddyn_845', 'eddyn_846', 'eddyn_847', 'eddyn_848', 'eddyn_849', 'eddyn_850', 'eddyn_851', 'eddyn_852', 'eddyn_853', 'eddyn_854', 'eddyn_855', 'eddyn_856', 'eddyn_857', 'eddyn_858', 'eddyn_859', 'eddyn_860', 'eddyn_861', 'eddyn_862', 'eddyn_863', 'eddyn_864', 'eddyn_865', 'eddyn_866', 'eddyn_867', 'eddyn_868', 'eddyn_869', 'eddyn_870', 'eddyn_871', 'eddyn_872', 'eddyn_873', 'eddyn_874', 'eddyn_875', 'eddyn_876', 'eddyn_877', 'eddyn_878', 'eddyn_879', 'eddyn_880', 'eddyn_881', 'eddyn_882', 'eddyn_883', 'eddyn_884', 'eddyn_885', 'eddyn_886', 'eddyn_887', 'eddyn_888', 'eddyn_889', 'eddyn_890', 'eddyn_891', 'eddyn_892', 'eddyn_893', 'eddyn_894', 'eddyn_895', 'eddyn_896', 'eddyn_897', 'eddyn_898', 'eddyn_899', 'eddyn_900', 'eddyn_901', 'eddyn_902', 'eddyn_903', 'eddyn_904', 'eddyn_905', 'eddyn_906', 'eddyn_907', 'eddyn_908', 'eddyn_909', 'eddyn_910', 'eddyn_911', 'eddyn_912', 'eddyn_913', 'eddyn_914', 'eddyn_915', 'eddyn_916', 'eddyn_917', 'eddyn_918', 'eddyn_919', 'eddyn_920', 'eddyn_921', 'eddyn_922', 'eddyn_923', 'eddyn_924', 'eddyn_925', 'eddyn_926', 'eddyn_927', 'eddyn_928', 'eddyn_929', 'eddyn_930', 'eddyn_931', 'eddyn_932', 'eddyn_933', 'eddyn_934', 'eddyn_935', 'eddyn_936', 'eddyn_937', 'eddyn_938', 'eddyn_939', 'eddyn_940', 'eddyn_941', 'eddyn_942', 'eddyn_943', 'eddyn_944', 'eddyn_945', 'eddyn_946', 'eddyn_947', 'eddyn_948', 'eddyn_949', 'eddyn_950', 'eddyn_951', 'eddyn_952', 'eddyn_953', 'eddyn_954', 'eddyn_955', 'eddyn_956', 'eddyn_957', 'eddyn_958', 'eddyn_959', 'eddyn_960', 'eddyn_961', 'eddyn_962', 'eddyn_963', 'eddyn_964', 'eddyn_965', 'eddyn_966', 'eddyn_967', 'eddyn_968', 'eddyn_969', 'eddyn_970', 'eddyn_971', 'eddyn_972', 'eddyn_973', 'eddyn_974', 'eddyn_975', 'eddyn_976', 'eddyn_977', 'eddyn_978', 'eddyn_979', 'eddyn_980', 'eddyn_981', 'eddyn_982', 'eddyn_983', 'eddyn_984', 'eddyn_985', 'eddyn_986', 'eddyn_987', 'eddyn_988', 'eddyn_989', 'eddyn_990', 'eddyn_991', 'eddyn_992', 'eddyn_993', 'eddyn_994', 'eddyn_995', 'eddyn_996', 'eddyn_997', 'eddyn_998', 'eddyn_999', 'eddyn_1000', 'eddyn_1001', 'eddyn_1002', 'eddyn_1003', 'eddyn_1004', 'eddyn_1005', 'eddyn_1006', 'eddyn_1007', 'eddyn_1008', 'eddyn_1009', 'eddyn_1010', 'eddyn_1011', 'eddyn_1012', 'eddyn_1013', 'eddyn_1014', 'eddyn_1015', 'eddyn_1016', 'eddyn_1017', 'eddyn_1018', 'eddyn_1019', 'eddyn_1020', 'eddyn_1021', 'eddyn_1022', 'eddyn_1023', 'eddyn_1024', 'eddyn_1025', 'eddyn_1026', 'eddyn_1027', 'eddyn_1028', 'eddyn_1029', 'eddyn_1030', 'eddyn_1031', 'eddyn_1032', 'eddyn_1033', 'eddyn_1034', 'eddyn_1035', 'eddyn_1036', 'eddyn_1037', 'eddyn_1038', 'eddyn_1039', 'eddyn_1040', 'eddyn_1041', 'eddyn_1042', 'eddyn_1043', 'eddyn_1044', 'eddyn_1045', 'eddyn_1046', 'eddyn_1047', 'eddyn_1048', 'eddyn_1049', 'eddyn_1050', 'eddyn_1051', 'eddyn_1052', 'eddyn_1053', 'eddyn_1054', 'eddyn_1055', 'eddyn_1056', 'eddyn_1057', 'eddyn_1058', 'eddyn_1059', 'eddyn_1060', 'eddyn_1061', 'eddyn_1062', 'eddyn_1063', 'eddyn_1064', 'eddyn_1065', 'eddyn_1066', 'eddyn_1067', 'eddyn_1068', 'eddyn_1069', 'eddyn_1070', 'eddyn_1071', 'eddyn_1072', 'eddyn_1073', 'eddyn_1074', 'eddyn_1075', 'eddyn_1076', 'eddyn_1077', 'eddyn_1078', 'eddyn_1079', 'eddyn_1080', 'eddyn_1081', 'eddyn_1082', 'eddyn_1083', 'eddyn_1084', 'eddyn_1085', 'eddyn_1086', 'eddyn_1087', 'eddyn_1088', 'eddyn_1089', 'eddyn_1090', 'eddyn_1091', 'eddyn_1092', 'eddyn_1093', 'eddyn_1094', 'eddyn_1095', 'eddyn_1096', 'eddyn_1097', 'eddyn_1098', 'eddyn_1099', 'eddyn_1100', 'eddyn_1101', 'eddyn_1102']),
 dict_keys(['eddyn_1103', 'eddyn_1104', 'eddyn_1105', 'eddyn_1106', 'eddyn_1107', 'eddyn_1108', 'eddyn_1109', 'eddyn_1110', 'eddyn_1111', 'eddyn_1112', 'eddyn_1113', 'eddyn_1114', 'eddyn_1115', 'eddyn_1116', 'eddyn_1117', 'eddyn_1118', 'eddyn_1119', 'eddyn_1120', 'eddyn_1121', 'eddyn_1122', 'eddyn_1123', 'eddyn_1124', 'eddyn_1125', 'eddyn_1126', 'eddyn_1127', 'eddyn_1128', 'eddyn_1129', 'eddyn_1130', 'eddyn_1131', 'eddyn_1132', 'eddyn_1133', 'eddyn_1134', 'eddyn_1135', 'eddyn_1136', 'eddyn_1137', 'eddyn_1138', 'eddyn_1139', 'eddyn_1140', 'eddyn_1141', 'eddyn_1142', 'eddyn_1143', 'eddyn_1144', 'eddyn_1145', 'eddyn_1146', 'eddyn_1147', 'eddyn_1148', 'eddyn_1149', 'eddyn_1150', 'eddyn_1151', 'eddyn_1152', 'eddyn_1153', 'eddyn_1154', 'eddyn_1155', 'eddyn_1156', 'eddyn_1157', 'eddyn_1158', 'eddyn_1159', 'eddyn_1160', 'eddyn_1161', 'eddyn_1162', 'eddyn_1163', 'eddyn_1164', 'eddyn_1165', 'eddyn_1166', 'eddyn_1167', 'eddyn_1168', 'eddyn_1169', 'eddyn_1170', 'eddyn_1171', 'eddyn_1172', 'eddyn_1173', 'eddyn_1174', 'eddyn_1175', 'eddyn_1176', 'eddyn_1177', 'eddyn_1178', 'eddyn_1179', 'eddyn_1180', 'eddyn_1181', 'eddyn_1182', 'eddyn_1183', 'eddyn_1184', 'eddyn_1185', 'eddyn_1186', 'eddyn_1187', 'eddyn_1188', 'eddyn_1189', 'eddyn_1190', 'eddyn_1191', 'eddyn_1192', 'eddyn_1193', 'eddyn_1194', 'eddyn_1195', 'eddyn_1196', 'eddyn_1197', 'eddyn_1198', 'eddyn_1199', 'eddyn_1200', 'eddyn_1201', 'eddyn_1202', 'eddyn_1203', 'eddyn_1204', 'eddyn_1205', 'eddyn_1206', 'eddyn_1207', 'eddyn_1208', 'eddyn_1209', 'eddyn_1210', 'eddyn_1211', 'eddyn_1212', 'eddyn_1213', 'eddyn_1214', 'eddyn_1215', 'eddyn_1216', 'eddyn_1217', 'eddyn_1218', 'eddyn_1219', 'eddyn_1220', 'eddyn_1221', 'eddyn_1222', 'eddyn_1223', 'eddyn_1224', 'eddyn_1225', 'eddyn_1226', 'eddyn_1227', 'eddyn_1228', 'eddyn_1229', 'eddyn_1230', 'eddyn_1231', 'eddyn_1232', 'eddyn_1233', 'eddyn_1234', 'eddyn_1235', 'eddyn_1236', 'eddyn_1237', 'eddyn_1238', 'eddyn_1239', 'eddyn_1240', 'eddyn_1241', 'eddyn_1242', 'eddyn_1243', 'eddyn_1244', 'eddyn_1245', 'eddyn_1246', 'eddyn_1247', 'eddyn_1248', 'eddyn_1249', 'eddyn_1250', 'eddyn_1251', 'eddyn_1252', 'eddyn_1253', 'eddyn_1254', 'eddyn_1255', 'eddyn_1256', 'eddyn_1257', 'eddyn_1258', 'eddyn_1259', 'eddyn_1260', 'eddyn_1261', 'eddyn_1262', 'eddyn_1263', 'eddyn_1264', 'eddyn_1265', 'eddyn_1266', 'eddyn_1267', 'eddyn_1268', 'eddyn_1269', 'eddyn_1270', 'eddyn_1271', 'eddyn_1272', 'eddyn_1273', 'eddyn_1274', 'eddyn_1275', 'eddyn_1276', 'eddyn_1277', 'eddyn_1278', 'eddyn_1279', 'eddyn_1280', 'eddyn_1281', 'eddyn_1282', 'eddyn_1283', 'eddyn_1284', 'eddyn_1285', 'eddyn_1286', 'eddyn_1287', 'eddyn_1288', 'eddyn_1289', 'eddyn_1290', 'eddyn_1291', 'eddyn_1292', 'eddyn_1293', 'eddyn_1294', 'eddyn_1295', 'eddyn_1296', 'eddyn_1297', 'eddyn_1298', 'eddyn_1299', 'eddyn_1300', 'eddyn_1301', 'eddyn_1302', 'eddyn_1303', 'eddyn_1304', 'eddyn_1305', 'eddyn_1306', 'eddyn_1307', 'eddyn_1308', 'eddyn_1309', 'eddyn_1310', 'eddyn_1311', 'eddyn_1312', 'eddyn_1313', 'eddyn_1314', 'eddyn_1315', 'eddyn_1316', 'eddyn_1317', 'eddyn_1318', 'eddyn_1319', 'eddyn_1320', 'eddyn_1321', 'eddyn_1322', 'eddyn_1323', 'eddyn_1324', 'eddyn_1325', 'eddyn_1326', 'eddyn_1327', 'eddyn_1328', 'eddyn_1329', 'eddyn_1330', 'eddyn_1331', 'eddyn_1332', 'eddyn_1333', 'eddyn_1334', 'eddyn_1335', 'eddyn_1336', 'eddyn_1337', 'eddyn_1338', 'eddyn_1339', 'eddyn_1340', 'eddyn_1341', 'eddyn_1342', 'eddyn_1343', 'eddyn_1344', 'eddyn_1345', 'eddyn_1346', 'eddyn_1347', 'eddyn_1348', 'eddyn_1349', 'eddyn_1350', 'eddyn_1351', 'eddyn_1352', 'eddyn_1353', 'eddyn_1354', 'eddyn_1355', 'eddyn_1356', 'eddyn_1357', 'eddyn_1358', 'eddyn_1359', 'eddyn_1360', 'eddyn_1361', 'eddyn_1362', 'eddyn_1363', 'eddyn_1364', 'eddyn_1365', 'eddyn_1366', 'eddyn_1367', 'eddyn_1368', 'eddyn_1369', 'eddyn_1370', 'eddyn_1371', 'eddyn_1372', 'eddyn_1373', 'eddyn_1374', 'eddyn_1375', 'eddyn_1376', 'eddyn_1377', 'eddyn_1378', 'eddyn_1379', 'eddyn_1380', 'eddyn_1381', 'eddyn_1382', 'eddyn_1383', 'eddyn_1384', 'eddyn_1385', 'eddyn_1386', 'eddyn_1387', 'eddyn_1388', 'eddyn_1389', 'eddyn_1390', 'eddyn_1391', 'eddyn_1392', 'eddyn_1393', 'eddyn_1394', 'eddyn_1395', 'eddyn_1396', 'eddyn_1397', 'eddyn_1398', 'eddyn_1399', 'eddyn_1400', 'eddyn_1401', 'eddyn_1402', 'eddyn_1403', 'eddyn_1404', 'eddyn_1405', 'eddyn_1406', 'eddyn_1407', 'eddyn_1408', 'eddyn_1409', 'eddyn_1410', 'eddyn_1411', 'eddyn_1412', 'eddyn_1413', 'eddyn_1414', 'eddyn_1415', 'eddyn_1416', 'eddyn_1417', 'eddyn_1418', 'eddyn_1419', 'eddyn_1420', 'eddyn_1421', 'eddyn_1422', 'eddyn_1423', 'eddyn_1424', 'eddyn_1425', 'eddyn_1426', 'eddyn_1427', 'eddyn_1428', 'eddyn_1429', 'eddyn_1430', 'eddyn_1431', 'eddyn_1432', 'eddyn_1433', 'eddyn_1434', 'eddyn_1435', 'eddyn_1436', 'eddyn_1437', 'eddyn_1438', 'eddyn_1439', 'eddyn_1440', 'eddyn_1441', 'eddyn_1442', 'eddyn_1443', 'eddyn_1444', 'eddyn_1445', 'eddyn_1446', 'eddyn_1447', 'eddyn_1448', 'eddyn_1449', 'eddyn_1450', 'eddyn_1451', 'eddyn_1452', 'eddyn_1453', 'eddyn_1454', 'eddyn_1455', 'eddyn_1456', 'eddyn_1457', 'eddyn_1458', 'eddyn_1459', 'eddyn_1460', 'eddyn_1461', 'eddyn_1462', 'eddyn_1463', 'eddyn_1464', 'eddyn_1465', 'eddyn_1466', 'eddyn_1467', 'eddyn_1468', 'eddyn_1469', 'eddyn_1470', 'eddyn_1471', 'eddyn_1472', 'eddyn_1473', 'eddyn_1474', 'eddyn_1475', 'eddyn_1476', 'eddyn_1477', 'eddyn_1478', 'eddyn_1479', 'eddyn_1480', 'eddyn_1481', 'eddyn_1482', 'eddyn_1483', 'eddyn_1484', 'eddyn_1485', 'eddyn_1486', 'eddyn_1487', 'eddyn_1488', 'eddyn_1489', 'eddyn_1490', 'eddyn_1491', 'eddyn_1492', 'eddyn_1493', 'eddyn_1494', 'eddyn_1495', 'eddyn_1496', 'eddyn_1497', 'eddyn_1498', 'eddyn_1499', 'eddyn_1500', 'eddyn_1501', 'eddyn_1502', 'eddyn_1503', 'eddyn_1504', 'eddyn_1505', 'eddyn_1506', 'eddyn_1507', 'eddyn_1508', 'eddyn_1509', 'eddyn_1510', 'eddyn_1511', 'eddyn_1512', 'eddyn_1513', 'eddyn_1514', 'eddyn_1515', 'eddyn_1516', 'eddyn_1517', 'eddyn_1518', 'eddyn_1519', 'eddyn_1520', 'eddyn_1521', 'eddyn_1522', 'eddyn_1523', 'eddyn_1524', 'eddyn_1525', 'eddyn_1526', 'eddyn_1527', 'eddyn_1528', 'eddyn_1529', 'eddyn_1530', 'eddyn_1531', 'eddyn_1532', 'eddyn_1533', 'eddyn_1534', 'eddyn_1535', 'eddyn_1536', 'eddyn_1537', 'eddyn_1538', 'eddyn_1539', 'eddyn_1540', 'eddyn_1541', 'eddyn_1542', 'eddyn_1543', 'eddyn_1544', 'eddyn_1545', 'eddyn_1546', 'eddyn_1547', 'eddyn_1548', 'eddyn_1549', 'eddyn_1550', 'eddyn_1551', 'eddyn_1552', 'eddyn_1553', 'eddyn_1554', 'eddyn_1555', 'eddyn_1556', 'eddyn_1557', 'eddyn_1558', 'eddyn_1559', 'eddyn_1560', 'eddyn_1561', 'eddyn_1562', 'eddyn_1563', 'eddyn_1564', 'eddyn_1565', 'eddyn_1566', 'eddyn_1567', 'eddyn_1568', 'eddyn_1569', 'eddyn_1570', 'eddyn_1571', 'eddyn_1572', 'eddyn_1573', 'eddyn_1574', 'eddyn_1575', 'eddyn_1576', 'eddyn_1577', 'eddyn_1578', 'eddyn_1579', 'eddyn_1580', 'eddyn_1581', 'eddyn_1582', 'eddyn_1583', 'eddyn_1584', 'eddyn_1585', 'eddyn_1586', 'eddyn_1587', 'eddyn_1588', 'eddyn_1589', 'eddyn_1590', 'eddyn_1591', 'eddyn_1592', 'eddyn_1593', 'eddyn_1594', 'eddyn_1595', 'eddyn_1596', 'eddyn_1597', 'eddyn_1598', 'eddyn_1599', 'eddyn_1600', 'eddyn_1601', 'eddyn_1602', 'eddyn_1603', 'eddyn_1604', 'eddyn_1605', 'eddyn_1606', 'eddyn_1607', 'eddyn_1608', 'eddyn_1609', 'eddyn_1610', 'eddyn_1611', 'eddyn_1612', 'eddyn_1613', 'eddyn_1614', 'eddyn_1615', 'eddyn_1616', 'eddyn_1617', 'eddyn_1618', 'eddyn_1619', 'eddyn_1620', 'eddyn_1621', 'eddyn_1622', 'eddyn_1623', 'eddyn_1624', 'eddyn_1625', 'eddyn_1626', 'eddyn_1627', 'eddyn_1628', 'eddyn_1629', 'eddyn_1630', 'eddyn_1631', 'eddyn_1632', 'eddyn_1633', 'eddyn_1634', 'eddyn_1635', 'eddyn_1636', 'eddyn_1637', 'eddyn_1638', 'eddyn_1639', 'eddyn_1640', 'eddyn_1641', 'eddyn_1642', 'eddyn_1643', 'eddyn_1644', 'eddyn_1645', 'eddyn_1646', 'eddyn_1647', 'eddyn_1648', 'eddyn_1649', 'eddyn_1650', 'eddyn_1651', 'eddyn_1652', 'eddyn_1653', 'eddyn_1654', 'eddyn_1655', 'eddyn_1656', 'eddyn_1657', 'eddyn_1658', 'eddyn_1659', 'eddyn_1660', 'eddyn_1661', 'eddyn_1662', 'eddyn_1663', 'eddyn_1664', 'eddyn_1665', 'eddyn_1666', 'eddyn_1667', 'eddyn_1668', 'eddyn_1669', 'eddyn_1670', 'eddyn_1671', 'eddyn_1672', 'eddyn_1673', 'eddyn_1674', 'eddyn_1675', 'eddyn_1676', 'eddyn_1677', 'eddyn_1678', 'eddyn_1679', 'eddyn_1680', 'eddyn_1681', 'eddyn_1682', 'eddyn_1683', 'eddyn_1684', 'eddyn_1685', 'eddyn_1686', 'eddyn_1687', 'eddyn_1688', 'eddyn_1689', 'eddyn_1690', 'eddyn_1691', 'eddyn_1692', 'eddyn_1693', 'eddyn_1694', 'eddyn_1695', 'eddyn_1696', 'eddyn_1697', 'eddyn_1698', 'eddyn_1699', 'eddyn_1700', 'eddyn_1701', 'eddyn_1702', 'eddyn_1703', 'eddyn_1704', 'eddyn_1705', 'eddyn_1706', 'eddyn_1707', 'eddyn_1708', 'eddyn_1709', 'eddyn_1710', 'eddyn_1711', 'eddyn_1712', 'eddyn_1713', 'eddyn_1714', 'eddyn_1715', 'eddyn_1716', 'eddyn_1717', 'eddyn_1718', 'eddyn_1719', 'eddyn_1720', 'eddyn_1721', 'eddyn_1722', 'eddyn_1723', 'eddyn_1724', 'eddyn_1725', 'eddyn_1726', 'eddyn_1727', 'eddyn_1728', 'eddyn_1729', 'eddyn_1730', 'eddyn_1731', 'eddyn_1732', 'eddyn_1733', 'eddyn_1734', 'eddyn_1735', 'eddyn_1736', 'eddyn_1737', 'eddyn_1738', 'eddyn_1739', 'eddyn_1740', 'eddyn_1741', 'eddyn_1742', 'eddyn_1743', 'eddyn_1744', 'eddyn_1745', 'eddyn_1746', 'eddyn_1747', 'eddyn_1748', 'eddyn_1749', 'eddyn_1750', 'eddyn_1751', 'eddyn_1752', 'eddyn_1753', 'eddyn_1754', 'eddyn_1755', 'eddyn_1756', 'eddyn_1757', 'eddyn_1758', 'eddyn_1759', 'eddyn_1760', 'eddyn_1761', 'eddyn_1762', 'eddyn_1763', 'eddyn_1764', 'eddyn_1765', 'eddyn_1766', 'eddyn_1767', 'eddyn_1768', 'eddyn_1769', 'eddyn_1770', 'eddyn_1771', 'eddyn_1772', 'eddyn_1773', 'eddyn_1774', 'eddyn_1775', 'eddyn_1776', 'eddyn_1777', 'eddyn_1778', 'eddyn_1779', 'eddyn_1780', 'eddyn_1781', 'eddyn_1782', 'eddyn_1783', 'eddyn_1784', 'eddyn_1785', 'eddyn_1786', 'eddyn_1787', 'eddyn_1788', 'eddyn_1789', 'eddyn_1790', 'eddyn_1791', 'eddyn_1792', 'eddyn_1793', 'eddyn_1794', 'eddyn_1795', 'eddyn_1796', 'eddyn_1797', 'eddyn_1798', 'eddyn_1799', 'eddyn_1800', 'eddyn_1801', 'eddyn_1802', 'eddyn_1803', 'eddyn_1804', 'eddyn_1805', 'eddyn_1806', 'eddyn_1807', 'eddyn_1808', 'eddyn_1809', 'eddyn_1810', 'eddyn_1811', 'eddyn_1812', 'eddyn_1813', 'eddyn_1814', 'eddyn_1815', 'eddyn_1816', 'eddyn_1817', 'eddyn_1818', 'eddyn_1819', 'eddyn_1820', 'eddyn_1821', 'eddyn_1822', 'eddyn_1823', 'eddyn_1824', 'eddyn_1825', 'eddyn_1826', 'eddyn_1827', 'eddyn_1828', 'eddyn_1829', 'eddyn_1830', 'eddyn_1831', 'eddyn_1832', 'eddyn_1833', 'eddyn_1834', 'eddyn_1835', 'eddyn_1836', 'eddyn_1837', 'eddyn_1838', 'eddyn_1839', 'eddyn_1840', 'eddyn_1841', 'eddyn_1842', 'eddyn_1843', 'eddyn_1844', 'eddyn_1845', 'eddyn_1846', 'eddyn_1847', 'eddyn_1848', 'eddyn_1849', 'eddyn_1850', 'eddyn_1851', 'eddyn_1852', 'eddyn_1853', 'eddyn_1854', 'eddyn_1855', 'eddyn_1856', 'eddyn_1857', 'eddyn_1858', 'eddyn_1859', 'eddyn_1860', 'eddyn_1861', 'eddyn_1862', 'eddyn_1863', 'eddyn_1864', 'eddyn_1865', 'eddyn_1866', 'eddyn_1867', 'eddyn_1868', 'eddyn_1869', 'eddyn_1870', 'eddyn_1871', 'eddyn_1872', 'eddyn_1873', 'eddyn_1874', 'eddyn_1875', 'eddyn_1876', 'eddyn_1877', 'eddyn_1878', 'eddyn_1879', 'eddyn_1880', 'eddyn_1881', 'eddyn_1882', 'eddyn_1883', 'eddyn_1884', 'eddyn_1885', 'eddyn_1886', 'eddyn_1887', 'eddyn_1888', 'eddyn_1889', 'eddyn_1890', 'eddyn_1891', 'eddyn_1892', 'eddyn_1893', 'eddyn_1894', 'eddyn_1895', 'eddyn_1896', 'eddyn_1897', 'eddyn_1898', 'eddyn_1899', 'eddyn_1900', 'eddyn_1901', 'eddyn_1902', 'eddyn_1903', 'eddyn_1904', 'eddyn_1905', 'eddyn_1906', 'eddyn_1907', 'eddyn_1908', 'eddyn_1909', 'eddyn_1910', 'eddyn_1911', 'eddyn_1912', 'eddyn_1913', 'eddyn_1914', 'eddyn_1915', 'eddyn_1916', 'eddyn_1917', 'eddyn_1918', 'eddyn_1919', 'eddyn_1920', 'eddyn_1921', 'eddyn_1922', 'eddyn_1923', 'eddyn_1924', 'eddyn_1925', 'eddyn_1926', 'eddyn_1927', 'eddyn_1928', 'eddyn_1929', 'eddyn_1930', 'eddyn_1931', 'eddyn_1932', 'eddyn_1933', 'eddyn_1934', 'eddyn_1935', 'eddyn_1936', 'eddyn_1937', 'eddyn_1938', 'eddyn_1939', 'eddyn_1940', 'eddyn_1941', 'eddyn_1942', 'eddyn_1943', 'eddyn_1944', 'eddyn_1945', 'eddyn_1946', 'eddyn_1947', 'eddyn_1948', 'eddyn_1949', 'eddyn_1950', 'eddyn_1951', 'eddyn_1952', 'eddyn_1953', 'eddyn_1954', 'eddyn_1955', 'eddyn_1956', 'eddyn_1957', 'eddyn_1958', 'eddyn_1959', 'eddyn_1960', 'eddyn_1961', 'eddyn_1962', 'eddyn_1963', 'eddyn_1964', 'eddyn_1965', 'eddyn_1966', 'eddyn_1967', 'eddyn_1968', 'eddyn_1969', 'eddyn_1970', 'eddyn_1971', 'eddyn_1972', 'eddyn_1973', 'eddyn_1974', 'eddyn_1975', 'eddyn_1976', 'eddyn_1977', 'eddyn_1978', 'eddyn_1979', 'eddyn_1980', 'eddyn_1981', 'eddyn_1982', 'eddyn_1983', 'eddyn_1984', 'eddyn_1985', 'eddyn_1986', 'eddyn_1987', 'eddyn_1988', 'eddyn_1989', 'eddyn_1990', 'eddyn_1991', 'eddyn_1992', 'eddyn_1993', 'eddyn_1994', 'eddyn_1995', 'eddyn_1996', 'eddyn_1997', 'eddyn_1998', 'eddyn_1999', 'eddyn_2000', 'eddyn_2001', 'eddyn_2002', 'eddyn_2003', 'eddyn_2004', 'eddyn_2005', 'eddyn_2006', 'eddyn_2007', 'eddyn_2008', 'eddyn_2009', 'eddyn_2010', 'eddyn_2011', 'eddyn_2012', 'eddyn_2013', 'eddyn_2014', 'eddyn_2015', 'eddyn_2016', 'eddyn_2017', 'eddyn_2018', 'eddyn_2019', 'eddyn_2020', 'eddyn_2021', 'eddyn_2022', 'eddyn_2023', 'eddyn_2024', 'eddyn_2025', 'eddyn_2026', 'eddyn_2027', 'eddyn_2028', 'eddyn_2029', 'eddyn_2030', 'eddyn_2031', 'eddyn_2032', 'eddyn_2033', 'eddyn_2034', 'eddyn_2035', 'eddyn_2036', 'eddyn_2037', 'eddyn_2038', 'eddyn_2039', 'eddyn_2040', 'eddyn_2041', 'eddyn_2042', 'eddyn_2043', 'eddyn_2044', 'eddyn_2045', 'eddyn_2046', 'eddyn_2047', 'eddyn_2048', 'eddyn_2049', 'eddyn_2050', 'eddyn_2051', 'eddyn_2052', 'eddyn_2053', 'eddyn_2054', 'eddyn_2055', 'eddyn_2056', 'eddyn_2057', 'eddyn_2058', 'eddyn_2059', 'eddyn_2060', 'eddyn_2061', 'eddyn_2062', 'eddyn_2063', 'eddyn_2064', 'eddyn_2065', 'eddyn_2066', 'eddyn_2067', 'eddyn_2068', 'eddyn_2069', 'eddyn_2070', 'eddyn_2071', 'eddyn_2072', 'eddyn_2073', 'eddyn_2074', 'eddyn_2075', 'eddyn_2076', 'eddyn_2077', 'eddyn_2078', 'eddyn_2079', 'eddyn_2080', 'eddyn_2081', 'eddyn_2082', 'eddyn_2083', 'eddyn_2084', 'eddyn_2085', 'eddyn_2086', 'eddyn_2087', 'eddyn_2088', 'eddyn_2089', 'eddyn_2090', 'eddyn_2091', 'eddyn_2092', 'eddyn_2093', 'eddyn_2094', 'eddyn_2095', 'eddyn_2096', 'eddyn_2097', 'eddyn_2098', 'eddyn_2099', 'eddyn_2100', 'eddyn_2101', 'eddyn_2102', 'eddyn_2103', 'eddyn_2104', 'eddyn_2105', 'eddyn_2106', 'eddyn_2107', 'eddyn_2108', 'eddyn_2109', 'eddyn_2110', 'eddyn_2111', 'eddyn_2112', 'eddyn_2113', 'eddyn_2114', 'eddyn_2115', 'eddyn_2116', 'eddyn_2117', 'eddyn_2118', 'eddyn_2119', 'eddyn_2120', 'eddyn_2121', 'eddyn_2122', 'eddyn_2123', 'eddyn_2124', 'eddyn_2125', 'eddyn_2126', 'eddyn_2127', 'eddyn_2128', 'eddyn_2129', 'eddyn_2130', 'eddyn_2131', 'eddyn_2132', 'eddyn_2133', 'eddyn_2134', 'eddyn_2135', 'eddyn_2136', 'eddyn_2137']))

In [6]:
class eddyTimeTrack():
    '''
    
    '''
    def __init__(self,eddies_at_t,eddies_at_t1,method='nearest',mode='offline'):
        self.method=method
        self.mode=mode
        self.tracked_dict={}
        if type(eddies_at_t)==dict:
            self.eddy_t=eddies_at_t
            self.eddy_t1=eddies_at_t1
            self.keys_at_t=list(self.eddy_t.keys())
            self.keys_at_t1=list(self.eddy_t1.keys())
            self.type='dict'
        elif type(eddies_at_t)==pd.Dataframe:
            pass
            self.type='pandas'
        else:
            raise TypeError('The input of this tracking method should be a dictionary or a pandas dataframe.')
    
    def track_eddies(self):
        if self.type=='dict':
            self.tracked_dict={}
            tracks2connect=self.persisting_eddies()
            for time_connected_eddies in tracks2connect:
                self.tracked_dict[time_connected_eddies[0]]={}
                for key_prop_eddies,values_prop_eddies_t in self.eddy_t[time_connected_eddies[0]].items():
                    if key_prop_eddies != 'timetracking' and key_prop_eddies!='neddy':
                        if type(values_prop_eddies_t)==np.ndarray:
                            self.tracked_dict[time_connected_eddies[0]][key_prop_eddies]=np.vstack((values_prop_eddies_t,self.eddy_t1[time_connected_eddies[1]][key_prop_eddies]))
                        else:
                            self.tracked_dict[time_connected_eddies[0]][key_prop_eddies]=[values_prop_eddies_t[0],self.eddy_t1[time_connected_eddies[1]][key_prop_eddies][0]]
                    else:
                        self.tracked_dict[time_connected_eddies[0]][key_prop_eddies]=values_prop_eddies_t
        else:
            pass
        
        if len(tracks2connect)*2+len(self.keys_at_t)+len(self.keys_at_t1)!=len(self.eddy_t.keys())+len(self.eddy_t1.keys()):
            raise ValueError('Leakage of eddies, look into the tracking algorithm.')
        else:
            self.append_non_connected()

        return self.tracked_dict
        
    
    def persisting_eddies(self):
        connect_tracks=[]
        non_repeated_eddy=[]
        #for key_t0 in range(len(time_0_key)):
        key_t0=0
        while len(self.keys_at_t)>key_t0:
            loc=self.get_loc(key_t0)
            if self.method=='nearest':
                
                locs_t=self.list_locs()
                near_eddy,distance_between_eddies=self.nearest_eddy(loc,locs_t)
                
                rossby_radius=rossbyR(loc[0],loc[1])

                if distance_between_eddies < rossby_radius and near_eddy not in non_repeated_eddy and self.eddy_t[self.keys_at_t[key_t0]]['timetracking']<6:
                        connect_tracks.append([self.keys_at_t[key_t0],self.keys_at_t1[near_eddy]])
                        non_repeated_eddy.append(near_eddy)
                        self.keys_at_t1[near_eddy]=None
                        self.keys_at_t[key_t0]=None
            elif self.method=='weighted':
                pass
            
            key_t0+=1
        self.keys_at_t=[ii for ii in self.keys_at_t if ii!=None]
        self.keys_at_t1=[ii for ii in self.keys_at_t1 if ii!=None]

        return connect_tracks
    
    def append_non_connected(self):
        for key, value in self.eddy_t.items(): 
            if key in self.keys_at_t:
                self.tracked_dict[key]=value
                self.tracked_dict[key]['timetracking']+=1
        count=0
        current_number_eddies=len(self.tracked_dict.keys())
        for key, value in self.eddy_t1.items():
            if key in self.keys_at_t1:
                count+=1
                self.tracked_dict['eddy_n{0}'.format(count+current_number_eddies)]=value
                self.tracked_dict['eddy_n{0}'.format(count+current_number_eddies)]['timetracking']+=1
    
    def nearest_eddy(self,loc,locs_t):
        near_eddy=abs(sum(locs_t-loc,axis=1)).argmin()
        distance_between_eddies=sw.dist(np.array([loc[1],locs_t[near_eddy][1]]),np.array([loc[0],locs_t[near_eddy][0]]))[0]*1000 #Distance in meters
        return near_eddy,distance_between_eddies
    
    def weighted_nearest_eddy(self,loc,loc_t,previous_orientation):
        near_eddy=abs(sum(locs_t-loc,axis=1)).argmin()
        distance_between_eddies,angle_trajectory=sw.dist(np.array([loc[1],locs_t[near_eddy][1]]),np.array([loc[0],locs_t[near_eddy][0]]))
        
        return near_eddy,distance_between_eddies*1000,angle_trajectory
    
    def get_loc(self,ii):
        if self.type=='dict':
            loc=self.eddy_t[self.keys_at_t[ii]]['position_default'][-1]
        else:
            pass
        return loc
    
    def list_locs(self):
        if self.type=='dict':
            locs_t=np.array([self.eddy_t1[key_t1]['position_default'][-1] for key_t1 in self.eddy_t1])
        else:
            pass
        return locs_t

In [7]:
eddy_T_T=eddyTimeTrack(new_dict_0,new_dict_1,'nearest')

In [8]:
new_dict=eddy_T_T.track_eddies()

In [9]:
eddy_T_T=eddyTimeTrack(new_dict,new_dict_2,'nearest')

In [10]:
new_dict1=eddy_T_T.track_eddies()

In [11]:
new_dict['eddyn_1']


Out[11]:
{'2dgaussianfit': array([[ 0.68637703,  0.68544448,  0.46980229,  0.        ,  0.        ,
          0.        ]]),
 'angle': array([ 0.46980229]),
 'area': array([  1.03015935e+10,   2.80763488e+10,   5.94872234e+09]),
 'contour': [[array([ 308.625     ,  308.875     ,  309.05428646,  309.125     ,
           309.375     ,  309.47202944,  309.625     ,  309.65875498,
           309.71292567,  309.625     ,  309.375     ,  309.125     ,
           308.875     ,  308.83860142,  308.625     ,  308.51756043,
           308.4817361 ,  308.60416692,  308.625     ]),
   array([-42.14059211, -42.17318038, -42.125     , -42.10269471,
          -41.95491382, -41.875     , -41.66805609, -41.625     ,
          -41.375     , -41.27796871, -41.26637828, -41.29771303,
          -41.35849111, -41.375     , -41.50843198, -41.625     ,
          -41.875     , -42.125     , -42.14059211])]],
 'ellipse': [[array([ 309.67439612,  309.57748161,  309.41843856,  309.21644992,
           308.99587849,  308.78332846,  308.60443648,  308.48077957,
           308.42727258,  308.45036924,  308.54728375,  308.7063268 ,
           308.90831544,  309.12888686,  309.3414369 ,  309.52032888,
           309.64398579,  309.69749278,  309.67439612]),
   array([-41.38832408, -41.28887635, -41.23890208, -41.24442889,
          -41.30479019, -41.4127055 , -41.55515864, -41.71496767,
          -41.87285726, -42.00978358, -42.10923132, -42.15920559,
          -42.15367877, -42.09331748, -41.98540217, -41.84294902,
          -41.68313999, -41.52525041, -41.38832408])]],
 'level': array([ 0.64]),
 'majoraxis': array([[ 309.23782728,  308.88693808],
        [ -42.04460959,  -41.35349808]]),
 'minoraxis': array([[ 308.45036924,  309.67439612],
        [ -42.00978358,  -41.38832408]]),
 'neddy': array([1]),
 'position_default': [array([ 309.07427272,  -41.69258394])],
 'position_eddy': array([ 309.06238268,  -41.69905383]),
 'position_maxvalue': [array([  3.09125000e+02,  -4.16250000e+01,   7.67863020e-01,
           1.23600000e+03,   1.93000000e+02])],
 'time': array([0]),
 'timetracking': 3}

In [12]:
new_dict1['eddyn_1']


Out[12]:
{'2dgaussianfit': array([[ 0.68637703,  0.68544448,  0.46980229,  0.        ,  0.        ,
          0.        ]]),
 'angle': array([ 0.46980229]),
 'area': array([  1.03015935e+10,   2.80763488e+10,   5.94872234e+09]),
 'contour': [[array([ 308.625     ,  308.875     ,  309.05428646,  309.125     ,
           309.375     ,  309.47202944,  309.625     ,  309.65875498,
           309.71292567,  309.625     ,  309.375     ,  309.125     ,
           308.875     ,  308.83860142,  308.625     ,  308.51756043,
           308.4817361 ,  308.60416692,  308.625     ]),
   array([-42.14059211, -42.17318038, -42.125     , -42.10269471,
          -41.95491382, -41.875     , -41.66805609, -41.625     ,
          -41.375     , -41.27796871, -41.26637828, -41.29771303,
          -41.35849111, -41.375     , -41.50843198, -41.625     ,
          -41.875     , -42.125     , -42.14059211])]],
 'ellipse': [[array([ 309.67439612,  309.57748161,  309.41843856,  309.21644992,
           308.99587849,  308.78332846,  308.60443648,  308.48077957,
           308.42727258,  308.45036924,  308.54728375,  308.7063268 ,
           308.90831544,  309.12888686,  309.3414369 ,  309.52032888,
           309.64398579,  309.69749278,  309.67439612]),
   array([-41.38832408, -41.28887635, -41.23890208, -41.24442889,
          -41.30479019, -41.4127055 , -41.55515864, -41.71496767,
          -41.87285726, -42.00978358, -42.10923132, -42.15920559,
          -42.15367877, -42.09331748, -41.98540217, -41.84294902,
          -41.68313999, -41.52525041, -41.38832408])]],
 'level': array([ 0.64]),
 'majoraxis': array([[ 309.23782728,  308.88693808],
        [ -42.04460959,  -41.35349808]]),
 'minoraxis': array([[ 308.45036924,  309.67439612],
        [ -42.00978358,  -41.38832408]]),
 'neddy': array([1]),
 'position_default': [array([ 309.07427272,  -41.69258394])],
 'position_eddy': array([ 309.06238268,  -41.69905383]),
 'position_maxvalue': [array([  3.09125000e+02,  -4.16250000e+01,   7.67863020e-01,
           1.23600000e+03,   1.93000000e+02])],
 'time': array([0]),
 'timetracking': 3}

In [13]:
count=0
for key,item in new_dict.items():
    count=count+len(item['time'])
print(count,len(new_dict_0.keys())+len(new_dict_1.keys()))


2138 2138

In [14]:
count=0
for key,item in new_dict1.items():
    count=count+len(item['time'])
print(count,len(new_dict_0.keys())+len(new_dict_1.keys())+len(new_dict_2.keys()))


3238 3238

In [16]:
# new_dict_0={}
# for key,item in eddyd.items():

In [17]:
eddyd['eddyn_0','eddyn_1']


------------------------------------------------------
KeyError             Traceback (most recent call last)
<ipython-input-17-b24a4c46e184> in <module>()
----> 1 eddyd['eddyn_0','eddyn_1']

KeyError: ('eddyn_0', 'eddyn_1')

In [19]:
np.hstack((1,2))


Out[19]:
array([1, 2])

In [20]:
new_dict_0['eddyn_0']


Out[20]:
{'2dgaussianfit': array([[ 0.68589054,  0.9501844 ,  0.88051107,  0.        ,  0.        ,
          0.        ]]),
 'angle': array([ 0.88051107]),
 'area': array([  2.59994461e+10,   2.92334897e+10,   2.82836143e+10]),
 'contour': [[array([ 18.875     ,  19.125     ,  19.375     ,  19.625     ,
           19.71609085,  19.875     ,  19.99467561,  20.10223643,
           20.125     ,  20.188266  ,  20.25553254,  20.14741263,
           20.125     ,  19.875     ,  19.67558016,  19.625     ,
           19.375     ,  19.37171456,  19.125     ,  19.04839065,
           18.875     ,  18.84234021,  18.71690731,  18.64523947,
           18.625     ,  18.59546524,  18.625     ,  18.69083322,  18.875     ]),
   array([-40.96427741, -41.00868001, -40.98838458, -40.92047245,
          -40.875     , -40.76763485, -40.625     , -40.375     ,
          -40.31028826, -40.125     , -39.875     , -39.625     ,
          -39.59843114, -39.43768744, -39.375     , -39.35005822,
          -39.37214517, -39.375     , -39.52959206, -39.625     ,
          -39.8235585 , -39.875     , -40.125     , -40.375     ,
          -40.53641373, -40.625     , -40.70432802, -40.875     , -40.96427741])]],
 'ellipse': [[array([ 19.95028224,  20.0716558 ,  20.16042365,  20.2121346 ,
           20.22419563,  20.19600196,  20.12896734,  20.02645317,
           19.89359993,  19.73706944,  19.56471078,  19.38516676,
           19.20744044,  19.04044378,  18.89255067,  18.77117711,
           18.68240926,  18.63069832,  18.61863728,  18.64683095,
           18.71386557,  18.81637974,  18.94923298,  19.10576348,
           19.27812213,  19.45766615,  19.63539247,  19.80238914,  19.95028224]),
   array([-40.64169266, -40.46771183, -40.28055486, -40.0896066 ,
          -39.90444198, -39.73434594, -39.5878478 , -39.47229359,
          -39.39347767, -39.35535222, -39.35982899, -39.4066835 ,
          -39.49356628, -39.61612066, -39.76820124, -39.94218208,
          -40.12933905, -40.32028731, -40.50545193, -40.67554797,
          -40.82204611, -40.93760032, -41.01641624, -41.05454169,
          -41.05006492, -41.0032104 , -40.91632763, -40.79377325, -40.64169266])]],
 'level': array([ 0.47]),
 'majoraxis': array([[ 18.81637974,  20.02645317],
        [-40.93760032, -39.47229359]]),
 'minoraxis': array([[ 18.89255067,  19.95028224],
        [-39.76820124, -40.64169266]]),
 'neddy': array([0]),
 'position_default': [array([ 19.4241673 , -40.19421419])],
 'position_eddy': array([ 19.42141646, -40.20494695]),
 'position_maxvalue': [array([  19.375     ,  -40.375     ,    0.81295817,   77.        ,  198.        ])],
 'time': array([0]),
 'timetracking': True}

In [21]:
def track_from_file(filename):
    eddydict=np.load(filename)
    eddyd=eddydict.item()
    time_dict={}
    for key,item in eddyd.items():
        if int(item['time']) not in time_dict.keys():
            time_dict[int(item['time'])]={}
            time_dict[int(item['time'])][key]=item
        else:
            time_dict[int(item['time'])][key]=item
            
    for key in range(0,len(time_dict.keys())-1):
        print('time='+str(key))
        if key==0:
            eddy_T_T=eddyTimeTrack(time_dict[key],time_dict[key+1],'nearest')
            new_dict=eddy_T_T.track_eddies()
        else:
            eddy_T_T=eddyTimeTrack(new_dict,time_dict[key+1],'nearest')
            new_dict=eddy_T_T.track_eddies()
    
    return new_dict

In [22]:
filename='../data_bk/aviso_1993-1-3_pos.npy'

In [23]:
%%time
td=track_from_file(filename)


time=0
time=1
time=2
time=3
time=4
time=5
time=6
time=7
time=8
time=9
time=10
time=11
time=12
time=13
time=14
time=15
time=16
time=17
time=18
time=19
time=20
time=21
time=22
time=23
time=24
time=25
time=26
time=27
time=28
time=29
time=30
time=31
time=32
time=33
time=34
time=35
time=36
time=37
time=38
time=39
time=40
time=41
time=42
time=43
time=44
time=45
time=46
time=47
time=48
time=49
time=50
time=51
time=52
time=53
time=54
time=55
time=56
time=57
CPU times: user 1h 18min 53s, sys: 3min 28s, total: 1h 22min 22s
Wall time: 1h 22min 32s

In [29]:
a=0
for key,item in td.items():
    a=a+len(item['time'])
print(a)


63578

In [27]:
eddydict=np.load(filename)
eddyd=eddydict.item()
print(len(eddyd.keys()))


63578

To do:

  • make list of connected eddies, and then join them all.

In [ ]: