[ncl-talk] Using NCL to Regrid NetCDF data for ArcGIS

Mary Haley haley at ucar.edu
Fri Jul 3 21:44:26 MDT 2015


Hi all,

My apologies for weighing in late here.

I'm not sure where the error is coming from, because while you provided a
line number, I don't see which version of NCL you're running, so I'm not
sure which code to look at.

It's okay to regrid a variable that has a time dimension, or other extra
dimensions on the left.  But, the lat/lon dimensions of this variable have
to match up with what you set SrcGridLat and SrcGridLon to.

Also, and this might be where your error is coming from: The SrcMask2D
better also be the the same size as the lat/lon dimension of your input
array.  If "var" is 3D, then you need to do this:

    Opt at SrcMask2D         = where(.not.ismissing(var(0,:,:)),1,0)

If "var" doesn't have any missing values, then you don't need to set this
option at all.

If the above doesn't help, then it would help to see what your src_lat,
src_lon, and var variables look like. As Rick pointed out, use
printVarSummary to look at your data:

printVarSummary(var)
printVarSummary(src_lat)
printVarSummary(src_lon)

--Mary


On Tue, Jun 23, 2015 at 9:23 PM, Rick Brownrigg <brownrig at ucar.edu> wrote:

> Do a:
>
> printVarSummary(var)
>
> and you'll know for sure.  My guess is that, yes while "var" is a scalar
> field, as represented in a NetCDF file, it is defined at discrete points in
> time *and* space, and so is likely 3D?
>
> I'm not expert at the regridding component -- but I think in your call to
> EMSF_regrid, it might look like this:
>
>    EMSF_regrid(var(0,:,:), Opts)
>
> which would regrid over all of the spatial domain for the first time step.
>
> Hope that helps, but punchline:  print() or printVarSummary() is your
> friend!  ;-)
>
> Rick
>
> On Tue, Jun 23, 2015 at 4:39 PM, Matthew Shultz <matthew.shultz at yale.edu>
> wrote:
>
>> That sounds like it could be right, but I guess I don’t understand NetCDF
>> that well.  This file contains a year of daily data on air quality, which
>> is a scalar stored in var.  So the value of ‘var’ is 1D for each daily
>> time-step, but obviously air + time is 2D.  In order to get this to regrid
>> correctly, is there a way I need to express that in my ncl code?
>>
>>
>>
>>
>> On Jun 23, 2015, at 6:16 PM, Rick Brownrigg <brownrig at ucar.edu> wrote:
>>
>> Hi Matthew,
>>
>> I don't know for certain, but tracking down where the error messages are
>> coming from, it looks like perhaps your variable "var" is not of the same
>> dimensions as lat/lon (which are clearly 2D).   Is there a time or level
>> dimension perhaps associated with var?
>>
>> Rick
>>
>>
>> On Tue, Jun 23, 2015 at 3:31 PM, Matthew Shultz <matthew.shultz at yale.edu>
>> wrote:
>>
>>> Here’s the output I get when I run the command.  Line 40 in my file is
>>> just the call to  ESMF_regrid
>>> Thanks for you assistance
>>>
>>>
>>> (0) get_src_grid_info: source lat dims = (277,349)
>>> (0) get_src_grid_info: source lon dims = (277,349)
>>> (0) get_src_grid_info: source grid type is 'curvilinear'
>>> fatal:Eq: Dimension size, for dimension number 0, of operands does not
>>> match, can't continue
>>>
>>> fatal:["Execute.c":8575]:Execute: Error occurred at or near line 1614 in
>>> file $NCARG_ROOT/lib/ncarg/nclscripts/esmf/ESMF_regridding.ncl
>>>
>>> fatal:["Execute.c":8575]:Execute: Error occurred at or near line 3853 in
>>> file $NCARG_ROOT/lib/ncarg/nclscripts/esmf/ESMF_regridding.ncl
>>>
>>> fatal:["Execute.c":8575]:Execute: Error occurred at or near line 3983 in
>>> file $NCARG_ROOT/lib/ncarg/nclscripts/esmf/ESMF_regridding.ncl
>>>
>>> fatal:["Execute.c":8575]:Execute: Error occurred at or near line 40 in
>>> file regrid3.ncl
>>>
>>>
>>>
>>>
>>> On Jun 23, 2015, at 1:22 PM, Rick Brownrigg <brownrig at ucar.edu> wrote:
>>>
>>> What line number does the error message refer to?
>>>
>>>
>>>
>>> On Mon, Jun 22, 2015 at 7:42 PM, Matthew Shultz <matthew.shultz at yale.edu
>>> > wrote:
>>>
>>>> Greetings,
>>>> I am very new to netcdf  and need some assistance.  I am trying to
>>>> calculate zonal statistics (sums and averages within watershed shapes)
>>>> using some tools in ArcGIS for netcdf.  The tools require netcdf files to
>>>> be in a regular grid.  My source data is NARR data, which isn't being
>>>> recognized as a regular grid (I believe it is curvilinear).  So I am trying
>>>> to regrid using templates provided on the ucar website.  Attached is the
>>>> code I am currently using.  It gives me the following error.  Despite
>>>> search archives of this list, other responses have not resolved my problem.
>>>> Help is very much appreciated, clearly there is something I am not
>>>> understanding.
>>>>
>>>>
>>>>
>>>> fatal:Eq: Dimension size, for dimension number 0, of operands does not
>>>> match, can't continue
>>>>
>>>>
>>>>
>>>>
>>>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
>>>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
>>>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
>>>> load "$NCARG_ROOT/lib/ncarg/nclscripts/esmf/ESMF_regridding.ncl"
>>>>
>>>> ;---Data file containing source grid
>>>>     src_file = "air.sfc.2009.nc
>>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__air.sfc.2009.nc&d=AwMFaQ&c=-dg2m7zWuuDZ0MUcV7Sdqw&r=uKbh2SXDxGKvLk5QzayNO82syruaWpicjIReiqrlroo&m=in-kyqdBB_SrcaUe8NduEiwvdug6jD8--IAlddvlGUM&s=ig9Wc1p8W1YxsWqkiFqci37YiabzbIhxeiyjz-uUzo0&e=>"
>>>>                    ;;---Change (likely)
>>>>     sfile    = addfile(src_file,"r")
>>>>
>>>> ;---Get variable to regrid
>>>>     varname = "air"                    ;;---Change (likely)
>>>>     var     = sfile->air
>>>>     src_lat = sfile->lat               ;;---Change (maybe)
>>>>     src_lon = sfile->lon               ;;---Change (maybe)
>>>>
>>>> ;---Set up regridding options
>>>>     Opt                   = True
>>>>
>>>> ;---"bilinear" is the default. "patch" and "conserve" are other options.
>>>>     Opt at InterpMethod      = "bilinear"        ;;---Change (maybe)
>>>>
>>>>     Opt at WgtFileName       = "curv_to_1deg.nc
>>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__curv-5Fto-5F1deg.nc&d=AwMFaQ&c=-dg2m7zWuuDZ0MUcV7Sdqw&r=uKbh2SXDxGKvLk5QzayNO82syruaWpicjIReiqrlroo&m=in-kyqdBB_SrcaUe8NduEiwvdug6jD8--IAlddvlGUM&s=oV6qP_NZtJZUXIOpck3rcmPKZHuyxgh9R9EnWJKtr2Y&e=>
>>>> "
>>>>
>>>>     Opt at SrcGridLat        = src_lat           ; source grid
>>>>     Opt at SrcGridLon        = src_lon
>>>>     Opt at SrcRegional       = True             ;;--Change (maybe)
>>>>     Opt at SrcInputFileName  = src_file          ; optional, but good idea
>>>>     Opt at SrcMask2D         = where(.not.ismissing(var),1,0) ; Necessary
>>>> if has
>>>>                                                            ; missing
>>>> values.
>>>>
>>>>     Opt at DstGridType       = "0.5x0.5"            ; Destination grid
>>>>     ;Opt at DstLLCorner       = (/-89.75d,   0.00d /)   ;;--Change
>>>> (likely)
>>>>     ;Opt at DstURCorner       = (/ 89.75d, 359.75d /)   ;;--Change
>>>> (likely)
>>>>     Opt at DstRegional       = True                 ;;--Change (maybe)
>>>>
>>>>     Opt at ForceOverwrite    = True
>>>>     Opt at PrintTimings      = True
>>>>     Opt at Debug             = True
>>>>
>>>>     var_regrid = ESMF_regrid(var,Opt)     ; Do the regridding
>>>>
>>>>     printVarSummary(var_regrid)
>>>>
>>>>
>>>> _______________________________________________
>>>> ncl-talk mailing list
>>>> ncl-talk at ucar.edu
>>>> List instructions, subscriber options, unsubscribe:
>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__mailman.ucar.edu_mailman_listinfo_ncl-2Dtalk&d=AwMFaQ&c=-dg2m7zWuuDZ0MUcV7Sdqw&r=uKbh2SXDxGKvLk5QzayNO82syruaWpicjIReiqrlroo&m=in-kyqdBB_SrcaUe8NduEiwvdug6jD8--IAlddvlGUM&s=DBUC6JC9tObdztE4E4BXvNWNjeDLWWz5Tt8hQQUWF30&e=>
>>>>
>>>>
>>>
>>>
>>
>>
>
> _______________________________________________
> 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/20150703/d6f07c7c/attachment.html 


More information about the ncl-talk mailing list