docs: def footprint(self):
          """Find and return footprint as Shapely Polygon."""
          # Check whether product or granule footprint needs to be calculated.
          tile_geocoding = self._metadata.iter("Tile_Geocoding").next()
          resolution = 10
          searchstring = ".//*[@resolution='%s']" % resolution
          size, geoposition = tile_geocoding.findall(searchstring)
          nrows, ncols = (int(i.text) for i in size)
          ulx, uly, xdim, ydim = (int(i.text) for i in geoposition)
          lrx = ulx + nrows * resolution
          lry = uly - ncols * resolution
          utm_footprint = box(ulx, lry, lrx, uly)
          project = partial(
              pyproj.transform,
              pyproj.Proj(init=self.srid),
              pyproj.Proj(init='EPSG:4326')
              )
          footprint = transform(project, utm_footprint).buffer(0)
          return footprint