Welcome the MV3500 Assignment 3 (Python Version)
This example simulates the replay of ADSB data collected by FlightAware on 1 Sept, 2021 for N569DS. This aircraft was flying under IFR rules from KMSN to KEFT and back to KMSN.
First, lets look at the data
import pandas as pd
data_frame = pd.read_csv('N569DS_Track_1_Sept_1.csv')
data_frame.head()
Time (EDT) | Latitude | Longitude | Course | kts | mph | feet | Rate | Reporting Facility | |
---|---|---|---|---|---|---|---|---|---|
0 | Wed 08:35:24 PM | 43.1452 | -89.3382 | ← 315° | 86.0 | 99.0 | 950 | NaN | FlightAware ADS-B (KMSN) |
1 | Wed 08:35:24 PM Departure (KMSN) @ Wednesday ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | FlightAware ADS-B (KMSN) |
2 | Wed 08:35:40 PM | 43.1489 | -89.3442 | ← 301° | 81.0 | 93.0 | 1,225 | 938.0 | FlightAware ADS-B (KMSN) |
3 | Wed 08:35:56 PM | 43.1499 | -89.3525 | ← 260° | 92.0 | 106.0 | 1,450 | 984.0 | FlightAware ADS-B (KMSN) |
4 | Wed 08:36:12 PM | 43.1460 | -89.3611 | ↙ 216° | 92.0 | 106.0 | 1,750 | 844.0 | FlightAware ADS-B (KMSN) |
# drop the rows that don't have position data
data_frame = data_frame.dropna()
data_frame = data_frame.reset_index()
data_frame.head()
index | Time (EDT) | Latitude | Longitude | Course | kts | mph | feet | Rate | Reporting Facility | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 2 | Wed 08:35:40 PM | 43.1489 | -89.3442 | ← 301° | 81.0 | 93.0 | 1,225 | 938.0 | FlightAware ADS-B (KMSN) |
1 | 3 | Wed 08:35:56 PM | 43.1499 | -89.3525 | ← 260° | 92.0 | 106.0 | 1,450 | 984.0 | FlightAware ADS-B (KMSN) |
2 | 4 | Wed 08:36:12 PM | 43.1460 | -89.3611 | ↙ 216° | 92.0 | 106.0 | 1,750 | 844.0 | FlightAware ADS-B (KMSN) |
3 | 5 | Wed 08:36:28 PM | 43.1401 | -89.3644 | ↓ 195° | 98.0 | 113.0 | 1,900 | 750.0 | FlightAware ADS-B (KMSN) |
4 | 6 | Wed 08:36:44 PM | 43.1323 | -89.3676 | ↓ 199° | 99.0 | 114.0 | 2,150 | 984.0 | FlightAware ADS-B (KMSN) |
# how many position reports do we have?
len(data_frame)
156
data_frame.tail()
index | Time (EDT) | Latitude | Longitude | Course | kts | mph | feet | Rate | Reporting Facility | |
---|---|---|---|---|---|---|---|---|---|---|
151 | 186 | Wed 11:09:44 PM | 43.0898 | -89.2665 | ↖ 316° | 137.0 | 158.0 | 2,336 | -726.0 | Surface and Near-Surface |
152 | 187 | Wed 11:10:57 PM | 43.1182 | -89.3031 | ↖ 319° | 91.0 | 105.0 | 1,400 | -783.0 | FlightAware ADS-B (KMSN) |
153 | 188 | Wed 11:11:13 PM | 43.1232 | -89.3095 | ← 315° | 93.0 | 107.0 | 1,175 | -703.0 | FlightAware ADS-B (KMSN) |
154 | 189 | Wed 11:11:29 PM | 43.1279 | -89.3156 | ↖ 316° | 89.0 | 102.0 | 1,025 | -563.0 | FlightAware ADS-B (KEFT) |
155 | 190 | Wed 11:11:45 PM | 43.1330 | -89.3222 | ↖ 318° | 88.0 | 101.0 | 875 | -563.0 | FlightAware ADS-B (KMSN) |
# we see that the ADSB network first started collecting position data at 2035 and the last report was at 2311.
# since the data is not that big, lets just display it
for index, row in data_frame.iterrows():
print(index, row['Time (EDT)'], row['Latitude'],row['Longitude'], row['Course'],row['kts'], row['feet'],row['Rate'])
0 Wed 08:35:40 PM 43.1489 -89.3442 ← 301° 81.0 1,225 938.0 1 Wed 08:35:56 PM 43.1499 -89.3525 ← 260° 92.0 1,450 984.0 2 Wed 08:36:12 PM 43.146 -89.3611 ↙ 216° 92.0 1,750 844.0 3 Wed 08:36:28 PM 43.1401 -89.3644 ↓ 195° 98.0 1,900 750.0 4 Wed 08:36:44 PM 43.1323 -89.3676 ↓ 199° 99.0 2,150 984.0 5 Wed 08:37:00 PM 43.1257 -89.3712 ↙ 203° 96.0 2,425 938.0 6 Wed 08:37:16 PM 43.1197 -89.375 ↙ 208° 93.0 2,650 844.0 7 Wed 08:37:32 PM 43.114 -89.3792 ↙ 208° 93.0 2,875 891.0 8 Wed 08:37:48 PM 43.1072 -89.3839 ↙ 208° 92.0 3,125 844.0 9 Wed 08:38:04 PM 43.1018 -89.3877 ↙ 204° 93.0 3,325 797.0 10 Wed 08:38:20 PM 43.0952 -89.3907 ↓ 197° 92.0 3,550 844.0 11 Wed 08:38:36 PM 43.0886 -89.3935 ↓ 198° 92.0 3,775 844.0 12 Wed 08:38:52 PM 43.0819 -89.3965 ↓ 198° 91.0 4,000 300.0 13 Wed 08:39:40 PM 43.0571 -89.4019 ↓ 192° 126.0 4,000 -37.0 14 Wed 08:40:02 PM 43.0436 -89.4057 ↓ 190° 130.0 3,975 -28.0 15 Wed 08:43:34 PM 42.9108 -89.4271 ↓ 187° 137.0 3,975 -25.0 16 Wed 08:44:05 PM 42.8913 -89.4304 ↓ 187° 138.0 3,950 -25.0 17 Wed 08:46:10 PM 42.8133 -89.4315 ↘ 150° 132.0 3,950 43.0 18 Wed 08:46:27 PM 42.8048 -89.425 ↘ 153° 132.0 3,975 38.0 19 Wed 08:46:49 PM 42.7918 -89.4168 ↓ 157° 133.0 3,975 -29.0 20 Wed 08:47:19 PM 42.7749 -89.4074 ↓ 158° 134.0 3,950 -33.0 21 Wed 08:49:06 PM 42.7132 -89.3747 ↓ 159° 136.0 3,950 -49.0 22 Wed 08:49:36 PM 42.6955 -89.3654 ↓ 158° 139.0 3,900 -75.0 23 Wed 08:50:06 PM 42.6773 -89.3558 ↓ 159° 137.0 3,875 -96.0 24 Wed 08:50:23 PM 42.6668 -89.3504 ↓ 159° 141.0 3,825 -191.0 25 Wed 08:50:53 PM 42.648 -89.3406 ↓ 159° 144.0 3,725 -228.0 26 Wed 08:51:09 PM 42.6382 -89.3355 ↓ 159° 145.0 3,650 -261.0 27 Wed 08:51:39 PM 42.6195 -89.3258 ↓ 159° 147.0 3,525 -275.0 28 Wed 08:52:09 PM 42.6007 -89.3159 ↓ 159° 149.0 3,375 -306.0 29 Wed 08:52:28 PM 42.5873 -89.3096 ↓ 167° 153.0 3,275 -243.0 30 Wed 08:52:46 PM 42.5754 -89.3087 ↓ 188° 158.0 3,225 -265.0 31 Wed 08:53:02 PM 42.5641 -89.3117 ↓ 196° 159.0 3,125 -261.0 32 Wed 08:53:32 PM 42.5457 -89.3291 ↙ 222° 160.0 3,025 -250.0 33 Wed 08:54:02 PM 42.5298 -89.3486 ↙ 222° 159.0 2,875 -184.0 34 Wed 08:54:37 PM 42.512 -89.3708 ↙ 223° 139.0 2,875 42.0 35 Wed 08:54:57 PM 42.5036 -89.3835 ↙ 243° 133.0 2,900 75.0 36 Wed 08:55:34 PM 42.5054 -89.4129 ← 304° 126.0 2,900 -105.0 37 Wed 08:56:00 PM 42.5154 -89.4274 ↖ 317° 123.0 2,850 -26.0 38 Wed 08:56:31 PM 42.5282 -89.4432 ↖ 318° 123.0 2,875 25.0 39 Wed 08:57:17 PM 42.5477 -89.4672 ↖ 319° 125.0 2,875 -160.0 40 Wed 08:57:48 PM 42.5617 -89.4833 ↖ 320° 133.0 2,750 -295.0 41 Wed 08:58:13 PM 42.5722 -89.4959 ↖ 316° 110.0 2,600 -522.0 42 Wed 08:58:34 PM 42.5783 -89.5089 ← 299° 119.0 2,350 -824.0 43 Wed 08:59:04 PM 42.5868 -89.5276 ← 300° 108.0 1,900 -702.0 44 Wed 08:59:36 PM 42.5937 -89.5437 ← 301° 84.0 1,625 -469.0 45 Wed 08:59:52 PM 42.5966 -89.5512 ← 300° 83.0 1,525 -321.0 46 Wed 09:00:18 PM 42.6022 -89.5624 ← 305° 87.0 1,400 -359.0 47 Wed 09:00:38 PM 42.6072 -89.572 ← 304° 89.0 1,250 -281.0 48 Wed 09:01:06 PM 42.6134 -89.585 ← 302° 98.0 1,175 142.0 49 Wed 09:01:31 PM 42.6199 -89.5996 ← 298° 97.0 1,375 607.0 50 Wed 09:01:48 PM 42.6232 -89.6085 ← 295° 98.0 1,600 926.0 51 Wed 09:02:05 PM 42.6233 -89.6187 ↙ 239° 101.0 1,900 882.0 52 Wed 09:02:22 PM 42.6174 -89.6261 ↙ 214° 108.0 2,100 568.0 53 Wed 09:02:42 PM 42.608 -89.6273 ↘ 155° 105.0 2,250 500.0 54 Wed 09:03:27 PM 42.5931 -89.6058 ↘ 125° 110.0 2,250 -327.0 55 Wed 09:03:53 PM 42.5853 -89.5915 ↘ 123° 102.0 2,100 -321.0 56 Wed 09:04:09 PM 42.5846 -89.5835 → 76° 85.0 2,025 -542.0 57 Wed 09:04:29 PM 42.5893 -89.5752 ↗ 39° 77.0 1,775 -716.0 58 Wed 09:04:53 PM 42.5962 -89.5697 ↑ 20° 69.0 1,500 -563.0 59 Wed 09:05:09 PM 42.6015 -89.5694 ↑ 345° 75.0 1,400 -557.0 60 Wed 09:05:28 PM 42.6073 -89.5734 ↖ 320° 77.0 1,175 -711.0 61 Wed 10:24:59 PM 42.6111 -89.5676 ↗ 40° 62.0 1,825 857.0 62 Wed 10:25:15 PM 42.6158 -89.5657 ↑ 5° 72.0 2,025 797.0 63 Wed 10:25:31 PM 42.6212 -89.5657 ↑ 355° 75.0 2,250 846.0 64 Wed 10:25:54 PM 42.6291 -89.566 ↑ 6° 74.0 2,575 802.0 65 Wed 10:26:14 PM 42.6358 -89.5645 ↑ 9° 78.0 2,825 770.0 66 Wed 10:26:31 PM 42.6424 -89.5635 ↑ 4° 82.0 3,050 818.0 67 Wed 10:26:58 PM 42.6529 -89.5634 ↑ 358° 82.0 3,425 784.0 68 Wed 10:27:15 PM 42.6592 -89.5637 ↑ 1° 85.0 3,625 750.0 69 Wed 10:27:40 PM 42.669 -89.5625 ↑ 9° 87.0 3,950 733.0 70 Wed 10:27:58 PM 42.6766 -89.5602 ↑ 14° 89.0 4,150 717.0 71 Wed 10:28:26 PM 42.6878 -89.5568 ↑ 11° 90.0 4,500 734.0 72 Wed 10:28:45 PM 42.6959 -89.5545 ↑ 13° 90.0 4,725 649.0 73 Wed 10:29:03 PM 42.7028 -89.5521 ↗ 22° 93.0 4,900 618.0 74 Wed 10:29:19 PM 42.7095 -89.5479 ↗ 24° 97.0 5,075 71.0 75 Wed 10:29:45 PM 42.7234 -89.5416 ↑ 20° 128.0 4,950 -54.0 76 Wed 10:30:15 PM 42.7394 -89.5333 ↑ 20° 131.0 5,025 -55.0 77 Wed 10:30:40 PM 42.7541 -89.5264 ↑ 17° 142.0 4,900 -196.0 78 Wed 10:31:01 PM 42.7681 -89.5203 ↑ 20° 136.0 4,875 -98.0 79 Wed 10:31:26 PM 42.7825 -89.5129 ↑ 19° 131.0 4,825 100.0 80 Wed 10:31:46 PM 42.7933 -89.5091 ↑ 16° 117.0 4,950 341.0 81 Wed 10:32:26 PM 42.8126 -89.5006 ↑ 4° 122.0 4,950 -686.0 82 Wed 10:32:45 PM 42.8236 -89.4983 ↑ 7° 121.0 4,675 -900.0 83 Wed 10:33:01 PM 42.8328 -89.4979 ↑ 5° 124.0 4,425 -932.0 84 Wed 10:33:22 PM 42.8444 -89.496 ↑ 7° 122.0 4,100 -825.0 85 Wed 10:33:41 PM 42.8543 -89.4939 ↑ 9° 115.0 3,875 -673.0 86 Wed 10:34:11 PM 42.8704 -89.4919 ↑ 4° 114.0 3,550 -375.0 87 Wed 10:34:41 PM 42.8864 -89.4905 ↑ 3° 110.0 3,500 -98.0 88 Wed 10:36:23 PM 42.9377 -89.4882 ↑ 4° 106.0 3,500 33.0 89 Wed 10:36:41 PM 42.946 -89.4856 ↗ 24° 104.0 3,500 -122.0 90 Wed 10:37:00 PM 42.9535 -89.4783 ↗ 38° 108.0 3,425 -136.0 91 Wed 10:37:25 PM 42.9638 -89.4693 ↗ 30° 109.0 3,400 -233.0 92 Wed 10:37:45 PM 42.9722 -89.4619 ↗ 34° 115.0 3,250 -450.0 93 Wed 10:38:15 PM 42.9863 -89.4488 ↗ 34° 118.0 3,025 -518.0 94 Wed 10:38:40 PM 42.9986 -89.4405 ↗ 24° 125.0 2,775 -574.0 95 Wed 10:39:02 PM 43.0106 -89.4334 ↗ 25° 125.0 2,575 -540.0 96 Wed 10:39:30 PM 43.0248 -89.4235 ↗ 27° 128.0 2,325 -540.0 97 Wed 10:39:52 PM 43.037 -89.4147 ↗ 26° 131.0 2,125 -513.0 98 Wed 10:40:08 PM 43.045 -89.4094 ↗ 27° 128.0 2,000 -375.0 99 Wed 10:40:24 PM 43.0534 -89.4026 ↗ 32° 124.0 1,925 -464.0 100 Wed 10:40:50 PM 43.0658 -89.3924 ↗ 29° 126.0 1,675 -389.0 101 Wed 10:40:57 PM 43.0696 -89.3896 ↗ 27° 127.0 1,711 -220.0 102 Wed 10:42:12 PM 43.1045 -89.3636 ↗ 30° 88.0 1,375 -287.0 103 Wed 10:42:28 PM 43.1101 -89.3594 ↗ 28° 89.0 1,275 -375.0 104 Wed 10:42:44 PM 43.1157 -89.355 ↗ 30° 87.0 1,175 -375.0 105 Wed 10:43:00 PM 43.1211 -89.351 ↗ 29° 77.0 1,075 -422.0 106 Wed 10:43:16 PM 43.1261 -89.3472 ↗ 28° 72.0 950 -3.0 107 Wed 10:51:21 PM 43.1478 -89.3416 ↖ 328° 84.0 1,050 33.0 108 Wed 10:51:37 PM 43.1531 -89.3443 ↑ 352° 85.0 1,225 750.0 109 Wed 10:51:53 PM 43.1585 -89.3417 ↗ 50° 77.0 1,450 891.0 110 Wed 10:52:09 PM 43.1601 -89.3348 → 86° 73.0 1,700 984.0 111 Wed 10:52:25 PM 43.1607 -89.3269 → 81° 71.0 1,975 891.0 112 Wed 10:52:41 PM 43.1611 -89.3194 → 89° 78.0 2,175 797.0 113 Wed 10:52:57 PM 43.1612 -89.312 → 86° 76.0 2,400 844.0 114 Wed 10:53:13 PM 43.1616 -89.3045 → 87° 77.0 2,625 750.0 115 Wed 10:53:29 PM 43.1616 -89.2964 → 91° 85.0 2,800 469.0 116 Wed 10:53:45 PM 43.1616 -89.2863 → 90° 102.0 2,875 188.0 117 Wed 10:54:01 PM 43.1618 -89.2756 → 88° 113.0 2,900 188.0 118 Wed 10:54:17 PM 43.162 -89.2639 → 90° 116.0 2,975 234.0 119 Wed 10:54:49 PM 43.1615 -89.2396 → 89° 129.0 2,975 -118.0 120 Wed 10:55:49 PM 43.1616 -89.1909 → 90° 133.0 2,875 -33.0 121 Wed 10:56:19 PM 43.1615 -89.1652 → 89° 127.0 2,925 96.0 122 Wed 10:56:36 PM 43.1608 -89.1526 ↘ 117° 127.0 2,950 44.0 123 Wed 10:57:16 PM 43.1358 -89.1463 ↓ 186° 144.0 2,950 31.0 124 Wed 10:57:42 PM 43.1202 -89.1481 ↓ 185° 145.0 2,975 87.0 125 Wed 10:58:08 PM 43.1025 -89.1498 ↓ 182° 144.0 3,025 34.0 126 Wed 10:58:26 PM 43.0908 -89.1497 ↓ 169° 139.0 3,000 -263.0 127 Wed 10:58:48 PM 43.0783 -89.139 ↘ 140° 147.0 2,850 -202.0 128 Wed 10:59:18 PM 43.0633 -89.1222 ↘ 141° 139.0 2,825 50.0 129 Wed 10:59:48 PM 43.0489 -89.1056 ↘ 139° 135.0 2,900 48.0 130 Wed 11:00:41 PM 43.0244 -89.0748 ↘ 135° 137.0 2,900 -29.0 131 Wed 11:01:11 PM 43.0096 -89.0574 ↘ 140° 138.0 2,850 -28.0 132 Wed 11:01:51 PM 42.9898 -89.0365 ↘ 145° 142.0 2,850 -33.0 133 Wed 11:02:21 PM 42.974 -89.0204 ↘ 144° 140.0 2,850 96.0 134 Wed 11:02:38 PM 42.9639 -89.0145 ↓ 169° 141.0 2,925 162.0 135 Wed 11:02:58 PM 42.9499 -89.0129 ↓ 178° 144.0 2,950 324.0 136 Wed 11:03:15 PM 42.9398 -89.0163 ↙ 209° 137.0 3,125 273.0 137 Wed 11:04:07 PM 42.933 -89.0563 ← 309° 141.0 3,100 -79.0 138 Wed 11:04:47 PM 42.9522 -89.0814 ↖ 318° 140.0 3,100 61.0 139 Wed 11:05:17 PM 42.966 -89.0994 ← 314° 139.0 3,125 -153.0 140 Wed 11:05:46 PM 42.9788 -89.1208 ← 307° 152.0 2,950 -351.0 141 Wed 11:06:04 PM 42.9867 -89.1346 ← 312° 151.0 2,850 -293.0 142 Wed 11:06:27 PM 42.9964 -89.1492 ← 314° 149.0 2,750 -308.0 143 Wed 11:06:43 PM 43.0047 -89.1604 ↖ 317° 146.0 2,650 -326.0 144 Wed 11:07:13 PM 43.019 -89.1783 ↖ 317° 144.0 2,500 -50.0 145 Wed 11:07:43 PM 43.0329 -89.1963 ↖ 317° 132.0 2,600 125.0 146 Wed 11:08:13 PM 43.0464 -89.2132 ↖ 320° 130.0 2,625 63.0 147 Wed 11:08:31 PM 43.0554 -89.2237 ↖ 318° 130.0 2,650 -35.0 148 Wed 11:08:56 PM 43.0663 -89.2366 ↖ 319° 137.0 2,600 62.0 149 Wed 11:09:06 PM 43.0713 -89.2427 ↖ 317° 139.0 2,686 -94.0 150 Wed 11:09:21 PM 43.0789 -89.2522 ↖ 318° 145.0 2,561 -553.0 151 Wed 11:09:44 PM 43.0898 -89.2665 ↖ 316° 137.0 2,336 -726.0 152 Wed 11:10:57 PM 43.1182 -89.3031 ↖ 319° 91.0 1,400 -783.0 153 Wed 11:11:13 PM 43.1232 -89.3095 ← 315° 93.0 1,175 -703.0 154 Wed 11:11:29 PM 43.1279 -89.3156 ↖ 316° 89.0 1,025 -563.0 155 Wed 11:11:45 PM 43.133 -89.3222 ↖ 318° 88.0 875 -563.0
# we need to clean up the data a bit if we are going to send it as an Entity State PDU (mimicking an operation replay) such as during a Fertile Keynote mission (ref: https://www.115fw.ang.af.mil/Media/Photos/igphoto/2001630342/)
# you can skip this set if you already have opendis7 installed, else...
# unzip the main source into the local directory and install opendis using:
#!pip install open-dis-python-master/.
# we import the things needed to package and send the Entity State PDU at a given time step
import socket
import time
from io import BytesIO
from opendis.DataOutputStream import DataOutputStream
from opendis.dis7 import EntityStatePdu
from opendis.RangeCoordinates import GPS
UDP_PORT = 3001
DESTINATION_ADDRESS = "127.0.0.1"
udpSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udpSocket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
gps = GPS() # conversion helper
# next we
def send(lat, lon, alt):
pdu = EntityStatePdu()
pdu.entityID.entityID = 42
pdu.entityID.siteID = 17
pdu.entityID.applicationID = 23
location = gps.lla2ecef((float(lat), float(lon), float(alt)) )
pdu.entityLocation.x = location[0]
pdu.entityLocation.y = location[1]
pdu.entityLocation.z = location[2]
memoryStream = BytesIO()
outputStream = DataOutputStream(memoryStream)
pdu.serialize(outputStream)
data = memoryStream.getvalue()
udpSocket.sendto(data, (DESTINATION_ADDRESS, UDP_PORT))
print("Sent {}. {} bytes".format(pdu.__class__.__name__, len(data)))
# next get and install wireshark from https://www.wireshark.org/download.html
# then start a local loopback capture and apply a capture filter UDP destination port 3001 (udp port 3001)
for index, row in data_frame.iterrows():
send(row['Latitude'],row['Longitude'], row['feet'].replace(',',''))
print(index, row['Time (EDT)'], row['Latitude'],row['Longitude'], row['Course'],row['kts'], row['feet'],row['Rate'])
Sent EntityStatePdu. 144 bytes 0 Wed 08:35:40 PM 43.1489 -89.3442 ← 301° 81.0 1,225 938.0 Sent EntityStatePdu. 144 bytes 1 Wed 08:35:56 PM 43.1499 -89.3525 ← 260° 92.0 1,450 984.0 Sent EntityStatePdu. 144 bytes 2 Wed 08:36:12 PM 43.146 -89.3611 ↙ 216° 92.0 1,750 844.0 Sent EntityStatePdu. 144 bytes 3 Wed 08:36:28 PM 43.1401 -89.3644 ↓ 195° 98.0 1,900 750.0 Sent EntityStatePdu. 144 bytes 4 Wed 08:36:44 PM 43.1323 -89.3676 ↓ 199° 99.0 2,150 984.0 Sent EntityStatePdu. 144 bytes 5 Wed 08:37:00 PM 43.1257 -89.3712 ↙ 203° 96.0 2,425 938.0 Sent EntityStatePdu. 144 bytes 6 Wed 08:37:16 PM 43.1197 -89.375 ↙ 208° 93.0 2,650 844.0 Sent EntityStatePdu. 144 bytes 7 Wed 08:37:32 PM 43.114 -89.3792 ↙ 208° 93.0 2,875 891.0 Sent EntityStatePdu. 144 bytes 8 Wed 08:37:48 PM 43.1072 -89.3839 ↙ 208° 92.0 3,125 844.0 Sent EntityStatePdu. 144 bytes 9 Wed 08:38:04 PM 43.1018 -89.3877 ↙ 204° 93.0 3,325 797.0 Sent EntityStatePdu. 144 bytes 10 Wed 08:38:20 PM 43.0952 -89.3907 ↓ 197° 92.0 3,550 844.0 Sent EntityStatePdu. 144 bytes 11 Wed 08:38:36 PM 43.0886 -89.3935 ↓ 198° 92.0 3,775 844.0 Sent EntityStatePdu. 144 bytes 12 Wed 08:38:52 PM 43.0819 -89.3965 ↓ 198° 91.0 4,000 300.0 Sent EntityStatePdu. 144 bytes 13 Wed 08:39:40 PM 43.0571 -89.4019 ↓ 192° 126.0 4,000 -37.0 Sent EntityStatePdu. 144 bytes 14 Wed 08:40:02 PM 43.0436 -89.4057 ↓ 190° 130.0 3,975 -28.0 Sent EntityStatePdu. 144 bytes 15 Wed 08:43:34 PM 42.9108 -89.4271 ↓ 187° 137.0 3,975 -25.0 Sent EntityStatePdu. 144 bytes 16 Wed 08:44:05 PM 42.8913 -89.4304 ↓ 187° 138.0 3,950 -25.0 Sent EntityStatePdu. 144 bytes 17 Wed 08:46:10 PM 42.8133 -89.4315 ↘ 150° 132.0 3,950 43.0 Sent EntityStatePdu. 144 bytes 18 Wed 08:46:27 PM 42.8048 -89.425 ↘ 153° 132.0 3,975 38.0 Sent EntityStatePdu. 144 bytes 19 Wed 08:46:49 PM 42.7918 -89.4168 ↓ 157° 133.0 3,975 -29.0 Sent EntityStatePdu. 144 bytes 20 Wed 08:47:19 PM 42.7749 -89.4074 ↓ 158° 134.0 3,950 -33.0 Sent EntityStatePdu. 144 bytes 21 Wed 08:49:06 PM 42.7132 -89.3747 ↓ 159° 136.0 3,950 -49.0 Sent EntityStatePdu. 144 bytes 22 Wed 08:49:36 PM 42.6955 -89.3654 ↓ 158° 139.0 3,900 -75.0 Sent EntityStatePdu. 144 bytes 23 Wed 08:50:06 PM 42.6773 -89.3558 ↓ 159° 137.0 3,875 -96.0 Sent EntityStatePdu. 144 bytes 24 Wed 08:50:23 PM 42.6668 -89.3504 ↓ 159° 141.0 3,825 -191.0 Sent EntityStatePdu. 144 bytes 25 Wed 08:50:53 PM 42.648 -89.3406 ↓ 159° 144.0 3,725 -228.0 Sent EntityStatePdu. 144 bytes 26 Wed 08:51:09 PM 42.6382 -89.3355 ↓ 159° 145.0 3,650 -261.0 Sent EntityStatePdu. 144 bytes 27 Wed 08:51:39 PM 42.6195 -89.3258 ↓ 159° 147.0 3,525 -275.0 Sent EntityStatePdu. 144 bytes 28 Wed 08:52:09 PM 42.6007 -89.3159 ↓ 159° 149.0 3,375 -306.0 Sent EntityStatePdu. 144 bytes 29 Wed 08:52:28 PM 42.5873 -89.3096 ↓ 167° 153.0 3,275 -243.0 Sent EntityStatePdu. 144 bytes 30 Wed 08:52:46 PM 42.5754 -89.3087 ↓ 188° 158.0 3,225 -265.0 Sent EntityStatePdu. 144 bytes 31 Wed 08:53:02 PM 42.5641 -89.3117 ↓ 196° 159.0 3,125 -261.0 Sent EntityStatePdu. 144 bytes 32 Wed 08:53:32 PM 42.5457 -89.3291 ↙ 222° 160.0 3,025 -250.0 Sent EntityStatePdu. 144 bytes 33 Wed 08:54:02 PM 42.5298 -89.3486 ↙ 222° 159.0 2,875 -184.0 Sent EntityStatePdu. 144 bytes 34 Wed 08:54:37 PM 42.512 -89.3708 ↙ 223° 139.0 2,875 42.0 Sent EntityStatePdu. 144 bytes 35 Wed 08:54:57 PM 42.5036 -89.3835 ↙ 243° 133.0 2,900 75.0 Sent EntityStatePdu. 144 bytes 36 Wed 08:55:34 PM 42.5054 -89.4129 ← 304° 126.0 2,900 -105.0 Sent EntityStatePdu. 144 bytes 37 Wed 08:56:00 PM 42.5154 -89.4274 ↖ 317° 123.0 2,850 -26.0 Sent EntityStatePdu. 144 bytes 38 Wed 08:56:31 PM 42.5282 -89.4432 ↖ 318° 123.0 2,875 25.0 Sent EntityStatePdu. 144 bytes 39 Wed 08:57:17 PM 42.5477 -89.4672 ↖ 319° 125.0 2,875 -160.0 Sent EntityStatePdu. 144 bytes 40 Wed 08:57:48 PM 42.5617 -89.4833 ↖ 320° 133.0 2,750 -295.0 Sent EntityStatePdu. 144 bytes 41 Wed 08:58:13 PM 42.5722 -89.4959 ↖ 316° 110.0 2,600 -522.0 Sent EntityStatePdu. 144 bytes 42 Wed 08:58:34 PM 42.5783 -89.5089 ← 299° 119.0 2,350 -824.0 Sent EntityStatePdu. 144 bytes 43 Wed 08:59:04 PM 42.5868 -89.5276 ← 300° 108.0 1,900 -702.0 Sent EntityStatePdu. 144 bytes 44 Wed 08:59:36 PM 42.5937 -89.5437 ← 301° 84.0 1,625 -469.0 Sent EntityStatePdu. 144 bytes 45 Wed 08:59:52 PM 42.5966 -89.5512 ← 300° 83.0 1,525 -321.0 Sent EntityStatePdu. 144 bytes 46 Wed 09:00:18 PM 42.6022 -89.5624 ← 305° 87.0 1,400 -359.0 Sent EntityStatePdu. 144 bytes 47 Wed 09:00:38 PM 42.6072 -89.572 ← 304° 89.0 1,250 -281.0 Sent EntityStatePdu. 144 bytes 48 Wed 09:01:06 PM 42.6134 -89.585 ← 302° 98.0 1,175 142.0 Sent EntityStatePdu. 144 bytes 49 Wed 09:01:31 PM 42.6199 -89.5996 ← 298° 97.0 1,375 607.0 Sent EntityStatePdu. 144 bytes 50 Wed 09:01:48 PM 42.6232 -89.6085 ← 295° 98.0 1,600 926.0 Sent EntityStatePdu. 144 bytes 51 Wed 09:02:05 PM 42.6233 -89.6187 ↙ 239° 101.0 1,900 882.0 Sent EntityStatePdu. 144 bytes 52 Wed 09:02:22 PM 42.6174 -89.6261 ↙ 214° 108.0 2,100 568.0 Sent EntityStatePdu. 144 bytes 53 Wed 09:02:42 PM 42.608 -89.6273 ↘ 155° 105.0 2,250 500.0 Sent EntityStatePdu. 144 bytes 54 Wed 09:03:27 PM 42.5931 -89.6058 ↘ 125° 110.0 2,250 -327.0 Sent EntityStatePdu. 144 bytes 55 Wed 09:03:53 PM 42.5853 -89.5915 ↘ 123° 102.0 2,100 -321.0 Sent EntityStatePdu. 144 bytes 56 Wed 09:04:09 PM 42.5846 -89.5835 → 76° 85.0 2,025 -542.0 Sent EntityStatePdu. 144 bytes 57 Wed 09:04:29 PM 42.5893 -89.5752 ↗ 39° 77.0 1,775 -716.0 Sent EntityStatePdu. 144 bytes 58 Wed 09:04:53 PM 42.5962 -89.5697 ↑ 20° 69.0 1,500 -563.0 Sent EntityStatePdu. 144 bytes 59 Wed 09:05:09 PM 42.6015 -89.5694 ↑ 345° 75.0 1,400 -557.0 Sent EntityStatePdu. 144 bytes 60 Wed 09:05:28 PM 42.6073 -89.5734 ↖ 320° 77.0 1,175 -711.0 Sent EntityStatePdu. 144 bytes 61 Wed 10:24:59 PM 42.6111 -89.5676 ↗ 40° 62.0 1,825 857.0 Sent EntityStatePdu. 144 bytes 62 Wed 10:25:15 PM 42.6158 -89.5657 ↑ 5° 72.0 2,025 797.0 Sent EntityStatePdu. 144 bytes 63 Wed 10:25:31 PM 42.6212 -89.5657 ↑ 355° 75.0 2,250 846.0 Sent EntityStatePdu. 144 bytes 64 Wed 10:25:54 PM 42.6291 -89.566 ↑ 6° 74.0 2,575 802.0 Sent EntityStatePdu. 144 bytes 65 Wed 10:26:14 PM 42.6358 -89.5645 ↑ 9° 78.0 2,825 770.0 Sent EntityStatePdu. 144 bytes 66 Wed 10:26:31 PM 42.6424 -89.5635 ↑ 4° 82.0 3,050 818.0 Sent EntityStatePdu. 144 bytes 67 Wed 10:26:58 PM 42.6529 -89.5634 ↑ 358° 82.0 3,425 784.0 Sent EntityStatePdu. 144 bytes 68 Wed 10:27:15 PM 42.6592 -89.5637 ↑ 1° 85.0 3,625 750.0 Sent EntityStatePdu. 144 bytes 69 Wed 10:27:40 PM 42.669 -89.5625 ↑ 9° 87.0 3,950 733.0 Sent EntityStatePdu. 144 bytes 70 Wed 10:27:58 PM 42.6766 -89.5602 ↑ 14° 89.0 4,150 717.0 Sent EntityStatePdu. 144 bytes 71 Wed 10:28:26 PM 42.6878 -89.5568 ↑ 11° 90.0 4,500 734.0 Sent EntityStatePdu. 144 bytes 72 Wed 10:28:45 PM 42.6959 -89.5545 ↑ 13° 90.0 4,725 649.0 Sent EntityStatePdu. 144 bytes 73 Wed 10:29:03 PM 42.7028 -89.5521 ↗ 22° 93.0 4,900 618.0 Sent EntityStatePdu. 144 bytes 74 Wed 10:29:19 PM 42.7095 -89.5479 ↗ 24° 97.0 5,075 71.0 Sent EntityStatePdu. 144 bytes 75 Wed 10:29:45 PM 42.7234 -89.5416 ↑ 20° 128.0 4,950 -54.0 Sent EntityStatePdu. 144 bytes 76 Wed 10:30:15 PM 42.7394 -89.5333 ↑ 20° 131.0 5,025 -55.0 Sent EntityStatePdu. 144 bytes 77 Wed 10:30:40 PM 42.7541 -89.5264 ↑ 17° 142.0 4,900 -196.0 Sent EntityStatePdu. 144 bytes 78 Wed 10:31:01 PM 42.7681 -89.5203 ↑ 20° 136.0 4,875 -98.0 Sent EntityStatePdu. 144 bytes 79 Wed 10:31:26 PM 42.7825 -89.5129 ↑ 19° 131.0 4,825 100.0 Sent EntityStatePdu. 144 bytes 80 Wed 10:31:46 PM 42.7933 -89.5091 ↑ 16° 117.0 4,950 341.0 Sent EntityStatePdu. 144 bytes 81 Wed 10:32:26 PM 42.8126 -89.5006 ↑ 4° 122.0 4,950 -686.0 Sent EntityStatePdu. 144 bytes 82 Wed 10:32:45 PM 42.8236 -89.4983 ↑ 7° 121.0 4,675 -900.0 Sent EntityStatePdu. 144 bytes 83 Wed 10:33:01 PM 42.8328 -89.4979 ↑ 5° 124.0 4,425 -932.0 Sent EntityStatePdu. 144 bytes 84 Wed 10:33:22 PM 42.8444 -89.496 ↑ 7° 122.0 4,100 -825.0 Sent EntityStatePdu. 144 bytes 85 Wed 10:33:41 PM 42.8543 -89.4939 ↑ 9° 115.0 3,875 -673.0 Sent EntityStatePdu. 144 bytes 86 Wed 10:34:11 PM 42.8704 -89.4919 ↑ 4° 114.0 3,550 -375.0 Sent EntityStatePdu. 144 bytes 87 Wed 10:34:41 PM 42.8864 -89.4905 ↑ 3° 110.0 3,500 -98.0 Sent EntityStatePdu. 144 bytes 88 Wed 10:36:23 PM 42.9377 -89.4882 ↑ 4° 106.0 3,500 33.0 Sent EntityStatePdu. 144 bytes 89 Wed 10:36:41 PM 42.946 -89.4856 ↗ 24° 104.0 3,500 -122.0 Sent EntityStatePdu. 144 bytes 90 Wed 10:37:00 PM 42.9535 -89.4783 ↗ 38° 108.0 3,425 -136.0 Sent EntityStatePdu. 144 bytes 91 Wed 10:37:25 PM 42.9638 -89.4693 ↗ 30° 109.0 3,400 -233.0 Sent EntityStatePdu. 144 bytes 92 Wed 10:37:45 PM 42.9722 -89.4619 ↗ 34° 115.0 3,250 -450.0 Sent EntityStatePdu. 144 bytes 93 Wed 10:38:15 PM 42.9863 -89.4488 ↗ 34° 118.0 3,025 -518.0 Sent EntityStatePdu. 144 bytes 94 Wed 10:38:40 PM 42.9986 -89.4405 ↗ 24° 125.0 2,775 -574.0 Sent EntityStatePdu. 144 bytes 95 Wed 10:39:02 PM 43.0106 -89.4334 ↗ 25° 125.0 2,575 -540.0 Sent EntityStatePdu. 144 bytes 96 Wed 10:39:30 PM 43.0248 -89.4235 ↗ 27° 128.0 2,325 -540.0 Sent EntityStatePdu. 144 bytes 97 Wed 10:39:52 PM 43.037 -89.4147 ↗ 26° 131.0 2,125 -513.0 Sent EntityStatePdu. 144 bytes 98 Wed 10:40:08 PM 43.045 -89.4094 ↗ 27° 128.0 2,000 -375.0 Sent EntityStatePdu. 144 bytes 99 Wed 10:40:24 PM 43.0534 -89.4026 ↗ 32° 124.0 1,925 -464.0 Sent EntityStatePdu. 144 bytes 100 Wed 10:40:50 PM 43.0658 -89.3924 ↗ 29° 126.0 1,675 -389.0 Sent EntityStatePdu. 144 bytes 101 Wed 10:40:57 PM 43.0696 -89.3896 ↗ 27° 127.0 1,711 -220.0 Sent EntityStatePdu. 144 bytes 102 Wed 10:42:12 PM 43.1045 -89.3636 ↗ 30° 88.0 1,375 -287.0 Sent EntityStatePdu. 144 bytes 103 Wed 10:42:28 PM 43.1101 -89.3594 ↗ 28° 89.0 1,275 -375.0 Sent EntityStatePdu. 144 bytes 104 Wed 10:42:44 PM 43.1157 -89.355 ↗ 30° 87.0 1,175 -375.0 Sent EntityStatePdu. 144 bytes 105 Wed 10:43:00 PM 43.1211 -89.351 ↗ 29° 77.0 1,075 -422.0 Sent EntityStatePdu. 144 bytes 106 Wed 10:43:16 PM 43.1261 -89.3472 ↗ 28° 72.0 950 -3.0 Sent EntityStatePdu. 144 bytes 107 Wed 10:51:21 PM 43.1478 -89.3416 ↖ 328° 84.0 1,050 33.0 Sent EntityStatePdu. 144 bytes 108 Wed 10:51:37 PM 43.1531 -89.3443 ↑ 352° 85.0 1,225 750.0 Sent EntityStatePdu. 144 bytes 109 Wed 10:51:53 PM 43.1585 -89.3417 ↗ 50° 77.0 1,450 891.0 Sent EntityStatePdu. 144 bytes 110 Wed 10:52:09 PM 43.1601 -89.3348 → 86° 73.0 1,700 984.0 Sent EntityStatePdu. 144 bytes 111 Wed 10:52:25 PM 43.1607 -89.3269 → 81° 71.0 1,975 891.0 Sent EntityStatePdu. 144 bytes 112 Wed 10:52:41 PM 43.1611 -89.3194 → 89° 78.0 2,175 797.0 Sent EntityStatePdu. 144 bytes 113 Wed 10:52:57 PM 43.1612 -89.312 → 86° 76.0 2,400 844.0 Sent EntityStatePdu. 144 bytes 114 Wed 10:53:13 PM 43.1616 -89.3045 → 87° 77.0 2,625 750.0 Sent EntityStatePdu. 144 bytes 115 Wed 10:53:29 PM 43.1616 -89.2964 → 91° 85.0 2,800 469.0 Sent EntityStatePdu. 144 bytes 116 Wed 10:53:45 PM 43.1616 -89.2863 → 90° 102.0 2,875 188.0 Sent EntityStatePdu. 144 bytes 117 Wed 10:54:01 PM 43.1618 -89.2756 → 88° 113.0 2,900 188.0 Sent EntityStatePdu. 144 bytes 118 Wed 10:54:17 PM 43.162 -89.2639 → 90° 116.0 2,975 234.0 Sent EntityStatePdu. 144 bytes 119 Wed 10:54:49 PM 43.1615 -89.2396 → 89° 129.0 2,975 -118.0 Sent EntityStatePdu. 144 bytes 120 Wed 10:55:49 PM 43.1616 -89.1909 → 90° 133.0 2,875 -33.0 Sent EntityStatePdu. 144 bytes 121 Wed 10:56:19 PM 43.1615 -89.1652 → 89° 127.0 2,925 96.0 Sent EntityStatePdu. 144 bytes 122 Wed 10:56:36 PM 43.1608 -89.1526 ↘ 117° 127.0 2,950 44.0 Sent EntityStatePdu. 144 bytes 123 Wed 10:57:16 PM 43.1358 -89.1463 ↓ 186° 144.0 2,950 31.0 Sent EntityStatePdu. 144 bytes 124 Wed 10:57:42 PM 43.1202 -89.1481 ↓ 185° 145.0 2,975 87.0 Sent EntityStatePdu. 144 bytes 125 Wed 10:58:08 PM 43.1025 -89.1498 ↓ 182° 144.0 3,025 34.0 Sent EntityStatePdu. 144 bytes 126 Wed 10:58:26 PM 43.0908 -89.1497 ↓ 169° 139.0 3,000 -263.0 Sent EntityStatePdu. 144 bytes 127 Wed 10:58:48 PM 43.0783 -89.139 ↘ 140° 147.0 2,850 -202.0 Sent EntityStatePdu. 144 bytes 128 Wed 10:59:18 PM 43.0633 -89.1222 ↘ 141° 139.0 2,825 50.0 Sent EntityStatePdu. 144 bytes 129 Wed 10:59:48 PM 43.0489 -89.1056 ↘ 139° 135.0 2,900 48.0 Sent EntityStatePdu. 144 bytes 130 Wed 11:00:41 PM 43.0244 -89.0748 ↘ 135° 137.0 2,900 -29.0 Sent EntityStatePdu. 144 bytes 131 Wed 11:01:11 PM 43.0096 -89.0574 ↘ 140° 138.0 2,850 -28.0 Sent EntityStatePdu. 144 bytes 132 Wed 11:01:51 PM 42.9898 -89.0365 ↘ 145° 142.0 2,850 -33.0 Sent EntityStatePdu. 144 bytes 133 Wed 11:02:21 PM 42.974 -89.0204 ↘ 144° 140.0 2,850 96.0 Sent EntityStatePdu. 144 bytes 134 Wed 11:02:38 PM 42.9639 -89.0145 ↓ 169° 141.0 2,925 162.0 Sent EntityStatePdu. 144 bytes 135 Wed 11:02:58 PM 42.9499 -89.0129 ↓ 178° 144.0 2,950 324.0 Sent EntityStatePdu. 144 bytes 136 Wed 11:03:15 PM 42.9398 -89.0163 ↙ 209° 137.0 3,125 273.0 Sent EntityStatePdu. 144 bytes 137 Wed 11:04:07 PM 42.933 -89.0563 ← 309° 141.0 3,100 -79.0 Sent EntityStatePdu. 144 bytes 138 Wed 11:04:47 PM 42.9522 -89.0814 ↖ 318° 140.0 3,100 61.0 Sent EntityStatePdu. 144 bytes 139 Wed 11:05:17 PM 42.966 -89.0994 ← 314° 139.0 3,125 -153.0 Sent EntityStatePdu. 144 bytes 140 Wed 11:05:46 PM 42.9788 -89.1208 ← 307° 152.0 2,950 -351.0 Sent EntityStatePdu. 144 bytes 141 Wed 11:06:04 PM 42.9867 -89.1346 ← 312° 151.0 2,850 -293.0 Sent EntityStatePdu. 144 bytes 142 Wed 11:06:27 PM 42.9964 -89.1492 ← 314° 149.0 2,750 -308.0 Sent EntityStatePdu. 144 bytes 143 Wed 11:06:43 PM 43.0047 -89.1604 ↖ 317° 146.0 2,650 -326.0 Sent EntityStatePdu. 144 bytes 144 Wed 11:07:13 PM 43.019 -89.1783 ↖ 317° 144.0 2,500 -50.0 Sent EntityStatePdu. 144 bytes 145 Wed 11:07:43 PM 43.0329 -89.1963 ↖ 317° 132.0 2,600 125.0 Sent EntityStatePdu. 144 bytes 146 Wed 11:08:13 PM 43.0464 -89.2132 ↖ 320° 130.0 2,625 63.0 Sent EntityStatePdu. 144 bytes 147 Wed 11:08:31 PM 43.0554 -89.2237 ↖ 318° 130.0 2,650 -35.0 Sent EntityStatePdu. 144 bytes 148 Wed 11:08:56 PM 43.0663 -89.2366 ↖ 319° 137.0 2,600 62.0 Sent EntityStatePdu. 144 bytes 149 Wed 11:09:06 PM 43.0713 -89.2427 ↖ 317° 139.0 2,686 -94.0 Sent EntityStatePdu. 144 bytes 150 Wed 11:09:21 PM 43.0789 -89.2522 ↖ 318° 145.0 2,561 -553.0 Sent EntityStatePdu. 144 bytes 151 Wed 11:09:44 PM 43.0898 -89.2665 ↖ 316° 137.0 2,336 -726.0 Sent EntityStatePdu. 144 bytes 152 Wed 11:10:57 PM 43.1182 -89.3031 ↖ 319° 91.0 1,400 -783.0 Sent EntityStatePdu. 144 bytes 153 Wed 11:11:13 PM 43.1232 -89.3095 ← 315° 93.0 1,175 -703.0 Sent EntityStatePdu. 144 bytes 154 Wed 11:11:29 PM 43.1279 -89.3156 ↖ 316° 89.0 1,025 -563.0 Sent EntityStatePdu. 144 bytes 155 Wed 11:11:45 PM 43.133 -89.3222 ↖ 318° 88.0 875 -563.0
# We see that all 156 PDU Entity State simulated position replay packets were collected!
from IPython.display import Image
Image(filename='Wireshark.png')