Calculate dark night, blue hour and golden hour. Adjust where which information should go

merge-requests/1/head
Zwarf 2022-02-17 11:14:29 +01:00
rodzic 706bb24bed
commit 421c119f8d
14 zmienionych plików z 200 dodań i 119 usunięć

Wyświetl plik

@ -57,9 +57,5 @@ double
iteration_time = g_date_time_add_minutes (iteration_time, 24*60/NUM_DATA_POINTS);
}
g_print ("Milky Way: Azimuth now: %f, Elevation now: %f\n",
array_coordinates_milky_way[144*2],
array_coordinates_milky_way[144*2+1]);
return array_coordinates_milky_way;
}

Wyświetl plik

@ -87,9 +87,5 @@ double
iteration_time = g_date_time_add_minutes (iteration_time, 24*60/NUM_DATA_POINTS);
}
g_print ("MOON: Azimuth now: %f, Elevation now: %f\n",
array_coordinates_moon[144*2],
array_coordinates_moon[144*2+1]);
return array_coordinates_moon;
}

Wyświetl plik

@ -79,9 +79,5 @@ double
iteration_time = g_date_time_add_minutes (iteration_time, 24*60/NUM_DATA_POINTS);
}
g_print ("SUN: Azimuth now: %f, Elevation now: %f\n",
array_coordinates_sun[144*2],
array_coordinates_sun[144*2+1]);
return array_coordinates_sun;
}

Wyświetl plik

@ -206,40 +206,87 @@ double
int
*picplanner_get_index_rise_upper_set (double *coordinates_array)
{
int rise = -1;
int upper = 0;
int set = -1;
int *rise_upper_set_array = malloc (sizeof (int) * 2);
int *rise_upper_set_array = malloc (sizeof (int) * 3);
double elevation;
double upper_max = coordinates_array[0+1];
double last_elevation = coordinates_array[0+1];
for (int i=0; i<3; i++)
rise_upper_set_array[i] = -1;
for (int i=0; i<NUM_DATA_POINTS; i++)
{
double elevation = coordinates_array[i*2+1];
elevation = coordinates_array[i*2+1];
if (elevation > upper_max)
{
upper = i;
rise_upper_set_array[1] = i;
upper_max = elevation;
}
if (last_elevation < 0 && elevation > 0)
{
rise = i;
rise_upper_set_array[0] = i;
}
if (last_elevation > 0 && elevation < 0)
else if (last_elevation > 0 && elevation < 0)
{
set = i;
rise_upper_set_array[2] = i;
}
last_elevation = elevation;
}
rise_upper_set_array[0] = rise;
rise_upper_set_array[1] = upper;
rise_upper_set_array[2] = set;
return rise_upper_set_array;
}
int
*picplanner_get_index_dark_blue_golden (double *coordinates_array)
{
int *dark_blue_golden_array = malloc (sizeof (int) * 8);
double elevation;
double last_elevation = coordinates_array[0+1];
for (int i=0; i<8; i++)
dark_blue_golden_array[i] = -1;
for (int i=0; i<NUM_DATA_POINTS; i++)
{
elevation = coordinates_array[i*2+1];
/* Morning */
/* End of the dark night */
if (last_elevation < -18 && elevation > -18)
dark_blue_golden_array[0] = i;
/* Beginning of the blue hour */
else if (last_elevation < -8 && elevation > -8)
dark_blue_golden_array[1] = i;
/* Ending of the blue hour and beginning of the golden hour */
else if (last_elevation < -4 && elevation > -4)
dark_blue_golden_array[2] = i;
/* Ennding of the golden hour */
else if (last_elevation < 6 && elevation > 6)
dark_blue_golden_array[3] = i;
/* Evening */
/* Beginning of the golden hour */
else if (last_elevation > 6 && elevation < 6)
dark_blue_golden_array[4] = i;
/* Ending of the golden hour and beginning of the blue hour */
else if (last_elevation > -4 && elevation < -4)
dark_blue_golden_array[5] = i;
/* Ending of the blue hour */
else if (last_elevation > -8 && elevation < -8)
dark_blue_golden_array[6] = i;
/* Beginning of the dark night */
else if (last_elevation > -18 && elevation < -18)
dark_blue_golden_array[7] = i;
last_elevation = elevation;
}
return dark_blue_golden_array;
}

Wyświetl plik

@ -45,3 +45,6 @@ double
int
*picplanner_get_index_rise_upper_set (double *coordinates_array);
int
*picplanner_get_index_dark_blue_golden (double *coordinates_array);

Wyświetl plik

