meineko’s blog

元つくばの某独立行政法人勤務の植物屋です。最近は、ほぼ、突発天体の話題です。

TAO Survey

以前使っていたIdentify.pyの同定ルーチンは、赤緯赤経をつかって距離を計算していました。

def calc_distance (myRA, myDec, tRA, tDec):
        distance=math.sin(d2rad(myDec)) * math.sin(d2rad(tDec)) + math.cos(d2rad(myDec)) * math.cos(d2rad(tDec)) * math.cos(d2rad(myRA - tRA))
        return math.acos(distance) * 180.0 * 3600.0 / math.pi

calc_distance(float(obj[id]['RA']),float(obj[id]['DE']),float(gcvs[testid]['RA']), float(gcvs[testid]['DE'])) < 36.0


VSdata.pyでは、xyz座標を使って、範囲指定で、

...(o.x>(%s-f.pixel_scale*1.38e-5) and o.x<(%s+f.pixel_scale*1.38e-5)) and (o.y>(%s-f.pixel_scale*1.38e-5) 
and o.y<(%s+f.pixel_scale*1.38e-5)) and (o.z>(%s-f.pixel_scale*1.38e-5) and o.z<(%s+f.pixel_scale*1.38e-5)'
,[xyz['x'], xyz['x'], xyz['y'], xyz['y'], xyz['z'], xyz['z']])

で、判定しています。


で、昨日の資料で言うとRectangular Searchをしているのですが、こちらも、距離にしてRadial Searchした方が良い?
#あれ、でも、範囲での絞り込みが、xyz座標系上なんだから、Rectangularではないか?<だから、算数のできない人はorz


よーし、パパがんばって、距離を計算しちゃうぞ、

...SQRT((%s-o.x)*(%s-o.x)+(%s-o.y)*(%s-o.y)+(%s-o.z)*(%s-o.z))) < (f.pixel_scale*1.00e-5)',[xyz['x'], xyz['x'], xyz['y'], xyz['y'], xyz['z'], xyz['z']])

これでどうでしょう?
これじゃ直線距離で球面上の距離じゃないか?
でも、充分近い点なら、近似でOK?
例によって、1.00e-5って係数はいい加減です。


これで、R Lepとかは、いいのですが、VY CMaとかは、誤検出が増えます。
#同定ミスはVで撮ってた頃のやつばかりです。Vは、諦める?