uataq.Network.get_availability#
- Network.get_availability(time_range=None, freq='D', lvls=None, num_processes=1)[source]#
Find when each site has data for the pollutant, and at what level.
Every data file is parsed, so this reflects real measurements rather than which files exist: a time bin counts for a level when any row in it has a non-null concentration, calibrated or
_raw(seeuataq.pollutants.concentration_columns()). Each bin is labeled with the highest level that covers it, so a bin measured but dropped from final data shows as qaqc.- Parameters:
time_range (
TimeRange|str|tuple[str|datetime|datetime64|None,str|datetime|datetime64|None] |list[str|datetime|datetime64|None] |slice|None) – The time range to check, in UTC (see Time range). Default is None (all data).freq (
str) – The size of a time bin, as a pandas period alias: ‘h’, ‘D’, ‘W’, ‘M’, … Default is ‘D’.lvls (
str|list[str] |None) – The data levels to check; one level may be given as a string. Default is None, every level inuataq.filesystem.lvls. Checking fewer is faster.num_processes (
int|Literal['max']) – Number of processes used to parse files. Default is 1. A whole network is thousands of files; use a compute node.
- Returns:
One row per segment, with columns
SID,lvl,startandstop. Segments are half-open[start, stop). Sites with no data have no rows.- Return type:
Notes
If the network was built without a group, every group that operates an instrument is checked (TRX01 ozone, for instance, is in both the lin and horel archives), not only the one
get_obswould read.