omfpandas.writer.OMFPandasWriter

class omfpandas.writer.OMFPandasWriter(filepath)[source]

A class to write pandas dataframes to an OMF file.

filepath

Path to the OMF file.

Type:

Path

__init__(filepath)[source]

Instantiate the OMFPandasWriter object.

Parameters:

filepath (Path) – Path to the OMF file.

Methods

__init__(filepath)

Instantiate the OMFPandasWriter object.

add_calculated_blockmodel_attributes(...)

Add a calculated attribute to a BlockModel.

delete_blockmodel_attribute(blockmodel_name, ...)

Delete an attribute from a BlockModel.

get_element_attribute_names(element_name)

Get the attribute names of an element.

get_element_by_name(element_name)

Get an element by its name.

profile_blockmodel(blockmodel_name[, query])

Profile a BlockModel.

read_block_models(blockmodel_attributes[, query])

Return a DataFrame from multiple BlockModels.

read_blockmodel(blockmodel_name[, ...])

Return a DataFrame from a BlockModel.

view_block_model_profile(blockmodel_name[, ...])

View the profile of a BlockModel in the default web browser.

write_block_model_schema(blockmodel_name, ...)

Write a Pandera schema to the OMF file.

write_blockmodel(blocks, blockmodel_name[, ...])

Write a dataframe to a BlockModel.

write_blockmodel_attribute(blockmodel_name, ...)

Write data to a specific attribute of a BlockModel.

write_to_changelog(element, action, description)

Write a change message to the OMF file.

Attributes

changelog

Return the change log as a DataFrame.

add_calculated_blockmodel_attributes(blockmodel_name, calc_definitions)[source]

Add a calculated attribute to a BlockModel.

Calculated attributes reduce storage space by storing the calculation expression instead of the data. When the attribute is accessed, the expression is evaluated and the result returned. The calculation expression must be a valid pandas expression, and is stored in the metadata of the blockmodel object.

Parameters:
  • blockmodel_name (str) – The name of the BlockModel.

  • calc_definitions (dict[str, str]) – A dictionary of attribute names and calculation expressions.

delete_blockmodel_attribute(blockmodel_name, attribute_name)[source]

Delete an attribute from a BlockModel.

Parameters:
  • blockmodel_name (str) – The name of the BlockModel.

  • attribute_name (str) – The name of the attribute.

profile_blockmodel(blockmodel_name, query=None)[source]

Profile a BlockModel.

Profiling will be skipped if the data has not changed.

Parameters:
  • blockmodel_name (str) – The name of the BlockModel to profile.

  • query (Optional[str]) – A query to filter the data before profiling.

Returns:

The profiled data.

Return type:

pd.DataFrame

write_block_model_schema(blockmodel_name, pd_schema_filepath)[source]

Write a Pandera schema to the OMF file.

Parameters:
  • blockmodel_name (str) – The name of the BlockModel.

  • pd_schema_filepath (Path) – The path to the Pandera schema yaml file.

write_blockmodel(blocks, blockmodel_name, pd_schema=None, allow_overwrite=False)[source]

Write a dataframe to a BlockModel.

Only dataframes with centroid (x, y, z) and block dims (dx, dy, dz) indexes are supported.

Parameters:
  • blocks (pd.DataFrame) – The dataframe to write to the BlockModel.

  • blockmodel_name (str) – The name of the BlockModel to write to.

  • pd_schema (Optional[Union[Path, dict]]) – The path to the Pandera schema file or a dict of the schema. efault is None. If provided, the schema will be used to validate the dataframe before writing.

  • allow_overwrite (bool) – If True, overwrite the existing BlockModel. Default is False.

Raises:

ValueError – If the element retrieved is not a BlockModel.

write_blockmodel_attribute(blockmodel_name, series, allow_overwrite=False)[source]

Write data to a specific attribute of a BlockModel.

Parameters:
  • blockmodel_name (str) – The name of the BlockModel.

  • series (pd.Series) – The data to write to the attribute.

  • allow_overwrite (bool) – If True, overwrite the existing attribute. Default is False.

write_to_changelog(element, action, description)[source]

Write a change message to the OMF file.

Parameters:
  • element (str) – The name of the element that was changed

  • action (Literal['create', 'update', 'delete']) – The action taken on the object

  • description (str) – Description of the change

Returns: