Loading example_05_ASCAT_deal_with_mising_files.ipynb 0 → 100644 +85 −0 Original line number Diff line number Diff line %% Cell type:code id: tags: ``` import numpy as np from pathlib import Path import re import xarray as xr ``` %% Cell type:code id: tags: ``` base_path = Path("/data/c2/TMdata/git_geomar_de_data/") ASCAT_ref = "v1.x.x" daily_data_path = base_path / "ASCAT" / ASCAT_ref / "data/Daily/Netcdf" ``` %% Cell type:code id: tags: ``` !ls -1 /data/c2/TMdata/git_geomar_de_data/ASCAT/v1.x.x/data/Daily/Netcdf/2007/03/21/ ``` %% Output 2007032100_2007032200_daily-ifremer-L3-MWF-GLO-20110531232401-01.0.nc %% Cell type:code id: tags: ``` def expected_ts_for_year(year): first_ts = np.datetime64("{}-01-01T12:00:00".format(year)) second_ts = np.datetime64("{}-01-02T12:00:00".format(year)) del_t = second_ts - first_ts last_ts = np.datetime64("{}-01-01T12:00:00".format(year+1)) - del_t num_ts = (last_ts - first_ts + del_t) / del_t expected_ts = [first_ts + n * del_t for n in range(int(num_ts))] return expected_ts assert len(expected_ts_for_year(2016)) == 366 ``` %% Cell type:code id: tags: ``` def existing_ts_for_year(year): all_files = [str(fn) for fn in daily_data_path.glob("{}/??/??/*.nc".format(year))] raw_data_set = xr.open_mfdataset(all_files) existing_ts = raw_data_set.time[:] return existing_ts ``` %% Cell type:code id: tags: ``` def is_timestamp_in(time_stamp, ts_iter): return any(time_stamp == ts for ts in ts_iter) assert is_timestamp_in(np.datetime64("2001-01-01T12:00:00"), [np.datetime64("2001-01-01T12:00")]) assert not is_timestamp_in(np.datetime64("2001-01-01T12:00:00"), [np.datetime64("2001-01-01T12:00:01")]) ``` %% Cell type:code id: tags: ``` def are_timestamps_in(expected_ts, existing_ts): return list(map(lambda ts: is_timestamp_in(ts, existing_ts), expected_ts)) assert are_timestamps_in([np.datetime64("2001-01-01"), np.datetime64("2001-01-02")], [np.datetime64("2001-01-01"),]) == [True, False] ``` %% Cell type:code id: tags: ``` expected_ts = expected_ts_for_year(2016) existing_ts = existing_ts_for_year(2016) print(are_timestamps_in(expected_ts, existing_ts)) ``` %% Output [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] Loading
example_05_ASCAT_deal_with_mising_files.ipynb 0 → 100644 +85 −0 Original line number Diff line number Diff line %% Cell type:code id: tags: ``` import numpy as np from pathlib import Path import re import xarray as xr ``` %% Cell type:code id: tags: ``` base_path = Path("/data/c2/TMdata/git_geomar_de_data/") ASCAT_ref = "v1.x.x" daily_data_path = base_path / "ASCAT" / ASCAT_ref / "data/Daily/Netcdf" ``` %% Cell type:code id: tags: ``` !ls -1 /data/c2/TMdata/git_geomar_de_data/ASCAT/v1.x.x/data/Daily/Netcdf/2007/03/21/ ``` %% Output 2007032100_2007032200_daily-ifremer-L3-MWF-GLO-20110531232401-01.0.nc %% Cell type:code id: tags: ``` def expected_ts_for_year(year): first_ts = np.datetime64("{}-01-01T12:00:00".format(year)) second_ts = np.datetime64("{}-01-02T12:00:00".format(year)) del_t = second_ts - first_ts last_ts = np.datetime64("{}-01-01T12:00:00".format(year+1)) - del_t num_ts = (last_ts - first_ts + del_t) / del_t expected_ts = [first_ts + n * del_t for n in range(int(num_ts))] return expected_ts assert len(expected_ts_for_year(2016)) == 366 ``` %% Cell type:code id: tags: ``` def existing_ts_for_year(year): all_files = [str(fn) for fn in daily_data_path.glob("{}/??/??/*.nc".format(year))] raw_data_set = xr.open_mfdataset(all_files) existing_ts = raw_data_set.time[:] return existing_ts ``` %% Cell type:code id: tags: ``` def is_timestamp_in(time_stamp, ts_iter): return any(time_stamp == ts for ts in ts_iter) assert is_timestamp_in(np.datetime64("2001-01-01T12:00:00"), [np.datetime64("2001-01-01T12:00")]) assert not is_timestamp_in(np.datetime64("2001-01-01T12:00:00"), [np.datetime64("2001-01-01T12:00:01")]) ``` %% Cell type:code id: tags: ``` def are_timestamps_in(expected_ts, existing_ts): return list(map(lambda ts: is_timestamp_in(ts, existing_ts), expected_ts)) assert are_timestamps_in([np.datetime64("2001-01-01"), np.datetime64("2001-01-02")], [np.datetime64("2001-01-01"),]) == [True, False] ``` %% Cell type:code id: tags: ``` expected_ts = expected_ts_for_year(2016) existing_ts = existing_ts_for_year(2016) print(are_timestamps_in(expected_ts, existing_ts)) ``` %% Output [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True]