kopia lustrzana https://gitlab.com/Zwarf/picplanner
Calculate dark night, blue hour and golden hour. Adjust where which information should go
rodzic
706bb24bed
commit
421c119f8d
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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 ();
|
||||
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
||||
/*
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
|
Ładowanie…
Reference in New Issue