code: def rake(strike, dip, rake_angle):
      
      strike, dip, rake_angle = np.atleast_1d(strike, dip, rake_angle)
      # Plot the approriate point for a strike of 0 and rotate it
      dip = 90 - dip
      lon = dip
  
      rake_angle = rake_angle.copy()
      rake_angle[rake_angle < 0] += 180
      lat = 90 - rake_angle
  
      lon, lat = _rotate(lon, lat, strike)
      return lon, lat
docs: Calculates the longitude and latitude of the linear feature(s) specified by
      `strike`, `dip`, and `rake_angle`.
  
      Parameters
      ----------
      strike : number or sequence of numbers
          The strike of the plane(s) in degrees, with dip direction indicated by
          the azimuth (e.g. 315 vs. 135) specified following the "right hand
          rule".
      dip : number or sequence of numbers
          The dip of the plane(s) in degrees.
      rake_angle : number or sequence of numbers
          The angle of the lineation on the plane measured in degrees downward
          from horizontal. Zero degrees corresponds to the "right- hand"
          direction indicated by the strike, while 180 degrees or a negative
          angle corresponds to the opposite direction.
  
      Returns
      -------
      lon, lat : Arrays of longitude and latitude in radians.