Datacleaning and transforming - Jelmerovereem/frontend-data GitHub Wiki
Datacleaning
Transforming
First I have to clean the coordinates from the RDW dataset: From POINT (6.8635054 53.325557274) to long: 6.8635054, lat: 53.325557274
// from Stan Brankras https://github.com/StanBankras/functional-programming/blob/56585a9b63601b68de3bcc3b26050b85ca05cf5e/utils.js#L36-L54
function replaceOccurences(string, replace, replaceBy) {
return string.split(replace).join(replaceBy);
}
function replaceMultipleOccurences(string, replaceArray, replaceBy) {
let replaceString = string;
replaceArray.forEach((r) => replaceString = replaceOccurences(replaceString, r, replaceBy));
return replaceString;
}
function isCoordInPolygon(centerCoord, polygons) {
let zone = undefined;
for(let i = 0;i < polygons.length;i++) {
if(inside(centerCoord, polygons[i].polygon)) {
zone = polygons[i].municipality;
break;
}
}
return zone;
}
function getCenterCoord(coordinates) {
const type = coordinates.split(' ')[0];
let longLat = replaceMultipleOccurences(coordinates, [type + ' (', '(', ')', ','], '').split(' ');
if(type === 'POINT') {
longLat = [ Number(longLat[0]), Number(longLat[1]) ];
} else {
let latTotal = 0;
let longTotal = 0;
longLat.forEach((x, index) => {
if(index === 0 || index % 2 === 0) return longTotal += Number(x);
return latTotal += Number(x);
});
longLat = [ longTotal / (longLat.length / 2), latTotal / (longLat.length / 2) ];
}
return longLat;
}
This cleaned most of all the coordinates from the RDW Dataset, but some returned NaN
. I excluded these with an if statement:
if (!Number.isNaN(getCenterCoord(garage.areageometryastext)[0]) || !Number.isNaN(getCenterCoord(garage.areageometryastext)[1])) {
coordinateObj = {
long: getCenterCoord(garage.areageometryastext)[0],
lat: getCenterCoord(garage.areageometryastext)[1]
}
coordinatesArray.push(coordinateObj)
}