Hi,

Well, you have to extrapolate from that post that wherenearest is a function 
you must create on your own.  Maybe something like this?

#' Find the index into a dataset that is 'closest' to a specified point.
#' 
#' Adpated from https://stat.ethz.ch/pipermail/r-help/2011-March/272641.html
#' @param myPoint numeric, one point
#' @param allpoints numeric, one or more points
#' @return index into allPoints that myPoint falls closest to
wherenearest <- function(myPoint, allPoints){
    d <- abs(allPoints-myPoint[1])
    index <- which.min(d)
    return( index )
}

I haven't tried the above.

You haven't provided much detail on what's in the file, but if it is a grid 
then perhaps you would find it easier to use the raster package.  It has 
functions to read gridded data stored in ncdf files.  It comes with a very good 
tutorial and makes working with gridded data a breeze. Using raster, you can 
bypass the nitty-gritty of getting data out of a ncdf file and just get to work 
on your data.

https://cran.r-project.org/web/packages/raster/index.html 
https://cran.r-project.org/web/packages/raster/vignettes/Raster.pdf

Bon chance!
Ben

P.S.  Do yourself (and everyone else on the list) a favor by making your email 
client use plain text rather than html or rich text when sending messages to 
the list.  The html/rich text scrambles your code making it hard to read.

> On Jan 9, 2016, at 9:01 AM, Peter Tuju <petere...@ymail.com> wrote:
> 
> Thank you Be for the good guide, however no luck with the syntax used namely;
> 
> 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 )
> 
> # I end up with this error,  "Error: could not find function "wherenearest"
> 
> Is there any other way I can get the index corresponding/or rearing to the
> longitude and latitude of interests?
>  
> _____________
> Peter  E. Tuju
> Dar es Salaam
> T A N Z A N I A
> ----------------------
> 
> 
> 
> From: Ben Tupper <btup...@bigelow.org>
> To: "r-help@r-project.org" <r-help@r-project.org> 
> Cc: Peter Tuju <petere...@ymail.com>
> Sent: Saturday, January 9, 2016 4:01 PM
> Subject: Re: [R] Extracting point data using longitude and latitude from 
> netcdf file using R
> 
> Hi,
> 
> This post gives more details on how to transform your lat/lon values to 
> row/column indices. The question and answer are specifically about the ncdf 
> package, but the workflow is identical when using the ncfd4 package.
> 
> https://stat.ethz.ch/pipermail/r-help/2011-March/272641.html
> 
> Cheers,
> Ben
> 
> > On Jan 9, 2016, at 7:14 AM, Anthoni, Peter (IMK) <peter.anth...@kit.edu> 
> > wrote:
> > 
> > Hi Peter,
> > 
> > the start in nc_varget requires a latitude and longitude index, not the 
> > latitude and longitude in double format.
> > So you need to figure out what index your latitude and longitude correspond 
> > to, which will depends on what data are in your netCDF.
> > 
> > it might have looked like that it worked for a positive latitude, but you 
> > got the data from the latitude index 6 or 7, depends on how the double was 
> > transformed into an integer.
> > 
> > best regards
> > Peter
> > 
> >> On 09 Jan 2016, at 12:28, Peter Tuju via R-help <r-help@r-project.org> 
> >> wrote:
> >> 
> >> I have data file in netcdf with three dimensions (x, y, t) and I want to 
> >> extract a variable RAINC and RAINNC 
> >> using longitude and latitude for a single point location with all the 
> >> time, but no lucky. The syntax is as follows;;
> >> setwd( "/run/media/tuju/0767090047/extract_wrf_txt_file" )
> >> rm( list = ls() )                                              
> >> library( ncdf4 )                                    
> >> inp_file <- nc_open( "wrfout_d01_2016-01-07.nc" )time <- ncvar_get( 
> >> inp_file, "Times" )                      # Reading the time 
> >> variabledar_lon <- 39.2dar_lat <- -6.866667
> >> RAINC <- ncvar_get( inp_file, varid = "RAINC", start  = c( dar_lon, 
> >> dar_lat, 1 ), count = c( 1, 1, -1 ) )
> >> RAINNC <- ncvar_get( inp_file, varid = "RAINNC", start  =  c( dar_lon, 
> >> dar_lat, 1 ), count = c( 1, 1, -1 ) )
> >> RAIN <- RAINC + RAINNCRAIN_TABLE <- cbind( time, RAIN )
> >> write.table( RAIN_TABLE, "Dar_es_Salaam.txt", row.names = FALSE, 
> >>            col.names = c( "Valid Forecast Time",  "Rain (mm)", sep = "\t " 
> >> )
> >> 
> >> # But no lucky with the red bolded syntax as I end up with the following 
> >> error message> RAINC <- ncvar_get( inp_file, varid = "RAINC", start  = c( 
> >> Lon[2], Lat[2], 1 ), count = c( 1, 1, -1 ) )
> >> Error in Rsx_nc4_get_vara_double: NetCDF: Index exceeds dimension bound
> >> Var: RAINC  Ndims: 3  Start: 0,4294967289,38 Count: 17,1,1
> >> Error in ncvar_get_inner(ncid2use, varid2use, nc$var[[li]]$missval, 
> >> addOffset,  : 
> >>  C function R_nc4_get_vara_double returned error
> >> However when I cahnge the latitude to postive it works fine. Note 
> >> latitudes in the file data ranges from -16.71505 to 7.787529 as shown 
> >> below;
> >> head(ncvar_get(inp_file, "XLAT"))
> >> [1] -16.71505 -16.71505 -16.71505 -16.71505 -16.71505 -16.71505
> >>> tail(ncvar_get(inp_file, "XLAT"))
> >> [1] 7.787529 7.787529 7.787529 7.787529 7.787529 7.787529
> >> ## So, how can I get the syntax correct? Please help _____________
> >> Peter  E. Tuju
> >> Dar es Salaam
> >> T A N Z A N I A
> >> ----------------------
> >> 
> >> 
> >> 
> >> 
> >> 
> >>     [[alternative HTML version deleted]]
> >> 
> >> ______________________________________________
> >> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
> >> 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.
> 
> > 
> > ______________________________________________
> > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > 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.
> 
> 
> Ben Tupper
> Bigelow Laboratory for Ocean Sciences
> 60 Bigelow Drive, P.O. Box 380
> East Boothbay, Maine 04544
> http://www.bigelow.org
> 
> 
> 

Ben Tupper
Bigelow Laboratory for Ocean Sciences
60 Bigelow Drive, P.O. Box 380
East Boothbay, Maine 04544
http://www.bigelow.org

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.

Reply via email to