[R-sig-Geo] ArcView shape files and GeoBUGS
Robert Hijmans
r.hijmans at gmail.com
Thu Feb 5 13:12:19 CET 2009
I think this is it:
http://www.biostat.umn.edu/~brad/yuecui/index.html
http://www.biostat.umn.edu/~brad/yuecui/convert.r
#/09/23/03 The only different btw this convert.r and convert.s is that
#in convert.s, we us AsciiToInt("character")-AsciiToInt("0") to change
#character into numeric, in convert.r, we use type.convert("character")
#to do this.
#/09/23/03
#This version of convert.s corrects the problems found in convert2&3.s
#Tried every combination of options for scan, the following doesn't work.
#checking by comparing the number of observations in fortest and in .cgm file
#fortest<-scan("test.cgm",what=list(name=""),widths=c(90),multi.line=F,sep="\n")
#source("convert.r")
convert<-function(cgmfile)
{
#outfile <- "test.txt"
outfile<-paste(cgmfile,".txt",sep="")
#This one works
#fortest<-scan("test.cgm",what=list(name=""),sep="\n")
fortest<-scan(paste(cgmfile,".cgm",sep=""),what=list(name=""),sep="\n")
fortest<-fortest$name
fortest<-fortest[grep("VIS",fortest)]
fortest<-as.matrix(fortest)
totpolyn<-length(fortest[grep("POLYGON_SET",fortest)])
polyn<-0
count<-0;
indicator<-0;
#First tried rep(0,1000), but there is a polygon with 167 rows, so we get
#167*3*2=1002 coordinates in one polygon. Error occurs with NA output
coord<-rep(0,5000)
write(paste("map:",totpolyn,"\n"),outfile)
for (i in 1:totpolyn) {
write(paste( i, paste("grid",i,sep="")),outfile,append=T)
}
for (i in 1:length(fortest)){
for(j in (1:nchar(fortest[i]))){
letter<-substring(fortest[i],j,j)
#At first try to use AsciiToInt,stupid
#if (AsciiToInt(letter)<=AsciiToInt("9")&
# AsciiToInt(letter)>=AsciiToInt("0"))
if(letter<="9"&letter>="0"){
if (indicator==0) {count<-count+1;
indicator<- 1
}
coord[count]<-coord[count]*10+
type.convert(letter)
}
#add the following else if statement because if and only when
#a POLYGON_SET is encounted, polyn is increased by 1
else if (letter=="P"){ polyn<-polyn+1;indicator<-0}
#a CLOSEVIS is encounted, output the coordinates set, this is
#done independently with increase of polyn since a POLYGON_SET may
#consist of several small polygons
else if(letter=="C"){
coordmat<-cbind(rep(paste("grid",polyn,sep=""),count/2),
coord[2*(1:(count/2))-1],
coord[2*(1:(count/2))])
if (polyn == 1) { write("",outfile,append=T)}
else { write(c(NA,NA,NA),outfile,append=T)}
write(t(coordmat),outfile,append=T,ncol=3)
#polyn<-polyn+1
#the above statement is not right because 2 CLOSEVIS may lie in one
#same polygon, but we output a polygon coordinates set whenever a
#CLOSEVIS is encountered, although it may have the same label,
#denoted by "grid&polyn" with previous or next coordinate sets.
count<-0
indicator<-0
coord<-rep(0,5000)
#if(grep("\r",substring(fortest[i],j+1,nchar(fortest[i]))))
#break
}
else indicator<-0
}
}
write("END",outfile,append=T)
}
On Thu, Feb 5, 2009 at 6:16 PM, Tord Snäll <tord.snall at ekol.slu.se> wrote:
> Dear all,
> I would like to read in ArcView (or ArcGIS) shape files from which I will
> pick information if fitting a geostatistical model using WinBUGS. In the
> GeoBUGS Used Manual it says
> "GeoBUGS does not have an option for loading ArcView shape files directly.
> However, Ms Yue Cui at the University of Minnesota has written programs in
> Splus and R for converting shape files into the GeoBUGS Splus format so that
> they can be loaded in GeoBUGS (http://www.biostat.umn.edu/~yuecui/). "
>
> Unfortunately this site is unavailable, and the Biostatstics homepage at
> University of Minnesota does not say anything about neither BUGS nor Ms Yue
> Cui.
>
> Does anyone know whether this code has been included in any R library, or
> does anyone know how to get in touch with Ms Yue Cui? I find some old
> questions about this is the archive, but at that time no one seemed to know
> about this.
>
> Thanks,
> Tord
>
> --
>
> Tord Snäll
> Department of Ecology
> Swedish University of Agricultural Sciences (SLU)
> P.O. 7044, SE-750 07 Uppsala, Sweden
> Office/Mobile/Fax
> +46-18-672612/+46-76-7662612/+46-18-673537
> E-mail: tord.snall at ekol.slu.se www.ekol.slu.se/staff_tordsnall
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>
More information about the R-sig-Geo
mailing list