Skip to content

Instantly share code, notes, and snippets.

@mbernasocchi
Created November 26, 2013 15:10
Show Gist options
  • Save mbernasocchi/7659995 to your computer and use it in GitHub Desktop.
Save mbernasocchi/7659995 to your computer and use it in GitHub Desktop.
grid = QgsMapLayerRegistry.instance().mapLayersByName('grid10')[0]
regions = QgsMapLayerRegistry.instance().mapLayersByName('Polygon_GADM_Brazil')[0]
points = QgsMapLayerRegistry.instance().mapLayersByName('Point_Population_Brazil')[0]
region_count = regions.featureCount()
cell_count = grid.featureCount()
shape_writer = QgsVectorFileWriter(
'/tmp/out.shp',
'UTF-8',
regions.dataProvider().fields(),
regions.dataProvider().geometryType(),
regions.dataProvider().crs())
feat = QgsFeature()
for region_idx, region in enumerate(regions.getFeatures()):
print 'Region %s of %s' % (region_idx + 1, region_count)
region_geom = region.geometry()
request=QgsFeatureRequest()
request.setFilterRect(region_geom.boundingBox())
for cell_idx, cell in enumerate(grid.getFeatures(request)):
print 'Cell %s of %s' % (cell_idx + 1, cell_count)
cell_geom = cell.geometry()
intersection = cell_geom.intersection(region_geom)
intersection_geometry = QgsGeometry(intersection)
if intersection_geometry.wkbType() != 0:
feat.setGeometry(intersection_geometry)
shape_writer.addFeature(feat)
del shape_writer
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment