Professional Documents
Culture Documents
Estar en topografa permite obtener nociones y criterio de campo,dado que los ojos
de manera privilegiada. Todo ello con la finalidad de notar posibles puntos de mejora
ABSTRACT
This document redacts the performed activities between January and April of the
Cerro Verde training program, and the knowledge learned about operations and
planning of Cerro Verde. This training period has as a main objective: Being part of
the activities that short term planning does daily, in topography, which belongs to the
area. Being in topography allows get field notions and some practical experience,
this due to topography are mines eyes. Getting to know each part of the main
operations chain.
This training program has as a purpose that one realize some improvement aspects
INDICE DE FIGURAS
FIGURA N 01: Ubicacin de Cerro Verde...................................................5
FIGURA N 02: Plantas Concentradoras......................................................6
FIGURA N 03: Mallas de Perforacin......................................................10
FIGURA N 04: Diseo de rampa, vista de perfil..........................................11
FIGURA N 05: Fotografa tomada por la Pala 16.........................................12
FIGURA N 06: Levantamientos Topogrficos.............................................18
FIGURA N 07: Subida de los levantamientos en el Minesight.........................19
FIGURA N 08: Escaneo Lser................................................................20
FIGURA N 09: Levantamiento con Estacin Total.......................................21
FIGURA N 10: Levantamientos Continuos................................................22
FIGURA N 11: Replanteos utilizando receptor para la visualizacin de los puntos.
........................................................................................................23
FIGURA N 12: Marcado de Toes y Lmites De Minado y Lmites De Diseo.....24
FIGURA N 13: Marcado de Inicios de Cabeza y Rampas...............................25
FIGURA N 14: Marcado de Inicios de Cabeza y Rampas...............................25
FIGURA N 15: Marcado de lmites de Descarga en Stocks Desmonteras y PADs. 26
FIGURA N 16 : Marcado de Polgonos.....................................................27
FIGURA N 17: Polgonos de minado delimitados........................................27
FIGURA N 18: Polgonos de minado delimitados........................................28
FIGURA N 19: Visualizacin de un levantamiento de Cresta, verde, antes de ser
unido.................................................................................................38
FIGURA N 20: Visualizacin de un levantamiento de Cresta que ha sido unido...39
FIGURA N 21: Interface de MSR to CSV.py..............................................47
FIGURA N 22: Interface de Update stocks g CV1 0.py.................................48
FIGURA N 23: Interface de BucketTaladro 105.py......................................49
FIGURA N 24 : Interface de Voronoi d.py.................................................50
FIGURA N 25: Interface de Hauling 1 32.py..............................................51
FIGURA N 26: Interface de Drilling and blasting planner 1.0.py.....................52
FIGURA N 27: Interface de perforacin CV 1.6..........................................53
INDICE DE TABLAS
fortalecindose.
durante el periodo de enero a abrilen la beca cerro verde 2016. Resaltando en todo
da a da.
OBJETIVOS
OBJETIVOS GENERALES:
oportunidades de mejora.
partes de la mina.
mina.
tener.
mejora.
CAPITULO I: GENERALIDADES
SX/EW. Freeport McMoRan Copper & Gold Inc., con sede en EEUU, posee el
53,56% de Cerro Verde, a travs de Cyprus Climax Metals Co., mientras que
1.2. GEOGRAFIA
La Sociedad Minera Cerro Verde S.A.A. tiene sus instalaciones en la regin
N01 y a una altitud promedio de 2.600 metros sobre el nivel del mar, en un
tener un clima caluroso y de poca escorrenta. Se dice que es una de las minas
una planta para Crush Leach de 39,000 TMD y Leaching. (Ver Figura N02)
Cerro Verde utiliza el mtodo de explotacin a Tajo Abierto (Open Pit), debido a las
masivo.
de otras reas, donde se busca lograr sinergia en los trabajos, para el bien de la
En este captulo se describirn las operaciones unitarias desde el punto de vista del
planeando de tal manera que se abastezca a los procesos cumpliendo tonelajes y leyes
requeridas.
voladura.
determinada.
Lograr la mayor utilizacin posible de las perforadoras y si es posible
perforadoras.
La cara libre, sin esta la voladura es de mala calidad es decir mala
minar.
Los mantenimientos programados de los equipos, principalmente de
las palas.
Requerimientos de mineral, debido a que existen distintos procesos,
seguimiento por los supervisores de campo para que se cumpla segn los plazos
estimados.
2.1.1. PERFORACIN
Su fin es perforar los bancos para introducir explosivos para detonar y fragmentar la
roca. Los parmetros de espaciamiento de las mallas de perforacin son dados por el
in-situ.
TALU
FIGURA N 03: Mallas de Perforacin.
Fuente: La empresa
tienen 40m de ancho, y tienen como objetivo principal cuidar la estabilidad de los
taludes.
Salvo excepciones dadas por la geometra, estos proyectos tienen 4 filas y que segn
Trim
Buffer
Produccin modificada
Produccin
Cuando las condiciones geotcnicas son pobres, se perforan dos filas de taladros
entre el proyecto de control y el talud, los cuales no son cargados con explosivo, a
Las rampas de diseo estn constituidas por material in-situ, desde la cabeza de
rampahasta la media rampa, y por material de relleno desde la media rampa hasta el
pie de rampa.
Para ello la mallas de perforacin de una rampa perfora todo el banco desde la media
rampa hasta el pie de rampa y la otra mitad se perfora solo hasta alcanzar el plano de
diseo de rampa.
FIGURA N 04: Diseo de rampa, vista de perfil
Su objetivo no es obtener material para minar, sino cuidar el talud mediante pre-corte
del macizo en zonas que donde amerita esta tcnica. Son perforados en las crestas y
con los ngulos de diseo de los taludes. Son perforadas con dimetros menores que
cmaras fotogrficas que capturan los frentes cada vez que se da una carga. Estas son
2.3. CARGUO:
KTM.
Las palas son ubicadas estratgicamente para suplir los requerimientos de los
procesos.
Para ello se basan en ratios de minado, los cuales se estiman teniendo en cuenta los
siguientes factores:
leyes y mineralizacin.
Condiciones geotcnicas de los taludes.
Anchos, espacio disponible para el minado.
Disponibilidad de camiones para el acarreo.
Disponibilidad mecnica de las palas.
La ubicacin del cable elctrico de la pala.
Los ratios de minado pueden son altamente variantes, debido a las prioridades que
En la siguiente tabla se observa cuan variante pueden ser los ratios de minado, el cual
Como se observa, los ratios, aunque con tendencia segn el tipo de pala, no son
superficial.
Se logra cumplir los requerimientos de los procesos, pues cada fase mina
Es realizado por cerca de una centena de camiones gigantes mineros, los cuales son
Las vas de Cerro Verde tienen importancia para la compaa, son mantenidas
constantemente con lo que se logra que los neumticos tengan mayor tiempo de vida
Tabla 02: Cuadro de destinos de desmonte de la pala 10, para la fase CV4,
al botadero SE.
interferencias con otros trabajos o proyectos; tomando en cuenta que las condiciones
anuales.
CAPITULO III: CORTO PLAZO Y TOPOGRAFA
minado.
5. Ore control.
6. Topografa.
3.1.1. TOPOGRAFA
realizan con sumo cuidado para evitar lesiones y prdidas Esta rea
diariamente realiza:
Esta tcnica tiene entre sus grandes ventajas la precisin; sin embargo el
que sea utilizado en todos los trabajos, una muestra del escaneo con
procesar, se utilizan para levantar crestas, toes, cables hacia pala, entre
d) Lentamente contnuos
e) Replantos
berma de 6m.
Dependiendo la zona los taludes varan, pero en promedio tienen
de 10m
Los proyectos de control cuyo ancho suele tener 40m, son separados
Se controlan la cota de los pisos de las palas, cuanto resta para llegar al
Lmites De Diseo
f) Marcado de chutas
Desmonteras y PADs
g) Marcado de polgonos:
al menos 20m, por ser el ancho mnimo operativo para minar, los cuales
son cargados a los servidores dispatch para una mejor visualizacin son
18.
pertenecientes a la compaa
import Tkinter as tk
from Tkinter import *
from datetime import date
from datetime import timedelta
import sys
import os
import calendar
import time
import datetime
import threading
import math
import time
import string
from ftplib import FTP
class StartPage(tk.Frame):
menubar = Menu(controller)
menubar.add_command(label="Dumps", command=lambda:
controller.show_frame("StartPage"))
menubar.add_command(label="Buckets", command=lambda:
controller.show_frame("PageOne"))
controller.config(menu= menubar)
global fecha
global fecha2
fecha = Entry(self)
fecha.grid(row=2,column=2)
fecha2 = Entry(self)
fecha2.grid(row=3,column=2)
fecha.insert(0, mm2+"/"+dd2+"/"+yy2)
fecha2.insert(0, mm1+"/"+dd1+"/"+yy1)
date1 = fecha.get()
date2 = fecha2.get()
file2 = open("consulta_items.sql","w")
file2.write(""TU CONSULTA AQUI"")
file2.close()
os.system('sqlcmd -S '+servidor+' -U '+usuario+' -P '+contrasena+' -i
consulta_items.sql -o lect_items.txt')
ruta=os.getcwd()
g = open(ruta+'\lect_items.txt',"r")
numero_t = len(g.readlines())
j=0
g = open(ruta+'\lect_items.txt',"r")
global destin
global var1
global drop
destin=[]
for d in g:
j=j+1
if j>=4 and j <=numero_t and len(d)>0:
linen = d.splitlines()
primer_e = linen[0]
division = primer_e.split()
destin.append(division[0])
if j== numero_t-2:
break
elif j== numero_t-2:
break
destin.append("TODOS")
var1 = StringVar()
var1.set("TODOS")
drop = OptionMenu(self, var1, *destin)
drop.grid(row=5, column=2,columnspan=1 , ipadx=10)
boton_draw= Button(self,text="Dibujar",command=lambda:
getvalues().dibujar_descarga() , font = "Arial 12 bold").grid(row=9,column=1,ipadx=30)
boton_exit = Button(self,text="Cerrar",fg="red",command=controller.destroy , font =
"Arial 12 bold").grid(row=9,column=2,ipadx=30, padx=5)
boton_refres = Button(self,text="Refresh",fg="green", command=lambda:
getvalues().refresho(drop), font = "Arial 12 bold").grid(row=10,column=2,ipadx=24
,padx=5)
Label(self,text="\nSMCV", font = "Arial 12").grid(row=11, column=1, columnspan=2)
class PageOne(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller
fechab.insert(0, mm2b+"/"+dd2b+"/"+yy2b)
fecha2b.insert(0, mm1b+"/"+dd1b+"/"+yy1b)
boton_draw= Button(self,text="Dibujar",command=lambda:
getvalues().dibujar_cargas() , font = "Arial 12 bold").grid(row=9,column=1,ipadx=30)
boton_exit = Button(self,text="Cerrar",fg="red",command=controller.destroy , font =
"Arial 12 bold").grid(row=9,column=2,ipadx=30, padx=5)
boton_refres = Button(self,text="Run Dig_buck",fg="pink", command=lambda:
getvalues().digbuck(), font = "Arial 12 bold").grid(row=10,column=2)
Label(self,text="\n\n\nSMCV", font = "Arial 12").grid(row=11, column=1,
columnspan=2)
class getvalues:
def dibujar_descarga(self):
fechafin=0
fec = fecha.get()
fec2 = fecha2.get()
date1 = datetime.datetime.strptime(fec, '%m/%d/%Y').date()
date2 = datetime.datetime.strptime(fec2, '%m/%d/%Y').date()
DESTINO2=str(var1.get())
DESTINO1 = "%" + DESTINO2 + "%"
if DESTINO1 == "%TODOS%":
DESTINO = '/**/'
else:
DESTINO = "(hd.loc like '"+ DESTINO1 + "') and "
for xi in range(ddays.days+1):
fechaf = date1 + timedelta(days=xi)
fechafin = str(fechaf)
file1 = open("consulta_descargas_fecha1.sql","w")
file1.write(""TU CONSULTA AQUI"")
file1.close()
os.system('sqlcmd -S '+servidor+' -U '+usuario+' -P '+contrasena+' -i
consulta_descargas_fecha1.sql -o lect_descargas_fecha1.txt')
ruta=os.getcwd()
f = open(ruta+'\lect_descargas_fecha1.txt',"r")
numero_total_lineas= len(f.readlines())
print fechafin," Numero de descargas", numero_total_lineas
i=0
f = open(ruta+'\lect_descargas_fecha1.txt',"r")
descarga = []
for des in f:
i=i+1
if i>=4 and i <=numero_total_lineas and len(des)>0:
cadena = des.splitlines()
primer_elemento = cadena[0]
division = primer_elemento.split()
#dia = division[0]
#shift = division[1]
#poligonos = division[2]
#hora_salida = division[3]
#hora_llegada = division[4]
#equipo_carguio = division[5]
#equipo_acarreo = division[6]
coordenada_x = int(division[7])
coordenada_y = int(division[8])
coordenada_z = 3000
if coordenada_x >0 and coordenada_y >0:
mark=element.create_marker([coordenada_x,coordenada_y,
coordenada_z])
descarga.append(mark)
if i== numero_total_lineas-2:
break
elif i== numero_total_lineas-3:
break
else:
pass
try:
datamanager.make_folder("\\00 Buckets and Dumps\\Dumps\\" + fechafin)
except:
pass
try:
objk = datamanager.create_geometry("\\00 Buckets and Dumps\\Dumps\\" +
fechafin + "\\" + DESTINO2+ " " + fechafin)
except:
datamanager.remove("\\00 Buckets and Dumps\\Dumps\\" + fechafin + "\\" +
DESTINO2+ " " + fechafin)
print "Object overwrited"
objk = datamanager.create_geometry("\\00 Buckets and Dumps\\Dumps\\" +
fechafin + "\\" + DESTINO2+ " " + fechafin)
objk = datamanager.open_geometry("\\00 Buckets and Dumps\\Dumps\\" +
fechafin + "\\" + DESTINO2+ " " + fechafin)
objk.add_elements(descarga)
objk.close()
datamanager.refresh("\\00 Buckets and Dumps\\Dumps\\")
print "Descargas importadas in \\00 Buckets and Dumps\\Dumps\\"
file2 = open("consulta_items.sql","w")
file2.write( "use Powerview select hist_dumps.loc Destino FROM hist_dumps JOIN
hist_exproot he ON hist_dumps.shiftindex = he.shiftindex left JOIN hist_gradelist on
hist_gradelist.shiftindex = he.shiftindex and hist_gradelist.gradeid = hist_dumps.grade
WHERE (he.shiftdate Between '"+ date1 +"' and '"+ date2 +"')group by hist_dumps.loc
order by hist_dumps.loc")
file2.close()
def dibujar_cargas(self):
fechafinb = 0
fecb = fechab.get()
fec2b = fecha2b.get()
date1b = datetime.datetime.strptime(fecb, '%m/%d/%Y').date()
date2b = datetime.datetime.strptime(fec2b, '%m/%d/%Y').date()
def digbuck(self):
material = 'Digline'
material1 = 'Bucket'
IPdispatch = TU IP AQUI
User = 'TU USUARIO AQUI'
pasword = 'TU CLAVE AQUI'
dia=time.localtime()[2]
mes=time.localtime()[1]
anio=time.localtime()[0]
hora = time.localtime()[3]
min=time.localtime()[4]
nombre="DG %2s-%2s-%2s %2s_%2s" % (anio,mes,dia,hora,min)
nombre1="BCK %2s-%2s-%2s %2s_%2s" % (anio,mes,dia,hora,min)
try:
ftp = FTP(IPdispatch)
ftp.login(User,pasword) # colocar password en caso de expirar el acceso a DSP
ftp.cwd("/dsp/client/shared/avance")
ftp.retrbinary('RETR dig_bhs.dxf', open("digline.dxf", 'wb').write)
ftp.retrbinary('RETR bucket.srv', open("bucket.srv", 'wb').write)
ftp.quit()
print "DIGLINES CORRECTAMENTE ACTUALIZADOS"
print "En el archivo: digline.dxf"
except:
root = Tk()
root.title("Error")
root.withdraw()
tkMessageBox.showerror("ERROR DE ACCESO","Usuario o Password Dispatch
Obsoletos")
root.destroy()
try:
datamanager.make_folder("\\00 Buckets and Dumps\\Digline\\")
except:
pass
try:
mob = datamanager.remove("\\00 Buckets and Dumps\\Digline\\" + nombre)
mob1 = datamanager.remove("\\00 Buckets and Dumps\\Digline\\" + nombre1)
except:
pass
try:
mob = datamanager.create_geometry("\\00 Buckets and Dumps\\Digline\\" +
nombre, "\\materials\\Digline")
mob1 = datamanager.create_geometry("\\00 Buckets and Dumps\\Digline\\" +
nombre1, "\\materials\\ColorPink")
except:
print "El proceso esta corriendo"
print nombre
print nombre1
mob = datamanager.open_geometry("\\00 Buckets and Dumps\\Digline\\" + nombre)
mob1 = datamanager.open_geometry("\\00 Buckets and Dumps\\Digline\\" +
nombre1)
mob.close()
mob1.close()
ruta = datamanager.get_physical_path(mob)
ruta1 = datamanager.get_physical_path(mob1)
geomdata = Geometry(ruta)
geomdata1 = Geometry(ruta1)
inp = open("outrr.txt","r")
pol=0
point = 0
lpts=[]
lcord=[]
for line in inp.readlines():
if line[0:4]=='$$$$':
if pol > 0:
lpts.append(lcord)
try:
geomdata.addpolygon('dig', 'Digline', 0, lpts)
except:
print "1"
pol =pol+1
point = 0
lpts=[]
lcord=[]
else:
if line[0:1] == '&':
if point > 0:
lpts.append(lcord)
point = point + 1
lcord=[]
else:
if line <> 'END':
lcord.append(float(line))
else:
try:
geomdata.addpolygon('dig', 'Digline', 0, lpts)
except:
pass
pol = pol-1
mob.close()
inp.close()
inpt = open("bucket.srv","r")
lspg = []
for line in inpt.readlines():
list = string.split(line)
lisp = [float(list[0]), float(list[1]),2513]
lspg.append(lisp)
try:
geomdata1.addmarkers('bucket', material1, 0, lspg)
except:
pass
inpt.close()
geomdata.storeresource()
mob1.close()
geomdata1.storeresource()
datamanager.refresh("\\00 Buckets and Dumps\\Digline\\" + nombre)
datamanager.refresh("\\00 Buckets and Dumps\\Digline\\" + nombre1)
print "Done"
if msg == messages.gPRE_RUN:
pass
elif msg == messages.gRUN:
UpdateStock().mainloop()
elif msg == messages.gPOST_RUN:
pass
else:
return gsys.grailmain(msg, data)
Observacin:
en otros das.
del usuario.
levantamiento.
3. Recortar la polilnea.
4. Unir el levantamiento, poli lnea de color verde a la poli lnea
cresta, azul.
5. Suavizar la lnea para obtener una geometra regular.
FIGURA N 19: Visualizacin de un levantamiento de Cresta, verde, antes de
ser unido.
Fuente: Elaboracin Propia
Con el script actualizador topografico.py se tendria que realizar solo el soguiente
paso:
Seleccionar el levatamiento en el datamanager, y los objetos en el viewer de
minesight.
import sys
import os
import gc
import threading
import time
import csv
import math
pathcolitabu = pathcolita.split(".")[0]+"BackUp.msr"
cuerpitobu = geometry.create_or_open(pathcolitabu)
selectioncuerp = selectionbuffer.get_elements()
pathcuerpito = selectioncuerpo[0].get_parent_physical_path()
create(pathcuerpito.split(".")[0]+"SURF.msr")
cuerpito = Geometry(pathcuerpito)
pm = progressmeter.ProgressMeter()
pm.start(colastotal)
#ANALISIS DE LEVANTAMIENTO POR LEVANTAMIENTO PARA COMPROBAR
A QUE ELEMENTO DEBERIA PERTENECER, SEGN UTILIZANDO
ALGORITMOS DE DISTANCIA Y SENTIDO. Y VALIENDOSE DE LA GEOMETRIA
PSEUDO CIRCULAR DE LOS TAJOS
for numerodecola in range(colastotal):
if colastotal>20:
print "Too much polylines, for sure it's been bad highlighted"
break
pm.increment(numerodecola)
puntoscuerpo=[]
puntoscolita=[]
puntosnew=[]
dini=10000
dinf=10000
unidoya=0
ind = -1
puntoscolita = colita.getpolylinepointsat(numerodecola)
print "Analizando linea: %i" % (numerodecola+1)
if selectionbuffer.is_selection():
for elementn in selectioncuerpo:
type1=elementn.get_type()
if type1 in [element.PolylineType]:
puntoscuerpo = elementn.get_pointlist()
centermass = ag.pointlistcenter(puntoscuerpo)
if centermass[2] > (ag.pointlistcenter(puntoscolita)[2]-14) and
centermass[2] < (ag.pointlistcenter(puntoscolita)[2]+14): #RANGO Z
for x in range(len(puntoscuerpo)):
if (puntoscuerpo[x][0]>(puntoscolita[0][0]-30) and
puntoscuerpo[x][0]<(puntoscolita[0][0]+30) and puntoscuerpo[x]
[1]>(puntoscolita[0][1]-30) and puntoscuerpo[x][1]<(puntoscolita[0]
[1]+30)) or (puntoscuerpo[x][0]>(puntoscolita[-1][0]-30) and
(puntoscuerpo[x][0]<puntoscolita[-1][0]+30) and puntoscuerpo[x]
[1]>(puntoscolita[-1][1]-30) and puntoscuerpo[x][1]<(puntoscolita[-1]
[1]+30)): #RANGO X Y
centermass1 = ag.pointlistcenter(puntoscolita)
vect11 = [x1 - x2 for (x1, x2) in zip(puntoscolita[0],
centermass1)]
try:
vect21 = [x1 - x2 for (x1, x2) in zip(puntoscolita[6],
centermass1)]
except:
vect21 = [x1 - x2 for (x1, x2) in zip(puntoscolita[3],
centermass1)]
if sentz1 == sentz:
pass
else:
puntoscolita = puntoscolita[::-1]
dinf=ag.pointdistance(puntoscolita[len(puntoscolita)-1], puntoscuerpo[p])
inf = p+1
if ini<(inf-1):
for q in range(ini):
puntosnew.append(puntoscuerpo[q])
for q in range(len(puntoscolita)):
puntosnew.append(puntoscolita[q])
for q in range(inf, len(puntoscuerpo)):
puntosnew.append(puntoscuerpo[q])
elif ini==(inf-1):
if ag.pointdistance(puntoscolita[len(puntoscolita)-
1], puntoscuerpo[0]) < ag.pointdistance(puntoscolita[0],
puntoscuerpo[len(puntoscuerpo)-1]):
puntosnew = puntoscolita + puntoscuerpo
else:
puntosnew = puntoscuerpo + puntoscolita
else:
for q in range(len(puntoscolita)):
puntosnew.append(puntoscolita[q])
for q in range(inf, ini):
puntosnew.append(puntoscuerpo[q])
bordenew = ag.boundingPolygon(puntosnew)
bordenew = [[x,y,0] for [x,y,z] in bordenew]
borde = [[x,y,0] for [x,y,z] in borde]
if ag.pointlistarea(borde) > ag.pointlistarea(bordenew):
puntoscolita = puntoscolita[::-1]
puntosnew = []
dini=10000
dinf=10000
print "special case"
for p in range(len(puntoscuerpo)):
if ag.pointdistance(puntoscolita[0], puntoscuerpo[p]) < dini:
dini=ag.pointdistance(puntoscolita[0],
puntoscuerpo[p])
ini = p
if
ag.pointdistance(puntoscolita[len(puntoscolita)-1], puntoscuerpo[p]) <
dinf:
dinf=ag.pointdistance(puntoscolita[len(puntoscolita)-1], puntoscuerpo[p])
inf = p+1
if ini<(inf-1):
for q in range(ini):
puntosnew.append(puntoscuerpo[q])
for q in range(len(puntoscolita)):
puntosnew.append(puntoscolita[q])
for q in range(inf, len(puntoscuerpo)):
puntosnew.append(puntoscuerpo[q])
elif ini==(inf-1):
if
ag.pointdistance(puntoscolita[len(puntoscolita)-1], puntoscuerpo[0]) <
ag.pointdistance(puntoscolita[0], puntoscuerpo[len(puntoscuerpo)-1]):
puntosnew = puntoscolita + puntoscuerpo
else:
puntosnew = puntoscuerpo + puntoscolita
else:
for q in range(len(puntoscolita)):
puntosnew.append(puntoscolita[q])
for q in range(inf, ini):
puntosnew.append(puntoscuerpo[q])
for l in range(cuerpito.getpolylinecount()):
if cuerpito.getpolylinepointsat(l) == puntoscuerpo:
ind = l
cuerpito.deletepolylineat(ind)
break
if ind == -1:
print "Indice not found, searching again"
for l in range(cuerpito.getpolylinecount()):
if cuerpito.getpolylinepointsat(l)[0] ==
puntoscuerpo[0]:
ind = l
cuerpito.deletepolylineat(ind)
break
if ind==-1:
print "Indice not found, some line was not
deleted"
centermass1 = ag.pointlistcenter(puntoscolita)
vect11 = [x1 - x2 for (x1, x2) in zip(puntoscolita[0],
centermass1)]
try:
vect21 = [x1 - x2 for (x1, x2) in zip(puntoscolita[6],
centermass1)]
except:
pass
vect21 = [x1 - x2 for (x1, x2) in zip(puntoscolita[3],
centermass1)]
if sentz1 == sentz:
print "reversed"
pass
else:
puntoscolita = puntoscolita[::-1]
puntoscolita = ag.smoothbezier(puntoscolita, 2, 80)
for p in range(len(puntoscuerpo)):
if ag.pointdistance(puntoscolita[0],
puntoscuerpo[p]) < dini:
dini=ag.pointdistance(puntoscolita[0],
puntoscuerpo[p])
ini = p
if ag.pointdistance(puntoscolita[len(puntoscolita)-
1], puntoscuerpo[p]) < dinf:
dinf=ag.pointdistance(puntoscolita[len(puntoscolita)-1], puntoscuerpo[p])
inf = p+1
if ini<(inf-1):
for q in range(ini):
puntosnew.append(puntoscuerpo[q])
for q in range(len(puntoscolita)):
puntosnew.append(puntoscolita[q])
for q in range(inf, len(puntoscuerpo)):
puntosnew.append(puntoscuerpo[q])
elif ini==(inf-1):
puntosnew = puntoscuerpo + puntoscolita
else:
for q in range(len(puntoscolita)):
puntosnew.append(puntoscolita[q])
for q in range(inf, ini):
puntosnew.append(puntoscuerpo[q])
bordenew = ag.boundingPolygon(puntosnew)
bordenew = [[x,y,0] for [x,y,z] in bordenew]
borde = [[x,y,0] for [x,y,z] in borde]
if ag.pointlistarea(borde) > ag.pointlistarea(bordenew):
print "special"
puntoscolita = puntoscolita[::-1]
puntosnew = []
dini=10000
dinf=10000
for p in range(len(puntoscuerpo)):
if ag.pointdistance(puntoscolita[0],
puntoscuerpo[p]) < dini:
dini=ag.pointdistance(puntoscolita[0],
puntoscuerpo[p])
ini = p
if
ag.pointdistance(puntoscolita[len(puntoscolita)-1], puntoscuerpo[p]) <
dinf:
dinf=ag.pointdistance(puntoscolita[len(puntoscolita)-1], puntoscuerpo[p])
inf = p+1
if ini<(inf-1):
for q in range(ini):
puntosnew.append(puntoscuerpo[q])
for q in range(len(puntoscolita)):
puntosnew.append(puntoscolita[q])
for q in range(inf, len(puntoscuerpo)):
puntosnew.append(puntoscuerpo[q])
elif ini==(inf-1):
if
ag.pointdistance(puntoscolita[len(puntoscolita)-1], puntoscuerpo[0]) <
ag.pointdistance(puntoscolita[0], puntoscuerpo[len(puntoscuerpo)-1]):
puntosnew = puntoscolita + puntoscuerpo
else:
puntosnew = puntoscuerpo + puntoscolita
else:
for q in range(len(puntoscolita)):
puntosnew.append(puntoscolita[q])
for q in range(inf, ini):
puntosnew.append(puntoscuerpo[q])
for l in range(cuerpito.getpolygoncount()):
if puntoscuerpo == cuerpito.getpolygonpointsat(l):
ind = l
cuerpito.deletepolygonat(ind)
break
if ind == -1:
print "Indice not found, searching again"
for l in range(cuerpito.getpolylinecount()):
if cuerpito.getpolylinepointsat(l)[0] ==
puntoscuerpo[0]:
ind = l
cuerpito.deletepolylineat(ind)
break
if ind==-1:
print "Indice not found, some line was not
deleted"
if msg == messages.gPRE_RUN:
pass
elif msg == messages.gRUN:
UpdateTC()
elif msg == messages.gPOST_RUN:
pass
else:
return gsys.grailmain(msg, data)
3.1.2.2. Otros script desarrollados para el rea.
As, este script es utilizado para convertir los puntos de los diseos de
FIG
DHfrombucket 104.py
El modelo de bloques de los stock de mina es actualizado
segn dispatch, generando que la zona que fue descargada durante una
semana tenga la misma ley. Para ello, se desarrollo este script, que
enlaza las leyes del modelo de bloques del tajo con la ley del modelo de
Figura N 23.
exploracion.
Fuente:Elaboracin Propia
3.1.2.2.2.3. Interpolacin de zonas con variables discretas -
necesita poligonear ciertos tems, ya sea la ley, litologa, etc. Que fue
variables discretas
ciertotem
blasting.py
tem ROP.
El rea est Planeamiento Corto Plazo est conformada por tres reas
Training y Becario.
Los objetivos del rea de Planeamiento Corto Plazo son: Cumplir con
y abastecimiento. (Planeamin
Control).
objetivos de produccin.
fallan.
El uso de tecnologa de mensuracin, como lo son los escaneos de
superficies con lser, permite que el minado sea eficiente y rentable con
resultados que sean dados a tiempo, para tomar mejores decisiones. Siempre
de la compaa.
Se ha logrado identificar los factores determinantes en el desarrollo de los
RECOMENDACIONES:
Buscar maneras de mejorar la utilizacin de los equipos, reduccin de
DEFINIONES Y ABREVIATURAS
de
PosicionamientoGlobal)correccionesdelosdatosrecibidosdelossatlitesGPS,con
el fin deproporcionaruna
mayorprecisinenlaposicincalculada.Unadelasutilidadesms
importantesconsisteen
introducirlascoordenadasdeunpunto,mostrndonosdeforma grfica
EstacinTotal:Sedenominaestacintotalauninstrumentoelectro-
pticoutilizadoen topografa,cuyofuncionamientoseapoyaenlatecnologa
electrnica.Consisteenla incorporacindeundistancimetro y
unmicroprocesadoraunteodolitoelectrnico.
ScannerLaser:Sistemapticooinstrumentopticocuyofuncionamientoseapoya
enla
tecnologaLser.ConsisteenlaincorporacindeunLseryunmicroprocesadorlocu
al nospermitetenerinformacin topogrfica.
LevantamientoTopogrfico:Eslatomadedatosnecesariosconequipostopogrfi
ReplanteoTopogrfico:Esmediantepuntosconcoordenadas,representary/otraz
dePlanificacinRequeridos.
Talud:Esunasuperficieplanoinclinado,generadaporelavancedecarguodelaspal
Cresta:BordeoLneaconstituidaentrelasuperficiedelterrenoyeliniciodecadadel
talud.
desubidadeltalud.
TrabajosoProyectosEspeciales:Sontrabajosnorutinarios,quesonprincipalment
ede apoyoaotrasreas.
PorEjemplo:LevantamientoStockenMatarani,Nivelacinde
Perforadoras,nuevos proyectos,etc.