[R-sig-Geo] Automate the extraction of climate variable at different time depths from netcdf in r

Robert J. Hijmans r.hijmans at gmail.com
Thu Sep 11 18:47:11 CEST 2014


Barnabas,
I doubt you will need to "delete one-by-one, the values for the years
that I do not desire". There surely are basic R tricks for that.
Perhaps the below example can get you there:

## example data
#raster
b <- brick(system.file("external/rlogo.grd", package="raster"))
# points
set.seed(0)
p <- xyFromCell(b, sample(ncell(b), 10))
# "years"
y <- cbind(y1=sample(0:1, 10, replace=TRUE), y2=sample(0:1, 10,
replace=TRUE), y3=sample(0:1, 10, replace=TRUE))


# extract all
e <- extract(b, p)
# combine data
x <- data.frame(x=p[,1], y=p[,2], year=rep(1:3, each=nrow(p)),
include=as.vector(y), value=as.vector(e))
# select values you want
x[x$include==1, ]

Whether the above works for you really depends on how you need to get
the values for further processing.

Robert



On Sun, Sep 7, 2014 at 8:58 AM, Barnabas Daru <darunabas at gmail.com> wrote:
> Hi Robert,
> Thanks very much for your suggestion.
> I tried the code you provided and it work! Many thanks.
> However, it tends to extract the SST values for all the points and for time
> periods including even the years that I don't desire. This means I will have
> to delete one-by-one, the values for the years that I do not desire and keep
> only the ones I want.
> I thought there is a way I could simply ask R to print in one column, the
> extracted values associated with only the years for which point data is
> available.
> Thanks and kind regards
> Barnabas
>
>
>
>   \-/
>    /\
>   /--|
>  /---/ Barnabas Daru
>  |--/  PhD Candidate,
>  \-/   African Centre for DNA Barcoding,
>  /\    University of Johannesburg,
> /--\   PO Box 524, Auckland Park, 2006,
> |---\  Johannesburg, South Africa.
>  \---\ Lab: +27 11 559 3477
>   \--| Mobile: +277 3818 9583
>    \-/ Website: www.barnabasdaru.com
>    /\
>   /--\
>
> #…if you can think it, you can do it.
>
>
>
>
>
> On Sep 7, 2014, at 5:23 AM, Robert J. Hijmans wrote:
>
> Barnabas, ,
> You can try something like this:
>
> b <- brick("~sst.mnmean.nc", varname="sst")
> # loop over species, or combine all species into one data.frame?
> mydata <- read.csv("~Species one.csv")
> extract.mydata <- extract(b, mydata[,5:6])
> write.csv(extract.mydata, file = "Species_one_extracted.csv")
>
> Robert
>
>



More information about the R-sig-Geo mailing list