code: def pre_process(self):
          
          LOGGER.info('ANALYSIS : Pre processing')
  
          for pre_processor in self._preprocessors:
              layer = pre_processor['process']['function'](self)
              purpose = pre_processor['output'].get('value')['key']
              save_style = pre_processor['output'].get('save_style', False)
              result, name = self.datastore.add_layer(layer, purpose, save_style)
              if not result:
                  raise Exception(
                      tr('Something went wrong with the datastore : '
                         '{error_message}').format(error_message=name))
              layer = self.datastore.layer(name)
              self._preprocessors_layers[purpose] = layer
              self.debug_layer(layer, add_to_datastore=False)
  
              self.set_state_process('pre_processor', pre_processor['name'])
              LOGGER.info('{name} : Running'.format(name=pre_processor['name']))
docs: Run every pre-processors.
  
          Preprocessors are creating new layers with a specific layer_purpose.
          This layer is added then to the datastore.
  
          :return: Nothing