[ncl-talk] Daily averaged ozone concentration

Dennis Shea shea at ucar.edu
Thu Aug 10 21:34:11 MDT 2017


re:



*fatal:Dimension sizes of left hand side do not match right hand side
fatal:["Execute.c":8640]:Execute: Error occurred at or near line 99 in file
wrf_hrly_to_daily.ncl*

Line 99:
*fnc->o3DayAvg = (o3DayAvg) *

The (...) should not affect the array. Actually I have no idea why used the
(...). I looked at the output and I think the issue is related to the first
two lines.

Replace

  fnc->Time     = Time
  fnc->Times    = Times                       ; original character
  fnc->XLAT     = f[0]->XLAT(0,:,:)           ; no 'Time' dimension
  fnc->XLONG    = f[0]->XLONG(0,:,:)
  fnc->o3DayAvg = (o3DayAvg)

With

  fnc->o3DayAvg = o3DayAvg           ; write meta data associated with
daily avg
  fnc->XLAT         = f[0]->XLAT(0,:,:)  ; no 'Time' dimension
  fnc->XLONG     = f[0]->XLONG(0,:,:)

========

re: the plot

You must look at the data.
The lat/lon arrays are not global yet you have a global plot background.
That should provide you with some information to investigate.


*WRF files place the necessary graphic projection information with the file
attributes.That is why the WRF file's attributes were copied to the
'o3.day.nc <http://o3.day.nc>' file.*

ncl 0> f = addfile("o3.day.nc","r")
ncl 1> xlat = f->XLAT
ncl 2> printMinMax(xlat,0)

(0)     LATITUDE, SOUTH IS NEGATIVE (degree_north) : min=24.4541
max=52.7485

ncl 3> xlon = f->XLONG
ncl 4> printMinMax(xlon,0)

(0)     LONGITUDE, WEST IS NEGATIVE (degree_east) : min=-115.097
max=-74.9647

ncl 5> print(f)

variable: f
Type: file
filename:       o3.day
path:   o3.day.nc
   file global attributes:
[snip]










*MAP_PROJ_CHAR : Lambert Conformal      MAP_PROJ : 1...      POLE_LON :
0      POLE_LAT : 90      STAND_LON : -95.031      MOAD_CEN_LAT :
39.072      TRUELAT2 : 39.072      TRUELAT1 : 39.072      CEN_LON :
-95.03101      CEN_LAT : 39.072*
[snip]



============================================





On Wed, Aug 9, 2017 at 7:22 PM, Bucaram Carbo, Carlos <
carlos.bucaramcarbo at und.edu> wrote:

