docs: def InitLocCheck(self):
          """make an interactive grid in which users can edit specimen names
          as well as which sample a specimen belongs to"""
          self.panel = wx.Panel(self, style=wx.SIMPLE_BORDER)
  
          text = """Step 5:
  Check that locations are correctly named.
  Fill in any blank cells using controlled vocabularies.
  (See Help button for details)
  
  ** Denotes controlled vocabulary"""
          label = wx.StaticText(self.panel, label=text)
          #self.Data_hierarchy = self.ErMagic.Data_hierarchy
          self.locations = self.er_magic_data.locations
          #
          if not self.er_magic_data.locations:
              msg = "You have no data in er_locations, so we are skipping step 5.\n Note that location names must be entered at the measurements level,so you may need to re-import your data, or you can add a location in step 3"
              dlg = wx.MessageDialog(None, caption="Message:", message=msg, style=wx.OK|wx.ICON_INFORMATION)
              dlg.ShowModal()
              dlg.Destroy()
              self.panel.Destroy()
              self.InitAgeCheck()
              return
  
          self.grid_builder = grid_frame2.GridBuilder(self.er_magic_data, 'location',
                                                     self.er_magic_data.headers, self.panel)
          self.loc_grid = self.grid_builder.make_grid(incl_pmag=False)
          self.loc_grid.InitUI()
          self.grid_builder.add_data_to_grid(self.loc_grid, 'location', incl_pmag=False)
          self.grid = self.loc_grid
          # initialize all needed drop-down menus
          self.drop_down_menu = drop_down_menus.Menus("location", self,
                                                       self.loc_grid, None)
  
          # need to find max/min lat/lon here IF they were added in the previous grid
          sites = self.er_magic_data.sites
          location_lat_lon = self.er_magic_data.get_min_max_lat_lon(self.er_magic_data.locations)
  
          col_names = ('location_begin_lat', 'location_end_lat', 'location_begin_lon', 'location_end_lon')
          col_inds = [self.grid.col_labels.index(name) for name in col_names]
          col_info = list(zip(col_names, col_inds))
          for loc in self.er_magic_data.locations:
              row_ind = self.grid.row_labels.index(loc.name)
              for col_name, col_ind in col_info:
                  info = location_lat_lon[loc.name][col_name]
                  self.grid.SetCellValue(row_ind, col_ind, str(info))
  
          ### Create Buttons ###
          hbox_one = wx.BoxSizer(wx.HORIZONTAL)
          self.helpButton = wx.Button(self.panel, label="Help")
          self.Bind(wx.EVT_BUTTON, lambda event: self.on_helpButton(event, "ErMagicLocationHelp.html"), self.helpButton)
          hbox_one.Add(self.helpButton)
  
          hboxok = wx.BoxSizer(wx.HORIZONTAL)
          self.saveButton = wx.Button(self.panel, id=-1, label='Save')
          self.Bind(wx.EVT_BUTTON, lambda event: self.on_saveButton(event, self.loc_grid), self.saveButton)
          self.cancelButton = wx.Button(self.panel, wx.ID_CANCEL, '&Cancel')
          self.Bind(wx.EVT_BUTTON, self.on_cancelButton, self.cancelButton)
          self.continueButton = wx.Button(self.panel, id=-1, label='Save and continue')
          self.Bind(wx.EVT_BUTTON, lambda event: self.on_continueButton(event, self.loc_grid, next_dia=self.InitAgeCheck), self.continueButton)
          self.backButton = wx.Button(self.panel, wx.ID_ANY, "&Back")
          previous_dia = self.InitSampCheck
          self.Bind(wx.EVT_BUTTON, lambda event: self.on_backButton(event, previous_dia, current_dia=self.InitLocCheck), self.backButton)
  
          hboxok.Add(self.saveButton, flag=wx.RIGHT, border=10)
          hboxok.Add(self.cancelButton, flag=wx.RIGHT, border=10)
          hboxok.Add(self.continueButton, flag=wx.RIGHT, border=10)
          hboxok.Add(self.backButton)
  
          #
          hboxgrid = pw.hbox_grid(self.panel, self.onDeleteRow, 'location', self.grid)
          self.deleteRowButton = hboxgrid.deleteRowButton
  
          self.Bind(wx.grid.EVT_GRID_LABEL_LEFT_CLICK, self.onLeftClickLabel, self.grid)
  
  
          ### Make Containers ###
          vbox = wx.BoxSizer(wx.VERTICAL)
          vbox.Add(label, flag=wx.ALIGN_CENTER|wx.TOP|wx.BOTTOM, border=20)
          vbox.Add(hbox_one, flag=wx.BOTTOM|wx.ALIGN_LEFT, border=10)
          vbox.Add(hboxok, flag=wx.BOTTOM|wx.ALIGN_LEFT, border=10)
          vbox.Add(hboxgrid, flag=wx.BOTTOM|wx.ALIGN_LEFT, border=10)
          vbox.Add(self.loc_grid, flag=wx.TOP|wx.BOTTOM, border=10)
          vbox.AddSpacer(20)
  
          self.hbox_all = wx.BoxSizer(wx.HORIZONTAL)
          self.hbox_all.AddSpacer(20)
          self.hbox_all.Add(vbox)
          self.hbox_all.AddSpacer(20)
  
          self.panel.SetSizer(self.hbox_all)
          #if sys.platform in ['win32', 'win64']:
          #    self.panel.SetScrollbars(20, 20, 50, 50)
          self.hbox_all.Fit(self)
          self.Centre()
          self.Show()
          self.Hide()
          self.Show()