<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def convert_units(self, desired, guess=False):
 """ If geometry has units defined convert them to new units. Returns a new scene with geometries and transforms scaled. Parameters desired : str Desired final unit system: 'inches', 'mm', etc. guess : bool Is the converter allowed to guess scale when models don't have it specified in their metadata. Returns scaled : trimesh.Scene Copy of scene with scaling applied and units set for every model """

        # if there is no geometry do nothing
        if len(self.geometry) == 0:
            return self.copy()

        current = self.units
        if current is None:
            # will raise ValueError if not in metadata
            # and not allowed to guess
            current = units.units_from_metadata(self, guess=guess)

        # find the float conversion
        scale = units.unit_conversion(current=current,
                                      desired=desired)

        # exit early if our current units are the same as desired units
        if np.isclose(scale, 1.0):
            result = self.copy()
        else:
            result = self.scaled(scale=scale)

        # apply the units to every geometry of the scaled result
        result.units = desired

        return result