diff --git a/ezgpx/gpx/gpx.py b/ezgpx/gpx/gpx.py
index ea1cbbc..cc79707 100644
--- a/ezgpx/gpx/gpx.py
+++ b/ezgpx/gpx/gpx.py
@@ -672,25 +672,26 @@ def to_dataframe(
Dataframe containing data from GPX.
"""
# Disable time related values if no time data available
+ time_related_values = ["time", "speed", "pace", "ascent_speed"]
if not self._time_data:
- if any([v in ["time", "speed", "pace", "ascent_speed"] for v in values]):
+ if any([v in time_related_values for v in values]):
warnings.warn(f"Trying to create dataframe from GPX file {self.file_path} which does not contain time data"
"Time related values (time, speed, pace, ascent speed) will not be present in the dataframe.",
UserWarning)
- values.remove("time")
- values.remove("speed")
- values.remove("pace")
- values.remove("ascent_speed")
+ for v in time_related_values:
+ if v in values:
+ values.remove(v)
# Disable elevation related values if no elevation data available
+ elevation_related_values = ["ele", "ascent_rate", "ascent_speed"]
if not self._ele_data:
- if any([v in ["ele", "ascent_rate", "ascent_speed"] for v in values]):
+ if any([v in elevation_related_values for v in values]):
warnings.warn(f"Trying to create dataframe from GPX file {self.file_path} which does not contain elevation data"
"Time related values (elevation, ascent rate, ascent speed) will not be present in the dataframe.",
UserWarning)
- values.remove("ele")
- values.remove("ascent_rate")
- values.remove("ascent_speed")
+ for v in elevation_related_values:
+ if v in values:
+ values.remove(v)
return self.gpx.to_dataframe(values)
@@ -907,14 +908,13 @@ def matplotlib_plot(
title_fontsize: int = 20,
watermark: bool = False,
file_path: str = None):
+ dynamic_colors = ["ele", "speed", "pace", "vertical_drop", "ascent_rate", "ascent_speed"]
+
# Create dataframe containing data from the GPX file
- self._dataframe = self.to_dataframe(elevation=True,
- time=True,
- speed=True,
- pace=True,
- ascent_rate=True,
- ascent_speed=True,
- distance_from_start=True)
+ values = ["lat", "lon"]
+ if color in dynamic_colors:
+ values.append(color)
+ self._dataframe = self.to_dataframe(values)
# Create figure
fig = plt.figure(figsize=figsize)
@@ -922,18 +922,24 @@ def matplotlib_plot(
# Compute track boundaries
min_lat, min_lon, max_lat, max_lon = self.bounds()
- # Add default offset
- delta_max = max(max_lat - min_lat, max_lon - min_lon)
+ # Compute default offset
+ delta_lat = abs(max_lat - min_lat)
+ delta_lon = abs(max_lon - min_lon)
+ delta_max = max(delta_lat, delta_lon)
offset = delta_max * offset_percentage
- min_lat, min_lon = max(0, min_lat - offset), max(0, min_lon - offset)
- max_lat, max_lon = min(max_lat + offset, 90), min(max_lon + offset, 180)
+
+ # Add default offset
+ min_lat = max(-90, min_lat - offset)
+ max_lat = min(max_lat + offset, 90)
+ min_lon = max(-180, min_lon - offset)
+ max_lon = min(max_lon + offset, 180)
# Some sort of magic to achieve the correct map aspect ratio
# CREATE FUNCTION (also used in animation??)
lat_offset = 1e-5
lon_offset = 1e-5
- delta_lat = max_lat - min_lat
- delta_lon = max_lon - min_lon
+ delta_lat = abs(max_lat - min_lat)
+ delta_lon = abs(max_lon - min_lon)
r = delta_lon / delta_lat # Current map aspect ratio
r_ref = figsize[0] / figsize[1] # Target map aspect ratio, Adapt in function of the shape of the subplot...
@@ -943,11 +949,11 @@ def matplotlib_plot(
# not isclose(delta_lat % pos.height, 0.0, abs_tol=tolerance)):
while not isclose(r, r_ref, abs_tol=tolerance):
if r > r_ref:
- min_lat = max(0, min_lat - lat_offset)
+ min_lat = max(-90, min_lat - lat_offset)
max_lat = min(max_lat + lat_offset, 90)
delta_lat = max_lat - min_lat
if r < r_ref:
- min_lon = max(0, min_lon - lon_offset)
+ min_lon = max(-180, min_lon - lon_offset)
max_lon = min(max_lon + lon_offset, 180)
delta_lon = max_lon - min_lon
r = delta_lon / delta_lat
@@ -980,7 +986,7 @@ def matplotlib_plot(
verbose=True)
# Scatter track points
- if color in ["ele", "speed", "pace", "vertical_drop", "ascent_rate", "ascent_speed"]:
+ if color in dynamic_colors:
im = map.scatter(self._dataframe["lon"],
self._dataframe["lat"],
s=size,
@@ -994,13 +1000,13 @@ def matplotlib_plot(
# Scatter start point with different color
if start_point_color:
- map.scatter(x[0], y[0], marker="^",
- color=start_point_color)
+ map.scatter(self._dataframe["lon"][0], self._dataframe["lat"][0],
+ marker="^", color=start_point_color)
# Scatter stop point with different color
if stop_point_color:
- map.scatter(x[-1], y[-1], marker="h",
- color=stop_point_color)
+ map.scatter(self._dataframe["lon"].iloc[-1], self._dataframe["lat"].iloc[-1],
+ marker="h", color=stop_point_color)
# Scatter way points with different color
if way_points_color:
@@ -1095,18 +1101,24 @@ def expert_map(
# Compute track boundaries
min_lat, min_lon, max_lat, max_lon = self.bounds()
- # Add default offset
- delta_max = max(max_lat - min_lat, max_lon - min_lon)
+ # Compute default offset
+ delta_lat = abs(max_lat - min_lat)
+ delta_lon = abs(max_lon - min_lon)
+ delta_max = max(delta_lat, delta_lon)
offset = delta_max * offset_percentage
- min_lat, min_lon = max(0, min_lat - offset), max(0, min_lon - offset)
- max_lat, max_lon = min(max_lat + offset, 90), min(max_lon + offset, 180)
+
+ # Add default offset
+ min_lat = max(-90, min_lat - offset)
+ max_lat = min(max_lat + offset, 90)
+ min_lon = max(-180, min_lon - offset)
+ max_lon = min(max_lon + offset, 180)
# Some sort of magic to achieve the correct map aspect ratio
# CREATE FUNCTION (also used in anmation??)
lat_offset = 1e-5
lon_offset = 1e-5
- delta_lat = max_lat - min_lat
- delta_lon = max_lon - min_lon
+ delta_lat = abs(max_lat - min_lat)
+ delta_lon = abs(max_lon - min_lon)
r = delta_lon / delta_lat # Current map aspect ratio
pos = axes.get_position() # Axes bounding box
print(f"pos.width = {pos.width}")
@@ -1182,13 +1194,13 @@ def expert_map(
# Scatter start point with different color
if start_point_color:
- map.scatter(x[0], y[0], marker="^",
- color=start_point_color)
+ map.scatter(self._dataframe["lon"][0], self._dataframe["lat"][0],
+ marker="^", color=start_point_color)
# Scatter stop point with different color
if stop_point_color:
- map.scatter(x[-1], y[-1], marker="h",
- color=stop_point_color)
+ map.scatter(self._dataframe["lon"].iloc[-1], self._dataframe["lat"].iloc[-1],
+ marker="h", color=stop_point_color)
# Scatter way points with different color
if way_points_color:
diff --git a/tests/test_files/files/alltrails_1.gpx b/tests/test_files/files/alltrails_1.gpx
new file mode 100644
index 0000000..0572464
--- /dev/null
+++ b/tests/test_files/files/alltrails_1.gpx
@@ -0,0 +1,1433 @@
+
+
+
+
+
+
+ AllTrails, LLC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AllTrails
+
+
+ 513.34
+
+
+ 513.95
+
+
+ 514.02
+
+
+ 515.75
+
+
+ 516.54
+
+
+ 513.81
+
+
+ 514.04
+
+
+ 515.17
+
+
+ 515.17
+
+
+ 520.73
+
+
+ 523.78
+
+
+ 520.15
+
+
+ 519.94
+
+
+ 521.4
+
+
+ 522.48
+
+
+ 522.48
+
+
+ 523.08
+
+
+ 522.66
+
+
+ 519.95
+
+
+ 519.95
+
+
+ 519.52
+
+
+ 520.28
+
+
+ 520.83
+
+
+ 520.01
+
+
+ 518.2
+
+
+ 518.51
+
+
+ 518.51
+
+
+ 515.54
+
+
+ 514.47
+
+
+ 513.7
+
+
+ 515.12
+
+
+ 515.84
+
+
+ 515.12
+
+
+ 513.57
+
+
+ 506.52
+
+
+ 511.65
+
+
+ 512.4
+
+
+ 507.82
+
+
+ 509.78
+
+
+ 519.93
+
+
+ 519.93
+
+
+ 520.74
+
+
+ 520.74
+
+
+ 519.71
+
+
+ 519.71
+
+
+ 519.52
+
+
+ 518.35
+
+
+ 518.35
+
+
+ 515.49
+
+
+ 515.07
+
+
+ 512.66
+
+
+ 513.27
+
+
+ 513.27
+
+
+ 511.78
+
+
+ 511.78
+
+
+ 511.6
+
+
+ 510.2
+
+
+ 511.61
+
+
+ 513.02
+
+
+ 512.27
+
+
+ 512.27
+
+
+ 511.94
+
+
+ 507.13
+
+
+ 506.21
+
+
+ 506.21
+
+
+ 504.16
+
+
+ 508.8
+
+
+ 510.46
+
+
+ 510.39
+
+
+ 508.2
+
+
+ 509.29
+
+
+ 509.29
+
+
+ 509.76
+
+
+ 510.27
+
+
+ 508.71
+
+
+ 508.71
+
+
+ 508.93
+
+
+ 511.96
+
+
+ 511.76
+
+
+ 510.32
+
+
+ 508.68
+
+
+ 507.98
+
+
+ 507.98
+
+
+ 509.14
+
+
+ 509.54
+
+
+ 509.54
+
+
+ 509.04
+
+
+ 507.51
+
+
+ 506.13
+
+
+ 504.18
+
+
+ 504.18
+
+
+ 503.08
+
+
+ 503.36
+
+
+ 503.41
+
+
+ 504.03
+
+
+ 504.56
+
+
+ 504.56
+
+
+ 505.66
+
+
+ 506.0
+
+
+ 506.12
+
+
+ 506.12
+
+
+ 506.22
+
+
+ 506.93
+
+
+ 506.93
+
+
+ 506.74
+
+
+ 505.81
+
+
+ 505.81
+
+
+ 508.11
+
+
+ 508.11
+
+
+ 507.61
+
+
+ 506.96
+
+
+ 506.96
+
+
+ 506.6
+
+
+ 506.92
+
+
+ 506.92
+
+
+ 506.43
+
+
+ 504.19
+
+
+ 505.73
+
+
+ 505.73
+
+
+ 506.35
+
+
+ 507.37
+
+
+ 507.28
+
+
+ 507.12
+
+
+ 506.35
+
+
+ 506.34
+
+
+ 505.66
+
+
+ 505.66
+
+
+ 503.92
+
+
+ 505.11
+
+
+ 505.11
+
+
+ 504.73
+
+
+ 504.03
+
+
+ 504.03
+
+
+ 505.04
+
+
+ 505.09
+
+
+ 505.34
+
+
+ 505.86
+
+
+ 507.64
+
+
+ 507.58
+
+
+ 507.63
+
+
+ 507.86
+
+
+ 506.12
+
+
+ 506.12
+
+
+ 505.94
+
+
+ 503.62
+
+
+ 503.08
+
+
+ 505.02
+
+
+ 506.07
+
+
+ 502.64
+
+
+ 502.88
+
+
+ 501.49
+
+
+ 502.21
+
+
+ 502.21
+
+
+ 503.34
+
+
+ 504.05
+
+
+ 504.05
+
+
+ 503.69
+
+
+ 503.57
+
+
+ 507.73
+
+
+ 507.55
+
+
+ 505.98
+
+
+ 505.98
+
+
+ 505.98
+
+
+ 505.94
+
+
+ 508.19
+
+
+ 508.6
+
+
+ 508.6
+
+
+ 510.78
+
+
+ 507.83
+
+
+ 507.51
+
+
+ 507.76
+
+
+ 507.76
+
+
+ 511.18
+
+
+ 511.14
+
+
+ 507.42
+
+
+ 507.42
+
+
+ 507.47
+
+
+ 508.31
+
+
+ 507.08
+
+
+ 506.86
+
+
+ 507.87
+
+
+ 507.87
+
+
+ 508.7
+
+
+ 503.36
+
+
+ 501.24
+
+
+ 501.67
+
+
+ 501.67
+
+
+ 503.71
+
+
+ 506.2
+
+
+ 508.1
+
+
+ 510.55
+
+
+ 513.08
+
+
+ 508.68
+
+
+ 508.68
+
+
+ 510.2
+
+
+ 512.0
+
+
+ 510.97
+
+
+ 510.09
+
+
+ 509.48
+
+
+ 509.48
+
+
+ 508.98
+
+
+ 504.56
+
+
+ 503.46
+
+
+ 503.46
+
+
+ 503.44
+
+
+ 503.93
+
+
+ 505.08
+
+
+ 508.32
+
+
+ 508.32
+
+
+ 506.0
+
+
+ 509.18
+
+
+ 509.18
+
+
+ 508.37
+
+
+ 506.44
+
+
+ 504.82
+
+
+ 508.32
+
+
+ 509.37
+
+
+ 510.7
+
+
+ 510.7
+
+
+ 511.33
+
+
+ 513.22
+
+
+ 513.43
+
+
+ 511.94
+
+
+ 511.94
+
+
+ 511.87
+
+
+ 511.26
+
+
+ 511.97
+
+
+ 512.72
+
+
+ 512.72
+
+
+ 512.7
+
+
+ 512.29
+
+
+ 515.12
+
+
+ 518.1
+
+
+ 517.35
+
+
+ 517.35
+
+
+ 513.44
+
+
+ 514.08
+
+
+ 514.85
+
+
+ 515.71
+
+
+ 514.09
+
+
+ 514.09
+
+
+ 513.35
+
+
+ 514.93
+
+
+ 518.12
+
+
+ 517.47
+
+
+ 517.47
+
+
+ 514.08
+
+
+ 513.5
+
+
+ 513.88
+
+
+ 514.27
+
+
+ 514.27
+
+
+ 514.56
+
+
+ 515.28
+
+
+ 516.39
+
+
+ 517.09
+
+
+ 516.99
+
+
+ 515.63
+
+
+ 515.63
+
+
+ 515.04
+
+
+ 515.04
+
+
+ 515.07
+
+
+ 515.03
+
+
+ 514.96
+
+
+ 515.54
+
+
+ 517.61
+
+
+ 518.38
+
+
+ 518.38
+
+
+ 512.76
+
+
+ 512.96
+
+
+ 514.64
+
+
+ 515.0
+
+
+ 515.0
+
+
+ 514.85
+
+
+ 516.1
+
+
+ 516.72
+
+
+ 515.82
+
+
+ 515.82
+
+
+ 514.54
+
+
+ 514.9
+
+
+ 513.33
+
+
+ 513.33
+
+
+ 513.11
+
+
+ 514.47
+
+
+ 516.35
+
+
+ 516.06
+
+
+ 513.58
+
+
+ 513.5
+
+
+ 513.53
+
+
+ 513.53
+
+
+ 513.57
+
+
+ 514.6
+
+
+ 517.58
+
+
+ 519.02
+
+
+ 520.62
+
+
+ 520.62
+
+
+ 520.98
+
+
+ 520.74
+
+
+ 519.88
+
+
+ 519.1
+
+
+ 522.99
+
+
+ 522.21
+
+
+ 522.21
+
+
+ 521.87
+
+
+ 518.47
+
+
+ 518.98
+
+
+ 519.65
+
+
+ 519.65
+
+
+ 518.06
+
+
+ 517.06
+
+
+ 516.16
+
+
+ 516.02
+
+
+ 517.18
+
+
+ 517.18
+
+
+ 518.18
+
+
+ 524.08
+
+
+ 526.2
+
+
+ 527.38
+
+
+ 527.38
+
+
+ 527.55
+
+
+ 528.73
+
+
+ 533.05
+
+
+ 539.74
+
+
+ 540.51
+
+
+ 540.51
+
+
+ 545.22
+
+
+ 532.54
+
+
+ 532.23
+
+
+ 532.23
+
+
+ 529.93
+
+
+ 520.15
+
+
+ 516.63
+
+
+ 514.98
+
+
+ 515.5
+
+
+ 515.58
+
+
+ 515.58
+
+
+ 518.85
+
+
+ 518.85
+
+
+ 519.3
+
+
+ 522.32
+
+
+ 527.82
+
+
+ 527.82
+
+
+ 528.1
+
+
+ 528.31
+
+
+ 526.78
+
+
+ 526.29
+
+
+ 524.7
+
+
+ 523.13
+
+
+ 523.29
+
+
+ 522.24
+
+
+ 521.16
+
+
+ 522.13
+
+
+ 522.61
+
+
+ 522.99
+
+
+ 522.99
+
+
+ 527.65
+
+
+ 527.65
+
+
+ 522.99
+
+
+ 522.61
+
+
+ 522.13
+
+
+ 521.16
+
+
+ 522.24
+
+
+ 523.29
+
+
+ 523.13
+
+
+ 524.7
+
+
+ 526.29
+
+
+ 526.78
+
+
+ 528.31
+
+
+ 528.1
+
+
+ 527.82
+
+
+ 527.75
+
+
+ 527.42
+
+
+ 528.01
+
+
+ 530.49
+
+
+ 531.79
+
+
+ 532.58
+
+
+ 532.17
+
+
+ 535.83
+
+
+ 538.5
+
+
+ 531.24
+
+
+ 531.24
+
+
+ 528.43
+
+
+ 524.35
+
+
+ 540.78
+
+
+ 540.78
+
+
+ 550.53
+
+
+ 533.12
+
+
+ 529.56
+
+
+ 527.87
+
+
+ 528.12
+
+
+ 523.83
+
+
+ 523.87
+
+
+ 523.87
+
+
+ 523.9
+
+
+ 522.62
+
+
+ 516.97
+
+
+ 516.26
+
+
+ 516.51
+
+
+ 516.51
+
+
+ 516.64
+
+
+ 517.67
+
+
+ 517.76
+
+
+ 517.76
+
+
+ 519.49
+
+
+ 517.08
+
+
+ 516.98
+
+
+ 515.18
+
+
+ 516.3
+
+
+ 517.09
+
+
+ 517.09
+
+
+ 519.09
+
+
+ 521.66
+
+
+ 521.42
+
+
+ 527.46
+
+
+ 524.88
+
+
+ 519.98
+
+
+ 517.7
+
+
+ 517.7
+
+
+ 518.46
+
+
+ 516.0
+
+
+ 516.0
+
+
+ 515.4
+
+
+ 511.95
+
+
+ 511.53
+
+
+ 511.53
+
+
+ 511.29
+
+
+ 516.34
+
+
+ 517.43
+
+
+ 519.67
+
+
+ 519.67
+
+
+ 519.27
+
+
+ 518.12
+
+
+ 518.83
+
+
+ 521.82
+
+
+ 521.62
+
+
+ 524.72
+
+
+ 527.75
+
+
+ 527.75
+
+
+ 524.4
+
+
+ 522.39
+
+
+ 522.49
+
+
+ 517.83
+
+
+ 516.29
+
+
+ 518.1
+
+
+ 519.84
+
+
+ 519.57
+
+
+ 518.3
+
+
+ 518.31
+
+
+ 518.31
+
+
+ 517.31
+
+
+ 514.55
+
+
+ 513.33
+
+
+ 518.34
+
+
+ 510.65
+
+
+ 522.22
+
+
+ 523.45
+
+
+ 520.17
+
+
+ 516.79
+
+
+ 516.7
+
+
+ 518.22
+
+
+ 522.81
+
+
+ 518.8
+
+
+ 517.35
+
+
+ 514.28
+
+
+ 513.34
+
+
+
+
diff --git a/tests/test_files/files/alltrails_2.gpx b/tests/test_files/files/alltrails_2.gpx
new file mode 100644
index 0000000..7821fe5
--- /dev/null
+++ b/tests/test_files/files/alltrails_2.gpx
@@ -0,0 +1,1184 @@
+
+
+
+
+
+
+ AllTrails, LLC
+
+
+
+
+
+ AllTrails
+
+
+ 2068.62
+
+
+ 2068.16
+
+
+ 2069.02
+
+
+ 2069.04
+
+
+ 2075.06
+
+
+ 2085.06
+
+
+ 2075.09
+
+
+ 2069.8
+
+
+ 2069.02
+
+
+ 2068.34
+
+
+ 2068.48
+
+
+ 2069.6
+
+
+ 2071.96
+
+
+ 2072.76
+
+
+ 2071.38
+
+
+ 2068.83
+
+
+ 2069.16
+
+
+ 2083.37
+
+
+ 2082.27
+
+
+ 2080.13
+
+
+ 2078.95
+
+
+ 2078.17
+
+
+ 2077.22
+
+
+ 2076.8
+
+
+ 2075.94
+
+
+ 2072.27
+
+
+ 2069.65
+
+
+ 2065.49
+
+
+ 2066.93
+
+
+ 2069.92
+
+
+ 2080.26
+
+
+ 2084.72
+
+
+ 2083.91
+
+
+ 2080.56
+
+
+ 2076.52
+
+
+ 2067.52
+
+
+ 2060.8
+
+
+ 2055.22
+
+
+ 2057.14
+
+
+ 2056.75
+
+
+ 2048.69
+
+
+ 2043.7
+
+
+ 2041.76
+
+
+ 2045.19
+
+
+ 2047.43
+
+
+ 2047.5
+
+
+ 2047.82
+
+
+ 2047.48
+
+
+ 2046.63
+
+
+ 2046.42
+
+
+ 2046.06
+
+
+ 2045.56
+
+
+ 2051.09
+
+
+ 2050.61
+
+
+ 2047.21
+
+
+ 2045.01
+
+
+ 2042.66
+
+
+ 2040.18
+
+
+ 2040.66
+
+
+ 2036.92
+
+
+ 2036.39
+
+
+ 2035.41
+
+
+ 2031.08
+
+
+ 2026.92
+
+
+ 2026.86
+
+
+ 2023.74
+
+
+ 2023.42
+
+
+ 2024.16
+
+
+ 2022.89
+
+
+ 2023.33
+
+
+ 2021.98
+
+
+ 2020.77
+
+
+ 2021.43
+
+
+ 2012.78
+
+
+ 2013.97
+
+
+ 2000.41
+
+
+ 1989.01
+
+
+ 1988.25
+
+
+ 1987.5
+
+
+ 1988.15
+
+
+ 1989.72
+
+
+ 1994.08
+
+
+ 1997.67
+
+
+ 2001.77
+
+
+ 2003.52
+
+
+ 2004.43
+
+
+ 2004.1
+
+
+ 2003.81
+
+
+ 2003.81
+
+
+ 2002.1
+
+
+ 1996.06
+
+
+ 2002.88
+
+
+ 2003.53
+
+
+ 2017.95
+
+
+ 2019.19
+
+
+ 2020.76
+
+
+ 2023.24
+
+
+ 2026.79
+
+
+ 2033.56
+
+
+ 2034.58
+
+
+ 2035.13
+
+
+ 2040.66
+
+
+ 2047.63
+
+
+ 2059.8
+
+
+ 2070.38
+
+
+ 2078.94
+
+
+ 2089.48
+
+
+ 2096.68
+
+
+ 2114.22
+
+
+ 2131.4
+
+
+ 2145.24
+
+
+ 2161.61
+
+
+ 2172.65
+
+
+ 2185.85
+
+
+ 2198.05
+
+
+ 2208.94
+
+
+ 2221.6
+
+
+ 2230.91
+
+
+ 2240.32
+
+
+ 2246.43
+
+
+ 2249.63
+
+
+ 2251.57
+
+
+ 2252.94
+
+
+ 2254.72
+
+
+ 2255.78
+
+
+ 2256.34
+
+
+ 2256.64
+
+
+ 2257.13
+
+
+ 2257.77
+
+
+ 2259.16
+
+
+ 2260.22
+
+
+ 2261.24
+
+
+ 2261.66
+
+
+ 2262.01
+
+
+ 2261.8
+
+
+ 2261.33
+
+
+ 2258.59
+
+
+ 2257.37
+
+
+ 2257.06
+
+
+ 2257.6
+
+
+ 2260.27
+
+
+ 2258.45
+
+
+ 2260.38
+
+
+ 2264.67
+
+
+ 2267.05
+
+
+ 2263.71
+
+
+ 2271.49
+
+
+ 2272.62
+
+
+ 2272.62
+
+
+ 2273.65
+
+
+ 2279.71
+
+
+ 2290.94
+
+
+ 2293.98
+
+
+ 2297.79
+
+
+ 2301.53
+
+
+ 2303.98
+
+
+ 2310.22
+
+
+ 2319.38
+
+
+ 2321.32
+
+
+ 2321.13
+
+
+ 2322.98
+
+
+ 2325.45
+
+
+ 2329.22
+
+
+ 2331.69
+
+
+ 2335.44
+
+
+ 2338.59
+
+
+ 2341.12
+
+
+ 2342.58
+
+
+ 2343.58
+
+
+ 2344.81
+
+
+ 2352.49
+
+
+ 2354.27
+
+
+ 2356.35
+
+
+ 2358.07
+
+
+ 2360.33
+
+
+ 2362.15
+
+
+ 2363.12
+
+
+ 2365.05
+
+
+ 2372.66
+
+
+ 2382.98
+
+
+ 2387.48
+
+
+ 2389.24
+
+
+ 2389.12
+
+
+ 2389.12
+
+
+ 2390.12
+
+
+ 2392.1
+
+
+ 2392.1
+
+
+ 2392.1
+
+
+ 2393.1
+
+
+ 2394.09
+
+
+ 2394.09
+
+
+ 2394.09
+
+
+ 2398.02
+
+
+ 2399.05
+
+
+ 2400.04
+
+
+ 2401.08
+
+
+ 2401.08
+
+
+ 2402.01
+
+
+ 2402.01
+
+
+ 2403.0
+
+
+ 2401.91
+
+
+ 2401.91
+
+
+ 2402.88
+
+
+ 2402.88
+
+
+ 2403.85
+
+
+ 2402.73
+
+
+ 2402.73
+
+
+ 2401.42
+
+
+ 2401.42
+
+
+ 2400.28
+
+
+ 2400.04
+
+
+ 2399.77
+
+
+ 2399.77
+
+
+ 2399.77
+
+
+ 2399.77
+
+
+ 2399.47
+
+
+ 2399.47
+
+
+ 2399.47
+
+
+ 2399.47
+
+
+ 2398.29
+
+
+ 2397.11
+
+
+ 2397.94
+
+
+ 2396.74
+
+
+ 2400.77
+
+
+ 2401.38
+
+
+ 2402.57
+
+
+ 2403.76
+
+
+ 2403.21
+
+
+ 2404.43
+
+
+ 2405.65
+
+
+ 2406.87
+
+
+ 2408.08
+
+
+ 2409.3
+
+
+ 2409.3
+
+
+ 2410.52
+
+
+ 2411.74
+
+
+ 2412.96
+
+
+ 2415.39
+
+
+ 2416.88
+
+
+ 2416.88
+
+
+ 2418.07
+
+
+ 2418.07
+
+
+ 2419.26
+
+
+ 2419.26
+
+
+ 2419.48
+
+
+ 2419.7
+
+
+ 2419.7
+
+
+ 2420.27
+
+
+ 2421.56
+
+
+ 2422.14
+
+
+ 2422.5
+
+
+ 2422.35
+
+
+ 2422.11
+
+
+ 2421.93
+
+
+ 2421.81
+
+
+ 2422.46
+
+
+ 2422.46
+
+
+ 2423.18
+
+
+ 2423.87
+
+
+ 2424.56
+
+
+ 2424.56
+
+
+ 2425.22
+
+
+ 2425.22
+
+
+ 2427.15
+
+
+ 2427.13
+
+
+ 2426.19
+
+
+ 2425.82
+
+
+ 2425.25
+
+
+ 2425.46
+
+
+ 2424.89
+
+
+ 2425.09
+
+
+ 2425.09
+
+
+ 2424.53
+
+
+ 2424.73
+
+
+ 2423.6
+
+
+ 2423.25
+
+
+ 2422.68
+
+
+ 2422.68
+
+
+ 2422.33
+
+
+ 2421.77
+
+
+ 2421.42
+
+
+ 2419.83
+
+
+ 2419.83
+
+
+ 2419.21
+
+
+ 2419.8
+
+
+ 2418.97
+
+
+ 2419.29
+
+
+ 2420.97
+
+
+ 2421.43
+
+
+ 2422.18
+
+
+ 2423.49
+
+
+ 2423.83
+
+
+ 2424.38
+
+
+ 2424.38
+
+
+ 2424.93
+
+
+ 2424.93
+
+
+ 2425.49
+
+
+ 2426.04
+
+
+ 2426.04
+
+
+ 2426.6
+
+
+ 2426.94
+
+
+ 2427.5
+
+
+ 2427.5
+
+
+ 2428.05
+
+
+ 2428.61
+
+
+ 2429.16
+
+
+ 2429.16
+
+
+ 2429.72
+
+
+ 2430.08
+
+
+ 2430.63
+
+
+ 2430.63
+
+
+ 2431.19
+
+
+ 2431.19
+
+
+ 2431.74
+
+
+ 2431.74
+
+
+ 2431.74
+
+
+ 2431.74
+
+
+ 2432.3
+
+
+ 2432.3
+
+
+ 2432.67
+
+
+ 2433.22
+
+
+ 2433.03
+
+
+ 2433.96
+
+
+ 2433.96
+
+
+ 2434.34
+
+
+ 2434.34
+
+
+ 2435.28
+
+
+ 2436.22
+
+
+ 2436.53
+
+
+ 2436.35
+
+
+ 2435.99
+
+
+ 2437.36
+
+
+ 2440.16
+
+
+ 2440.36
+
+
+ 2440.59
+
+
+ 2440.81
+
+
+ 2440.81
+
+
+ 2440.61
+
+
+ 2440.86
+
+
+ 2440.86
+
+
+ 2440.65
+
+
+ 2440.88
+
+
+ 2440.67
+
+
+ 2440.46
+
+
+ 2440.89
+
+
+ 2440.89
+
+
+ 2441.31
+
+
+ 2441.53
+
+
+ 2441.74
+
+
+ 2442.18
+
+
+ 2442.18
+
+
+ 2442.18
+
+
+ 2442.42
+
+
+ 2442.65
+
+
+ 2442.65
+
+
+ 2442.88
+
+
+ 2442.88
+
+
+ 2442.89
+
+
+ 2443.34
+
+
+ 2443.56
+
+
+ 2444.01
+
+
+ 2444.01
+
+
+ 2444.46
+
+
+ 2444.46
+
+
+ 2444.92
+
+
+ 2445.37
+
+
+ 2445.83
+
+
+ 2446.06
+
+
+ 2446.52
+
+
+ 2446.99
+
+
+ 2446.99
+
+
+ 2447.22
+
+
+ 2447.22
+
+
+ 2447.46
+
+
+ 2447.22
+
+
+ 2446.75
+
+
+ 2446.98
+
+
+ 2446.98
+
+
+ 2447.68
+
+
+ 2447.68
+
+
+ 2449.1
+
+
+ 2449.09
+
+
+ 2449.57
+
+
+ 2449.82
+
+
+ 2449.82
+
+
+ 2450.3
+
+
+ 2450.55
+
+
+ 2451.53
+
+
+ 2452.72
+
+
+
+