How to Identify Polar Day and Night Seasons?

  • Context: Undergrad 
  • Thread starter Thread starter simurq
  • Start date Start date
  • Tags Tags
    Polar Seasons
Click For Summary
SUMMARY

This discussion focuses on calculating sunrise and sunset times in polar regions using a tool developed by Greg Pelletier. The primary issue arises from the ACOS function returning a #NUM error for latitudes above the Arctic and Antarctic Circles, where the sun does not set during certain seasons. Participants suggest implementing error trapping in a VBA application to display "Polar Day" or "Polar Night" messages based on latitude and seasonal data. The conversation emphasizes the need for accurate seasonal dates, which vary by year and longitude.

PREREQUISITES
  • Understanding of VBA programming in Microsoft Excel
  • Familiarity with trigonometric functions, specifically ACOS
  • Knowledge of polar geography and seasonal variations
  • Experience with error handling in programming
NEXT STEPS
  • Research seasonal date ranges for polar regions using astronomical data
  • Learn about error handling techniques in VBA for trapping runtime errors
  • Explore the implementation of latitude and longitude checks in programming
  • Investigate alternative methods for calculating sunrise and sunset times in extreme latitudes
USEFUL FOR

This discussion is beneficial for developers working on applications that calculate astronomical events, particularly those focusing on polar regions, as well as programmers seeking to enhance their error handling skills in VBA.

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...
 

Similar threads

  • · Replies 16 ·
Replies
16
Views
8K
  • · Replies 10 ·
Replies
10
Views
6K
  • · Replies 3 ·
Replies
3
Views
4K
  • · Replies 18 ·
Replies
18
Views
5K