comparison pkg/controllers/diff.go @ 5490:5f47eeea988d logging

Use own logging package.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 20 Sep 2021 17:45:39 +0200
parents 34bc6041e61e
children
comparison
equal deleted inserted replaced
5488:a726a92ea5c9 5490:5f47eeea988d
16 import ( 16 import (
17 "context" 17 "context"
18 "database/sql" 18 "database/sql"
19 "errors" 19 "errors"
20 "fmt" 20 "fmt"
21 "log"
22 "net/http" 21 "net/http"
23 "runtime" 22 "runtime"
24 "time" 23 "time"
25 24
26 "gemma.intevation.de/gemma/pkg/auth" 25 "gemma.intevation.de/gemma/pkg/auth"
27 "gemma.intevation.de/gemma/pkg/common" 26 "gemma.intevation.de/gemma/pkg/common"
27 "gemma.intevation.de/gemma/pkg/log"
28 "gemma.intevation.de/gemma/pkg/mesh" 28 "gemma.intevation.de/gemma/pkg/mesh"
29 "gemma.intevation.de/gemma/pkg/models" 29 "gemma.intevation.de/gemma/pkg/models"
30 30
31 mw "gemma.intevation.de/gemma/pkg/middleware" 31 mw "gemma.intevation.de/gemma/pkg/middleware"
32 ) 32 )
164 164
165 minuendTree, err := mesh.FromCache( 165 minuendTree, err := mesh.FromCache(
166 ctx, conn, 166 ctx, conn,
167 dci.Bottleneck, dci.Minuend.Time) 167 dci.Bottleneck, dci.Minuend.Time)
168 168
169 log.Printf("info: loading minuend mesh took %s\n", time.Since(start)) 169 log.Infof("loading minuend mesh took %s\n", time.Since(start))
170 if err != nil { 170 if err != nil {
171 return 0, err 171 return 0, err
172 } 172 }
173 173
174 if minuendTree == nil { 174 if minuendTree == nil {
197 197
198 if box.Empty() { 198 if box.Empty() {
199 return 0, errors.New("intersection is empty") 199 return 0, errors.New("intersection is empty")
200 } 200 }
201 201
202 log.Printf("info: bbox of intersection: (%.2f, %.2f) - (%.2f, %.2f)\n", 202 log.Infof("bbox of intersection: (%.2f, %.2f) - (%.2f, %.2f)\n",
203 box.X1, box.Y1, box.X2, box.Y2) 203 box.X1, box.Y1, box.X2, box.Y2)
204 204
205 start = time.Now() 205 start = time.Now()
206 raster := mesh.NewRaster(box, isoCellSize) 206 raster := mesh.NewRaster(box, isoCellSize)
207 raster.Rasterize(minuendTree.Value) 207 raster.Rasterize(minuendTree.Value)
208 log.Printf("info: rasterizing minuend took %v\n", time.Since(start)) 208 log.Infof("rasterizing minuend took %v\n", time.Since(start))
209 209
210 minuendTree = nil 210 minuendTree = nil
211 211
212 start = time.Now() 212 start = time.Now()
213 213
214 subtrahendTree, err := mesh.FromCache( 214 subtrahendTree, err := mesh.FromCache(
215 ctx, conn, 215 ctx, conn,
216 dci.Bottleneck, dci.Subtrahend.Time) 216 dci.Bottleneck, dci.Subtrahend.Time)
217 217
218 log.Printf("info: loading subtrahend mesh took %s\n", time.Since(start)) 218 log.Infof("loading subtrahend mesh took %s\n", time.Since(start))
219 if err != nil { 219 if err != nil {
220 return 0, err 220 return 0, err
221 } 221 }
222 222
223 if subtrahendTree == nil { 223 if subtrahendTree == nil {
232 "EPSG code meshes are not supported, yet") 232 "EPSG code meshes are not supported, yet")
233 } 233 }
234 234
235 start = time.Now() 235 start = time.Now()
236 raster.Diff(subtrahendTree.Value) 236 raster.Diff(subtrahendTree.Value)
237 log.Printf("info: A - B took %v\n", time.Since(start)) 237 log.Infof("A - B took %v\n", time.Since(start))
238 subtrahendTree = nil 238 subtrahendTree = nil
239 239
240 // XXX: Maybe we should start this transaction earlier!? 240 // XXX: Maybe we should start this transaction earlier!?
241 var tx *sql.Tx 241 var tx *sql.Tx
242 if tx, err = conn.BeginTx(ctx, nil); err != nil { 242 if tx, err = conn.BeginTx(ctx, nil); err != nil {
247 zMin, zMax, ok := raster.ZExtent() 247 zMin, zMax, ok := raster.ZExtent()
248 if !ok { 248 if !ok {
249 return 0, errors.New("scans do not have common points") 249 return 0, errors.New("scans do not have common points")
250 } 250 }
251 251
252 log.Printf("info: z range: %.3f - %.3f\n", zMin, zMax) 252 log.Infof("z range: %.3f - %.3f\n", zMin, zMax)
253 253
254 var heights mesh.ClassBreaks 254 var heights mesh.ClassBreaks
255 255
256 heights, err = mesh.LoadClassBreaks( 256 heights, err = mesh.LoadClassBreaks(
257 ctx, tx, 257 ctx, tx,
258 "morphology_classbreaks_compare") 258 "morphology_classbreaks_compare")
259 if err != nil { 259 if err != nil {
260 log.Printf("warn: Loading class breaks failed: %v\n", err) 260 log.Warnf("Loading class breaks failed: %v\n", err)
261 err = nil 261 err = nil
262 heights = mesh.SampleDiffHeights(zMin, zMax, contourStep) 262 heights = mesh.SampleDiffHeights(zMin, zMax, contourStep)
263 } else { 263 } else {
264 heights = heights.ExtrapolateClassBreaks(zMin, zMax) 264 heights = heights.ExtrapolateClassBreaks(zMin, zMax)
265 } 265 }
266 266
267 heights = common.DedupFloat64s(heights) 267 heights = common.DedupFloat64s(heights)
268 268
269 log.Printf("info: num heights: %d\n", len(heights)) 269 log.Infof("num heights: %d\n", len(heights))
270 270
271 var isoStmt *sql.Stmt 271 var isoStmt *sql.Stmt
272 if isoStmt, err = tx.PrepareContext(ctx, insertDiffIsoAreasQL); err != nil { 272 if isoStmt, err = tx.PrepareContext(ctx, insertDiffIsoAreasQL); err != nil {
273 return 0, err 273 return 0, err
274 } 274 }
306 ); err != nil { 306 ); err != nil {
307 return 0, err 307 return 0, err
308 } 308 }
309 } 309 }
310 310
311 log.Printf("info: Transferred WKB size: %.2fMB.\n", 311 log.Infof("Transferred WKB size: %.2fMB.\n",
312 float64(size)/(1024*1024)) 312 float64(size)/(1024*1024))
313 313
314 log.Printf("info: calculating and storing iso areas took %v\n", 314 log.Infof("calculating and storing iso areas took %v\n",
315 time.Since(start)) 315 time.Since(start))
316 316
317 if err = tx.Commit(); err != nil { 317 if err = tx.Commit(); err != nil {
318 log.Printf("info: difference calculation failed after %v\n", 318 log.Infof("difference calculation failed after %v\n",
319 time.Since(begin)) 319 time.Since(begin))
320 return 0, err 320 return 0, err
321 } 321 }
322 log.Printf("info: difference calculation succeed after %v\n", 322 log.Infof("difference calculation succeed after %v\n",
323 time.Since(begin)) 323 time.Since(begin))
324 324
325 return id, nil 325 return id, nil
326 } 326 }
327 327
441 jr = mw.JSONResult{ 441 jr = mw.JSONResult{
442 Result: map[string]int64{"id": res.id}, 442 Result: map[string]int64{"id": res.id},
443 } 443 }
444 } 444 }
445 case <-ctx.Done(): 445 case <-ctx.Done():
446 log.Println("request canceled") 446 log.Infoln("request canceled")
447 } 447 }
448 448
449 return 449 return
450 } 450 }