From 1d3508f66fddf3f8c6416e59ab9fbde405dbcf25 Mon Sep 17 00:00:00 2001 From: typebrook Date: Sun, 17 Nov 2019 09:18:07 +0800 Subject: update --- scripts/csv2geojson | 43 ------------------------------------------- 1 file changed, 43 deletions(-) delete mode 100755 scripts/csv2geojson (limited to 'scripts/csv2geojson') diff --git a/scripts/csv2geojson b/scripts/csv2geojson deleted file mode 100755 index 085e12e..0000000 --- a/scripts/csv2geojson +++ /dev/null @@ -1,43 +0,0 @@ -#! /bin/bash - -# -s to skip specify columns of longitude and latitude -for i in "$@" -do -case $i in - -s) - lon_col=0; lat_col=1 - shift;; - - *) - csv=$i - shift;; -esac -done - -# if no -s option, just read from input -if [ "$lon_col" != "0" ]; then - # show each field with index in csv - echo -------------- > /dev/tty - head -1 < $csv | awk -F',' '{for (i=1; i<=NF; i++) printf $i "_" i " "; print ""}' > /dev/tty - echo -------------- > /dev/tty - echo > /dev/tty - - # get index of lon/lat column - read -p "Number of latitude column: " lat_col - read -p "Number of longitude column: " lon_col -fi - -cat $csv | -# move lon and lat to the first and second column -awk -F',' -v lon_th=$lon_col -v lat_th=$lat_col '\ - BEGIN{OFS=","}\ - {printf $lon_th "," $lat_th; for (i=1; i<= NF; i++) if (i != lat_th && i != lon_th) printf "," $i; print ""}\ - ' |\ -# change csv into array format, like [lon, lat, "field1", field2...] -sed 's/[^,]*/"\0"/g; s/.*/[\0]/g' |\ -# wrap other fields as a json object, like [lon, lat, {...}] -jq -s '.[0][2:] as $fields | .[1:][] | [.[0], .[1], ([$fields, .[2:]] | transpose | map({(.[0]): .[1]}) | add)]' |\ -# create array of geojson point features -jq '{"type": "Feature", "properties": .[2], "geometry":{ "type": "Point", "coordinates": [(.[0] | tonumber), (.[1] | tonumber)] } }' |\ -# wrap features as geojson format -jq -s '{"type": "FeatureCollection", "features": .}' -- cgit v1.2.3-70-g09d2