Fixing issues with stadiums
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
import pytz
|
||||
import ephem
|
||||
import requests
|
||||
import datetime
|
||||
from geopy.geocoders import Nominatim
|
||||
from timezonefinder import TimezoneFinder
|
||||
|
||||
def get_sun_and_moon_phase(lat, long, date_str):
|
||||
date_str = f"{date_str[:4]}/{date_str[4:6]}/{date_str[6:8]}"
|
||||
@@ -25,14 +24,9 @@ def get_sun_and_moon_phase(lat, long, date_str):
|
||||
return (sunrise_time, sunset_time, moon.phase)
|
||||
|
||||
def get_timezone(latitude: float, longitude: float):
|
||||
geolocator = Nominatim()
|
||||
location = geolocator.reverse(f"{latitude}, {longitude}")
|
||||
|
||||
if location:
|
||||
for tag in location.raw['address']:
|
||||
if 'timezone' in tag:
|
||||
tz_name = tag.split('=')[1]
|
||||
return pytz.timezone(tz_name)
|
||||
obj = TimezoneFinder()
|
||||
timezone_str = obj.timezone_at(lng=longitude, lat=latitude)
|
||||
return timezone_str
|
||||
|
||||
def get_weather(latitude: float, longitude: float, date_str: str, hour: int) -> dict:
|
||||
"""
|
||||
|
||||
@@ -4,7 +4,9 @@ INSERT OR IGNORE INTO parks
|
||||
("ARL03", "Globe Life Field in Arlington", 332, 14, 400, 8, 325, 8, 1, 32.747361, -97.084167, 568),
|
||||
("ATL03", "Truist Park", 335, 11, 400, 12, 330, 15, 0, 33.89, -84.468, 951),
|
||||
("BAL12", "Oriole Park at Camden Yards", 333, 7, 400, 7, 318, 21, 0, 39.283889, -76.621667, 36),
|
||||
("BIR01", "Rickwood Field", 325, 8, 400, 8, 332, 8, 0, 33.502222, -86.855833, 551),
|
||||
("BOS07", "Fenway Park", 310, 37, 390, 15, 302, 3, 0, 42.34625, -71.09775, 16),
|
||||
("CHI11", "Weeghman Park; Cubs Park", 355, 11, 400, 11, 353, 11, 0, 41.948056, -87.655556, 594),
|
||||
("CHI12", "Guaranteed Rate Field", 330, 8, 400, 8, 335, 8, 0, 41.83, -87.633889, 594),
|
||||
("CIN09", "Great American Ballpark", 328, 12, 404, 8, 325, 12, 0, 39.0975, -84.506667, 489),
|
||||
("CLE08", "Progressive Field", 325, 19, 410, 9, 325, 9, 0, 41.495833, -81.685278, 653),
|
||||
@@ -12,8 +14,10 @@ INSERT OR IGNORE INTO parks
|
||||
("DET05", "Comerica Park", 345, 7, 420, 9, 330, 8, 0, 42.339169, -83.048607, 577),
|
||||
("HOU03", "Minute Maid Park", 315, 21, 436, 10, 326, 7, 1, 29.756944, -95.355556, 20),
|
||||
("KAN06", "Kauffman Stadium", 330, 9, 410, 9, 330, 9, 0, 39.051389, -94.480556, 856),
|
||||
("LON01", "London Stadium", 330, 16, 392, 16, 330, 16, 1, 51.538611, -0.016389, 24),
|
||||
("LOS02", "Wrigley Field", 355, 15, 400, 11.5, 353, 15, 0, 41.948056, -87.655556, 600),
|
||||
("LOS03", "Dodger Stadium", 330, 8, 395, 8, 330, 8, 0, 34.073611, -118.24, 515),
|
||||
("MEX02", "Estadio Alfredo Harp Helu", 332, 10, 410, 10, 332, 10, 0, 19.404, -99.0855, 7316),
|
||||
("MIA02", "Marlins Park", 344, 9, 407, 12, 335, 9, 1, 25.778056, -80.219722, 7),
|
||||
("MIL06", "Miller Park", 344, 8, 400, 8, 345, 8, 1, 43.028333, -87.971111, 617),
|
||||
("MIN04", "Target Field", 339, 8, 404, 8, 328, 23, 0, 44.981667, -93.278333, 827),
|
||||
@@ -30,4 +34,5 @@ INSERT OR IGNORE INTO parks
|
||||
("STL10", "Busch Stadium III", 336, 8, 400, 8, 335, 8, 0, 38.6225, -90.193056, 440),
|
||||
("STP01", "Tropicana Field", 315, 11, 404, 9, 322, 11, 1, 27.768333, -82.653333, 39),
|
||||
("TOR02", "Rogers Centre", 328, 8, 400, 8, 328, 8, 1, 43.641389, -79.389167, 282),
|
||||
("WAS11", "Nationals Park", 336, 8, 402, 12, 335, 10, 0, 38.872778, -77.0075, 7)
|
||||
("WAS11", "Nationals Park", 336, 8, 402, 12, 335, 10, 0, 38.872778, -77.0075, 7),
|
||||
("WIL02", "BB&T Ballpark at Bowman Field", 323, 8, 411, 8, 331, 8, 0, 41.242347, -77.047067, 521)
|
||||
|
||||
@@ -47,6 +47,13 @@ class Importer:
|
||||
self.populate_database_with_stats(game)
|
||||
|
||||
def populate_database_with_stats(self, game_stats):
|
||||
parkid = game_stats["park-id"]
|
||||
park_data = self.database.select("SELECT latitude, longitude FROM parks WHERE park_id = ?", (game_stats["park-id"],))
|
||||
|
||||
if park_data is None:
|
||||
print(f"{parkid} is None")
|
||||
return
|
||||
|
||||
insert_game = """
|
||||
INSERT INTO games
|
||||
(
|
||||
@@ -191,11 +198,6 @@ class Importer:
|
||||
self.database.insert(insert_team_game, visiting_team_data)
|
||||
self.database.insert(insert_team_game, home_team_data)
|
||||
|
||||
parkid = game_stats["park-id"]
|
||||
print(f"SELECT latitude, longitude FROM parks WHERE park_id = {parkid}")
|
||||
park_data = self.database.select("SELECT latitude, longitude FROM parks WHERE park_id = ?", (game_stats["park-id"],))
|
||||
print(f"latlon {park_data}")
|
||||
|
||||
hour = 15 if game_stats["day-night"] == "D" else 19
|
||||
historic_weather = get_weather(park_data[0], park_data[1], game_stats["date"], hour)
|
||||
historic_weather = historic_weather["hourly"]
|
||||
@@ -217,7 +219,7 @@ class Importer:
|
||||
?, ?, ?,
|
||||
?, ?, ?,
|
||||
?, ?, ?,
|
||||
?,
|
||||
?
|
||||
)
|
||||
"""
|
||||
|
||||
@@ -231,3 +233,5 @@ class Importer:
|
||||
historic_weather["wind_gusts_10m"][hour], sunrise_time, sunset_time,
|
||||
moonphase,
|
||||
]
|
||||
|
||||
self.database.insert(insert_into_weather, weather_data)
|
||||
|
||||
Reference in New Issue
Block a user