Skip to content

Convert ncdf data to dataframe

3 messages · Miluji Sb, Jeff Newmiller, MacQueen, Don

#
Dear all,

I have used the following code to read in a ncdf file

library(chron)
library(lattice)
library(ncdf4)
library(data.table)

ncname <- ("/file_path")
ncfname <- paste(ncname, ".nc", sep = "")
dname <- "ssl"  # note: tmp means temperature (not temporary)

ncin <- nc_open(ncfname)
print(ncin)

The attributes of the file are:

     4 variables (excluding dimension variables):
        double longitude[row]
            long_name: longitude
            units: degrees_east
            standard_name: longitude
        double latitude[row]
            long_name: latitude
            units: degrees_north
            standard_name: latitude
        double ssl[col,row]
            long_name: storm surge level
            units: m
            _FillValue: -99999
            scale_factor: 1
            add_offset: 1
        float RP[col]
            long_name: return period
            units: yr
            Contents: The RPs have been estimated following the Peak Over
Threshold Method (see reference below)
            Starting date: 01-Dec-2009
            End date: 30-Nov-2099 21:00:00
     2 dimensions:
        col  Size:8
        row  Size:2242

I would like to convert the data into a dataframe by longitude and
latitude. Is that possible? Thank you!

Sincerely,

Milu
#
The answer to your question is "yes".

You probably need to make your example reproducible by including (or referencing by URL) sample data if you want a more complete response.
#
There's a pretty good chance this question has been previously asked and
answered on the R-sig-geo mailing list (though I don't know for sure).

In addition, entering

  "R convert ncdf to data frame"

in a web search returned some possibilities, the first of which (for me)
was

  http://geog.uoregon.edu/bartlein/courses/geog607/Rmd/netCDF_01.htm

and partway down that page is an entry,

  "Get a single time slice of the data, create an R data frame, and write
a .csv file"

which does indeed have some examples of how to convert to a data frame.


-Don