NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
You can easily create a template netCDF-4/HDF5 file using GUI called HDF Product Designer and generate CDL [1] or Python code [2] that you can add data from CSV. [1] https://hpd.readthedocs.io/en/v1.6/usage.html#id8 [2] https://hpd.readthedocs.io/en/v1.6/usage.html#python-source-code From: netcdfgroup <netcdfgroup-bounces@xxxxxxxxxxxxxxxx> On Behalf Of Dave Allured - NOAA Affiliate via netcdfgroup Sent: Tuesday, December 15, 2020 3:38 PM To: nazaniti6 <nazitkk1375@xxxxxxxxx> Cc: netcdfgroup@xxxxxxxxxxxxxxxx Subject: Re: [netcdfgroup] How convert csv files to a netcdf file I agree with Gus and Chris, a higher level language such as NCL or Python would be easiest if you are familiar and have access. I would also be interested to know if Rosetta works. If you have trouble with these, here is an alternative method that needs only an existing Netcdf file with the desired array structure and coordinates, plus Netcdf command line tools and a text editor. There is a similar method that does not even need a previous Netcdf file. Ask if needed. * ncdump -c other-file.nc<http://other-file.nc> > cdl.txt * Split cdl.txt into header and suffix (suffix is just one line). * Add new line "tmp = " (or var name of your choice) at the end of the header. * Change the header to match your chosen var name, if needed. * Adjust other metadata as desired. * Ensure correct delimiters. * cat header.txt input.csv suffix.txt > concat.txt * ncgen -o new.nc<http://new.nc> concat.txt Some debugging will be expected. Use ncdump to get familiar with what a complete CDL text file should look like. You should learn this regardless of which method you use. Good luck. On Tue, Dec 15, 2020 at 1:30 PM Gus Correa <gus@xxxxxxxxxxxxxxxxx<mailto:gus@xxxxxxxxxxxxxxxxx>> wrote: Hi This is probably much easier to do using a higher level generic tool such as NCL, than writing a file-specific program in C, Fortran, Python, whatever, using the NetCDF API. NCL documentation includes examples on how to read CSV files: https://www.ncl.ucar.edu/Applications/read_csv.shtml and how to write NetCDF files: https://www.ncl.ucar.edu/Applications/method_1.shtml https://www.ncl.ucar.edu/Applications/method_2.shtml For atmosphere/ocean/climate/weather data there hardly anything better than NCL: https://www.ncl.ucar.edu/index.shtml If you run into problems, their mailing list is active and very helpful: https://www.ncl.ucar.edu/Support/email_lists.shtml I hope this helps, Gus Correa On Tue, Dec 15, 2020 at 12:58 PM nazaniti6 <nazitkk1375@xxxxxxxxx<mailto:nazitkk1375@xxxxxxxxx>> wrote: Hello, I have six CSV files which I have sent in this link (https://drive.google.com/drive/folders/1GQtyY1mI1YrK8GFP9SEo7dZfFHexKro3?usp=sharing). If you open them you will understand that each of these files has 720 rows and 360 columns which indicates longitude and latitude respectively. I should tell you that the first point of latitude is -89.75, the first point of longitude is -179.75, and the resolution of these data is 0.5 degrees. I want to convert them to a NetCDF file which has the following properties: Dimensions: longitude = 720 latitude = 360 time = 6 Variables: longitude Size: 720x1 Dimensions: longitude Datatype: single Attributes: long_name = 'longitude' units = 'degrees_east' latitude Size: 360x1 Dimensions: latitude Datatype: single Attributes: long_name = 'latitude' units = 'degrees_north' time Size: 6x1 Dimensions: time Datatype: single Attributes: long_name = 'time' units = 'days since 1900-1-1' calendar = 'gregorian' tmp Size: 720x360x6 Dimensions: longitude, latitude,time Datatype: single Attributes: long_name = 'monthly mean temperature' units = 'degrees Celsius' correlation_decay_distance = 1200 _FillValue = 9.969209968386869e+36 missing_value = 9.969209968386869e+36 Could you please help me?
netcdfgroup
archives: