<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def extract_all(self):
        ''' Extract all the image

        Returns:
            A tupple of three arrays ``(X,Y,Z)`` with ``X`` contains the
            longitudes, ``Y`` contains the latitude and ``Z`` the values
            extracted from the image.

        Note:
            All return arrays have the same size.

            All coordinate are in degree.

        '''

        longmin, longmax, latmin, latmax = self.Boundary()
        sample_min, sample_max = map(
            int, (self.SAMPLE_FIRST_PIXEL, self.SAMPLE_LAST_PIXEL))
        line_min, line_max = map(
            int, (self.LINE_FIRST_PIXEL, self.LINE_LAST_PIXEL))

        X = np.array(map(self.long_id, (range(sample_min, sample_max + 1, 1))))
        Y = np.array(map(self.lat_id, (range(line_min, line_max + 1, 1))))
        for i, line in enumerate(range(int(line_min), int(line_max) + 1)):
            start = (line - 1) * int(self.SAMPLE_LAST_PIXEL) + sample_min
            chunk_size = int(sample_max - sample_min)
            Za = self.array(chunk_size, start, self.bytesize)
            if i == 0:
                Z = Za
            else:
                Z = np.vstack((Z, Za))

        X, Y = np.meshgrid(X, Y)

        return X, Y, Z