>
> HI Dennis,
>
>
> Thank for your quick reply and feedback. Attached you will see the
> *wrf_hrly_to_daily.ncl* script we used to run the full set of data for
> one day, as well as the small variant we used to run only one 1-hour of
> data. As you might see from the corresponding* wrf_hrly_to_daily.out *files,
> an error occurred when we processed the full 24-hour set of *wrfout_d01**
> files. That error reads as follows:
>
>
>
>
> *fatal:Dimension sizes of left hand side do not match right hand side
> fatal:["Execute.c":8640]:Execute: Error occurred at or near line 99 in file
> wrf_hrly_to_daily.ncl*
>
>
> Line 99 of the *wrf_hrly_to_daily.ncl *reads as follows:
>
>
> *fnc->o3DayAvg = (o3DayAvg) *
>
>
> On another note when we ran the same script to process only one 1--hour
> *wrfout_d01* file, the out file completes the running of the script with
> no issues. Then the *o3.day.nc <http://o3.day.nc>* is created correctly,
> and thus we visualize an image similar to the attached one.
>
>
> Also we appreciate your advise regarding the commands for
> the visualization script. We might get to work on that as soon as the 24
> 1-hour *wrfout_d01** gridded o3 concentration values are correspondingly
> gridded on the daily average 1-frame file.
>
>
> Once again thanks for your help and feedback on the above issue,
>
>
>
> Carlos
>
>
> ------------------------------
> *From:* Dennis Shea <shea at ucar.edu>
> *Sent:* Monday, August 7, 2017 7:42:37 PM
> *To:* Bucaram Carbo, Carlos
> *Cc:* ncl-talk at ucar.edu
> *Subject:* Re: [ncl-talk] Daily averaged ozone concentration
>
> Your original email had:
>
> "find a script that would read 24 individual 1-hour wrfout_d01* output
> files for every day of an entire month of the year"
>
> [1]++++++++++++++++++++++++++++++++++++++++++++++
> Did anybody look at the .out file?
>
>
>   filw = systemfunc("cd "+dirw+" ; ls wrfout_d01_2010-07-15_*.nc"
>   pthw = dirw+filw
>
> ;---https://www.ncl.ucar.edu/Document/Functions/Built-in/addfiles.shtml
> addfiles - University Corporation for Atmospheric Research
> <https://www.ncl.ucar.edu/Document/Functions/Built-in/addfiles.shtml>
> www.ncl.ucar.edu
> NCL Home > Documentation > Functions > File I/O addfiles. Creates a
> reference that spans multiple data files. Prototype function addfiles (
> file_path [*] : string ...
>
>   f    = addfiles(pthw, "r")                    ; 'f' is type list
>
>   Times= f[:]->Times                            ; char Times(Time,
> DateStrLen)
>   Times_str= tostring( Times )
>   print(Times_str)
>
> ===========
> You only have **one** time step. Likely only one file!
> ===========
> Variable: Times_str
> Type: string
> Total Size: 8 bytes
>             1 values
> Number of Dimensions: 1
> Dimensions and sizes:   [1]    <========
> Coordinates:
> (0)     2010-07-15_19:00:00
> (0)     -----
>
> =====
> I provided an outline of how to proceed. The 'file name string' was a
> place holder for you to change for your needs
> You should have used something like the following  unix style expansions
> which NCL understands.
>
>     wrfout_d01_2010-*00.nc        ; all  wrfout_d01_2010 files for 2010
> that end with 00.nc
> or
>    wrfout_d01_2010-0[6-8]*00.nc     ; all wrfout_d01_2010 files for
> June-Aug that end with 00.nc
> or
>    wrfout_d01_*00.nc     ; all wrfout_d01 files that end with 00.nc
>
>   filw = systemfunc("cd "+dirw+" ; ls wrfout_d01_2010-*00.nc"
>   pthw = dirw+filw
>   print(pthw)      ; <====== LOOK at this
>
>
>   f    = addfiles(pthw, "r")                    ; 'f' is type list
>   Times= f[:]->Times                            ; char Times(Time,
> DateStrLen)
>   Times_str= tostring( Times )
>   print(Times_str)
>
> exit  ;
> ========
>
> [2]+++++++++++++++++++++++++++++++++++++++++++++++++++++
>  The netCDF file looks fine. It has only one time step because you
> provided only one file.
>
> ========
> [3] I did not provide any graphic code. I speculate you are using some of
> the code you included with the original post. This included u10/v10 data
> which was overlaid onto O3. There is no u10/v10 on the daily mean o3 file.
> If you need a daily mean u10/v10, you will have to add more code to the NCL
> script. to calculate and  output daily mean u10/v10.
>
> The plot code with the original email used:  It used the following to plot
> the o3 value.
>
>
> plot = wrf_contour(a,wks,o3(nl,:,:),res)   ; <=== nl ... level index
>
> ===
>
> Your scalar code for o3 would be
>
>   a = addfile("o3.day.ncl", "r")
>
>   plot = wrf_contour(a,wks,o3(nt,:,:),res)    ; nt refers to the daily
> time index
>
> =================================
>
> ALl of the necessary plot information is on the o3.day.nc file as file
> attributes.
>
>
>
> On Mon, Aug 7, 2017 at 5:03 PM, Bucaram Carbo, Carlos <
> carlos.bucaramcarbo at und.edu> wrote:
>
>>
>> Hi Dennis,
>>
>>
>> Thank you for your reply, and comments. We proceeded as you recommended,
>> and then tried to visualize the output on a second NCL script. The end
>> result could be seen on the attached .pdf file. A few thoughts on what we
>> have found out so far:
>>
>>
>>
>>    1. We can process a single *wrfout_d01** file at a time, with the *Wrf_hrly_to_daily.ncl
>>    *script. However when we have tried to process a *wrfout_d01** file
>>    with multiple hours of data, we observe errors on the terminal screen and
>>    virtually no data on the resulting *o3.day.nc <http://o3.day.nc>*
>>    netcdf file. Also the script will not read multiple *wrfout_d01**
>>    single hour data files, and just pick and process the very last hour of
>>    such batch of data files.
>>    2. The visual output is very appealing, but it would be desirable to
>>    have a visual representation within the domain area of study
>>
>>
>> Attached you will find the NCL scripts we have used, the resulting
>> o3.day.nc netcdf file, as well as the .pdf post-processed image. Also we
>> would be glad to share the *wrfout_d01* *files we have used so far,
>> through Dropbox, if you think it might help.
>>
>>
>> As before we do appreciate your help and feedback with this issue.
>>
>>
>> Best regards,
>>
>>
>>
>> Carlos
>> ------------------------------
>> *From:* Dennis Shea <shea at ucar.edu>
>> *Sent:* Friday, August 4, 2017 9:23:24 PM
>>
>> *To:* Bucaram Carbo, Carlos
>> *Cc:* ncl-talk at ucar.edu
>> *Subject:* Re: [ncl-talk] Daily averaged ozone concentration
>>
>> After
>>
>>   filAtt = 0
>>   filAtt at title = "O3: Daily Mean"
>>   filAtt at Conventions = "None"
>>   filAtt at creation_date = systemfunc("date")
>>   filAtt at NCL    = get_ncl_version()
>>
>> Add the following line:
>>
>>   copy_VarAtts(f[0], filAtt)                  ; copy WRF file attributes
>>
>> Cheers
>> D
>>
>>
>> On Fri, Aug 4, 2017 at 7:25 PM, Bucaram Carbo, Carlos <
>> carlos.bucaramcarbo at und.edu> wrote:
>>
>>>
>>> Hi Dennis,
>>>
>>>
>>> Thank you for your quick reply. Upon your suggestion we downloaded the
>>> pre-compiled binaries of NCl 6.4.0 for our Linux distribution configuration
>>> , openSUSE Leap 42.1_x86_64, and thankfully got it to work.
>>>
>>>
>>> We also used your script and and it work very well to give us an average
>>> of the ground level o3 values on a new netcdf file, as well as on the
>>> terminal screen. However for some reason the new NCL image appear to revert
>>> to polar coordinates, and not to the original Lambert Conformal ones of the
>>> original wrfout_d01* file.
>>>
>>>
>>> Below you will see the message which we received on our terminal screen:
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> *Bucaram at linux-vx3k:~/Documents2/ncl_ncarg-6.4.0.Linux_CentOS7.3_x86_64_nodap_gnu485/bin>
>>> ./ncl ozone_script.ncl  Copyright (C) 1995-2017 - All Rights Reserved
>>>  University Corporation for Atmospheric Research  NCAR Command Language
>>> Version 6.4.0  The use of this software is governed by a License Agreement.
>>>  See http://www.ncl.ucar.edu/ <http://www.ncl.ucar.edu/> for more details. **(0)
>>> wrf_map: Error: no MAP_PROJ attribute in input file*
>>>
>>> It appears that since a map projection is not found on the newly produce
>>> d *o3.day.nc <http://o3.day.nc>* file, the NCL post-processed image
>>> shows (North) polar coordinates.
>>>
>>> Also attached you will find the script as well as the pdf post-processed
>>> file from NCL 6.4.0. Please let me know if you think it might be possible
>>> to include the original map projection on the post-processed image, so as
>>> to visualize the average ground level o3 concentration in the original
>>> domain.
>>>
>>> Thanks again for your help and best regards,
>>>
>>>
>>> Carlos
>>>
>>> ------------------------------
>>> *From:* Dennis Shea <shea at ucar.edu>
>>> *Sent:* Thursday, August 3, 2017 8:38:11 PM
>>> *To:* Bucaram Carbo, Carlos
>>> *Cc:* ncl-talk at ucar.edu
>>> *Subject:* Re: [ncl-talk] Daily averaged ozone concentration
>>>
>>> What version of NCL do you have?
>>>
>>> The attached script  uses a 6.4.0 function: calculate_daily_values
>>> It is untested ... don't have multiple hourly files.
>>>
>>> https://www.ncl.ucar.edu/Document/Functions/Contributed/calc
>>> ulate_daily_values.shtml
>>> calculate_daily_values - CISL's NCAR Command Language (NCL)
>>> <https://www.ncl.ucar.edu/Document/Functions/Contributed/calculate_daily_values.shtml>
>>> www.ncl.ucar.edu
>>> NCL Home > Documentation > Functions > General applied math
>>> calculate_daily_values. Calculate daily values [avg, sum, min, max] from
>>> high frequency temporal values.
>>>
>>>
>>> On Thu, Aug 3, 2017 at 1:44 PM, Bucaram Carbo, Carlos <
>>> carlos.bucaramcarbo at und.edu> wrote:
>>>
>>>>
>>>> Dear NCL Support,
>>>>
>>>>
>>>> We are trying to find a script that would read 24 individual 1-hour
>>>> wrfout_d01* output files for every day of an entire month of the year, then average
>>>> the individual hourly ground level ozone (o3) concentrations data over each
>>>> daily 24-hour period (at lowest level nl=0), and write a new netcdf file
>>>> with an gridded o3 average concentration for that specific day. The end
>>>> result would be a visual representation of a gridded o3 average
>>>> concentration for any specific day, if possible.
>>>>
>>>>
>>>> When searching on previous archives we found the following response to
>>>> a somewhat similar inquire back in 2011, but we are not sure if it would
>>>> apply in our case:
>>>>
>>>>
>>>> https://www.ncl.ucar.edu/Support/talk_archives/2011/1358.html
>>>>
>>>> NCL:
>>>>
>>>>     x3 = f->X ; (time,lat,lon) time is 3-hrly
>>>>     dimx3 = dimsizes(x3)
>>>>     ntim3 = dimx3(0)
>>>>
>>>>     nsd = 8 ; number of samples per day
>>>>
>>>>     xday = x3(::nsd,:,:) ; create array with meta data
>>>>
>>>>     do nt=0,ntim3-1,nsd
>>>>        xday(nt/nsd,:,:) = (/ dum_avg_n(nt:nt+nsd-1,:,:) /)
>>>>     end do
>>>>
>>>>     diro = "./" ; output directory
>>>>     filo = "day.nc"
>>>>     system ("/bin/rm -f "+diro+filo)
>>>>     fnc = addfile (diro+filo, "c")
>>>>
>>>>     filAtt = 0
>>>>     filAtt at title = "..."
>>>>     filAtt at Conventions = "None"
>>>>     filAtt at creation_date = systemfunc("date")
>>>>     fileattdef( fnc, filAtt ) ; create file attributes
>>>>     filedimdef(ncdf,"time",-1,True) ; make time UNLIMITED
>>>>     fnc->XDAY = xday
>>>>
>>>> Also attached you will find the current *wrf_ozone.ncl* script which
>>>> we  use to post-process each individual 1-hour wrfout_d01* file for o3,
>>>> as a well as a sample post-processed image for a specific day and hour of
>>>> 2010.
>>>>
>>>> Any specific direction from your side regarding this issue would be
>>>> greatly appreciated.
>>>>
>>>> With best regards,
>>>>
>>>>
>>>> Carlos J. Bucaram
>>>> Graduate Research Assistant
>>>> University of North Dakota
>>>> Department of Chemical Engineering
>>>>
>>>> Harrington Hall Room 223
>>>> 241 Centennial Dr., Grand Forks, ND
>>>>
>>>> 58202-7101
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> ncl-talk mailing list
>>>> ncl-talk at ucar.edu
>>>> List instructions, subscriber options, unsubscribe:
>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20170810/1773537a/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: plot_o3.ncl
Type: application/octet-stream
Size: 3947 bytes
Desc: not available
Url : http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20170810/1773537a/attachment-0001.obj 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: o3_day_mean.000.png
Type: image/png
Size: 81158 bytes
Desc: not available
Url : http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20170810/1773537a/attachment-0002.png 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: wrf.o3_day_mean.000.png
Type: image/png
Size: 146628 bytes
Desc: not available
Url : http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20170810/1773537a/attachment-0003.png 


More information about the ncl-talk mailing list