Mercurial > gemma
comparison cmd/octreediff/main.go @ 2488:cb55d7eaaa36 octree-diff
Started with the idea to clip an octree by an bounding polygon.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Sun, 03 Mar 2019 14:45:41 +0100 |
parents | 4fa92d468164 |
children | 12ed6feefea5 |
comparison
equal
deleted
inserted
replaced
2487:bd46ffbb944e | 2488:cb55d7eaaa36 |
---|---|
62 2 | 62 2 |
63 ) | 63 ) |
64 ), | 64 ), |
65 4326 | 65 4326 |
66 ) | 66 ) |
67 ` | |
68 clippingPolygonSQL = ` | |
69 WITH joined AS ( | |
70 SELECT | |
71 sr.area AS area, | |
72 sr.date_info AS date_info | |
73 FROM waterway.sounding_results sr JOIN | |
74 waterway.bottlenecks bn ON sr.bottleneck_id = bn.id | |
75 WHERE bn.bottleneck_id = $1 | |
76 ) | |
77 SELECT ST_AsBinary( | |
78 ST_Buffer( | |
79 ST_intersection( | |
80 (SELECT ST_Transform(area::geometry, $2::int) FROM joined WHERE date_info = $3::date), | |
81 (SELECT ST_Transform(area::geometry, $2::int) FROM joined WHERE date_info = $4::date) | |
82 ), | |
83 0.001)) AS area | |
67 ` | 84 ` |
68 insertContourSQLClipped = ` | 85 insertContourSQLClipped = ` |
69 WITH joined AS ( | 86 WITH joined AS ( |
70 SELECT | 87 SELECT |
71 sr.area AS area, | 88 sr.area AS area, |
345 now = time.Now() | 362 now = time.Now() |
346 log.Printf("setting in took %v\n", now.Sub(last)) | 363 log.Printf("setting in took %v\n", now.Sub(last)) |
347 last = now | 364 last = now |
348 log.Printf("num points: %d\n", len(result)) | 365 log.Printf("num points: %d\n", len(result)) |
349 | 366 |
367 var clip []byte | |
368 | |
369 if err := tx.QueryRowContext( | |
370 ctx, clippingPolygonSQL, | |
371 bottleneck, | |
372 first.EPSG, | |
373 firstDate, secondDate, | |
374 ).Scan(&clip); err != nil { | |
375 return err | |
376 } | |
377 | |
378 now = time.Now() | |
379 log.Printf("loading clipping polygon took %v\n", now.Sub(last)) | |
380 last = now | |
381 | |
350 tri, err := result.triangulate() | 382 tri, err := result.triangulate() |
351 if err != nil { | 383 if err != nil { |
352 return err | 384 return err |
353 } | 385 } |
354 | 386 |