[ncl-talk] How to avoid Interpolation outside shapefile

Ajay Bankar ajaybankar123 at gmail.com
Wed Jan 8 07:26:40 MST 2020


Dear NCL Users,
                            I'm trying to make spatial plot of rainfall
from station data available in csv file. I tried different options in
resources but data is not masking with shapefile.
I have attached plot and data file for reference.

Thanks for any help!

Here is my script

load "/shp.ncl"

begin
 ;-- shapefile name
 shp_filename =
"/scratch/Administrative_Boundary_Headquarters/District_Boundary.shp"

 infile = "station_data.csv"
 lines = asciiread(infile, -1, "string")

rain = tofloat( str_get_field(lines(1:), 7, ","))
rain at lat1d  = tofloat( str_get_field(lines(1:), 5, ","))
rain at lon1d  = tofloat( str_get_field(lines(1:), 6, ","))
;print(rain)

;-- define sub-region, here for Karnataka
     minlat =  11
     maxlat =  19
     minlon =  73.5
     maxlon =  79.1

;-- open workstation
     wks_type          = "pdf"
     wks  = gsn_open_wks(wks_type, "station_plot")
 ;-- resource settings
     res                        =  True
     res at gsnDraw                =  False                       ;-- don't
draw plot yet
     res at gsnFrame               =  False                       ;-- don't
advance frame yet
     res at gsnMaximize            =  True                        ;-- maximize
plot in frame

  ;  res at tfDoNDCOverlay        = True

    cmap     := read_colormap_file("BlAqGrYeOrReVi200")
    cmap(0,:) = (/0,0,0,0/)    ; make first color fully transparent
    res at cnFillOn               =  True
    res at cnLinesOn              =  False
    res at cnLineLabelsOn         =  False
    res at cnFillPalette          = cmap
;"BlueYellowRed"
    res at cnLevelSelectionMode   = "ExplicitLevels"               ;--
manually set contour levels
    res at cnLevels        = (/5,20,35,50,65,80,95,110,125,140,155/)
    res at gsnAddCyclic           = False

    res at mpGridLineColor        =  0                          ;"grey40"
    res at mpFillOn               =  False
    res at mpOutlineOn            =  False
    res at mpGeophysicalLineColor = "black"
    res at mpLimitMode            = "LatLon"
    res at mpMinLatF              = minlat
    res at mpMaxLatF              = maxlat
    res at mpMinLonF              = minlon
    res at mpMaxLonF              = maxlon
    ;res at mpAreaMaskingOn        = True

   res at lbBoxMinorExtentF      =  0.1                         ;-- decrease
height of labelbar boxes
   res at pmLabelBarOrthogonalPosF = 0.08                      ;-- move
labelbar to the left side of plot
   res at lbBoxMinorExtentF      =  0.2                         ;-- decrease
height of labelbar boxes

   res at pmTickMarkDisplayMode  = "Always"
   res at tmXTOn                 =  False
   res at tiMainString           = "STATION DATA PLOT"

 ;-- create plot
    plot = gsn_csm_contour_map(wks,rain,res)
    var_mask = shapefile_mask_data(rain,shp_filename,True)

 ;-- create contours of masked data
    plot_mask = gsn_csm_contour_map(wks,var_mask,res)

 ;-- add plot_mask to plot
     lnres                    =  True
     lnres at gsLineColor        = "black"
     lnres at gsLineThicknessF   =  1.0

     plot at lines = gsn_add_shapefile_polylines(wks, plot_mask, shp_filename,
lnres)

  ;-- draw the plot and advance the frame
     draw(plot_mask)
     frame(wks)
 end
-- 

*Thanks & Regards,*

*Ajay*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20200108/05041988/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ksndmc_plot.png
Type: image/png
Size: 119264 bytes
Desc: not available
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20200108/05041988/attachment-0001.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sample.csv
Type: text/csv
Size: 174753 bytes
Desc: not available
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20200108/05041988/attachment-0001.csv>


More information about the ncl-talk mailing list