From 3c82254056c05798021f41073301993c449e2ca5 Mon Sep 17 00:00:00 2001 From: Tucker Siegel <tgsiegel@terpmail.umd.edu> Date: Tue, 4 Oct 2022 12:54:07 -0400 Subject: [PATCH] update --- go.mod | 2 +- go.sum | 2 + services/confidence_interval_service.go | 86 ++++++++++++------------- 3 files changed, 46 insertions(+), 44 deletions(-) diff --git a/go.mod b/go.mod index 2eee468..b991343 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/spf13/viper v1.9.0 github.com/stretchr/testify v1.7.0 github.com/swaggo/swag v1.7.1 - github.com/tgs266/dawn-go-common v0.0.0-20220926200401-63ec7d7119a0 + github.com/tgs266/dawn-go-common v0.0.0-20221004165044-41b33c8b0598 go.mongodb.org/mongo-driver v1.7.3 go4.org v0.0.0-20201209231011-d4a079459e60 // indirect golang.org/x/mod v0.6.0-dev.0.20211013180041-c96bc1413d57 // indirect diff --git a/go.sum b/go.sum index 663c7a1..6a23880 100644 --- a/go.sum +++ b/go.sum @@ -608,6 +608,8 @@ github.com/tgs266/dawn-go-common v0.0.0-20220926193741-599d4be5ecec h1:jvkc3mNjV github.com/tgs266/dawn-go-common v0.0.0-20220926193741-599d4be5ecec/go.mod h1:XUnuQ0jNkFoFhUY/835EMgZWvPx/ZJUhn3VOds9y3Fg= github.com/tgs266/dawn-go-common v0.0.0-20220926200401-63ec7d7119a0 h1:omtLZNoFqJf8p5IorD6MMDpG8qwCDtjVEkXdXCu2zj0= github.com/tgs266/dawn-go-common v0.0.0-20220926200401-63ec7d7119a0/go.mod h1:XUnuQ0jNkFoFhUY/835EMgZWvPx/ZJUhn3VOds9y3Fg= +github.com/tgs266/dawn-go-common v0.0.0-20221004165044-41b33c8b0598 h1:lHi3/3mME+COppqH7Txv5TQyYiyDfqVjMpahr2/IsrU= +github.com/tgs266/dawn-go-common v0.0.0-20221004165044-41b33c8b0598/go.mod h1:XUnuQ0jNkFoFhUY/835EMgZWvPx/ZJUhn3VOds9y3Fg= github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= diff --git a/services/confidence_interval_service.go b/services/confidence_interval_service.go index 74e1ba5..cc9d89a 100644 --- a/services/confidence_interval_service.go +++ b/services/confidence_interval_service.go @@ -1,43 +1,43 @@ -package services - -import ( - "gitlab.cs.umd.edu/dawn/go-backend/dawn-gdd/models" - "gitlab.cs.umd.edu/dawn/go-backend/dawn-gdd/persistence" - "gitlab.cs.umd.edu/dawn/go-backend/dawn-gdd/utils" - "gonum.org/v1/gonum/stat" -) - -func GetConfidenceInterval(request models.ConfidenceIntervalRequest) models.ConfidenceIntervalResposne { - - gs := persistence.GetLastNormalsYearly(request.BuildLocation()) - product := request.Product - // zScore := models.IntervalConvert[request.Interval] - // zScore := models.IntervalConvertPercentiles[request.Interval] - - var lowerBound []float64 - var upperBound []float64 - - rows := [][]float64{} - for i := 0; i < len(gs[0].MinTemps); i++ { - row := []float64{} - for j := 0; j < len(gs); j++ { - row = append(row, utils.CalculateSingleGdd(gs[j].MinTemps[i], gs[j].MaxTemps[i], product)) - if i > 0 { - row[j] += rows[len(rows)-1][j] - } - } - rows = append(rows, row) - mean, std := stat.MeanStdDev(row, nil) - moe := std * 1.645 - // moe := std / math.Pow(30, 0.5) * zScore - - upperBound = append(upperBound, utils.ClipMinFloat(mean+moe, 0)) - lowerBound = append(lowerBound, utils.ClipMinFloat(mean-moe, 0)) - } - return models.ConfidenceIntervalResposne{ - LowerBound: lowerBound, - UpperBound: upperBound, - ClosestLatitude: gs[0].Location.Coordinates[1], - ClosestLongitude: gs[0].Location.Coordinates[0], - } -} +package services + +import ( + "gitlab.cs.umd.edu/dawn/go-backend/dawn-gdd/models" + "gitlab.cs.umd.edu/dawn/go-backend/dawn-gdd/persistence" + "gitlab.cs.umd.edu/dawn/go-backend/dawn-gdd/utils" + "gonum.org/v1/gonum/stat" +) + +func GetConfidenceInterval(request models.ConfidenceIntervalRequest) models.ConfidenceIntervalResposne { + + gs := persistence.GetLastNormalsYearly(request.BuildLocation()) + product := request.Product + // zScore := models.IntervalConvert[request.Interval] + // zScore := models.IntervalConvertPercentiles[request.Interval] + + var lowerBound []float64 + var upperBound []float64 + + rows := [][]float64{} + for i := 0; i < len(gs[0].MinTemps); i++ { + row := []float64{} + for j := 0; j < len(gs); j++ { + row = append(row, utils.CalculateSingleGdd(gs[j].MinTemps[i], gs[j].MaxTemps[i], product)) + if i > 0 { + row[j] += rows[len(rows)-1][j] + } + } + rows = append(rows, row) + mean, std := stat.MeanStdDev(row, nil) + moe := std * 1.645 + // moe := std / math.Pow(30, 0.5) * zScore + + upperBound = append(upperBound, utils.ClipMinFloat(mean+moe, 0)) + lowerBound = append(lowerBound, utils.ClipMinFloat(mean-moe, 0)) + } + return models.ConfidenceIntervalResposne{ + LowerBound: lowerBound, + UpperBound: upperBound, + ClosestLatitude: gs[0].Location.Coordinates[1], + ClosestLongitude: gs[0].Location.Coordinates[0], + } +} -- GitLab