code: def append_image_data(
      self,
      image_data,
      signature_colors=None,
      constellation_of_pixels=None,
  ):
      images = list()
  
      for i in range(self.image_data.shape[3]):
          images.append(
              (self.image_data[:, :, :, i])[:, :, :, np.newaxis]
          )
  
      images.append(image_data)
  
      self.image_data = np.squeeze(np.stack(images, axis=3))
  
      if signature_colors is not None:
          self.signature_colors.append(signature_colors)
      else:
          self.signature_colors = self._generate_signature_colors()
  
      if constellation_of_pixels is not None:
          self.constellation_of_pixels.append(constellation_of_pixels)
      else:
          self.constellation_of_pixels = (
              self._generate_constellation_of_pixels()
          )
  
file_path: SerpentAI/serpent/sprite.py
imports: import numpy
  import random
  import uuid
label_desc: Use image node_id 2 for calling the Sprite obj's underlying member method code with example usage: obj.append_image_data(image_data, signature_colors, constellation_of_pixels) without return types