def on_equalarea_high_select(self, event, fig=None, canvas=None):
        """
        Get mouse position on double click find the nearest interpretation
        to the mouse position then select that interpretation

        Parameters
        ----------
        event : the wx Mouseevent for that click

        Alters
        ------
        current_fit, s, mean_fit, fit_box selection, mean_fit_box selection,
        specimens_box selection, tmin_box selection, tmax_box selection
        """
        if self.ie_open and self.ie.show_box.GetValue() != "specimens":
            return
        if not self.high_EA_xdata or not self.high_EA_ydata:
            return
        if fig == None:
            fig = self.high_level_eqarea
        if canvas == None:
            canvas = self.canvas4
        pos = event.GetPosition()
        width, height = canvas.get_width_height()
        pos[1] = height - pos[1]
        xpick_data, ypick_data = pos
        xdata_org = self.high_EA_xdata
        ydata_org = self.high_EA_ydata
        data_corrected = fig.transData.transform(
            vstack([xdata_org, ydata_org]).T)
        xdata, ydata = data_corrected.T
        xdata = list(map(float, xdata))
        ydata = list(map(float, ydata))
        e = 4e0

        index = None
        for i, (x, y) in enumerate(zip(xdata, ydata)):
            if 0 < sqrt((x-xpick_data)**2. + (y-ypick_data)**2.) < e:
                index = i
                break
        if index != None:
            disp_fit_name = self.mean_fit_box.GetValue()

            if self.level_box.GetValue() == 'sample':
                high_level_type = 'samples'
            if self.level_box.GetValue() == 'site':
                high_level_type = 'sites'
            if self.level_box.GetValue() == 'location':
                high_level_type = 'locations'
            if self.level_box.GetValue() == 'study':
                high_level_type = 'study'

            high_level_name = str(self.level_names.GetValue())
            calculation_type = str(self.mean_type_box.GetValue())
            elements_type = self.UPPER_LEVEL_SHOW

            elements_list = self.Data_hierarchy[high_level_type][high_level_name][elements_type]

            new_fit_index = 0
            for i, specimen in enumerate(elements_list):
                if disp_fit_name == "All" and \
                   specimen in self.pmag_results_data[elements_type]:
                    l = 0
                    for fit in self.pmag_results_data[elements_type][specimen]:
                        l += 1
                else:
                    try:
                        disp_fit_index = map(
                            lambda x: x.name, self.pmag_results_data[elements_type][specimen]).index(disp_fit_name)
                        if self.pmag_results_data[elements_type][specimen][disp_fit_index] in self.bad_fits:
                            l = 0
                        else:
                            l = 1
                    except IndexError:
                        l = 0
                    except KeyError:
                        l = 0
                    except ValueError:
                        l = 0

                if index < l:
                    self.specimens_box.SetStringSelection(specimen)
                    self.select_specimen(specimen)
                    self.draw_figure(specimen, False)
                    if disp_fit_name == "All":
                        new_fit_index = index
                    else:
                        new_fit_index = disp_fit_index
                    break

                index -= l
            self.update_fit_box()
            self.fit_box.SetSelection(new_fit_index)
            self.on_select_fit(event)
            if disp_fit_name != "All":
                self.mean_fit = self.current_fit.name
                self.mean_fit_box.SetSelection(2+new_fit_index)
                self.update_selection()
            else:
                self.Add_text()
            if self.ie_open:
                self.ie.change_selected(self.current_fit)