#!/usr/bin/python # -*- coding: utf-8 -*- # \file Differential.py # \brief TODO # \author Florent Guiotte # \version 0.1 # \date 16 avril 2018 # # TODO details from ld2dap.core import Filter, Stack import numpy as np class Differential(Filter): def __init__(self): super().__init__(self.__class__.__name__) def _process(self, data, metadata): raster_list = list() metadata_new = list() offset = 0 for stack in metadata: print('Differential: {}'.format(stack)) raster_list.append(data[:,:,stack.begin+1:stack.end] - data[:,:,stack.begin:stack.end-1]) size_new = stack.end - stack.begin - 1 stack_new = Stack(offset, size_new) for i in range(len(stack_new.desc)): desc = stack.desc[i].copy() desc.append(':Differential:') desc.extend(stack.desc[i+1]) stack_new.desc[i] = desc metadata_new.append(stack_new) for i in range(len(stack_new.symb)): symb = list() #['D('] symb.extend(stack.symb[i]) symb.append(' - ') symb.extend(stack.symb[i+1]) #symb.append(')') stack_new.symb[i] = symb offset += size_new data = np.dstack(raster_list) return data, metadata_new