2

I'm having a issue writing to a netcdf3 file using the netcdf4 functions. I tried using the create variable function but it gives me this error: NetCDF: Attempting netcdf-4 operation on netcdf-3 file

nc = Dataset(root.fileName,'a',format="NETCDF4")

Hycom_U = nc.createVariable('/variables/Hycom_U','float',('time','lat','lon',))

Hycom_V = nc.createVariable('/variables/Hycom_V','f4',('time','lat','lon',))

nc=

root group (NETCDF3_CLASSIC data model, file format NETCDF3):
    netcdf_library_version: 4.1.3
    format_version: HFRNet_1.0.0
    product_version: HFRNet_1.1.05
    Conventions: CF-1.0
    title: Near-Real Time Surface Ocean Velocity, Hawaii,
2 km Resolution
    institution: Scripps Institution of Oceanography
    source: Surface Ocean HF-Radar
    history: 22-Feb-2017 00:55:46: NetCDF file created
22-Feb-2017 00:55:46: Filtered U and V by GDOP < 1.25 ;
FMRC Best Dataset
    references: Terrill, E. et al., 2006. Data Management and Real-time
Distribution in the HF-Radar National Network. Proceedings
of the MTS/IEEE Oceans 2006 Conference, Boston MA,
September 2006.
    creator_name: Mark Otero
    creator_email: [email protected]
    creator_url: http://cordc.ucsd.edu/projects/mapping/
    summary: Surface ocean velocities estimated from HF-Radar are
representative of the upper 0.3 - 2.5 meters of the
ocean.  The main objective of near-real time
processing is to produce the best product from
available data at the time of processing.  Radial
velocity measurements are obtained from individual
radar sites through the U.S. HF-Radar Network.
Hourly radial data are processed by unweighted
least-squares on a 2 km resolution grid of Hawaii
to produce near real-time surface current maps.
    geospatial_lat_min: 20.487279892
    geospatial_lat_max: 21.5720806122
    geospatial_lon_min: -158.903594971
    geospatial_lon_max: -157.490005493
    grid_resolution: 2km
    grid_projection: equidistant cylindrical
    regional_description: Unites States, Hawaiian Islands
    cdm_data_type: GRID
    featureType: GRID
    location: Proto fmrc:HFRADAR,_US_Hawaii,_2km_Resolution,_Hourly_RTV
    History: Translated to CF-1.0 Conventions by Netcdf-Java CDM (NetcdfCFWriter)
Original Dataset = fmrc:HFRADAR,_US_Hawaii,_2km_Resolution,_Hourly_RTV; Translation Date = Thu Feb 23 13:35:32 GMT 2017
    dimensions(sizes): time(25), lat(61), lon(77)
    variables(dimensions): float32 u(time,lat,lon), float64 time_run(time), float64 time(time), float32 lat(lat), float32 lon(lon), float32 v(time,lat,lon)
    groups: 

What are the netcdf 3 operations I can use to add data into the file? I found out that I could manually add data by simply doing this nc.variables["Hycom_U"]=U2which directly adds the data, but nothing else. Is there a better way to do this?

2 Answers 2

2

I believe the issue is that you're claiming the file to be netCDF4 format:

nc = Dataset(root.fileName,'a',format="NETCDF4")`

but you really want to indicate that it's netCDF3:

nc = Dataset(root.fileName,'a',format="NETCDF3_CLASSIC")

Additional documentation can be found here.

Sign up to request clarification or add additional context in comments.

1 Comment

Unfortunately it doesn't fix the problem. I tried different formats and they all give the same error. :(
2

I figured it out! I simply couldn't use a path as a varname.

Hycom_U = nc.createVariable('Hycom_U','float',('time','lat','lon',))

It properly created a variable for me.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.