UNPKG

carthorse

Version:

A geospatial trail data processing pipeline for building 3D trail databases with elevation data

70 lines 2.97 kB
"use strict"; 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