Бештар

Растер ва геометрия ST_Intersects ҳангоми илова кардани буфер дар PostGIS суст мешавад

Растер ва геометрия ST_Intersects ҳангоми илова кардани буфер дар PostGIS суст мешавад


Ман як ҷадвале дорам, ки дорои растерҳо барои тамоми Бритониё аст, дархости дар зер овардашуда хеле зуд аст (0.1 сония) ва ҳамаи растерҳоеро мегиранд, ки бо хати байни нуқтаи оғоз ва нуқтаи ниҳоӣ бурида шудаанд:

SELECT ST_UNION (rast) INTO elevationdata FROM uk_rasters e WHERE ST_Intersects (rast, ST_Makeline (CAST (startloc AS GEOMETRY), CAST (endloc AS GEOMETRY))));

Ман мехоҳам ҳамин тавр кунам, аммо бо буфер дар атрофи хат, ба монанди:

SELECT ST_UNION (rast) INTO elevationdata FROM uk_rasters e WHERE ST_Intersects (rast, ST_Buffer (ST_Makeline (CAST (startloc AS GEOMETRY), CAST (endloc AS GEOMETRY)), 75)));

Ин пас аз 4 дақиқа кор мекард. Ман тахмин мезанам, ки буфер ST_Intersects -ро аз истифодаи Индекси рӯи миз то андозае бозмедорад. Ман зикрҳои ST_DWithin -ро дидам, аммо ман версияеро намебинам, ки растер ва геометрияро гирад.

Оё равиши дигаре ҳаст, ки ман бояд дар ин ҷо истифода барам?


Як такмили имконпазир ин як бор сохтани буферии хат ва такроран истифода бурдани он барои ҳар як растер хоҳад буд. Дар айни замон шумо буферро барои ҳар як растер дубора эҷод мекунед.

БО буферии AS (SELECT ST_Buffer (ST_Makeline (CAST (startloc AS GEOMETRY)), CAST (endloc AS GEOMETRY)), 75) AS linebuffer_geom) SELECT ST_UNION (rast) INTO elevationdata FROM uk_rasters, linebuffer WHUB_STER )

Таҳрир

Тафтиши воҳиди проексияи шумо истифодашаванда метавонад кумак кунад, 75 метр ва 75 дараҷаи даҳӣ аз ҷаҳониён фарқ мекунанд :).


PostgreSQL/PostGIS: То баргардонидани ду сатр буферро ба таври барномавӣ тавлид кунед

Ман дар пойгоҳи ман PostgreSQL 9.6 ду ҷадвал дорам, яъне сатр ва биное, ки сутунҳои геометрия доранд. Дархости зерин чорроҳаи буферро дар атрофи кӯча ва геометрияи бино бармегардонад (вақте ки дар масофаи додашуда дуруст аст).

Ду полигонҳои биноӣ дар ҳар ду тарафи хати мутаносибан 11 ва 15 метр мавҷуданд. Ба ман лозим аст, ки дар боло дархостро тавре тағир диҳам, ки буфер бояд аз 1 метр оғоз шавад ва то баргардонидани ду қатор (ҳарду бино) ва масофаи буферӣ афзоишро идома диҳад. Оё касе метавонад ба ман пешниҳод кунад, ки чӣ тавр ин корро кунам?


5.2. Каталогҳои растерӣ

Ду намуди каталоги растрӣ мавҷуданд, ки бо PostGIS бастабандӣ шудаанд. Ҳарду нуқтаи назар иттилооти дар маҳдудиятҳои ҷадвалҳои растерӣ ҷойгиршударо истифода мебаранд. Дар натиҷа, назари каталог ҳамеша бо маълумоти растрии ҷадвалҳо мувофиқат мекунад, зеро маҳдудиятҳо татбиқ карда мешаванд.

raster_columns ин намоиш ҳамаи сутунҳои ҷадвали растериро дар пойгоҳи шумо каталог мекунад.

raster_overviews ин намоиш ҳамаи сутунҳои ҷадвали растериро дар пойгоҳи додаҳои шумо каталог мекунад, ки ҳамчун шарҳи як ҷадвали донаҳои майда хизмат мекунанд. Ҷадвалҳои ин гуна ҳангоми эҷод кардани тугмаи -l ҳангоми боркунӣ тавлид мешаванд.

5.2.1. Каталоги сутунҳои растерӣ

Raster_columns каталоги ҳама сутунҳои ҷадвали растерӣ дар пойгоҳи шумо мебошад, ки намуди растерӣ доранд. Ин нуқтаи назарест, ки маҳдудиятҳои ҷадвалҳоро истифода мебарад, аз ин рӯ маълумот ҳамеша мувофиқ аст, ҳатто агар шумо як ҷадвали растериро аз нусхаи як пойгоҳи додаи дигар барқарор кунед. Дар каталоги raster_columns сутунҳои зерин мавҷуданд.

