Mercurial > gemma
comparison pkg/imports/sr.go @ 3659:66f2cb789905 single-beam
Merged default into single-beam branch.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 14 Jun 2019 12:02:58 +0200 |
parents | 1c3df921361d 2a079d0a71c1 |
children | 58508f50d192 |
comparison
equal
deleted
inserted
replaced
3658:1c3df921361d | 3659:66f2cb789905 |
---|---|
112 relation = 'waterway.sounding_results'::regclass)` | 112 relation = 'waterway.sounding_results'::regclass)` |
113 | 113 |
114 insertHullSQL = ` | 114 insertHullSQL = ` |
115 INSERT INTO waterway.sounding_results ( | 115 INSERT INTO waterway.sounding_results ( |
116 bottleneck_id, | 116 bottleneck_id, |
117 bottleneck_validity, | |
117 date_info, | 118 date_info, |
118 depth_reference, | 119 depth_reference, |
119 area | 120 area |
120 ) SELECT | 121 ) SELECT |
121 (SELECT id from waterway.bottlenecks where objnam = $1), | 122 bottleneck_id, |
123 validity, | |
122 $2::date, | 124 $2::date, |
123 $3, | 125 $3, |
124 (SELECT | 126 (SELECT |
125 CASE WHEN $5::bytea IS NULL THEN | 127 CASE WHEN $5::bytea IS NULL THEN |
126 ST_Transform(ST_ConcaveHull(ST_Force2D(ST_GeomFromWKB($4, $6::integer)), 0.7), 4326)::geography | 128 ST_Transform(ST_ConcaveHull(ST_Force2D(ST_GeomFromWKB($4, $6::integer)), 0.7), 4326)::geography |
127 ELSE | 129 ELSE |
128 ST_MakeValid(ST_Transform(ST_GeomFromWKB($5, $6::integer), 4326))::geography | 130 ST_MakeValid(ST_Transform(ST_GeomFromWKB($5, $6::integer), 4326))::geography |
129 END) | 131 END) |
132 FROM waterway.bottlenecks | |
133 WHERE objnam = $1 AND validity @> CAST($2 AS timestamptz) | |
130 RETURNING | 134 RETURNING |
131 id, | 135 id, |
132 ST_X(ST_Centroid(area::geometry)), | 136 ST_X(ST_Centroid(area::geometry)), |
133 ST_Y(ST_Centroid(area::geometry)), | 137 ST_Y(ST_Centroid(area::geometry)), |
134 best_utm(area), | 138 best_utm(area), |
186 grwl.depth_reference | 190 grwl.depth_reference |
187 FROM waterway.gauges_reference_water_levels grwl | 191 FROM waterway.gauges_reference_water_levels grwl |
188 JOIN waterway.bottlenecks bns | 192 JOIN waterway.bottlenecks bns |
189 ON grwl.location = bns.gauge_location | 193 ON grwl.location = bns.gauge_location |
190 AND grwl.validity = bns.gauge_validity | 194 AND grwl.validity = bns.gauge_validity |
191 WHERE bns.objnam = $1 AND grwl.depth_reference like 'LDC%' | 195 WHERE bns.objnam = $1 |
196 AND bns.validity @> CAST($2 AS timestamptz) | |
197 AND grwl.depth_reference like 'LDC%' | |
192 ` | 198 ` |
193 | 199 |
194 reprojectPointsSingleBeamSQL = ` | 200 reprojectPointsSingleBeamSQL = ` |
195 SELECT | 201 SELECT |
196 ST_AsBinary( | 202 ST_AsBinary( |
240 | 246 |
241 if m.DepthReference == "ZPG" { | 247 if m.DepthReference == "ZPG" { |
242 feedback.Info("Found ZPG as reference system -> translating Z values to LDC") | 248 feedback.Info("Found ZPG as reference system -> translating Z values to LDC") |
243 var ldc float64 | 249 var ldc float64 |
244 var depthReference string | 250 var depthReference string |
245 err := conn.QueryRowContext(ctx, selectGaugeLDCSQL, m.Bottleneck).Scan( | 251 err := conn.QueryRowContext(ctx, |
252 selectGaugeLDCSQL, | |
253 m.Bottleneck, | |
254 m.Date.Time, | |
255 ).Scan( | |
246 &ldc, | 256 &ldc, |
247 &depthReference, | 257 &depthReference, |
248 ) | 258 ) |
249 switch { | 259 switch { |
250 case err == sql.ErrNoRows: | 260 case err == sql.ErrNoRows: |
641 &epsg, | 651 &epsg, |
642 &hull, | 652 &hull, |
643 ) | 653 ) |
644 xyz, boundary = nil, nil // not need from now on. | 654 xyz, boundary = nil, nil // not need from now on. |
645 feedback.Info("Calculating hull took %s.", time.Since(start)) | 655 feedback.Info("Calculating hull took %s.", time.Since(start)) |
646 if err != nil { | 656 switch { |
657 case err == sql.ErrNoRows: | |
658 return nil, fmt.Errorf( | |
659 "No bottleneck matching given name and time available") | |
660 case err != nil: | |
647 return nil, err | 661 return nil, err |
648 } | 662 } |
649 feedback.Info("Best suited UTM EPSG: %d", epsg) | 663 feedback.Info("Best suited UTM EPSG: %d", epsg) |
650 | 664 |
651 start = time.Now() | 665 start = time.Now() |