oasislmf.pytools.common.data ============================ .. py:module:: oasislmf.pytools.common.data Attributes ---------- .. autoapisummary:: oasislmf.pytools.common.data.oasis_int oasislmf.pytools.common.data.nb_oasis_int oasislmf.pytools.common.data.oasis_int_size oasislmf.pytools.common.data.oasis_float oasislmf.pytools.common.data.nb_oasis_float oasislmf.pytools.common.data.oasis_float_size oasislmf.pytools.common.data.areaperil_int oasislmf.pytools.common.data.nb_areaperil_int oasislmf.pytools.common.data.areaperil_int_size oasislmf.pytools.common.data.null_index oasislmf.pytools.common.data.DEFAULT_BUFFER_SIZE oasislmf.pytools.common.data.MEAN_TYPE_ANALYTICAL oasislmf.pytools.common.data.MEAN_TYPE_SAMPLE oasislmf.pytools.common.data.aggregatevulnerability_output oasislmf.pytools.common.data.amplifications_output oasislmf.pytools.common.data.cdf_output oasislmf.pytools.common.data.complex_items_meta_output oasislmf.pytools.common.data.correlations_output oasislmf.pytools.common.data.coverages_output oasislmf.pytools.common.data.damagebin_output oasislmf.pytools.common.data.eve_output oasislmf.pytools.common.data.footprint_event_output oasislmf.pytools.common.data.fm_output oasislmf.pytools.common.data.fm_policytc_output oasislmf.pytools.common.data.fm_profile_output oasislmf.pytools.common.data.fm_profile_step_output oasislmf.pytools.common.data.fm_programme_output oasislmf.pytools.common.data.fm_summary_xref_output oasislmf.pytools.common.data.fm_xref_output oasislmf.pytools.common.data.gul_output oasislmf.pytools.common.data.gul_summary_xref_output oasislmf.pytools.common.data.items_output oasislmf.pytools.common.data.lossfactors_output oasislmf.pytools.common.data.occurrence_output oasislmf.pytools.common.data.occurrence_granular_output oasislmf.pytools.common.data.periods_output oasislmf.pytools.common.data.quantile_output oasislmf.pytools.common.data.quantile_interval_output oasislmf.pytools.common.data.random_output oasislmf.pytools.common.data.returnperiods_output oasislmf.pytools.common.data.vulnerability_output oasislmf.pytools.common.data.vulnerability_weight_output oasislmf.pytools.common.data.float_equal_precision Functions --------- .. autoapisummary:: oasislmf.pytools.common.data.generate_output_metadata oasislmf.pytools.common.data.load_as_ndarray oasislmf.pytools.common.data.load_as_array oasislmf.pytools.common.data.write_ndarray_to_fmt_csv oasislmf.pytools.common.data.almost_equal oasislmf.pytools.common.data.resolve_file Module Contents --------------- .. py:data:: oasis_int .. py:data:: nb_oasis_int .. py:data:: oasis_int_size .. py:data:: oasis_float .. py:data:: nb_oasis_float .. py:data:: oasis_float_size .. py:data:: areaperil_int .. py:data:: nb_areaperil_int .. py:data:: areaperil_int_size .. py:data:: null_index .. py:data:: DEFAULT_BUFFER_SIZE :value: 1000000 .. py:data:: MEAN_TYPE_ANALYTICAL :value: 1 .. py:data:: MEAN_TYPE_SAMPLE :value: 2 .. py:function:: generate_output_metadata(output) Generates *_header, *_dtype and *_fmt items given a list of tuples describing some output description output description has type List(Tuple({name: str}, {type: Any}, {format: str})) Args: output_map (list(tuple(str, Any, str))): Dictionary mapping string name to {output description}_output list Returns: result (tuple(list[str], np.dtype, str)): Tuple containing the generated *_header list, *_dtype np.dtype, *_fmt csv format string .. py:data:: aggregatevulnerability_output :value: [('aggregate_vulnerability_id', 'i4', '%d'), ('vulnerability_id', 'i4', '%d')] .. py:data:: amplifications_output :value: [('item_id', 'i4', '%d'), ('amplification_id', 'i4', '%d')] .. py:data:: cdf_output :value: [('event_id', 'i4', '%d'), ('areaperil_id', 'i4', '%d'), ('vulnerability_id', 'i4', '%d'),... .. py:data:: complex_items_meta_output :value: [('item_id', 'u4', '%u'), ('coverage_id', 'u4', '%u'), ('group_id', 'u4', '%u'),... .. py:data:: correlations_output .. py:data:: coverages_output .. py:data:: damagebin_output .. py:data:: eve_output .. py:data:: footprint_event_output .. py:data:: fm_output .. py:data:: fm_policytc_output :value: [('level_id', 'i4', '%d'), ('agg_id', 'i4', '%d'), ('layer_id', 'i4', '%d'), ('profile_id', 'i4', '%d')] .. py:data:: fm_profile_output .. py:data:: fm_profile_step_output .. py:data:: fm_programme_output :value: [('from_agg_id', 'i4', '%d'), ('level_id', 'i4', '%d'), ('to_agg_id', 'i4', '%d')] .. py:data:: fm_summary_xref_output :value: [('output', 'i4', '%d'), ('summary_id', 'i4', '%d'), ('summaryset_id', 'i4', '%d')] .. py:data:: fm_xref_output :value: [('output', 'i4', '%d'), ('agg_id', 'i4', '%d'), ('layer_id', 'i4', '%d')] .. py:data:: gul_output .. py:data:: gul_summary_xref_output :value: [('item_id', 'i4', '%d'), ('summary_id', 'i4', '%d'), ('summaryset_id', 'i4', '%d')] .. py:data:: items_output .. py:data:: lossfactors_output :value: [('event_id', 'i4', '%d'), ('amplification_id', 'i4', '%d'), ('factor', 'f4', '%.2f')] .. py:data:: occurrence_output :value: [('event_id', 'i4', '%d'), ('period_no', 'i4', '%d'), ('occ_date_id', 'i4', '%d')] .. py:data:: occurrence_granular_output :value: [('event_id', 'i4', '%d'), ('period_no', 'i4', '%d'), ('occ_date_id', 'i8', '%d')] .. py:data:: periods_output :value: [('period_no', 'i4', '%d'), ('weighting', 'f8', '%0.9lf')] .. py:data:: quantile_output :value: [('quantile', 'f4', '%f')] .. py:data:: quantile_interval_output .. py:data:: random_output :value: [('random_no', 'f4', '%f')] .. py:data:: returnperiods_output :value: [('return_period', 'i4', '%d')] .. py:data:: vulnerability_output .. py:data:: vulnerability_weight_output .. py:function:: load_as_ndarray(dir_path, name, _dtype, must_exist=True, col_map=None) load a file as a numpy ndarray useful for multi-columns files Args: dir_path: path to the directory where the binary or csv file is stored name: name of the file _dtype: np.dtype must_exist: raise FileNotFoundError if no file is present col_map: name re-mapping to change name of csv columns Returns: numpy ndarray .. py:function:: load_as_array(dir_path, name, _dtype, must_exist=True) load file as a single numpy array, useful for files with a binary version with only one type of value where their index correspond to an id. For example coverage.bin only contains tiv value for each coverage id coverage_id n correspond to index n-1 Args: dir_path: path to the directory where the binary or csv file is stored name: name of the file _dtype: numpy dtype of the required array must_exist: raise FileNotFoundError if no file is present Returns: numpy array of dtype type .. py:function:: write_ndarray_to_fmt_csv(output_file, data, headers, row_fmt) Writes a custom dtype array with headers to csv with the provided row_fmt str This function is a faster replacement for np.savetxt as it formats each row one at a time before writing to csv. We create one large string, and formats all the data at once, and writes all the data at once. WARNING: untested with string types in custom data. Args: output_file (io.TextIOWrapper): CSV file data (ndarray[]): Custom dtype ndarray with column names headers (list[str]): Column names for custom ndarray row_fmt (str): Format for each row in csv .. py:data:: float_equal_precision .. py:function:: almost_equal(a, b) .. py:function:: resolve_file(path, mode, stack) Resolve file path to open file or use sys.stdin Args: path (str | os.PathLike): File path or "-" indicationg standard input/output. mode (str): Mode to open file ("r", "rb, "w", "wb"). stack (ExitStack): Context manager stack used to manage file lifecycle. Returns: file (IO): A file-like object opened in the specified mode.