riogroup / SORA

MIT License
15 stars 12 forks source link

Error in shape.get_limb when using Ellipsoid. #93

Open giuliano-margoti opened 4 weeks ago

giuliano-margoti commented 4 weeks ago

Using the following code:

` from sora import Body from astropy.coordinates import SkyCoord from sora.body.frame import PlanetocentricFrame

obj = Body(name='Quaoar', spkid=20050000, ephem=['50000_Quaoar_nima_v19l.bsp', 'de440.bsp'])

a, b, c, P = 595.207, 585.083, 452.970, 17.862 w0, ra, dec = -81.987, 17.315, 53.572 time = '2011-05-04 02:38' obj.shape = (a, b, c) obj.rotation = P obj.pole = SkyCoord(f'{ra*15}d {dec}d') obj.frame = PlanetocentricFrame(pole=obj.pole, epoch='2022-08-09 06:34', prime_angle=w0, right_hand=True) orientation = obj.get_orientation(time=time)

limb = obj.shape.get_limb( sub_observer=orientation['sub_observer'], pole_position_angle=orientation['pole_position_angle'] ) ` The following error is raised: GEOSException: TopologyException: side location conflict at -579.08617991126494 -72.504054612965845

This error indicates an issue with the geometries being merged using Shapely's unary_union. It often happens when geometries have overlapping or intersecting regions that create a "side location conflict," preventing a successful union.