[ncl-talk] map outline using shapefile

Debasish Hazra debasish.hazra5 at gmail.com
Wed Nov 28 08:45:14 MST 2018


Mary,
That does not work unfortunately. So, here is the part of code I changed
after your suggestion :

if(USE_SHAPEFILE_OUTLINES) then
       res at mpOutlineOn               = True
    ;   res at mpOutlineBoundarySets = "National"
  else
       res at mpDataBaseVersion         = "MediumRes"        ; higher
resolution basemap
       res at mpDataSetName             = "Earth..4"         ; contains
divisions for other countries
        res at mpOutlineMaskingOn = True
        res at mpMaskOutlineSpecifiers = "Indian:states"
     end if

and reading shapefile
  if(USE_SHAPEFILE_OUTLINES) then
         lnres= True
         ind_met =
gsn_add_shapefile_polylines(wks,plot_A,"./Indian_met_zones-master/indian_met_zones.v2.shp",lnres)
         end if

So I run first run with setting res at mpOutlineOn               = True, which
does not produce boundaries over Pakistan, Agfanisthan, Iran . If I comment
out  res at mpOutlineOn               = True and just use
res at mpOutlineBoundarySets = "National", it draws all the boundaries of the
above mentioned countries, but produces double outlines over India.
Attached are the figures.
Thanks
Debasish

On Wed, Nov 28, 2018 at 10:01 AM Mary Haley <haley at ucar.edu> wrote:

