def rio_get_lat_long(coord): y = coord[1] * rio_y_factor x = coord[0] * rio_x_factor lat = rio_origin_lat_long[0] + (y / EARTH_RADIUS) * (180 / pi) long = rio_origin_lat_long[1] + (x / EARTH_RADIUS) * (180 / pi) / cos( rio_origin_lat_long[0] * pi / 180) return (lat, long)
def delhi_get_lat_long(coord): y = coord[1] * delhi_y_factor x = coord[0] * delhi_x_factor lat = delhi_origin_lat_long[0] + (y / EARTH_RADIUS) * (180 / pi) long = delhi_origin_lat_long[1] + (x / EARTH_RADIUS) * (180 / pi) / cos( delhi_origin_lat_long[0] * pi / 180) return (lat, long)
def hyderabad_get_lat_long(coord): y = coord[1] * hyperbad_y_factor x = coord[0] * hyperbad_x_factor lat = hyderabad_origin_lat_long[0] + (y / EARTH_RADIUS) * (180 / pi) long = hyderabad_origin_lat_long[1] + (x / EARTH_RADIUS) * ( 180 / pi) / cos(hyderabad_origin_lat_long[0] * pi / 180) return (lat, long)
def get_pixel_coords(city, coord): if city == 'rio': y = (coord[0] - rio_origin_lat_long[0]) / (180 / pi) * EARTH_RADIUS x = (coord[1] - rio_origin_lat_long[1]) * cos( rio_origin_lat_long[0] * pi / 180) / (180 / pi) * EARTH_RADIUS x = int(np.round(x / rio_x_factor)) y = int(np.round(y / rio_y_factor)) if x < 0: x = 0 if y < 0: y = 0 if x > rio_edge_coords[1] - 1: x = rio_edge_coords[1] - 1 if y > rio_edge_coords[0] - 1: y = rio_edge_coords[0] - 1 return (x, y) elif city == 'mumbai': y = (coord[0] - mumbai_origin_lat_long[0]) / (180 / pi) * EARTH_RADIUS x = (coord[1] - mumbai_origin_lat_long[1]) * cos( mumbai_origin_lat_long[0] * pi / 180) / (180 / pi) * EARTH_RADIUS x = int(np.round(x / mumbai_x_factor)) y = int(np.round(y / mumbai_y_factor)) if x < 0: x = 0 if y < 0: y = 0 if x > mumbai_edge_coords[1] - 1: x = mumbai_edge_coords[1] - 1 if y > mumbai_edge_coords[0] - 1: y = mumbai_edge_coords[0] - 1 return (x, y) elif city == 'hyderabad': y = (coord[0] - hyderabad_origin_lat_long[0]) / (180 / pi) * EARTH_RADIUS x = (coord[1] - hyderabad_origin_lat_long[1]) * cos( hyderabad_origin_lat_long[0] * pi / 180) / (180 / pi) * EARTH_RADIUS x = int(np.round(x / hyderabad_x_factor)) y = int(np.round(y / hyderabad_y_factor)) if x < 0: x = 0 if y < 0: y = 0 if x > hyderabad_edge_coords[1] - 1: x = hyderabad_edge_coords[1] - 1 if y > hyderabad_edge_coords[0] - 1: y = hyderabad_edge_coords[0] - 1 return (x, y) elif city == 'chennai': y = (coord[0] - chennai_origin_lat_long[0]) / (180 / pi) * EARTH_RADIUS x = (coord[1] - chennai_origin_lat_long[1]) * cos( chennai_origin_lat_long[0] * pi / 180) / (180 / pi) * EARTH_RADIUS x = int(np.round(x / chennai_x_factor)) y = int(np.round(y / chennai_y_factor)) if x < 0: x = 0 if y < 0: y = 0 if x > chennai_edge_coords[1] - 1: x = chennai_edge_coords[1] - 1 if y > chennai_edge_coords[0] - 1: y = chennai_edge_coords[0] - 1 return (x, y) elif city == 'delhi': y = (coord[0] - delhi_origin_lat_long[0]) / (180 / pi) * EARTH_RADIUS x = (coord[1] - delhi_origin_lat_long[1]) * cos( delhi_origin_lat_long[0] * pi / 180) / (180 / pi) * EARTH_RADIUS x = int(np.round(x / delhi_x_factor)) y = int(np.round(y / delhi_y_factor)) if x < 0: x = 0 if y < 0: y = 0 if x > delhi_edge_coords[1] - 1: x = delhi_edge_coords[1] - 1 if y > delhi_edge_coords[0] - 1: y = delhi_edge_coords[0] - 1 return (x, y) else: print( "Error Invalid City, Valid Cities are rio, mumbai, delhi, chennai, and hyderabad" )