[ncl-talk] Contour Shape gets distorted for gsn_csm_contour_map plot

Mansur Ali Jisan jisan.mansur at gmail.com
Sat Jan 5 12:09:53 MST 2019


Thanks a lot, Dave. Appreciate your valuable suggestions.I'll check those
in the model Fortran code.

Regards,
Mansur



On Fri, Jan 4, 2019 at 3:32 PM Dave Allured - NOAA Affiliate <
dave.allured at noaa.gov> wrote:

> Mansur,
>
> Thanks for explaining the reason for recalculating the lat/lon
> coordinates.  I misunderstood your scenario.
>
> I notice that your lat/lon calculations assume that the coordinates in
> each data frame are equally spaced and independent between latitudes and
> longitudes.  In other words, you are assuming 1-dimensional coordinates.
> You might want to check how the model really locates the output grid
> points, and ensure your calculations match.  Some models place their output
> points on a map projection such that lats and lons vary independently for
> every grid point.  This is so-called 2-dimensional grid points.
>
> Your corner points might be a clue.  Corner points for 1-D coordinates are
> often given as four numbers, min/max lat and lon.  Corner points for 2-D
> coordinates are usually given as four coordinate pairs, i.e. eight numbers.
>
> In a similar situation (Daymet), I found it most reliable to obtain master
> coordinate grids from the original data supplier, and use the provided X
> and Y indices to obtain subset coordinate grids for each data tile.  The
> entire business of recalculation was pleasantly avoided.  This might be
> valid in your case, if your data frames are known to be proper subsets of a
> master grid.
>
> --Dave
>
>
> On Thu, Jan 3, 2019 at 1:01 PM Mansur Ali Jisan <jisan.mansur at gmail.com>
> wrote:
>
>> Thank you for the replies and suggestions. I think the problem is with
>> the output data frame. It's an output from parametric wind model with
>> moving nest which gives only the lat-long for four corner points of the
>> grid as a separate text file. I suspect there's something wrong with the
>> calculation of those corner points. Thank you again!
>>
>> Regards,
>> Mansur
>>
>> On Wed, Jan 2, 2019 at 5:04 PM Dave Allured - NOAA Affiliate <
>> dave.allured at noaa.gov> wrote:
>>
>>> Mansur,
>>>
>>> 1.  I strongly advise against generating your own lat and lon
>>> coordinates when valid coordinates are provided with the input data.
>>> Regeneration can easily lead to blatant or subtle map registration errors,
>>> if there are any mistakes.
>>>
>>> 2.  Your script uses the cylindrical equidistant projection by default.
>>> This will produce distortion everywhere except near the equator.  To
>>> minimize distortion elsewhere, please use a locally conformal map
>>> projection.  For minimal distortion in a small circular region of the
>>> globe, I recommend Azimuthal Equidistant with the tangent point at the
>>> center of the region.  Lambert Conformal Conic is a good compromise
>>> projection, commonly used, for larger mid-latitude regions that are wider
>>> east to west, such as continental USA.  There are other good choices for
>>> small and medium regions.
>>>
>>> https://www.ncl.ucar.edu/Document/Graphics/map_projections.shtml
>>>
>>> --Dave
>>>
>>>
>>> On Wed, Jan 2, 2019 at 11:23 AM Rick Brownrigg <brownrig at ucar.edu>
>>> wrote:
>>> >
>>> > Hi,
>>> >
>>> > Given the aspect ratio of the underlying data (range of
>>> -74.25...-70.17 in lon, 36...46.9 in lat), it seems like the plot produced
>>> via gsn_csm_contour_map is about what one would expect ?  I see you
>>> manually assigned those geographic coordinates to the grid. Are those
>>> correct?  Do you have other reasons to believe the storm shape should be
>>> more circular, rather than elongated?
>>> >
>>> > Not sure what to suggest here...
>>> >
>>> > Rick
>>> >
>>> >
>>> > On Wed, Jan 2, 2019 at 10:46 AM Mansur Ali Jisan <
>>> jisan.mansur at gmail.com> wrote:
>>> >>
>>> >> Dear NCL Community,
>>> >>
>>> >> I need help with contour map plot for a Hurricane wind field. At
>>> first, I used gsn_csm_contour function for making the plot and the shape of
>>> the storm looked correct. But when I tried to make a contour map plot using
>>> gsn_csm_contour_map, the shape got distorted. I tried to solve this by
>>> setting the res at mpShapeMode = "FreeAspect". While it improved the
>>> contour plot but the map got stretched. Similarly, I set up the map
>>> projection to cylindrical equidistant but still got the same result. I have
>>> added the code and PrintVarSummary. Any suggestions will be very helpful.
>>> >>
>>> >> Wishing you a Happy New Year!
>>> >>
>>> >>
>>> --------------------------------------------------------------------------------------------------------
>>> >>
>>> >> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
>>> >> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
>>> >> begin
>>> >>   ntim = 318
>>> >>   nlat = 1202
>>> >>   mlon = 1202
>>> >>
>>> >>   f1 = addfile("bound_param_diag_var_rough.nc","r")
>>> >>   u = f1->um_bot   ; 97 x 1202 x 1202
>>> >>   v = f1->vm_bot
>>> >>   ws = sqrt(u^2+v^2)
>>> >>
>>> >>  lat  = fspan(36.07092, 46.86241,nlat)
>>> >>   lon  = fspan(-74.25677, -70.17657,mlon)
>>> >>
>>> >>   lat!0= "lat"                   ; name dimension
>>> >>   lat at units = "degrees_north"    ; associate units attribute
>>> >>   lat&lat   = lat                ; coordinate variable
>>> >>
>>> >>   lon!0= "lon"
>>> >>   lon at units = "degrees_east"
>>> >>   lon&lon   = lon
>>> >>
>>> >>   u!0 = "time"
>>> >>   u!1 = "lat"
>>> >>   u!2 = "lon"
>>> >>   u&lat = lat
>>> >>   u&lon = lon
>>> >>   v!0 = "time"
>>> >>   v!1 = "lat"
>>> >>   v!2 = "lon"
>>> >>
>>> >>   v&lat = lat
>>> >>   v&lon = lon
>>> >>
>>> >>   ws!0 = "time"
>>> >>   ws!1 = "lat"
>>> >>   ws!2 = "lon"
>>> >>
>>> >>   ws&lat = lat
>>> >>   ws&lon = lon
>>> >>
>>> >>  printVarSummary(lat)
>>> >>  print("-----")
>>> >>  printVarSummary(lon)
>>> >>  print("-----")
>>> >>  printVarSummary(u)
>>> >>  print("-----")
>>> >>
>>> >>   ws = mask(ws,ws.lt.4,False)
>>> >>   u = mask(u,u.lt.4,False)
>>> >>   v = mask(v,v.lt.4,False)
>>> >>
>>> >>   wks = gsn_open_wks("png","gsn_csm_contour_map")
>>> >>   res                          = True
>>> >>   res at gsnDraw        = False
>>> >>   res at gsnFrame      = False
>>> >>   res at gsnAddCyclic   = False
>>> >>   res at gsnMaximize    = True
>>> >>   res at cnFillOn            = True
>>> >>   res at cnLinesOn        = False
>>> >>   res at cnFillMode        = "AreaFill"
>>> >>   res at cnFillPalette      = "matlab_jet"
>>> >>
>>> >> ;  res at mpShapeMode = "FreeAspect"
>>> >> ;  res at vpWidthF = 0.6
>>> >> ;  res at vpHeightF = 0.5
>>> >>
>>> >>   res at tmXBOn = True
>>> >>   res at tmYLOn = True
>>> >>   res at tiMainString   = "gsn_csm_contour_map"
>>> >>   res at tmXBMode = "Explicit"
>>> >>   res at tmXBValues = (/-66, -67, -68, -69, -70, -71,  -72,  -73,
>>> -74,  -75, -76, -77/)
>>> >>   res at tmXBLabels =
>>> (/"66W","67W","68W","69W","70W","71W","72W","73W","74W","75W","76W","77W"/)
>>> >>
>>> >>   res at tmYLMode = "Explicit"
>>> >>   res at tmYLValues = (/34, 35,  36, 37, 38, 39, 40, 41, 42, 43, 44,
>>> 45, 46, 47/)
>>> >>   res at tmYLLabels =
>>> (/"34N","35N","36N","37N","38N","39N","40N","41N","42N","43N","44N","45N","46N","47N"/)
>>> >>
>>> >>   res at cnLevelSelectionMode = "ManualLevels"
>>> >>   res at cnMinLevelValF       = 10
>>> >>   res at cnMaxLevelValF       = 80
>>> >>   res at cnLevelSpacingF      = 2.5
>>> >>
>>> >>   res at mpFillOn = False
>>> >>   res at mpGeophysicalLineThicknessF = 2.5
>>> >>   res at mpOutlineBoundarySets     = "geophysicalandusstates"
>>> >>   res at mpDataBaseVersion = "MediumRes"
>>> >>   res at mpDataSetName = "Earth..4"
>>> >>   res at mpGeophysicalLineColor = "Black"
>>> >>
>>> >>   res at mpLimitMode = "LatLon"
>>> >>   res at mpMinLatF = 36.0
>>> >>   res at mpMaxLatF = 46.0
>>> >>   res at mpMinLonF = -76.0
>>> >>   res at mpMaxLonF = -70.0
>>> >>
>>> >>   plot = gsn_csm_contour_map(wks,ws(22,:,:),res)
>>> >>
>>> >> draw(plot)
>>> >>
>>> >> frame(wks)
>>> >>
>>> >> end
>>> >>
>>> >> Variable: lat
>>> >> Type: float
>>> >> Total Size: 4808 bytes
>>> >>             1202 values
>>> >> Number of Dimensions: 1
>>> >> Dimensions and sizes:   [lat | 1202]
>>> >> Coordinates:
>>> >>             lat: [36.07092..46.86241]
>>> >> Number Of Attributes: 1
>>> >>   units :       degrees_north
>>> >> (0)     -----
>>> >>
>>> >> Variable: lon
>>> >> Type: float
>>> >> Total Size: 4808 bytes
>>> >>             1202 values
>>> >> Number of Dimensions: 1
>>> >> Dimensions and sizes:   [lon | 1202]
>>> >> Coordinates:
>>> >>             lon: [-74.25677..-70.17657]
>>> >> Number Of Attributes: 1
>>> >>   units :       degrees_east
>>> >> (0)     -----
>>> >>
>>> >> Variable: u
>>> >> Type: float
>>> >> Total Size: 1837790688 bytes
>>> >>             459447672 values
>>> >> Number of Dimensions: 3
>>> >> Dimensions and sizes:   [time | 318] x [lat | 1202] x [lon | 1202]
>>> >> Coordinates:
>>> >>             lat: [36.07091903686523..46.86241149902344]
>>> >>             lon: [-74.25676727294922..-70.17656707763672]
>>> >> Number Of Attributes: 1
>>> >>   units :
>>> >> (0)     -----
>>> >>
>>> >> --
>>> >> Mansur Ali Jisan
>>> >> Ph.D. Student
>>> >> URI Graduate School of Oceanography, RI 02882
>>>
>>
>> --
>> *Mansur Ali Jisan*
>> Ph.D. Student
>> URI Graduate School of Oceanography, RI 02882
>> <hasancee at iut-dhaka.edu>
>>
>

-- 
*Mansur Ali Jisan*
Ph.D. Student
URI Graduate School of Oceanography, RI 02882

<hasancee at iut-dhaka.edu>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20190105/bf370b7f/attachment.html>


More information about the ncl-talk mailing list