day and night from lat, long, time?

11 views (last 30 days)
I have a vector of latitude, and vector of longitude, and a vector of UTC time.
Is there a simple way to determine whether or not it is day or night at each point? Just a simple 0,1 kind of answer?
  1 Comment
James Tursa
James Tursa on 5 Apr 2020
Convert it to a pointing vector and then find the angle between that and the Sun pointing vector. Do you have a Sun position function?

Sign in to comment.

Accepted Answer

Nina Schuback
Nina Schuback on 7 Apr 2020
Thank you for the replies!
I ended up using the sunsetsunrise.m function which gives me sunset and sunrise in UTC!

More Answers (2)

Ameer Hamza
Ameer Hamza on 5 Apr 2020
If you have the Mapping toolbox, you can use timezone(): https://www.mathworks.com/help/map/ref/timezone.html to find the hour offset from the UTC given the longitude value.
From the offset value, you can convert the UTC to the local time and based on your threshold, whether it is day or night. Or you can also use datetime() function to convert the UTC to the local time.

Meysam Mahooti
Meysam Mahooti on 26 May 2021
https://www.mathworks.com/matlabcentral/fileexchange/60157-sunrise-sunset?s_tid=srchtitle

Categories

Find more on Dates and Time in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!