Skip to content

Commit 7f4dccd

Browse files
committed
print out the statistics/put python server in/submitted milestone
1 parent 7034d0f commit 7f4dccd

File tree

5 files changed

+89
-10
lines changed

5 files changed

+89
-10
lines changed

.DS_Store

0 Bytes
Binary file not shown.

data/stat.json

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"std": {"Ayeyarwady": 520.6260139967366, "Bago": 218.43792989184485, "Chin": 320.57249742972476, "Kachin": 204.19996708409738, "Kayah": 236.09044985172523, "Kayin": 271.3294373402955, "Magway": 193.0518465580359, "Mandalay": 182.56457709659463, "Mon": 324.06008429212864, "Rakhine": 538.6163940236103, "Sagaing": 176.78949498076653, "Shan": 227.395437115509, "Tanintharyi": 376.2902372995526, "Yangon": 264.21604020156644}, "mean": {"Ayeyarwady": -2.7511237242424778, "Bago": 89.6969989482632, "Chin": 142.2559435142704, "Kachin": 92.6174435749121, "Kayah": 98.89933680720038, "Kayin": 133.39817507077817, "Magway": 87.3642957213881, "Mandalay": 71.70975160993561, "Mon": 120.1278454208576, "Rakhine": -17.85027921718569, "Sagaing": 94.72380019588638, "Shan": 127.89265010641873, "Tanintharyi": 27.27958024453644, "Yangon": 90.13846247193739}, "median": {"Ayeyarwady": 0.0, "Bago": 0.0, "Chin": 71.0, "Kachin": 66.0, "Kayah": 0.0, "Kayin": 68.0, "Magway": 0.0, "Mandalay": 0.0, "Mon": 51.0, "Rakhine": 23.0, "Sagaing": 28.0, "Shan": 34.0, "Tanintharyi": 49.0, "Yangon": 0.0}}

index.html

+40-10
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
<script src='lib/topojson.min.js'></script>
4747
<script src="lib/d3.min.js"></script>
4848
<script src="lib/leaflet-sidebar.js"></script>
49+
<script src="lib/jquery-3.3.1.min.js"></script>
4950
<div id="sidebar" class="sidebar collapsed">
5051
<!-- Nav tabs -->
5152
<div class="sidebar-tabs">
@@ -156,20 +157,23 @@ <h1 class="sidebar-header">Settings<span class="sidebar-close"><i class="fa fa-c
156157
// End of switcher control.
157158

158159
var statsInfo = L.control({position: 'bottomright'});
160+
let mean = " ";
161+
let std = " ";
162+
let median = " ";
159163

160164
statsInfo.onAdd = function (map) {
161-
var div = L.DomUtil.create('div', 'ctl');
162-
div.innerHTML = "<p> \
165+
var div = L.DomUtil.create('div', 'ctl');
166+
div.innerHTML = "<p> \
163167
<h1 align=\"left\">Statistics</h1>\
164168
<ul align = \"left\">\
165-
<li> Mean = value </li>\
166-
<li> Standard deviation = value </li>\
167-
<li> Median = value </li>\
169+
<li> Mean = " + mean + " </li>\
170+
<li> Standard deviation = " + std + " </li>\
171+
<li> Median = " + median + " </li>\
168172
</ul>\
169173
</p>";
170-
div.id = "info stats";
174+
div.id = "info stats";
171175

172-
return div;
176+
return div;
173177
};
174178
statsInfo.addTo(map);
175179

@@ -192,11 +196,17 @@ <h1 align=\"left\">Statistics</h1>\
192196
this.stream.point(point.x, point.y);
193197
}
194198

195-
let canton = null
199+
let canton = null;
200+
// load json
201+
// var json_ = $.getJSON('data/stat.json');
202+
const stat = d3.json("./data/stat.json").then(d => d);
203+
console.log(stat);
204+
205+
// let stat = $.parseJSON(json_);
196206

197207
let transform = d3.geoTransform({point: project_point});
198208
let gen_path = d3.geoPath().projection(transform);
199-
Promise.all([map_promise]).then((results) => {
209+
Promise.all([map_promise, stat]).then((results) => {
200210
console.log(results);
201211
let feature = g.selectAll('path')
202212
.data(results[0].features)
@@ -208,7 +218,27 @@ <h1 align=\"left\">Statistics</h1>\
208218
.attr('stroke', 'green')
209219
.attr('stroke-width', 2)
210220
.attr('stroke-opacity', 0.5)
211-
.on('mousedown.log', (d) => {canton = d.properties['NAME_1']; console.log(d.properties['NAME_1'])});
221+
.on('mousedown.log', (d) => {
222+
223+
// Set the canton
224+
canton = d.properties['NAME_1'];
225+
console.log(d.properties['NAME_1']);
226+
227+
// Set mean, std, and median
228+
mean = results[1]['mean'][canton];
229+
std = results[1]['std'][canton];
230+
median = results[1]['median'][canton];
231+
console.log(mean);
232+
let div_ = document.getElementById('info stats');
233+
div_.innerHTML = "<p> \
234+
<h1 align=\"left\">" + canton.toString() + " Statistics</h1>\
235+
<ul align = \"left\">\
236+
<li> Mean = " + mean.toString().substring(0,5) + " </li>\
237+
<li> Standard deviation = " + std.toString().substring(0,5) + " </li>\
238+
<li> Median = " + median.toString().substring(0,5) + " </li>\
239+
</ul>\
240+
</p>";
241+
});
212242

213243
let bounds = gen_path.bounds(results[0]);
214244
let top_left = bounds[0];

lib/jquery-3.3.1.min.js

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

py_server/response.py

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
from flask import Flask, request, Response
2+
from flask_cors import CORS
3+
from numpy import genfromtxt
4+
import numpy as np
5+
import pandas as pd
6+
from pyproj import Proj, transform
7+
import json
8+
9+
df = pd.read_csv('v3.csv', header=None)
10+
data = df.values
11+
# print(np.shape(data))
12+
pos = data[1:, 1:3]
13+
val = data[1:, 3]
14+
tag = data[1:, 4]
15+
# print('pos shape' + str(np.shape(pos)))
16+
# print('val shape' + str(np.shape(val)))
17+
# print(val[:10])
18+
print(tag[:10])
19+
print(pos[:10])
20+
app = Flask(__name__)
21+
CORS(app)
22+
inProj = Proj(init='epsg:32646')
23+
outProj = Proj(init='epsg:4326')
24+
25+
26+
def return_val(point):
27+
res = pos - point
28+
res_ = (np.abs(res[:, 0]) + np.abs(res[:, 1]))
29+
min_ind = np.argmin(res_)
30+
# res = {'val':str(val[min_ind]), 'canton':str(tag[min_ind])}
31+
32+
return str(val[min_ind])
33+
34+
35+
@app.route('/', methods=['POST', 'GET'])
36+
def resvalue():
37+
print('In server')
38+
if request.method == 'POST':
39+
json_file = request.get_json(force=True)
40+
return return_val(np.asarray([json_file['lin'], json_file['lat']]))
41+
42+
return 'fuck you'
43+
44+
45+
if __name__ == '__main__':
46+
app.run()

0 commit comments

Comments
 (0)