Vector Overlapping Areas

From GRASS-Wiki
Jump to navigation Jump to search

Introduction

Overlapping areas (e.g. as stored in a SHAPE file) can be represented as a topological model through M:N mapping: each area can belong to several categories, several areas can have the same category. If you want to get the coverage for a particular Landsat scene, just select the path and row with where="PATH = x and row = y". See also the manual of v.buffer for a similar example.

FAQ

Q: How can I determine the number of overlapping features per location after import of SHAPE file?

A: You can run this (example) - note that it won't work with the DBF driver but requires SQLite, PostgreSQL, MySQL, or... driver:

  # solution one
  
  v.in.ogr dsn=./shp/ layer=fireHistory output=fireHistory
  
  v.category input=fireHistory output=tmpFire type=centroid
  v.db.addtable map=tmpFire table=tmpFire_2 layer=2 columns='cat int'
   
  # Export it to a raster layer:
  v.to.rast input=tmpFire layer=2 output=mf use=attr column=num
  # another solution (tested under SQLite)
  
  v.in.ogr dsn=./shp/ layer=fireHistory output=fireHistory
  
  v.overlay ainput=fireHistory atype=area alayer=1 binput=fireHistory btype=area blayer=2 output=mf operator=or olayer=1,1,1 --overwrite
  v.db.renamecol map=mf layer=1 column=b_cat,countFires
  v.db.update map=mf layer=1 column=countFires value=1 where='countFires isnull'
  
  # Export it to a raster layer:
  v.to.rast input=fireHistory layer=1 output=mf use=attr column=countFires

See also