Re: Netcdf files: creation and merge

From: Mary Haley <haley_at_nyahnyahspammersnyahnyah>
Date: Tue Nov 22 2011 - 14:16:45 MST

Louis,

I need some clarification. Exactly what problem are you having generating the date? You said you want it to look like the one in the NCEP/NCAR dataset. What do these dates look like?

Also I'm not sure what your question is about writing the data to one file. Right now, you have all the NetCDF file stuff inside the loop. If you want to write your data to one file, you'll need to move the file definition code outside the loop, but then add a third dimension along with "lat" and "lon", called something like "date" or "time".
   
It would help if you can provide the *.txt files that you list below.

--Mary

On Nov 22, 2011, at 10:15 AM, louis Vonder wrote:

> Dear all,
>
> I have a ncl code (inspired from ncl examples) that I am using to save my data in netcdf format.
> But this code creates for each ascii file a netcdf data, unfortunately this procedure is not nice !!!
> Now I want to better customize this script so that i can save all my data in a unique netcdf file.
>
> But I am facing a problem to generate the date.
> For example, my files are named as the following:
>
> XCut_025_FLFC_01_213K.txt
> XCut_025_FLFC_02_213K.txt
> XCut_025_FLFC_03_213K.txt
> XCut_025_FLFC_04_213K.txt
>
> Where 01, 02, 03, 04 correspond to 00:30 LST, 01:00 LST, 01:30 LST and 02:00 LST (LST = Local Solar Time).
>
> The year can be for example 2010 during the month of August.
>
> So I want that the generated file contain date such as in netcdf file generated by NCEP/NCAR dataset.
>
> Below the script I am using
>
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
>
> begin
>
>
>
> nlat = 58
> ini_lat = 1.
> lat = ini_lat + (ispan(0, nlat-1, 1)*0.25)
>
>
> nlon = 66
> ini_lon = 1.5
> lon = ini_lon + (ispan(0, nlon-1, 1)*0.25)
>
>
> lat@units = "degrees_north"
> lat@long_name = "latitude"
> lon@units = "degrees_east"
> lon@long_name = "longitude"
>
>
>
> fili = systemfunc("ls XCut_025_FLFC_*_235K.txt")
> nfil = dimsizes( fili )
>
> do n=0, nfil - 1
> name = stringtocharacter(fili(n))
> name1 = name(0:20)
> name2 = chartostring(name1)
>
> dummy_data = asciiread(fili(n), (/nlat, nlon/), "float")
>
> ; Set up coordinate arrays so we can overlay on map.
> dummy_data!0 = "lat"
> dummy_data!1 = "lon"
> dummy_data&lat = lat
> dummy_data&lon = lon
> dummy_data@units = "%"
> dummy_data@_FillValue = -9999.
> dummy_data@missing_value = dummy_data@_FillValue
> dummy_data@long_name = "Fractional coverage"
>
> diro = "./" ; Output directory
> filo = name2+".nc" ; Output file
> system("/bin/rm -f " + diro + filo) ; remove if exists
> fout = addfile (diro + filo, "c") ; open output file
>
>
> ;===================================================================
> ; explicitly declare file definition mode. Improve efficiency.
> ;===================================================================
> setfileoption(fout,"DefineMode",True)
>
> ;===================================================================
> ; create global attributes of the file
> ;===================================================================
> fAtt = True ; assign file attributes
> fAtt@title = "NCL Efficient Approach to netCDF Creation"
> fAtt@source_file = "original-file.nc"
> fAtt@Conventions = "None"
> fAtt@creation_date = systemfunc ("date")
> fileattdef( fout, fAtt ) ; copy file attributes
> ;===================================================================
> ; predefine the coordinate variables and their dimensionality
> ; note: to get an UNLIMITED record dimension, we set the dimensionality
> ; to -1 and set the unlimited array to True.
> ;===================================================================
> dimNames = (/"lat", "lon"/)
> dimSizes = (/nlat, nlon/)
> dimUnlim = (/False, False/)
> filedimdef(fout, dimNames, dimSizes, dimUnlim)
>
>
>
> filevardef(fout, "lat" ,typeof(lat), "lat")
> filevardef(fout, "lon" ,typeof(lon), "lon")
> filevardef(fout, "FC", typeof(dummy_data), (/"lat" ,"lon"/))
>
>
> filevarattdef(fout, "lat", lat) ; copy lat attributes
> filevarattdef(fout, "lon", lon) ; copy lon attributes
> filevarattdef(fout, "FC", dummy_data) ; copy TOPOG attributes
>
> setfileoption(fout, "DefineMode", False)
>
>
> fout->lat = (/lat/)
> fout->lon = (/lon/)
> fout->FC = (/dummy_data/)
>
>
> delete(dummy_data)
> delete(fout)
>
> end do
>
>
> end
>
>
> Regards
>
>
>
>
> _______________________________________________
> ncl-talk mailing list
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk

_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Tue Nov 22 14:16:53 2011

This archive was generated by hypermail 2.1.8 : Tue Nov 22 2011 - 14:17:52 MST