Vector Overlapping Areas: Difference between revisions
Jump to navigation
Jump to search
(won't work with the DBF driver) |
m (remove hardcoded version specific urls, use latest version) |
||
(7 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== 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 {{cmd|v.buffer}} for a similar example. | |||
== FAQ == | |||
'''Q:''' How can I determine the number of overlapping features per location after import of SHAPE file? | '''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: | '''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.in.ogr dsn=./shp/ layer=fireHistory output=fireHistory | ||
v.category input=fireHistory output=tmpFire | |||
v.db.addtable map=tmpFire table=tmpFire_2 layer=2 columns=' | 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: | # Export it to a raster layer: | ||
v.to.rast input=tmpFire layer=2 output=mf use=attr column=num | v.to.rast input=tmpFire layer=2 output=mf use=attr column=num | ||
[[Category: FAQ]] | # 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 == | |||
* Intro to [[Vector Database Management|vector data model]] (with drawing) | |||
* [[Vector topology cleaning]] | |||
* [[Vector topology]] | |||
* [http://grass.osgeo.org/programming7/vlibTopology.html#vlibTopoExamples Topology examples] (GRASS Programmer's Manual) | |||
[[Category:FAQ]] | |||
[[Category:Topology]] | |||
[[Category:Vector]] |
Latest revision as of 10:28, 4 December 2018
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
- Intro to vector data model (with drawing)
- Vector topology cleaning
- Vector topology
- Topology examples (GRASS Programmer's Manual)