How to Identify Polar Day and Night Seasons?

  • Thread starter Thread starter simurq
  • Start date Start date
  • Tags Tags
    Polar Seasons
AI Thread Summary
The discussion revolves around calculating sunrise and sunset times at latitudes above the Arctic and Antarctic Circles, where traditional formulas fail due to the continuous daylight or darkness during certain seasons. The user seeks a way to programmatically identify polar day or night by trapping error messages from the arccos function in their VBA application. Participants suggest checking latitude and season dates to determine the appropriate message instead of displaying an error. The conversation highlights the need for accurate seasonal data, which varies by year and location, to effectively implement this feature. Ultimately, the user aims to enhance their program by incorporating these solutions for better error handling.
simurq
Messages
6
Reaction score
0
Hello good people,

I'm using http://www.ecy.wa.gov/programs/eap/models/twilight.zip by Greg Pelletier to calculate sunrise/sunset times at a desired location. However, the sheet formulae return an error message (#NUM) for latitudes above the Arctic/Antarctic Circle since the sun/moon almost never set there depending on latitude and season (summer/winter). Actually, it's because the ACOS function (-1 to 1) used in the sheet for HA sunrise degree calculation fails...

Anyway, what I'm really after is a trap to confine this error message in the program I'm writing so that instead of an error message I could write "Polar Day" or "Polar Night" depending on latitude and season.

So, how can I (programmatically?) know which season is on to get a relevant "polar day/night" message pop up?

Thanks!

Rustam
 
Last edited:
Astronomy news on Phys.org
Why not check the latitude value and if it's in the polar range issue your message else call the function that does the computation that with this value.
 
Yes, but it's half of the job - the other half is the season of year which I don't actually know. This would further help with determining polar day and polar night depending on season...
 
Do you know the season dates or does that vary from year to year?
 
That's exactly what I would like to know, Sir! The rest I'll do programmatically...
 
Be nice you didn't explain it well, you didn't show any code. Based on your description, I'm trying to provide some effective answers.

How do you run this program? Do you execute it from a shell script or from your own program? How does it return the error?

In languages like Java, methods will throw an exception that the application can capture and write out some message.

If the program runs from a shell script then maybe it returns a program code to the shell that you can query?
 
Sorry if I sound rude to you! It's not my intention anyway...

I've developed my app in VBA under MS Excel. And it returns runtime 1004 error failing to properly run the arccos function which, in turn, fails to return a value for latitudes above Arctic circle, that is when the sun almost never sets in summer.

You can also check it from the file in my OP.

So, my intention is to trap the error which is easy if I know the seasons.
 
jedishrfu said:
Do you know the season dates or does that vary from year to year?
Oh yes, it does. It also varies by longitude/timezone.
Are the year, longitude and timezone used as arguments?
 
Yes, the arguments passed to the function are year, month, day, lat, lon, timezone, and dst (1 if on, 0 if off).

But again, when the sun/moon is below the horizon (never rises), the function returns a #num, runtime error, which I can trap easily. But to do this "nicely" (showing either "polar day" or "polar night" message), I need to know when exactly that season starts / ends...
 
  • #10
simurq said:
But again, when the sun/moon is below the horizon (never rises), the function returns a #num, runtime error, which I can trap easily. But to do this "nicely" (showing either "polar day" or "polar night" message), I need to know when exactly that season starts / ends...
Do you? Cannot you just put the error trap before the arccos function - if the argument is outside the bounds of +1 to -1, you can divert to polar time without attempting the arccos function, and then use the value of the argument (whether over +1 or under -1) in deciding whether it is polar day or night?
 
  • #11
Thanks! I'll try to replicate what you just recommended. I'll come back...
 
Back
Top