[R-sig-Geo] writing shapefiles using write.pointShape
Roger Bivand
Roger.Bivand at nhh.no
Sun Mar 16 11:42:17 CET 2008
On Thu, 13 Mar 2008, modern82376 at mypacks.net wrote:
> I'm also having issues with getting the gw.cov function to work for fit
> points. Here's an example, using the same files...
>
>> pcavars <- names(surveypts[,4:8])
>> pcavars
> [1] "pca1" "PCA2" "PCA3" "PCA4" "PCA5"
>> surv.cov <- gw.cov(data = surveypts, vars = pcavars, fit.points = fitpix, bw = survey.bw)
> Error in gw.cov(surveypts, test, fit.points = fitpix, bw = survey.bw) :
> unused argument(s) (fit.points = <S4 object of class "SpatialPixels">)
>
> As far as I can tell, I'm using the same syntax as in the ggwr function.
> Thanks again. =)
?gw.cov will help. The first argument is x= not data=, and fit.points=
should be fp=. So
surv.cov <- gw.cov(x=surveypts, vars=pcavars, fp=fitpix, bw=survey.bw)
ought to work. The functions are fairly different (no formula=), so
assuming that the arguments have the same names suggests that actually
reading the help pages might save time.
Please note that spgwr is only a proof of concept package and does not
imply any affirmation of approaches using geographical weights. The
approach may be helpful, but following Wheeler and Tiefelsdorf (2005),
caution is recommended. Your use of PCAs may help alleviate the induced
collinearity in GWR regression coefficients, but please always plot
pairs() of the local coefficients!
Roger
>
> Gericke Cook
> USDA APHIS
>
>
> -----Original Message-----
>> From: modern82376 at mypacks.net
>> Sent: Mar 13, 2008 5:10 PM
>> To: r-sig-geo at stat.math.ethz.ch
>> Subject: [R-sig-Geo] writing shapefiles using write.pointShape
>>
>> I've been running gwr on some survey data and trying to write output back out to point shapefiles. At first, I thought that the shapefile wasn't being written, but after calling the file object I found it in a local settings/temp folder with a random shapefile name. I thought I had specified all that, but I'm obviously not familiar enough with the syntax to get it right. Would someone mind assisting me on this? Code follows..
>>
>>> library(spgwr)
>>> surveypts <- readShapePoints("C:/temp/NE_survey.shp", proj4string = CRS("+proj=aea +lat_0=96w +lat_1=29.5n +lat_2=45.5n"))
>>> survey.bw <- gwr.sel(GHDENSITY ~ pca1 + PCA2 + PCA3 + PCA4 + PCA5, data=surveypts)
>>> fitpts <- readShapePoints("C:/temp/fitpts.shp", proj4string = CRS("+proj=aea +lat_0=96w +lat_1=29.5n +lat_2=45.5n"))
>>> fitpix <- SpatialPixels(fitpts, proj4string = CRS("+proj=aea +lat_0=96w +lat_1=29.5n +lat_2=45.5n"))
>>> surv.local <- ggwr(GHDENSITY ~ pca1 + PCA2 + PCA3 + PCA4 + PCA5, data = surveypts, bandwidth = survey.bw, gweight = gwr.Gauss, adapt = NULL, fit.points = fitpix, longlat = FALSE)
>>> surv.local
>>
>> Call:
>> ggwr(formula = GHDENSITY ~ pca1 + PCA2 + PCA3 + PCA4 + PCA5,
>> data = surveypts, bandwidth = survey.bw, gweight = gwr.Gauss,
>> adapt = NULL, fit.points = fitpix, longlat = FALSE)
>> Kernel function: gwr.Gauss
>> Fixed bandwidth: 22738.78
>> Summary of GWR coefficient estimates:
>> Min. 1st Qu. Median 3rd Qu. Max. Global
>> X.Intercept. -4.176e+03 -9.067e+01 -3.565e+00 8.029e+01 4.402e+03 -73.5570
>> pca1 -2.567e+00 -2.289e-02 -1.725e-03 1.674e-02 3.135e-01 -0.0077
>> PCA2 -7.874e+01 -6.543e-01 -1.934e-01 2.298e-01 2.016e+01 -0.2667
>> PCA3 -8.844e+01 -1.236e+00 -1.109e-01 6.008e-01 1.469e+02 0.0202
>> PCA4 -1.272e+01 -3.509e-01 3.005e-01 1.178e+00 3.386e+02 0.8161
>> PCA5 -1.368e+02 -1.134e+00 -8.233e-03 9.222e-01 4.384e+01 0.6937
>>
>>> names(surv.local$SDF)
>>
>> [1] "sum.w" "X.Intercept." "pca1" "PCA2" "PCA3"
>> [6] "PCA4" "PCA5" "dispersion" "response_resids"
>>
>>> coords <- coordinates(fitpts)
>>> pca1 <- cbind(coords, surv.local$SDF$pca1)
>>> summary(pca1)
>> coords.x1 coords.x2 V3
>> Min. :-670120 Min. :287533 Min. :-2.566983
>> 1st Qu.:-544120 1st Qu.:375533 1st Qu.:-0.022891
>> Median :-417620 Median :464533 Median :-0.001725
>> Mean :-417620 Mean :464533 Mean :-0.047442
>> 3rd Qu.:-291120 3rd Qu.:553533 3rd Qu.: 0.016741
>> Max. :-165120 Max. :641533 Max. : 0.313544
>>
>>> class(pca1)
>> [1] "matrix"
>>> dim(pca1)
>> [1] 179630 3
>>> all(dim(dpca1 <- as.data.frame(pca1)) == c(179630,3))
>> [1] TRUE
>>> summary(dpca1)
>> coords.x1 coords.x2 V3
>> Min. :-670120 Min. :287533 Min. :-2.566983
>> 1st Qu.:-544120 1st Qu.:375533 1st Qu.:-0.022891
>> Median :-417620 Median :464533 Median :-0.001725
>> Mean :-417620 Mean :464533 Mean :-0.047442
>> 3rd Qu.:-291120 3rd Qu.:553533 3rd Qu.: 0.016741
>> Max. :-165120 Max. :641533 Max. : 0.313544
>>> class(dpca1)
>> [1] "data.frame"
>>
>>> B1pca1 <- tempfile("C:\temp")
>>> write.pointShape(coords, df=dpca1, B1pca1, factor2char=TRUE)
>> (Where's the shapefile??)
>>
>>> B1pca1
>> [1] "C:\\DOCUME~1\\gcook\\LOCALS~1\\Temp\\Rtmpijon4d\\C:\temp1eb26e9"
>>
>>
>> After calling B1pca1, I find a randomly named shapefile (with .dbf and .shx)extensions in the .../Local Settings/Temp/ folder. I'm trying to name the file "B1pca1.shp" and I want it to go in the C:/Temp folder (for now). I've tried a few permutations of the last two commands, but I'm just not getting it right.
>>
>> Thanks so much :)
>>
>> Gericke
>>
>> _______________________________________________
>> R-sig-Geo mailing list
>> R-sig-Geo at stat.math.ethz.ch
>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>
--
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand at nhh.no
More information about the R-sig-Geo
mailing list