def unique_str(self):
        """ A string that (ideally) uniquely represents this GC object. This
        helps with naming files for caching. 'Unique' is defined as 'If
        GC1 != GC2, then GC1.unique_str() != GC2.unique_str()'; conversely,
        'If GC1 == GC2, then GC1.unique_str() == GC2.unique_str()'.

        The string should be filename-safe (no \/:*?"<>|).

        ..note::Because of length/readability restrictions, this fxn ignores
        wkt.

        Example output:
        "-180.000_0.250_0.000_90.000_0.000_-0.251_512_612_2013-05-21_12_32_52.945000"
        """

        unique_str = "_".join(["%.3f" % f for f in self.geotransform] +
                              ["%d" % d for d in self.x_size, self.y_size]
                              )
        if self.date is not None:
            unique_str += '_' + str(self.date)
        if self.time is not None:
            unique_str += '_' + str(self.time)
        return unique_str.replace(':', '_')