Skip to content

Commit

Permalink
added argument statistics for time series requests
Browse files Browse the repository at this point in the history
  • Loading branch information
gtsarik committed Dec 18, 2017
1 parent 6917d90 commit 5d0acd9
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 20 deletions.
2 changes: 1 addition & 1 deletion src/api/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
url(r'^reports/(?P<ds_id>[0-9]+)/$', ReportsDetail.as_view()),

# upload AOI file
url(r'^upload-aoi/(?P<ds_id>[0-9]+)/', UploadFileAoiView.as_view()),
url(r'^upload-aoi/(?P<ds_id>[0-9]+)/$', UploadFileAoiView.as_view()),

# upload file to FTP
url(r'^upload/$', UploadFileFtpView.as_view()),
Expand Down
40 changes: 21 additions & 19 deletions src/api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@

from core.utils import (validate_status, write_log, get_path_folder_run, execute_fe_command, handle_uploaded_file)
from gsi.models import Run, RunStep, CardSequence, OrderedCardItem, SubCardItem
from gsi.settings import (EXECUTE_FE_COMMAND, KML_PATH, FTP_PATH, KML_DIRECTORY, REMAP_DIRECTORY, REMAP_PATH)
from gsi.settings import (EXECUTE_FE_COMMAND, KML_PATH, FTP_PATH, KML_DIRECTORY,
REMAP_DIRECTORY, REMAP_PATH, STATISTICS)
from cards.models import CardItem
from customers.models import (CustomerPolygons, DataTerraserver, DataSet, CustomerAccess,
DataPolygons, CustomerInfoPanel, TimeSeriesResults, Reports,
Expand Down Expand Up @@ -532,9 +533,16 @@ class TimeSeriesList(viewsets.ReadOnlyModelViewSet):
def get_queryset(self):
# queryset = {'auth': 'Need YOUR ACCESS TOKEN'}
queryset = TimeSeriesResults.objects.none()
statistics = STATISTICS

if self.request.auth:
queryset = TimeSeriesResults.objects.filter(user=self.request.user).order_by('id')
if 'statistics' in self.request.GET:
statistics = self.request.GET['statistics'].split(',')

queryset = TimeSeriesResults.objects.filter(
user=self.request.user,
stat_code__in=statistics,
).order_by('id')

return queryset

Expand Down Expand Up @@ -570,12 +578,17 @@ class TimeSeriesDetail(APIView):

def get(self, request, shapefile_id, format=None):
data = {'auth': 'Need YOUR ACCESS TOKEN'}
statistics = STATISTICS

if request.auth:
if 'statistics' in request.GET:
statistics = request.GET['statistics'].split(',')

try:
# dataset = DataSet.objects.get(pk=ds_id)
queryset = TimeSeriesResults.objects.filter(
user=request.user,
stat_code__in=statistics,
customer_polygons__id=shapefile_id).order_by('id')
serializer = TimeSeriesResultSerializer(queryset, many=True)
data = serializer.data
Expand All @@ -596,12 +609,17 @@ class TimeSeriesNameDetail(APIView):

def get(self, request, format=None):
data = {'auth': 'Need YOUR ACCESS TOKEN'}
statistics = STATISTICS

if request.auth:
if 'statistics' in request.GET:
statistics = request.GET['statistics'].split(',')

if 'shapefile_name' in request.GET:
try:
queryset = TimeSeriesResults.objects.filter(
user=request.user,
stat_code__in=statistics,
customer_polygons__name=request.GET['shapefile_name']).order_by('id')
serializer = TimeSeriesResultSerializer(queryset, many=True)
data = serializer.data
Expand All @@ -622,6 +640,7 @@ def get(self, request, format=None):

queryset = TimeSeriesResults.objects.filter(
result_date__gte=start_date,
stat_code__in=statistics,
result_date__lte=end_date).order_by('result_date')

if queryset:
Expand All @@ -630,23 +649,6 @@ def get(self, request, format=None):
data = serializer.data
else:
data = {'status_message': 'Nothing found in this interval'}

# start_date = datetime.strptime(start, "%Y-%m-%d")
# end_date = datetime.strptime(end, "%Y-%m-%d")

# start_date = date(int(start[0]), int(start[1]), int(start[2]))
# end_date = date(int(end[0]), int(end[1]), int(end[2]))

# return Response({'queryset': queryset},
# status=status.HTTP_400_BAD_REQUEST)

# queryset = TimeSeriesResults.objects.filter(
# result_date____range=(
# start_date, end_date)).order_by('result_date')

# return Response({'start_date': start_date, 'end_date': end_date},
# status=status.HTTP_400_BAD_REQUEST)


except Exception, e:
return Response({'error': e},
Expand Down
3 changes: 3 additions & 0 deletions src/gsi/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -393,6 +393,9 @@
# Attributes
ATTRIBUTES_NAME = ['Total Area', 'Area total']

# Statistic
STATISTICS = ['Max', 'Mean', 'Median', 'Min', 'LQ', 'UQ']

# Card Type
CARD_TYPE = {
'rftrain': 'RFTrain',
Expand Down

0 comments on commit 5d0acd9

Please sign in to comment.