def is_visible(lat, lon, domain_boundaries, cross_dateline) -> bool:
    """Check if a point (city) is inside the domain.

    Args:
        lat                 float      latitude of city
        lon                 float      longitude of city
        domain_boundaries   list       lon/lat range of domain
        cross_dateline      bool       if cross_dateline --> western lon values need to be shifted

    Returns:
                            bool       True if city is within domain boundaries, else false.

    """
    if cross_dateline:
        if lon < 0:
            lon = 360 - abs(lon)

    in_domain = (
        domain_boundaries[0] <= float(lon) <= domain_boundaries[1]
        and domain_boundaries[2] <= float(lat) <= domain_boundaries[3]
    )

    if in_domain:
        return True
    else:
        return False