Re: triple2grid: variable values are missing after using function?

From: Adam Phillips <asphilli_at_nyahnyahspammersnyahnyah>
Date: Fri, 12 Jun 2009 10:53:27 -0600

Hi Bold,
I am not sure what you mean when you ask whether the linint2_Wrap
function allows you to do nearest neighbor. I talked to someone here who
has alot of experience regridding different fields at different temporal
resolutions, and asked what function should be used. The answer, of
course, depends on the resolution of the input/output data, as well as
what type of field you are regridding. To summarize what was said: For
precipitation data, especially on smaller timescales on the order of an
hour or day, on the order of less than one degree, area_hi2lores is
definitely the way to go. (High resolution precipitation data, and
precipitation data in general, tends to be spottier in spatial coverage,
and area_hi2lores will handle that interpolation much better.) For more
continuous fields like temperature, winds, heights, etc, at all
timescales and resolutions, linint2_Wrap is likely to run faster, and
would be a better way to go.

Based on that, it sounds like my original recommendation to use
linint2_Wrap was incorrect. As you are interpolating precipitation ( a
non-continuous field ) from a rather high-resolution grid, area_hi2lores
is what you should use.
Adam

B N wrote:
> Hi Adam. Thank you for suggesting that I use linint2_Wrap.
> But does allow me to do nearest neighbor?
> But a few other recent ncl_talk postings mention the function "area_hi2lores."
> would area_hi2lores work just like linint2? I am trying to go from a
> higher resolution to a lower resolution.
>
> A little confused.
> Bold
>
> On Thu, Jun 11, 2009 at 3:34 PM, Adam Phillips<asphilli_at_ucar.edu> wrote:
>> Hi Bold,
>> triple2grid is meant to be used when you want to put randomly spaced data
>> (say, station data) onto a grid. As you are simply regridding from one grid
>> to another, I would use linint2_Wrap:
>> http://www.ncl.ucar.edu/Document/Functions/Contributed/linint2_Wrap.shtml
>>
>> If the input field was global, didn't have any missing values, and was not a
>> field bounded by 0 (for example, precipitation), I would use one of the
>> spherical harmonic functions:
>> http://www.ncl.ucar.edu/Document/Functions/regrid.shtml
>> (All the f2* and g2* functions are spherical harmonic regridding functions.)
>> Good luck, and welcome to NCL.
>> Adam
>>
>> B N wrote:
>>> Hi. NCL beginner here. I have spent an enormous amount of time going
>>> through beginner lessons to use NCL for my research. I like it.
>>> Unfortunately, I've encountered my first error that I can't figure
>>> out. I have searched previous posts
>>> and I don't see that others have encountered
>>> this with triple2grid. I don't see any.
>>>
>>> I use the triple2grid function to regrid 1/4 degree precipitation data
>>> (CMORPH) to a 1/2 degree grid (ncl 59>, below). After I regrid the
>>> data, my data is missing. I don't know why.
>>> ncl 62> printMinMax(rNEW,True)
>>> (0)
>>> (0) min=-999 max=-999
>>>
>>> Could I have some help with understanding this?
>>> Thank you for your time.
>>> -Bold Khan
>>>
>>> Fu School of Engineering,
>>> Earth and Environmental Engineering
>>> Columbia University
>>>
>>> mongol :CMORPH gkhan$ ncl
>>> Copyright (C) 1995-2009 - All Rights Reserved
>>> University Corporation for Atmospheric Research
>>> NCAR Command Language Version 5.1.0
>>> The use of this software is governed by a License Agreement.
>>> See http://www.ncl.ucar.edu/ for more details.
>>> ncl 0> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
>>> ncl 1> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
>>> ncl 2> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
>>> ncl 3> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
>>> ncl 4> load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"
>>> ncl 5> a = addfile("cmorph_SOP3_.25nc","r")
>>> ncl 6> rain_new = a->p_rate
>>> ncl 7> rain_new=rain_new(:,::-1,:)
>>> ncl 8> printVarSummary(rain_new)
>>>
>>>
>>> Variable: rain_new
>>> Type: float
>>> Total Size: 663552000 bytes
>>> 165888000 values
>>> Number of Dimensions: 3
>>> Dimensions and sizes: [time | 240] x [lat | 480] x [lon | 1440]
>>> Coordinates:
>>> time: [2.00609e+09..2.006093e+09]
>>> lat: [-59.875..59.875]
>>> lon: [0.125..359.875]
>>> Number Of Attributes: 3
>>> units : mm/hr
>>> long_name : CMORPH
>>> _FillValue : -9999
>>> ncl 9> printMinMax(rain_new,True)
>>> (0)
>>>
>>> (0) CMORPH: min=0 max=40.3708
>>> ncl 10> nlat = 480
>>> ncl 11> mlon = 1440
>>> ncl 12> time = ispan(1,dimsizes(rain_new(:,0,0)),1)
>>> ncl 13> lat = rain_new(0,:,0)
>>> ncl 14> lon = rain_new(0,0,:)
>>> ncl 15> lat!0 = "lat"
>>> ncl 16> lat&lat = lat
>>> ncl 17> lat_at_units = "degrees_north"
>>> ncl 18> lon!0 = "lon"
>>> ncl 19> lon&lon = lon
>>> ncl 20> lon_at_units = "degrees_east"
>>> ncl 21> ylat = lat
>>> ncl 22> xlon = lon
>>> ncl 23> ylat!0 = "Lat"
>>> ncl 24> xlon!0 = "Lon"
>>> ncl 25> lat2d = new((/480,1440/),float) ; CMORPH documentation
>>> ncl 26> lon2d = new((/480,1440/),float)
>>> ncl 27> lat2d!0 = "Lat"
>>> ncl 28> lat2d!1 = "Lon"
>>> ncl 29> lon2d!0 = "Lat"
>>> ncl 30> lon2d!1 = "Lon"
>>> ncl 31> lat2d_at_units = "degrees_north"
>>> ncl 32> lon2d_at_units = "degrees_east"
>>> ncl 33> ;=============; 2d grid coordinates should match the rain array.
>>> ncl 34> do i=0,479
>>> ncl 35> lon2d(i,:) = xlon(:)
>>> ncl 36> end do
>>> ncl 37> do i=0,1439
>>> ncl 38> lat2d(:,i) = ylat(:)
>>> ncl 39> end do
>>> ncl 40> NLAT = 240
>>> ncl 41> MLON = 720
>>> ncl 42> Lat = fspan(59.875,-59.875,240) ; lat for regridding to 0.5 degree
>>> ncl 43> Lon = fspan(0.125,359.875,720) ; lon for regridding to 0.5 degree
>>> ncl 44> Lat!0 = "lat"
>>> ncl 45> Lat_at_units = "degrees_north"
>>> ncl 46> Lat&lat = Lat
>>> ncl 47> Lon!0 = "lon"
>>> ncl 48> Lon_at_units = "degrees_east"
>>> ncl 49> Lon&lon = Lon
>>> ncl 50> rNEW = new
>>>
>>> ((/dimsizes(rain_new(:,0,0)),NLAT,MLON/),typeof(rain_new),getFillValue(rain_new))
>>> ;New rain array
>>> ncl 51> rNEW!0 = "time"
>>> ncl 52> rNEW&time = time
>>> ncl 53> rNEW!1 = "lat"
>>> ncl 54> rNEW&lat = Lat
>>> ncl 55> rNEW!2 = "lon"
>>> ncl 56> rNEW&lon = Lon
>>> ncl 57> print("Regridding with Triple2Grid Now.")
>>> (0) Regridding with Triple2Grid Now.
>>> ncl 58> do ii = 0,dimsizes(rNEW(:,0,0))-1 ;;;;;;Should be 0,239
>>> ncl 59> rNEW(ii,:,:) = triple2grid(ndtooned(lon2d), ndtooned(lat2d),
>>> ndtooned(rain_new(ii,:,:)),Lon,Lat,False)
>>> ncl 60> end do
>>> ncl 61> printVarSummary(rNEW)
>>> (0)
>>> (0) min=-999 max=-999
>>> ncl 63> exit
>>> _______________________________________________
>>> ncl-talk mailing list
>>> List instructions, subscriber options, unsubscribe:
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>> --
>> --------------------------------------------------------------
>> Adam Phillips asphilli_at_ucar.edu
>> National Center for Atmospheric Research tel: (303) 497-1726
>> ESSL/CGD/CAS fax: (303) 497-1333
>> P.O. Box 3000
>> Boulder, CO 80307-3000 http://www.cgd.ucar.edu/cas/asphilli
>>

-- 
--------------------------------------------------------------
Adam Phillips			             asphilli_at_ucar.edu
National Center for Atmospheric Research   tel: (303) 497-1726
ESSL/CGD/CAS                               fax: (303) 497-1333
P.O. Box 3000				
Boulder, CO 80307-3000	  http://www.cgd.ucar.edu/cas/asphilli
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Fri Jun 12 2009 - 10:53:27 MDT

This archive was generated by hypermail 2.2.0 : Mon Jun 15 2009 - 08:53:05 MDT