Skip to content

Commit

Permalink
Peace&Love now has equipment onboard!
Browse files Browse the repository at this point in the history
  • Loading branch information
landswellsong committed Jun 4, 2017
1 parent dab9e00 commit bb3eb99
Show file tree
Hide file tree
Showing 4 changed files with 122 additions and 33 deletions.
8 changes: 5 additions & 3 deletions backend/promis/backend_api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
from rest_framework.exceptions import NotAuthenticated, NotFound, MethodNotAllowed
from rest_framework.renderers import JSONRenderer, BrowsableAPIRenderer

from django.contrib.gis.geos import GEOSGeometry

import unix_time

import datetime
Expand Down Expand Up @@ -274,11 +276,11 @@ def get_queryset(self):

time_begin = self.request.query_params.get('time_begin')
if time_begin:
filter_opts['session__time_begin__gte'] = unix_time.maketime(time_begin)
filter_opts['session__time_begin__gte'] = unix_time.maketime(int(time_begin))

time_end = self.request.query_params.get('time_end')
if time_begin:
filter_opts['session__time_end__lte'] = unix_time.maketime(time_end)
if time_end:
filter_opts['session__time_end__lte'] = unix_time.maketime(int(time_end))

# NOTE: channels and filters are combined as *AND* not *OR* at the moment
# so they are mutually exclusive in a sense, but this won't be a problem for alpha
Expand Down
30 changes: 15 additions & 15 deletions backend/promis/classes/test_set.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
# TODO: yield/with problem, see potential.py for details
# TODO: make deploy figure out Docker's bridge IP dynamically

def general_fetch(path, satellite_object, add_measurement=False):
def general_fetch(path, satellite_object):
with ftp_helper.FTPChecker(path, "172.17.0.1", 2121) as ftp:
# Iterating over all the sessions available
for sess_name in ftp.nlst():
Expand All @@ -44,21 +44,21 @@ def general_fetch(path, satellite_object, add_measurement=False):
# TODO: srid should be 4979 see #222
sess_obj = model.Session.objects.create(time_begin = time_start, time_end = time_end, geo_line = LineString(*line_gen, srid = 4326), space_project = satellite_object )

if add_measurement:
# Fetching JSON documents from the FTP
docs = []
for fname in [ "channel", "parameter" ]:
with ftp.xopen(fname + ".json") as fp:
docs.append(model.Document.objects.create(json_data = json.loads(fp.getvalue())) )
# Fetching JSON documents from the FTP
docs = []
for fname in [ "channel", "parameter" ]:
with ftp.xopen(fname + ".json") as fp:
docs.append(model.Document.objects.create(json_data = json.loads(fp.getvalue())) )

# Locating channels/parameters
# TODO: natural keys
chan_obj = model.Channel.objects.language('en').filter(description = "Termometer reading")[0]
par_obj = model.Parameter.objects.language('en').filter(name = "Measured Space Temperature")[0]
# Locating channels/parameters
# TODO: natural keys
# TODO: both use same things for now
chan_obj = model.Channel.objects.language('en').filter(description = "Termometer reading (%d)" % satellite_object.id)[0]
par_obj = model.Parameter.objects.language('en').filter(name = "Measured Space Temperature (%d)" % satellite_object.id)[0]

# Creating the measurement object
# TODO: frequencies?
model.Measurement.objects.create(session = sess_obj, parameter = par_obj, channel = chan_obj, channel_doc = docs[0], parameter_doc = docs[1], sampling_frequency = 1, max_frequency = 1, min_frequency = 1)
# Creating the measurement object
# TODO: frequencies?
model.Measurement.objects.create(session = sess_obj, parameter = par_obj, channel = chan_obj, channel_doc = docs[0], parameter_doc = docs[1], sampling_frequency = 1, max_frequency = 1, min_frequency = 1)

ftp.cwd("..")

Expand All @@ -74,7 +74,7 @@ def check(self):
yield v

def fetch(self, data_id):
general_fetch("roundabout/" + data_id, self.project_obj, True)
general_fetch("roundabout/" + data_id, self.project_obj)


