aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Harvey <andrew@alantgeo.com.au>2021-06-21 15:45:18 +1000
committerAndrew Harvey <andrew@alantgeo.com.au>2021-06-21 15:45:18 +1000
commitc95ef008178333c5d2a962c7efd954fa6e1377fa (patch)
tree987fe61498d44020da0fe1ba987ac7cba760e162
parent46fe68c368d18c17454821a74ea115509a469a20 (diff)
debug output reduceDuplicates/droppedSameCoordinates and handle _pfi tags
-rwxr-xr-xbin/reduceDuplicates.js19
1 files changed, 17 insertions, 2 deletions
diff --git a/bin/reduceDuplicates.js b/bin/reduceDuplicates.js
index f0691f9..7eaba30 100755
--- a/bin/reduceDuplicates.js
+++ b/bin/reduceDuplicates.js
@@ -87,6 +87,11 @@ const reduce = new Transform({
if (sameCoordinates) {
// features have same properties and same geometry, so they are true duplicates which can safely be reduced to one
this.push(groupedFeatures[0])
+ if (argv.debug) {
+ for (const feature of groupedFeatures.slice(1)) {
+ debugStreams.droppedSameCoordinates.write(feature)
+ }
+ }
} else {
// features have same properties but not all with the same geometry
@@ -101,6 +106,9 @@ const reduce = new Transform({
groupedFeatures.map(f => f.geometry.coordinates[1]).reduce((acc, cur) => acc + cur) / groupedFeatures.length
]
const averageFeature = cloneDeep(groupedFeatures[0])
+ if (averageFeature.properties._pfi) {
+ averageFeature.properties._pfi = groupedFeatures.map(f => f.properties._pfi).join(',')
+ }
averageFeature.geometry.coordinates = averageCoordinates
if (argv.debug) {
@@ -143,6 +151,9 @@ const reduce = new Transform({
cluster.map(f => f.geometry.coordinates[1]).reduce((acc, cur) => acc + cur) / cluster.length
]
const averageFeature = cloneDeep(cluster[0])
+ if (averageFeature.properties._pfi) {
+ averageFeature.properties._pfi = groupedFeatures.map(f => f.properties._pfi).join(',')
+ }
averageFeature.geometry.coordinates = averageCoordinates
return averageFeature
}
@@ -152,7 +163,11 @@ const reduce = new Transform({
if (argv.debug) {
const webOfMatches = {
type: 'Feature',
- properties: Object.assign({ '_type': 'Multi Cluster' }, clusterAverages[0].properties),
+ properties: Object.assign(
+ { '_type': 'Multi Cluster' },
+ clusterAverages[0].properties,
+ clusterAverages[0].properties._pfi ? { _pfi: clusterAverages.map(f => f.properties._pfi).join(',')} : {}
+ ),
geometry: {
type: 'LineString',
coordinates: clusterAverages.map(p => p.geometry.coordinates)
@@ -240,7 +255,7 @@ function featureToOsc(feature) {
}
// ndjson streams to output debug features
-const debugKeys = ['singleCluster', 'multiCluster', 'mr_duplicateAddressFarApart']
+const debugKeys = ['singleCluster', 'multiCluster', 'droppedSameCoordinates', 'mr_duplicateAddressFarApart']
const debugStreams = {}
const debugStreamOutputs = {}