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"
        )