code: def srfnrm(method, target, et, fixref, srfpts):
      
      method = stypes.stringToCharP(method)
      target = stypes.stringToCharP(target)
      et     = ctypes.c_double(et)
      fixref = stypes.stringToCharP(fixref)
      npts   = ctypes.c_int(len(srfpts))
      srfpts = stypes.toDoubleMatrix(srfpts)
      normls = stypes.emptyDoubleMatrix(3, npts.value)
      libspice.srfnrm_c(method, target, et, fixref, npts, srfpts, normls)
      return stypes.cMatrixToNumpy(normls)
docs: Map array of surface points on a specified target body to 
      the corresponding unit length outward surface normal vectors. 
   
      The surface of the target body may be represented by a triaxial 
      ellipsoid or by topographic data provided by DSK files. 
      
      https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/srfnrm_c.html
      
      :param method: Computation method.
      :type method: str
      :param target: Name of target body. 
      :type target: str
      :param et: Epoch in TDB seconds past J2000 TDB. 
      :type et: float
      :param fixref: Body-fixed, body-centered target body frame. 
      :type fixref: str
      :param srfpts: Array of surface points.
      :type srfpts: 3xM-Element Array of floats
      :return: Array of outward, unit length normal vectors.
      :rtype: 3xM-Element Array of floats