class_docstr: Build graph, treat all nodes as the same type
  Parameters
  ----------
  x: edge weights of 8-node complete graph
      There are 1 x 64 edges
  y: labels (diseased/healthy)
  num_nodes: the number of nodes of the graph. In our case, it is 8.
  indices: Patient level indices. They are used to generate edge weights.
  
  Output
  ------
  a complete 8-node DGLGraph with node features and edge weights
code: def get_geodesic_distance(
      self, montage_sensor1_idx, montage_sensor2_idx, coords_1010
  ):
      # get the reference sensor in the 10-10 system for the current montage pair in 10-20 system
      ref_sensor1 = self.ref_names[montage_sensor1_idx]
      ref_sensor2 = self.ref_names[montage_sensor2_idx]
  
      x1 = float(coords_1010[coords_1010.label == ref_sensor1]["x"])
      y1 = float(coords_1010[coords_1010.label == ref_sensor1]["y"])
      z1 = float(coords_1010[coords_1010.label == ref_sensor1]["z"])
  
      x2 = float(coords_1010[coords_1010.label == ref_sensor2]["x"])
      y2 = float(coords_1010[coords_1010.label == ref_sensor2]["y"])
      z2 = float(coords_1010[coords_1010.label == ref_sensor2]["z"])
  
      # https://math.stackexchange.com/questions/1304169/distance-between-two-points-on-a-sphere
      r = 1  # since coords are on unit sphere
      # rounding is for numerical stability, domain is [-1, 1]
      dist = r * math.acos(
          round(((x1 * x2) + (y1 * y2) + (z1 * z2)) / (r**2), 2)
      )
      return dist
  
file_path: dgl/examples/pytorch/eeg-gcnn/EEGGraphDataset.py
imports: import math
  from itertools import product
  import dgl
  import numpy
  import pandas
  import torch
  from dgl.data import DGLDataset
label_desc: Use image node_id 3 for calling the EEGGraphDataset obj's underlying member method code with example usage: obj.get_geodesic_distance(montage_sensor1_idx, montage_sensor2_idx, coords_1010) and returns: dist