comparison cmd/tin2octree/main.go @ 672:5fa2eaffac84 octree

octree: Always compress the index with snappy as its halves its size.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 19 Sep 2018 10:57:37 +0200
parents a3d722e1f593
children aeaa2adf5a8b
comparison
equal deleted inserted replaced
671:010cc30fdf48 672:5fa2eaffac84
1 package main 1 package main
2 2
3 import ( 3 import (
4 "bufio"
5 "database/sql" 4 "database/sql"
6 "flag" 5 "flag"
7 "io"
8 "log" 6 "log"
9 "math" 7 "math"
10 "os" 8 "os"
11 "time" 9 "time"
12 10
18 var ( 16 var (
19 bottleneck = flag.String("bottleneck", "", "bottleneck id") 17 bottleneck = flag.String("bottleneck", "", "bottleneck id")
20 date = flag.String("date", "", "date info") 18 date = flag.String("date", "", "date info")
21 file = flag.String("file", "", "save to file") 19 file = flag.String("file", "", "save to file")
22 20
23 utm = flag.Bool("utm", false, "fetch in matchin UTM zone") 21 utm = flag.Bool("utm", false, "fetch in matchin UTM zone")
24 snap = flag.Bool("snappy", false, "use snappy compression")
25 22
26 dbhost = flag.String("dbhost", "localhost", "database host") 23 dbhost = flag.String("dbhost", "localhost", "database host")
27 dbport = flag.Uint("dbport", 5432, "database port") 24 dbport = flag.Uint("dbport", 5432, "database port")
28 dbname = flag.String("dbname", "gemma", "database user") 25 dbname = flag.String("dbname", "gemma", "database user")
29 dbuser = flag.String("dbuser", "scott", "database user") 26 dbuser = flag.String("dbuser", "scott", "database user")
144 if *file != "" { 141 if *file != "" {
145 f, err := os.Create(*file) 142 f, err := os.Create(*file)
146 if err != nil { 143 if err != nil {
147 log.Printf("error: %v\n", err) 144 log.Printf("error: %v\n", err)
148 } 145 }
149 type flusher interface { 146 out := snappy.NewBufferedWriter(f)
150 io.Writer
151 Flush() error
152 }
153 var out flusher
154 if *snap {
155 out = snappy.NewBufferedWriter(f)
156 } else {
157 out = bufio.NewWriter(f)
158 }
159 if err := t.Serialize(out); err != nil { 147 if err := t.Serialize(out); err != nil {
160 f.Close() 148 f.Close()
161 log.Fatalf("error: %v\n", err) 149 log.Fatalf("error: %v\n", err)
162 } 150 }
163 if err := tb.Serialize(out); err != nil { 151 if err := tb.Serialize(out); err != nil {