<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def is_periodic_image(self, other, tolerance=1e-8, check_lattice=True):
 """ Returns True if sites are periodic images of each other. Args: other (PeriodicSite):
 Other site tolerance (float):
 Tolerance to compare fractional coordinates check_lattice (bool):
 Whether to check if the two sites have the same lattice. Returns: bool: True if sites are periodic images of each other. """

        if check_lattice and self.lattice != other.lattice:
            return False
        if self.species != other.species:
            return False

        frac_diff = pbc_diff(self.frac_coords, other.frac_coords)
        return np.allclose(frac_diff, [0, 0, 0], atol=tolerance)