On Feb 28, 2008, at 8:57 AM, [EMAIL PROTECTED] wrote:
Date: Thu, 28 Feb 2008 08:39:29 -0700
From: Tom Russo <[EMAIL PROTECTED]>
Subject: [GRASS-user] Help: Completely confused about multi-layered
vectors trying to import TIGER/Line files
To: [email protected]
Message-ID: <[EMAIL PROTECTED]>
Content-Type: text/plain; charset=us-ascii
I have been trying to wrap my brain around "multi-layered" GRASS
vectors and
have only succeeded in wrapping my brain into knots. Perhaps
someone here with
a solid understanding of this stuff can help me.
I'm trying to figure out how to import TIGER/Line data and actually
get the
attributes of areas pulled in. This is trouble.
The v.in.ogr documentation has an example of how to do it:
v.in.ogr dsn=~/TIGER/BC_TGR layer=CompleteChain,PIP
output=t35001_all \
type=boundary,centroid snap=-1
which does indeed import the CompleteChain layer and PIP (Polygon
Internal
Point) layers --- it puts the boundaries in layer 1 and the
centroids in
layer 2, and if I do a
d.vect t35001_all layer=2
I can see the areas just fine.
Tom,
I'll focus on the first part of your question in the hopes that it
will clarify the rest of it.
The 'layers' you mention here are 2 very different beasts.
First OGR. The underlying concept is that some data (e.g., CAD) come
in a file that has multiple 'layers' of vectors that may (or may not)
have different associated data. I don't know TIGER files, so I don't
know if they come this way or not. However, OGR tends to treat all
vector data in this way. So, for example, if you have a shapefile, it
treats the DIRECTORY that holds the shapefile as the 'dsn' and the
shapefile (minus the .shp) as the data 'layer'. In older versions of
OGR, that was the only way to import stuff. Now, you can just put the
shapefile (with .shp) in the dsn field and OGR will work it out. But
the concept holds. So in this case, you need to know which 'layer' you
want to import from your TIGER data, whether they come in a multi-
layered file or as multiple files. How the layer is linked with data
is another matter and can involve GRASS 'layers'.
Now GRASS layers. A disclaimer from me: I think that "layer" is a
confusing term to use here. I think that "key" or "key field" or
something along that line would be much more understandable for people
accustomed to database terminology. In fact, that is what GRASS layers
are. Each vector file (and object) can have more than one key field to
link it to an attribute table. These key fields are called
"cat" (short for category) and are always integer. So, a vector can
have different integer keys attached to a single object. But instead
of calling these cat1, cat2, etc, they are called '
cat in layer 1', 'cat in layer 2', etc. Each key (AKA 'cat in layer
#') can link to a line/record in an attribute table (which also must
have an identical integer key field, that doesn't HAVE to be called
"cat", but often is).
The result for a hypothetical TIGER file of census blocks is that a
block area (=polygon) can be linked to one attribute table via the key
(="cat") in layer 1, a second attribute table via a key in layer 2,
and so on. If there are multiple attribute tables linked to the layers
in your TIGER file, OGR will try to put each table into a separate
GRASS attribute table and link the proper record of each table to its
associated vector object with a key in a GRASS layer for each table. I
don't know how OGR parses the vector objects and attributes of a TIGER
file internally. However, once you get the data into GRASS, it is
possible to "upload" data from one attribute table (linked to layer 2,
for example) into another attribute table (linked to layer 1, for
example).
I hope this is helpful.
Michael
_______________________________________________
grass-user mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-user