]> git.openstreetmap.org Git - chef.git/blob - cookbooks/imagery/files/default/osstvw_process
imagery: add permalink support
[chef.git] / cookbooks / imagery / files / default / osstvw_process
1 #!/bin/bash
2 set -e
3
4 if [ -z "$1" ] || [ ! -d $1 ] || [ -z "$2" ]; then
5   echo $0 SOURCE_DIR DESTINATION_DIR
6   exit 1
7 fi
8
9 osstvw_source_dir="$1"
10 osstvw_destination_dir="$2"
11
12 mkdir -p "${osstvw_destination_dir}"
13
14 osstvw_source_files=("osstvw_hp.zip" "osstvw_ht.zip" "osstvw_hu.zip" "osstvw_hw.zip" "osstvw_hx.zip" "osstvw_hy.zip" "osstvw_hz.zip" "osstvw_na.zip" "osstvw_nb.zip" "osstvw_nc.zip" "osstvw_nd.zip" "osstvw_nf.zip" "osstvw_ng.zip" "osstvw_nh.zip" "osstvw_nj.zip" "osstvw_nk.zip" "osstvw_nl.zip" "osstvw_nm.zip" "osstvw_nn.zip" "osstvw_no.zip" "osstvw_nr.zip" "osstvw_ns.zip" "osstvw_nt.zip" "osstvw_nu.zip" "osstvw_nw.zip" "osstvw_nx.zip" "osstvw_ny.zip" "osstvw_nz.zip" "osstvw_ov.zip" "osstvw_sd.zip" "osstvw_se.zip" "osstvw_sh.zip" "osstvw_sj.zip" "osstvw_sk.zip" "osstvw_sm.zip" "osstvw_sn.zip" "osstvw_so.zip" "osstvw_sp.zip" "osstvw_sr.zip" "osstvw_ss.zip" "osstvw_st.zip" "osstvw_su.zip" "osstvw_sv.zip" "osstvw_sw.zip" "osstvw_sx.zip" "osstvw_sy.zip" "osstvw_sz.zip" "osstvw_ta.zip" "osstvw_tf.zip" "osstvw_tg.zip" "osstvw_tl.zip" "osstvw_tm.zip" "osstvw_tq.zip" "osstvw_tr.zip" "osstvw_tv.zip")
15
16 # get length of an array
17 osstvw_source_length=${#osstvw_source_files[@]}
18
19 osstvw_process_dir=$(mktemp -d --suffix=osstvw_process)
20
21 function cleanup {
22   rm -rf "${osstvw_process_dir}"
23 }
24 trap cleanup EXIT
25
26 # check files
27 for (( i=0; i<${osstvw_source_length}; i++ )); do
28   if [ ! -f ${osstvw_source_dir}/${osstvw_source_files[$i]} ]; then
29     echo Missing: ${osstvw_source_dir}/${osstvw_source_files[$i]}
30     exit 1
31   fi
32   # unzip -tq ${osstvw_source_dir}/${osstvw_source_files[$i]}
33 done
34
35 # unzip all osstvw file
36 for (( i=0; i<${osstvw_source_length}; i++ )); do
37   echo Unzipping ${osstvw_source_files[$i]} - $(($i+1)) of $osstvw_source_length
38   unzip -ojq ${osstvw_source_dir}/${osstvw_source_files[$i]} '*.[tT]*' -d "${osstvw_process_dir}"
39 done
40
41 # rename all files lowercase, older editions are broken
42 ( cd "${osstvw_process_dir}" && rename -vf 'y/A-Z/a-z/' *.[tT]* )
43
44 # gdal recompress all files with tiling
45 echo Started re-compessing with tiling... Around 1 hour...
46 find "${osstvw_process_dir}" -maxdepth 1 -name '*.tif' -printf '%f\0' | xargs -0 -I '{}' -n1 -P8 gdal_translate -q -of GTiff -co TILED=YES -co COMPRESS=DEFLATE -co ZLEVEL=9 -co BLOCKXSIZE=512 -co BLOCKYSIZE=512 -co BIGTIFF=NO -a_srs epsg:27700 "${osstvw_process_dir}/"'{}' "${osstvw_destination_dir}/"'{}'
47
48 echo Now create the VRT and external overview layers
49 echo 1: gdalbuildvrt -resolution highest -hidenodata -vrtnodata "209" ossv-2016-04-combined.vrt 2016-04/*.tif
50 echo 2: gdaladdo --config GDAL_CACHEMAX=16000 -ro --config COMPRESS DEFLATE --config COMPRESS_OVERVIEW DEFLATE --config ZLEVEL 9 --config BIGTIFF_OVERVIEW IF_SAFER --config GDAL_TIFF_OVR_BLOCKSIZE 512 -r average ossv-2016-04-combined.vrt 4 16 64 256 1024 4096