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()