2010-04-09 21 views
5

şafak/alacakaranlık kez nasıl hesaplanır. (Daha net olmak gerekirse, güneşin 0 ° -6 ° arasında olduğu zaman olarak tanımlanan sivil şafak/sivil alacakaranlık saatlerini arıyorum). Bir sonraki adım olarak, şafak başlangıç ​​ve alacakaranlık bitiş zamanlarını hesaplamak istiyorum. Hesapların çok benzer olması gerektiğine inanıyorum.Şu anda gündoğumu/günbatımı kez hesaplamak için <a href="http://souptonuts.sourceforge.net/code/sunrise.c.html" rel="nofollow noreferrer">this code</a> kullanıyorum

Benim fikrim şudur: şafak başlangıcını (alacakaranlık biti) bir yer için hesaplamak istersem, sadece doğuya (gün batımına) ait zamanları 6 ° daha doğudaki (batı) bir yer için hesaplardım.

birileri bu varsayımı teyit edebilir, ya da ben yanlış düşünüyorum?

Yanıtlarınız için teşekkürler!

- Ry

DÜZENLEME: Düşünce bu konuda biraz daha ve benim varsayım yanlıştır sonucuna vardı. 6 ° Doğu hareket etmek yanlıştır, 6 ° ortogonal ışığa/gölge sınırına doğru hareket etmek doğru olacaktır. (Dünyanın ekseninin 23.xx °, ancak 90 ° hareket ettirilmemesi - doğuya doğru hareket etmesinin bir şey değiştirmeyeceğini düşünürsek, bariz hale gelir).

+0

http://stackoverflow.com/questions/7064531/ çözüm gider sunrise-sunset-kez-in-c/9425781 # 9425781 – Geetha

cevap

2

kod calcHourAngle* yöntemlerinde bir sabiti (90,833) kullanır. Gün doğumu/gün batımının these definitions'una bakarsanız, Teknik Tanımlar ve Hesaplama Detayları altında aynı 90.833 sabiti farkedeceksiniz. Biraz daha aşağı, sivil alacakaranlık altında, 96 benzer sabit kullanılır. Belki de bu değişkeni değiştirmek sizin aradığınızı alır mı?

+0

Teşekkürler! Tam da aradığım şey bu! – ryyst

0

Bu ama o yükseklik önemsiz olduğunu varsaymak tamam yalnızca çalışır. Olmanız gereken yere bağlı olarak, yüksek bir dağın tepesinde bulunan bir kişi, deniz seviyesinden biraz önce (veya sonra) güneşin doğuşunu (veya gün batımını) deneyimleyecektir. Örneğin, Everest Dağı üzerinde duruyorsanız, gün doğumu ve gün batımı deniz seviyesine göre (kaynak: zarf matematiğinin arkası) ~ 16 dakika kadar kaydırılır.

Not o daha aşırı enleminiz, uzun yaz günlerinde ve daha uzun kış geceleri arasındaki zıtlıklar starker. Yeryüzündeki bazı yerler, yazın 24 saat boyunca güneş ışığını alır ve gecenin 24 saati boyunca karanlıkla örtülür. Güneşin en alçak olduğu ve gökyüzünün en yüksek olduğu zamanlar arasındaki zamanların yarısını seçebilmenize rağmen, bu yerlerde günlük "şafak" ya da "alacakaranlık" yoktur.

+0

Peki, güneşin konumunu hesaplamak için kullanılan algoritmalar, yine de, arkaplan dairesinin üzerindeki yerlerde çok yanlış, bu yüzden programımda tüm bu yerleri hariç tutuyorum. Artık yükseklik de desteklenmiyor. Ancak, algoritmanın New York City gibi yerler için çalıştığını düşünüyorsunuz (örn. Aşırı yerler yok)? – ryyst

+0

Eğer bunun için sorun yoksa, evet, işe yaramalı. –

+0

Re: New York, muhtemelen hangi katta olduğunuza bağlıdır .. ;-) –

0

Bu çalışmaz. Bunu kendinize ispatlamanın kolay bir yolu, kutuplarda, vücudunuzu döndürdüğünüzde güneşin yükselişinin değişmemesidir. Bu nedenle, doğuya ya da batıya 6 derece gitmeniz zamanınızı etkilemez. Eğer ekvatora daha yakın iseniz

, bu hesaplama muhtemelen daha doğru olacaktır, ama şimdiye kadar mükemmel olduğunu sanmıyorum. Bağlanmak

+0

@clahey: Sanırım iddianız kapalı. Kutuplarda bir tekillik var.Kuzey Kutbu'ndan N derece "doğuya" geçemezsin, çünkü gidecek başka bir yer yok. Aynı zamanda, yerinde dönen hakkında konuşmuyoruz, farklı bir çeviri olan bir paralel boyunca bir açısal mesafeyi hareket ettirmekten bahsediyoruz. –

+0

Tamam, kuzey kutbuna 10 adım yürüyün. 6 derece doğu, soldan bir adım. Gün batımının zamanının minik bir miktarla değiştiğini göreceksiniz. Ancak, sivil alacakaranlığın başlangıcı ve bitişi, birbirlerinden ayrı olarak günlerdir (haftalar, aylar). – clahey

İlgili konular

 İlgili konular