-- 84_osm_noise_sources_ekb.sql -- Context: Таблица шумовых источников Екатеринбурга из OSM. -- Используется site-finder analyze для noise scoring по -- упрощённой CNOSSOS-EU модели: L_base - 20*log10(dist/10). -- Source types: highway, railway, industrial, aerodrome -- Geometry: mixed (LineString / Polygon / Point) -> geometry(Geometry, 4326) -- Dependencies: PostGIS (уже установлен) -- Deploy order: standalone, нет зависимостей от других таблиц -- Idempotent: да (IF NOT EXISTS / IF NOT EXISTS на индексах) BEGIN; CREATE TABLE IF NOT EXISTS osm_noise_sources_ekb ( id BIGSERIAL PRIMARY KEY, osm_type TEXT NOT NULL, -- 'node' | 'way' | 'relation' osm_id BIGINT NOT NULL, source_type TEXT NOT NULL, -- 'highway' | 'railway' | 'industrial' | 'aerodrome' road_class TEXT, -- 'motorway' | 'trunk' | 'primary' | 'secondary' | 'tertiary' | 'residential' | NULL для не-highway name TEXT, geom GEOMETRY(Geometry, 4326) NOT NULL, tags JSONB DEFAULT '{}'::jsonb, fetched_at TIMESTAMPTZ NOT NULL DEFAULT now(), UNIQUE (osm_type, osm_id) ); CREATE INDEX IF NOT EXISTS osm_noise_sources_ekb_geom_idx ON osm_noise_sources_ekb USING GIST (geom); CREATE INDEX IF NOT EXISTS osm_noise_sources_ekb_source_idx ON osm_noise_sources_ekb (source_type); COMMENT ON TABLE osm_noise_sources_ekb IS 'Шумовые источники Екатеринбурга из OSM (highway/railway/industrial/aerodrome). ' 'Используется site-finder analyze для noise scoring по CNOSSOS-EU-упрощённой модели ' '(L_base - 20*log10(dist/10)).'; COMMIT;