2013-02-24 2 views
3

저는 PyEphem을 사용하여 여러 번 하늘에서 태양의 위치를 ​​계산하고 있습니다.PyEphem : 방위각에서 태양의 고도를 계산할 수 있습니까

필자는 Observer 포인트 (스톤 헨지에서 일어나는 일이 있습니다)를 사용하여 PyEphem을 사용하여 일출 시간, 일몰 시간, 고도 및 각도 (N에서의 각도)를 하루 중 언제든지 계산할 수 있습니다. 훌륭해. 문제 없어.

그러나 실제로 내가 필요로하는 것은 알려진 방위각에서 태양의 고도 각을 계산할 수 있어야합니다. 그래서 나는 같은 관측점 (장거리/위도/고도/날짜 (시간이 아닌 yy/mm/dd)과 태양에 대한 방위각을 설정합니다. 그리고이 입력으로부터 태양의 고도와 그 방위각에있는 시간을 계산하십시오.

필자는 Sun.date와 Sun.az를 설정하고 그 값에서 뒤로 작업 할 수 있기를 기대했지만, 아아. PyEphem으로 접근하는 방법에 대한 생각 (그리고 접근하기 쉬운 경우)?

내가 볼 수있는 유일한 다른 옵션은 내가 원하는 방위각의 오차 범위 안에 들어올 때까지 일련의 반복을 통해 방위각에 몰래 들어가는 것입니다.하지만 그것은 단지 총체적입니다. PyEphem 내가 얼마나 쉽게 또는 어렵게 모른다하고있는 내부 계산의 세부 사항을 모른 채 사전에

감사, 데이브

답변

0

은 당신이 원하는 결과를 제공하는 계산을 반전하는 것입니다.

"몰래 켜기"옵션과 관련하여 방위각이 원하는 값보다 큰 쪽과 큰 쪽이있는 두 시작 시간 (일출과 정오)을 선택할 수 있습니다. 그런 다음 간단한 "반감 간격"방식을 사용하여 대략적인 솔루션을 신속하게 찾으십시오.

+0

내가 잠잠 해지면 분명히 "간격을 반으로 줄이기"를 고려할 것입니다. 감사! – davehunt00

2

천문학 소프트웨어는 JPL이 특정 날짜 범위를 다루는 일련의 다항식으로 표현하는 지구와 태양의 위치를 ​​예측하여 태양의 위치를 ​​예측합니다. "태양은 언제 방위각이 될 것인가? z?"이라고 묻는 것은 각각 다른 속도로 변화하는 3 개의 다른 다항식 (태양의 다항식, 태양 주위를 돌고있는 지구 - 달의 중심, 지구 barycenter 주위를 돌면서), 두 위치의 차이를 정확히 어떤 각도로 가져 오게됩니다.

그리고 그 문제는 "총체적인"수학 문제의 범주에 속합니다. 전문가가 말했듯이 "비 폐쇄 형 솔루션 문제"라고합니다. 그러나 나는 "총체적인"단어를 좋아합니다. 우리가 대부분의 사람들이 우리에게 대답을주는 대신 시행 착오로 세상의 많은 부분을 다루어야 만한다는 것을 알았을 때 우리 대부분이 느끼는 것을 잘 잡아냅니다.

다행히, 과학의 광대 한만큼 견본을 설치하고 시도 할 때 "이 큰 복잡한 기능을 정확하게 값을 Z에 도달 할 것인가?"당신이 할 수있는 경우 요청하는 표준 방법이 있다는 것을 의미에서 "총"입니다 SciPy는 점점 더 대중화 된 Python 과학 라이브러리입니다. 각각의 다른 전술을 사용하는 솔루션에 몰래 들어가는 전체 루틴 모음을 제공합니다.다른 응답자는 이미 각 시험에서 검색 공간을 절반으로 줄인 전술을 확인했지만 일반적으로 가장 느린 (극단적 인 경우는 있지만 가장 안전한) 방법입니다. 여기에 몇 가지 다른 사람은 다음과 같습니다

http://docs.scipy.org/doc/scipy/reference/optimize.html

는 태양의 방위각은 방위각 정확히 때 함수가 마지막으로 0을 반환 할 원하는 방위각에서 시간 t이다 "얼마나 멀리 떨어져"반환하는 작은 함수를 만듭니다 맞습니다.

def f(t): 
    ...   
    return desired_az - sun.az 

그런 다음 SciPy 페이지에서 "루트 찾기 스칼라 함수"중 하나를 시도해보십시오. bisect() 함수는 다른 응답자와 마찬가지로 검색 영역을 절반으로 줄이면 내용을 좁힐 수 있습니다. 그러나 제 생각에 뉴턴의 방법은 훨씬 덜 "총체적"이며 훨씬 더 빠릅니다. newton() 또는 brentq()을 시도해보고 어떻게되는지보십시오!

+0

감사합니다! 나는 이것들을 점검하고 내가 취하는 방향을 다시보고 할 것이다. 당신이 응답 한 시간을 고맙게 생각합니다. 디 – davehunt00

관련 문제