[ncl-talk] Replacement of data with a constant value
Dennis Shea
shea at ucar.edu
Mon Jul 15 12:05:36 MDT 2019
As noted in a previous ncl-talk question, the most important rule of data
processing is "look at your data".
This is user responsibility.
+++ ON THE HDF FILE
*short *Optical_Depth_047_grid1km ( Orbits_grid1km, YDim_grid1km,
XDim_grid1km )
coordinates : GridLat_grid1km, GridLon_grid1km
hdfeos_name : Optical_Depth_047
projection : Sinusoidal
* valid_range : ( -100, 5000 ) ; these pertain to the "short"
numerical type _FillValue : -28672 ; type "short"*
unit : none
* add_offset : 0 scale_factor : 0.001*
long_name : AOD at 0.47 micron
+++ AFTER unpacking via *short2flt, the*
*V*ariable: x <=== Optical_Depth_047_grid1km
Type:* float*
[SNIP]
long_name : AOD at 0.47 micron
[snip]
_FillValue : -28672 *<== these are now type float*
* valid_range : ( -0.1, 5 ) <== these are now type float in the
unpacked range*
Some code to add to your script.
f0 = *addfile*(diri+fili(0)+".he2", "r") ; .he2 causes NCL to add
lat/lon arrays
x = *short2flt*( f0->$vNam$ ) ; ( Orbits_grid1km, YDim_grid1km,
XDim_grid1km )
*printVarSummary*(x)
*printMinMax*(x,0)
print("=============================")
nmsg = *num(ismissing*(x))
ngood= *num*(*.not.ismissing*(x))
npts = nmsg+ngood
npc = (ngood/*tofloat*(npts))*100
print("nmsg ="+nmsg)
print("ngood="+ngood)
print("npc (%)="+npc)
print("=============================")
; *****************************************************************
nx = num(x.ge. -0.1 .and. x.le.5.0) ; values after unpacking
; within allowed range
print("nx="+nx+": this should match ngood="+ngood) ; ie: there are no out
of range values
X01 = where(x.ge. -0.1 .and. x.le.5.0, 1, 0)
printVarSummary(X01)
n1n = num(X01.eq.1)
n1s = sum(X01)
print("n1n="+n1n+" n1s="+n1s)
print("=============================")
On Mon, Jul 15, 2019 at 10:27 AM Herb, Jason <jherb at albany.edu> wrote:
> Dennis,
>
>
> I have attempted to make the suggested changes and received even more
> errors despite creating an additional variable..... errors can be found
> below below. I have attached full code and the file that I am working with
> to get the plot.
>
>
> 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/ for more details.
> (0) nfil=1
> fatal:Number of dimensions on right hand side do not match number of
> dimension in left hand side
> fatal:["Execute.c":8640]:Execute: Error occurred at or near line 106 in
> file MCD19A2.Jason2.ncl
>
> fatal:syntax error: procedure bin_sum expects 7 arguments, got 8
> fatal:error at line 128 in file MCD19A2.Jason2.ncl
>
> fatal:Syntax Error in block, block not executed
> fatal:error at line 133 in file MCD19A2.Jason2.ncl
>
> (0)
> =====> Wall Clock Elapsed Time: Main Sum Loop: nlat=3600, mlon=7200: 0
> seconds <=====
>
> fatal:Variable (f) is undefined
> fatal:["Execute.c":8640]:Execute: Error occurred at or near line 151 in
> file MCD19A2.Jason2.ncl
>
> fatal:Variable (f) is undefined
> fatal:["Execute.c":8640]:Execute: Error occurred at or near line 157 in
> file MCD19A2.Jason2.ncl
>
> fatal:syntax error: procedure gsn_panel expects 4 arguments, got 3
> fatal:error at line 215 in file MCD19A2.Jason2.ncl
>
> fatal:Syntax Error in block, block not executed
> fatal:error at line 217 in file MCD19A2.Jason2.ncl
>
>
> ------------------------------
> *From:* Dennis Shea <shea at ucar.edu>
> *Sent:* Monday, July 15, 2019 11:18:35 AM
> *To:* Herb, Jason
> *Cc:* ncl-talk at ucar.edu
> *Subject:* Re: [ncl-talk] Replacement of data with a constant value
>
> *http://www.ncl.ucar.edu/Document/Functions/Built-in/where.shtml*
> <http://www.ncl.ucar.edu/Document/Functions/Built-in/where.shtml>
> *http://www.ncl.ucar.edu/Document/Functions/Built-in/num.shtml*
> <http://www.ncl.ucar.edu/Document/Functions/Built-in/num.shtml>
>
> I am not sure where you got the form you are using for '*where*'.
> In no example is there an 'x=1' style for any of the arguments.
>
> Also, given your description, I'm not sure that you want to use '*where'*
>
> x = *short2flt*( f->$vNam$ ) ; ( Orbits_grid1km,
> YDim_grid1km, XDim_grid1km )
> nx = *num*(x.gt.-100 .and. x.lt.5000) ; # of values bwtweem -100
> and 5000
> ===
>
> x01 = *where*(x.gt.-100 .and. x.lt.5000, 0, 1) ;
> create an array of 0 and 1
> n1 = *num*(x.eq.1) ; also: *sum*(x)
>
> On Mon, Jul 15, 2019 at 8:24 AM Herb, Jason via ncl-talk <
> ncl-talk at ucar.edu> wrote:
>
> Hello,
>
>
> I am working with the MCD19A2 data. In order to see the data extent for
> any given time period, 1 day, 1 month, 1 year, or any selected time period
> we need to assess.I have a binning code to add the points, however the
> points that are being added are the original AOD values in the hdf files.
> In order to do this I am attempting to replace all data points in the hdf
> file to " 1 " if there is data that is within the range flag of the data
> file. I have attempted to use the "where" function to make these
> replacements however I keep getting error bugs coming up. The portion of
> the script can be found below.
>
>
> Script error messages
>
> fatal:syntax error: line 120 in file MCD19A2.Jason1.ncl before or near =
> x1 = where(x.gt.-100 .and. x.lt.5000, x =
> ---------------------------------------------^
>
> fatal:Syntax Error in block, block not executed
> fatal:error at line 136 in file MCD19A2.Jason1.ncl
>
> (0)
> =====> Wall Clock Elapsed Time: Main Sum Loop: nlat=3600, mlon=7200: 0
> seconds <=====
>
> fatal:Variable (f) is undefined
> fatal:["Execute.c":8640]:Execute: Error occurred at or near line 154 in
> file MCD19A2.Jason1.ncl
>
> fatal:Variable (f) is undefined
> fatal:["Execute.c":8640]:Execute: Error occurred at or near line 159 in
> file MCD19A2.Jason1.ncl
>
> warning:ContourPlotInitialize: no valid values in scalar field;
> ContourPlot not possible:[errno=1101]
> warning:ContourPlotInitialize: no valid values in scalar field;
> ContourPlot not possible:[errno=1101]
>
>
> Script coding
> tStrt = systemfunc("date") ; time the loop (wall clock)
>
> do nf=0,nfil-1 ; loop over all files
> print(nf+" "+fili(nf))
> f = addfile(diri+fili(nf)+".he2", "r") ; .he2 causes NCL to
> add lat/lon arrays
> ; read data
> lat2d = f->GridLat_grid1km
> lon2d = f->GridLon_grid1km
>
> x = short2flt( f->$vNam$ ) ; ( Orbits_grid1km,
> YDim_grid1km, XDim_grid1km )
> ;*************** attmeping to change any AOD data other then N/A to 1 to
> count up
> x1 = where(x.gt.-100 .and. x.lt.5000, x = 1)
> delete( x )
> x = x1
>
> Thank you for you time
>
> Jason
>
>
> _______________________________________________
> 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/20190715/912ba2f7/attachment.html>
More information about the ncl-talk
mailing list