Агар шумо мизҳои худро на бо боркунак офаридаед ё ҳангоми боркунӣ нишон додани парчами -C -ро фаромӯш карда бошед, шумо метавонед маҳдудиятҳоро пас аз истифодаи AddRasterConstraints татбиқ кунед, то каталоги raster_columns маълумоти умумиро дар бораи сафолҳои растерии шумо сабт кунад.

r_table_catalog Пойгоҳи додаҳои ҷадвал дар он аст. Ин ҳамеша пойгоҳи додаи ҳозираро мехонад.

r_table_schema Схемаи пойгоҳи додаҳои ҷадвали растерӣ ба он тааллуқ дорад.

r_table_name ҷадвали растерӣ

r_raster_column сутун дар ҷадвали r_table_name, ки навъи растер аст. Дар PostGIS чизе нест, ки шуморо аз доштани сутунҳои сершумори растерӣ дар як ҷадвал пешгирӣ кунад, аз ин рӯ имкон дорад, ки ҷадвали растерӣ бо сутуни растерии гуногун барои ҳар яки онҳо чанд маротиба номбар карда шавад.

srid Идентификатори фазоии фазоии растер. Бояд дар фасли 4.3.1, & ldquoThe Ҷадвали SPATIAL_REF_SYS ва системаҳои истинодҳои фазоӣ & rdquo сабт карда шавад.

scale_x Миқёси байни координатаҳои фазоии геометрӣ ва пиксел. Ин танҳо дар сурате дастрас аст, ки ҳамаи сафолҳои сутуни растрӣ ҳамон як scale_x дошта бошанд ва ин маҳдудият татбиқ карда шавад. Барои тафсилоти бештар ба ST_ScaleX муроҷиат кунед.

scale_y Миқёси байни координатаҳои фазоии геометрӣ ва пиксел. Ин танҳо дар сурате дастрас аст, ки ҳамаи сафолҳои сутуни растрӣ ҳамон миқёси_y дошта бошанд ва маҳдудияти миқёси_y татбиқ карда шавад. Барои тафсилоти бештар ба ST_ScaleY муроҷиат кунед.

blockize_x Паҳнои (шумораи пикселҳо дар саросари) ҳар як сафели растерӣ. Барои тафсилоти бештар ба ST_Width муроҷиат кунед.

blockize_y Паҳнои (шумораи пикселҳо поён) ҳар як сафели растерӣ. Барои тафсилоти бештар ба ST_Height муроҷиат кунед.

same_alignment Булевӣ, ки дуруст аст, агар ҳамаи сафолҳои растрӣ ҳамоҳангии якхела дошта бошанд. Барои тафсилоти бештар ба ST_SameAlignment муроҷиат кунед.

regular_blocking Агар сутуни растрӣ дорои маҳдудиятҳои фазоии беҳамто ва фарогирӣ бошад, қимат бо TRUE бошад. Дар акси ҳол, ДУРУСТ хоҳад буд.

num_bands Шумораи гурӯҳҳо дар ҳар як сафҳаи маҷмӯи растерии шумо. Ин ҳамон маълумотест, ки ST_NumBands пешниҳод мекунад

pixel_types Массиве, ки намуди пикселро барои ҳар як гурӯҳ муайян мекунад. Шумо дар ин массив ҳамон шумораи элементҳоро хоҳед дошт, ки шумораи бандҳо доред. Pixel_types яке аз инҳоянд, ки дар ST_BandPixelType муайян карда шудаанд.

nodata_values ​​Як қатор рақамҳои дақиқи дукарата, ки nodata_value барои ҳар як бандро ифода мекунанд. Шумо дар ин массив ҳамон шумораи элементҳоро хоҳед дошт, ки шумораи бандҳо доред. Ин рақамҳо арзиши пикселро барои ҳар як гурӯҳ муайян мекунанд, ки барои аксари амалиётҳо нодида гирифта мешаванд. Ин маълумоти шабеҳест, ки ST_BandNoDataValue пешниҳод кардааст.

out_db Як қатор парчамҳои мантиқӣ, ки нишон медиҳанд, ки маълумотҳои бандҳои растрӣ берун аз пойгоҳи дода нигоҳ дошта мешаванд. Шумо дар ин массив ҳамон шумораи элементҳоро хоҳед дошт, ки шумораи бандҳо доред.

андоза Ин дараҷаи ҳамаи сатрҳои растерӣ дар маҷмӯи растерии шумост. Агар шумо нақша доред маълумоти бештареро бор кунед, ки андозаи маҷмӯаро тағир диҳад, шумо мехоҳед функсияи DropRasterConstraints -ро пеш аз боркунӣ иҷро кунед ва пас аз боркунӣ маҳдудиятҳоро бо AddRasterConstraints дубора татбиқ кунед.

spatial_index Бозие, ки дуруст аст, агар сутуни растрӣ шохиси фазоӣ дошта бошад.

5.2.2. Бознигарии растерӣ

