hgreatrex wrote: > Hi, > > ... > I've managed to extract the lat / lon variables, so I know that I could > work > out manually which pixels correspond to which location. However, it's easy > to make a mistake in such a calculation, so I thought I would check here > before reinventing the wheel.
Hi hgreatrex, this is an example of how I approach this problem, which works for me but may or may not work for you. :) CCD20 = open.ncdf("ccd1983_01-dk1_20.nc") lat = CCD20$dim$lat$vals # NOTE: dim values are CACHED, don't read them lon = CCD20$dim$lon$vals lower_left_lon_lat = c(5,30) upper_right_lon_lat = c(10,40) ix0 = wherenearest( lower_left_lon_lat[1], lon ) ix1 = wherenearest( upper_right_lon_lat[1], lon ) iy0 = wherenearest( lower_left_lon_lat[2], lat ) iy1 = wherenearest( upper_right_lon_lat[2], lat ) countx = ix1 - ix0 + 1 county = iy1 - iy0 + 1 z = get.var.ncdf( CCD20, "data", start=c(ix0,iy0), count=c(countx,county) Obviously, you can easily wrap into a separate function an extended version of 'get.var.ncdf' that takes lat/lon values rather than indices. The 'wherenearest(val,matrix)' function is probably obvious, but is something like this: dist = abs(matrix-val) index = which.min(dist) return( index ) Hope that helps, --Dave ------------------------------------------------------------------- David W. Pierce Division of Climate, Atmospheric Science, and Physical Oceanography Scripps Institution of Oceanography (858) 534-8276 (voice) / (858) 534-8561 (fax) dpie...@ucsd.edu ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.