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 __init__(self, unit="miles"):
      valid_units = ["miles", "kilometers"]
      if unit not in valid_units:
          error_message = (
              "Invalid unit %s provided. Must be one of %s"
              % (
                  unit,
                  valid_units,
              )
          )
          raise ValueError(error_message)
      self.unit = unit
      self.description_template = (
          "the haversine distance in {} between {{}} and {{}}".format(
              self.unit
          )
      )
  
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 1 to create a new Haversine object from inherited base classes: TransformPrimitive with example: obj = Haversine(unit)