CalMiner

A web application to plan mining projects and estimate costs, returns and profitability.

Focuses on ore mining operations and covering parameters such as capital and operational expenditures, resource consumption, production output, and Monte Carlo simulations for risk analysis.

The system is designed to help mining companies make informed decisions by simulating various scenarios and analyzing potential outcomes based on stochastic variables.

A range of features are implemented to support these functionalities.

Features

  • Scenario Management: The database supports different scenarios for what-if analysis, with parent-child relationships between scenarios.
  • Monte Carlo Simulation: The system can perform Monte Carlo simulations for risk analysis and probabilistic forecasting.
  • Stochastic Variables: The model handles uncertainty by defining variables with probability distributions.
  • Cost Tracking: It tracks capital (capex) and operational (opex) expenditures.
  • Consumption Tracking: It monitors the consumption of resources like chemicals, fuel, water, and scrap materials.
  • Production Output: The database stores production results, including tons produced, recovery rates, and revenue.
  • Process Parameters: It allows for defining and storing various parameters for different processes and scenarios.
  • Equipment Management: The system manages equipment and their operational data.
  • Maintenance Logging: It includes a log for equipment maintenance events.

Architecture

The architecture is documented in docs/architecture.md.

Development

The development setup instructions are provided in docs/development_setup.md.

Testing

Testing guidelines and best practices are outlined in docs/testing.md.

Database Objects

The database is composed of several tables that store different types of information. All tables are under schema bricsium_platform. See structure.sql for full DDL. Here are some of the most important ones:

  • CAPEXbricsium_platform.capex: Stores data on capital expenditures.
  • OPEXbricsium_platform.opex: Contains information on operational expenditures.
  • Chemical consumptionbricsium_platform.chemical_consumption: Tracks the consumption of chemical reagents.
  • Fuel consumptionbricsium_platform.fuel_consumption: Records the amount of fuel consumed.
  • Water consumptionbricsium_platform.water_consumption: Monitors the use of water.
  • Scrap consumptionbricsium_platform.scrap_consumption: Tracks the consumption of scrap materials.
  • Production outputbricsium_platform.production_output: Stores data on production output, such as tons produced and recovery rates.
  • Equipment operationbricsium_platform.equipment_operation: Contains operational data for each piece of equipment.
  • Ore batchbricsium_platform.ore_batch: Stores information on ore batches, including their grade and other characteristics.
  • Exchange ratebricsium_platform.exchange_rate: Contains currency exchange rates.
  • Simulation resultbricsium_platform.simulation_result: Stores the results of the Monte Carlo simulations.

Static Parameters

These are values that are not expected to change frequently and are used for configuration purposes. Some examples include:

  • Currencies: currency_code, currency_name.
  • Distribution types: distribution_name.
  • Units: unit_name, unit_symbol, unit_system, conversion_to_base.
  • Parameter categories: category_name.
  • Material types: type_name, category.
  • Chemical reagents: reagent_name, chemical_formula.
  • Fuel: fuel_name.
  • Water: water_type.
  • Scrap material: scrap_name.

Variables

These are dynamic data points that are recorded over time and used in calculations and simulations. Some examples include:

  • CAPEX: amount.
  • OPEX: amount.
  • Chemical consumption: quantity, efficiency, waste_factor.
  • Fuel consumption: quantity.
  • Water consumption: quantity.
  • Scrap consumption: quantity.
  • Production output: tons_produced, recovery_rate, metal_content, metallurgical_loss, net_revenue.
  • Equipment operation: hours_operated, downtime_hours.
  • Ore batch: ore_grade, moisture, sulfur, chlorine.
  • Exchange rate: rate.
  • Parameter values: value.
  • Simulation result: NPV (npv), IRR (irr), EBITDA (ebitda), net_revenue.
  • Cementation parameters: temperature, pH (ph), reaction_time, copper_concentration, iron_surface_area.
  • Precipitate product: density, melting_point, boiling_point.
Description
No description provided
Readme 4.6 MiB
Languages
Python 80.5%
HTML 11.8%
CSS 4%
JavaScript 3.3%
Dockerfile 0.4%