@ -9,6 +9,26 @@ struct _PicplannerMilkyway
G_DEFINE_TYPE (PicplannerMilkyway, picplanner_milkyway, GTK_TYPE_BOX)
void
picplanner_milky_way_set_rise_upper_set (GDateTime *date_time,
double *coordinates_array,
int *index_rise_upper_set)
{
GDateTime *date_time_rise;
GDateTime *date_time_upper;
GDateTime *date_time_set;
(void) coordinates_array;
date_time_rise = g_date_time_add_minutes (date_time, index_rise_upper_set[0]*24*60/NUM_DATA_POINTS-12*60);
date_time_upper = g_date_time_add_minutes (date_time, index_rise_upper_set[1]*24*60/NUM_DATA_POINTS-12*60);
date_time_set = g_date_time_add_minutes (date_time, index_rise_upper_set[2]*24*60/NUM_DATA_POINTS-12*60);
(void) date_time_rise;
(void) date_time_upper;
(void) date_time_set;
}
static void
picplanner_milkyway_init (PicplannerMilkyway *self)
{

Wyświetl plik

@ -1,12 +1,18 @@
#include <gtk/gtk.h>
#include "window/picplanner-window.h"
#include "picplanner-application.h"
#include "calculations/calculations_transformations.h"
G_BEGIN_DECLS
#define PICPLANNER_MILKYWAY_TYPE (picplanner_milkyway_get_type ())
G_DECLARE_FINAL_TYPE (PicplannerMilkyway, picplanner_milkyway, PICPLANNER, MILKYWAY, GtkBox)
void
picplanner_milky_way_set_rise_upper_set (GDateTime *date_time,
double *coordinates_array,
int *index_rise_upper_set);
PicplannerMilkyway *picplanner_milkyway_new ();

Wyświetl plik

@ -9,6 +9,26 @@ struct _PicplannerMoon
G_DEFINE_TYPE (PicplannerMoon, picplanner_moon, GTK_TYPE_BOX)
void
picplanner_moon_set_rise_upper_set (GDateTime *date_time,
double *coordinates_array,
int *index_rise_upper_set)
{
GDateTime *date_time_rise;
GDateTime *date_time_upper;
GDateTime *date_time_set;
(void) coordinates_array;
date_time_rise = g_date_time_add_minutes (date_time, index_rise_upper_set[0]*24*60/NUM_DATA_POINTS-12*60);
date_time_upper = g_date_time_add_minutes (date_time, index_rise_upper_set[1]*24*60/NUM_DATA_POINTS-12*60);
date_time_set = g_date_time_add_minutes (date_time, index_rise_upper_set[2]*24*60/NUM_DATA_POINTS-12*60);
(void) date_time_rise;
(void) date_time_upper;
(void) date_time_set;
}
static void
picplanner_moon_init (PicplannerMoon *self)
{

Wyświetl plik

@ -1,6 +1,7 @@
#include <gtk/gtk.h>
#include "window/picplanner-window.h"
#include "picplanner-application.h"
#include "calculations/calculations_transformations.h"
G_BEGIN_DECLS
@ -8,6 +9,12 @@ G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (PicplannerMoon, picplanner_moon, PICPLANNER, MOON, GtkBox)
void
picplanner_moon_set_rise_upper_set (GDateTime *date_time,
double *coordinates_array,
int *index_rise_upper_set);
PicplannerMoon *picplanner_moon_new ();
G_END_DECLS

Wyświetl plik

@ -67,78 +67,24 @@ GDateTime
}
void
picplanner_overview_set_sun (GDateTime *date_time,
double *coordinates_array,
int *index_rise_upper_set)
picplanner_overview_set_current_coordinates_sun (PicplannerOverview *overview, double *coordinates_sun)
{
GDateTime *date_time_rise;
GDateTime *date_time_upper;
GDateTime *date_time_set;
(void) coordinates_array;
date_time_rise = g_date_time_add_minutes (date_time, index_rise_upper_set[0]*24*60/NUM_DATA_POINTS-12*60);
date_time_upper = g_date_time_add_minutes (date_time, index_rise_upper_set[1]*24*60/NUM_DATA_POINTS-12*60);
date_time_set = g_date_time_add_minutes (date_time, index_rise_upper_set[2]*24*60/NUM_DATA_POINTS-12*60);
g_print ("Sun Rise: %d:%d ",
g_date_time_get_hour (date_time_rise),
g_date_time_get_minute (date_time_rise));
g_print ("Upper: %d:%d ",
g_date_time_get_hour (date_time_upper),
g_date_time_get_minute (date_time_upper));
g_print ("Set: %d:%d\n",
g_date_time_get_hour (date_time_set),
g_date_time_get_minute (date_time_set));
(void) overview;
(void) coordinates_sun;
}
void
picplanner_overview_set_moon (GDateTime *date_time,
double *coordinates_array,
int *index_rise_upper_set)
picplanner_overview_set_current_coordinates_moon (PicplannerOverview *overview, double *coordinates_moon)
{
GDateTime *date_time_rise;
GDateTime *date_time_upper;
GDateTime *date_time_set;
(void) coordinates_array;
date_time_rise = g_date_time_add_minutes (date_time, index_rise_upper_set[0]*24*60/NUM_DATA_POINTS-12*60);
date_time_upper = g_date_time_add_minutes (date_time, index_rise_upper_set[1]*24*60/NUM_DATA_POINTS-12*60);
date_time_set = g_date_time_add_minutes (date_time, index_rise_upper_set[2]*24*60/NUM_DATA_POINTS-12*60);
g_print ("Moon Rise: %d:%d ",
g_date_time_get_hour (date_time_rise),
g_date_time_get_minute (date_time_rise));
g_print ("Upper: %d:%d ",
g_date_time_get_hour (date_time_upper),
g_date_time_get_minute (date_time_upper));
g_print ("Set: %d:%d\n",
g_date_time_get_hour (date_time_set),
g_date_time_get_minute (date_time_set));
(void) overview;
(void) coordinates_moon;
}
void
picplanner_overview_set_milky_way (GDateTime *date_time,
double *coordinates_array,
int *index_rise_upper_set)
picplanner_overview_set_current_coordinates_milky_way (PicplannerOverview *overview, double *coordinates_milky_way)
{
GDateTime *date_time_rise;
GDateTime *date_time_upper;
GDateTime *date_time_set;
(void) coordinates_array;
date_time_rise = g_date_time_add_minutes (date_time, index_rise_upper_set[0]*24*60/NUM_DATA_POINTS-12*60);
date_time_upper = g_date_time_add_minutes (date_time, index_rise_upper_set[1]*24*60/NUM_DATA_POINTS-12*60);
date_time_set = g_date_time_add_minutes (date_time, index_rise_upper_set[2]*24*60/NUM_DATA_POINTS-12*60);
g_print ("Milky Way: Rise: %d:%d ",
g_date_time_get_hour (date_time_rise),
g_date_time_get_minute (date_time_rise));
g_print ("Upper: %d:%d ",
g_date_time_get_hour (date_time_upper),
g_date_time_get_minute (date_time_upper));
g_print ("Set: %d:%d\n",
g_date_time_get_hour (date_time_set),
g_date_time_get_minute (date_time_set));
(void) overview;
(void) coordinates_milky_way;
}
@ -180,7 +126,7 @@ change_date_time_position (PicplannerOverview *overview)
overview->longitude = shumate_location_get_longitude (SHUMATE_LOCATION (overview->viewport));
overview->latitude = shumate_location_get_latitude (SHUMATE_LOCATION (overview->viewport));
g_print("Date: %d.%d.%d, Time: %d:%d\n", day, month, year, hour, minute);
g_print("Date: %02d.%02d.%02d, Time: %02d:%02d\n", day, month, year, hour, minute);
g_print ("Coordinates changed to: N %f, E %f \n", overview->latitude, overview->longitude);
/*

Wyświetl plik

@ -21,16 +21,12 @@ GDateTime
*picplanner_overview_get_date_time (PicplannerOverview *overview);
void
picplanner_overview_set_sun (GDateTime *date_time,
double *coordinates_array,
int *index_rise_upper_set);
picplanner_overview_set_current_coordinates_sun (PicplannerOverview *overview, double *coordinates_sun);
void
picplanner_overview_set_moon (GDateTime *date_time,
double *coordinates_array,
int *index_rise_upper_set);
picplanner_overview_set_current_coordinates_moon (PicplannerOverview *overview, double *coordinates_moon);
void
picplanner_overview_set_milky_way (GDateTime *date_time,
double *coordinates_array,
int *index_rise_upper_set);
picplanner_overview_set_current_coordinates_milky_way (PicplannerOverview *overview, double *coordinates_milky_way);
G_END_DECLS

Wyświetl plik

@ -98,36 +98,57 @@ static void
input_changed (GtkWidget *self,
gpointer user_data)
{
(void) user_data;
int *rise_upper_set_index;
(void) self;
PicplannerWindow *window;
int *rise_upper_set_index_sun;
int *rise_upper_set_index_moon;
int *rise_upper_set_index_milky_way;
int *dark_blue_golden_index;
double *array_coordinates_sun;
double *array_coordinates_moon;
double *array_coordinates_milky_way;
GDateTime *date_time;
double longitude, latitude;
longitude = picplanner_overview_get_longitude (PICPLANNER_OVERVIEW (self));
latitude = picplanner_overview_get_latitude (PICPLANNER_OVERVIEW (self));
date_time = picplanner_overview_get_date_time (PICPLANNER_OVERVIEW (self));
window = PICPLANNER_WINDOW (user_data);
array_coordinates_sun = picplanner_get_array_coordinates_sun (date_time, longitude, latitude);
array_coordinates_moon = picplanner_get_array_coordinates_moon (date_time, longitude, latitude);
array_coordinates_milky_way = picplanner_get_array_coordinates_milky_way (date_time, longitude, latitude);
longitude = picplanner_overview_get_longitude (PICPLANNER_OVERVIEW (window->overview_box));
latitude = picplanner_overview_get_latitude (PICPLANNER_OVERVIEW (window->overview_box));
date_time = picplanner_overview_get_date_time (PICPLANNER_OVERVIEW (window->overview_box));
rise_upper_set_index = picplanner_get_index_rise_upper_set (array_coordinates_sun);
picplanner_overview_set_sun (date_time,
array_coordinates_sun,
rise_upper_set_index);
/* Sun */
array_coordinates_sun = picplanner_get_array_coordinates_sun (date_time,
longitude,
latitude);
rise_upper_set_index_sun = picplanner_get_index_rise_upper_set (array_coordinates_sun);
dark_blue_golden_index = picplanner_get_index_dark_blue_golden (array_coordinates_sun);
rise_upper_set_index = picplanner_get_index_rise_upper_set (array_coordinates_moon);
picplanner_overview_set_moon (date_time,
array_coordinates_sun,
rise_upper_set_index);
rise_upper_set_index = picplanner_get_index_rise_upper_set (array_coordinates_milky_way);
picplanner_overview_set_milky_way (date_time,
picplanner_overview_set_current_coordinates_sun (PICPLANNER_OVERVIEW (window->overview_box),
array_coordinates_sun);
picplanner_sun_set_rise_upper_set (date_time,
array_coordinates_sun,
rise_upper_set_index);
rise_upper_set_index_sun);
(void) dark_blue_golden_index;
/* Moon */
array_coordinates_moon = picplanner_get_array_coordinates_moon (date_time,
longitude,
latitude);
rise_upper_set_index_moon = picplanner_get_index_rise_upper_set (array_coordinates_moon);
picplanner_moon_set_rise_upper_set (date_time,
array_coordinates_sun,
rise_upper_set_index_moon);
/* Milky Way */
array_coordinates_milky_way = picplanner_get_array_coordinates_milky_way (date_time,
longitude,
latitude);
rise_upper_set_index_milky_way = picplanner_get_index_rise_upper_set (array_coordinates_milky_way);
picplanner_milky_way_set_rise_upper_set (date_time,
array_coordinates_sun,
rise_upper_set_index_milky_way);
}

