@patch<EOL>def add_virtual_columns_lbrvr_proper_motion2vcartesian(self, long_in="<STR_LIT:l>", lat_in="<STR_LIT:b>", distance="<STR_LIT>", pm_long="<STR_LIT>", pm_lat="<STR_LIT>",<EOL>vr="<STR_LIT>", vx="<STR_LIT>", vy="<STR_LIT>", vz="<STR_LIT>",<EOL>center_v=(<NUM_LIT:0>, <NUM_LIT:0>, <NUM_LIT:0>),<EOL>propagate_uncertainties=False, radians=False):
k = <NUM_LIT><EOL>a, d, distance = self._expr(long_in, lat_in, distance)<EOL>pm_long, pm_lat, vr = self._expr(pm_long, pm_lat, vr)<EOL>if not radians:<EOL><INDENT>a = a * np.pi/<NUM_LIT><EOL>d = d * np.pi/<NUM_LIT><EOL><DEDENT>A = [[np.cos(a)*np.cos(d), -np.sin(a), -np.cos(a)*np.sin(d)],<EOL>[np.sin(a)*np.cos(d),  np.cos(a), -np.sin(a)*np.sin(d)],<EOL>[np.sin(d), d*<NUM_LIT:0>, np.cos(d)]]<EOL>self.add_virtual_columns_matrix3d(vr, k * pm_long * distance, k * pm_lat * distance, vx, vy, vz, A, translation=center_v)<EOL>if propagate_uncertainties:<EOL><INDENT>self.propagate_uncertainties([self[vx], self[vy], self[vz]])<EOL><DEDENT>
Convert radial velocity and galactic proper motions (and positions) to cartesian velocities wrt the center_v

    Based on http://adsabs.harvard.edu/abs/1987AJ.....93..864J


    :param long_in: Name/expression for galactic longitude
    :param lat_in: Name/expression for galactic latitude
    :param distance: Name/expression for heliocentric distance
    :param pm_long: Name/expression for the galactic proper motion in latitude direction (pm_l*, so cosine(b) term should be included)
    :param pm_lat: Name/expression for the galactic proper motion in longitude direction
    :param vr: Name/expression for the radial velocity
    :param vx: Output name for the cartesian velocity x-component
    :param vy: Output name for the cartesian velocity y-component
    :param vz: Output name for the cartesian velocity z-component
    :param center_v: Extra motion that should be added, for instance lsr + motion of the sun wrt the galactic restframe
    :param radians: input and output in radians (True), or degrees (False)
    :return: