def grand_ffr_join(grand_dat,
                   ffr_dat):
    """ Merge Free-flowing rivers data subset with processed GRanD data and create
        new geodataframe of matching river segments and with dam observations based on GOID.
    
    Parameters
    -----------
    grand_dat : geodataframe
        Processed GRanD dam dataset with new columns and GOID added
    ffr_dat : geodataframe 
        Subset of free-flowing river data
    
    Returns
    ----------
    ffr_grand : geodataframe
        A geodataframe of matching FFR and GRanD observations that maintains the river geometry
    """

    grand_ffr = grand_dat.merge(ffr_dat, on="GOID", how="inner")
    
    return grand_ffr