-- Cad-quarter polygons (NSPD) + obj_id ↔ cad_quarter mapping. -- -- Purpose: связать domrf_kn_objects (lat/lon) и rosreestr_deals (quarter_cad_number) -- через PostGIS spatial-join. Это даёт per-ЖК аппроксимацию rosreestr-сделок -- (распределение пропорционально flat_count внутри квартала). -- -- Source: NSPD nspd.gov.ru thematicSearchId=1 (кадастровые кварталы). -- Coverage: ~674 кварталов в ЕКБ с ДДУ-сделками на квартиры (см. 58_fetch_cad_quarters_nspd.py). CREATE EXTENSION IF NOT EXISTS postgis; CREATE TABLE IF NOT EXISTS cad_quarters_geom ( cad_number TEXT PRIMARY KEY, geom geometry(MultiPolygon, 4326) NOT NULL, raw_props jsonb, fetched_at timestamptz NOT NULL DEFAULT NOW(), source TEXT NOT NULL DEFAULT 'nspd' ); CREATE INDEX IF NOT EXISTS cad_quarters_geom_gist ON cad_quarters_geom USING GIST (geom); -- На domrf_kn_objects добавляем cad_quarter (заполняется backfill-скриптом -- 59_backfill_obj_cad_quarter.sql через ST_Contains по lat/lon). ALTER TABLE domrf_kn_objects ADD COLUMN IF NOT EXISTS cad_quarter TEXT; CREATE INDEX IF NOT EXISTS domrf_kn_objects_cad_quarter_idx ON domrf_kn_objects(cad_quarter); COMMENT ON TABLE cad_quarters_geom IS 'Кадастровые кварталы РФ (полигоны NSPD). Используется для spatial-join ' 'rosreestr_deals (по quarter_cad_number) → domrf_kn_objects (по lat/lon → ST_Contains).'; COMMENT ON COLUMN domrf_kn_objects.cad_quarter IS 'Кадастровый квартал, в который попадают координаты ЖК. Заполняется ' '59_backfill_obj_cad_quarter.sql через ST_Contains(cad_quarters_geom.geom, lat/lon).';