Commit 38187faf authored by Manas Gabani's avatar Manas Gabani

Trend routes added for classrooms page

parent 7ffee017
...@@ -98,11 +98,11 @@ def statewise_distribution(output_filename, input_df, year, main_dimension, sub_ ...@@ -98,11 +98,11 @@ def statewise_distribution(output_filename, input_df, year, main_dimension, sub_
def total_enrolment_by_category(output_filename, input_df, main_dimension, state_code, ylabel): def total_enrolment_by_category(output_filename, input_df, main_dimension, state_code, ylabel):
fig = plt.figure(figsize=(fig_size_tr_w,fig_size_tr_h)) fig = plt.figure(figsize=(fig_size_tr_w,fig_size_tr_h))
df_fil=input_df.loc[input_df['Main_Dimension'] == main_dimension] df_fil = input_df.loc[input_df['Main_Dimension'] == main_dimension]
df_fil=df_fil.loc[(df_fil['State_Code'] == state_code)] df_fil = df_fil.loc[(df_fil['State_Code'] == state_code)]
min_year, max_year = min(df_fil['Year']), max(df_fil['Year']) min_year, max_year = min(df_fil['Year']), max(df_fil['Year'])
df_sum = df_fil.groupby(['Sub_Dimension','State_Code','Year'],as_index = False).sum() df_sum = df_fil.groupby(['Sub_Dimension','State_Code','Year'],as_index = False).sum()
df_sum=df_sum[['Sub_Dimension','State_Code','Year','total']] df_sum = df_sum[['Sub_Dimension','State_Code','Year','total']]
df_govt=df_sum.loc[(df_sum['Sub_Dimension'] == "Government")] df_govt=df_sum.loc[(df_sum['Sub_Dimension'] == "Government")]
df_pvt=df_sum.loc[(df_sum['Sub_Dimension'] == "Private")] df_pvt=df_sum.loc[(df_sum['Sub_Dimension'] == "Private")]
...@@ -121,27 +121,27 @@ def total_enrolment_by_category(output_filename, input_df, main_dimension, state ...@@ -121,27 +121,27 @@ def total_enrolment_by_category(output_filename, input_df, main_dimension, state
def total_teachers_by_main_dimension(output_filename, input_df, main_dimension, state_code): def total_teachers_by_main_dimension(output_filename, input_df, main_dimension, state_code):
fig = plt.figure(figsize=(fig_size_tr_w,fig_size_tr_h)) fig = plt.figure(figsize=(fig_size_tr_w,fig_size_tr_h))
df_fil=input_df.loc[input_df['Main_Dimension'] == main_dimension] df_fil = input_df.loc[input_df['Main_Dimension'] == main_dimension]
df_fil=df_fil.loc[(df_fil['State_Code'] == state_code)] df_fil = df_fil.loc[(df_fil['State_Code'] == state_code)]
min_year, max_year = min(df_fil['Year']), max(df_fil['Year']) min_year, max_year = min(df_fil['Year']), max(df_fil['Year'])
df_sum = df_fil.groupby(['Sub_Dimension','State_Code','Year'],as_index = False).sum() df_sum = df_fil.groupby(['Sub_Dimension','State_Code','Year'],as_index = False).sum()
df_sum=df_sum[['Sub_Dimension','State_Code','Year','total']] df_sum = df_sum[['Sub_Dimension','State_Code','Year','total']]
if 'Category' in main_dimension: if 'Category' in main_dimension:
df_govt=df_sum.loc[(df_sum['Sub_Dimension'] == "Government")] df_govt = df_sum.loc[(df_sum['Sub_Dimension'] == "Government")]
df_pvt=df_sum.loc[(df_sum['Sub_Dimension'] == "Private")] df_pvt = df_sum.loc[(df_sum['Sub_Dimension'] == "Private")]
df_madr=df_sum.loc[(df_sum['Sub_Dimension'] == "Madrasas & Unrecognised")] df_madr = df_sum.loc[(df_sum['Sub_Dimension'] == "Madrasas & Unrecognised")]
plt.plot(df_govt['Year'],df_govt['total'],color='r', label='Goverment') plt.plot(df_govt['Year'],df_govt['total'],color='r', label='Goverment')
plt.plot(df_pvt['Year'],df_pvt['total'],color='g', label='Private') plt.plot(df_pvt['Year'],df_pvt['total'],color='g', label='Private')
plt.plot(df_madr['Year'],df_madr['total'],color='b', label='Madrasas') plt.plot(df_madr['Year'],df_madr['total'],color='b', label='Madrasas')
else: else:
df_bel_sec=df_sum.loc[(df_sum['Sub_Dimension'] == "Below Secondary")] df_bel_sec = df_sum.loc[(df_sum['Sub_Dimension'] == "Below Secondary")]
df_sec=df_sum.loc[(df_sum['Sub_Dimension'] == "Secondary")] df_sec = df_sum.loc[(df_sum['Sub_Dimension'] == "Secondary")]
df_hs=df_sum.loc[(df_sum['Sub_Dimension'] == "Higher Secondary")] df_hs = df_sum.loc[(df_sum['Sub_Dimension'] == "Higher Secondary")]
df_grad=df_sum.loc[(df_sum['Sub_Dimension'] == "Graduate")] df_grad = df_sum.loc[(df_sum['Sub_Dimension'] == "Graduate")]
df_pg=df_sum.loc[(df_sum['Sub_Dimension'] == "Post Graduate")] df_pg = df_sum.loc[(df_sum['Sub_Dimension'] == "Post Graduate")]
df_phd=df_sum.loc[(df_sum['Sub_Dimension'] == "M.Phil / Ph.D")] df_phd = df_sum.loc[(df_sum['Sub_Dimension'] == "M.Phil / Ph.D")]
plt.plot(df_bel_sec['Year'],df_bel_sec['total'],color='r', label='Below Secondary') plt.plot(df_bel_sec['Year'],df_bel_sec['total'],color='r', label='Below Secondary')
plt.plot(df_sec['Year'],df_sec['total'],color='g', label='Secondary') plt.plot(df_sec['Year'],df_sec['total'],color='g', label='Secondary')
...@@ -157,6 +157,29 @@ def total_teachers_by_main_dimension(output_filename, input_df, main_dimension, ...@@ -157,6 +157,29 @@ def total_teachers_by_main_dimension(output_filename, input_df, main_dimension,
plt.savefig(output_filename) plt.savefig(output_filename)
plt.close(fig) plt.close(fig)
def total_classrooms_by_trend(output_filename, input_df, state_code):
fig = plt.figure(figsize=(fig_size_tr_w,fig_size_tr_h))
df_fil=input_df.loc[input_df['Main_Dimension'] == "Total Classrooms"]
df_fil=df_fil.loc[(df_fil['State_Code'] == state_code)]
min_year, max_year = min(df_fil['Year']), max(df_fil['Year'])
df_sum = df_fil.groupby(['Sub_Dimension','State_Code','Year'],as_index = False).sum()
df_sum = df_sum[['Sub_Dimension','State_Code','Year','total']]
df_good_cond = df_sum.loc[(df_sum['Sub_Dimension'] == "Good Condition")]
df_minor_repair = df_sum.loc[(df_sum['Sub_Dimension'] == "Need Minor Repair")]
df_major_repair = df_sum.loc[(df_sum['Sub_Dimension'] == "Need Major Repair")]
plt.plot(df_good_cond['Year'],df_good_cond['total'],color='r', label='Good Condition')
plt.plot(df_minor_repair['Year'],df_minor_repair['total'],color='g', label='Need Minor Repair')
plt.plot(df_major_repair['Year'],df_major_repair['total'],color='b', label='Need Major Repair')
plt.legend()
plt.xticks(np.arange(min_year, max_year+1, 1.0))
plt.ylabel('Number of classrooms')
plt.xlabel('Year')
plt.savefig(output_filename)
plt.close(fig)
app = Flask(__name__) app = Flask(__name__)
print(' ------------ Server Started ------------ ') print(' ------------ Server Started ------------ ')
UPLOAD_FOLDER = 'static/' UPLOAD_FOLDER = 'static/'
...@@ -166,13 +189,6 @@ app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER ...@@ -166,13 +189,6 @@ app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
app.config["CACHE_TYPE"] = "null" app.config["CACHE_TYPE"] = "null"
app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0 app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0
# app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024
# ALLOWED_EXTENSIONS = set(['png', 'jpg', 'jpeg', 'gif'])
# def allowed_file(filename):
# return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
def prepare_graph(filename): def prepare_graph(filename):
data=list(np.random.uniform(1, 10, size=(10,1)).reshape(-1)) data=list(np.random.uniform(1, 10, size=(10,1)).reshape(-1))
ind = np.arange(len(data)) ind = np.arange(len(data))
...@@ -263,16 +279,19 @@ def schools(): ...@@ -263,16 +279,19 @@ def schools():
total_enrolment_by_category(os.path.join(app.config['UPLOAD_FOLDER'], trend_schools), final_df, main_dimension='School by Category', state_code=default_state_code, ylabel='Number of schools') total_enrolment_by_category(os.path.join(app.config['UPLOAD_FOLDER'], trend_schools), final_df, main_dimension='School by Category', state_code=default_state_code, ylabel='Number of schools')
return render_template('schools.html', trend_schools=trend_schools, distribution_schools_by_category=distribution_schools_by_category, distribution_rural_schools_by_category=distribution_rural_schools_by_category, schools_by_category_summary=schools_by_category_summary, rural_schools_by_category_summary=rural_schools_by_category_summary, school_category=school_category, rural_school_category=rural_school_category) return render_template('schools.html', trend_schools=trend_schools, distribution_schools_by_category=distribution_schools_by_category, distribution_rural_schools_by_category=distribution_rural_schools_by_category, schools_by_category_summary=schools_by_category_summary, rural_schools_by_category_summary=rural_schools_by_category_summary, school_category=school_category, rural_school_category=rural_school_category)
trend_classrooms = ''
distribution_classroom_by_condition = '' distribution_classroom_by_condition = ''
classroom_condition_summary = {} classroom_condition_summary = {}
classroom_condition = '' classroom_condition = ''
@app.route('/classrooms.html') @app.route('/classrooms.html')
def classrooms(): def classrooms():
global distribution_classroom_by_condition, classroom_condition_summary, classroom_condition global trend_classrooms, distribution_classroom_by_condition, classroom_condition_summary, classroom_condition
classroom_condition = 'Good Condition' classroom_condition = 'Good Condition'
distribution_classroom_by_condition = "img/distribution_classroom_by_condition_good_{}.jpeg".format(latest_year) distribution_classroom_by_condition = "img/distribution_classroom_by_condition_good_{}.jpeg".format(latest_year)
classroom_condition_summary = statewise_distribution(os.path.join(app.config['UPLOAD_FOLDER'], distribution_classroom_by_condition), final_df, latest_year, main_dimension = "Total Classrooms", sub_dimension=classroom_condition) classroom_condition_summary = statewise_distribution(os.path.join(app.config['UPLOAD_FOLDER'], distribution_classroom_by_condition), final_df, latest_year, main_dimension = "Total Classrooms", sub_dimension=classroom_condition)
return render_template('classrooms.html', distribution_classroom_by_condition=distribution_classroom_by_condition, classroom_condition_summary=classroom_condition_summary, classroom_condition=classroom_condition) trend_classrooms = "img/trend_classrooms_{}.jpeg".format(default_state_code)
total_classrooms_by_trend(os.path.join(app.config['UPLOAD_FOLDER'], trend_classrooms), final_df, default_state_code)
return render_template('classrooms.html', trend_classrooms=trend_classrooms, distribution_classroom_by_condition=distribution_classroom_by_condition, classroom_condition_summary=classroom_condition_summary, classroom_condition=classroom_condition)
distribution_school_facility = '' distribution_school_facility = ''
school_facility_summary = {} school_facility_summary = {}
...@@ -379,11 +398,13 @@ def get_distribution_of_rural_schools_by_category(): ...@@ -379,11 +398,13 @@ def get_distribution_of_rural_schools_by_category():
rural_schools_by_category_summary = statewise_distribution(os.path.join(app.config['UPLOAD_FOLDER'], distribution_rural_schools_by_category), final_df, requested_year, main_dimension = "Rural Schools", sub_dimension=rural_school_category) rural_schools_by_category_summary = statewise_distribution(os.path.join(app.config['UPLOAD_FOLDER'], distribution_rural_schools_by_category), final_df, requested_year, main_dimension = "Rural Schools", sub_dimension=rural_school_category)
return render_template('schools.html', distribution_schools_by_category=distribution_schools_by_category, distribution_rural_schools_by_category=distribution_rural_schools_by_category, schools_by_category_summary=schools_by_category_summary, rural_schools_by_category_summary=rural_schools_by_category_summary, school_category=school_category, rural_school_category=rural_school_category) return render_template('schools.html', distribution_schools_by_category=distribution_schools_by_category, distribution_rural_schools_by_category=distribution_rural_schools_by_category, schools_by_category_summary=schools_by_category_summary, rural_schools_by_category_summary=rural_schools_by_category_summary, school_category=school_category, rural_school_category=rural_school_category)
@app.route('/get_trend_from_classrooms', methods=['POST']) @app.route('/get_trend_for_classrooms', methods=['POST'])
def get_trend_from_classrooms(): def get_trend_for_classrooms():
trend_from_classrooms = 'img/sample_trend_classrooms_new.jpeg' global form_value_to_main_dimension_mapping, trend_classrooms, distribution_classroom_by_condition, classroom_condition_summary, classroom_condition
prepare_graph(trend_from_classrooms) state_code = int(request.form['state_code'])
return render_template('classrooms.html', trend_from_classrooms=trend_from_classrooms) trend_classrooms = "img/trend_classrooms_{}.jpeg".format(state_code)
total_classrooms_by_trend(os.path.join(app.config['UPLOAD_FOLDER'], trend_classrooms), final_df, state_code)
return render_template('classrooms.html', trend_classrooms=trend_classrooms, distribution_classroom_by_condition=distribution_classroom_by_condition, classroom_condition_summary=classroom_condition_summary, classroom_condition=classroom_condition)
@app.route('/get_distribution_of_classroom_conditions', methods=['POST']) @app.route('/get_distribution_of_classroom_conditions', methods=['POST'])
def get_distribution_of_classroom_conditions(): def get_distribution_of_classroom_conditions():
......
...@@ -78,30 +78,51 @@ ...@@ -78,30 +78,51 @@
<div class="title"> <div class="title">
Trend by state Trend by state
</div> </div>
<form method="POST" action="/get_trend_from_classrooms"> <form method="POST" action="/get_trend_for_classrooms">
Select state: Select state:
<select name="state" class="state"> <select name="state_code" class="state_code">
<option value="Maharashtra">Maharashtra</option> <option value="1">JAMMU & KASHMIR</option>
<option value="Gujarat">Gujarat</option> <option value="2">HIMACHAL PRADESH</option>
<option value="Karnataka">Karnataka</option> <option value="3">PUNJAB</option>
<option value="Kerela">Kerela</option> <option value="4">CHANDIGARH</option>
<option value="5">UTTARAKHAND</option>
<option value="6">HARYANA</option>
<option value="7">DELHI</option>
<option value="8">RAJASTHAN</option>
<option value="9">UTTAR PRADESH</option>
<option value="10">BIHAR</option>
<option value="11">SIKKIM</option>
<option value="12">ARUNACHAL PRADESH</option>
<option value="13">NAGALAND</option>
<option value="14">MANIPUR</option>
<option value="15">MIZORAM</option>
<option value="16">TRIPURA</option>
<option value="17">MEGHALAYA</option>
<option value="18">ASSAM</option>
<option value="19">WEST BENGAL</option>
<option value="20">JHARKHAND</option>
<option value="21">ODISHA</option>
<option value="22">CHHATTISGARH</option>
<option value="23">MADHYA PRADESH</option>
<option value="24">GUJARAT</option>
<option value="25">DAMAN & DIU</option>
<option value="26">DADRA & NAGAR HAVELI</option>
<option value="27">MAHARASHTRA</option>
<option value="28">ANDHRA PRADESH</option>
<option value="29">KARNATAKA</option>
<option value="30">GOA</option>
<option value="31">LAKSHADWEEP</option>
<option value="32">KERALA</option>
<option value="33">TAMIL NADU</option>
<option value="34">PUDUCHERRY</option>
<option value="35">ANDAMAN & NICOBAR ISLANDS</option>
<option value="36">TELANGANA</option>
</select> </select>
Select type: <input name="get_trend_for_classrooms" type="submit" value="Submit">
<select name="type" class="type">
<option value="category">By Category</option>
<option value="rural">By Rural Enrolments</option>
</select>
<input name="get_trend_from_classrooms" type="submit" value="Submit">
</form> </form>
{% if trend_from_classrooms %}
<div>
<img src="{{ url_for('static', filename=trend_from_classrooms) }}">
</div>
{% else %}
<div> <div>
<img src="{{ url_for('static', filename='img/sample_trend_classrooms.jpeg') }}"> <img src="{{ url_for('static', filename=trend_classrooms) }}">
</div> </div>
{% endif %}
</div> </div>
</div> </div>
<div class="content-2"> <div class="content-2">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment