Commit 0094ed8f by Corey Koval

CZML Data is no longer saved to disk.

parent 2d41f602
...@@ -7,6 +7,7 @@ import time ...@@ -7,6 +7,7 @@ import time
import sqlite3 import sqlite3
import threading import threading
import signal import signal
import json
# import hashlib # import hashlib
from colorsys import hsv_to_rgb from colorsys import hsv_to_rgb
from optparse import OptionParser from optparse import OptionParser
...@@ -17,8 +18,6 @@ from sklearn.preprocessing import StandardScaler, minmax_scale ...@@ -17,8 +18,6 @@ from sklearn.preprocessing import StandardScaler, minmax_scale
from geojson import Point, MultiPoint, Feature, FeatureCollection from geojson import Point, MultiPoint, Feature, FeatureCollection
from czml3 import Packet, Document, Preamble from czml3 import Packet, Document, Preamble
from czml3.properties import Position, Polyline, PolylineOutlineMaterial, Color, Material from czml3.properties import Position, Polyline, PolylineOutlineMaterial, Color, Material
import json
from bottle import route, run, request, get, post, put, response, redirect, template, static_file from bottle import route, run, request, get, post, put, response, redirect, template, static_file
d = 40000 #meters d = 40000 #meters
...@@ -139,7 +138,7 @@ def plot_polar(lat_a, lon_a, lat_a2, lon_a2): ...@@ -139,7 +138,7 @@ def plot_polar(lat_a, lon_a, lat_a2, lon_a2):
##################################################### #####################################################
# Find line of intersection between two great circles # Find line of intersection between two great circles
##################################################### #####################################################
def plot_intersects(lat_a, lon_a, doa_a, lat_b, lon_b, doa_b, max_distance = 50000): def plot_intersects(lat_a, lon_a, doa_a, lat_b, lon_b, doa_b, max_distance = 100000):
# plot another point on the lob # plot another point on the lob
# v.direct(lat_a, lon_a, doa_a, d) # v.direct(lat_a, lon_a, doa_a, d)
# returns (lat_a2, lon_a2) # returns (lat_a2, lon_a2)
...@@ -271,7 +270,7 @@ def process_data(database_name, outfile): ...@@ -271,7 +270,7 @@ def process_data(database_name, outfile):
# Writes a geojson file upon request. # Writes a geojson file upon request.
############################################### ###############################################
def write_geojson(best_point, all_the_points): def write_geojson(best_point, all_the_points):
all_pt_style = {"name": "Various Points", "marker-color": "#FF0000"} all_pt_style = {"name": "Various Intersections", "marker-color": "#FF0000"}
best_pt_style = {"name": "Most Likely TX Location", "marker-color": "#00FF00"} best_pt_style = {"name": "Most Likely TX Location", "marker-color": "#00FF00"}
if all_the_points != None: if all_the_points != None:
all_the_points = Feature(properties = all_pt_style, geometry = MultiPoint(tuple(all_the_points))) all_the_points = Feature(properties = all_pt_style, geometry = MultiPoint(tuple(all_the_points)))
...@@ -292,14 +291,16 @@ def write_geojson(best_point, all_the_points): ...@@ -292,14 +291,16 @@ def write_geojson(best_point, all_the_points):
def write_czml(best_point, all_the_points, ellipsedata): def write_czml(best_point, all_the_points, ellipsedata):
point_properties = { point_properties = {
"pixelSize":5.0, "pixelSize":5.0,
"heightReference":"RELATIVE_TO_GROUND", "heightReference":"CLAMP_TO_GROUND",
# "heightReference":"RELATIVE_TO_GROUND",
# "color": { # "color": {
# "rgba": [255, 0, 0, 255], # "rgba": [255, 0, 0, 255],
# } # }
} }
best_point_properties = { best_point_properties = {
"pixelSize":12.0, "pixelSize":12.0,
"heightReference":"RELATIVE_TO_GROUND", # "heightReference":"RELATIVE_TO_GROUND",
"heightReference":"CLAMP_TO_GROUND",
"color": { "color": {
"rgba": [0, 255, 0, 255], "rgba": [0, 255, 0, 255],
} }
...@@ -359,9 +360,13 @@ def write_czml(best_point, all_the_points, ellipsedata): ...@@ -359,9 +360,13 @@ def write_czml(best_point, all_the_points, ellipsedata):
ellipse={**ellipse_properties, **ellipse_info}, ellipse={**ellipse_properties, **ellipse_info},
position={"cartographicDegrees": [ x[3], x[4], 15 ]})) position={"cartographicDegrees": [ x[3], x[4], 15 ]}))
with open("static/output.czml", "w") as file1: output = Document([top] + best_point_packets + all_point_packets + ellipse_packets)
file1.write(str(Document([top] + best_point_packets + all_point_packets + ellipse_packets)))
return output
###############################################
# Writes receivers.czml used by the WebUI
###############################################
def write_rx_czml(): def write_rx_czml():
height = 50 height = 50
receiver_point_packets = [] receiver_point_packets = []
...@@ -371,9 +376,9 @@ def write_rx_czml(): ...@@ -371,9 +376,9 @@ def write_rx_czml():
rx_properties = { rx_properties = {
"verticalOrigin": "BOTTOM", "verticalOrigin": "BOTTOM",
"scale": 0.75, "scale": 0.75,
"heightReference":"RELATIVE_TO_GROUND", "heightReference":"CLAMP_TO_GROUND",
"height": 48, "height": 48,
"width": 48 "width": 48,
} }
for index, x in enumerate(receivers): for index, x in enumerate(receivers):
...@@ -408,8 +413,9 @@ def write_rx_czml(): ...@@ -408,8 +413,9 @@ def write_rx_czml():
billboard={**rx_properties, **rx_icon}, billboard={**rx_properties, **rx_icon},
position={"cartographicDegrees": [ x.longitude, x.latitude, 15 ]})) position={"cartographicDegrees": [ x.longitude, x.latitude, 15 ]}))
with open("static/receivers.czml", "w") as file1: output = Document([top] + receiver_point_packets + lob_packets)
file1.write(str(Document([top] + receiver_point_packets + lob_packets)))
return output
############################################### ###############################################
...@@ -475,8 +481,6 @@ def cesium(): ...@@ -475,8 +481,6 @@ def cesium():
response.set_header('Cache-Control', 'no-cache, no-store, must-revalidate') response.set_header('Cache-Control', 'no-cache, no-store, must-revalidate')
with open('accesstoken.txt', "r") as tokenfile: with open('accesstoken.txt', "r") as tokenfile:
access_token = tokenfile.read().replace('\n', '') access_token = tokenfile.read().replace('\n', '')
write_czml(*process_data(database_name, geofile))
write_rx_czml()
return template('cesium.tpl', return template('cesium.tpl',
{'access_token':access_token, {'access_token':access_token,
'epsilon':ms.eps, 'epsilon':ms.eps,
...@@ -508,8 +512,6 @@ def update_cesium(): ...@@ -508,8 +512,6 @@ def update_cesium():
elif request.query.plotpts == "false": elif request.query.plotpts == "false":
ms.plotintersects = False ms.plotintersects = False
write_czml(*process_data(database_name, geofile))
write_rx_czml()
return "OK" return "OK"
############################################### ###############################################
...@@ -518,8 +520,7 @@ def update_cesium(): ...@@ -518,8 +520,7 @@ def update_cesium():
############################################### ###############################################
@get('/rx_params') @get('/rx_params')
def rx_params(): def rx_params():
write_czml(*process_data(database_name, geofile))
write_rx_czml()
all_rx = {'receivers':{}} all_rx = {'receivers':{}}
rx_properties = [] rx_properties = []
for index, x in enumerate(receivers): for index, x in enumerate(receivers):
...@@ -531,6 +532,16 @@ def rx_params(): ...@@ -531,6 +532,16 @@ def rx_params():
response.headers['Content-Type'] = 'application/json' response.headers['Content-Type'] = 'application/json'
return json.dumps(all_rx) return json.dumps(all_rx)
@get('/output.czml')
def tx_czml_out():
output = write_czml(*process_data(database_name, geofile))
return str(output)
@get('/receivers.czml')
def rx_czml_out():
output = write_rx_czml()
return str(output)
############################################### ###############################################
# PUT request to update receiver variables # PUT request to update receiver variables
# from the WebUI # from the WebUI
......
bottle==0.12.17 bottle>=0.12.17
geojson==2.5.0 geojson>=2.5.0
numpy==1.13.3 numpy>=1.13.3
lxml==4.2.1 lxml>=4.2.1
czml3==0.5.3 czml3>=0.5.3
scikit_learn==0.23.2 scikit_learn>=0.23.2
...@@ -47,14 +47,14 @@ ...@@ -47,14 +47,14 @@
} }
function loadTxCzml() { function loadTxCzml() {
var transmittersDataSource = Cesium.CzmlDataSource.load('/static/output.czml'); var transmittersDataSource = Cesium.CzmlDataSource.load('/output.czml');
viewer.dataSources.add(transmittersDataSource); viewer.dataSources.add(transmittersDataSource);
// console.log("Loaded CZML"); // console.log("Loaded CZML");
return transmittersDataSource; return transmittersDataSource;
} }
function loadRxCzml() { function loadRxCzml() {
var receiversDataSource = Cesium.CzmlDataSource.load('/static/receivers.czml'); var receiversDataSource = Cesium.CzmlDataSource.load('/receivers.czml');
viewer.dataSources.add(receiversDataSource); viewer.dataSources.add(receiversDataSource);
// console.log("Loaded CZML"); // console.log("Loaded CZML");
return receiversDataSource; return receiversDataSource;
......
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