Aditya Raj Prakhar ASSIGNMENT

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

Numerical Modelling and Reserve Calculation of

a Cylindrical Ore Body using Python


Programming

Assignment Submitted

In Partial Fulfilment of the Requirements For the Course of

Economic Geology and Indian Mineral Deposits


(GLC 208)

NAME: Aditya Raj Prakhar


ADMISSION NO: 22JE0061

To
Prof. A. S. Venkatesh Course Instructor (GLC 208)
DEPARTMENT OF APPLIED GEOLOGY
INDIAN INSTITUTE OF TECHNOLOGY (INDIAN SCHOOL OF MINES) Dhanbad

Date: 10/4/24
Acknowledgment

I want to sincerely thank all of the developers, instructors, and contributors whose
work has been so important to the project's success. We are very grateful to
Professor A S Venkatesh for his advice and support. In addition, I appreciate the
Department of Applied Geology's assistance.

Aditya Raj Prakhar 22JE0061


IV Int. M. Tech, Applied Geology
Indian Institute of Technology (Indian School of Mines), Dhanbad
1. INTRODUCTION/OBJECTIVES/PERSPECTIVE:
The project aims to develop a Python program for precise reserve estimation
and 3D modeling of cylindrical ore bodies using numerical modeling and
visualization

2. PROBLEM STATEMENT:
Assigned numerical and graphical problem:
a) Calculate the mineral reserve of a cylindrical ore body of 290 meters
in diameter to a depth of 1500 meters having an average specific gravity of 3.2.,
b) Represent the ore body as graphical 3-D model;
c) Write a note on the possible type of the deposit and its possible genesis with
suitable justification.

3. ALGORITHM AND ALGORITHM FLOW SHEET:

START

Input depth, diameter, Specefic


Gravity

Volume and Mass is


calculated and
respective figure is
generated

Output of mass of ore and 3D model is


generated

End
4. CODE IN PYTHON:
# ORE CALCULATION

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Circle import
mpl_toolkits.mplot3d.art3d as art3d

def calculate_reserve(depth, radius, sg):


# Calculate volume of ore body volume = np.pi * radius**2 * depth

# Calculate mass of ore in grams mass_g = sg * 1000 * volume

# Convert mass to tonnes and round to three decimal places


mass_tonnes = round(mass_g / 1000, 3)

return mass_tonnes

def generate_3d_model(depth, radius): fig = plt.figure()


ax = plt.axes(projection='3d')

z = np.linspace(0, depth, 1500)


a = np.linspace(0, 2*np.pi, 1500)

X = radius * np.cos(a) + radius Y = radius * np.sin(a) + radius b, Z =


np.meshgrid(a, z)

p = Circle((radius, radius), radius) ax.add_patch(p)


art3d.pathpatch_2d_to_3d(p, z=depth, zdir="z")

q = Circle((radius, radius), radius) ax.add_patch(q)


art3d.pathpatch_2d_to_3d(q, z=0, zdir="z")
ax.plot_surface(X, Y, Z) plt.show()
# Input parameters
depth = float(input("Enter depth of the ore body (m): ")) radius =
float(input("Enter radius of the ore body (m): ")) sg = float(input("Enter
specific gravity of the ore: "))

# Calculate reserve
reserve = calculate_reserve(depth, radius, sg)
print("The estimated reserve of the ore body is:", reserve, "tonnes")

# Generate 3D model generate_3d_model(depth, radius)

5. OUTPUT AND GRAPHICAL REPRESENTATION OF


THE ORE BODY MODEL/3-D VISUALIZATION OF THE
ORE BODY:

Enter depth of the ore body (m): 1500 Enter diameter of the ore body (m):
290 Enter specific gravity of the ore: 3.2
The estimated reserve of the ore body is: 317049530.6 tonnes
6. NUMERICAL ANALYSIS:
Given:
Depth (h) = 1500 meters Diameter (d) = 290 meters Radius (r) = d/2 = 145
meters
Specific Gravity of the Ore (sg) = 3.2

The total mass of the mineral reserve can be calculated by the formula

Mass = Density x Volume

Density can be calculated by multiplying Specific Gravity by 1000 Density =

3.2 x 1000 = 3200 Kg/m3

Volume of the Reserve = πr2h

= π x 145 x 145 x 1500 = 99077978.31 m3

Therefore, the Mass of the reserve = Density x Volume of the Reserve

= 3200 x 99077978.31 Kg

= 3.17049530600 Kg
This mass is in Kilogram and hence it should be converted into Tonnes,

therefore, Mass (Tonnes) = Mass (in Kg)/1000

= 3.17049530600/1000

=317049530.6 Tonnes
7.INFERENCE/DESCRIPTION OF POSSIBLE ORE TYPE
AND ITS POSSIBLE GENESIS:

The program's estimation of reserves and creation of 3D ore body models


align with kimberlite deposit genesis. Kimberlite pipes, formed by
explosive magma ascent, resemble the cylindrical structures modeled.
Understanding kimberlite formation aids interpretation of ore body
distribution. Analyzing reserves in modeled structures parallels assessing
diamond-bearing potential in kimberlite pipes. This program bridges
geological principles with computational tools, enhancing resource
assessment in kimberlite exploration

8.REFERENCES

Hunter, J.D., Droettboom, M., et al. (2023). Matplotlib:


Visualization with Python (Version 3.5.0). Matplotlib Development Team. Retrieved
from Matplotlib Official Website

Oliphant, T.E., et al. (2023). NumPy:


A fundamental package for scientific computing with Python (Version 1.23.0).
NumPy Development Team. Retrieved from NumPy Official Website

JetBrains. (2023). PyCharm:


The Python IDE for Professional Developers (Version 2023.3.4). JetBrains. Retrieved
from PyCharm Official Website

You might also like