R: Open NetCDF and view metadata


Let’s get right into the code. First, make sure you have the ncdf4 package installed. This requires the netcdf4 and hdf5 software to be installed. netcdf4 and hdf5 are not r packages. There are various sources for installing these on your machine. I found this guide to work well for Ubuntu.

#install netcdf4 if not alread installed
#you will need to install netcdf4 and hdf5 (not R packages)
install.packages("ncdf4")

Once all dependencies are installed we can load the ncdf4 package.

#load ndcf4 package
library(ncdf4)

Open a netCDF file

With ncdf4 loaded we are ready to read in a NetCDF file. The file I use is included in the GitHub repository for this tutorial. The file.choose() function allows you to interactively choose a file from your system.

#open netcdf file
#file.choose() allows user to choose file from system
nc <- nc_open(file.choose())

Now that the file has been opened we can print the nc variable to see its metadata. Thiss will tell us the data type, dimensions, data units, and other information about the dataset

#print metadata for netcdf file
print(nc)

This is the output for the file included in the repository.

 1 variables (excluding dimension variables):
    float data[longitude,latitude,day]   
        units: Unitless
        description: Self Calibrated Palmer Drought Severity Index (scPDSI), calibrated to 1895-2010
        _FillValue: -9999

 3 dimensions:
    longitude  Size:1405
        units: degrees_east
        description: Longitude of the center of the grid cell
    latitude  Size:621
        units: degrees_north
        description: Latitude of the center of the grid cell
    day  Size:1
        units: days since 1900-01-01 00:00:00
        calendar: gregorian
        description: days since 1900-01-01
        esri_pe_string: GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137.0,298.257223563]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]]
        coordinates: lon lat

6 global attributes:
    title: Monthly gridded data at 4-km (2.5 arc-minute) resolution forSelf Calibrated Palmer Drought Severity Index (scPDSI), calibrated to 1895-2010 for the continental United States.
    author: John Abatzoglou - University of Idaho, jabatzoglou@uidaho.edu
    date: 16 March 2018
    note1: The projection information for this file is: GCS WGS 1984.
    note2: These data were created using netCDF version 4.
    note3: Citation: Westwide Drought Tracker, http://www.wrcc.dri.edu/monitor/WWDT

Metadata description

The above output provides us with much important metadata about the netCDF file. First, it shows the file contains one variable named ‘data’. The data type of ‘data’ is float, it is unitless, its values represent the Self Calibrated Palmer Drought Severity Index, and the no data value is -9999.

Dimensions, and dimension units are also reported, along wiht a coordinate system reference. Global attributes provide more information about the dataset including title, author, creation date, and notes.

Video tutorial

The first part of this video goes through the steps presented in the code above. The second part of the video is covered on in the follow up post where will go through how to pull the data out of the netcdf file so it can be used for analysis in R

Konrad Hafen

Konrad is a natural resources scientist. He develops models and analysis workflows to predict and evaluate changes to landscapes and water resources.

Latest Tutorials