円と円の始まりと終わりを検出するアルゴリズムを探していますか?
グライダーパイロットからは、一定の間隔でGPSを修正するという形で多くのフライトデータを取得しています。飛行経路を分析し、グライダーのパイロットがサーマルを見つけたときに行う「旋回」の開始と終了を検出したいと思います。 理想的には、アルゴリズムは線上の開始点と終了点を与え、1つの「円」を定義します。これらのポイントは、GPS修正の1つと等しくなる可能性があり、補間する必要はありません。 飛行経路に沿って歩き、回転数を確認し、グライダーが旋回しているかどうかを判断するための基準を設定することができました。 PostGIS拡張機能を備えたPostgreSQLを使用しているため、この問題に対するより良いアプローチがあるかどうか興味がありました。私はすでに2つの線分の角度を計算する手順を持っています: CREATE OR REPLACE FUNCTION angle_between( _p1 GEOMETRY(PointZ,4326), _p2 GEOMETRY(PointZ,4326), _p3 GEOMETRY(PointZ,4326) ) RETURNS DECIMAL AS $$ DECLARE az1 FLOAT; az3 FLOAT; BEGIN az1 = st_azimuth(_p2,_p1); az3 = st_azimuth(_p2,_p3); IF az3 > az1 THEN RETURN ( degrees(az3 - az1)::decimal - 180 ); ELSE RETURN ( degrees(az3 - …