Vectorizes a data slice of a single time component

        :param raster: Numpy array or shape (height, width, channels)
        :type raster: numpy.ndarray
        :param data_transform: Object holding a transform vector (i.e. geographical location vector) of the raster
        :type data_transform: affine.Affine
        :param crs: Coordinate reference system
        :type crs: sentinelhub.CRS
        :param timestamp: Time of the data slice
        :type timestamp: datetime.datetime
        :return: Vectorized data
        :rtype: geopandas.GeoDataFrame

def _vectorize_single_raster(self, raster, data_transform, crs, timestamp=None):
        """ Vectorizes a data slice of a single time component

        :param raster: Numpy array or shape (height, width, channels)
        :type raster: numpy.ndarray
        :param data_transform: Object holding a transform vector (i.e. geographical location vector) of the raster
        :type data_transform: affine.Affine
        :param crs: Coordinate reference system
        :type crs: sentinelhub.CRS
        :param timestamp: Time of the data slice
        :type timestamp: datetime.datetime
        :return: Vectorized data
        :rtype: geopandas.GeoDataFrame
        """
        mask = None
        if self.values:
            mask = np.zeros(raster.shape, dtype=np.bool)
            for value in self.values:
                mask[raster == value] = True

        geo_list = []
        value_list = []
        for idx in range(raster.shape[-1]):
            for geojson, value in rasterio.features.shapes(raster[..., idx],
                                                           mask=None if mask is None else mask[..., idx],
                                                           transform=data_transform):
                geo_list.append(shapely.geometry.shape(geojson))
                value_list.append(value)

        geo_series = GeoSeries(geo_list)
        value_series = GeoSeries(value_list)

        series_dict = dict(VALUE=value_series, geometry=geo_series) if timestamp is None else \
            dict(VALUE=value_series, TIMESTAMP=GeoSeries([timestamp] * len(geo_list)), geometry=geo_series)

        return GeoDataFrame(series_dict, crs={'init': 'epsg:{}'.format(crs.value)})