Thanks very much for the help Sam and Roger.  

 

I ended up using Sam's method which worked great, though seems to
require the offset and scaling factor to be calculated on the output
RasterLayer following creation.  There is probably a method to apply
these directly, but I haven't figured that out just yet.

 

This is working with R2.10.1, Raster 0.9.9-1 and RNetCDF 1.2-1.

 

Cheers,

Kevin

________________________________

From: Samuel Veloz [mailto:sdveloz@ucdavis.edu] 
Sent: 7-Jan-10 1:30 PM
To: Roger.Bivand@nhh.no
Cc: Middel, Kevin (MNR); r-sig-geo@stat.math.ethz.ch
Subject: Re: [R-sig-Geo] Problems reading netcdf with RGDAL



I have had success using the raster package (which requires the RNetCDF
package for netcdf data) after having similar problems. The following
code works for me:

air.rast.1<-raster("air.2m.1979.nc",zvar="air",time=1) #this gives you a
raster of the air variable at time step 1.
plot(air.rast.1)


This was working on raster version 0.9.3 and R 2.9.1 so don't know if
new versions will work or if the problems Roger described with rgdal
will matter. 

Sam



On Thu, Jan 7, 2010 at 9:16 AM, Roger Bivand <Roger.Bivand@nhh.no>
wrote:

On Thu, 7 Jan 2010, Middel, Kevin (MNR) wrote:

Hi,

I am trying to read a netcdf file and create spatial grid files
compatible with a GIS from the various time arrays, but ran into a
problem right off with rgdal.  The .nc file contains daily air
temperatures across North America for a given year.



Using the command:

GDALinfo("air.2m.1979.nc")



Where is your sessionInfo() information? Does gdalDrivers() include the
NetCDF driver (no, you are on Windows using the standard binary rgdal
package - guesses based on the file path quoted below)? Have you read
file.show(system.file("README.windows", package="rgdal")), which tells
you how to install rgdal from source on Windows to access extra drivers
depending on external software?

The user needing more exotic drivers (those not provided by GDAL itself)
has to provide the external dependencies and install from the source
package on all platforms. If ncdf can import the data, please use that
if you do not want to install rgdal from source.

Hope this helps,

Roger

	 

	
	
	I get the error:
	CPL ERROR 4: `air.2m.1979.nc' not recognised as a supported file
format.
	
	
	
	Error in .local(.Object, ...) :
	
	 `air.2m.1979.nc' not recognised as a supported file format.
	
	
	
	I am able read the file using the package ncdf, and the utility
ncdump,
	as well as view the data in panoply, so I'm not sure what I'm
doing
	incorrectly.   I've also tried using FWTools to view the data
and in
	this program the image is inverted (N-S).  Finally I've had a
look at
	the data using GDALInfo installed with FWTools and have pasted
