Module delta.extensions.sources.npy

Read data in numpy arrays.

Classes

class NumpyImage (data: Optional[numpy.ndarray] = None, path: Optional[str] = None, nodata_value=None)

Load a numpy array as an image.

Parameters

data : Optional[numpy.ndarray]
Loads a numpy array directly.
path : Optional[str]
Load a numpy array from a file with numpy.load. Only one of data or path should be given.
nodata_value
The pixel value representing no data.
Expand source code
class NumpyImage(delta_image.DeltaImage):
    """
    Load a numpy array as an image.
    """
    def __init__(self, data: Optional[np.ndarray]=None, path: Optional[str]=None, nodata_value=None):
        """
        Parameters
        ----------
        data: Optional[numpy.ndarray]
            Loads a numpy array directly.
        path: Optional[str]
            Load a numpy array from a file with `numpy.load`. Only one of data or path should be given.
        nodata_value
            The pixel value representing no data.
        """
        super().__init__(nodata_value)

        if path:
            assert not data
            assert os.path.exists(path)
            self._data = np.load(path)
            if len(self._data.shape) == 2:
                self._data = np.expand_dims(self._data, axis=2)
        else:
            assert data is not None
            self._data = data

    def _read(self, roi, bands, buf=None):
        if buf is None:
            buf = np.zeros(shape=(roi.height(), roi.width(), self.num_bands() ), dtype=self._data.dtype)
        (min_x, max_x, min_y, max_y) = roi.bounds()
        if len(self._data.shape) == 2:
            buf = self._data[min_y:max_y,min_x:max_x]
        else:
            buf = self._data[min_y:max_y,min_x:max_x,:]
        return buf

    def size(self):
        return (self._data.shape[0], self._data.shape[1])

    def num_bands(self):
        if len(self._data.shape) == 2:
            return 1
        return self._data.shape[2]

    def dtype(self):
        return self._data.dtype

Ancestors

Inherited members

class NumpyWriter

Base class for writing images in DELTA.

Expand source code
class NumpyWriter(delta_image.DeltaImageWriter):
    def __init__(self):
        self._buffer = None

    def initialize(self, size, numpy_dtype, metadata=None, nodata_value=None):
        self._buffer = np.zeros(shape=size, dtype=numpy_dtype)

    def write(self, data, y, x):
        self._buffer[y:y+data.shape[0], x:x+data.shape[1]] = data

    def close(self):
        pass

    def abort(self):
        pass

    def buffer(self):
        return self._buffer

Ancestors

Methods

def buffer(self)

Inherited members