I am attempting to fill in a circle on a map to represent the field of
view from a geostationary satillite. I am using the PolyFill routine,
but it keeps coming back with a "% Internal error: Border sort."
Any suggestion on how to get around this error?
Sample code below.....
Kelly
=========================KelMap.pro========================= ======================
PRO FOV2, longitude, latitude, SatRadius, ColorNum
;
; Procedure FOV will determine the maximum field of view
; and draw a circle around the subsatellite point.
;
; Input:
; latitude : Earth latitude of subsatellite point
; longitude : Earth latitude of subsatellite point
; SatRadius : Satellite radius from earth center
; ColorNum : Color number
;
EarthRadius = 6.371009D6 ; Mean Earth Radius
ScanAngle = ASIN( EarthRadius / SatRadius)
Arc_Dist = !DPI - 1.57080D - ScanAngle
LonLat0 = [longitude, latitude] ; Initial point specified in radians
lon = FLTarr(60)
lat = FLTarr(60)
FOR lcv = 0, 59 DO BEGIN
Az = lcv * 10.0
Results = LL_ARC_DISTANCE(LonLat0, Arc_Dist, Az, /Degrees)
lon(lcv) = results(0)
lat(lcv) = results(1)
ENDFOR
oPLOT, lon, lat, Thick=2, COLOR=ColorNum
POLYFILL, lon, lat, COLOR = ColorNum
END
PRO KelMap, GOESW=GOESW, GOESE=GOESE, MSG=MSG, Met8=Met8
;
;
;
DEVICE, decompose=0
!P.BACKGROUND = 255
WINDOW, 0, XSize=1000, YSize=500, Title='Global View'
MAP_SET, 0, 0, /MOLLWEIDE, /NoBorder, XMargin = [0,0], YMargin=[0,0]
MAP_CONTINENTS, Color = 120, /Fill
MAP_GRID, Color = 50
;
;
;
!P.FONT = 0
IF ( KEYWORD_SET(GOESW) ) THEN BEGIN
XYOUTS, -135.0, 0.0, 'GOES-W', Align=0.5, Color=50
SatRad = 42155090.0D
FOV2, -135.0, 0.0, SatRad, 100
ENDIF
IF ( KEYWORD_SET(GOESE) ) THEN BEGIN
SatRad = 42155090.0D
XYOUTS, -75.0, 0.0, 'GOES-E', Align=0.5, Color=50
FOV2, -75.1, 0.1, SatRad, 100
ENDIF
IF ( KEYWORD_SET(MSG) OR KEYWORD_SET(Met8) ) THEN BEGIN
SatRad = 31350688.0D
XYOUTS, 0.0, 0.0, 'Met-8', Align=0.5, Color=50
FOV2, 0.0, 0.0, SatRad, 100
ENDIF
!P.FONT = -1
END
|