code: def dir2cart(d):
      
      ints = np.ones(len(d)).transpose(
      )  # get an array of ones to plug into dec,inc pairs
      d = np.array(d)
      rad = np.pi/180.
      if len(d.shape) > 1:  # array of vectors
          decs, incs = d[:, 0] * rad, d[:, 1] * rad
          if d.shape[1] == 3:
              ints = d[:, 2]  # take the given lengths
      else:  # single vector
          decs, incs = np.array(float(d[0])) * rad, np.array(float(d[1])) * rad
          if len(d) == 3:
              ints = np.array(d[2])
          else:
              ints = np.array([1.])
      cart = np.array([ints * np.cos(decs) * np.cos(incs), ints *
                       np.sin(decs) * np.cos(incs), ints * np.sin(incs)]).transpose()
      return cart
docs: Converts a list or array of vector directions in degrees (declination,
      inclination) to an array of the direction in cartesian coordinates (x,y,z)
  
      Parameters
      ----------
      d : list or array of [dec,inc] or [dec,inc,intensity]
  
      Returns
      -------
      cart : array of [x,y,z]
  
      Examples
      --------
      >>> pmag.dir2cart([200,40,1])
      array([-0.71984631, -0.26200263,  0.64278761])