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 > 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 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> 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> 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?
>>
>
  • 2020 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdfgroup archives: