Package Exports
- psgc-reader
- psgc-reader/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (psgc-reader) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
psgc-reader
A package for ingesting PSGC publication files
Quickstart
import PsgcReader from "psgc-reader";
const result = await PsgcReader.instance.read(filePath);
// result contains regions, provinces, cities, municipalities, subMunicipalities, and barangays that are associated with each other
// if statistics columns are not needed
const resultWithoutStatistics = await PsgcReader.instance.readWithoutStatistics(
filePath
);Or, just the raw data
import PsgcReader from "psgc-reader";
const result = await PsgcReader.instance.readRaw(filePath);
// result is an arrayOr do it step by step
1. Import the package
import PsgcReader from "psgc-reader";
// We only need one instance of the object
const psgcReader = PsgcReader.instance;2. Read
- supply the publication file to
filePath- You can get publication files here: https://psa.gov.ph/classification/psgc
sheetNamehas default value set to "PSGC"- Records will be stored in
locations
await psgcReader.readPublicationFile(filePath, sheetName);
console.log(psgcReader.locations);2.1 Before filtering, select a builder
import PsgcReader, { BasicBuilder, CompleteBuilder } from "psgc-reader";
// The BasicBuilder will omit statistical fields
psgcReader.setBuilder(new BasicBuilder());
// Default builder: includes all fields
psgcReader.setBuilder(new CompleteBuilder());3. Filter
filteredPSGCis just filteredlocationsregionsprovincescitiesmunicipalitiessubMunicipalitiesbarangays
psgcReader.filter();
console.log(psgcReader.filteredPSGC);
console.log(psgcReader.regions);
console.log(psgcReader.provinces);
console.log(psgcReader.cities);
console.log(psgcReader.municipalities);
console.log(psgcReader.subMunicipalities);
console.log(psgcReader.barangays);4. Associate
This will link regions, provinces, cities, municipalities, subMunicipalities, and barangays
psgcReader.associate();5. Explore
console.log("[Regions]");
psgcReader.regions.map((region) => console.log(" >", region.name));
console.log("[SubMunicipalities under Manila]");
psgcReader.cities
.filter((city) => city.code === "1380600000")[0]
.subMunicipalities?.map((subMunicipality) =>
console.log(" >", subMunicipality.name)
);
// https://stackoverflow.com/a/66523350
const barangayCountByName = psgcReader.barangays.reduce(
(barangay, { name }) => {
barangay[name] = barangay[name] || 0;
barangay[name] += 1;
return barangay;
},
{}
);
// https://stackoverflow.com/a/1069840
const barangayCountByNameSorted: any[] = [];
for (let name in barangayCountByName) {
barangayCountByNameSorted.push([name, barangayCountByName[name]]);
}
barangayCountByNameSorted.sort(function (a, b) {
return b[1] - a[1];
});
console.log("[Top 10 barangay names]");
console.log(barangayCountByNameSorted.slice(0, 10));