code: def pixel_crop(self, bounds, xsize=None, ysize=None, window=None,
                     masked=None, bands=None, resampling=Resampling.cubic):
          
  
          if self._image is not None:
              raster = self._crop(bounds, xsize=xsize, ysize=ysize, resampling=resampling)
              if bands is not None:
                  raster = raster.limit_to_bands(bands)
              return raster
          else:
              window = window or rasterio.windows.Window(bounds[0],
                                                         bounds[1],
                                                         bounds[2] - bounds[0] + 1,
                                                         bounds[3] - bounds[1] + 1)
              return self.get_window(window, xsize=xsize, ysize=ysize, masked=masked,
                                     bands=bands, resampling=resampling)
docs: Crop raster outside vector (convex hull).
  
          :param bounds: bounds of requester portion of the image in image pixels
          :param xsize: output raster width, None for full resolution
          :param ysize: output raster height, None for full resolution
          :param windows: the bounds representation window on image in image pixels, Optional
          :param bands: list of indices of requested bands, default None which returns all bands
          :param resampling: reprojection resampling method, default `cubic`
  
          :return: GeoRaster