37 lines
1.8 KiB
PL/PgSQL
37 lines
1.8 KiB
PL/PgSQL
-- 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;
|