[R-sig-Geo] polygon identifiers and nb classes
Larry Layne
ljlayne at unm.edu
Thu Apr 13 22:52:18 CEST 2006
> Yes, if no row.names= argument is given to poly2nb(), this is what they
> will default to.
FID + 1 is what I assume you to mean.
> You can choose your own row.names= in poly2nb(),
Which I did here:
NMnb <- poly2nb(NMpolylist,row.names="OBJECTID",queen=FALSE)
Now I know for sure which values are being used as polygon ids to define
the neighborhood list. (FYI, the shapefiles originally came from ArcGIS
geodatabase polygon feature classes and is the reason the field OBJECTID
exists in the shapefile DBF.)
> and setting oldstyle=FALSE, it should work.
...oldstyle=FALSE in write.nb.gal. Actually this doesn't matter. oldstyle
can be either TRUE or FALSE - see below.
> You'll need to edit the first line, the ArcGIS format is not GAL as far as
> I understand.
More than just the first line. As I understand the spatial weights matrix
file structure for ArcGIS there needs to be a complete rearrangement of the
GAL file. For instance, given the first 5 lines of a GAL file:
0 49 unknown unknown
1 4
8 9 23 41
2 4
4 27 30 43
the information needs to be rearranged for an ArcGIS spatial weights file
as follows for a binary weights connectivity matrix (the first line of the
GAL file is discarded):
OBJECTID
1 8 1
1 9 1
1 23 1
1 41 1
2 4 1
2 27 1
2 30 1
2 43 1
The first line in the file is the name of the field in the DBF file used as
the polygon label ids. (I am using the work "line" to imply record, row, or
observation - take your pick.) This was specified above in poly2nb().
Following the field name in the first line, each line in the text file
defines a weight for pairwise connections between polygons. Because polygon
#1 shares a boundary with 4 other polygons, the weights defining each of
these connections requires 4 lines in the ArcGIS spatial weights matrix
file. The same is true for polygon #2, etc. This is what I understand the
structure of the file to be for an ArcGIS spatial weights matrix file. I
convert the GAL structure to the ArcGIS spatial weights matrix file using a
SAS program. Any number of programming languages could be used to do the
same thing.
> For cross-checking in GeoDa, please set the shapefile= and ind=
> arguments to the appropriate values.
I haven't used GeoDa to date. Maybe I should in the future? Maybe.
> A revision of write.nb.gal() is obviously possible here, I
> would value feedback.
Once I figured out how to read the GAL structure I could convert it to any
other structure I wanted using SAS program code. For convenience, it might
be nice to have a function like write.nb.gal() but more general, like
write.nb() and allow the user to specify a parameter defining the structure
of the output. For instance, certainly one of the parameter settings would
be to write a GAL structure to a text file. Another might be to write one
for ArcGIS like that shown above. (This would also require defining the
weights in the output file, such as style = W, B, C, U, S.) I have a bunch
of SAS programs that use a neighbors structure like the following (using
the same poly ids for the GAL example from above):
1 8 9 23 41
2 4 27 30 43
Structures for other popular spatial stats software? Might be useful to
different users.
> Please also crosscheck whether the variance of
> Moran's I agrees with moran.test here in the randomisation=TRUE
> row-standardised weights case - it is known not to agree for fixed range
> and inverse distance weights in ArcGIS, the results here (and in Stata)
> are consistent, but those in ArcGIS are not.
> It will be interesting to hear what you find!
I plan to compare all of my results from ArcGIS spatial statistics
extension to those from spdep as it would be convenient to do a few more
things in ArcGIS than in spdep, and I would like to have some confidence in
the ArcGIS results. Generally, my experience with statistics anything in
ArcGIS is that its output always needs to be verified using some other
established software because ArcGIS is notorious for giving different
results. The one good thing about most of the spatial statistics extension
tools is that I can look at the algorithms they are implementing as most of
these tools are included as Python scripts. Anyway, I would be glad to send
you those comparisons right now but cannot because these particular tools
in the spatial statistics extension have suddenly decided to not work on
the computer I have the data on! What else could a person expect out of
such a high-quality software product? I'll send the ArcGIS comparison
results when I can.
Again, thanks for all your help.
Larry
More information about the R-sig-Geo
mailing list