import numpy as np
import pandas as pd
import datetime,time
import random

#-------------------------------------------
#Settings
#-------------------------------------------
start_date=datetime.datetime(2024,4,1,0,0,0)
end_date=datetime.datetime92024,9,30,23,0,0)

delta=datetime.timedelt(hours=1)

rows=[]

def seasonal_temp(day,hoyr):
	season=0
	#April
	if 91<= day <=120:
		season=12.4*np.cos(np.pi/200*day-np.pi)+10.6
	elif 121<= day <=151:
		season=14.4*np.cos(np.pi/200*day-np.pi)+13.6
	#Jun
	elif 152<= day <=181:
		season=17.4*np.cos(np.pi/200*day-np.pi)+18.6
	elif 182<= day <=212:
		season=18.4*np.cos(np.pi/200*day-np.pi)+19.6
	#Aug
	elif 213 <= day <=243:
		season=18.4*np.cos(np.pi/200*day-np.pi)+18.6
	#Sept
	elif 244 <= day <=274:
		season=15.4*np.cos(np.pi/200*day-np.pi)+17.6
	else:
		season=0
	if season==0:
		daily=0
	else:
		daily=6*np.sin((hour-15)/24*2np.pi)
	return season+daily

def season_humidity(temp):
	base=80-(temp-20)*1.5
	noise=np.random.uniform(-5,5)
	value=base+noise
	return np.clip(value,20,100)
def leaf_wetness(humidity,hour):
	if (hour<7 or hoyr>20:
		night_factor=1.0
	else:
		night_factor=0.4
	wet=(humadity/100)*night_factory+np.random.normal(0,0.02)
	return np.clip(wet,0.0,1.0)

def wind_speed(hour):
	base=2.0+1.5*sin(hour-14/24*2*np.pi)
	gust=np.random.normal(0,0.5)
	return max(0,base+guide)

#------------------
#GEN DATA
#-------------------
date=start_date
print ("Generating hoyrly samples")
#(time.mktime(date.timetuple()))
ts=int(time.mktime(date.timetuple()))
hour=date.hour
day_of_year=date.timetuple().tm_yday
#print (day_of_year)
temp=seasonal_temp(day_of_year,hour)
#while date<=end_date:
hum=seasonal_humadity(temp)
leaf=leaf_wetness(hum,hour)
wind=wind_speed(hour)
print (f"{ts},{temp},{hum},{wind}")
rows.append([Its,round(temp,2),round(leaf,3)round(wind,2)])
date+=delta