raster_overviews каталогҳо маълумотро дар бораи сутунҳои ҷадвали растерӣ, ки барои азназаргузаронӣ истифода мешаванд ва маълумоти иловагӣ дар бораи онҳо, ки ҳангоми истифодаи шарҳҳо донистан муфид аст. Ҷадвалҳои шарҳ ҳам дар raster_columns ва ҳам raster_overviews каталог карда шудаанд, зеро онҳо ба таври худ растерҳо мебошанд, аммо инчунин як мақсади махсуси карикатураи пасттари ҷадвали ҳалли баландтар мебошанд. Вақте ки шумо калиди -l -ро дар боркунии растер истифода мебаред, инҳо дар паҳлӯи ҷадвали асосии растрӣ тавлид мешаванд ё бо дастури AddOverviewConstraints сохтан мумкин аст.

Ҷадвалҳои шарҳ дорои ҳамон маҳдудиятҳое мебошанд, ки дар ҷадвалҳои растерӣ мавҷуданд ва инчунин маҳдудиятҳои иловагии иттилоотӣ, ки ба баррасиҳо хосанд.

Маълумот дар raster_overviews маълумотро дар raster_columns такрор намекунад. Агар ба шумо маълумот дар бораи ҷадвали шарҳи дар raster_columns мавҷудбуда лозим ояд, шумо метавонед ба raster_overviews ва raster_columns ҳамроҳ шавед, то маҷмӯи пурраи маълумоти лозимаро гиред.

Ду сабаби асосии баррасиҳо инҳоянд:

Намояндагии пасти ҷадвалҳои аслӣ, ки одатан барои масофаи дур кардани харитаи зуд истифода мешаванд.

Ҳисобҳо дар муқоиса бо волидони баландтарашон зудтар иҷро мешаванд, зеро сабтҳо камтаранд ва ҳар пиксел қаламрави бештарро фаро мегирад. Гарчанде ки ҳисобҳо мисли мизҳои баландсифати онҳо дақиқ набошанд ҳам, онҳо метавонанд дар бисёр ҳисобҳои қоидаи оддӣ кифоя бошанд.

Каталоги raster_overviews дорои сутунҳои зерини иттилоот мебошад.

o_table_catalog Пойгоҳи додаҳо ҷадвали шарҳро дар бар мегирад. Ин ҳамеша пойгоҳи додаи ҳозираро мехонад.

o_table_schema Схемаи пойгоҳи додаҳо ҷадвали шарҳи растериро дар бар мегирад.

o_table_name raster номи ҷадвали шарҳи умумӣ

o_raster_column сутуни растерӣ дар ҷадвали шарҳ.

r_table_catalog Пойгоҳи додаҳо ҷадвали растерӣ мебошад, ки ин хидматҳои шарҳи онро дар бар мегиранд. Ин ҳамеша пойгоҳи додаҳои ҷориро мехонад.

r_table_schema Схемаи пойгоҳи додаҳо ҷадвали растерӣ, ки ин хидматҳои шарҳи ба он тааллуқ доранд.

r_table_name ҷадвали растерӣ, ки ин хидматҳоро шарҳ медиҳад.

r_raster_column сутуни растерӣ, ки ин сутуни шарҳро хидмат мекунад.

overview_factor - ин сатҳи пирамидаи ҷадвали шарҳ аст. Рақам баландтар бошад, ҳамон қадар ҳалли ҷадвал пасттар мешавад. raster2pgsql, агар ҷузвдони тасвирҳо дода шавад, шарҳи ҳар як файли тасвирро ҳисоб мекунад ва алоҳида бор мекунад. Сатҳи 1 тахмин карда мешавад ва ҳамеша файли аслӣ аст. Сатҳи 2 дорои ҳар як плитка аз 4 нусхаи аслӣ хоҳад буд. Масалан, агар шумо папкаи файлҳои тасвирии 5000x5000 пиксел дошта бошед, ки шумо онро 125x125 пора кардан мехоҳед, барои ҳар як файли тасвирӣ ҷадвали асосии шумо дорои сабтҳо (5000*5000)/(125*125) = 1600, шумо (l = 2) o_2 миз дорои шифт (1600/Ҳокимият (2,2)) = 400 сатр, шумо (l = 3) o_3 дорои шифт (1600/Ҳокимият (2,3)) = 200 сатр хоҳад буд. Агар пикселҳои шумо ба андозаи сафолҳои шумо тақсим нашаванд, шумо якчанд плиткаҳои партов мегиред (плиткаҳо пурра пур нашудаанд). Дар хотир доред, ки ҳар як сафҳаи шарҳи аз ҷониби raster2pgsql тавлидшуда ҳамон шумораи пикселҳои волидайнро дорад, аммо дорои қарори пасттар аст, ки ҳар як пиксел аз он ифода меёбад (Ҳокимият (2, overview_factor) пикселҳои аслӣ).


Видеоро тамошо кунед: #PostGIS: The Spatial Reference ID u0026 The Geometry Field. #PostgreSQL, #QGIS. UrduHindi. #12