I have the following file where I have declared
GHG_emissions1, GHG_emissions2, GHG_emissions3, GHG_emissions4 as global
variables but when I run it it says,
GHG_emissions1 is not defined.
Code:
import matplotlib
matplotlib.use('TkAgg')
import numpy as np
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
import Tkinter
from Tkinter import *
import tkMessageBox
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
from matplotlib.figure import Figure
global GHG_emissions1
global GHG_emissions2
global GHG_emissions3
global GHG_emissions4
def process():
import matplotlib
import Tkinter as tk
matplotlib.use('TkAgg')
# from matplotlib import style
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
from matplotlib.figure import Figure
class GraphPage(tk.Frame):
def __init__(self, parent):
tk.Frame.__init__(self, parent)
self.title_label = tk.Label(self, text="Graph Page Example")
self.title_label.pack()
self.pack()
def add_mpl_figure(self, fig):
self.mpl_canvas = FigureCanvasTkAgg(fig, self)
self.mpl_canvas.show()
self.mpl_canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=True)
self.toolbar = NavigationToolbar2TkAgg(self.mpl_canvas, self)
self.toolbar.update()
self.mpl_canvas._tkcanvas.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
class MPLGraph(Figure):
def __init__(self):
Figure.__init__(self, figsize=(5, 5), dpi=100)
self.plot = self.add_subplot(111)
self.plot.plot([1, 2, 3, 4], [GHG_emission1, GHG_emission2, GHG_emission3, GHG_emission4])
fig = MPLGraph()
root = tk.Tk()
graph_page = GraphPage(root)
graph_page.add_mpl_figure(fig)
root.mainloop()
def proces():
CO2_Sequestration_from_green_land=Entry.get(E1)
Well_Pad_area=Entry.get(E2)
Number_of_wells=Entry.get(E3)
well_lifetime=Entry.get(E4)
Number_of_wells_per_wellpad=Entry.get(E5)
Grub_stumps_and_remove=Entry.get(E8)
Cut_and_Chip_heavy_trees=Entry.get(E9)
Grading=Entry.get(E10)
Geotextile_Soil_Stabilization=Entry.get(E11)
Stone_Pavement=Entry.get(E12)
Emission_per_1_Million_and_Construction=Entry.get(E13)
Grub_stumps_and_remove_wpc=Entry.get(E16)
Cut_and_Chip_heavy_trees_wpc=Entry.get(E17)
Grading_wpc=Entry.get(E18)
Slurry_Trench_wpc=Entry.get(E19)
Pond_Liners_wpc=Entry.get(E20)
Stone_Pavement_wpc=Entry.get(E21)
Storage_Tanks_50000_gallons_wpc=Entry.get(E22)
Road_Construction_Time_Period_per_well=Entry.get(E25)
Well_Pad_Construction_Time_Period_per_well=Entry.get(E26)
Average_Number_of_Vehicles_per_well=Entry.get(E27)
Average_Vehicle_HP=Entry.get(E28)
Nox_Emission_factor=Entry.get(E29)
Sox_Emission_factor=Entry.get(E30)
CO_Emission_factor=Entry.get(E31)
CO2_Emission_factor=Entry.get(E32)
CO2_Sequestration_from_green_land=float(CO2_Sequestration_from_green_land)
Well_Pad_area=float(Well_Pad_area)
Number_of_wells=float(Number_of_wells)
well_lifetime=float(well_lifetime)
Number_of_wells_per_wellpad=float(Number_of_wells_per_wellpad)
Grub_stumps_and_remove=float(Grub_stumps_and_remove)
Cut_and_Chip_heavy_trees=float(Cut_and_Chip_heavy_trees)
Grading=float(Grading)
Geotextile_Soil_Stabilization=float(Geotextile_Soil_Stabilization)
Stone_Pavement=float(Stone_Pavement)
Emission_per_1_Million_and_Construction=float(Emission_per_1_Million_and_Construction)
Grub_stumps_and_remove_wpc=float(Grub_stumps_and_remove_wpc)
Cut_and_Chip_heavy_trees_wpc=float(Cut_and_Chip_heavy_trees_wpc)
Grading_wpc=float(Grading_wpc)
Slurry_Trench_wpc=float(Slurry_Trench_wpc)
Pond_Liners_wpc=float(Pond_Liners_wpc)
Stone_Pavement_wpc=float(Stone_Pavement_wpc)
Storage_Tanks_50000_gallons_wpc=float(Storage_Tanks_50000_gallons_wpc)
Road_Construction_Time_Period_per_well=float(Road_Construction_Time_Period_per_well)
Well_Pad_Construction_Time_Period_per_well=float(Well_Pad_Construction_Time_Period_per_well)
Average_Number_of_Vehicles_per_well=float(Average_Number_of_Vehicles_per_well)
Average_Vehicle_HP=float(Average_Vehicle_HP)
Nox_Emission_factor=float(Nox_Emission_factor)
Sox_Emission_factor=float(Sox_Emission_factor)
CO_Emission_factor=float(CO_Emission_factor)
CO2_Emission_factor=float(CO2_Emission_factor)
total_no_of_well_pads=(Number_of_wells/Number_of_wells_per_wellpad)
Entry.insert(E6,0,total_no_of_well_pads)
print(total_no_of_well_pads)
GHG_emissions1 = CO2_Sequestration_from_green_land*Well_Pad_area*well_lifetime*total_no_of_well_pads
Entry.insert(E7,0,GHG_emissions1)
print(GHG_emissions1)
Total_Item_Cost=(Grub_stumps_and_remove+Cut_and_Chip_heavy_trees+Geotextile_Soil_Stabilization+Stone_Pavement+Grading)*total_no_of_well_pads
Entry.insert(E14,0,Total_Item_Cost)
print(Total_Item_Cost)
GHG_emissions2 =Emission_per_1_Million_and_Construction*Total_Item_Cost*total_no_of_well_pads/1000000
Entry.insert(E15,0,GHG_emissions2)
print(GHG_emissions2)
Total_Item_Cost_for_Total_wellpad=(Grub_stumps_and_remove_wpc+Cut_and_Chip_heavy_trees_wpc+Grading_wpc+Slurry_Trench_wpc+Pond_Liners_wpc+Stone_Pavement_wpc+Storage_Tanks_50000_gallons_wpc)
Entry.insert(E23,0,Total_Item_Cost_for_Total_wellpad)
print(Total_Item_Cost_for_Total_wellpad)
GHG_emissions3=Emission_per_1_Million_and_Construction*Total_Item_Cost_for_Total_wellpad*total_no_of_well_pads/1000000
Entry.insert(E24,0,GHG_emissions3)
print(GHG_emissions3)
Nox_Emission=Nox_Emission_factor*(Road_Construction_Time_Period_per_well+Well_Pad_Construction_Time_Period_per_well)*1000*total_no_of_well_pads
Entry.insert(E33,0,Nox_Emission)
print(Nox_Emission)
Sox_Emission=Sox_Emission_factor*(Road_Construction_Time_Period_per_well+Well_Pad_Construction_Time_Period_per_well)*1000*total_no_of_well_pads
Entry.insert(E34,0,Sox_Emission)
print(Sox_Emission)
CO_Emission=CO_Emission_factor*(Road_Construction_Time_Period_per_well+Well_Pad_Construction_Time_Period_per_well)*1000*total_no_of_well_pads
Entry.insert(E35,0,CO_Emission)
print(CO_Emission)
CO2_Emission=CO2_Emission_factor*total_no_of_well_pads*Average_Number_of_Vehicles_per_well*Average_Vehicle_HP
Entry.insert(E36,0,CO2_Emission)
print(CO2_Emission)
GHG_emissions4=CO2_Emission+(1.9*CO_Emission)
Entry.insert(E37,0,GHG_emissions4)
print(GHG_emissions4)
top = Tkinter.Tk()
L1 = Label(top, text="WELL CONSTRUCTION EMISSIONS",).grid(row=0,column=2)
L2 = Label(top, text="CO2 Sequestration from green land (kg/square foot/year)",).grid(row=3,column=0)
L3 = Label(top, text="Well Pad area (square feet/well pad)",).grid(row=4,column=0)
L4 = Label(top, text="Number of wells",).grid(row=5,column=0)
L4 = Label(top, text="well lifetime (years) ",).grid(row=6,column=0)
L5 = Label(top, text="Number of wells/wellpad",).grid(row=7,column=0)
L6 = Label(top, text="total no of well pads",).grid(row=8,column=0)
L7 = Label(top, text="Emissions from Land and vegetative disruption (Kg CO2-eq)",).grid(row=9,column=0)
L38 = Label(top, text="Emissions from Land and vegetative disruption",).grid(row=1,column=1)
L8 = Label(top, text="Grub stumps and remove (Acre)",).grid(row=3,column=2)
L9 = Label(top, text="Cut and Chip heavy trees (Acre)",).grid(row=4,column=2)
L10 = Label(top, text="Grading (Sq yards)",).grid(row=5,column=2)
L11 = Label(top, text="Geotextile Soil Stabilization (Sq yards)",).grid(row=6,column=2)
L12 = Label(top, text="Stone Pavement (Sq yards)",).grid(row=7,column=2)
L13 = Label(top, text="Emission per 1 Million and Construction (Kg CO2-eq)",).grid(row=8,column=2)
L14 = Label(top, text="Total Item Cost ($) ",).grid(row=9,column=2)
L15 = Label(top, text="Emissions from Access Road Construction (Kg CO2-eq) ",).grid(row=10,column=2)
L39 = Label(top, text="Emissions from Access Road Construction",).grid(row=1,column=3)
L16 = Label(top, text="Grub stumps and remove wpc (Acre) ",).grid(row=12,column=2)
L17 = Label(top, text="Cut and Chip heavy trees wpc (Acre)",).grid(row=13,column=2)
L18 = Label(top, text="Grading wpc (Sq yards)",).grid(row=14,column=2)
L19 = Label(top, text="Slurry Trench wpc (Cub. Ft)",).grid(row=15,column=2)
L20 = Label(top, text="Pond Liners wpc(Sq ft)",).grid(row=16,column=2)
L21 = Label(top, text="Stone Pavement wpc (Sq yards)",).grid(row=17,column=2)
L22 = Label(top, text="Storage Tanks 50000 gallons wpc",).grid(row=18,column=2)
L23 = Label(top, text="Total Item Cost for Total wellpad ($) ",).grid(row=19,column=2)
L24 = Label(top, text=" Emissions from Well Pad Construction (Kg CO2-eq) ",).grid(row=20,column=2)
L40 = Label(top, text="Emissions from Well Pad Construction",).grid(row=11,column=3)
L41 = Label(top, text="Emissions from Construction Vehicles",).grid(row=10,column=1)
L25 = Label(top, text="Road Construction Time Period per well (days)",).grid(row=11,column=0)
L26 = Label(top, text="Well Pad Construction Time Period per well (days)",).grid(row=12,column=0)
L27 = Label(top, text="Average Number of Vehicles per well",).grid(row=13,column=0)
L28 = Label(top, text="Average Vehicle HP",).grid(row=14,column=0)
L29 = Label(top, text="Nox Emission factor(Tonne/construction time)",).grid(row=15,column=0)
L30 = Label(top, text="Sox Emission factor(Tonne/construction time)",).grid(row=16,column=0)
L31 = Label(top, text="CO Emission factor(Tonne/construction time)",).grid(row=17,column=0)
L32 = Label(top, text="CO2 Emission factor(kg/HP)",).grid(row=18,column=0)
L33 = Label(top, text="Nox Emission(Kg)",).grid(row=19,column=0)
L34 = Label(top, text="Sox Emission(Kg)",).grid(row=20,column=0)
L35 = Label(top, text="CO Emission(Kg)",).grid(row=21,column=0)
L36 = Label(top, text="CO2 Emission(kg)",).grid(row=22,column=0)
L37 = Label(top, text="Emissions from Construction Vehicles (Kg CO2-eq)",).grid(row=23,column=0)
E1 = Entry(top, bd =5)
E1.grid(row=3,column=1)
E2 = Entry(top, bd =5)
E2.grid(row=4,column=1)
E3 = Entry(top, bd =5)
E3.grid(row=5,column=1)
E4 = Entry(top, bd =5)
E4.grid(row=6,column=1)
E5 = Entry(top, bd =5)
E5.grid(row=7,column=1)
E6 = Entry(top, bd =5)
E6.grid(row=8,column=1)
E7 = Entry(top, bd =5)
E7.grid(row=9,column=1)
E8 = Entry(top, bd =5)
E8.grid(row=3,column=3)
E9 = Entry(top, bd =5)
E9.grid(row=4,column=3)
E10 = Entry(top, bd =5)
E10.grid(row=5,column=3)
E11 = Entry(top, bd =5)
E11.grid(row=6,column=3)
E12 = Entry(top, bd =5)
E12.grid(row=7,column=3)
E13 = Entry(top, bd =5)
E13.grid(row=8,column=3)
E14 = Entry(top, bd =5)
E14.grid(row=9,column=3)
E15 = Entry(top, bd =5)
E15.grid(row=10,column=3)
E16 = Entry(top, bd =5)
E16.grid(row=12,column=3)
E17 = Entry(top, bd =5)
E17.grid(row=13,column=3)
E18 = Entry(top, bd =5)
E18.grid(row=14,column=3)
E19 = Entry(top, bd =5)
E19.grid(row=15,column=3)
E20 = Entry(top, bd =5)
E20.grid(row=16,column=3)
E21 = Entry(top, bd =5)
E21.grid(row=17,column=3)
E22 = Entry(top, bd =5)
E22.grid(row=18,column=3)
E23 = Entry(top, bd =5)
E23.grid(row=19,column=3)
E24 = Entry(top, bd =5)
E24.grid(row=20,column=3)
E25 = Entry(top, bd =5)
E25.grid(row=11,column=1)
E26 = Entry(top, bd =5)
E26.grid(row=12,column=1)
E27 = Entry(top, bd =5)
E27.grid(row=13,column=1)
E28 = Entry(top, bd =5)
E28.grid(row=14,column=1)
E29 = Entry(top, bd =5)
E29.grid(row=15,column=1)
E30 = Entry(top, bd =5)
E30.grid(row=16,column=1)
E31 = Entry(top, bd =5)
E31.grid(row=17,column=1)
E32 = Entry(top, bd =5)
E32.grid(row=18,column=1)
E33 = Entry(top, bd =5)
E33.grid(row=19,column=1)
E34 = Entry(top, bd =5)
E34.grid(row=20,column=1)
E35 = Entry(top, bd =5)
E35.grid(row=21,column=1)
E36 = Entry(top, bd =5)
E36.grid(row=22,column=1)
E37 = Entry(top, bd =5)
E37.grid(row=23,column=1)
B=Button(top, text ="Calculate",command = process).grid(row=23,column=3,)
top.mainloop()
You seem to think that
global GHG_emissions1
at module level has an effect on the functions you define. It doesn't. The global
statement tells the interpreter not to look for the name in the local function or class namespace.
So, at module level, do
GHG_emissions1 = 0 # or whatever initialization you want
and inside each function that refers to GHG_emissions1
do
global GHG_emissions1
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.