Error when trying to import NetCDF to R

13,644

I think that the harvest maize netcdf file is simply corrupt, or not even a netcdf file (file name does not say anything about the real contents). Try and open it in NCView or dump using ncdump, if those tool also fails your file is corrupt or incomplete. In addition, if you want us to help, you need to make your file available.

Share:
13,644
Johannes
Author by

Johannes

Updated on June 06, 2022

Comments

  • Johannes
    Johannes about 2 years

    I' struggeling to open a NetCDF file in R. When I try to open it with

    library(ncdf)
    # read in NetCDF file
    maize.nc<-open.ncdf("C:/Users/Jo/Desktop/pft_harvest_maize.nc")
    

    I get the following error message:

     Error in R_nc_open: NetCDF: Unknown file format
     Error in open.ncdf("C:/Users/Jo/Desktop/pft_harvest_maize.nc") : 
       Error in open.ncdf trying to open file C:/Users/Jo/Desktop/pft_harvest_maize.nc
    

    the weird thing is, that another NetCDF file with Runoff-Data from the exact same simulation with the exact same datatype opens without any problems.

    The difference in filesize is Runoff: 56.1 MB (58,870,472 Bytes) and harvest: 149 MB (156,968,508 Bytes). So the files are actually not too big to fail when opening. Has anybody an idea how I can trackback the error that causes this problem??

    Using the RNetCDF Package I get the same problem (Error: NetCDF: Unknown file format)

    From ncdump I get:

    netcdf pft_harvest_maize {
    dimensions:
            time = 199 ;
            npft = 32 ;
            latitude = 78 ;
            longitude = 79 ;
    variables:
            string NamePFT(npft) ;
            int time(time) ;
                    time:units = "Years" ;
            float latitude(latitude) ;
                    latitude:units = "degrees_north" ;
                    latitude:long_name = "latitude" ;
                latitude:standard_name = "latitude" ;
                latitude:axis = "Y" ;
        float longitude(longitude) ;
                longitude:units = "degrees_east" ;
                longitude:long_name = "longitude" ;
                longitude:standard_name = "longitude" ;
                longitude:axis = "X" ;
        float harvest(time, npft, latitude, longitude) ;
                harvest:units = "gC/m2/yr" ;
                harvest:long_name = "harvested carbon" ;
                harvest:missing_value = -9999.99f ;
                harvest:_FillValue = -9999.99f 
    }
    

    the file can be found here: netCDF-file