[ncl-talk] regridding with int2p_n_Wrap
Huanxin(Jessie) Zhang
huanxinz at mtu.edu
Thu May 12 08:02:56 MDT 2016
Hi Dennis,
Thank you so much for your reply and I really appreciate it!
[2] so the routine int2n_p itself doesn't have the constraint? if we want
to avoid the negatives values, should we manually set some constraints or
what is the best way to do it?
[3]============
printMinMax(OH_in,0) ; "
Chemically produced OH (kg/m3) : min=0 max=2.0197e-13 <********
****The latter number is numerically 0.0 ... No range!
You are essentially using a constant field ****
just wondering how do you know the max = 2.0197e-13 is a numerical issue? I
am little bit confused. Here It is the OH concentration in kg/m3. I just
did a quick conversion, typical OH concentration in the atmosphere is about
10e5 molecules/cm3, to covert it to kg/m3, it is OH_new=
(10e5/(6.022e23/17e-3)) * 1e6, then the magnitude of the new concentration
in kg/m3 is roughly about 1e-14 kg/m3, therefore, I think the max values is
not a numerical issue?
Thank you so much for your time!
Jessie
On Wed, May 11, 2016 at 7:05 PM, Dennis Shea <shea at ucar.edu> wrote:
> [1] re: "or if there are ways to conserve the mass"
>
> Yes, read the ESMF documentation. Use "conserve" method ... not bilinear
>
> "conserve" - this method will typically have a larger interpolation error
> than the previous two methods, but will do a much better job of preserving
> the value of the integral of data between the source and destination grid.
>
> [2] Before proceeding the general rule is that extrapolation is
> dangerous: frequently, VERY dangerous'
>
> The extrapolation used within int2p_n is simple linear extrapolation.
>
> The following is trivial example
>
> Impose a constraint: Let's say the 'val' quantity should be always >= 0.
>
> val(3) val at level(3) 100
> val(1) val at level(1) 0
>
> val(2)= (val(1) + val(3))/2 ; toy interploation val(2) = 50
>
> VAL(1) = 2*val(2)-val(3) ; here, VAL(1)=val(1)=0
> VAL(0) = 2*val(1)-val(2) ; extrapolate ...... VAL(0) = -50
>
> ==================================================---
> [3]
>
> Did you look at the numbers on your file? Basically all 0s
>
> [SNIP]
> ;######################
> ; Read variable
> ;######################
>
> OH_in = f->OH
>
> printVarSummary(OH_in)
>
> ================> source variable
> Variable: OH_in
> Type: float
> Total Size: 45287424 bytes
> 11321856 values
> Number of Dimensions: 4
> Dimensions and sizes: [time | 12] x [lev | 72] x [lat | 91] x [lon | 144]
> ^^^^^^^^
> Number Of Attributes: 7
> add_offset : 0
> scale_factor : 1 <=== no scaling
>
> ============
> printMinMax(OH_in,0) ; "
> Chemically produced OH (kg/m3) : min=0 max=2.0197e-13 <********
>
> ****The latter number is numerically 0.0 ... No range!
> You are essentially using a constant field ****
> =================
> ;######################
> ; Regrid Horizontally
> ;######################
>
> OH_mid = ESMF_regrid_with_weights(OH_in,wgtFileName,Opt)
> printVarSummary(OH_mid)
> printMinMax(OH_mid,0)
>
> ---
> remap : remapped via ESMF_regrid_with_weights: Bilinear remapping
> (0) Chemically produced OH (kg/m3) : min=0 max=1.45516e-13
>
> No negative sign but numerically all 0
> ----
> ;########################
> ; Interpolate Vertically
> ;########################
> ; Linear interpolation, extrapolate near surface <=========
> OH_out = int2p_n_Wrap(pMid, OH_mid, pOut, -1,1)
> printVarSummary(OH_out)
> printMinMax(OH_out,0)
> [SNIP]
>
> Variable: OH_out
>
> Number of Dimensions: 4
> Dimensions and sizes: [time | 12] x [lev | 40] x [lat | 90] x [lon | 144]
> ^^^^^^^^^
> Coordinates:
> time: [ 0..8016]
> lat: [ -90.. 90]
> lon: [-178.75..178.75]
>
> (0) Chemically produced OH (kg/m3) : min=-1.18855e-18 max=1.39631e-13
>
> That -1.188e-18 is basically a numerical issue ... it is 0
>
>
>
>
> On Tue, May 10, 2016 at 8:38 PM, Huanxin(Jessie) Zhang <huanxinz at mtu.edu>
> wrote:
>
>> Hi, All
>>
>> I have tried to do some vertical regridding work with NCL function
>> int2p_n_wrap. I am trying to regrid the OH concentration (in kg/m3) from
>> MERRA 2x2.5 grid (144x91x72) to GISS ModelE F40 (144x90x40). However, I
>> have found some negative values in the regridded grid when I set linlog =
>> -1. The negative values only happen on the first two levels near the
>> surface and the rest of the levels seem to be fine. I think it is mainly
>> because of the extrapolation near the surface. If I set linlog = 1, there
>> will be some missing values in the first several levels near the surface
>> then. I also tried to regrid other units such as mixing ratio and the same
>> thing happens. I am not sure if it is because that the units can not just
>> be interpolated or if there are ways to conserve the mass? I just started
>> to learn how to use NCL and I couldn't figure out how to solve this. If
>> anyone has some comments on how to address this, I would really appreciate
>> it!
>>
>> Attached is the NCL script used and I have uploaded the files needed to
>> run the script to *ftp.cgd.ucar.edu/incoming
>> <http://ftp.cgd.ucar.edu/incoming>.* These files are:
>> OH_3Dglobal.geos5.72L.2x25.hemco.nc; pressure.MERRA.nc;
>> pressure.GCAP_2000s.F40.nc.
>>
>> p.s. I am using NCL version 6.3.0 and the system I am on is linux
>> RHEL6.6x86_64.
>>
>> Thank you so much for your time!
>> Jessie
>> --
>> Huanxin (Jessie) Zhang
>> PhD Candidate in Environmental Engineering-Atmospheric Chemistry Modeling
>> Dept. of Geological and Mining Engr. & Sciences
>> Michigan Technological University
>> 1400 Townsend Drive, Houghton, MI, 49931
>> Email: huanxinz at mtu.edu <huanxinz at mtu.edu>
>>
>> _______________________________________________
>> ncl-talk mailing list
>> ncl-talk at ucar.edu
>> List instructions, subscriber options, unsubscribe:
>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>
>>
>
--
Huanxin (Jessie) Zhang
PhD Candidate in Environmental Engineering-Atmospheric Chemistry Modeling
Dept. of Geological and Mining Engr. & Sciences
Michigan Technological University
1400 Townsend Drive, Houghton, MI, 49931
Email: huanxinz at mtu.edu <huanxinz at mtu.edu>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20160512/26355f63/attachment.html
More information about the ncl-talk
mailing list