bhuvan / geostats.js
Zeel's picture
Upload folder using huggingface_hub
5262418 verified
// Function to calculate total area in square meters for polygons and multipolygons
function calculateTotalArea(data) {
let totalAreaSqMeters = 0;
data.features.forEach(feature => {
if (feature.geometry.type === "Polygon" || feature.geometry.type === "MultiPolygon") {
totalAreaSqMeters += turf.area(feature);
}
});
return {
areaSqMeters: totalAreaSqMeters,
areaHectares: totalAreaSqMeters / 10000 // Convert to hectares
};
}
// Function to calculate the centroid of all polygons and multipolygons
function calculateCentroid(data) {
const polygonsOnly = {
type: "FeatureCollection",
features: data.features.filter(f => f.geometry.type === "Polygon" || f.geometry.type === "MultiPolygon")
};
return turf.centroid(polygonsOnly);
}
// Function to count different geometry types
function countGeometryTypes(data) {
const geometryCounts = { Polygon: 0, Point: 0, LineString: 0, MultiPolygon: 0 };
data.features.forEach(feature => {
const geomType = feature.geometry.type;
if (geometryCounts[geomType] !== undefined) {
geometryCounts[geomType]++;
}
});
return geometryCounts;
}
// Function to retrieve feature names if available
function getFeatureNames(data) {
const featureNames = [];
data.features.forEach(feature => {
if (feature.properties && feature.properties.name) {
featureNames.push(feature.properties.name);
}
});
return featureNames;
}