> I think the issue is simply that the script is setting mpOutlineOn to
> False if shapefile outlines are turned on. You want to set this to True
> since you want to see the outlines from both NCL and the shapefiles.
>
>
>
> On Tue, Nov 27, 2018 at 7:53 PM Debasish Hazra <debasish.hazra5 at gmail.com>
> wrote:
>
>> Thanks Adam.I applied your changes and it removed double lines over
>> India, but it still not drawing other neighbouring country borders. Here is
>> the script I am using and attached is current figure generated :
>>
>> plot_A   = new (2 , graphic)                    ; create graphical array
>>   res      = True               ; plot options desired
>>    USE_SHAPEFILE_OUTLINES = True
>>   res at gsnDraw = False
>>   res at gsnFrame = False
>>   res at gsnMajorLatSpacing = 10             ; change maj lat tm spacing
>>   res at gsnMajorLonSpacing = 20
>>  res at cnLinesOn            = False
>>   res at cnFillOn             = True               ; turn on color fill
>>   res at cnInfoLabelOn        = False              ; turn off contour info
>> label
>>   res at cnLineLabelsOn       = False              ; turn off line labels
>>    res at cnFillDrawOrder  = "Predraw"
>>   res at gsnSpreadColors      = True            ; use full color table
>>   res at mpFillOn             = False              ; do not grey fill land
>>   res at lbLabelBarOn         = False           ; turn off individual color
>> bars
>>   res at gsnStringFontHeightF = 0.018
>>   res at tmYRMode             = "Automatic"          ; turn off special
>> labels on right axis
>>   res at lbAutoManage          = False             ; we control label bar
>>   if(USE_SHAPEFILE_OUTLINES) then
>>        res at mpOutlineOn               = False
>>   else
>> ;       res at mpOutlineOn               = True
>> ;        res at mpOutlineBoundarySets = "National"
>>        res at mpDataBaseVersion         = "MediumRes"        ; higher
>> resolution basemap
>>        res at mpDataSetName             = "Earth..4"         ; contains
>> divisions for other countries
>>         res at mpOutlineMaskingOn = True
>>         res at mpMaskOutlineSpecifiers = "Indian:states"
>>     end if
>>
>>    res at mpLimitMode = "Corners"
>>    res at mpLeftCornerLatF  =  0.0
>>    res at mpLeftCornerLonF  =  50.0
>>    res at mpRightCornerLatF =  40.0
>>    res at mpRightCornerLonF =  100.0
>>
>>    res at gsnDraw = False
>>    res at gsnFrame = False
>>     res at gsnLeftString = ""
>>     res at gsnRightString = ""
>>
>>         res at gsnCenterString   = labes(0)
>>         plot_A(0) = gsn_csm_contour_map_ce (wks, rainl(:,:), res)
>>         res at gsnCenterString   = labes(1)
>>         plot_A(1) = gsn_csm_contour_map_ce (wks, rain2(:,:), res)
>>
>>          if(USE_SHAPEFILE_OUTLINES) then
>>          lnres= True
>>          ind_met =
>> gsn_add_shapefile_polylines(wks,plot_A,"./Indian_met_zones-master/indian_met_zones.v2.shp",lnres)
>>          end if
>>    pres1                     = True               ; panel options
>>    pres1 at gsnFrame         = False
>>    pres1 at gsnDraw = True
>>   pres1 at gsnMaximize         = True               ; maximize image
>>   pres1 at gsnPanelLabelBar    = True               ; Add common label bar
>>
>>  gsn_panel(wks,plot_A,(/1,2/),pres1)
>>        ;draw(plot)
>> frame(wks)
>>
>> Any help.
>> Thanks
>> Debasish
>>
>> On Tue, Nov 27, 2018 at 3:43 PM Adam Phillips <asphilli at ucar.edu> wrote:
>>
>>> Hi Debasish,
>>> I am guessing your shapefile outlines are more precise than NCL's built
>>> in outlines, and that's why you're getting double boundaries being shown. I
>>> would suggest continuing what you're doing, but tell NCL to exclude drawing
>>> the Indian states by utilizing the mpMaskOutlineSpecifiers:
>>> res at mpDataBaseVersion       = "MediumRes"
>>> res at mpDataSetName         = "Earth..4"
>>> res at mpOutlineMaskingOn = True
>>> res at mpMaskOutlineSpecifiers = "Indian:states"    ; do not draw any
>>> outlines specified here
>>>
>>>
>>> http://www.ncl.ucar.edu/Document/Graphics/Resources/mp.shtml#mpMaskOutlineSpecifiers
>>> Example showing mpMaskOutlineSpecifier use:
>>> http://www.ncl.ucar.edu/Applications/Scripts/maponly_14.ncl
>>> Example showing how to specify Indian states:
>>> http://www.ncl.ucar.edu/Applications/Scripts/maponly_16.ncl
>>>
>>> If you have any further questions let ncl-talk know.
>>> Adam
>>>
>>>
>>> On Tue, Nov 27, 2018 at 1:16 PM Debasish Hazra <
>>> debasish.hazra5 at gmail.com> wrote:
>>>
>>>> Hi,
>>>> I am using shapefile to draw outline over India following
>>>> polyg_shp_9.ncl example. However, my plotting domain covers other area
>>>> besides India and when I am using
>>>>  lnres= True
>>>>  ind_met =
>>>> gsn_add_shapefile_polylines(wks,plot_A,"./Indian_met_zones-master/indian_met_zones.v2.shp",lnres)
>>>> in combination with
>>>> res at mpOutlineOn               = False
>>>>
>>>> I am getting outline of India only, with neighboring counties
>>>> boundaries not drawn.
>>>>
>>>> But when I am using
>>>> res at mpOutlineOn               = True
>>>> in combination with the above mentioned shapefile over India, I am
>>>> getting double line borders over India (coming from both India met
>>>> shapefile and ncl map outline). I have attached both resulting figures. How
>>>> do I  solve this to combine both in proper way ?
>>>>
>>>> Thanks
>>>> Debasish
>>>> _______________________________________________
>>>> ncl-talk mailing list
>>>> ncl-talk at ucar.edu
>>>> List instructions, subscriber options, unsubscribe:
>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>
>>>
>>>
>>> --
>>> Adam Phillips
>>> Associate Scientist,  Climate and Global Dynamics Laboratory, NCAR
>>> www.cgd.ucar.edu/staff/asphilli/   303-497-1726
>>>
>>> <http://www.cgd.ucar.edu/staff/asphilli>
>>>
>> _______________________________________________
>> 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/20181128/7ad1ff40/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mapoutline_true.png
Type: image/png
Size: 146025 bytes
Desc: not available
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20181128/7ad1ff40/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mpOutlineBoundarySets_true.png
Type: image/png
Size: 174188 bytes
Desc: not available
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20181128/7ad1ff40/attachment-0003.png>


More information about the ncl-talk mailing list