[ncl-talk] regrid data from one unstructured grid to another unstructured grid
Ming Chen
chenming at ucar.edu
Fri Sep 4 16:23:07 MDT 2020
Hi Dennis,
Thanks for looking at my issue. I did find that I made a mistake:
latCell = sfile1->lonCell(:)
lonCell = sfile1->latCell(:)
They should be:
latCell = sfile1->latCell(:)
lonCell = sfile1->lnCell(:)
Now the script works just fine. I apologize for wasting your time due to
my fault.
Thanks again and have a good long weekend!
Ming
On 9/4/20 3:00 PM, Dennis Shea wrote:
> Hello,
>
> I see nothing wrong with your script.
> The ESMF package invoked by NCL has had some issues with unstructured
> grids.
> For "fun" I switched the method from "patch" to "bilibear".
> The same error was encountered.
>
> I will look a bit more bur ... likely after Labor Day.
>
> Regards
> D
> [bilinear]
>
> %> ncl MingChen.ncl
>
> Copyright (C) 1995-2019 - All Rights Reserved
> University Corporation for Atmospheric Research
> NCAR Command Language Version 6.6.2
> The use of this software is governed by a License Agreement.
> See http://www.ncl.ucar.edu/ <http://www.ncl.ucar.edu/> for more details.
> (0) get_src_grid_info: source lat dims = (501576)
> (0) get_src_grid_info: source lon dims = (501576)
> (0) get_src_grid_info: source grid type is 'unstructured'
> (0) unstructured_to_ESMF: triangulating the data to create the edges
> for your unstructured data.
> (0) This can be VERY slow if you have a large array.
> (0) To speed up code, provide your own edge
> vertices via the
> (0) 'ElementVertices' option.
> (0) min/max ElementVertices = 0/501575
> (0) unstructured_to_ESMF: total number of elements created: 1003004
> (0) unstructured_to_ESMF: Element Area: min:8.240130582062269e-11
> max:0.000118294428582022
> (0) write_grid_description_file: writing unstructured 'Src' grid to an
> ESMF description file
> (0) get_dst_grid_info: destination lat dims = (250364)
> (0) get_dst_grid_info: destination lon dims = (250364)
> (0) unstructured_to_ESMF: triangulating the data to create the edges
> for your unstructured data.
> (0) This can be VERY slow if you have a large array.
> (0) To speed up code, provide your own edge
> vertices via the
> (0) 'ElementVertices' option.
> (0) min/max ElementVertices = 0/250363
> (0) unstructured_to_ESMF: total number of elements created: 500658
> (0) unstructured_to_ESMF: Element Area: min:1.381117442633695e-13
> max:0.008010342243264967
> (0) write_grid_description_file: writing unstructured 'Dst' grid to an
> ESMF description file
> (0) ESMF_regrid_gen_weights: number of processors used: 1
> (0) --------------------------------------------------
> (0) ESMF_regrid_gen_weights: the following command is about to be
> executed on the system:
> (0) 'ESMF_RegridWeightGen --ignore_degenerate --src_loc corner
> --dst_loc corner --source MPAS_ESMF.nc --destination MPAS_CELL.nc
> --weight vertex_2_cell.nc <http://vertex_2_cell.nc> --method bilinear
> --src_type ESMF --dst_type ESMF -i'
> (0) --------------------------------------------------
> (0) ESMF_regrid_gen_weights: output from 'ESMF_RegridWeightGen':
> (0)
> (1) WARNING: deprecated switch -src_type will be ignored. The
> file type will be de
> (2) tected automatically
> (3)
> (4) WARNING: deprecated switch -dst_type will be ignored. The
> file type will be de
> (5) tected automatically
> (6) Starting weight generation with these inputs:
> (7) Source File: MPAS_ESMF.nc
> (8) Destination File: MPAS_CELL.nc
> (9) Weight File: vertex_2_cell.nc <http://vertex_2_cell.nc>
> (10) Source File is in ESMF format
> (11) Source Grid is a global grid
> (12) Source Grid is an unstructured grid
> (13) Use the corner coordinates of the source grid to do the regrid
> (14) Destination File is in ESMF format
> (15) Destination Grid is a global grid
> (16) Destination Grid is an unstructured grid
> (17) Use the corner coordinates of the destination grid to do
> the regrid
> (18) Regrid Method: bilinear
> (19) Pole option: ALL
> (20) Ignore unmapped destination points
> (21) Ignore degenerate cells in the input grids
> (22) Line Type: cartesian
> (23) Norm Type: dstarea
> (24) Extrap. Method: none
> (25)
> (26) Completed weight generation successfully.
> (27)
> (0) --------------------------------------------------
> (0) ESMF_regrid_gen_weights: 'ESMF_RegridWeightGen' was successful.
> (0) ESMF_regrid_with_weights: regridding using interpolation weights ...
> (0) ESMF_regrid_with_weights: error: there are no weights on this file.
> (0) This likely means there was a problem with the mapping
> (0) from the source grid to the destination grid.
> (0) Check that both grids are valid.
> Variable: sp_regrid
> Type: float
> Total Size: 4 bytes
> 1 values
> Number of Dimensions: 1
> Dimensions and sizes: [1]
> Coordinates:
> Number Of Attributes: 3
> _FillValue : 9.96921e+36
> lat1d : <ARRAY of 250364 elements>
> lon1d : <ARRAY of 250364 elements>
>
> ===========
> Variable: sp_regrid
> Type: float
> Total Size: 4 bytes
> 1 values
> Number of Dimensions: 1
> Dimensions and sizes: [1]
> Coordinates:
> Number Of Attributes: 3
> _FillValue : 9.96921e+36
> lat1d : <ARRAY of 250364 elements>
> lon1d : <ARRAY of 250364 elements>
>
> ========================
>
>
>
> On Thu, Sep 3, 2020 at 12:33 PM Ming Chen via ncl-talk
> <ncl-talk at mailman.ucar.edu <mailto:ncl-talk at mailman.ucar.edu>> wrote:
>
> Dear NCL-experts,
>
> I am trying to remap data between different unstructured grids,
> specifically, from MPAS mesh corners to MPAS cell centers.
> However, the
> following error message appears:
>
> (0) ESMF_regrid_gen_weights: 'ESMF_RegridWeightGen' was
> successful.
> (0) ESMF_regrid_with_weights: regridding using interpolation
> weights ...
> (0) ESMF_regrid_with_weights: error: there are no weights on
> this file.
> (0) This likely means there was a problem with the mapping
> (0) from the source grid to the destination grid.
> (0) Check that both grids are valid.
>
> Any help will be appreciated!
>
>
> Below is the script:
>
> begin
> srcFile =
> "/glade/scratch/chenming/mmm_20200616/MPAS_10km/2017022200/history.2017-02-23_00.00.00.nc
> <http://history.2017-02-23_00.00.00.nc>"
> dataFile =
> "/glade/scratch/chenming/mmm_20200616/MPAS_10km/2017022200/diag.2017-02-23_00.00.00.nc
> <http://diag.2017-02-23_00.00.00.nc>"
>
> sfile1 = addfile(srcFile,"r") ; Source grid
> sfile2 = addfile(dataFile,"r") ; Source data file
>
> r2d = 180.0/(atan(1)*4.0)
>
> lonVertex = sfile1->lonVertex
> latVertex = sfile1->latVertex
> lonVertex = lonVertex*r2d
> latVertex = latVertex*r2d
>
> latCell = sfile1->lonCell(:)
> lonCell = sfile1->latCell(:)
> lonCell = lonCell*r2d
> latCell = latCell*r2d
>
> sp = ndtooned(sfile2->vorticity_500hPa(0,:))
> sp = sp*10.^5
>
> Opt = True
> Opt at SrcFileName = "MPAS_ESMF.nc"
> Opt at WgtFileName = "vertex_2_cell.nc
> <http://vertex_2_cell.nc>"
> Opt at DstFileName = "MPAS_CELL.nc"
> Opt at ForceOverwrite = True
> Opt at SrcGridLat = latVertex
> Opt at SrcGridLon = lonVertex
> Opt at SrcInputFileName = srcFile
> Opt at DstGridLat = latCell
> Opt at DstGridLon = lonCell
> Opt at DstTitle = "MPAS-Vertex2Cell"
> Opt at DstGridType = "unstructured"
> Opt at SrcGridType = "unstructured"
> Opt at InterpMethod = "patch"
> Opt at Debug = True
>
> sp_regrid = ESMF_regrid(sp,Opt)
>
> printVarSummary(sp_regrid)
>
> end
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at mailman.ucar.edu <mailto:ncl-talk at mailman.ucar.edu>
> List instructions, subscriber options, unsubscribe:
> https://mailman.ucar.edu/mailman/listinfo/ncl-talk
> <https://mailman.ucar.edu/mailman/listinfo/ncl-talk>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20200904/ac3add42/attachment.html>
More information about the ncl-talk
mailing list