diff --git a/kloppy/_providers/secondspectrum.py b/kloppy/_providers/secondspectrum.py index ef9f95d86..373bbf0d6 100644 --- a/kloppy/_providers/secondspectrum.py +++ b/kloppy/_providers/secondspectrum.py @@ -16,6 +16,7 @@ def load( limit: Optional[int] = None, coordinates: Optional[str] = None, only_alive: Optional[bool] = False, + exclude_missing_ball_frames: Optional[bool] = False, ) -> TrackingDataset: """ Load SecondSpectrum tracking data. @@ -30,6 +31,7 @@ def load( limit: Limit the number of frames to load to the first `limit` frames. coordinates: The coordinate system to use. only_alive: Only include frames in which the game is not paused. + exclude_missing_ball_frames: SecondSpectrum sets ball_z to -10 when ball is missing / out of frame. True excludes these frames, False includes them. Returns: The parsed tracking data. @@ -39,6 +41,7 @@ def load( limit=limit, coordinate_system=coordinates, only_alive=only_alive, + exclude_missing_ball_frames=exclude_missing_ball_frames, ) with ( open_as_file(meta_data) as meta_data_fp, diff --git a/kloppy/infra/serializers/tracking/secondspectrum.py b/kloppy/infra/serializers/tracking/secondspectrum.py index 45df5470b..e73c30bc0 100644 --- a/kloppy/infra/serializers/tracking/secondspectrum.py +++ b/kloppy/infra/serializers/tracking/secondspectrum.py @@ -73,21 +73,24 @@ def __init__( sample_rate: Optional[float] = None, coordinate_system: Optional[Union[str, Provider]] = None, only_alive: Optional[bool] = True, + exclude_missing_ball_frames: Optional[bool] = False, ): super().__init__(limit, sample_rate, coordinate_system) self.only_alive = only_alive + self.exclude_missing_ball_frames = exclude_missing_ball_frames @property def provider(self) -> Provider: return Provider.SECONDSPECTRUM - @classmethod - def _frame_from_framedata(cls, teams, period, frame_data): + def _frame_from_framedata(self, teams, period, frame_data): frame_id = frame_data["frameIdx"] frame_timestamp = timedelta(seconds=frame_data["gameClock"]) if frame_data["ball"]["xyz"]: ball_x, ball_y, ball_z = frame_data["ball"]["xyz"] + if self.exclude_missing_ball_frames and ball_z == -10: + return ball_coordinates = Point3D( float(ball_x), float(ball_y), float(ball_z) ) @@ -301,6 +304,8 @@ def _iter(): period = periods[frame_data["period"] - 1] frame = self._frame_from_framedata(teams, period, frame_data) + if not frame: + continue frame = transformer.transform_frame(frame) frames.append(frame) diff --git a/kloppy/tests/files/second_spectrum_fake_data.jsonl b/kloppy/tests/files/second_spectrum_fake_data.jsonl index 718185119..d4085c4c0 100644 --- a/kloppy/tests/files/second_spectrum_fake_data.jsonl +++ b/kloppy/tests/files/second_spectrum_fake_data.jsonl @@ -15,8 +15,8 @@ {"period": 1, "frameIdx": 5600, "gameClock": 224.0, "wallClock": 224000, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [42.86960287952022, 23.08326688223921, 0.0], "speed": 6.649878166648075}, {"playerId": "6isrbi", "number": 19, "xyz": [-32.75956934993982, -4.832247908568648, 0.0], "speed": 6.3950489454862325}, {"playerId": "um288", "number": 4, "xyz": [7.906051811331073, -29.149682386807427, 0.0], "speed": 4.510743478643782}, {"playerId": "4g3xq", "number": 10, "xyz": [-19.068371450954373, -25.702003075632113, 0.0], "speed": 6.096659535900249}, {"playerId": "8xwx2", "number": 2, "xyz": [27.97017851474447, -23.790038395712482, 0.0], "speed": 2.320116635737471}, {"playerId": "92vl5", "number": 13, "xyz": [0.5349993279993184, 16.956929766435348, 0.0], "speed": 3.518472895982139}, {"playerId": "bvgtb", "number": 16, "xyz": [8.357718526804192, 14.563120492111121, 0.0], "speed": 1.8865252395577556}, {"playerId": "1lxq7v", "number": 14, "xyz": [-37.44789877949023, -15.920032637670145, 0.0], "speed": 7.775628443940195}, {"playerId": "45w3q", "number": 3, "xyz": [-0.7414663555997056, 25.73091223802936, 0.0], "speed": 4.343770409529797}, {"playerId": "qyk3c", "number": 15, "xyz": [47.83704454548145, 9.46598208033467, 0.0], "speed": 0.08585162266310142}, {"playerId": "o8x4i", "number": 8, "xyz": [-29.851327392926375, -5.966400320270942, 0.0], "speed": 7.050470180941201}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [-44.70108240970632, 32.662427004929754, 0], "speed": 2.551695132089799}, {"playerId": "rtwi56", "number": 9, "xyz": [52.40776536959959, 0.8669939797507615, 0], "speed": 6.731188324993474}, {"playerId": "v7whr2", "number": 19, "xyz": [25.905076434061712, 17.57298154718964, 0], "speed": 5.510278200966319}, {"playerId": "j4mao7", "number": 4, "xyz": [36.114551542098, 16.33538884247997, 0], "speed": 7.696557388024863}, {"playerId": "rifq85", "number": 5, "xyz": [-33.9017503032712, -20.5363130275024, 0], "speed": 5.368716798114571}, {"playerId": "vopck", "number": 18, "xyz": [5.097443745917709, -15.477557120407912, 0], "speed": 5.148143437099427}, {"playerId": "2q0uv", "number": 3, "xyz": [-39.72541595182381, 33.49931911176381, 0], "speed": 0.5586503308355901}, {"playerId": "9bgzhy", "number": 0, "xyz": [-15.483773364273855, -17.864553251155318, 0], "speed": 6.382313548995037}, {"playerId": "56zeu", "number": 12, "xyz": [-9.552034020406657, 29.71064002311304, 0], "speed": 1.2898659074844723}, {"playerId": "27cl51", "number": 17, "xyz": [-25.049122720873434, -15.140486190733952, 0], "speed": 7.088344671848664}, {"playerId": "eh90mu", "number": 15, "xyz": [-17.57417845863121, 8.735148189949737, 0], "speed": 1.258078149447873}], "ball": {"xyz": [-9.875985952539484, -33.121934902692956, 0.0], "speed": [5.258792067948876]}, "live": false, "lastTouch": "away"} {"period": 1, "frameIdx": 6000, "gameClock": 240.0, "wallClock": 240000, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [-23.340929339037228, -19.23528785772742, 0.0], "speed": 7.822555642241014}, {"playerId": "6isrbi", "number": 19, "xyz": [49.83467867454531, -3.6577369410352816, 0.0], "speed": 7.551040578289433}, {"playerId": "um288", "number": 4, "xyz": [37.1169094324504, -12.377783958591422, 0.0], "speed": 3.2229229754685518}, {"playerId": "4g3xq", "number": 10, "xyz": [-49.51250576424325, -8.626585881680827, 0.0], "speed": 7.010903647111165}, {"playerId": "8xwx2", "number": 2, "xyz": [-49.15000161293234, -1.7024195218349714, 0.0], "speed": 6.920432454189538}, {"playerId": "92vl5", "number": 13, "xyz": [-39.60218548995241, -2.3435807259214774, 0.0], "speed": 7.893506604067692}, {"playerId": "bvgtb", "number": 16, "xyz": [6.0081332390063436, -32.857526451277174, 0.0], "speed": 3.986161692252974}, {"playerId": "1lxq7v", "number": 14, "xyz": [19.11056390185011, 25.667278699159706, 0.0], "speed": 2.2635432188224804}, {"playerId": "45w3q", "number": 3, "xyz": [-31.585034024882795, 0.8356757225103939, 0.0], "speed": 3.427050204493378}, {"playerId": "qyk3c", "number": 15, "xyz": [17.128184639234448, 2.2112268431928506, 0.0], "speed": 4.6002936012655455}, {"playerId": "o8x4i", "number": 8, "xyz": [40.221068811708676, 3.9475340262282073, 0.0], "speed": 6.397600126758305}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [-42.62061402471583, 19.985748296476036, 0], "speed": 5.100248626959845}, {"playerId": "rtwi56", "number": 9, "xyz": [29.338265889304076, -11.591500247466346, 0], "speed": 0.027141808686561575}, {"playerId": "v7whr2", "number": 19, "xyz": [-45.44564153691109, 21.70880312726711, 0], "speed": 5.733216560978623}, {"playerId": "j4mao7", "number": 4, "xyz": [-25.31221028245191, 6.696471741138711, 0], "speed": 3.3521233816358613}, {"playerId": "rifq85", "number": 5, "xyz": [32.849743341246636, -12.746035932341604, 0], "speed": 4.106405561182537}, {"playerId": "vopck", "number": 18, "xyz": [14.056998309683825, -6.717532743516899, 0], "speed": 5.6565002206631005}, {"playerId": "2q0uv", "number": 3, "xyz": [-32.954130549934774, -28.05632928689383, 0], "speed": 4.298453609511738}, {"playerId": "9bgzhy", "number": 0, "xyz": [-38.447294303755235, -1.86573183811202, 0], "speed": 0.9586197696999159}, {"playerId": "56zeu", "number": 12, "xyz": [15.924565018263149, -22.25286880207726, 0], "speed": 0.15115777986985446}, {"playerId": "27cl51", "number": 17, "xyz": [45.67754133718404, -25.7330207881659, 0], "speed": 7.857928215657499}, {"playerId": "eh90mu", "number": 15, "xyz": [12.347689476722078, -24.620127136575345, 0], "speed": 2.050172160667321}], "ball": {"xyz": [38.15134920711539, -0.9147090430865153, 0.0], "speed": [7.273475235466874]}, "live": false, "lastTouch": "away"} {"period": 1, "frameIdx": 6400, "gameClock": 256.0, "wallClock": 256000, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [-21.593938046704928, 2.0593999113201744, 0.0], "speed": 0.7198242111029414}, {"playerId": "6isrbi", "number": 19, "xyz": [51.51594363591048, -15.675547907578302, 0.0], "speed": 7.841543142731709}, {"playerId": "um288", "number": 4, "xyz": [1.7264426674546125, -8.385144541930902, 0.0], "speed": 1.5357203703004512}, {"playerId": "4g3xq", "number": 10, "xyz": [-15.538504987931681, -18.40445424106022, 0.0], "speed": 7.968713151046239}, {"playerId": "8xwx2", "number": 2, "xyz": [-28.388771663014346, 25.457454609546623, 0.0], "speed": 6.146733630189759}, {"playerId": "92vl5", "number": 13, "xyz": [-47.45042636433552, -0.23609196036145372, 0.0], "speed": 7.4820682316935585}, {"playerId": "bvgtb", "number": 16, "xyz": [-51.16664966925597, -28.16327121474397, 0.0], "speed": 0.3298004420453058}, {"playerId": "1lxq7v", "number": 14, "xyz": [19.11003094772164, 2.959766075415398, 0.0], "speed": 4.560193989489638}, {"playerId": "45w3q", "number": 3, "xyz": [-44.80538263756507, 30.141696529665797, 0.0], "speed": 6.442646766625839}, {"playerId": "qyk3c", "number": 15, "xyz": [25.61706457087196, 7.94643161821317, 0.0], "speed": 6.924358851951777}, {"playerId": "o8x4i", "number": 8, "xyz": [-19.502369172865805, -9.813966487325523, 0.0], "speed": 0.30619449318185143}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [19.65713016002864, -32.365414190608966, 0], "speed": 2.261416833463538}, {"playerId": "rtwi56", "number": 9, "xyz": [-8.272962973451289, 6.402603878004854, 0], "speed": 3.8654374828153957}, {"playerId": "v7whr2", "number": 19, "xyz": [47.25262709696546, 14.040331272244337, 0], "speed": 1.4605949141340675}, {"playerId": "j4mao7", "number": 4, "xyz": [27.16486486241446, -21.158843879819074, 0], "speed": 5.057654185741686}, {"playerId": "rifq85", "number": 5, "xyz": [49.726583207317226, -16.488899593334917, 0], "speed": 2.4951651413206637}, {"playerId": "vopck", "number": 18, "xyz": [-45.31165921025521, -19.78438679244393, 0], "speed": 1.3136478713733775}, {"playerId": "2q0uv", "number": 3, "xyz": [-43.245957525354726, 18.420937321602004, 0], "speed": 2.4524385466908623}, {"playerId": "9bgzhy", "number": 0, "xyz": [-48.667690355221104, -19.095040681475403, 0], "speed": 7.12856952535464}, {"playerId": "56zeu", "number": 12, "xyz": [-8.137147367611938, -15.464032687197705, 0], "speed": 7.793096743694797}, {"playerId": "27cl51", "number": 17, "xyz": [41.04707466331984, 16.424920227151226, 0], "speed": 6.50054432484362}, {"playerId": "eh90mu", "number": 15, "xyz": [-14.87919514705573, -7.323238026926355, 0], "speed": 0.784667144628866}], "ball": {"xyz": [-44.523988081767136, -13.623877606177905, 0.0], "speed": [0.10355185141477286]}, "live": false, "lastTouch": "home"} -{"period": 1, "frameIdx": 6800, "gameClock": 272.0, "wallClock": 272000, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [45.99586774387412, 5.209435288567636, 0.0], "speed": 6.646830913816119}, {"playerId": "6isrbi", "number": 19, "xyz": [38.48130101286941, -16.320209566507483, 0.0], "speed": 3.6849132110069327}, {"playerId": "um288", "number": 4, "xyz": [23.341173558475013, 20.57225065331208, 0.0], "speed": 5.497246549507025}, {"playerId": "4g3xq", "number": 10, "xyz": [-5.497650368093428, 16.335154093038376, 0.0], "speed": 6.7075480744727125}, {"playerId": "8xwx2", "number": 2, "xyz": [-12.300645590265024, -33.63807191199635, 0.0], "speed": 1.3810253690832708}, {"playerId": "92vl5", "number": 13, "xyz": [-11.69995384806763, 31.469931500680783, 0.0], "speed": 6.956971245258871}, {"playerId": "bvgtb", "number": 16, "xyz": [-37.945157884344134, 14.380963820474268, 0.0], "speed": 7.840689697752617}, {"playerId": "1lxq7v", "number": 14, "xyz": [20.096711652638106, -4.061153743799476, 0.0], "speed": 7.6027483514385485}, {"playerId": "45w3q", "number": 3, "xyz": [41.76191961429395, 13.332118390218328, 0.0], "speed": 5.918358982711649}, {"playerId": "qyk3c", "number": 15, "xyz": [42.41272050941229, -28.221413610043285, 0.0], "speed": 5.348337204686003}, {"playerId": "o8x4i", "number": 8, "xyz": [33.947479283380176, 17.297127863090978, 0.0], "speed": 5.791162793314264}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [1.322044627151162, -13.05163852768153, 0], "speed": 3.794966484161905}, {"playerId": "rtwi56", "number": 9, "xyz": [42.901837577783986, 4.21047466905745, 0], "speed": 3.277100666761771}, {"playerId": "v7whr2", "number": 19, "xyz": [8.686507821107234, -22.74665410783909, 0], "speed": 0.5609466639554199}, {"playerId": "j4mao7", "number": 4, "xyz": [7.490193136311258, 32.67347193981536, 0], "speed": 7.784703258465166}, {"playerId": "rifq85", "number": 5, "xyz": [-5.566562947899393, 26.66938672830162, 0], "speed": 2.4258618843390076}, {"playerId": "vopck", "number": 18, "xyz": [8.277839191877685, -20.638383260915337, 0], "speed": 4.893661672264454}, {"playerId": "2q0uv", "number": 3, "xyz": [22.903663056646266, 13.790878499397394, 0], "speed": 0.9468761471677345}, {"playerId": "9bgzhy", "number": 0, "xyz": [-20.73500383770032, 33.102383341983, 0], "speed": 1.4713077688892886}, {"playerId": "56zeu", "number": 12, "xyz": [15.700224087125271, -12.896553299050373, 0], "speed": 5.724659846984958}, {"playerId": "27cl51", "number": 17, "xyz": [47.08836376039275, -7.220704169620436, 0], "speed": 3.602134952438081}, {"playerId": "eh90mu", "number": 15, "xyz": [-50.41986409139622, -1.5686691739969487, 0], "speed": 1.618443967713608}], "ball": {"xyz": [-16.009184905528844, -6.157526959038879, 0.0], "speed": [4.751370700600975]}, "live": false, "lastTouch": "away"} -{"period": 1, "frameIdx": 7200, "gameClock": 288.0, "wallClock": 288000, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [-18.490172992460206, 27.169899581629114, 0.0], "speed": 7.346331309359077}, {"playerId": "6isrbi", "number": 19, "xyz": [-23.29041778705643, 10.562845499558689, 0.0], "speed": 0.21693498066445205}, {"playerId": "um288", "number": 4, "xyz": [26.77623025790538, -7.1991435086651565, 0.0], "speed": 0.7415169575152296}, {"playerId": "4g3xq", "number": 10, "xyz": [19.352623201613923, 14.540572076107008, 0.0], "speed": 4.164397892809849}, {"playerId": "8xwx2", "number": 2, "xyz": [-32.12942537524248, -11.773946669704, 0.0], "speed": 7.329462630783749}, {"playerId": "92vl5", "number": 13, "xyz": [30.584510211676694, 25.80346497551272, 0.0], "speed": 1.7037302055592027}, {"playerId": "bvgtb", "number": 16, "xyz": [-5.007824578425004, -19.679032715793507, 0.0], "speed": 6.9572958003654595}, {"playerId": "1lxq7v", "number": 14, "xyz": [-34.961222923421666, 15.938495058899246, 0.0], "speed": 2.2473416399580675}, {"playerId": "45w3q", "number": 3, "xyz": [40.40340298001574, -16.679618242400164, 0.0], "speed": 6.8900274174177145}, {"playerId": "qyk3c", "number": 15, "xyz": [-25.059994152056806, -23.21673160727964, 0.0], "speed": 4.222384325464199}, {"playerId": "o8x4i", "number": 8, "xyz": [-39.21500508021456, -30.368208138767354, 0.0], "speed": 3.1457470300488}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [31.18782178742031, -20.5295050462938, 0], "speed": 3.418346016271765}, {"playerId": "rtwi56", "number": 9, "xyz": [-6.160546713531521, -33.0918642809001, 0], "speed": 5.0199684386922465}, {"playerId": "v7whr2", "number": 19, "xyz": [0.7053438292709714, -3.4532004704293273, 0], "speed": 1.994136950152205}, {"playerId": "j4mao7", "number": 4, "xyz": [6.612235505795897, 16.450419627140715, 0], "speed": 2.2523206487418355}, {"playerId": "rifq85", "number": 5, "xyz": [9.919784056711629, -19.621206072038, 0], "speed": 1.2589815927389347}, {"playerId": "vopck", "number": 18, "xyz": [-40.27616614607982, 5.438630486326721, 0], "speed": 0.04153220545767944}, {"playerId": "2q0uv", "number": 3, "xyz": [40.75323370005565, -18.960291710269235, 0], "speed": 4.839112572162314}, {"playerId": "9bgzhy", "number": 0, "xyz": [9.95852725160854, 5.839861935120523, 0], "speed": 5.3628164059635255}, {"playerId": "56zeu", "number": 12, "xyz": [-10.486597087631798, -23.89557351360558, 0], "speed": 5.861330302492482}, {"playerId": "27cl51", "number": 17, "xyz": [1.8353318750982945, 25.617207774546586, 0], "speed": 6.199432923124087}, {"playerId": "eh90mu", "number": 15, "xyz": [5.127581911276498, 26.016012802213638, 0], "speed": 5.1679277725882615}], "ball": {"xyz": [3.174746893402509, 17.939880917774463, 0.0], "speed": [0.08764083751003326]}, "live": true, "lastTouch": "away"} +{"period": 1, "frameIdx": 6800, "gameClock": 272.0, "wallClock": 272000, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [45.99586774387412, 5.209435288567636, 0.0], "speed": 6.646830913816119}, {"playerId": "6isrbi", "number": 19, "xyz": [38.48130101286941, -16.320209566507483, 0.0], "speed": 3.6849132110069327}, {"playerId": "um288", "number": 4, "xyz": [23.341173558475013, 20.57225065331208, 0.0], "speed": 5.497246549507025}, {"playerId": "4g3xq", "number": 10, "xyz": [-5.497650368093428, 16.335154093038376, 0.0], "speed": 6.7075480744727125}, {"playerId": "8xwx2", "number": 2, "xyz": [-12.300645590265024, -33.63807191199635, 0.0], "speed": 1.3810253690832708}, {"playerId": "92vl5", "number": 13, "xyz": [-11.69995384806763, 31.469931500680783, 0.0], "speed": 6.956971245258871}, {"playerId": "bvgtb", "number": 16, "xyz": [-37.945157884344134, 14.380963820474268, 0.0], "speed": 7.840689697752617}, {"playerId": "1lxq7v", "number": 14, "xyz": [20.096711652638106, -4.061153743799476, 0.0], "speed": 7.6027483514385485}, {"playerId": "45w3q", "number": 3, "xyz": [41.76191961429395, 13.332118390218328, 0.0], "speed": 5.918358982711649}, {"playerId": "qyk3c", "number": 15, "xyz": [42.41272050941229, -28.221413610043285, 0.0], "speed": 5.348337204686003}, {"playerId": "o8x4i", "number": 8, "xyz": [33.947479283380176, 17.297127863090978, 0.0], "speed": 5.791162793314264}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [1.322044627151162, -13.05163852768153, 0], "speed": 3.794966484161905}, {"playerId": "rtwi56", "number": 9, "xyz": [42.901837577783986, 4.21047466905745, 0], "speed": 3.277100666761771}, {"playerId": "v7whr2", "number": 19, "xyz": [8.686507821107234, -22.74665410783909, 0], "speed": 0.5609466639554199}, {"playerId": "j4mao7", "number": 4, "xyz": [7.490193136311258, 32.67347193981536, 0], "speed": 7.784703258465166}, {"playerId": "rifq85", "number": 5, "xyz": [-5.566562947899393, 26.66938672830162, 0], "speed": 2.4258618843390076}, {"playerId": "vopck", "number": 18, "xyz": [8.277839191877685, -20.638383260915337, 0], "speed": 4.893661672264454}, {"playerId": "2q0uv", "number": 3, "xyz": [22.903663056646266, 13.790878499397394, 0], "speed": 0.9468761471677345}, {"playerId": "9bgzhy", "number": 0, "xyz": [-20.73500383770032, 33.102383341983, 0], "speed": 1.4713077688892886}, {"playerId": "56zeu", "number": 12, "xyz": [15.700224087125271, -12.896553299050373, 0], "speed": 5.724659846984958}, {"playerId": "27cl51", "number": 17, "xyz": [47.08836376039275, -7.220704169620436, 0], "speed": 3.602134952438081}, {"playerId": "eh90mu", "number": 15, "xyz": [-50.41986409139622, -1.5686691739969487, 0], "speed": 1.618443967713608}], "ball": {"xyz": [-16.009184905528844, -6.157526959038879, -10], "speed": [4.751370700600975]}, "live": false, "lastTouch": "away"} +{"period": 1, "frameIdx": 7200, "gameClock": 288.0, "wallClock": 288000, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [-18.490172992460206, 27.169899581629114, 0.0], "speed": 7.346331309359077}, {"playerId": "6isrbi", "number": 19, "xyz": [-23.29041778705643, 10.562845499558689, 0.0], "speed": 0.21693498066445205}, {"playerId": "um288", "number": 4, "xyz": [26.77623025790538, -7.1991435086651565, 0.0], "speed": 0.7415169575152296}, {"playerId": "4g3xq", "number": 10, "xyz": [19.352623201613923, 14.540572076107008, 0.0], "speed": 4.164397892809849}, {"playerId": "8xwx2", "number": 2, "xyz": [-32.12942537524248, -11.773946669704, 0.0], "speed": 7.329462630783749}, {"playerId": "92vl5", "number": 13, "xyz": [30.584510211676694, 25.80346497551272, 0.0], "speed": 1.7037302055592027}, {"playerId": "bvgtb", "number": 16, "xyz": [-5.007824578425004, -19.679032715793507, 0.0], "speed": 6.9572958003654595}, {"playerId": "1lxq7v", "number": 14, "xyz": [-34.961222923421666, 15.938495058899246, 0.0], "speed": 2.2473416399580675}, {"playerId": "45w3q", "number": 3, "xyz": [40.40340298001574, -16.679618242400164, 0.0], "speed": 6.8900274174177145}, {"playerId": "qyk3c", "number": 15, "xyz": [-25.059994152056806, -23.21673160727964, 0.0], "speed": 4.222384325464199}, {"playerId": "o8x4i", "number": 8, "xyz": [-39.21500508021456, -30.368208138767354, 0.0], "speed": 3.1457470300488}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [31.18782178742031, -20.5295050462938, 0], "speed": 3.418346016271765}, {"playerId": "rtwi56", "number": 9, "xyz": [-6.160546713531521, -33.0918642809001, 0], "speed": 5.0199684386922465}, {"playerId": "v7whr2", "number": 19, "xyz": [0.7053438292709714, -3.4532004704293273, 0], "speed": 1.994136950152205}, {"playerId": "j4mao7", "number": 4, "xyz": [6.612235505795897, 16.450419627140715, 0], "speed": 2.2523206487418355}, {"playerId": "rifq85", "number": 5, "xyz": [9.919784056711629, -19.621206072038, 0], "speed": 1.2589815927389347}, {"playerId": "vopck", "number": 18, "xyz": [-40.27616614607982, 5.438630486326721, 0], "speed": 0.04153220545767944}, {"playerId": "2q0uv", "number": 3, "xyz": [40.75323370005565, -18.960291710269235, 0], "speed": 4.839112572162314}, {"playerId": "9bgzhy", "number": 0, "xyz": [9.95852725160854, 5.839861935120523, 0], "speed": 5.3628164059635255}, {"playerId": "56zeu", "number": 12, "xyz": [-10.486597087631798, -23.89557351360558, 0], "speed": 5.861330302492482}, {"playerId": "27cl51", "number": 17, "xyz": [1.8353318750982945, 25.617207774546586, 0], "speed": 6.199432923124087}, {"playerId": "eh90mu", "number": 15, "xyz": [5.127581911276498, 26.016012802213638, 0], "speed": 5.1679277725882615}], "ball": {"xyz": [3.174746893402509, 17.939880917774463, -10], "speed": [0.08764083751003326]}, "live": true, "lastTouch": "away"} {"period": 1, "frameIdx": 7600, "gameClock": 304.0, "wallClock": 304000, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [-50.7230864921166, 6.1390253953534355, 0.0], "speed": 0.8359092443231617}, {"playerId": "6isrbi", "number": 19, "xyz": [8.187065308365952, 18.259257315519577, 0.0], "speed": 7.588704881409418}, {"playerId": "um288", "number": 4, "xyz": [-29.580208258370973, 5.750195621360867, 0.0], "speed": 4.143085614913129}, {"playerId": "4g3xq", "number": 10, "xyz": [10.702934941458702, 32.67729011122132, 0.0], "speed": 0.178088079478667}, {"playerId": "8xwx2", "number": 2, "xyz": [-22.763290826886646, -8.198908258792585, 0.0], "speed": 3.3808736663027075}, {"playerId": "92vl5", "number": 13, "xyz": [15.255382938408252, -8.046839163342037, 0.0], "speed": 5.661026685947324}, {"playerId": "bvgtb", "number": 16, "xyz": [23.817337393490043, -20.967853021599318, 0.0], "speed": 4.608281347264431}, {"playerId": "1lxq7v", "number": 14, "xyz": [42.42671453782056, -26.47868543455558, 0.0], "speed": 1.6691606030279624}, {"playerId": "45w3q", "number": 3, "xyz": [-11.474515815678393, -16.151951731714416, 0.0], "speed": 7.9966200847456035}, {"playerId": "qyk3c", "number": 15, "xyz": [-6.930935611499223, 20.068448310870806, 0.0], "speed": 0.6289455404749464}, {"playerId": "o8x4i", "number": 8, "xyz": [-43.58473413642399, -5.04695185583362, 0.0], "speed": 6.874821051151955}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [29.51417962603635, -15.933806817173704, 0], "speed": 3.901089131359453}, {"playerId": "rtwi56", "number": 9, "xyz": [6.445136703319874, -21.38119362894103, 0], "speed": 0.21967589617082073}, {"playerId": "v7whr2", "number": 19, "xyz": [18.035495414926803, 4.580129399853404, 0], "speed": 3.8100731557603336}, {"playerId": "j4mao7", "number": 4, "xyz": [-19.568508398688643, 24.516108449614123, 0], "speed": 5.108490089110922}, {"playerId": "rifq85", "number": 5, "xyz": [-40.95003720884087, 22.18813922112503, 0], "speed": 6.752166761089864}, {"playerId": "vopck", "number": 18, "xyz": [-44.562986798818436, 14.514498781735238, 0], "speed": 4.908550123129066}, {"playerId": "2q0uv", "number": 3, "xyz": [-9.304263219543449, -32.56349132283829, 0], "speed": 5.660545156934128}, {"playerId": "9bgzhy", "number": 0, "xyz": [51.97268367253636, 31.00516770774301, 0], "speed": 3.248793735263483}, {"playerId": "56zeu", "number": 12, "xyz": [-39.479317163002584, -21.965064732170713, 0], "speed": 7.797273953424323}, {"playerId": "27cl51", "number": 17, "xyz": [8.860472456661242, 30.51262810001059, 0], "speed": 4.800756717395871}, {"playerId": "eh90mu", "number": 15, "xyz": [44.701378467669876, 4.955902621440457, 0], "speed": 7.6434097111566865}], "ball": {"xyz": [-25.309097080095746, 7.494421093765699, 0.0], "speed": [6.4923241505267715]}, "live": false, "lastTouch": "away"} {"period": 1, "frameIdx": 8000, "gameClock": 320.0, "wallClock": 320000, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [24.97190047636671, 3.022221500170044, 0.0], "speed": 6.936724852433685}, {"playerId": "6isrbi", "number": 19, "xyz": [-24.45306585452623, -5.837521915267653, 0.0], "speed": 5.778802554360599}, {"playerId": "um288", "number": 4, "xyz": [15.360447854920665, -9.281447437255716, 0.0], "speed": 1.097595574130433}, {"playerId": "4g3xq", "number": 10, "xyz": [47.18992133960732, 26.588587732080335, 0.0], "speed": 3.120447723154615}, {"playerId": "8xwx2", "number": 2, "xyz": [-21.839152613292697, 25.753032212037912, 0.0], "speed": 3.6553730051235833}, {"playerId": "92vl5", "number": 13, "xyz": [-27.960489004194216, -6.8742233987050785, 0.0], "speed": 7.539743373032155}, {"playerId": "bvgtb", "number": 16, "xyz": [-22.940361659654105, -8.446953409529222, 0.0], "speed": 7.955165010057584}, {"playerId": "1lxq7v", "number": 14, "xyz": [32.896364802959475, -3.8878322530462412, 0.0], "speed": 7.94709444738809}, {"playerId": "45w3q", "number": 3, "xyz": [-33.66504795743393, -0.11725096463301883, 0.0], "speed": 2.3672269864499276}, {"playerId": "qyk3c", "number": 15, "xyz": [-36.08652525330382, -1.8604351638192635, 0.0], "speed": 4.61418211037621}, {"playerId": "o8x4i", "number": 8, "xyz": [41.493153942118646, -21.52926170855473, 0.0], "speed": 5.344764603112278}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [-49.244992354553496, 25.057936636137118, 0], "speed": 1.7736775882406395}, {"playerId": "rtwi56", "number": 9, "xyz": [-6.982149192406866, 10.038151927933026, 0], "speed": 5.267282159264135}, {"playerId": "v7whr2", "number": 19, "xyz": [-43.654343687674675, -16.574783257467526, 0], "speed": 7.904950063996923}, {"playerId": "j4mao7", "number": 4, "xyz": [4.284430853762651, 28.62911640435832, 0], "speed": 4.167440682730489}, {"playerId": "rifq85", "number": 5, "xyz": [-37.74691664560781, -14.300011263728004, 0], "speed": 2.1527085531680115}, {"playerId": "vopck", "number": 18, "xyz": [-41.16546127025102, -17.673765378178977, 0], "speed": 7.62534484884327}, {"playerId": "2q0uv", "number": 3, "xyz": [-27.7273028628543, -15.342946747096896, 0], "speed": 7.903019213369265}, {"playerId": "9bgzhy", "number": 0, "xyz": [2.4159780983955867, -13.183636353420486, 0], "speed": 5.846298213543151}, {"playerId": "56zeu", "number": 12, "xyz": [-45.34539294106561, -21.488551490128284, 0], "speed": 7.238501362112066}, {"playerId": "27cl51", "number": 17, "xyz": [-45.66138912938292, -24.636155001545912, 0], "speed": 3.928290680304489}, {"playerId": "eh90mu", "number": 15, "xyz": [50.18925905908043, -0.8219346021227482, 0], "speed": 0.3587637052617154}], "ball": {"xyz": [-1.9869685810221847, -6.836469249331406, 0.0], "speed": [7.862673168767245]}, "live": false, "lastTouch": "home"} {"period": 1, "frameIdx": 8400, "gameClock": 336.0, "wallClock": 336000, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [-3.0955762442031287, 20.346012197060393, 0.0], "speed": 7.478279119088784}, {"playerId": "6isrbi", "number": 19, "xyz": [28.73989711560186, -18.119507192277826, 0.0], "speed": 0.5866960816067337}, {"playerId": "um288", "number": 4, "xyz": [2.5975395326930384, 22.359312490928026, 0.0], "speed": 5.379678285834326}, {"playerId": "4g3xq", "number": 10, "xyz": [15.151398942081759, 25.57393535903557, 0.0], "speed": 1.1439030674625776}, {"playerId": "8xwx2", "number": 2, "xyz": [39.00911948642095, 25.75175197022291, 0.0], "speed": 7.028426558359372}, {"playerId": "92vl5", "number": 13, "xyz": [-39.17085064000366, 17.454829474436092, 0.0], "speed": 4.191778098656675}, {"playerId": "bvgtb", "number": 16, "xyz": [14.040404883687625, 31.93577790543029, 0.0], "speed": 7.811724546591947}, {"playerId": "1lxq7v", "number": 14, "xyz": [-17.027614183366396, -23.817863586675433, 0.0], "speed": 2.407272104798202}, {"playerId": "45w3q", "number": 3, "xyz": [-49.76286640984331, -8.30004505049574, 0.0], "speed": 0.6896756731761045}, {"playerId": "qyk3c", "number": 15, "xyz": [7.278467563982732, -22.22128157030007, 0.0], "speed": 1.591677445043806}, {"playerId": "o8x4i", "number": 8, "xyz": [49.363205712343145, -27.845827012217782, 0.0], "speed": 5.822536241495034}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [42.39864893696353, -31.19367970695121, 0], "speed": 4.229360003691622}, {"playerId": "rtwi56", "number": 9, "xyz": [26.827586187415502, 33.05054993673548, 0], "speed": 1.1457618404676886}, {"playerId": "v7whr2", "number": 19, "xyz": [25.667974404605985, 32.52931210428576, 0], "speed": 0.49145187538117074}, {"playerId": "j4mao7", "number": 4, "xyz": [-7.348438436592076, 8.17161274618047, 0], "speed": 1.430067145496646}, {"playerId": "rifq85", "number": 5, "xyz": [-37.145134444969706, -7.180443134588001, 0], "speed": 2.8596396383624985}, {"playerId": "vopck", "number": 18, "xyz": [31.575796828963384, -5.940097608917212, 0], "speed": 6.031067845490311}, {"playerId": "2q0uv", "number": 3, "xyz": [-43.574731599944855, 7.722101015400127, 0], "speed": 4.385882395490342}, {"playerId": "9bgzhy", "number": 0, "xyz": [-45.84990347425128, 21.01587836569055, 0], "speed": 3.772493920964653}, {"playerId": "56zeu", "number": 12, "xyz": [29.128728822836226, 17.802539976833373, 0], "speed": 6.72397326893539}, {"playerId": "27cl51", "number": 17, "xyz": [36.8423543867039, 26.251908438759717, 0], "speed": 6.38161778071834}, {"playerId": "eh90mu", "number": 15, "xyz": [-36.37357104182197, 21.385915312218795, 0], "speed": 2.8597151543254027}], "ball": {"xyz": [44.11741755883549, -3.721694327959958, 0.0], "speed": [1.3876153890242788]}, "live": false, "lastTouch": "away"} @@ -340,8 +340,8 @@ {"period": 2, "frameIdx": 135600, "gameClock": 2441.72, "wallClock": 6349080, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [2.6540105296168046, 10.614375600141479, 0.0], "speed": 2.3677889403922316}, {"playerId": "6isrbi", "number": 19, "xyz": [9.11330327320816, -32.68944875828863, 0.0], "speed": 2.7601978555732796}, {"playerId": "4g3xq", "number": 10, "xyz": [34.6937359839195, 11.39294197409643, 0.0], "speed": 1.0736281678856638}, {"playerId": "8xwx2", "number": 2, "xyz": [2.459857389330087, -30.997177125326477, 0.0], "speed": 0.1748621378284696}, {"playerId": "92vl5", "number": 13, "xyz": [-15.8232274813466, 23.727262002763183, 0.0], "speed": 4.603864668348967}, {"playerId": "bvgtb", "number": 16, "xyz": [6.500088310228065, -9.11520548144107, 0.0], "speed": 2.349981998399996}, {"playerId": "sfbhd", "number": 5, "xyz": [10.144762684349567, -16.748315074844946, 0.0], "speed": 7.282752677054552}, {"playerId": "1lxq7v", "number": 14, "xyz": [-37.08310018993219, -6.784577474299911, 0.0], "speed": 0.276260673518399}, {"playerId": "45w3q", "number": 3, "xyz": [47.92921442817291, -14.809903000625178, 0.0], "speed": 4.240419095555552}, {"playerId": "um288", "number": 4, "xyz": [3.0137288011146026, 24.883355156715226, 0.0], "speed": 7.350140540794245}, {"playerId": "dpeid", "number": 9, "xyz": [-47.55211595020745, 18.01327668687105, 0.0], "speed": 5.227315231630342}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [37.37038758801294, 11.37258762403309, 0], "speed": 4.375850704347346}, {"playerId": "ajjci", "number": 6, "xyz": [42.177164094583674, 15.362210247468914, 0], "speed": 1.7787225251418848}, {"playerId": "h7522d", "number": 2, "xyz": [-1.545491835377244, 32.13801084125869, 0], "speed": 4.2067251357485205}, {"playerId": "rifq85", "number": 5, "xyz": [37.96691057519647, -21.714962036739866, 0], "speed": 0.01926503905142951}, {"playerId": "g7mov", "number": 14, "xyz": [-4.195596997226672, 13.257391469281933, 0], "speed": 4.496173817019389}, {"playerId": "vopck", "number": 18, "xyz": [-46.65382361127779, 27.380558663824765, 0], "speed": 1.523035609433082}, {"playerId": "2q0uv", "number": 3, "xyz": [-32.20128930659836, -18.657040824977802, 0], "speed": 2.2658085174870983}, {"playerId": "9bgzhy", "number": 0, "xyz": [30.892087165506656, 16.43957096844432, 0], "speed": 4.6916523625723405}, {"playerId": "56zeu", "number": 12, "xyz": [11.24724725713399, -26.9756603986031, 0], "speed": 4.055265030750594}, {"playerId": "27cl51", "number": 17, "xyz": [-3.5134652972635787, -30.977164931287867, 0], "speed": 3.453309270478095}, {"playerId": "eh90mu", "number": 15, "xyz": [48.633030354408014, 25.318196652037564, 0], "speed": 1.9439959278946342}], "ball": {"xyz": [-15.008265523536945, -2.5504375317967565, 0.0], "speed": [3.241465619515152]}, "live": false, "lastTouch": "home"} {"period": 2, "frameIdx": 136000, "gameClock": 2457.72, "wallClock": 6365080, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [-40.85031766341037, 32.869967735634305, 0.0], "speed": 3.7878623634853854}, {"playerId": "6isrbi", "number": 19, "xyz": [-20.740572609975974, -4.350024049508947, 0.0], "speed": 2.349997013033512}, {"playerId": "4g3xq", "number": 10, "xyz": [10.76977844924839, -26.458754241037017, 0.0], "speed": 2.321480353759335}, {"playerId": "8xwx2", "number": 2, "xyz": [23.00705475352082, -8.571622482834647, 0.0], "speed": 3.9601333063666546}, {"playerId": "92vl5", "number": 13, "xyz": [22.016605515252095, -27.875449340333507, 0.0], "speed": 3.203410246159863}, {"playerId": "bvgtb", "number": 16, "xyz": [-3.9230821206538864, -26.593050510254024, 0.0], "speed": 0.4747625087529235}, {"playerId": "sfbhd", "number": 5, "xyz": [40.55299237348206, -4.500733680072636, 0.0], "speed": 2.8754319015300425}, {"playerId": "1lxq7v", "number": 14, "xyz": [-0.4294258308057968, 12.867503453681058, 0.0], "speed": 3.8616235399503323}, {"playerId": "45w3q", "number": 3, "xyz": [45.832149507797695, -29.25876436539216, 0.0], "speed": 0.24077744841107496}, {"playerId": "um288", "number": 4, "xyz": [-21.473136821055036, 22.348609795572248, 0.0], "speed": 0.4799056644161084}, {"playerId": "dpeid", "number": 9, "xyz": [33.98379772399942, -16.66316264315417, 0.0], "speed": 1.6425873381510456}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [18.514261752310475, -11.507506934500102, 0], "speed": 4.196226076468069}, {"playerId": "ajjci", "number": 6, "xyz": [-1.0584716167354662, 7.432286224062186, 0], "speed": 0.8450664898165243}, {"playerId": "h7522d", "number": 2, "xyz": [46.37043130350093, -32.45881367222332, 0], "speed": 7.585673536825498}, {"playerId": "rifq85", "number": 5, "xyz": [-10.710474670863404, 14.686110690149372, 0], "speed": 3.7203929933564925}, {"playerId": "g7mov", "number": 14, "xyz": [-37.18379856691167, 1.1038899270381999, 0], "speed": 1.760321206461339}, {"playerId": "vopck", "number": 18, "xyz": [-40.79450928901699, 0.12281300575933789, 0], "speed": 4.342752736034764}, {"playerId": "2q0uv", "number": 3, "xyz": [26.306046505865663, 28.73102409569107, 0], "speed": 0.46967756488673285}, {"playerId": "9bgzhy", "number": 0, "xyz": [42.05898183948981, 30.23655227178881, 0], "speed": 3.747672691556243}, {"playerId": "56zeu", "number": 12, "xyz": [9.48173553022168, -10.59670280354611, 0], "speed": 3.794487111604913}, {"playerId": "27cl51", "number": 17, "xyz": [-9.471287682239904, 31.521441106069336, 0], "speed": 1.8387960375692582}, {"playerId": "eh90mu", "number": 15, "xyz": [4.3341656086330325, 8.846599998797114, 0], "speed": 4.533736659520806}], "ball": {"xyz": [7.924083552616476, 18.846740078241332, 0.0], "speed": [1.7582842994369612]}, "live": false, "lastTouch": "home"} {"period": 2, "frameIdx": 136400, "gameClock": 2473.72, "wallClock": 6381080, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [-2.7127147965507206, 28.143243611535887, 0.0], "speed": 1.937456335020654}, {"playerId": "6isrbi", "number": 19, "xyz": [49.82644017684931, -5.424775366253618, 0.0], "speed": 0.9340034352036515}, {"playerId": "4g3xq", "number": 10, "xyz": [44.26415799693059, 3.8029184385086334, 0.0], "speed": 4.973944364913747}, {"playerId": "8xwx2", "number": 2, "xyz": [-22.64339965368079, 12.867292557469039, 0.0], "speed": 2.539360098765334}, {"playerId": "92vl5", "number": 13, "xyz": [37.17581517251172, 14.178132392224198, 0.0], "speed": 7.213987014085593}, {"playerId": "bvgtb", "number": 16, "xyz": [-0.36670158823311116, -30.871871371427567, 0.0], "speed": 6.817098596462668}, {"playerId": "sfbhd", "number": 5, "xyz": [12.25623746073775, -17.83903077718742, 0.0], "speed": 7.011766380700213}, {"playerId": "1lxq7v", "number": 14, "xyz": [-3.615140078010333, -12.795425352833654, 0.0], "speed": 5.23963714428183}, {"playerId": "45w3q", "number": 3, "xyz": [-34.40941200564183, 3.3309578278583727, 0.0], "speed": 0.45325798077337165}, {"playerId": "um288", "number": 4, "xyz": [-29.004772806575023, -8.513272530051939, 0.0], "speed": 1.8012097357204606}, {"playerId": "dpeid", "number": 9, "xyz": [-50.15402975428308, 28.181764432989166, 0.0], "speed": 0.49467520602480874}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [22.877640951838757, 14.12241193514487, 0], "speed": 6.55564115149095}, {"playerId": "ajjci", "number": 6, "xyz": [-35.57488698542521, 12.81173918462699, 0], "speed": 5.884587418108203}, {"playerId": "h7522d", "number": 2, "xyz": [-5.276109322918218, -6.396736683937843, 0], "speed": 6.817451788828343}, {"playerId": "rifq85", "number": 5, "xyz": [18.799659574236177, 21.736244209792307, 0], "speed": 6.896770971862891}, {"playerId": "g7mov", "number": 14, "xyz": [-5.099661856698622, -24.226144972770605, 0], "speed": 5.090495619330476}, {"playerId": "vopck", "number": 18, "xyz": [-5.1000222146733485, -21.018687826629883, 0], "speed": 5.750346411927617}, {"playerId": "2q0uv", "number": 3, "xyz": [-4.41886475427613, -11.81202302371568, 0], "speed": 1.4273679504112806}, {"playerId": "9bgzhy", "number": 0, "xyz": [20.281206776365266, 22.392814903540653, 0], "speed": 7.204541890311103}, {"playerId": "56zeu", "number": 12, "xyz": [8.542734665200237, 24.052251762172766, 0], "speed": 2.1702095966460364}, {"playerId": "27cl51", "number": 17, "xyz": [41.36732918647973, 5.671818735596581, 0], "speed": 5.581681312750933}, {"playerId": "eh90mu", "number": 15, "xyz": [-19.469929332275676, 28.43749423443066, 0], "speed": 6.214068433736776}], "ball": {"xyz": [-1.1251029491816051, -18.246871578901853, 0.0], "speed": [0.40630798543666824]}, "live": false, "lastTouch": "away"} -{"period": 2, "frameIdx": 136800, "gameClock": 2489.72, "wallClock": 6397080, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [20.702020554713723, -5.257719074025172, 0.0], "speed": 7.249448425900047}, {"playerId": "6isrbi", "number": 19, "xyz": [-27.94606951113423, 7.382667350182066, 0.0], "speed": 7.240936753596381}, {"playerId": "4g3xq", "number": 10, "xyz": [12.017709825555759, -11.374152322107012, 0.0], "speed": 6.172165527909635}, {"playerId": "8xwx2", "number": 2, "xyz": [38.119730952948146, 18.34768569434598, 0.0], "speed": 5.181707293496242}, {"playerId": "92vl5", "number": 13, "xyz": [-9.728902943893472, 20.3774327084254, 0.0], "speed": 6.928351781291016}, {"playerId": "bvgtb", "number": 16, "xyz": [31.584456040207066, -23.011377644507366, 0.0], "speed": 0.2515977556352791}, {"playerId": "sfbhd", "number": 5, "xyz": [-16.990484043714535, -15.683839918192605, 0.0], "speed": 5.164970850174714}, {"playerId": "1lxq7v", "number": 14, "xyz": [13.484893955891256, 9.506628724893023, 0.0], "speed": 7.5961675468003325}, {"playerId": "45w3q", "number": 3, "xyz": [-36.97172568262411, 7.221903367738586, 0.0], "speed": 4.212157425866357}, {"playerId": "um288", "number": 4, "xyz": [25.121665769184933, 16.987392886204717, 0.0], "speed": 6.070418618517113}, {"playerId": "dpeid", "number": 9, "xyz": [27.32949805063694, 27.206419714923832, 0.0], "speed": 2.6174737712418645}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [21.8780310079438, -3.6316802447932903, 0], "speed": 7.059374271404671}, {"playerId": "ajjci", "number": 6, "xyz": [25.58436873684114, 12.773626464642827, 0], "speed": 3.1371795053520497}, {"playerId": "h7522d", "number": 2, "xyz": [-38.53301681889153, -4.608247229710319, 0], "speed": 2.729192697275237}, {"playerId": "rifq85", "number": 5, "xyz": [-10.462526444198279, -29.46478249186786, 0], "speed": 1.282891882683212}, {"playerId": "g7mov", "number": 14, "xyz": [34.40187587885519, 21.812219710322054, 0], "speed": 4.386386730408227}, {"playerId": "vopck", "number": 18, "xyz": [-13.67912597669577, -24.309964658642084, 0], "speed": 7.219892394857762}, {"playerId": "2q0uv", "number": 3, "xyz": [17.02359613085296, 33.34686464797767, 0], "speed": 2.5684822518204564}, {"playerId": "9bgzhy", "number": 0, "xyz": [39.016805670416865, -31.245231793520524, 0], "speed": 2.905781909783177}, {"playerId": "56zeu", "number": 12, "xyz": [-49.7974424687582, -9.741365546417978, 0], "speed": 0.7035414748319537}, {"playerId": "27cl51", "number": 17, "xyz": [27.759000877065738, -13.380762244106343, 0], "speed": 1.782270216916488}, {"playerId": "eh90mu", "number": 15, "xyz": [12.327762020250546, 27.613675058153365, 0], "speed": 7.147219991342089}], "ball": {"xyz": [47.810907441301666, 21.877243203545696, 0.0], "speed": [4.000167014675415]}, "live": false, "lastTouch": "away"} -{"period": 2, "frameIdx": 137200, "gameClock": 2505.72, "wallClock": 6413080, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [50.59645563188912, 12.016828281432868, 0.0], "speed": 7.956683526387555}, {"playerId": "6isrbi", "number": 19, "xyz": [5.436941116324285, -5.063077195593298, 0.0], "speed": 4.264144065592507}, {"playerId": "4g3xq", "number": 10, "xyz": [-35.80476517542413, 2.9470261916860077, 0.0], "speed": 5.373015571800024}, {"playerId": "8xwx2", "number": 2, "xyz": [20.882245118904496, 7.241419735009379, 0.0], "speed": 3.874415369947485}, {"playerId": "92vl5", "number": 13, "xyz": [30.898019352579865, -26.12275082104185, 0.0], "speed": 3.796392249610059}, {"playerId": "bvgtb", "number": 16, "xyz": [45.25235476504874, -11.20617658304883, 0.0], "speed": 6.565710819463988}, {"playerId": "sfbhd", "number": 5, "xyz": [51.031492781456706, -2.013161650154768, 0.0], "speed": 1.6700430156589805}, {"playerId": "1lxq7v", "number": 14, "xyz": [23.721374598752305, 7.294997891128798, 0.0], "speed": 3.967859790362123}, {"playerId": "45w3q", "number": 3, "xyz": [29.771359082562917, 7.444527650044944, 0.0], "speed": 1.8860442997706892}, {"playerId": "um288", "number": 4, "xyz": [-42.32980238300597, -6.972366704972056, 0.0], "speed": 5.228981314744546}, {"playerId": "dpeid", "number": 9, "xyz": [-18.69314061601177, 6.550709120541461, 0.0], "speed": 3.6496483475508006}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [21.84919136527105, -18.470977572661663, 0], "speed": 6.788187758591441}, {"playerId": "ajjci", "number": 6, "xyz": [32.8505706115267, -13.910930103409891, 0], "speed": 3.995258431613591}, {"playerId": "h7522d", "number": 2, "xyz": [-47.65548412714569, 6.824947399476702, 0], "speed": 1.6471171302798844}, {"playerId": "rifq85", "number": 5, "xyz": [-42.73450690285906, -4.57608106613387, 0], "speed": 1.0749463425186274}, {"playerId": "g7mov", "number": 14, "xyz": [-48.69902000928725, 9.336037516314263, 0], "speed": 5.4599263745080595}, {"playerId": "vopck", "number": 18, "xyz": [20.18430652379309, -21.283841786470983, 0], "speed": 2.1712215234824894}, {"playerId": "2q0uv", "number": 3, "xyz": [50.29557495650659, -23.87806457002127, 0], "speed": 0.5631222509848266}, {"playerId": "9bgzhy", "number": 0, "xyz": [-34.44509070525071, 29.9162129617657, 0], "speed": 1.4991024875091394}, {"playerId": "56zeu", "number": 12, "xyz": [-0.10991798148239433, -30.48820489339032, 0], "speed": 0.7589026708489568}, {"playerId": "27cl51", "number": 17, "xyz": [-26.24306946574163, 20.829979108860854, 0], "speed": 6.739316570673956}, {"playerId": "eh90mu", "number": 15, "xyz": [37.07580101863248, 28.317344646612227, 0], "speed": 7.822270270284809}], "ball": {"xyz": [-20.40494597112683, 6.0383540284165305, 0.0], "speed": [2.821894688534182]}, "live": false, "lastTouch": "home"} +{"period": 2, "frameIdx": 136800, "gameClock": 2489.72, "wallClock": 6397080, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [20.702020554713723, -5.257719074025172, 0.0], "speed": 7.249448425900047}, {"playerId": "6isrbi", "number": 19, "xyz": [-27.94606951113423, 7.382667350182066, 0.0], "speed": 7.240936753596381}, {"playerId": "4g3xq", "number": 10, "xyz": [12.017709825555759, -11.374152322107012, 0.0], "speed": 6.172165527909635}, {"playerId": "8xwx2", "number": 2, "xyz": [38.119730952948146, 18.34768569434598, 0.0], "speed": 5.181707293496242}, {"playerId": "92vl5", "number": 13, "xyz": [-9.728902943893472, 20.3774327084254, 0.0], "speed": 6.928351781291016}, {"playerId": "bvgtb", "number": 16, "xyz": [31.584456040207066, -23.011377644507366, 0.0], "speed": 0.2515977556352791}, {"playerId": "sfbhd", "number": 5, "xyz": [-16.990484043714535, -15.683839918192605, 0.0], "speed": 5.164970850174714}, {"playerId": "1lxq7v", "number": 14, "xyz": [13.484893955891256, 9.506628724893023, 0.0], "speed": 7.5961675468003325}, {"playerId": "45w3q", "number": 3, "xyz": [-36.97172568262411, 7.221903367738586, 0.0], "speed": 4.212157425866357}, {"playerId": "um288", "number": 4, "xyz": [25.121665769184933, 16.987392886204717, 0.0], "speed": 6.070418618517113}, {"playerId": "dpeid", "number": 9, "xyz": [27.32949805063694, 27.206419714923832, 0.0], "speed": 2.6174737712418645}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [21.8780310079438, -3.6316802447932903, 0], "speed": 7.059374271404671}, {"playerId": "ajjci", "number": 6, "xyz": [25.58436873684114, 12.773626464642827, 0], "speed": 3.1371795053520497}, {"playerId": "h7522d", "number": 2, "xyz": [-38.53301681889153, -4.608247229710319, 0], "speed": 2.729192697275237}, {"playerId": "rifq85", "number": 5, "xyz": [-10.462526444198279, -29.46478249186786, 0], "speed": 1.282891882683212}, {"playerId": "g7mov", "number": 14, "xyz": [34.40187587885519, 21.812219710322054, 0], "speed": 4.386386730408227}, {"playerId": "vopck", "number": 18, "xyz": [-13.67912597669577, -24.309964658642084, 0], "speed": 7.219892394857762}, {"playerId": "2q0uv", "number": 3, "xyz": [17.02359613085296, 33.34686464797767, 0], "speed": 2.5684822518204564}, {"playerId": "9bgzhy", "number": 0, "xyz": [39.016805670416865, -31.245231793520524, 0], "speed": 2.905781909783177}, {"playerId": "56zeu", "number": 12, "xyz": [-49.7974424687582, -9.741365546417978, 0], "speed": 0.7035414748319537}, {"playerId": "27cl51", "number": 17, "xyz": [27.759000877065738, -13.380762244106343, 0], "speed": 1.782270216916488}, {"playerId": "eh90mu", "number": 15, "xyz": [12.327762020250546, 27.613675058153365, 0], "speed": 7.147219991342089}], "ball": {"xyz": [47.810907441301666, 21.877243203545696, -10], "speed": [4.000167014675415]}, "live": false, "lastTouch": "away"} +{"period": 2, "frameIdx": 137200, "gameClock": 2505.72, "wallClock": 6413080, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [50.59645563188912, 12.016828281432868, 0.0], "speed": 7.956683526387555}, {"playerId": "6isrbi", "number": 19, "xyz": [5.436941116324285, -5.063077195593298, 0.0], "speed": 4.264144065592507}, {"playerId": "4g3xq", "number": 10, "xyz": [-35.80476517542413, 2.9470261916860077, 0.0], "speed": 5.373015571800024}, {"playerId": "8xwx2", "number": 2, "xyz": [20.882245118904496, 7.241419735009379, 0.0], "speed": 3.874415369947485}, {"playerId": "92vl5", "number": 13, "xyz": [30.898019352579865, -26.12275082104185, 0.0], "speed": 3.796392249610059}, {"playerId": "bvgtb", "number": 16, "xyz": [45.25235476504874, -11.20617658304883, 0.0], "speed": 6.565710819463988}, {"playerId": "sfbhd", "number": 5, "xyz": [51.031492781456706, -2.013161650154768, 0.0], "speed": 1.6700430156589805}, {"playerId": "1lxq7v", "number": 14, "xyz": [23.721374598752305, 7.294997891128798, 0.0], "speed": 3.967859790362123}, {"playerId": "45w3q", "number": 3, "xyz": [29.771359082562917, 7.444527650044944, 0.0], "speed": 1.8860442997706892}, {"playerId": "um288", "number": 4, "xyz": [-42.32980238300597, -6.972366704972056, 0.0], "speed": 5.228981314744546}, {"playerId": "dpeid", "number": 9, "xyz": [-18.69314061601177, 6.550709120541461, 0.0], "speed": 3.6496483475508006}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [21.84919136527105, -18.470977572661663, 0], "speed": 6.788187758591441}, {"playerId": "ajjci", "number": 6, "xyz": [32.8505706115267, -13.910930103409891, 0], "speed": 3.995258431613591}, {"playerId": "h7522d", "number": 2, "xyz": [-47.65548412714569, 6.824947399476702, 0], "speed": 1.6471171302798844}, {"playerId": "rifq85", "number": 5, "xyz": [-42.73450690285906, -4.57608106613387, 0], "speed": 1.0749463425186274}, {"playerId": "g7mov", "number": 14, "xyz": [-48.69902000928725, 9.336037516314263, 0], "speed": 5.4599263745080595}, {"playerId": "vopck", "number": 18, "xyz": [20.18430652379309, -21.283841786470983, 0], "speed": 2.1712215234824894}, {"playerId": "2q0uv", "number": 3, "xyz": [50.29557495650659, -23.87806457002127, 0], "speed": 0.5631222509848266}, {"playerId": "9bgzhy", "number": 0, "xyz": [-34.44509070525071, 29.9162129617657, 0], "speed": 1.4991024875091394}, {"playerId": "56zeu", "number": 12, "xyz": [-0.10991798148239433, -30.48820489339032, 0], "speed": 0.7589026708489568}, {"playerId": "27cl51", "number": 17, "xyz": [-26.24306946574163, 20.829979108860854, 0], "speed": 6.739316570673956}, {"playerId": "eh90mu", "number": 15, "xyz": [37.07580101863248, 28.317344646612227, 0], "speed": 7.822270270284809}], "ball": {"xyz": [-20.40494597112683, 6.0383540284165305, -10], "speed": [2.821894688534182]}, "live": false, "lastTouch": "home"} {"period": 2, "frameIdx": 137600, "gameClock": 2521.72, "wallClock": 6429080, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [-50.878274504581746, 11.167538836100892, 0.0], "speed": 5.79684251937927}, {"playerId": "6isrbi", "number": 19, "xyz": [7.8704549006253055, -12.075994158578316, 0.0], "speed": 5.848290404151942}, {"playerId": "4g3xq", "number": 10, "xyz": [26.662577182746897, -30.365562035076593, 0.0], "speed": 1.139173784425573}, {"playerId": "8xwx2", "number": 2, "xyz": [10.085344242510615, 22.038196628948693, 0.0], "speed": 2.683565373534381}, {"playerId": "92vl5", "number": 13, "xyz": [-34.15331241695843, -3.2137856680710963, 0.0], "speed": 2.453672945565744}, {"playerId": "bvgtb", "number": 16, "xyz": [-41.753759477698395, 14.912586261909533, 0.0], "speed": 0.42576432414037413}, {"playerId": "sfbhd", "number": 5, "xyz": [19.874168957120727, -27.298935023529282, 0.0], "speed": 0.5584793473327343}, {"playerId": "1lxq7v", "number": 14, "xyz": [-33.0285258221744, 30.375292167127952, 0.0], "speed": 6.6103406187107145}, {"playerId": "45w3q", "number": 3, "xyz": [-26.471198161393698, -25.031386066545835, 0.0], "speed": 1.0645319047231476}, {"playerId": "um288", "number": 4, "xyz": [2.5052435704496863, 9.252611288247001, 0.0], "speed": 0.9982404252457817}, {"playerId": "dpeid", "number": 9, "xyz": [7.377765906501945, -10.37067821019842, 0.0], "speed": 1.0709703289034236}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [-31.987722825657283, -17.031786119565567, 0], "speed": 5.08302344598033}, {"playerId": "ajjci", "number": 6, "xyz": [11.648855267597122, -30.709818274872337, 0], "speed": 7.167044997129477}, {"playerId": "h7522d", "number": 2, "xyz": [-47.44787083579745, 22.68260054906992, 0], "speed": 7.265269971206785}, {"playerId": "rifq85", "number": 5, "xyz": [51.6899347314095, 24.96269643000419, 0], "speed": 4.4269480130839005}, {"playerId": "g7mov", "number": 14, "xyz": [-18.466660850711865, 16.757921537113166, 0], "speed": 2.0019732748211228}, {"playerId": "vopck", "number": 18, "xyz": [-47.51462280654489, -26.74707305765976, 0], "speed": 0.5865458732231978}, {"playerId": "2q0uv", "number": 3, "xyz": [21.179756704990783, 16.519583560341268, 0], "speed": 7.1178080256137735}, {"playerId": "9bgzhy", "number": 0, "xyz": [-13.403772967325116, 4.381157329186082, 0], "speed": 3.830948660610029}, {"playerId": "56zeu", "number": 12, "xyz": [-6.483458605288437, -31.820284934776854, 0], "speed": 3.0336859227814124}, {"playerId": "27cl51", "number": 17, "xyz": [-23.462389400666, -33.59871650632808, 0], "speed": 0.42602722438760665}, {"playerId": "eh90mu", "number": 15, "xyz": [36.63244064153498, 15.036166171078584, 0], "speed": 4.012402646419718}], "ball": {"xyz": [-0.03238119293969993, -0.013578387345179651, 0.0], "speed": [5.847419651721508]}, "live": false, "lastTouch": "away"} {"period": 2, "frameIdx": 138000, "gameClock": 2537.72, "wallClock": 6445080, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [31.441257046233865, -6.650484795897991, 0.0], "speed": 1.0447412859945677}, {"playerId": "6isrbi", "number": 19, "xyz": [-7.176459417228732, 29.223280630507197, 0.0], "speed": 4.096350559493633}, {"playerId": "4g3xq", "number": 10, "xyz": [-34.7409322733077, 13.949046611154245, 0.0], "speed": 5.791716506654189}, {"playerId": "8xwx2", "number": 2, "xyz": [-21.345766401158244, 2.477523902331366, 0.0], "speed": 2.525231723394601}, {"playerId": "92vl5", "number": 13, "xyz": [-21.07411157569546, 21.455113603424483, 0.0], "speed": 1.4634712467152529}, {"playerId": "bvgtb", "number": 16, "xyz": [-17.858601672723083, -22.63886244533075, 0.0], "speed": 5.204504468453045}, {"playerId": "sfbhd", "number": 5, "xyz": [-41.497517436989945, -12.582082985884616, 0.0], "speed": 4.35809952107062}, {"playerId": "1lxq7v", "number": 14, "xyz": [-21.33732764196312, 16.183970995462523, 0.0], "speed": 7.524624526231149}, {"playerId": "45w3q", "number": 3, "xyz": [9.919186992794668, 10.590071085141979, 0.0], "speed": 2.6149822451913085}, {"playerId": "um288", "number": 4, "xyz": [20.686521825678454, -22.997710563389287, 0.0], "speed": 3.8506102509956595}, {"playerId": "dpeid", "number": 9, "xyz": [-42.56432249470683, 26.25944648302312, 0.0], "speed": 4.535679604443861}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [29.276106439060463, 24.834587120357764, 0], "speed": 3.1862869629684862}, {"playerId": "ajjci", "number": 6, "xyz": [-13.973618796021606, -4.7992481491164245, 0], "speed": 1.5794483482435986}, {"playerId": "h7522d", "number": 2, "xyz": [-51.273810569600066, -17.107001254225196, 0], "speed": 5.981908589328094}, {"playerId": "rifq85", "number": 5, "xyz": [25.761542293200737, -29.936743336929563, 0], "speed": 3.012677651117607}, {"playerId": "g7mov", "number": 14, "xyz": [49.442013991856356, -16.435071105983653, 0], "speed": 5.347466662199856}, {"playerId": "vopck", "number": 18, "xyz": [-8.806521752860787, 16.573141428685908, 0], "speed": 0.030713604211817014}, {"playerId": "2q0uv", "number": 3, "xyz": [-30.072909764284987, -28.732743723402294, 0], "speed": 1.572457647551075}, {"playerId": "9bgzhy", "number": 0, "xyz": [-6.682741283976896, 11.83446073812002, 0], "speed": 1.5637801412149885}, {"playerId": "56zeu", "number": 12, "xyz": [17.65495591033532, -19.77186152237292, 0], "speed": 6.393797274999985}, {"playerId": "27cl51", "number": 17, "xyz": [30.551553945769996, -9.633877006268046, 0], "speed": 3.359978483930802}, {"playerId": "eh90mu", "number": 15, "xyz": [51.06717943898688, -1.1656458341239104, 0], "speed": 7.274913232048619}], "ball": {"xyz": [50.71230035519709, -11.797422849374389, 0.0], "speed": [3.7223552120926744]}, "live": false, "lastTouch": "away"} {"period": 2, "frameIdx": 138400, "gameClock": 2553.72, "wallClock": 6461080, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [23.823563031794567, -22.93288618762472, 0.0], "speed": 7.944626190054744}, {"playerId": "6isrbi", "number": 19, "xyz": [-19.143199694579835, 14.139975649211662, 0.0], "speed": 6.148227493083649}, {"playerId": "4g3xq", "number": 10, "xyz": [-10.849694797863462, -2.1297337364033555, 0.0], "speed": 2.8277974301525903}, {"playerId": "8xwx2", "number": 2, "xyz": [21.2683457669528, -11.634871039183947, 0.0], "speed": 4.567514335635992}, {"playerId": "92vl5", "number": 13, "xyz": [15.248374365610449, 22.158750624599133, 0.0], "speed": 7.87857682036295}, {"playerId": "bvgtb", "number": 16, "xyz": [40.28395214559941, 23.991360153820626, 0.0], "speed": 6.375994966114212}, {"playerId": "sfbhd", "number": 5, "xyz": [-46.640015247019406, -28.36871548511415, 0.0], "speed": 2.6686625656392797}, {"playerId": "1lxq7v", "number": 14, "xyz": [-29.9701190806392, -26.275071581890113, 0.0], "speed": 3.358695524272033}, {"playerId": "45w3q", "number": 3, "xyz": [-34.78254133723952, -8.176524774877617, 0.0], "speed": 0.6103239717769346}, {"playerId": "um288", "number": 4, "xyz": [-21.509333279886864, -1.9486430916687412, 0.0], "speed": 7.061012147764805}, {"playerId": "dpeid", "number": 9, "xyz": [-11.348480899927123, -24.121527741066494, 0.0], "speed": 7.667962984319988}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [-12.550164133050298, 13.031220800186173, 0], "speed": 3.0786461737100534}, {"playerId": "ajjci", "number": 6, "xyz": [-31.1422686774422, 3.4400678383693952, 0], "speed": 3.787786265135508}, {"playerId": "h7522d", "number": 2, "xyz": [-17.258980905258092, -15.61991101835349, 0], "speed": 7.930149490791096}, {"playerId": "rifq85", "number": 5, "xyz": [-15.724472072708203, -13.271648751106355, 0], "speed": 2.412827744387907}, {"playerId": "g7mov", "number": 14, "xyz": [0.183350285590964, 18.81706655129413, 0], "speed": 3.886334399509198}, {"playerId": "vopck", "number": 18, "xyz": [26.980829714266168, -21.03529563005715, 0], "speed": 1.5077541946456385}, {"playerId": "2q0uv", "number": 3, "xyz": [-49.95522244570507, -31.541464182589532, 0], "speed": 2.5751472440958025}, {"playerId": "9bgzhy", "number": 0, "xyz": [1.2832085948831198, -11.42719513199307, 0], "speed": 6.85166520945954}, {"playerId": "56zeu", "number": 12, "xyz": [41.116332102276736, 17.39447409098854, 0], "speed": 6.950748620954674}, {"playerId": "27cl51", "number": 17, "xyz": [-5.149457447152312, -28.179976160962973, 0], "speed": 4.055576497050476}, {"playerId": "eh90mu", "number": 15, "xyz": [7.558245157146075, -6.848474838998904, 0], "speed": 2.9635845714714115}], "ball": {"xyz": [-17.42808713597352, 7.696630383885764, 0.0], "speed": [7.563346013410586]}, "live": true, "lastTouch": "away"} @@ -373,4 +373,4 @@ {"period": 2, "frameIdx": 148800, "gameClock": 2969.72, "wallClock": 6877080, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [-42.412594657354035, -17.163272041132476, 0.0], "speed": 2.311394590509968}, {"playerId": "6isrbi", "number": 19, "xyz": [-33.40346679678434, 9.156384449661319, 0.0], "speed": 7.84011862382227}, {"playerId": "4g3xq", "number": 10, "xyz": [23.943718178862728, -11.320652474687076, 0.0], "speed": 2.6610577325479063}, {"playerId": "8xwx2", "number": 2, "xyz": [15.384092617494083, -18.41732912416457, 0.0], "speed": 6.585380770150086}, {"playerId": "92vl5", "number": 13, "xyz": [-17.87995823533412, -21.410580876590107, 0.0], "speed": 4.138842170821218}, {"playerId": "bvgtb", "number": 16, "xyz": [6.569326313206231, -3.7195484454581695, 0.0], "speed": 2.25809684764579}, {"playerId": "sfbhd", "number": 5, "xyz": [-33.129962276090225, -1.3264201541479712, 0.0], "speed": 3.269114502588044}, {"playerId": "1lxq7v", "number": 14, "xyz": [-22.847156775532994, -27.354013724125874, 0.0], "speed": 4.437201705587351}, {"playerId": "45w3q", "number": 3, "xyz": [-15.250810771404492, -0.3865676499774949, 0.0], "speed": 0.4744003250479638}, {"playerId": "um288", "number": 4, "xyz": [-28.19225654443735, -2.7163052960257357, 0.0], "speed": 6.330942811325788}, {"playerId": "dpeid", "number": 9, "xyz": [-50.11336769551094, 0.5676985105614788, 0.0], "speed": 6.598762835461392}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [39.23611387366415, -17.398251524524607, 0], "speed": 2.568687071203489}, {"playerId": "x7i3b2", "number": 8, "xyz": [50.907447542022794, -6.737164102319747, 0], "speed": 1.9106523166571243}, {"playerId": "ajjci", "number": 6, "xyz": [12.459383362901109, -17.83616872304839, 0], "speed": 2.682297135725057}, {"playerId": "h7522d", "number": 2, "xyz": [28.506150219730664, 26.607457768938993, 0], "speed": 0.1255776525359149}, {"playerId": "g7mov", "number": 14, "xyz": [-6.154946919104789, -0.1971202090723267, 0], "speed": 2.2199492849252955}, {"playerId": "hmutb", "number": 1, "xyz": [30.701517264601783, -6.147206042032253, 0], "speed": 5.877090083525549}, {"playerId": "vopck", "number": 18, "xyz": [1.900536728573982, -31.84814268677833, 0], "speed": 0.52353338407758}, {"playerId": "2q0uv", "number": 3, "xyz": [48.599873517622875, -9.006562660260503, 0], "speed": 3.613313889852777}, {"playerId": "9bgzhy", "number": 0, "xyz": [25.170335409765922, -7.011441978874988, 0], "speed": 0.8507732538355279}, {"playerId": "56zeu", "number": 12, "xyz": [32.209344598053434, -14.40061359412617, 0], "speed": 3.3654419331549175}, {"playerId": "27cl51", "number": 17, "xyz": [-3.8373929012175463, 4.734167210907343, 0], "speed": 5.369636612744847}], "ball": {"xyz": [-8.362703386009697, -9.214408715188508, 0.0], "speed": [6.682868806766918]}, "live": false, "lastTouch": "home"} {"period": 2, "frameIdx": 149200, "gameClock": 2985.72, "wallClock": 6893080, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [-36.111443178479796, -6.3645682481028345, 0.0], "speed": 0.678919930232234}, {"playerId": "6isrbi", "number": 19, "xyz": [1.683376942149818, 32.01274386354772, 0.0], "speed": 7.079548264696029}, {"playerId": "4g3xq", "number": 10, "xyz": [41.028653732012934, -2.121292452491107, 0.0], "speed": 2.4560406495104044}, {"playerId": "8xwx2", "number": 2, "xyz": [-1.8818740948871004, 33.18970919801248, 0.0], "speed": 5.422474511479335}, {"playerId": "92vl5", "number": 13, "xyz": [40.036873108203736, 1.391314931615685, 0.0], "speed": 5.838462602077867}, {"playerId": "bvgtb", "number": 16, "xyz": [15.69610325271678, -28.49133467788151, 0.0], "speed": 6.236329032228433}, {"playerId": "sfbhd", "number": 5, "xyz": [24.757361758240332, -23.671161923067263, 0.0], "speed": 3.2324623720799543}, {"playerId": "1lxq7v", "number": 14, "xyz": [47.25017369573883, -22.913002754986408, 0.0], "speed": 7.726034224371577}, {"playerId": "45w3q", "number": 3, "xyz": [-12.307350752914068, -29.569129072723204, 0.0], "speed": 1.025231833583935}, {"playerId": "um288", "number": 4, "xyz": [-17.523321391656065, -14.569419666531125, 0.0], "speed": 6.160609413043422}, {"playerId": "dpeid", "number": 9, "xyz": [23.908458869251607, -12.770358900881341, 0.0], "speed": 1.482040368778807}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [-14.053682693673265, 32.73052998716376, 0], "speed": 4.086322599569116}, {"playerId": "x7i3b2", "number": 8, "xyz": [8.532439880994781, -2.9378376689726453, 0], "speed": 6.101143187523411}, {"playerId": "ajjci", "number": 6, "xyz": [31.708350237967075, -21.357578978668993, 0], "speed": 1.7059838523166517}, {"playerId": "h7522d", "number": 2, "xyz": [31.992777282724397, -15.898764486047352, 0], "speed": 0.04570998359783118}, {"playerId": "g7mov", "number": 14, "xyz": [-51.449422894576514, 21.770654950141868, 0], "speed": 7.153549425815564}, {"playerId": "hmutb", "number": 1, "xyz": [-35.553379085719975, -16.85265712315096, 0], "speed": 0.589973185774177}, {"playerId": "vopck", "number": 18, "xyz": [14.85575644656703, -3.516498956252534, 0], "speed": 7.141079923590622}, {"playerId": "2q0uv", "number": 3, "xyz": [-41.18547984161123, 26.0753953641804, 0], "speed": 2.6208962950841155}, {"playerId": "9bgzhy", "number": 0, "xyz": [46.58617291907712, 14.671441234490624, 0], "speed": 6.095079080598807}, {"playerId": "56zeu", "number": 12, "xyz": [46.974865582106595, 19.846247533339653, 0], "speed": 0.8501148228263}, {"playerId": "27cl51", "number": 17, "xyz": [-43.90346478371897, -6.17735703491763, 0], "speed": 3.568153148260521}], "ball": {"xyz": [15.32974139716545, 26.104321001869582, 0.0], "speed": [6.536355762710462]}, "live": false, "lastTouch": "away"} {"period": 2, "frameIdx": 149600, "gameClock": 3001.72, "wallClock": 6909080, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [49.73372133054258, -33.370849810230105, 0.0], "speed": 5.8941880743592705}, {"playerId": "6isrbi", "number": 19, "xyz": [36.6213767580925, 20.948176279672914, 0.0], "speed": 7.275450264740144}, {"playerId": "4g3xq", "number": 10, "xyz": [-4.832771160270648, 30.14599453997787, 0.0], "speed": 5.0814621862263225}, {"playerId": "8xwx2", "number": 2, "xyz": [-32.52603954642539, -17.521907728847832, 0.0], "speed": 5.945369962547113}, {"playerId": "92vl5", "number": 13, "xyz": [-35.64120089457274, 19.083711015860498, 0.0], "speed": 7.703011195652603}, {"playerId": "bvgtb", "number": 16, "xyz": [7.666525922666112, -24.782174357769353, 0.0], "speed": 3.561951990972198}, {"playerId": "sfbhd", "number": 5, "xyz": [25.347129666334723, 22.04157184961042, 0.0], "speed": 2.8856808650574433}, {"playerId": "1lxq7v", "number": 14, "xyz": [-28.349356214868784, 9.099979221097355, 0.0], "speed": 1.733920742505945}, {"playerId": "45w3q", "number": 3, "xyz": [-10.012657429175123, -28.743915566938966, 0.0], "speed": 6.907292772019507}, {"playerId": "um288", "number": 4, "xyz": [-19.095224949667603, -15.976452256030099, 0.0], "speed": 6.537943088275311}, {"playerId": "dpeid", "number": 9, "xyz": [11.189006970832136, 25.67633798823567, 0.0], "speed": 0.8327894011933159}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [-51.30632807821517, 7.386494515745372, 0], "speed": 7.377295023021337}, {"playerId": "x7i3b2", "number": 8, "xyz": [51.09912210306819, -15.047148445799088, 0], "speed": 0.6585810518788024}, {"playerId": "ajjci", "number": 6, "xyz": [-25.027650185589426, -32.949088986726245, 0], "speed": 3.6652799713270596}, {"playerId": "h7522d", "number": 2, "xyz": [-7.716098486926601, 16.55068326305048, 0], "speed": 1.367694368186756}, {"playerId": "g7mov", "number": 14, "xyz": [5.366646452254683, 31.995532594836448, 0], "speed": 7.3935731594929965}, {"playerId": "hmutb", "number": 1, "xyz": [40.52446806535083, -14.5893347222315, 0], "speed": 4.809403386076843}, {"playerId": "vopck", "number": 18, "xyz": [31.143045518909965, 32.13244137493612, 0], "speed": 4.235163857722274}, {"playerId": "2q0uv", "number": 3, "xyz": [8.144616442361222, 17.168267600985754, 0], "speed": 0.9634629234482706}, {"playerId": "9bgzhy", "number": 0, "xyz": [14.027412940546709, 16.44621530726352, 0], "speed": 7.719832703716616}, {"playerId": "56zeu", "number": 12, "xyz": [-1.4458588130496812, 28.453100257761655, 0], "speed": 5.2524451081416315}, {"playerId": "27cl51", "number": 17, "xyz": [34.46511667658588, 7.629226384866173, 0], "speed": 6.969983675610135}], "ball": {"xyz": [-44.8854249843057, -19.002092007454834, 0.0], "speed": [1.4419880882377045]}, "live": false, "lastTouch": "home"} -{"period": 2, "frameIdx": 150000, "gameClock": 3017.72, "wallClock": 6925080, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [40.98839965126964, 7.265764539894624, 0.0], "speed": 1.2498505650154108}, {"playerId": "6isrbi", "number": 19, "xyz": [-36.13887869453001, -20.37762378979965, 0.0], "speed": 4.798677449059789}, {"playerId": "4g3xq", "number": 10, "xyz": [-38.49905191572739, 16.06323918936906, 0.0], "speed": 4.596832978750196}, {"playerId": "8xwx2", "number": 2, "xyz": [24.24373540007181, 5.4498076960634965, 0.0], "speed": 0.09015069093479333}, {"playerId": "92vl5", "number": 13, "xyz": [-39.42943167379864, 18.118023084472703, 0.0], "speed": 4.75744522689694}, {"playerId": "bvgtb", "number": 16, "xyz": [-35.431121620725484, -2.546334661394605, 0.0], "speed": 7.680459321929309}, {"playerId": "sfbhd", "number": 5, "xyz": [12.262884514529036, 1.7209983378936209, 0.0], "speed": 7.078499991522914}, {"playerId": "1lxq7v", "number": 14, "xyz": [-18.012184821029795, -19.03942186049466, 0.0], "speed": 4.192228464564338}, {"playerId": "45w3q", "number": 3, "xyz": [38.12143186272572, 0.30392084336357206, 0.0], "speed": 2.791072309378693}, {"playerId": "um288", "number": 4, "xyz": [15.762560705651103, 13.129093172312656, 0.0], "speed": 2.5016619512746763}, {"playerId": "dpeid", "number": 9, "xyz": [27.100973276450958, -25.970243758221354, 0.0], "speed": 5.862986911392098}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [36.829423038201334, -0.04906077326153229, 0], "speed": 4.311305435493262}, {"playerId": "x7i3b2", "number": 8, "xyz": [-49.66967946980456, 17.48933215766087, 0], "speed": 6.221472179777439}, {"playerId": "ajjci", "number": 6, "xyz": [46.768822564815366, -10.878636635292205, 0], "speed": 1.969328727667489}, {"playerId": "h7522d", "number": 2, "xyz": [-47.11860537505015, 31.617378045032485, 0], "speed": 1.044059774490048}, {"playerId": "g7mov", "number": 14, "xyz": [27.31256914116606, 29.439755224664633, 0], "speed": 3.5966417736425136}, {"playerId": "hmutb", "number": 1, "xyz": [17.338933618416, -25.617940529101183, 0], "speed": 6.751339607322501}, {"playerId": "vopck", "number": 18, "xyz": [49.504421425280874, -5.278987093305718, 0], "speed": 1.9428154058634872}, {"playerId": "2q0uv", "number": 3, "xyz": [-23.80346895391713, 16.397517905570744, 0], "speed": 3.350811938223363}, {"playerId": "9bgzhy", "number": 0, "xyz": [44.26354879100769, 14.639570572338206, 0], "speed": 7.729380040795337}, {"playerId": "56zeu", "number": 12, "xyz": [-40.202490857394885, -10.7276507729205, 0], "speed": 7.176668196105463}, {"playerId": "27cl51", "number": 17, "xyz": [-3.700402595458427, -25.8665838403483, 0], "speed": 2.6761495858556916}], "ball": {"xyz": [-41.678467718484654, -11.612977075659233, 0.0], "speed": [1.7385162448623355]}, "live": false, "lastTouch": "away"} +{"period": 2, "frameIdx": 150000, "gameClock": 3017.72, "wallClock": 6925080, "homePlayers": [{"playerId": "20grw", "number": 18, "xyz": [40.98839965126964, 7.265764539894624, 0.0], "speed": 1.2498505650154108}, {"playerId": "6isrbi", "number": 19, "xyz": [-36.13887869453001, -20.37762378979965, 0.0], "speed": 4.798677449059789}, {"playerId": "4g3xq", "number": 10, "xyz": [-38.49905191572739, 16.06323918936906, 0.0], "speed": 4.596832978750196}, {"playerId": "8xwx2", "number": 2, "xyz": [24.24373540007181, 5.4498076960634965, 0.0], "speed": 0.09015069093479333}, {"playerId": "92vl5", "number": 13, "xyz": [-39.42943167379864, 18.118023084472703, 0.0], "speed": 4.75744522689694}, {"playerId": "bvgtb", "number": 16, "xyz": [-35.431121620725484, -2.546334661394605, 0.0], "speed": 7.680459321929309}, {"playerId": "sfbhd", "number": 5, "xyz": [12.262884514529036, 1.7209983378936209, 0.0], "speed": 7.078499991522914}, {"playerId": "1lxq7v", "number": 14, "xyz": [-18.012184821029795, -19.03942186049466, 0.0], "speed": 4.192228464564338}, {"playerId": "45w3q", "number": 3, "xyz": [38.12143186272572, 0.30392084336357206, 0.0], "speed": 2.791072309378693}, {"playerId": "um288", "number": 4, "xyz": [15.762560705651103, 13.129093172312656, 0.0], "speed": 2.5016619512746763}, {"playerId": "dpeid", "number": 9, "xyz": [27.100973276450958, -25.970243758221354, 0.0], "speed": 5.862986911392098}], "awayPlayers": [{"playerId": "r63sch", "number": 16, "xyz": [36.829423038201334, -0.04906077326153229, 0], "speed": 4.311305435493262}, {"playerId": "x7i3b2", "number": 8, "xyz": [-49.66967946980456, 17.48933215766087, 0], "speed": 6.221472179777439}, {"playerId": "ajjci", "number": 6, "xyz": [46.768822564815366, -10.878636635292205, 0], "speed": 1.969328727667489}, {"playerId": "h7522d", "number": 2, "xyz": [-47.11860537505015, 31.617378045032485, 0], "speed": 1.044059774490048}, {"playerId": "g7mov", "number": 14, "xyz": [27.31256914116606, 29.439755224664633, 0], "speed": 3.5966417736425136}, {"playerId": "hmutb", "number": 1, "xyz": [17.338933618416, -25.617940529101183, 0], "speed": 6.751339607322501}, {"playerId": "vopck", "number": 18, "xyz": [49.504421425280874, -5.278987093305718, 0], "speed": 1.9428154058634872}, {"playerId": "2q0uv", "number": 3, "xyz": [-23.80346895391713, 16.397517905570744, 0], "speed": 3.350811938223363}, {"playerId": "9bgzhy", "number": 0, "xyz": [44.26354879100769, 14.639570572338206, 0], "speed": 7.729380040795337}, {"playerId": "56zeu", "number": 12, "xyz": [-40.202490857394885, -10.7276507729205, 0], "speed": 7.176668196105463}, {"playerId": "27cl51", "number": 17, "xyz": [-3.700402595458427, -25.8665838403483, 0], "speed": 2.6761495858556916}], "ball": {"xyz": [-41.678467718484654, -11.612977075659233, 0.0], "speed": [1.7385162448623355]}, "live": false, "lastTouch": "away"} \ No newline at end of file diff --git a/kloppy/tests/test_secondspectrum.py b/kloppy/tests/test_secondspectrum.py index 10d249dea..10758305a 100644 --- a/kloppy/tests/test_secondspectrum.py +++ b/kloppy/tests/test_secondspectrum.py @@ -54,6 +54,36 @@ def test_correct_deserialization_limit_sample( ) assert len(dataset.records) == 100 + def test_correct_deserialization_remove_missing_ball_frames( + self, meta_data: Path, raw_data: Path, additional_meta_data: Path + ): + d1 = secondspectrum.load( + meta_data=meta_data, + raw_data=raw_data, + additional_meta_data=additional_meta_data, + only_alive=False, + coordinates="secondspectrum", + limit=100, + sample_rate=(1 / 2), + exclude_missing_ball_frames=True, + ) + assert len(d1.records) == 100 + + d2 = secondspectrum.load( + meta_data=meta_data, + raw_data=raw_data, + additional_meta_data=additional_meta_data, + only_alive=False, + coordinates="secondspectrum", + limit=100, + sample_rate=(1 / 2), + ) + print(len(d2)) + assert ( + d1[-1].frame_id == 80000 + ) # skip 2 frames with ball_z == -10, but still get 100 records + assert d2[-1].frame_id == 79200 + def test_correct_deserialization( self, meta_data: Path, raw_data: Path, additional_meta_data: Path ):