carthorse
Version:
A geospatial trail data processing pipeline for building 3D trail databases with elevation data
70 lines • 2.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.StagingQueries = void 0;
exports.StagingQueries = {
// Schema creation
createSchema: (schemaName) => `
CREATE SCHEMA IF NOT EXISTS ${schemaName}
`,
// Data copying
copyTrails: (sourceSchema, targetSchema, region, bbox) => `
INSERT INTO ${targetSchema}.trails
SELECT * FROM ${sourceSchema}.trails
WHERE region = $1
${bbox ? 'AND ST_Intersects(geometry, ST_MakeEnvelope($2, $3, $4, $5, 4326))' : ''}
`,
// Data validation
validateStagingData: (schemaName) => `
SELECT
COUNT(*) as total_trails,
COUNT(CASE WHEN geometry IS NULL THEN 1 END) as null_geometry,
COUNT(CASE WHEN NOT ST_IsValid(geometry) THEN 1 END) as invalid_geometry,
COUNT(CASE WHEN length_km IS NULL OR length_km <= 0 THEN 1 END) as zero_or_null_length,
COUNT(CASE WHEN ST_StartPoint(geometry) = ST_EndPoint(geometry) THEN 1 END) as self_loops,
COUNT(CASE WHEN ST_Length(geometry) = 0 THEN 1 END) as zero_length_geometry,
COUNT(CASE WHEN ST_NumPoints(geometry) < 2 THEN 1 END) as single_point_geometry
FROM ${schemaName}.trails
`,
// Trail validation for routing
validateTrailsForRouting: (schemaName) => `
SELECT
COUNT(*) as total_trails,
COUNT(CASE WHEN geometry IS NULL THEN 1 END) as null_geometry,
COUNT(CASE WHEN geometry IS NOT NULL AND NOT ST_IsValid(geometry) THEN 1 END) as invalid_geometry,
COUNT(CASE WHEN length_km IS NULL OR length_km <= 0 THEN 1 END) as zero_or_null_length,
COUNT(CASE WHEN ST_StartPoint(geometry) = ST_EndPoint(geometry) THEN 1 END) as self_loops,
COUNT(CASE WHEN ST_Length(geometry) = 0 THEN 1 END) as zero_length_geometry,
COUNT(CASE WHEN ST_NumPoints(geometry) < 2 THEN 1 END) as single_point_geometry
FROM ${schemaName}.trails
`,
// Schema existence check
checkSchemaExists: (schemaName) => `
SELECT schema_name FROM information_schema.schemata WHERE schema_name = $1
`,
// Data counts
getTrailCount: (schemaName) => `
SELECT COUNT(*) as count FROM ${schemaName}.trails
`,
getNodeCount: (schemaName) => `
SELECT COUNT(*) as count FROM ${schemaName}.ways_noded_vertices_pgr
`,
getEdgeCount: (schemaName) => `
SELECT COUNT(*) as count FROM ${schemaName}.ways_noded
`,
getIntersectionPointCount: (schemaName) => `
SELECT COUNT(*) as count FROM ${schemaName}.intersection_points
`,
// Cleanup
cleanupSchema: (schemaName) => `
DROP SCHEMA IF EXISTS ${schemaName} CASCADE
`,
// Trail details for debugging
getTrailDetails: (schemaName, limit = 10) => `
SELECT app_uuid, name, ST_Length(geometry::geography) as length_meters
FROM ${schemaName}.trails
WHERE ST_StartPoint(geometry) = ST_EndPoint(geometry)
AND (ST_Length(geometry) = 0 OR ST_NumPoints(geometry) < 2)
LIMIT $1
`
};
//# sourceMappingURL=staging-queries.js.map