class_docstr: Calculates the approximate haversine distance between two LatLong columns.
  
  Args:
      unit (str): Determines the unit value to output. Could
          be `miles` or `kilometers`. Default is `miles`.
  
  Examples:
      >>> haversine = Haversine()
      >>> distances = haversine([(42.4, -71.1), (40.0, -122.4)],
      ...                       [(40.0, -122.4), (41.2, -96.75)])
      >>> np.round(distances, 3).tolist()
      [2631.231, 1343.289]
  
      Output units can be specified
  
      >>> haversine_km = Haversine(unit='kilometers')
      >>> distances_km = haversine_km([(42.4, -71.1), (40.0, -122.4)],
      ...                             [(40.0, -122.4), (41.2, -96.75)])
      >>> np.round(distances_km, 3).tolist()
      [4234.555, 2161.814]
code: def generate_name(self, base_feature_names):
      name = "{}(".format(self.name.upper())
      name += ", ".join(base_feature_names)
      if self.unit != "miles":
          name += ", unit={}".format(self.unit)
      name += ")"
      return name
  
file_path: featuretools/featuretools/primitives/standard/transform/latlong/haversine.py
imports: import numpy
  from woodwork.column_schema import ColumnSchema
  from woodwork.logical_types import LatLong
  from featuretools.primitives.base import TransformPrimitive
  from featuretools.primitives.standard.transform.latlong.utils import _haversine_calculate
label_desc: Use image node_id 3 for calling the Haversine obj's underlying member method code with example usage: obj.generate_name(base_feature_names) and returns: name