forked from osm-search/gb-postcode-data
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconvert.sh
More file actions
executable file
·51 lines (38 loc) · 1.63 KB
/
convert.sh
File metadata and controls
executable file
·51 lines (38 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/bash
POSTGRES_DBNAME=create_gb_postcode_file
POSTGRES_USER=postgres
WORKDIR=/data
echo
echo "* Create database"
createdb --user $POSTGRES_USER $POSTGRES_DBNAME
echo 'CREATE EXTENSION postgis' | psql --user $POSTGRES_USER $POSTGRES_DBNAME
echo
echo "* Download table schema and create table"
wget --quiet -O $WORKDIR/postcode_tables.sql https://raw.githubusercontent.com/osm-search/Nominatim/master/lib-sql/postcode_tables.sql
cat $WORKDIR/postcode_tables.sql | psql --user $POSTGRES_USER $POSTGRES_DBNAME
echo
echo "* Looking for data"
echo "$(ls $WORKDIR/*.csv | wc -l) files"
echo "$(cat $WORKDIR/*.csv | wc -l) lines (should be about 1.7 million)"
echo
echo "* Convert data and load into database"
cat $WORKDIR/*.csv | ./convert_codepoint.php | psql --user $POSTGRES_USER $POSTGRES_DBNAME
echo
echo "* Dump database table into files"
echo '' > gb_postcode_data.sql
if [[ -e $WORKDIR/licence.txt ]]; then
cat $WORKDIR/licence.txt | iconv -f iso-8859-1 -t utf-8 | dos2unix | sed 's/^/-- /g' >> $WORKDIR/gb_postcode_data.sql
fi
echo " * gb_postcode_data.sql"
pg_dump --user $POSTGRES_USER --dbname $POSTGRES_DBNAME --table gb_postcode --data-only | grep -v '^--' >> $WORKDIR/gb_postcode_data.sql
echo " * gb_postcodes.csv"
psql --user $POSTGRES_USER --dbname $POSTGRES_DBNAME -A -F"," -c 'SELECT postcode, ST_Y(geometry) as latitude, ST_X(geometry) as longitude FROM gb_postcode' > $WORKDIR/gb_postcodes.csv
echo
echo "* Compress output files"
gzip -9 -f $WORKDIR/gb_postcode_data.sql
gzip -9 -f $WORKDIR/gb_postcodes.csv
ls -l $WORKDIR/gb_*.*
echo
echo "* Cleanup"
dropdb --user $POSTGRES_USER $POSTGRES_DBNAME
rm $WORKDIR/postcode_tables.sql