| from geopy.geocoders import Nominatim | |
| import numpy as np | |
| def create_grid(attrs): | |
| x_origin = float(attrs["x_origin"]) | |
| y_origin = float(attrs["y_origin"]) | |
| x_res = float(attrs["x_res"]) | |
| y_res = float(attrs["y_res"]) | |
| x_grid_size = int(attrs["x_grid_size"]) | |
| y_grid_size = int(attrs["y_grid_size"]) | |
| lons = np.round(np.linspace(x_origin, x_origin + (x_grid_size - 1) * x_res, x_grid_size), 6) | |
| lats = np.round(np.linspace(y_origin, y_origin + (y_grid_size - 1) * y_res, y_grid_size), 6) | |
| return lons, lats, np.meshgrid(lons, lats) | |
| def get_country_label(lat, lon): | |
| geolocator = Nominatim(user_agent="ash_animator") | |
| try: | |
| location = geolocator.reverse((lat, lon), language='en') | |
| return location.raw['address'].get('country', 'Unknown') | |
| except: | |
| return "Unknown" | |