the
	output below, as well as the output from NCDump.
	
	
	
	It's probably pretty obvious that I'm new to this format, so any
	help/guidance anyone can provide would be greatly appreciated.
	
	
	
	Thanks in advance,
	
	Kevin
	
	
	
	GDALInfo Output:
	
	
	
	Driver: netCDF/Network Common Data Format
	
	Files: d:\databases\climate\narr\air.2m.1979.nc
	
	Size is 512, 512
	
	Coordinate System is `'
	
	Metadata:
	
	 NC_GLOBAL#standardpar1=50
	
	 NC_GLOBAL#standardpar2=50
	
	 NC_GLOBAL#centerlon=-107
	
	 NC_GLOBAL#centerlat=50
	
	 NC_GLOBAL#latcorners=1.000001e+000, 8.979450e-001,
4.635440e+001,
	4.663433e+001
	
	 NC_GLOBAL#loncorners=-1.455000e+002, -6.832005e+001,
-2.569891e+000,
	1.486418e+002
	
	 NC_GLOBAL#stream=s1
	
	 NC_GLOBAL#title=Daily NARR
	
	 NC_GLOBAL#Conventions=CF-1.0
	
	 NC_GLOBAL#history=On Thu Feb  9 16:48:19 2006 single precision
time
	renamed oldtime,
	
	values transferred to double precision new time variable.
	
	created 2005 by Jeff Whitaker
	
	 NC_GLOBAL#institution=National Centers for Environmental
Prediction
	
	 NC_GLOBAL#platform=Model
	
	
	
NC_GLOBAL#references=http://wwwt.emc.ncep.noaa.gov/mmb/rreanl/index.html
	
	http://www.cdc.noaa.gov/cdc/data.narr.html
	
	Subdatasets:
	
	
	
SUBDATASET_1_NAME=NETCDF:"d:\databases\climate\narr\air.2m.1979.nc":lat
	
	 SUBDATASET_1_DESC=[277x349] latitude (32-bit floating-point)
	
	
	
SUBDATASET_2_NAME=NETCDF:"d:\databases\climate\narr\air.2m.1979.nc":lon
	
	 SUBDATASET_2_DESC=[277x349] longitude (32-bit floating-point)
	
	
	
SUBDATASET_3_NAME=NETCDF:"d:\databases\climate\narr\air.2m.1979.nc":time
	_bnds
	
	 SUBDATASET_3_DESC=[365x2] time_bnds (64-bit floating-point)
	
	
	
SUBDATASET_4_NAME=NETCDF:"d:\databases\climate\narr\air.2m.1979.nc":air
	
	 SUBDATASET_4_DESC=[365x277x349] air_temperature (8-bit integer)
	
	Corner Coordinates:
	
	Upper Left  (    0.0,    0.0)
	
	Lower Left  (    0.0,  512.0)
	
	Upper Right (  512.0,    0.0)
	
	Lower Right (  512.0,  512.0)
	
	Center      (  256.0,  256.0)
	
	
	
	
	
	NCDump Output:
	
	
	
	netcdf air.2m.1979 {
	
	dimensions:
	
	      time = UNLIMITED ; // (365 currently)
	
	      y = 277 ;
	
	      x = 349 ;
	
	      nbnds = 2 ;
	
	variables:
	
	      float lat(y, x) ;
	
	              lat:long_name = "latitude coordinate" ;
	
	              lat:units = "degrees_north" ;
	
	              lat:axis = "Y" ;
	
	              lat:coordinate_defines = "point" ;
	
	              lat:standard_name = "latitude" ;
	
	      float lon(y, x) ;
	
	              lon:units = "degrees_east" ;
	
	              lon:long_name = "longitude coordinate" ;
	
	              lon:axis = "X" ;
	
	              lon:coordinate_defines = "point" ;
	
	              lon:standard_name = "longitude" ;
	
	      float x(x) ;
	
	              x:long_name = "eastward distance from southwest
corner
	of domain in projection coordinates" ;
	
	              x:units = "m" ;
	
	              x:standard_name = "projection_x_coordinate" ;
	
	      float y(y) ;
	
	              y:long_name = "northward distance from southwest
corner
	of domain in projection coordinates" ;
	
	              y:units = "m" ;
	
	              y:standard_name = "projection_y_coordinate" ;
	
	      int Lambert_Conformal ;
	
	              Lambert_Conformal:grid_mapping_name =
	"lambert_conformal_conic" ;
	
	              Lambert_Conformal:standard_parallel = 50., 50. ;
	
	              Lambert_Conformal:longitude_of_central_meridian =
-107.
	;
	
	              Lambert_Conformal:latitude_of_projection_origin =
50. ;
	
	              Lambert_Conformal:false_easting = 5632642.22547 ;
	
	              Lambert_Conformal:false_northing = 4612545.65137 ;
	
	      double time(time) ;
	
	              time:units = "hours since 1800-1-1 00:00:0.0" ;
	
	              time:long_name = "analysis time" ;
	
	              time:axis = "T" ;
	
	              time:standard_name = "time" ;
	
	              time:coordinate_defines = "start" ;
	
	              time:delta_t = "0000-00-01 00:00:00" ;
	
	              time:actual_range = 1569072., 1577808. ;
	
	              time:avg_period = "0000-00-01 00:00:00" ;
	
	      double time_bnds(time, nbnds) ;
	
	              time_bnds:long_name = "Time Boundaries" ;
	
	      short air(time, y, x) ;
	
	              air:units = "K" ;
	
	              air:long_name = "Daily Air Temperature at 2 m" ;
	
	              air:unpacked_valid_range = 151.f, 400.f ;
	
	              air:precision = 0.003799786f ;
	
	              air:actual_range = 219.7989f, 312.3237f ;
	
	              air:missing_value = 32767s ;
	
	              air:valid_range = -32765s, 32765s ;
	
	              air:_FillValue = -32767s ;
	
	              air:GRIB_name = "TMP" ;
	
	              air:GRIB_id = 11 ;
	
	              air:var_desc = "Air temperature" ;
	
	              air:standard_name = "air_temperature" ;
	
	              air:level_desc = "2 m" ;
	
	              air:dataset = "NARR Daily Averages" ;
	
	              air:statistic = "Mean" ;
	
	              air:parent_stat = "Individual Obs" ;
	
	              air:grid_mapping = "Lambert_Conformal" ;
	
	              air:coordinates = "lat lon" ;
	
	              air:add_offset = 275.5f ;
	
	              air:scale_factor = 0.003799786f ;
	
	              air:cell_methods = "time: mean (of 8 3-hourly
values in
	one day)" ;
	
	
	
	// global attributes:
	
	              :standardpar1 = 50. ;
	
	              :standardpar2 = 50.000001 ;
	
	              :centerlon = -107. ;
	
	              :centerlat = 50. ;
	
	              :latcorners = 1.000001f, 0.897945f, 46.3544f,
46.63433f
	;
	
	              :loncorners = -145.5f, -68.32005f, -2.569891f,
148.6418f
	;
	
	              :stream = "s1" ;
	
	              :title = "Daily NARR" ;
	
	              :Conventions = "CF-1.0" ;
	
	              :history = "On Thu Feb  9 16:48:19 2006 single
precision
	time renamed oldtime,\n",
	
	                      "values transferred to double precision
new time
	variable.\n",
	
	                      "created 2005 by Jeff Whitaker" ;
	
	              :institution = "National Centers for Environmental
	Prediction" ;
	
	              :platform = "Model" ;
	
	              :references =
	"http://wwwt.emc.ncep.noaa.gov/mmb/rreanl/index.html\n",
	
	
"http://www.cdc.noaa.gov/cdc/data.narr.html" ;
	
	}
	
	
	
	
	
	
	
	
	       [[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



-- 
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand@nhh.no



_______________________________________________
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]]

