#!/usr/bin/env bash

: ${1?"Usage: $0 ./path/to/mastermap/dir"}

data_dir=$1


echo "Extract buildings from *.gz..."

# Features where::
#     descriptiveGroup = '(1:Building)'
#
# Use `fid` as source ID, aka TOID.

find $data_dir -type f -name '*.gz' -printf "%f\n" | \
parallel \
gunzip $data_dir/{} -k -S gml

echo "Rename extracted files to .gml..."
rename 's/$/.gml/' $data_dir/*[^gzvt]

# Note: previously the rename cmd above resulted in some temp files being renamed to .gml
# so I have specified the start of the filename (appears to be consistent for all OS MasterMap downloads)
# we may need to update this below for other downloads
echo "Covert .gml files to .csv"
find $data_dir -type f -name '*5690395*.gml' -printf "%f\n" | \
parallel \
ogr2ogr \
    -select fid,descriptiveGroup \
    -f CSV $data_dir/{}.csv \
    $data_dir/{} \
    TopographicArea \
    -lco GEOMETRY=AS_WKT

echo "Remove .gfs and .gml files from previous steps..."
rm $data_dir/*.gfs
rm $data_dir/*.gml