- 您可以自由地:
- 共享 – 复制、发行并传播本作品
- 修改 – 改编作品
- 惟须遵守下列条件:
- 署名 – 您必须对作品进行署名,提供授权条款的链接,并说明是否对原始内容进行了更改。您可以用任何合理的方式来署名,但不得以任何方式表明许可人认可您或您的使用。
- 相同方式共享 – 如果您再混合、转换或者基于本作品进行创作,您必须以与原先许可协议相同或相兼容的许可协议分发您贡献的作品。
https://creativecommons.org/licenses/by-sa/2.5CC BY-SA 2.5 Creative Commons Attribution-Share Alike 2.5 truetrue
R-source:
#formulas, equations and notation from http://homeweb2.unifr.ch/hungerbu/pub/sonnenuhr/sundial.ps
# and by the paper of C. Blatter (http://dz-srv1.sub.uni-goettingen.de/sub/digbib/loader?did=D241775)
epsilon=23.45*2*pi/360
alpha =78.5 *2*pi/360
kappa =0.016722
mu<-function(t,epsilon,alpha,kappa) {
zaehl= -sin(delta(t,kappa))+tan(epsilon/2)^2*sin(2*(t-alpha)+delta(t,kappa))
nenn = cos(delta(t,kappa))+tan(epsilon/2)^2*cos(2*(t-alpha)+delta(t,kappa))
return( atan(zaehl/nenn) )
}
# approximation by Blatter
psi<-function(t) {
return(t+delta(t))
}
delta<-function(t,kappa) {
return( 2*sin(t)*kappa+5/4*sin(2*t)*kappa^2 )
}
png(filename="Zeitgleichung.png", width=1024, height=768, pointsize=12)
par(bg="whitesmoke")
time=seq(-0.6,2*pi+0.4,length=365+(0.6+0.4)/(2*pi)*365)
da<-paste("1.",as.character(seq(1,12,by=2)),".07",sep="")
da<-as.Date(c(da,"1.1.08"),"%d.%m.%y")
#umrechungsfaktor: 24h=2*pi
plot(time,mu(time,epsilon,alpha,kappa)*24*60/(2*pi),type="l",col="red",xlab="Tag",ylab="Zeitgleichung in Minuten",main="Zeitgleichung: wahre Ortszeit - mittlere Ortszeit",cex.main=1.5,lwd=3,xaxt="n",xaxs="i",xlim=range(time))
lines(time,mu(time,epsilon=0,alpha,kappa)*24*60/(2*pi),lwd=2,col="navy",lty="dotdash")
lines(time,mu(time,epsilon,alpha,kappa=0)*24*60/(2*pi),lwd=2,col="purple",lty="dashed")
#grid
abline(h=c(-15,-10,-5,5,10,15),lty="dotted",col="grey")
abline(h=0,lty="solid",col="grey33")
tage=cumsum(c(0,31,28,31,30,31,30,31,31,30,31,30,31))/365-3/365
abline(v=tage*2*pi,lty="dotted",col="grey")
axis(1,at=seq(0,2*pi,length=7)-3*2*pi/365,labels=as.character(da,"1. %b"))
legend(x=5.5,y=-10.9,legend=c("Zeitgleichung","ohne Ekliptik","auf Kreisbahn"),col=c("red","navy","purple"),lwd=c(3,2,2),lty=c("solid","dotdash","dashed"))
dev.off()