docs: def get_di_block(self, df_slice=None, do_index=False,
                       item_names=None, tilt_corr='100',
                       excl=None, ignore_tilt=False):
          """
          Input either a DataFrame slice
          or
          do_index=True and a list of index_names.
          Optional arguments:
          Provide tilt_corr (default 100).
          Excl is a list of method codes to exclude.
          Output dec/inc from the slice in this format:
          [[dec1, inc1], [dec2, inc2], ...].
          Not inplace
          """
          tilt_corr = int(tilt_corr)
          if isinstance(df_slice, str):
              if df_slice.lower() == "all":
                  # use entire DataFrame
                  df_slice = self.df
          elif do_index:
              # use fancy indexing (but note this will give duplicates)
              df_slice = self.df.loc[item_names]
          elif not do_index:
              # otherwise use the provided slice
              df_slice = df_slice
  
          # once you have the slice, fix up the data
          # tilt correction must match
          if not ignore_tilt:
              if tilt_corr != 0:
                  df_slice = df_slice[df_slice['dir_tilt_correction'] == tilt_corr]
              else:
                  # if geographic ("0"),
                  # use records with no tilt_corr and assume geographic
                  cond1 = df_slice['dir_tilt_correction'] == None
                  cond2 = df_slice['dir_tilt_correction'] == tilt_corr
                  df_slice = df_slice[cond1 | cond2]
          # exclude data with unwanted codes
          if excl:
              for ex in excl:
                  df_slice = self.get_records_for_code(ex, incl=False,
                                                       use_slice=True,
                                                       sli=df_slice)
  
          df_slice = df_slice[df_slice['dir_inc'].notnull() & df_slice['dir_dec'].notnull()]
          # possible add in:
          # split out di_block from this study from di_block from other studies (in citations column)
          # previously just used "This study", but it is no longer required
          #if 'citations' in df_slice.columns:
          #    df_slice = df_slice[df_slice['citations'].str.contains("This study")]
  
          # convert values into DIblock format
          di_block = [[float(row['dir_dec']), float(row['dir_inc'])] for ind, row in df_slice.iterrows()]
          return di_block