星空研究Memo

ここは某天文屋の外部記憶装置である。

Aitoff projection on R part 2

2011-07-05 13:34:51 | R言語

Aitoff projection に変換するコードと作図用の外枠を描くコードをメモ(補助線は省略)。

=============

d <- read.csv("nova_catal_2010.csv", header=T)

 pi <- 3.14159265
 rad <- pi/180
 deg <- 180/pi

#-----外枠
   L1 <- seq(-180, 180, length=100)
   B1 <- rep(-90:-90, length=100)
  
   B2 <- seq(-90, 90, length=100)
   L2 <- rep(180:180, length=100)
  
   L3 <- seq(180, -180, length=100)
   B3 <- rep(90:90, length=100)
  
   B4 <- seq(90, -90, length=100)
   L4 <- rep(-180:-180, length=100)
         
   outer_l <- c(L1,L2,L3,L4)
     outer_l <- outer_l*rad
   outer_b <- c(B1,B2,B3,B4)
     outer_b <- outer_b*rad

outer_a <- acos(cos(outer_b)*cos(outer_l/2))
sinc_outer_a <- sin(outer_a) / outer_a

outer_x <- (2*cos(outer_b)*sin(outer_l/2))/sinc_outer_a
outer_y <- sin(outer_b)/sinc_outer_a

outer_x <- outer_x*deg
outer_y <- outer_y*deg

plot(outer_x,outer_y, typ="l",
     ylim=c(-90, 90), xlim=c(-180,180),
     xaxt="n", yaxt="n", ann=F)

#-----読み込みデータの座標変換
 l <- (d[[2]] *-1) *rad
 b <- d[[3]] *rad

a <- acos(cos(b)*cos(l/2))
sinc_a <- sin(a) / a

x <- (2*cos(b)*sin(l/2))/sinc_a
y <- sin(b)/sinc_a

aitoff <- data.frame(x *deg, y *deg)
points(aitoff, col="red")

 


最新の画像もっと見る

4 Comments

コメント日が  古い順  |   新しい順
Unknown (meineko)
2011-07-06 15:42:30
> pi <- 3.14159265
あれ?piって予約語じゃなかったでしたっけ?
> pi
[1] 3.141592653589793
返信する
Unknown (meineko)
2011-07-06 15:44:32
なにかうまくなかったので、上のコメントの再投稿です。

piって予約語じゃなかったでしたっけ?
わざわざ pi <- 3.14159265と、代入しなくても?
返信する
Unknown (meineko)
2011-07-06 15:45:17
に代入しなくても?
返信する
Unknown (Iak)
2011-07-06 15:56:59
>meinekoさん
ご指摘ありがとうございます、本当ですね(^^;
pi って打ったら普通にでてきました・・・
なぜわざわざ自分で代入したのか、謎です(w;
返信する

post a comment