# loading library and setup deirectory
setwd("E:/r")
library(raster)
## Loading required package: sp
library(ncdf4)
# file "air mon mean.nc , loading using "nc_open"
data<-nc_open('air.mon.mean.nc')
print(data)
## File air.mon.mean.nc (NC_FORMAT_CLASSIC):
##
## 1 variables (excluding dimension variables):
## float air[lon,lat,time]
## long_name: Monthly Mean Air Temperature
## valid_range: -2000
## valid_range: 2000
## actual_range: -73.7799911499023
## actual_range: 41.7490196228027
## units: degC
## add_offset: 0
## scale_factor: 1
## missing_value: -9.96920996838687e+36
## precision: 1
## least_significant_digit: 0
## var_desc: Air Temperature
## dataset: CDC Derived NCEP Reanalysis Products
## level_desc: Surface
## statistic: Mean
## parent_stat: Individual Obs
##
## 3 dimensions:
## lon Size:144
## units: degrees_east
## long_name: Longitude
## actual_range: 0
## actual_range: 357.5
## standard_name: longitude
## axis: X
## lat Size:73
## units: degrees_north
## actual_range: 90
## actual_range: -90
## long_name: Latitude
## standard_name: latitude
## axis: Y
## time Size:755 *** is unlimited ***
## units: hours since 1-1-1 00:00:0.0
## long_name: Time
## actual_range: 17067072
## actual_range: 17617872
## delta_t: 0000-01-00 00:00:00
## avg_period: 0000-01-00 00:00:00
## prev_avg_period: 0000-00-01 00:00:00
## standard_name: time
## axis: T
##
## 6 global attributes:
## title: Monthly mean air temperature NCEP Reanalysis
## history: Thu May 4 20:11:16 2000: ncrcat -d time,0,623 /Datasets/ncep.reanalysis.derived/surface/air.mon.mean.nc air.mon.mean.nc
## Thu May 4 18:11:50 2000: ncrcat -d time,0,622 /Datasets/ncep.reanalysis.derived/surface/air.mon.mean.nc ./surface/air.mon.mean.nc
## Mon Jul 5 23:47:18 1999: ncrcat ./air.mon.mean.nc /Datasets/ncep.reanalysis.derived/surface/air.mon.mean.nc /dm/dmwork/nmc.rean.ingest/combinedMMs/surface/air.mon.mean.nc
## /home/hoop/crdc/cpreanjuke2farm/cpreanjuke2farm Mon Oct 23 21:04:20 1995 from air.sfc.gauss.85.nc
## created 95/03/13 by Hoop (netCDF2.3)
## description: Data from NCEP initialized reanalysis (4x/day). These are the 0.9950 sigma level values
## platform: Model
## Conventions: COARDS
## references: http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis.derived.html
# USING RASTER LIBRARY
dataraster<-raster('air.mon.mean.nc')
print(dataraster)
## File E:\r\air.mon.mean.nc (NC_FORMAT_CLASSIC):
##
## 1 variables (excluding dimension variables):
## float air[lon,lat,time]
## long_name: Monthly Mean Air Temperature
## valid_range: -2000
## valid_range: 2000
## actual_range: -73.7799911499023
## actual_range: 41.7490196228027
## units: degC
## add_offset: 0
## scale_factor: 1
## missing_value: -9.96920996838687e+36
## precision: 1
## least_significant_digit: 0
## var_desc: Air Temperature
## dataset: CDC Derived NCEP Reanalysis Products
## level_desc: Surface
## statistic: Mean
## parent_stat: Individual Obs
##
## 3 dimensions:
## lon Size:144
## units: degrees_east
## long_name: Longitude
## actual_range: 0
## actual_range: 357.5
## standard_name: longitude
## axis: X
## lat Size:73
## units: degrees_north
## actual_range: 90
## actual_range: -90
## long_name: Latitude
## standard_name: latitude
## axis: Y
## time Size:755 *** is unlimited ***
## units: hours since 1-1-1 00:00:0.0
## long_name: Time
## actual_range: 17067072
## actual_range: 17617872
## delta_t: 0000-01-00 00:00:00
## avg_period: 0000-01-00 00:00:00
## prev_avg_period: 0000-00-01 00:00:00
## standard_name: time
## axis: T
##
## 6 global attributes:
## title: Monthly mean air temperature NCEP Reanalysis
## history: Thu May 4 20:11:16 2000: ncrcat -d time,0,623 /Datasets/ncep.reanalysis.derived/surface/air.mon.mean.nc air.mon.mean.nc
## Thu May 4 18:11:50 2000: ncrcat -d time,0,622 /Datasets/ncep.reanalysis.derived/surface/air.mon.mean.nc ./surface/air.mon.mean.nc
## Mon Jul 5 23:47:18 1999: ncrcat ./air.mon.mean.nc /Datasets/ncep.reanalysis.derived/surface/air.mon.mean.nc /dm/dmwork/nmc.rean.ingest/combinedMMs/surface/air.mon.mean.nc
## /home/hoop/crdc/cpreanjuke2farm/cpreanjuke2farm Mon Oct 23 21:04:20 1995 from air.sfc.gauss.85.nc
## created 95/03/13 by Hoop (netCDF2.3)
## description: Data from NCEP initialized reanalysis (4x/day). These are the 0.9950 sigma level values
## platform: Model
## Conventions: COARDS
## references: http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis.derived.html
#float air[lon,lat,time]
#in this line "air " this is main variable
# we need , plz follow following steps
# extract long ,lat , time , variable
lon<-ncvar_get(data,"lon")
nlon<-dim(lon)
lat<-ncvar_get(data,"lat")
nlat<-dim(lat)
time<-ncvar_get(data,"time")
# another package
library(RNetCDF)
nc.file <- open.nc(paste0('air.mon.mean.nc'))
lon <- var.get.nc(ncfile=nc.file, variable = 'lon')
lat <- rev(var.get.nc(ncfile=nc.file, variable = 'lat')) # Plotting requires incremented values
tmp <- var.get.nc(ncfile = nc.file, variable = 'air')
title <- att.get.nc(nc.file, variable = 'air', attribute = 'long_name')
title <- gsub('_', ' ', title) # Substitute "_" by " " in title
close.nc(nc.file)
print(nc.file)
## [1] 65536
## attr(,"class")
## [1] "NetCDF"
# january
library(RColorBrewer)
library(maps) # For World map
image(lon, lat, tmp[, , 1], col = rev(brewer.pal(10, "RdBu")), main=paste0(title, '\n', month.name[1]))
map(database = 'world', add = T, lwd=2)

# december
image(lon, lat, tmp[, , 1], col = rev(brewer.pal(10, "RdBu")), main=paste0(title, '\n', month.name[12]))
map(database = 'world', add = T, lwd=2)
