code: def w(self, units=None):
          
          if self.ndim == 3:
              cart = self.cartesian
          else:
              cart = self
  
          xyz = cart.xyz
          d_xyz = cart.v_xyz
  
          x_unit = xyz.unit
          v_unit = d_xyz.unit
          if ((units is None or isinstance(units, DimensionlessUnitSystem)) and
                  (x_unit == u.one and v_unit == u.one)):
              units = DimensionlessUnitSystem()
  
          elif units is None:
              raise ValueError("A UnitSystem must be provided.")
  
          x = xyz.decompose(units).value
          if x.ndim < 2:
              x = atleast_2d(x, insert_axis=1)
  
          v = d_xyz.decompose(units).value
          if v.ndim < 2:
              v = atleast_2d(v, insert_axis=1)
  
          return np.vstack((x,v))
docs: This returns a single array containing the phase-space positions.
  
          Parameters
          ----------
          units : `~gala.units.UnitSystem` (optional)
              The unit system to represent the position and velocity in
              before combining into the full array.
  
          Returns
          -------
          w : `~numpy.ndarray`
              A numpy array of all positions and velocities, without units.
              Will have shape ``(2*ndim,...)``.