[ncl-talk] landseamask

Ehsan Taghizadeh ehsantaghizadeh at yahoo.com
Thu Dec 20 16:43:07 MST 2018


 Dear Mary,I'm so sorry that this debugging has been prolonged. I've tried to fix the problems by myself, however unfortunately I failed.I've put input data files in ftp: (wrfout_d01_2018-12-19.tar.gz, shp_stations.tar.gz, shp_ostan.tar.gz), also my color table (tvprecp.rgb).I've also attached my script, and two figures which reflect my problem. As you can see, national boundaries (black poly lines) and province boundaries (red poly lines) are masked in WRF5.png by precipitation contours.
I hope you have time to consider my problem again.SincerelyEhsan    On Friday, December 21, 2018, 2:01:08 AM GMT+3:30, Mary Haley <haley at ucar.edu> wrote:  
 
 I'm not sure I follow all that logic, because I'm losing track of what's being drawn when.  :-)
But, this might work:

  lnres at gsPolyDrawOrder = "PostDraw" 
If that doesn't work, then I'll need more clarification on what you mean by things being masked or not masked. For example, in the image you provided, I can see the red province lines, but I'm not sure where you were expecting the markers to show up.
At some point I may need to have your script and data if I'm going to continue debugging this.
--Mary


On Thu, Dec 20, 2018 at 12:36 PM Ehsan Taghizadeh <ehsantaghizadeh at yahoo.com> wrote:

 Dear MaryAs you suggested I add following line:    res_tot at cnLineDrawOrder    = "PostDraw"
and it works well. Now I have contour lines and also raster contours become smooth. However I still have problem with outlineboundaries and also province shapefiles. I've used below line:    res_ter at mpOutlineDrawOrder = "PostDraw"
However as you may guess it doesn't work, because after that I have:
    res_tot at cnFillDrawOrder    = "PostDraw"Same problem is for province shapefile, as province boundaries are masked (red lines). But interesting (may be just for me) markers in other shapefile (MASA, OIGG, ...) are not masked!So the remained problem is masking of outlineboundaries and province boundaries in shapefile (WRF4.png is attached).
I'll be thankful if I could have your help about it.
SincerelyEhsan    On Thursday, December 20, 2018, 8:29:02 PM GMT+3:30, Mary Haley <haley at ucar.edu> wrote:  
 
 Hi Ehsan,
Good catch on the inland water resource addition!
When you set cnFillDrawOrder to PostDraw, this causes the filled contours to be drawn last, and since these are raster contours and hence blocky looking, you are seeing the artefacts of the blocks bleeding into the contour lines
There is a cnLineDrawOrder resource, so perhaps try setting to to "PostDraw" and see if it gets drawn on top of the filled contours. You might have to play around with the cnFillDrawOrder too, maybe setting it to "Draw" instead of "PostDraw".
If you continue to have problems, let us know.  There are other ways to do this kind of ordering, but it can get a little more involved.
Good luck,
--Mary



On Thu, Dec 20, 2018 at 6:41 AM Ehsan Taghizadeh <ehsantaghizadeh at yahoo.com> wrote:

 Dear MaryYour answer is exactly what I want. However I still have 2 problems and I'll be thankful for any help about them.1. Caspian sea and Black sea didn't fill (WRF1.png in attached)! So I added following line:    res_ter at mpInlandWaterFillColor = "SkyBlue"
and it seems works (WRF2.png in attached).2. However in both figures I missed last shaded contours (here precipitation) on water lands! So I added following line too:  res_tot at cnFillDrawOrder = "PostDraw"     ; Also can try "Predraw"Now I missed contour lines for both precipitation  and boundaries (WRF3.png in attached)! Beside that I've got RasterFill for precipitation. I've used   res_tot at cnFillMode           = "RasterFill"however it didn't affect for figures (WRF1.png and WRF2.png), but it affected WRF3.png!
My plot lines are as below:    plot_terrain = gsn_csm_contour_map(wks,HGT,res_ter)  add_outlines_to_map(wks,plot_terrain) ; OK    add_places_to_map(wks,plot_terrain) ; OK    plot_raintot = gsn_csm_contour(wks,RainTotal,res_tot)
    overlay(plot_terrain, plot_raintot)    draw(plot_terrain)    frame(wks)
I hope my email is clear and I ask my problem correctly. Also I attached my script, even though it seems sloppy and doesn't have input data!Any help will be appreciated.
SincerelyEhsan    On Wednesday, December 19, 2018, 7:55:28 PM GMT+3:30, Mary Haley <haley at ucar.edu> wrote:  
 
 Ehsan,
Do you mean that you want to fill the ocean in some solid color and hence mask any data in that area? If so, you can try:
  res at mpFillOn = True  res at mpOceanFillColor = "SkyBlue"     ; use whatever color you want  res at mpLandFillColor = "Transparent"    ; to make sure land doesn't get filled
You might also need to set some draw order resources, to make sure the filled contours and filled map areas get drawn in the right order:
  res at cnFillDrawOrder = "Draw"     ; Also can try "predraw"  res at mpFillDrawOrder = "PostDraw"
You can see some masking examples at:
http://www.ncl.ucar.edu/Applications/mask.shtml

Use your browser search to look for "draworder".
--Mary

On Wed, Dec 19, 2018 at 8:13 AM Ehsan Taghizadeh <ehsantaghizadeh at yahoo.com> wrote:

Hi,May I ask how to fill sea (lake, ...) areas differently from land. I've tried using "https://www.ncl.ucar.edu/Applications/grid_fill.shtml" (grid_fill_5.ncl) and I've got attached map.That part which I used from grid_fill_5.ncl are:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Read/open NCL'ls crude (1x1) land-sea mask;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  a2    = addfile("$NCARG_ROOT/lib/ncarg/data/cdf/landsea.nc","r")  lsdata = a2->LSMASK  lsm  = landsea_mask(lsdata, xlat, xlong)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
     HGT2  := HGT                                  ; replicate for plot     HGT2  = where(lsm.eq.0 , HGT2 at _FillValue , HGT2)     HGT2  = where(lsm.eq.2 , HGT2 at _FillValue , HGT2)     HGT2  = where(lsm.eq.4 , HGT2 at _FillValue , HGT2);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
where "HGT" is "Terrain Height" of WRF. The issue of the attached file is raster filled of sea areas. However is there a better way to fill sea areas?
SincerelyEhsan_______________________________________________
ncl-talk mailing list
ncl-talk at ucar.edu
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk

  _______________________________________________
ncl-talk mailing list
ncl-talk at ucar.edu
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk

  _______________________________________________
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/20181220/64223f64/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: WRF_pcp_tv.ncl
Type: application/octet-stream
Size: 13382 bytes
Desc: not available
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20181220/64223f64/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: WRF5.png
Type: image/png
Size: 295591 bytes
Desc: not available
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20181220/64223f64/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: WRF6.png
Type: image/png
Size: 258059 bytes
Desc: not available
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20181220/64223f64/attachment-0003.png>


More information about the ncl-talk mailing list