Re: grid interpolation

From: Dennis Shea <shea_at_nyahnyahspammersnyahnyah>
Date: Tue Apr 23 2013 - 17:04:57 MDT

I speculate that what you want to do is:

invar = infile->cl_R_low(0,:,:)
printVarSummary(invar)

invar = invar(::-1,:)
printVarSummary(invar) ; note the latitude range

invar = lonFlip(invar)
printVarSummary(invar) ; note the longitude range

====
When NCL imports a variable via addfile (addfiles),
it is brought into a data structure where the
rectilinear coordinates are 'part' of the variable.
They can be accessed vi the & syntax.
====

outvar = linint2_Wrap(invar&lon,invar&lat,invar,True,outlon,outlat,0)
printVarSummary(outvar)

On 4/23/13 3:13 PM, Matt Masarik wrote:
> Hello NCL Talkers,
>
> I'm trying to do a grid interpolation using the function 'linint2' and
> am having some troubles. The
> dataset I am interpolating from has coordinates
>
> lat: 89.5 to -89.5
> lon: -179.5 to 179.5
>
> the dataset I am interpolating to has coordinates
>
> lat: -90 to 90
> lon: 0 to 356.25
>
> So, the first thing I did was to invert the variable in latitude (
> -89.5 to 89.5) and then 'flip'
> the variable in longitude ( 0.5 to 395.5 ). I did the same operations
> to the coordinate variables
> themselves because it seems they weren't changed as I was under the
> impression they would be.
> At this point I make a call to linint2 and get the following error
>
> warning:linint2: xi, yi, xo, and yo must be monotonically
> increasing
>
> I am confused because I believe that my x's and y's are monotonically
> increasing.
>
> I've included the code fragment below, followed by output from
> printVarSummary() statements.
> (I apologize for the length of this email, but I wanted to give all
> relevant information).
> Any suggestions of what may be going on would be appreciated.
>
> Thank you, Matt
>
>
>
> ;; open files
> outfile = addfile("./cl18502005.nc","r")
> infile = addfile("./MCD200207.nc","r")
>
> ;; get coords
> outlon = outfile->lon
> outlat = outfile->lat
> inlon = infile->lon
> inlat = infile->lat
>
> ;; get variables
> invar = infile->cl_R_low(0,:,:)
>
> invar!0 = "lat"
> invar!1 = "lon"
> invar&lat = inlat
> invar&lon = inlon
> invar&lat@units="degrees_north"
> invar&lon@units="degrees_east"
>
> printVarSummary(outlon)
> printVarSummary(outlat)
> printVarSummary(inlat)
> printVarSummary(inlon)
> printVarSummary(invar)
>
> invar = invar(::-1,:) ; invert the latitude dimension
> invar = lonFlip(invar) ; flip the longitude dimension
> inlon = lonFlip(inlon)
> inlat = inlat(::-1)
>
> printVarSummary(inlat)
> printVarSummary(inlon)
> printVarSummary(invar)
>
>
> outvar = linint2(inlon,inlat,invar,True,outlon,outlat,0)
>
>
> ====== printVarSummarys ========
>
> Before lat/lon flips
> ------------------------
>
> Variable: outlon
> Type: double
> Total Size: 768 bytes
> 96 values
> Number of Dimensions: 1
> Dimensions and sizes: [lon | 96]
> Coordinates:
> lon: [ 0..356.25]
> Number Of Attributes: 5
> bounds : lon_bnds
> units : degrees_east
> axis : X
> long_name : longitude
> standard_name : longitude
>
> Variable: outlat
> Type: double
> Total Size: 768 bytes
> 96 values
> Number of Dimensions: 1
> Dimensions and sizes: [lat | 96]
> Coordinates:
> lat: [ -90.. 90]
> Number Of Attributes: 5
> bounds : lat_bnds
> units : degrees_north
> axis : Y
> long_name : latitude
> standard_name : latitude
>
> Variable: inlat
> Type: float
> Total Size: 720 bytes
> 180 values
> Number of Dimensions: 1
> Dimensions and sizes: [lat | 180]
> Coordinates:
> lat: [89.5..-89.5]
> Number Of Attributes: 5
> long_name : latitude
> valid_range : ( -90, 90 )
> standard_name : latitude
> axis : Y
> units : degrees_north
>
> Variable: inlon
> Type: float
> Total Size: 1440 bytes
> 360 values
> Number of Dimensions: 1
> Dimensions and sizes: [lon | 360]
> Coordinates:
> lon: [-179.5..179.5]
> Number Of Attributes: 5
> long_name : longitude
> valid_range : ( -180, 180 )
> standard_name : longitude
> axis : X
> units : degrees_east
>
> Variable: invar
> Type: float
> Total Size: 259200 bytes
> 64800 values
> Number of Dimensions: 2
> Dimensions and sizes: [lat | 180] x [lon | 360]
> Coordinates:
> lat: [89.5..-89.5]
> lon: [-179.5..179.5]
> Number Of Attributes: 8
> time : 1
> valid_range : ( 0, 1 )
> standard_name : cloud_area_fraction
> units : 1
> missing_value : -999
>
>
> After lat/lon flips
> ------------------------
> Variable: inlat
> Type: float
> Total Size: 720 bytes
> 180 values
> Number of Dimensions: 1
> Dimensions and sizes: [lat | 180]
> Coordinates:
> lat: [-89.5..89.5]
> Number Of Attributes: 5
> long_name : latitude
> valid_range : ( -90, 90 )
> standard_name : latitude
> axis : Y
> units : degrees_north
>
> Variable: inlon
> Type: float
> Total Size: 1440 bytes
> 360 values
> Number of Dimensions: 1
> Dimensions and sizes: [lon | 360]
> Coordinates:
> lon: [0.5..359.5]
> Number Of Attributes: 6
> lonFlip : longitude coordinate variable has been reordered via
> lonFlip
> units : degrees_east
> axis : X
> standard_name : longitude
> valid_range : ( -180, 180 )
> long_name : longitude
>
> Variable: invar
> Type: float
> Total Size: 259200 bytes
> 64800 values
> Number of Dimensions: 2
> Dimensions and sizes: [lat | 180] x [lon | 360]
> Coordinates:
> lat: [-89.5..89.5]
> lon: [0.5..359.5]
> Number Of Attributes: 9
> lonFlip : longitude coordinate variable has been reordered via
> lonFlip
> missing_value : -999
> units : 1
> standard_name : cloud_area_fraction
> valid_range : ( 0, 1 )
> time : 1
> _FillValue : -999
>
>
>
> _______________________________________________
> ncl-talk mailing list
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Tue Apr 23 17:05:10 2013

This archive was generated by hypermail 2.1.8 : Fri Apr 26 2013 - 17:10:26 MDT