class PeaceLove(BaseProject):
Expand Down
18 changes: 9 additions & 9 deletions test/data/generate.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,15 +124,6 @@ def insert_orbit(folder, start_time, gen_func, data_func=None):

time = new_time

# Seed the PRNG
seed(random_seed)

# Ready, steady, go!
insert_orbit("peace_love/heart", heart_start, heart)
insert_orbit("peace_love/circle", peace_start, circle)
insert_orbit("peace_love/vline", lines_start, vline)
insert_orbit("peace_love/uptick", utick_start, uptick)

def gen_space_temp():
freq = 100
amps = [ randint(50,100) for i in range(freq*orbit_sec) ]
Expand All @@ -141,6 +132,15 @@ def gen_space_temp():

return mv, amps

# Seed the PRNG
seed(random_seed)

# Ready, steady, go!
insert_orbit("peace_love/heart", heart_start, heart, gen_space_temp)
insert_orbit("peace_love/circle", peace_start, circle, gen_space_temp)
insert_orbit("peace_love/vline", lines_start, vline, gen_space_temp)
insert_orbit("peace_love/uptick", utick_start, uptick, gen_space_temp)

# TODO: break into several datapoints ("days")
# TODO: make short and long sessions
# TODO: variable frequencies et al
Expand Down
99 changes: 93 additions & 6 deletions test/data/test_set.json
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@
"model": "backend_api.devicetranslation",
"pk": 42001,
"fields": {
"name": "Space Termometer",
"name": "Space Termometer (42000)",
"description": "Fictional device to measure random things.",
"language_code": "en",
"master": 42000
Expand All @@ -98,15 +98,42 @@
"model": "backend_api.devicetranslation",
"pk": 42002,
"fields": {
"name": "\u041a\u043e\u0441\u043c\u0456\u0447\u043d\u0438\u0439 \u0422\u0435\u0440\u043c\u043e\u043c\u0435\u0442\u0440",
"name": "\u041a\u043e\u0441\u043c\u0456\u0447\u043d\u0438\u0439 \u0422\u0435\u0440\u043c\u043e\u043c\u0435\u0442\u0440 (42000)",
"description": "\u0412\u0438\u0434\u0443\u043c\u0430\u043d\u0438\u0439 \u043f\u0440\u0438\u0441\u0442\u0440\u0456\u0439 \u044f\u043a\u0438\u0439 \u043c\u0456\u0440\u044f\u0454 \u0432\u0438\u043f\u0430\u0434\u043a\u043e\u0432\u0456 \u0440\u0435\u0447\u0456",
"language_code": "uk",
"master": 42000
}
},
{
"model": "backend_api.devicetranslation",
"pk": 42003,
"fields": {
"name": "Space Termometer (42001)",
"description": "Fictional device to measure random things.",
"language_code": "en",
"master": 42001
}
},
{
"model": "backend_api.devicetranslation",
"pk": 42004,
"fields": {
"name": "\u041a\u043e\u0441\u043c\u0456\u0447\u043d\u0438\u0439 \u0422\u0435\u0440\u043c\u043e\u043c\u0435\u0442\u0440 (42001)",
"description": "\u0412\u0438\u0434\u0443\u043c\u0430\u043d\u0438\u0439 \u043f\u0440\u0438\u0441\u0442\u0440\u0456\u0439 \u044f\u043a\u0438\u0439 \u043c\u0456\u0440\u044f\u0454 \u0432\u0438\u043f\u0430\u0434\u043a\u043e\u0432\u0456 \u0440\u0435\u0447\u0456",
"language_code": "uk",
"master": 42001
}
},
{
"model": "backend_api.device",
"pk": 42000,
"fields": {
"space_project": 42000
}
},
{
"model": "backend_api.device",
"pk": 42001,
"fields": {
"space_project": 42001
}
Expand All @@ -116,7 +143,7 @@
"pk": 42001,
"fields": {
"name": "U",
"description": "Termometer reading",
"description": "Termometer reading (42000)",
"language_code": "en",
"master": 42000
}
Expand All @@ -126,11 +153,31 @@
"pk": 42002,
"fields": {
"name": "U",
"description": "\u041f\u043e\u043a\u0430\u0437\u0438 \u0442\u0435\u0440\u043c\u043e\u043c\u0435\u0442\u0440\u0443",
"description": "\u041f\u043e\u043a\u0430\u0437\u0438 \u0442\u0435\u0440\u043c\u043e\u043c\u0435\u0442\u0440\u0443 (42000)",
"language_code": "uk",
"master": 42000
}
},
{
"model": "backend_api.channeltranslation",
"pk": 42003,
"fields": {
"name": "U",
"description": "Termometer reading (42001)",
"language_code": "en",
"master": 42001
}
},
{
"model": "backend_api.channeltranslation",
"pk": 42004,
"fields": {
"name": "U",
"description": "\u041f\u043e\u043a\u0430\u0437\u0438 \u0442\u0435\u0440\u043c\u043e\u043c\u0435\u0442\u0440\u0443 (42001)",
"language_code": "uk",
"master": 42001
}
},
{
"model": "backend_api.channel",
"pk": 42000,
Expand All @@ -141,6 +188,16 @@
"klass": [ "classes.base_data.SingleVarTimeSeries" ]
}
},
{
"model": "backend_api.channel",
"pk": 42001,
"fields": {
"value": 1,
"device": 42001,
"exponent": -6,
"klass": [ "classes.base_data.SingleVarTimeSeries" ]
}
},
{
"model": "backend_api.unittranslation",
"pk": 42001,
Expand Down Expand Up @@ -198,7 +255,7 @@
"model": "backend_api.parametertranslation",
"pk": 42001,
"fields": {
"name": "Measured Space Temperature",
"name": "Measured Space Temperature (42000)",
"description": "What our satellite thinks the temperature is.",
"language_code": "en",
"master": 42000
Expand All @@ -208,12 +265,32 @@
"model": "backend_api.parametertranslation",
"pk": 42002,
"fields": {
"name": "\u0412\u0438\u043c\u0456\u0440\u0438 \u041a\u043e\u0441\u043c\u0456\u0447\u043d\u043e\u0457 \u0422\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0438",
"name": "\u0412\u0438\u043c\u0456\u0440\u0438 \u041a\u043e\u0441\u043c\u0456\u0447\u043d\u043e\u0457 \u0422\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0438 (42000)",
"description": "\u0429\u043e \u043d\u0430\u0448 \u0441\u0443\u043f\u0443\u0442\u043d\u0438\u043a \u0434\u0443\u043c\u0430\u0454 \u0437 \u043f\u0440\u0438\u0432\u043e\u0434\u0443 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0438",
"language_code": "uk",
"master": 42000
}
},
{
"model": "backend_api.parametertranslation",
"pk": 42003,
"fields": {
"name": "Measured Space Temperature (42001)",
"description": "What our satellite thinks the temperature is.",
"language_code": "en",
"master": 42001
}
},
{
"model": "backend_api.parametertranslation",
"pk": 42004,
"fields": {
"name": "\u0412\u0438\u043c\u0456\u0440\u0438 \u041a\u043e\u0441\u043c\u0456\u0447\u043d\u043e\u0457 \u0422\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0438 (42001)",
"description": "\u0429\u043e \u043d\u0430\u0448 \u0441\u0443\u043f\u0443\u0442\u043d\u0438\u043a \u0434\u0443\u043c\u0430\u0454 \u0437 \u043f\u0440\u0438\u0432\u043e\u0434\u0443 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0438",
"language_code": "uk",
"master": 42001
}
},
{
"model": "backend_api.parameter",
"pk": 42000,
Expand All @@ -223,5 +300,15 @@
"exponent": 0,
"klass": [ "classes.base_data.SingleVarTimeSeries" ]
}
},
{
"model": "backend_api.parameter",
"pk": 42001,
"fields": {
"value": 42000,
"channel": 42001,
"exponent": 0,
"klass": [ "classes.base_data.SingleVarTimeSeries" ]
}
}
]

0 comments on commit bb3eb99

Please sign in to comment.