code: def GenerateBand(self, band, meta_only=False, cast=False):
          
  
          # Read the band data and add it to dictionary
          if not meta_only:
              fname = band.get('file_name')
              data = self.ReadTif('%s/%s' % (os.path.dirname(self.filename), fname))
              # band['data'] = data # TODO: data is not a properties object so do not set yet
  
          def FixBitmap(d):
              p = d.get('bitmap_description')
              if p:
                  lis = p.get('bit')
                  bm = dict()
                  # Fix bitmap_description from list of dicts to one dict
                  for i in lis:
                      key = i['num']
                      value = i['text']
                      bm[key] = value
                  del d['bitmap_description']
                  d['bitmap_description'] = bm
              return d
  
          band = SetProperties(Band, FixBitmap(self.CleanDict(band)))
          if not meta_only:
              if cast:
                  # cast as floats and fill bad values with nans
                  data = data.astype(np.float32)
                  data[data==band.fill_value] = -9999
                  if band.valid_range is not None:
                      data[data<band.valid_range.min] = -9999
                      data[data>band.valid_range.max] = -9999
                  data[data==-9999] = np.nan
              else:
                  data = np.ma.masked_where(data==band.fill_value, data)
                  if band.valid_range is not None:
                      data = np.ma.masked_where(data<band.valid_range.min, data)
                      data = np.ma.masked_where(data>band.valid_range.max, data)
              # Flip y axis if requested
              if self.yflip:
                  data = np.flip(data, 0)
              band.data = data
  
          if not meta_only:
              band.validate()
  
          return band
docs: Genreate a Band object given band metadata
  
          Args:
              band (dict): dictionary containing metadata for a given band
  
          Return:
              Band : the loaded Band onject