Re: polygon error

From: DONG Li <dongli_at_nyahnyahspammersnyahnyah>
Date: Sun Nov 14 2010 - 18:08:11 MST

Dear Mary,

My real NCL script needs some data which is too large for transferring. Here is a small script for debugging, you can use the following vertices:

-127.338600 -87.929138
-146.644073 -86.213120
179.307693 -85.080284
144.447769 -85.944191
112.320877 -87.895256

--------------------------------
#!/bin/bash

echo "Input the coordinates of the vertices:"
lon1=go
n=-1
while [ $lon1 ]; do
    read lon1 lat1
    lon=$lon,$lon1
    lat=$lat,$lat1
    n=$[$n+1]
done
lon=${lon%%,}
lon=${lon##,}
lat=${lat%%,}
lat=${lat##,}
echo "Input the angle of viewpoint:"
read angle

ncl 1> /dev/null <<-EOF
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"

begin

    numPoint = ${n}
    lonPoint = (/${lon}/)
    latPoint = (/${lat}/)

    lonMin = min(lonPoint)
    lonMax = max(lonPoint)
    latMin = min(latPoint)
    latMax = max(latPoint)

    lonCenter = (lonMin+lonMax)/2
    latCenter = (latMin+latMax)/2

    wks = gsn_open_wks("x11", "spherical_polygon")
    
    mapRes = True
    mapRes@gsnDraw = False
    mapRes@gsnFrame = False
    mapRes@mpGreatCircleLinesOn = True
    mapRes@mpGridAndLimbOn = True
    mapRes@mpGridLineColor = "Background"
    mapRes@mpProjection = "Satellite"
    mapRes@mpCenterLonF = lonCenter
    mapRes@mpCenterLatF = latCenter
    mapRes@mpLimitMode = "Angles"
    mapRes@mpLeftAngleF = ${angle}
    mapRes@mpRightAngleF = ${angle}
    mapRes@mpBottomAngleF = ${angle}
    mapRes@mpTopAngleF = ${angle}

    map = gsn_csm_map(wks, mapRes)

    textRes = True
    textRes@txFontHeightF = 0.01
    textRes@txFont = "helvetica-bold"

    do i = 0, numPoint-1
        text = gsn_add_text(wks, map, sprinti("%d", i+1), lonPoint(i)-0.5, latPoint(i)-0.5, textRes)
    end do

    draw(map)

    edgeRes = True
    edgeRes@gsLineThicknessF = 0.5
    edgeRes@gsLineColor = "blue"

    lon = new(2, float)
    lat = new(2, float)

    do i = 0, numPoint-1
        j = i-1
        if (i .eq. 0) then
            j = numPoint-1
        end if
        lon(0) = lonPoint(j)
        lon(1) = lonPoint(i)
        lat(0) = latPoint(j)
        lat(1) = latPoint(i)
        gsn_polyline(wks, map, lon, lat, edgeRes)
    end do

    vertexRes = True
    vertexRes@gsMarkerIndex = 1
    vertexRes@gsMarkerSizeF = 0.01
    vertexRes@gsMarkerColor = "red"

    gsn_polymarker(wks, map, lonPoint, latPoint, vertexRes)

    if (True) then
        fillRes = True
        fillRes@gsFillsOn = True
        fillRs@gsFillColor = "red"

        gsn_polygon(wks, map, lonPoint, latPoint, res)
    end if

    frame(wks)

end
EOF

--------------------------------

Thanks for help!

DONG Li

On 2010-11-15, at 上午6:21, Mary Haley wrote:

> Dear DONG LI,
>
> It's possible that you are running into a different problem. Can you provide us with a short NCL script that shows the problem so we can run it here?
>
> Thanks,
>
> --Mary
>
> On Nov 14, 2010, at 7:56 AM, DONG Li wrote:
>
>> Dear all,
>>
>> I want to display a Voronoi diagram on the sphere, and each cell has a value. So I need to plot a lot of filled polygons. But I observed that some polygons have been wrongly filled, that is the entire map has been filled except the polygons! I searched out the mail list, and found some one has already encountered such problem:
>>
>> http://www.ncl.ucar.edu/Support/talk_archives/2009/0109.html,
>>
>> and "Mary Haley" said "This problem has been fixed and will be in the 5.1.0 release. It had
>> to do with floating point precision in some low-level map code." But I am using 5.2.1, why such a problem still exist? The following are an example of problematic polygon:
>>
>> -127.338600 -87.929138
>> -146.644073 -86.213120
>> 179.307693 -85.080284
>> 144.447769 -85.944191
>> 112.320877 -87.895256
>> -127.338600 -87.929138
>>
>> Thanks for help!
>>
>> DONG Li
>>
>> _______________________________________________
>> ncl-talk mailing list
>> List instructions, subscriber options, unsubscribe:
>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
Received on Sun Nov 14 18:08:34 2010

This archive was generated by hypermail 2.1.8 : Mon Nov 15 2010 - 08:55:22 MST