<div dir="ltr"><div class="gmail_default" style="font-size:small">The reason all your metadata is stripped from the file is because you are writing the variables to the file with:</div><div class="gmail_default"><div class="gmail_default" style="font-size:small"><font face="monospace, monospace"><br></font></div><div class="gmail_default" style="font-size:small"><font face="monospace, monospace">ncdf-&gt;time= (/time/)</font></div><div class="gmail_default" style="font-size:small"><font face="monospace, monospace">ncdf-&gt;lev=  (/lev/)</font></div><div class="gmail_default" style="font-size:small"><font face="monospace, monospace">ncdf-&gt;data2=(/dataf/)</font></div><div class="gmail_default" style="font-size:small"><font face="monospace, monospace">ncdf-&gt;data3=(/pv/)</font></div><div class="gmail_default" style="font-size:small"><font face="monospace, monospace">ncdf-&gt;data6=(/hm/)</font><br></div><div class="gmail_default" style="font-size:small"><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default" style="font-size:small"><font face="arial, helvetica, sans-serif">When you use (/.../) around a variable, this strips off all the metadata.  Remove the (/.../)</font></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default"><div class="gmail_default" style="font-size:small"><font face="monospace, monospace">ncdf-&gt;time  = time</font></div><div class="gmail_default" style="font-size:small"><font face="monospace, monospace">ncdf-&gt;lev   = lev</font></div><div class="gmail_default" style="font-size:small"><font face="monospace, monospace">ncdf-&gt;data2 = dataf</font></div><div class="gmail_default" style="font-size:small"><font face="monospace, monospace">ncdf-&gt;data3 = pv</font></div><div class="gmail_default" style="font-size:small"><font face="monospace, monospace">ncdf-&gt;data6 = hm</font></div><br>I should point out, however, that this is what we call the &quot;inefficient&quot; method of writing data to a NetCDF file. This method is just fine as long as you don&#39;t have a lot of data to write to the file. If you need to write a lot of variables to a file, or really large variables to a file, then you may benefit from using the &quot;efficient&quot; method.  Please see:<br><br><a href="http://www.ncl.ucar.edu/Applications/o-netcdf.shtml">http://www.ncl.ucar.edu/Applications/o-netcdf.shtml</a><br><br>where it discusses &quot;method 1&quot; and &quot;method 2&quot;.<br><br>--Mary</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 31, 2017 at 8:06 PM, Dipti Sharma <span dir="ltr">&lt;<a href="mailto:sdipti596@gmail.com" target="_blank">sdipti596@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Hi Mary,<br><br></div>Thank you for your response. Sorry I could not respond you back earlier but I was away for couple of weeks. I ran the code by implementing your suggestion but it still did not solve the issue. I made the changes as you suggested as.given below (attached) and created netcdf file has very weird metadata structure. ncl11, ncl12, ncl13, ....(attached at the end).<span class=""><br><br>load &quot;$NCARG_ROOT/lib/ncarg/<wbr>nclscripts/csm/gsn_code.ncl&quot;<br>load &quot;$NCARG_ROOT/lib/ncarg/<wbr>nclscripts/csm/gsn_csm.ncl&quot;<br><br>; setfileoption(&quot;nc&quot;, &quot;FileStructure&quot;, &quot;Advanced&quot;)<br><br></span>fn = &quot;C:\Users\Downloads\Newfolder\<wbr>MERRA2_200.inst3_3d_asm_Nv.<wbr>19950203.nc4&quot;<br>fn1 = &quot;C:\Users\Downloads\Newfolder\<wbr>MERRA2_200.inst3_3d_gas_Nv.<wbr>19950203.nc4&quot;<span class=""><br><br> fi = addfile(fn, &quot;r&quot;)<br>fi1= addfile(fn1, &quot;r&quot;)<br><br>; setfileoption(&quot;nc&quot;, &quot;Format&quot;,  &quot;NetCDF4Classic&quot;)<br><br> printVarSummary(fi)<br>;print(fi)<br> time = fi-&gt;time<br> lev = fi-&gt;lev<br> lat = fi-&gt;lat<br> lon = fi-&gt;lon<br></span> h = fi-&gt;H<br> ;u = fi-&gt;U;(:,:,264,108)<br>; v = fi-&gt;V;(:,:,264,108)<br> w=fi-&gt;OMEGA;(:,:,264,108)<br> p=fi-&gt;PL;(:,:,264,108)<br>den=fi1-&gt;AIRDENS;(:,:,264,108)<br>hm=h(:,:,264,108)<br>;uh=u(:,:,264,108)<br>;uv=v(:,:,264,108)<br>wv=w(:,:,264,108)<br>pv=p(:,:,264,108)<br>denv=den(:,:,264,108)<br>;printVarSummary(u)<br>printVarSummary(denv)<br>printVarSummary(wv)<br>printMinMax(wv,True)<br>wv!0=&quot;time&quot;<br>wv!1=&quot;lev&quot;<br>wv&amp;time=time<br>wv&amp;lev=lev<br>denv!0=&quot;time&quot;<br>denv!1=&quot;lev&quot;<br>denv&amp;time=time<br>denv&amp;lev=lev<br>n=dimsizes(wv)<br>n1=dimsizes(time)<br>n2=dimsizes(lev)<br>;wc=new((/n1,n2/),&quot;float&quot;)<br>;do i=0,n1-1<br>;wc(i,:)=wv(i,:)/(-9.8*denv(i,<wbr>:))<br>;end do<br>;wc=wv<br>;wc=(wv(time|:,lev|:)/(-9.8*<wbr>denv(time|:,lev|:)))<br>wc=(wv/(-9.8*denv))<br>copy_VarMeta(wv,wc)<br>printMinMax(wc,True)<br>;newlat=lat(108)<br>;newlon=lon(264)<br>wc!0=&quot;time&quot;<br>wc!1=&quot;lev&quot;<br>wc&amp;time=time<br>wc&amp;lev=lev<br>printVarSummary(wc)<br>dataf = wc<br>;dataf = newdatan(lon|:,lev|:,time|:,<wbr>lat|:)<br>printVarSummary(dataf)<br>;print(time)<br>;return<span class=""><br>;Writeout new netCDF file<br>wc&amp;time = time<br>wc&amp;lev = lev<br></span>;dataf!0=&quot;time&quot;<br>;dataf!1=&quot;lev&quot;<br>;dataf&amp;time=time<br>;dataf&amp;lev=lev<br>;wc&amp;lat = newlat<br>;wc&amp;lon = newlon<br>ncdf=addfile(&quot;C:/Users/<wbr>Downloads/Newfolder/MERRA_<wbr><a href="http://19950203nwww.nc">19950203nwww.nc</a>&quot;,&quot;c&quot;)<br>dataf!0=&quot;time&quot;<br>dataf!1=&quot;lev&quot;<br>dataf&amp;time=time<br>dataf&amp;lev=lev<span class=""><br>ncdf-&gt;time= (/time/)<br>ncdf-&gt;lev=  (/lev/)<br></span>ncdf-&gt;data2=(/dataf/)<br>ncdf-&gt;data3=(/pv/)<br>;ncdf-&gt;data4=(/uv/)<br>;ncdf-&gt;data5=(/uh/)<br>ncdf-&gt;data6=(/hm/)<br>return<br>;return<br>;printVarSummary(v)<br>return<br>;print(&quot;t(0,0,0,0) = &quot; + t(0,0,0,0))<br>;print(&quot;u(0,1,1,1) = &quot; + u(0,1,1,1))<br>;print(&quot;v(0,2,2,2) = &quot; + v(0,2,2,2))<br>;print(&quot;t&amp;lat(0) = &quot; + t&amp;lat(0))<br>;print(&quot;t@units = &quot; + t@units)<br>;print(&quot;u@units = &quot; + u@units)<br>;print(&quot;v@units = &quot; + v@units)<br>;u1 = fi-&gt;U(::2)<br>;v1 = fi-&gt;V(3:121:3)<br> ;;g1 = fi=&gt;/grp1<br> ;;print(g1)<br> ;;printVarSummary(g1)<br>;exit<br> ;;uf = fi-&gt;V<br> ;;wks  = gsn_open_wks(&quot;x11&quot;, &quot;xy&quot;)<br><br>;; res              = True<br> ;;res@tiMainString = &quot;Basic plot&quot; <br><br> ;;plot1 = gsn_csm_contour(wks, uf(0,0,:,:), False)<br><br> ;;ug = g1-&gt;V<br><br> ;;plot2 = gsn_csm_contour(wks, ug(0,0,:,:), False)<br>;;return<br>;end<br><br></div>The NetCDF file I created has the metadata as below,<br><div>
  
    <pre>netcdf file:/C:/Users/Downloads/<wbr>Newfolder/MERRA_19950203nwww.<wbr>nc {
  dimensions:
    ncl0 = 8;
    ncl1 = 72;
    ncl2 = 8;
    ncl3 = 72;
    ncl4 = 8;
    ncl5 = 72;
    ncl6 = 8;
    ncl7 = 72;
  variables:
    int time(ncl0=8);

    double lev(ncl1=72);

    float data2(ncl2=8, ncl3=72);

    float data3(ncl4=8, ncl5=72);

    float data6(ncl6=8, ncl7=72);

}
</pre>
  

Thanks again.<span class="HOEnZb"><font color="#888888"><br><br></font></span></div><span class="HOEnZb"><font color="#888888"><div>Dipti<br></div><div><br></div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 17, 2017 at 12:34 AM, Mary Haley <span dir="ltr">&lt;<a href="mailto:haley@ucar.edu" target="_blank">haley@ucar.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-size:small">Dear Dipti,</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">I&#39;m sorry, but I missed that you had a second question imbedded in this email.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Were you able to get the metadata added to &quot;wc&quot;?</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">The reason it doesn&#39;t have metadata like &quot;var&quot; is because when you do a calculation and assign it to a variable that doesn&#39;t exist:</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default">wc=(wv/(-9.8*denv))<br></div><div class="gmail_default"><br></div><div class="gmail_default">then &quot;wc&quot; will not inherit any metadata from wv or denv except the _FillValue attribute.</div><div class="gmail_default"><br></div><div class="gmail_default">In order to get metadata, you either need to do a direct variable copy first, so that &quot;wc&quot; gets metadata before doing the calculation:</div><div class="gmail_default"><br></div><div class="gmail_default"><div class="gmail_default">wc=wv   ; Trick to copy metadata from wv to wc (values also get copied)<br></div><div><div class="gmail_default">wc=(wc/(-9.8*denv))<br></div></div><div class="gmail_default"><br></div><div class="gmail_default">or you can use copy_VarMeta:</div><div class="gmail_default"><br></div><div class="gmail_default"><div class="gmail_default">wc=(wv/(-9.8*denv))<br></div><div>copy_VarMeta(wv,wc)   ; copy wv&#39;s metadata to wc</div><div><br></div><div>In either case, you should update the long_name/standard_name and units attributes of wc to correctly reflect what they are.</div><span class="m_-2314809548532703998HOEnZb"><font color="#888888"><div><br></div><div>--Mary</div><div><br></div></font></span></div><div><br></div></div></div><div class="m_-2314809548532703998HOEnZb"><div class="m_-2314809548532703998h5"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 29, 2017 at 5:12 PM, Dipti Sharma <span dir="ltr">&lt;<a href="mailto:sdipti596@gmail.com" target="_blank">sdipti596@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Hi Mary,<br><br></div>Thank you. It worked now. I also made file name little shorter then that worked.<br><br><span style="font-size:12.8px">ncdf=addfile(&quot;/Users/</span><span style="font-size:12.8px">Downloads<wbr>/New\ folder/</span>MERRA_19950830.nc&quot;,&quot;c&quot;)<br></div><div>but one thing, when I do printVarSummay(var) I get the var info with 2dimensions <br><br>Number of Dimensions: 2<br>Dimensions and sizes:   [time | 8] x [lev | 72]<br>Coordinates: <br>            time: [0..1260]<br>            lev: [   1..  72]<br>Number Of Attributes: 13<br>  lon : -112.5<br>  lat :   42<br>  valid_range : ( -1e+15, 1e+15 )<br>  vmin :        -1e+15<br>  vmax :        1e+15<br>  standard_name :       air_density<br>  add_offset :   0<br>  scale_factor :         1<br>  fmissing_value :      1e+15<br>  missing_value :       1e+15<br>  _FillValue :  1e+15<br>  units :       kg m-3<br><br></div><div>But for wc, when I do printVarSummay(wc)<br>Variable: wc<br>Type: float<br>Total Size: 2304 bytes<br>            576 values<br>Number of Dimensions: 2<br>Dimensions and sizes:   [8] x [72]; There is different format so how to get this like &#39;  [time | 8] x [lev | 72]&#39;?<br><br>Coordinates: <br>Number Of Attributes: 1<br>  _FillValue :  1e+15<br>(0)      <br>(0)     min=-0.0658635   max=0.0909946<br><br></div><div>ALSO, my necdf file is not looking with correct attributes,<br><br>
  
    <pre>netcdf file:/C:/Users/Downloads/New%2<wbr>0folder/MERRA2_19950830.nc {
  dimensions:
    ncl0 = 8; should be time=8; <br>    ncl1 = 72;lev=72; etc.
    ncl2 = 8;
    ncl3 = 72;
  variables:
    int time(ncl0=8);

    double lev(ncl1=72);

    float data2(ncl2=8, ncl3=72);

}
</pre>
  

