Ola Paulo,

Up to I know, there isn“t a packages that do the job you want (cost surface)
on R.
But I think that SAGA do this. So, one solution is you get the introdutory
material
on SAGA and after use RSAGA package to communicate between the softwares.

I also have interest on this issue. Please, give us a feed back regardint
it. :-)
Good luck,

miltinho astronauta
brazil


On 7/7/08, Paulo Cardoso <pecardoso@netcabo.pt> wrote:
>
> Thanks Mike. I know rgdal package (you introduce it to me!) but I used it
> occasionally.
>
> One question remains since I want to consider an array of options to get
> cost distance surfaces (e.g. Varying the cost of each habitat).
>
> I've being playing around with calling other programs from R and change
> iteratively parameters to be considered at each "run".
> Something like this:
>
> for(z in 1:length(iter)) ## R iterations with iterations to be used by the
> program
> {
> input[17]<-paste("NUMITNS",as.character(iter[z]),sep=" ") ## write the
> iter parameter in R internal input file
>    for(cc in 1:length(costs)) ## R iterations with costs to be used by the
> program
>    {
>      unit$cost<-as.numeric(costs[cc]) ## write the cost parameter into the
> R internal unit file
>      #unit$cost[abund$pu[abund$species==4]]<-as.numeric(costs[cc]) ## Cost
> for seagrasses - not used
>      write.table(unit,"unit.dat",sep="\t",row.names=F,quote=F,dec=".") ##
> write the unit.dat file to be used in each R loop
>        for(tt in 1:length(perc.t)) ## R iterations with CF target
> percentages to be used by the program
>        {
>          target[,3]<-agg.abx202[,2]*perc.t[tt] ## All targets with perc.t %
> of the total available area
>          target[which(target$name=="Marine
> waters"),3]<-agg.abx202[which(agg.abx202$species=="Marine waters"),2]*0.1
> ##
> Marine waters with 10% of total available in all scenarios
>          target[which(target$name=="Terrestrial habitats"),3]<-0 ##
> Terrestrial habitats with 0% of total available in all cenarios
>            for(ii in 1:length(spf.t)) ## R iterations with Penalty to be
> used by the program Target spf parameter
>            {
>              target[,4]<-rep(as.numeric(spf.t[ii]),nrow(target)) ## write
> the SPF parameter into the R internal target file
>              write.table(target,"target.dat",sep=",",row.names=F,quote =
> FALSE) ## write the target.dat file to be used in each R loop
>                for(i in 1:length(blm)) ## R iterations with BLM factor to
> be used by the program
>                {
>                  input[10]<-paste("BLM",blm[i]) ## write the BLM factor
> into the R internal input file
>                    for(r in 1:length(nreps))
>                    {
>                      input[14]<-paste("NUMREPS",nreps[r]) ## write the
> Number of Runs into the R internal input file
>                      temp<-date()
>                      input[35]<-paste("SCENNAME"," ",  ## write the
> Scenario Name into the R internal input file with all parameters
>
>
> paste(substring(temp,12,13),substring(temp,15,16),substring(temp,18,19),sep=
> ""),"-", # internal clock time at the beggining of the process
>                                  "Output","-",                 # Initial
> Sentence for each by the program Run
>                                  "Iter",as.character(iter[z]), # Number of
> iteractions
>                                  "Cost",costs[cc],"-",         # Cost used
>                                  "Targ",perc.t[tt],"-",        # % of
> Target used
>                                  "Spf",spf.t[ii],"-",          # SPF used
>                                  "Blm",blm[i],"-",             # BLM used
>                                  "Reps",nreps[r]               # Nreps used
>                                  ,sep="")
>
>                      write(input,"input.dat")# Re-write the final input.dat
> file to be used at each program run with the corresponding changed
> parameters
>                      system("program.exe",wait=T,invisible=T) # Calling
> program to execute each scenįrio
>                    }
>                }
>            }
>        }
>    }
> }
>
>
> In fact I have no idea if R can perform cost analysis as IDRISI, ArgGIS,
> GRASS, SAGA, etc...
> In a cost analysis we usually have a point, a line or polygon defined as
> start positions (sources in this case), so we have the interaction of Two
> themes...
>
>
>
> -----Original Message-----
> From: Michael Sumner [mailto:mdsumner@utas.edu.au]
> Sent: segunda-feira, 7 de Julho de 2008 11:05
> To: Paulo Cardoso
> Cc: r-sig-geo@stat.math.ethz.ch
> Subject: Re: [R-sig-Geo] Spatial analysis - matrix algebra
>
> Hi Paulo,
>
> You can read ESRI ASCII grids (amongst many others) using rgdal package:
>
> library(rgdal)
> d <- readGDAL("file1.asc")
>
> See gdalDrivers() for a listing of the available file formats for your
> package build.
>
> The read above would result in a single-colum SpatialGridDataFrame -
> named "band1". To add further files as a new column (assuming the
> subsequent files have exactly the same grid topology):
>
> d$band2 <- readGDAL("file2.asc")$band1
>
> . . . and so on.
>
> To obtain the resulting raster bands as individual matrices you can use
> as.image.SpatialGridDataFrame:
>
> m1 <- as.image.SpatialGridDataFrame(d[1])$z
>
> m2 <- as.image.SpatialGriddataFrame(d[2])$z
>
> . . .
>
> Then use your matrices as needed.  If you only want the matrices and not
> the intermediate SGDF objects, use readGDAL directly:
>
> m1 <- as.image.SpatialGridDataFrame(readGDAL("file1.asc")[1])
> . . .
>
> These could be collected in a single 3-way array, or a list of matrices
> as needed.
>
> HTH,
>
> Mike.
>
>
> Paulo Cardoso wrote:
> > Can R perform matrix algebra between ascii converted Esri grids? I'm
> > convinced that its trivial.
> >
> >
> >
> > The question is a little more complex (from my point of view and
> > inexperience): I'm interested in perform cost surface and distance
> surface
> > analysis avoiding ArcGIS tools. Maybe R can deal with grid formatted as
> > matrices...
> >
> >
> >
> > Maybe R could call FWtools to perform all calculations iteratively...
> >
> >
> >
> > Paulo
> >
> >
> >
> >
> >       [[alternative HTML version deleted]]
> >
> > _______________________________________________
> > R-sig-Geo mailing list
> > R-sig-Geo@stat.math.ethz.ch
> > https://stat.ethz.ch/mailman/listinfo/r-sig-geo
> >
> >
> > No virus found in this incoming message.
> > Checked by AVG - http://www.avg.com
> > Version: 8.0.138 / Virus Database: 270.4.5/1537 - Release Date: 7/6/2008
> 5:26 AM
> >
> >
> >
> >
>
> Internal Virus Database is out of date.
> Checked by AVG.
>
> 03-07-2008
> 8:32
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo@stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>

	[[alternative HTML version deleted]]


