def do_analysis(**defaults):
    """
    All 'real work' happens here. We take in any (modified) defaults as our starting parameters.

    :param defaults: The elements we are going to work with such as Geoserver datasets, SRS code, CQL filters etc.
    :return: None
    """
    # Make result log to be printed at the end. Information will be added to this as we proceed.
    result_log = ""

    # ==================
    # Do analysis here.
    # ==================

    # Get data from Geoerver. Note that we use the same SRS for both and the we filter based on required polygons and
    # points with population greater than a specified amount. Take note of 'download_from_geoserver' in 'utilities'.

    # return log of results. This can be printed to the console or written to the scrolledtext element in the GUI.
    return result_log