Usando el archivo .root
que cree con el notebook csv_to_root_meteorite.ipynb
voy a hacer unas pocas gráficas, principalmente para familiarizarme un poco mas con ROOT, sin embargo, creo que no es la mejor herramienta para trabajar estos datos en específico; claro, esta es la opinión de una persona que es la primera vez que usa ROOT y no conoce todos sus poderes.
import ROOT
%jsroot on
f = ROOT.TFile.Open("meteorite.root")
# -- "data" es el nombre que use para convertir el .csv a .root
# -- TTree *tree = new TTree("data","data from csv file");
tree = f.Get("data")
tree
tree.GetEntries()
Veamos el conteo de meteoritos por años
canvas_year = ROOT.TCanvas("Canvas_year","Conteo meteoritos por año",800,600)
hist_year = ROOT.TH1F("variable","Number meteorites per year; Year ; Number of meteorites ",10,900,2100)
for event in tree:
hist_year.Fill(tree.year)
print("Done!")
hist_year.SetFillColor(46)
hist_year.SetLineColor(46)
hist_year.Draw()
canvas_year.Draw()
Veamos el conteo de meteoritos de acuerdo a la masa.
# -- para determinar los límites del eje x, veo el número de valor únicos de masa, el máximo y el mínimo
import pandas as pd
import numpy as np
datanew = pd.read_csv('meteorite-landings_clean.csv')
print(len(np.unique(datanew['mass'])))
print(max(np.unique(datanew['mass'])))
print(min(np.unique(datanew['mass'])))
sorted(np.unique(datanew['mass']))[-9:]
canvas_mass = ROOT.TCanvas("Canvas_mass","Conteo meteoritos por masa",800,600)
# -- estoy reduciendo bastante el numero de bins (10) para poder ver mejor la gráfica
hist_mass = ROOT.TH1F("variable","Number meteorites per mass; Mass ; Number of meteorites ",10,0,60.e3)
for event in tree:
hist_mass.Fill(tree.mass)
print("Done!")
hist_mass.SetFillColor(30)
hist_mass.SetLineColor(30)
hist_mass.Draw()
canvas_mass.Draw()