I have a BigTiff image and an associate point shapefile with features. I would like to know how can I create a bounding box from that shapefile to create/clip images around that points to train a model.
EDIT: I'm trying to do it automatically in a Jupyter Notebook and I've followed this threat but all exported images are completely black.
from osgeo import ogr, gdal InputImage = 'XXX.tif' Shapefile = 'XXX.shp' RasterFormat = 'GTiff' PixelRes = 0.5 VectorFormat = 'ESRI Shapefile' # Open datasets Raster = gdal.Open(InputImage, gdal.GA_ReadOnly) Projection = Raster.GetProjectionRef() VectorDriver = ogr.GetDriverByName(VectorFormat) VectorDataset = VectorDriver.Open(Shapefile, 0) # 0=Read-only, 1=Read-Write layer = VectorDataset.GetLayer() FeatureCount = layer.GetFeatureCount() print("Feature Count:",FeatureCount) # Iterate through the shapefile features Count = 0 for feature in layer: Count += 1 print("Processing feature "+str(Count)+" of "+str(FeatureCount)+"...") geom = feature.GetGeometryRef() minX, maxX, minY, maxY = geom.GetEnvelope() xmin, ymin = minX - 50, minY - 50 xmax, ymax = maxX + 50, maxY + 50 # Create raster OutTileName = str(Count)+'.SomeTileName.tif' OutTile = gdal.Warp(OutTileName, Raster, format=RasterFormat, outputBounds=[xmin, xmax, ymin, ymax], xRes=PixelRes, yRes=PixelRes, dstSRS=Projection, resampleAlg=gdal.GRA_NearestNeighbour, options=['COMPRESS=DEFLATE']) OutTile = None # Close dataset # Close datasets Raster = None VectorDataset.Destroy() print("Done.") Moreover, I feel this is not the most simple or efficient way to do the bounding box.