<br></div>Thank you so much again.<span class="m_-2314809548532703998m_5645409875622966119HOEnZb"><font color="#888888"><br><br></font></span></div><span class="m_-2314809548532703998m_5645409875622966119HOEnZb"><font color="#888888">Dipti</font></span><div><div class="m_-2314809548532703998m_5645409875622966119h5"><br><div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 29, 2017 at 11:49 AM, Mary Haley <span dir="ltr">&lt;<a href="mailto:haley@ucar.edu" target="_blank">haley@ucar.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div style="font-size:small">Hi Dipti,</div><div style="font-size:small"><br></div><div style="font-size:small">I&#39;m not sure that addfile can recognize Windows type of directory paths with &quot;C:\....&quot;.</div><div style="font-size:small"><br></div><div style="font-size:small">Try using UNIX-style paths:</div><div style="font-size:small"><br></div><div style="font-size:small"><span style="font-size:12.8px">ncdf=addfile(&quot;/Users/</span><span style="font-size:12.8px">Downloads<wbr>/New\ folder/</span><a href="http://merra2_200.inst3_3d_asm_nv.19950830.nc/" style="font-size:12.8px" target="_blank">MERRA2_200.inst3_3d_asm<wbr>_Nv.19950830.nc</a><span style="font-size:12.8px">&quot;,&quot;c&quot;)</span><br style="font-size:12.8px"></div><div style="font-size:small"><br></div><div style="font-size:small">Note that I used forward slashes (&#39;/&#39;) instead of backward slashes (&#39;\&#39;).  However, since you have a space in one of your directory names----&quot;New folder&quot;---I put a backward slash in front of the space, just in case.</div><div style="font-size:small"><br></div><div style="font-size:small">--Mary</div><div style="font-size:small"><br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_-2314809548532703998m_5645409875622966119m_5583139399802477319h5">On Wed, Jun 28, 2017 at 5:55 PM, Dipti Sharma <span dir="ltr">&lt;<a href="mailto:sdipti596@gmail.com" target="_blank">sdipti596@gmail.com</a>&gt;</span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_-2314809548532703998m_5645409875622966119m_5583139399802477319h5"><div dir="ltr"><div>Dear NCL,<br><br></div><div>I am trying to write netCDF file for selected variable (wc, the vertical velocity here in this example) from MERRA-2 wind data. However, I always get an error message saying that<br> &quot; fatal:Could not create (C:\Users\Downloads\New folder\<a href="http://MERRA2_200.inst3_3d_asm_Nv.19950830.nc" target="_blank">MERRA2_200.inst3_3d_asm<wbr>_Nv.19950830.nc</a>)<br><br></div><div>Could someone please help me how to write the output file in netCDF. I want to have wc (time,lev) 2D data from 4D (time, lev,lat,lon). I just want the data at 1 location (1 lat and 1 lon).<br><br></div><div>Thank you very much in advance for your help.<br><br></div><div>Regards,<br><br></div><div>Dipti<br></div><div><br></div><div>Attached is the script that I used to read the data.<br></div><div><br></div><div><br>load &quot;$NCARG_ROOT/lib/ncarg/nclscri<wbr>pts/csm/gsn_code.ncl&quot;<br>load &quot;$NCARG_ROOT/lib/ncarg/nclscri<wbr>pts/csm/gsn_csm.ncl&quot;<br><br>; setfileoption(&quot;nc&quot;, &quot;FileStructure&quot;, &quot;Advanced&quot;)<br><br>fn = &quot;C:\Users\Downloads\New folder\MERRA2_200.inst3_3d_asm<wbr>_Nv.19950830.nc4&quot;<br>fn1 = &quot;C:\Users\Downloads\New folder\MERRA2_200.inst3_3d_gas<wbr>_Nv.19950830.nc4&quot;<br><br> fi = addfile(fn, &quot;r&quot;)<br>fi1= addfile(fn1, &quot;r&quot;)<br><br>; setfileoption(&quot;nc&quot;, &quot;Format&quot;,  &quot;NetCDF4Classic&quot;)<br><br> printVarSummary(fi)<br>;print(fi)<br><br> time = fi-&gt;time<br> lev = fi-&gt;lev<br> lat = fi-&gt;lat<br> lon = fi-&gt;lon<br> u = fi-&gt;U;(:,:,269,101)<br> v = fi-&gt;V;(:,:,269,101)<br> w=fi-&gt;OMEGA;(:,:,269,101)<br> p=fi-&gt;PL;(:,:,269,101)<br>den=fi1-&gt;AIRDENS;(:,:,269,101)<br>uh=u(:,:,269,101)<br>uv=v(:,:,269,101)<br>wv=w(:,:,269,101)<br>pv=PL(:,:,269,101)<br>denv=den(:,:,269,101)<br>;printVarSummary(u)<br>printVarSummary(denv)<br>printVarSummary(wv)<br>printMinMax(wv,True)  <br></div>;calculate vertical velocity<br><div>wc=(wv/(-9.8*denv))<br>printVarSummary(wc)<br>printMinMax(wc,True)<br>wc!0=&quot;time&quot;<br>wc!1=&quot;lev&quot;<br>;wc!2=&quot;lat&quot;<br>;wc!3=&quot;lon&quot;<br>datad = wc;(time|:,lev|:)<br>printVarSummary(datad)<br><br>;Writeout new netCDF file<br><br>wc&amp;time = time<br>wc&amp;lev = lev<br>ncdf=addfile(&quot;C:\Users\Downloa<wbr>ds\New folder\<a href="http://MERRA2_200.inst3_3d_asm_Nv.19950830.nc" target="_blank">MERRA2_200.inst3_3d_asm<wbr>_Nv.19950830.nc</a>&quot;,&quot;c&quot;)<br>ncdf-&gt;time= (/time/)<br>ncdf-&gt;lev=  (/lev/)<br>ncdf-&gt;data=(/datad/)<br>return<br></div><div>end<br></div><div><div class="gmail_extra"><br><br></div></div></div>
<br></div></div>______________________________<wbr>_________________<br>
ncl-talk mailing list<br>
<a href="mailto:ncl-talk@ucar.edu" target="_blank">ncl-talk@ucar.edu</a><br>
List instructions, subscriber options, unsubscribe:<br>
<a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" rel="noreferrer" target="_blank">http://mailman.ucar.edu/mailma<wbr>n/listinfo/ncl-talk</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div></div></div></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>