Wind direction checks L0 fluxes (IRGA75, 2004-2017, 2019)#
from datetime import datetime
from diive.pkgs.corrections.winddiroffset import WindDirOffset
from diive.core.plotting.heatmap_datetime import HeatmapDateTime
from diive.core.io.files import load_parquet
SOURCEFILE = r"12_OPENLAG_EDDYPRO_FLUXNET_OUTPUT_IRGA75_2004-2017_2019.parquet"
df = load_parquet(filepath=SOURCEFILE)
df
Loaded .parquet file 12_OPENLAG_EDDYPRO_FLUXNET_OUTPUT_IRGA75_2004-2017_2019.parquet (0.420 seconds).
--> Detected time resolution of <30 * Minutes> / 30min
AIR_CP | AIR_DENSITY | AIR_MV | AIR_RHO_CP | AOA_METHOD | AXES_ROTATION_METHOD | BADM_HEIGHTC | BADM_INSTPAIR_EASTWARD_SEP_GA_CH4 | BADM_INSTPAIR_EASTWARD_SEP_GA_CO2 | BADM_INSTPAIR_EASTWARD_SEP_GA_H2O | BADM_INSTPAIR_EASTWARD_SEP_GA_NONE | BADM_INSTPAIR_HEIGHT_SEP_GA_CH4 | BADM_INSTPAIR_HEIGHT_SEP_GA_CO2 | BADM_INSTPAIR_HEIGHT_SEP_GA_H2O | BADM_INSTPAIR_HEIGHT_SEP_GA_NONE | ... | W_T_SONIC_COV_IBROM_N0004 | W_T_SONIC_COV_IBROM_N0008 | W_T_SONIC_COV_IBROM_N0016 | W_T_SONIC_COV_IBROM_N0032 | W_T_SONIC_COV_IBROM_N0065 | W_T_SONIC_COV_IBROM_N0133 | W_T_SONIC_COV_IBROM_N0277 | W_T_SONIC_COV_IBROM_N0614 | W_T_SONIC_COV_IBROM_N1626 | W_UNROT | W_U_COV | W_VM97_TEST | W_ZCD | ZL | ZL_UNCORR | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TIMESTAMP_MIDDLE | |||||||||||||||||||||||||||||||
2004-03-30 14:15:00 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
2004-03-30 14:45:00 | 1005.42 | 1.12844 | 0.025668 | 1134.55 | 0.0 | 1.0 | 37.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | -0.227060 | -0.209191 | 800000001.0 | 14.0 | -1.260300 | -1.311810 |
2004-03-30 15:15:00 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
2004-03-30 15:45:00 | 1005.43 | 1.12663 | 0.025709 | 1132.74 | 0.0 | 1.0 | 37.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | -0.063026 | 0.002830 | 800000001.0 | 39.0 | -0.350350 | -0.361224 |
2004-03-30 16:15:00 | 1005.43 | 1.12587 | 0.025726 | 1131.98 | 0.0 | 1.0 | 37.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | -0.028456 | -0.034904 | 800000000.0 | 76.0 | -0.295733 | -0.304238 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2019-03-20 16:45:00 | 1005.38 | 1.13522 | 0.025515 | 1141.33 | 0.0 | 1.0 | 37.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 0.383872 | -0.350438 | 800000000.0 | 20.0 | -0.143543 | -0.147249 |
2019-03-20 17:15:00 | 1005.38 | 1.13469 | 0.025527 | 1140.80 | 0.0 | 1.0 | 37.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 0.431124 | -0.339284 | 800000000.0 | 13.0 | -0.120186 | -0.122775 |
2019-03-20 17:45:00 | 1005.39 | 1.13422 | 0.025537 | 1140.33 | 0.0 | 1.0 | 37.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 0.197926 | -0.251053 | 800010000.0 | 17.0 | -0.029753 | -0.030451 |
2019-03-20 18:15:00 | 1005.39 | 1.13262 | 0.025573 | 1138.73 | 0.0 | 1.0 | 37.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | -0.061639 | -0.101834 | 800000000.0 | 29.0 | 0.088462 | 0.089222 |
2019-03-20 18:45:00 | 1005.40 | 1.13146 | 0.025599 | 1137.57 | 0.0 | 1.0 | 37.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | -0.079800 | -0.104907 | 800000000.0 | 39.0 | 0.074985 | 0.075608 |
262474 rows × 494 columns
col = 'WD'
wd = df[col].copy()
# Prepare input data
wd = wd.loc[(wd.index.year <= 2017) | (wd.index.year == 2019)]
wd = wd.dropna()
wds = WindDirOffset(winddir=wd, offset_start=-50, offset_end=50, hist_ref_years=[2016, 2017], hist_n_bins=360)
yearlyoffsets_df = wds.get_yearly_offsets()
print(yearlyoffsets_df)
print(wd)
# HeatmapDateTime(series=wd).show()
# s_corrected = wds.get_corrected_wind_directions()
# print(s_corrected)
# HeatmapDateTime(series=s_corrected).show()
Working on year 2004 ...
Working on year 2005 ...
Working on year 2006 ...
Working on year 2007 ...
Working on year 2008 ...
Working on year 2009 ...
Working on year 2010 ...
Working on year 2011 ...
Working on year 2012 ...
Working on year 2013 ...
Working on year 2014 ...
Working on year 2015 ...
Working on year 2016 ...
Working on year 2017 ...
Working on year 2019 ...
YEAR OFFSET
0 2004.0 1.0
1 2005.0 1.0
2 2006.0 1.0
3 2007.0 1.0
4 2008.0 1.0
5 2009.0 -1.0
6 2010.0 2.0
7 2011.0 1.0
8 2012.0 2.0
9 2013.0 3.0
10 2014.0 1.0
11 2015.0 0.0
12 2016.0 0.0
13 2017.0 0.0
14 2019.0 1.0
TIMESTAMP_MIDDLE
2004-03-30 14:45:00 140.2270
2004-03-30 15:45:00 105.0050
2004-03-30 16:15:00 126.4780
2004-03-30 16:45:00 159.5110
2004-03-30 17:15:00 192.6980
...
2019-03-20 16:45:00 113.2270
2019-03-20 17:15:00 110.5470
2019-03-20 17:45:00 101.2380
2019-03-20 18:15:00 83.3696
2019-03-20 18:45:00 85.8130
Name: WD, Length: 237182, dtype: float64
yearlyoffsets_df
YEAR | OFFSET | |
---|---|---|
0 | 2004.0 | 1.0 |
1 | 2005.0 | 1.0 |
2 | 2006.0 | 1.0 |
3 | 2007.0 | 1.0 |
4 | 2008.0 | 1.0 |
5 | 2009.0 | -1.0 |
6 | 2010.0 | 2.0 |
7 | 2011.0 | 1.0 |
8 | 2012.0 | 2.0 |
9 | 2013.0 | 3.0 |
10 | 2014.0 | 1.0 |
11 | 2015.0 | 0.0 |
12 | 2016.0 | 0.0 |
13 | 2017.0 | 0.0 |
14 | 2019.0 | 1.0 |
End of notebook.#
dt_string = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(f"Finished. {dt_string}")
Finished. 2025-07-21 16:58:27