UOMOP
기상 데이터 확인 본문
Forecasts = sn.WeatherReader()
def WeatherReader():
Path = "..\data\Origin\F1.csv"
Forecasts = pd.read_csv(Path)
del Forecasts["id"]
# excel파일을 읽어드리지만, 이것이 시간인지 뭔지 모르기 때문에 이걸 숫자로 바꿔주는 것이 중요하다.
# 그렇기 때문에 읽어드린 내용은 to_datetime을 통해서 시간으로 바꿔주는 과정이 필요한 것이다.
Forecasts["fcst_time"] = pd.to_datetime(Forecasts["fcst_time"], format="%Y-%m-%d %H:%M:%S", utc=True)
Forecasts["fcst_time"] = Forecasts["fcst_time"].dt.tz_convert("Asia/Seoul")
# fcst_time은 예측을 진행한 시간을 뜻한다.
Forecasts["time"] = pd.to_datetime(Forecasts["time"], format="%Y-%m-%d %H:%M:%S", utc=True)
Forecasts["time"] = Forecasts["time"].dt.tz_convert("Asia/Seoul")
# time은 예측 할 시간을 뜻한다.
Forecasts["ahead"] = Forecasts["ahead"].astype("int")
# ahead는 몇 시간 차이가 나는 지를 뜻한다.
Forecasts = Forecasts.drop_duplicates(subset=["st", "time", "fcst_time", "ahead"])
# 기상 데이터가 중복이 될 수도 있기 때문에 drop_duplicate를 통해서 걸러낸다.
Forecasts = Forecasts.sort_values(by=["st", "time", "fcst_time"], ascending=[True, True, True])
# 정렬을 위해 sort_values
Forecasts.index = range(0, len(Forecasts))
# 정렬을 한 후에 인덱싱을 다시 진행 한다.
return Forecasts
fcst_time : 예측 프로그램을 실행한 시간(예측을 시작한 시간)
time : time 시간까지 예측을 진행
ahead : 몇시간 예측을 할 것인지(time - fcst_time)
visibility : 보이는 시야의 정도를 수치화
ceiling : "실링"이란 하늘을 전체 8할로 간주했을 때, 운도가 낮은 층부터 합하여 운량이 5 OCTA 이상되는 구름의 최저고도를 뜻한다. 구름이 한층일 떄는 구름의 높이, 구름이 두층 이상 일때는 층마다 운량을 낮은곳 부터 순차로 합하여 운량이 5OCTA 이상될 때의 구름 높이 (해당 예제에서는 일단.. 구름의 높이로 일반화하여 진행하자....)
Forecasts의 데이터 중에서 "st" 즉, 관측 위치를 확인해보면 23개까지 있는걸 확인할 수 있다.
23곳 기상 관측의 데이터를 모두 종합하여 예측 프로그램을 구현해보도록 할 것이다.
'Project > Solar Power Prediction' 카테고리의 다른 글
Timestamp, datetime (0) | 2022.02.15 |
---|
Comments