[ncl-talk] Visualizing shapefiles with multiple polygons

Lyndz olagueralyndonmark429 at gmail.com
Thu May 30 09:58:51 MDT 2019


Hi,

I would like to clarify some things regarding this query.

[1] Did you create the shapefile using a GIS software?

[2] Why not split the shapefile into two: inner rectangle and the other
hollow rectangle.
Then, plot them separately?

[3] You can also use NCL to color each polygon geometry using the attached
script.

--
Lyndz



On Thu, May 30, 2019 at 9:57 PM Adam Sisco <aws0006 at uah.edu> wrote:

> Hi Rick,
>
> Thank you so much for taking a look at the underlying code for me. I
> really appreciate it. I also understand the constraints that the pivot to
> Python might place on resolving this bug. For anyone else who might be
> seeking a quick open source solution for a "shapefile island"
> visualization, Spatial Features for R (https://github.com/r-spatial/sf)
> is able to properly display the interior feature (see attached figure). R
> script below:
>
> ****************************************************
> library(sf)
> library(ggplot2)
>
> test <- st_read("***PATH TO SHAPEFILE***/test_shapefile.shp")
> ggplot() + geom_sf(data = test, fill = "lightgreen")
> ****************************************************
>
> Best,
> Adam
>
>
> On Wed, May 29, 2019 at 10:47 PM Rick Brownrigg <brownrig at ucar.edu> wrote:
>
>> Hi Adam,
>>
>> Firstly, much thanks for providing the concise, nicely illustrated
>> example of the problem!
>>
>> After looking through the code, I can believe this is a bug, and
>> unfortunately, not one easily fixed. The underlying code properly knows how
>> to decode shapefile "features" that are comprised of multiple "segments" or
>> closed loops. But in drawing, it treats each sub-polygon independently.
>> This works well, for example, for a coastal nation with a mainland and many
>> islands, but it does not work for the case you provided, one with an outer
>> hull containing interior islands/regions. Alas, the code that
>> gsn_add_shapefile_polygons() is based upon does not provide interface to
>> specify multiple nested interior loops. We can file this as a github issue,
>> but with our current prioritization, I can't promise a timely fix.
>>
>> I wish I had a better response...
>>
>> Rick
>>
>>
>> On Wed, May 29, 2019 at 11:15 AM Adam Sisco <aws0006 at uah.edu> wrote:
>>
>>> Hello NCL users,
>>>
>>> I have a question regarding the visualization of shapefiles using NCL.
>>> For the sake of this help request, I have constructed a sample shapefile
>>> with a simplified geometry to illustrate the issue I am having. The
>>> shapefile contains a polygon within the opening of larger polygon, but I'm
>>> not sure NCL's gsn_add_shapefile_polygons function is capturing the
>>> polygon-within-polygon nature of this shapefile. So that my issue can be
>>> reproduced, I have attached:
>>>
>>>    1. The sample shapefile I am attempting to plot
>>>    2. The desired visualization of the shapefile
>>>    3. The visualization that results from the
>>>    gsn_add_shapefile_polygons function
>>>    4. The NCL script used to plot the shapefile
>>>
>>> I suspect that a more nuanced approach may be needed to produce the
>>> proper visualization. If this is within the capabilities of NCL, I would
>>> appreciate any assistance you can offer. I am using NCL 6.4.0 on a Windows
>>> machine.
>>>
>>> ********************
>>> begin
>>>   wks  = gsn_open_wks("x11","shapefile_testing")
>>>
>>>   res = True
>>>   res at gsnDraw = False
>>>   res at gsnFrame = False
>>>   res at gsnMaximize = True
>>>
>>>   res at mpMinLonF = -110
>>>   res at mpMaxLonF = -75
>>>   res at mpMinLatF = 25
>>>   res at mpMaxLatF = 55
>>>
>>>   plot = gsn_csm_map(wks,res)
>>>
>>>   polyRes = True
>>>   polyRes at gsEdgesOn = True
>>>
>>>   poly = gsn_add_shapefile_polygons(wks,plot,"***PATH TO
>>> SHAPEFILE***/test_shapefile.shp",polyRes)
>>>
>>>   draw(plot)
>>>   frame(wks)
>>> end
>>> ********************
>>>
>>> Regards,
>>>
>>> *Adam Sisco*
>>> Research Associate
>>> NASA MSFC IMPACT
>>> University of Alabama in Huntsville
>>>
>>> _______________________________________________
>>> 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/20190531/4d48aada/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.ncl
Type: application/octet-stream
Size: 1369 bytes
Desc: not available
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20190531/4d48aada/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: shapefile_utils.ncl
Type: application/octet-stream
Size: 20361 bytes
Desc: not available
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20190531/4d48aada/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.png
Type: image/png
Size: 39959 bytes
Desc: not available
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20190531/4d48aada/attachment.png>


More information about the ncl-talk mailing list