From f421b23a0499a5ef5c45b3199b82ad0ff668c551 Mon Sep 17 00:00:00 2001 From: "Dr. Michael Flaxman" Date: Tue, 3 Apr 2018 15:21:53 -0700 Subject: [PATCH 1/2] Serialize extra statistics Serialize extra statistics needed for cumulative Z-scoring --- raster_aggregation/serializers.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/raster_aggregation/serializers.py b/raster_aggregation/serializers.py index c86a4fe..4765a35 100644 --- a/raster_aggregation/serializers.py +++ b/raster_aggregation/serializers.py @@ -52,13 +52,16 @@ class ValueCountResultSerializer(serializers.ModelSerializer): max = serializers.FloatField(source='stats_max', read_only=True) avg = serializers.FloatField(source='stats_avg', read_only=True) std = serializers.FloatField(source='stats_std', read_only=True) + pcount = serializers.FloatField(source='stats_cumsum_t0', read_only=True) + psum = serializers.FloatField(source='stats_cumsum_t1', read_only=True) + psumsq = serializers.FloatField(source='stats_cumsum_t2', read_only=True) class Meta: model = ValueCountResult fields = ( 'id', 'aggregationarea', 'rasterlayers', 'formula', 'layer_names', 'zoom', 'units', 'grouping', 'value', 'created', 'status', - 'min', 'max', 'avg', 'std', + 'min', 'max', 'avg', 'std', 'pcount', 'psum', 'psumsq', ) read_only_fields = ('id', 'value', 'created', 'status', 'rasterlayers',) From da0f8747bcbc345a0e3bf9e344dd111a88aba59b Mon Sep 17 00:00:00 2001 From: Daniel Wiesmann Date: Wed, 4 Apr 2018 10:19:46 +0100 Subject: [PATCH 2/2] Added test for extra stats api output. --- tests/test_aggregation_api.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/test_aggregation_api.py b/tests/test_aggregation_api.py index 8028573..f92de16 100644 --- a/tests/test_aggregation_api.py +++ b/tests/test_aggregation_api.py @@ -72,6 +72,9 @@ def test_aggregation_api_stats(self): self.assertEqual(result['max'], 225) self.assertEqual(result['avg'], 27.4032615692726) self.assertEqual(result['std'], 39.3484035359834) + self.assertEqual(result['pcount'], 41943) + self.assertEqual(result['psum'], 1149375) + self.assertEqual(result['psumsq'], 96436839) def test_aggregation_api_count_explicit_zoom(self): self.data['zoom'] = 11