Skip to content

v.what.vect

Uploads vector values at positions of vector points to the table.

v.what.vect map=name [layer=string] column=name query_map=name [query_layer=string] query_column=name [dmax=float] [--verbose] [--quiet] [--qq] [--ui]

Example:

v.what.vect map=name column=name query_map=name query_column=name

grass.script.run_command("v.what.vect", map, layer="1", column, query_map, query_layer="1", query_column, dmax=0.0, verbose=False, quiet=False, superquiet=False)

Example:

gs.run_command("v.what.vect", map="name", column="name", query_map="name", query_column="name")

Parameters

map=name [required]
    Name of vector points map for which to edit attributes
    Or data source for direct OGR access
layer=string
    Layer number or name
    Vector features can have category values in different layers. This number determines which layer to use. When used with direct OGR access this is the layer name.
    Default: 1
column=name [required]
    Name of attribute column to be updated with the query result
query_map=name [required]
    Name of vector map to be queried
    Or data source for direct OGR access
query_layer=string
    Layer number or name
    Vector features can have category values in different layers. This number determines which layer to use. When used with direct OGR access this is the layer name.
    Default: 1
query_column=name [required]
    Name of attribute column to be queried
dmax=float
    Maximum query distance in map units (meters for ll)
    Default: 0.0
--help
    Print usage summary
--verbose
    Verbose module output
--quiet
    Quiet module output
--qq
    Very quiet module output
--ui
    Force launching GUI dialog

map : str, required
    Name of vector points map for which to edit attributes
    Or data source for direct OGR access
    Used as: input, vector, name
layer : str, optional
    Layer number or name
    Vector features can have category values in different layers. This number determines which layer to use. When used with direct OGR access this is the layer name.
    Used as: input, layer
    Default: 1
column : str, required
    Name of attribute column to be updated with the query result
    Used as: input, dbcolumn, name
query_map : str, required
    Name of vector map to be queried
    Or data source for direct OGR access
    Used as: input, vector, name
query_layer : str, optional
    Layer number or name
    Vector features can have category values in different layers. This number determines which layer to use. When used with direct OGR access this is the layer name.
    Used as: input, layer
    Default: 1
query_column : str, required
    Name of attribute column to be queried
    Used as: input, dbcolumn, name
dmax : float, optional
    Maximum query distance in map units (meters for ll)
    Default: 0.0
verbose: bool, optional
    Verbose module output
    Default: False
quiet: bool, optional
    Quiet module output
    Default: False
superquiet: bool, optional
    Very quiet module output
    Default: False

DESCRIPTION

v.what.vect transfers attributes from the query_map's attribute table into the map's attribute table. The module can be used to transfer attributes from the table of a polygon map into the attribute table of a point vector map, as well as the other way around, i.e., from a point map into the attribute table of a polygon map (See examples). The script is based on v.distance.

NOTES

The upload column into which the query results are stored must be present in map. Use v.db.addcolumn to add one if needed.

Use the dmax parameter to control the query distance tolerance, i.e., how far map's points/centroids can be from the query_map features. For further options, use v.distance.

In case of a multipoint input map with several points having the same category number, it can happen that the query result is NULL if the same category number falls into different query_map polygons.

When transferring attributes from a point map into a polygon map, dmax has to be larger than zero, i.e., it will be determined by the distance between query points and polygon centroids. Importantly, distance is in meters for latitude-longitude projects.

In case that one or both input vector maps are 3D, features need to touch also in the 3rd dimension (z coordinate) in order to transfer attributes.

EXAMPLES

In this example, the 'hospitals' point map in the North Carolina dataset is copied to the current mapset, a new attribute column is added and the urban names from the 'urbanarea' polygon map are transferred to hospital points locations in 'myhospitals' map:

g.copy vect=hospitals,myhospitals
v.db.addcolumn myhospitals column="urb_name varchar(25)"
v.what.vect myhospitals query_map=urbanarea column=urb_name query_column=NAME
# verification:
v.db.select myhospitals

In this example, city names, population data and others from Geonames.org country files are transferred to selected EU CORINE landuse/landcover classes ("Continuous urban fabric", 111, and "Discontinuous urban fabric", 112). Note: The example is in UTM projection to which the input maps have been projected beforehand.

# extract populated places from geonames
v.extract geonames_IT where="featurecla='P'" output=geonames_IT_cities
# add new column
v.db.addcol corine_code111_112_cities column="gnameid double precision"
# transfer geonameid (3000m maximal distance between points and centroids)
v.what.vect corine_code111_112_cities query_map=geonames_IT_cities column=gnameid \
            query_column=geonameid dmax=3000
# now gnameid can be used for v.db.join to join further
# attributes from geonames.org

SEE ALSO

v.db.addcolumn, v.db.select, v.distance, v.rast.stats, v.what.rast, v.what.rast3, v.vect.stats

AUTHOR

Markus Neteler

SOURCE CODE

Available at: v.what.vect source code (history)
Latest change: Friday Feb 07 19:16:09 2025 in commit a82a39f