[GRASS-user] Varying results - v.select,v.distance,v.what
Kevin Webb
kfw4 at cornell.edu
Thu Nov 20 15:03:11 EST 2008
At 12:15 PM 11/19/2008, Kevin Webb wrote:
>--Workflow--
>A LOCATION was created tailored to the specifics of the layer
>I am processing. The layer itself was imported using:
>v.external, followed by v.category, followed by v.db.connect.
>
>
>Am I doing this incorrectly?
>Should I expect the three methods to yield the same result?
>Which method is suggested to be the most reliable?
>
>Thank you.
>
>
>KFW
I decided to run v.select, v.distance, and v.what comparisons on another
layer that I have imported using v.external. The 3 query techniques all
returned the same value which lead me to believe that it was something
I had done improperly on the import sequence for the layer that was giving
me erroneous results; investigation yields more questions.
--The layer for which v.select, v.distance and v.what results match--
GRASS 6.4.svn (PREC0101):~ > v.db.connect -p PREC0102_EXT
Vector map <PREC0102_EXT at PERMANENT> is connected by:
layer <1> table <PREC0102> in database
</home/kfw4/dev/grass_db/climate/prec/PREC0102.SHP> through driver <ogr>
with key <>
GRASS 6.4.svn (PREC0101):~ > v.info -c PREC0102_EXT
Displaying column types/names for database connection of layer 1:
INTEGER|ID
INTEGER|GRIDCODE
CHARACTER|INCHES
Supposedly, queries are NOT supposed to work on this layer because v.category
has not been run - there is no category (cat) field, yet v.select,
v.distance, and v.what all
work and result values are the same.
Why do queries on this layer this work?
--The layer for which v.select, v.distance, and v.what results do NOT match--
GRASS 6.4.svn (CENSUS_ESRI_04):~ > v.db.connect -p EXT_CENSUS_CAT
Vector map <EXT_CENSUS_CAT at PERMANENT> is connected by:
layer <1> table <EXT_CENSUS_CAT> in database
</home/kfw4/dev/grass_db/CENSUS_ESRI_04/PERMANENT/dbf/> through driver
<dbf> with key <cat>
layer <2> table <blkgrps01> in database
</home/kfw4/dev/grass_db/esri_census/blkgrps01.dbf> through driver <ogr>
with key <cat>
GRASS 6.4.svn (CENSUS_ESRI_04):~ > v.info -c EXT_CENSUS_CAT layer=1
Displaying column types/names for database connection of layer 1:
INTEGER|cat
GRASS 6.4.svn (CENSUS_ESRI_04):~ > v.info -c EXT_CENSUS_CAT layer=2
Displaying column types/names for database connection of layer 2:
DOUBLE PRECISION|SQMI
CHARACTER|STATE_FIPS
CHARACTER|CNTY_FIPS
CHARACTER|STCOFIPS
CHARACTER|TRACT
CHARACTER|BLKGRP
CHARACTER|FIPS
INTEGER|POP2000
DOUBLE PRECISION|POP00_SQMI
INTEGER|POP2003
INTEGER|WHITE
INTEGER|BLACK
INTEGER|AMERI_ES
INTEGER|ASIAN
INTEGER|HAWN_PI
INTEGER|OTHER
INTEGER|MULT_RACE
INTEGER|HISPANIC
INTEGER|MALES
INTEGER|FEMALES
INTEGER|AGE_UNDER5
INTEGER|AGE_5_17
INTEGER|AGE_18_21
INTEGER|AGE_22_29
INTEGER|AGE_30_39
INTEGER|AGE_40_49
INTEGER|AGE_50_64
INTEGER|AGE_65_UP
DOUBLE PRECISION|MED_AGE
DOUBLE PRECISION|MED_AGE_M
DOUBLE PRECISION|MED_AGE_F
INTEGER|HOUSEHOLDS
DOUBLE PRECISION|AVE_HH_SZ
INTEGER|HSEHLD_1_M
INTEGER|HSEHLD_1_F
INTEGER|MARHH_CHD
INTEGER|MARHH_NO_C
INTEGER|MHH_CHILD
INTEGER|FHH_CHILD
INTEGER|FAMILIES
DOUBLE PRECISION|AVE_FAM_SZ
INTEGER|HSE_UNITS
INTEGER|VACANT
INTEGER|OWNER_OCC
INTEGER|RENTER_OCC
For this layer, point-in-polygon queries are executed on layer#1, and
attributes are queried from layer#2;
v.select, v.distance, and v.what all return different cat values.
v.db.connect -p indicates layer#2 is keyed by the <cat> field yet I don't
see a 'cat' field in the v.info output,
shouldn't there be a 'cat' column in layer#2 or am I misinterpreting how
multiple layers are properly added to
a vector?
Corrections/suggestions?
Thank you.
KFW
More information about the grass-user
mailing list