I have 4 shapefiles in the same folder names like that (1996.shp, 2000.shp, 2006.shp, 2014.shp) and one raster.
I need to reproject all shapfiles in the same projection (4326) of raster, but I do it for one shapefile that it script :
from osgeo import ogr, osr, gdal
#tif with projections I want
tif = gdal.Open("D:/projetp/NDVI.tif")
#shapefile with the from projection
driver = ogr.GetDriverByName("ESRI Shapefile")
dataSource = driver.Open("C:/projetp/shape/1996.shp", 1)
layer = dataSource.GetLayer()
#set spatial reference and transformation
sourceprj = layer.GetSpatialRef()
targetprj = osr.SpatialReference(wkt = tif.GetProjection())
transform = osr.CoordinateTransformation(sourceprj, targetprj)
to_fill = ogr.GetDriverByName("Esri Shapefile")
ds = to_fill.CreateDataSource("C:/projetp/shape/1996poly.shp")
outlayer = ds.CreateLayer('', targetprj, ogr.wkbPolygon)
outlayer.CreateField(ogr.FieldDefn('id', ogr.OFTInteger))
#apply transformation
i = 0
for feature in layer:
transformed = feature.GetGeometryRef()
transformed.Transform(transform)
geom = ogr.CreateGeometryFromWkb(transformed.ExportToWkb())
defn = outlayer.GetLayerDefn()
feat = ogr.Feature(defn)
feat.SetField('id', i)
feat.SetGeometry(geom)
outlayer.CreateFeature(feat)
i += 1
feat = None
ds = None
How can I execute the script for all shapefiles in the folder?
I'm new in Python 3.