Wyświetl plik

@ -9,6 +9,26 @@ struct _PicplannerSun
G_DEFINE_TYPE (PicplannerSun, picplanner_sun, GTK_TYPE_BOX)
void
picplanner_sun_set_rise_upper_set (GDateTime *date_time,
double *coordinates_array,
int *index_rise_upper_set)
{
GDateTime *date_time_rise;
GDateTime *date_time_upper;
GDateTime *date_time_set;
(void) coordinates_array;
date_time_rise = g_date_time_add_minutes (date_time, index_rise_upper_set[0]*24*60/NUM_DATA_POINTS-12*60);
date_time_upper = g_date_time_add_minutes (date_time, index_rise_upper_set[1]*24*60/NUM_DATA_POINTS-12*60);
date_time_set = g_date_time_add_minutes (date_time, index_rise_upper_set[2]*24*60/NUM_DATA_POINTS-12*60);
(void) date_time_rise;
(void) date_time_upper;
(void) date_time_set;
}
static void
picplanner_sun_init (PicplannerSun *self)
{

Wyświetl plik

@ -1,6 +1,7 @@
#include <gtk/gtk.h>
#include "window/picplanner-window.h"
#include "picplanner-application.h"
#include "calculations/calculations_transformations.h"
G_BEGIN_DECLS
@ -8,6 +9,12 @@ G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (PicplannerSun, picplanner_sun, PICPLANNER, SUN, GtkBox)
void
picplanner_sun_set_rise_upper_set (GDateTime *date_time,
double *coordinates_array,
int *index_rise_upper_set);
PicplannerSun *picplanner_sun_new ();
G_END_DECLS