code: def get_summary_table(
      num_features: int,
      time_bins: int,
      time_axis: str,
      reference_type: str,
      time_width: float,
      offset: str,
      max_timestamp: str,
  ) -> dict:
      """
      This function returns a dictionary of summary statistics for a given set of features
  
      :param num_features: number of features in the dataset
      :param time_bins: number of time bins to use
      :param time_axis: the name of the time axis
      :param reference_type: the type of reference to use
      :param time_width: the width of the time bins in seconds
      :param offset: the time offset from the start of the data
      :param max_timestamp: the maximum timestamp in the data
      :rtype: dict
      """
  
      bin_width = convert_time_delta(time_width)
      data = {
          "reference type": reference_type,
          "number of features": num_features,
          "time axis": time_axis,
          "time bins": time_bins,
          "bin width": bin_width if len(bin_width) > 0 else time_width,
          "time range": str(offset) + " - " + str(max_timestamp),
      }
  
      # plot summary table
      fig = go.Figure(
          data=[
              go.Table(
                  header={
                      "fill_color": "white",
                      "line": {"color": "white"},
                  },
                  cells={
                      "values": [
                          list(data.keys()),
                          list(data.values()),
                      ],
                      "fill": {
                          "color": [
                              "rgb(235, 240, 248)",
                              "rgb(235, 240, 248)",
                          ]
                      },
                      "line": {"color": "white"},
                      "align": "left",
                  },
              )
          ],
      )
  
      fig.update_layout(
          autosize=False,
          margin={"l": 50, "r": 50, "t": 10, "b": 10},
          height=200,
          width=538,
      )
  
      plot = json.loads(fig.to_json())
  
      return {
          "name": "Dataset",
          "type": "overview",
          "description": "",
          "plot": plot.get("data", ""),
          "layout": plot.get("layout", ""),
      }
  
imports: from __future__ import annotations
  import datetime
  import json
  import logging
  import math
  import warnings
  from collections import defaultdict
  import numpy
  import pandas
  import plotly.express
  import plotly.graph_objects
  from popmon.resources import templates_env
label_desc: Use image node_id 3 for calling a global function with example usage: get_summary_table(num_features, time_bins, time_axis, reference_type, time_width, offset, max_timestamp) and returns: dict