| 1 | | = GIS System = |
| | 1 | = GIS систем во телекомуникациската база |
| | 2 | |
| | 3 | GIS делот ја проширува постојната телекомуникациска база со просторни податоци. Со него може да се прикажат мрежните локации и зоните на покриеност на мапа, да се провери кои кориснички адреси се во одредена зона и да се процени влијанието на мрежен прекин. Врската меѓу локација, кула, сектор и зона останува преку постојните релации: network_sites -> cell_towers -> tower_sectors -> coverage_zones. |
| | 4 | |
| | 5 | == Измени во структурата на базата |
| | 6 | |
| | 7 | Додадена е екстензијата PostGIS. Од latitude и longitude автоматски се создава точка со координатен систем SRID во network_sites.location и customer_addresses.location. Во coverage_zones се додадени coverage_radius_m и coverage_area. Радиусот може да биде од 100 до 50 000 метри, а coverage_area е полигон што ја претставува приближната покриеност на секторот. |
| | 8 | |
| | 9 | Корисничката адреса не се врзува директно со една зона преку странски клуч. Просторната проверка ST_Covers утврдува дали точката на адресата лежи во полигонот на секторот. Затоа една адреса може да се појави во повеќе зони на покриеност. |
| | 10 | |
| | 11 | === Како се создава зона на покриеност |
| | 12 | |
| | 13 | Функцијата build_sector_coverage ги зема точката на мрежната локација, насоката на секторот (azimuth), ширината на зракот (beamwidth) и радиусот. Со ST_Project пресметува точки по надворешниот лак и од нив создава насочен полигон. Ако beamwidth е 360 степени, создава кружна зона со ST_Buffer. |
| | 14 | |
| | 15 | Пред зачувување на coverage_zones, тригер ја повикува set_coverage_zone_geometry и го пресметува полигонот. Ако недостигаат координати или параметри, полигонот останува NULL. Ова е поедноставен модел за планирана покриеност, а не мерење на вистинскиот радио сигнал. |
| | 16 | |
| | 17 | == GIS погледи |
| | 18 | |
| | 19 | Во GIS делот се додадени осум погледи. Тие ги поврзуваат просторните податоци со постојните податоци за корисници, сообраќај и мрежни прекини и може да се користат како слоеви во QGIS. |
| | 20 | |
| | 21 | === Network Site Points |
| | 22 | |
| | 23 | v_network_site_points ги прикажува мрежните локации како точки, со нивниот код, име, регион, тип и статус. Се користи како основен слој за приказ на инфраструктурата на мапа. |
| | 24 | |
| | 25 | [attachment:"01 Network site points.sql"] |
| | 26 | |
| | 27 | === Network Coverage Map |
| | 28 | |
| | 29 | v_network_coverage_map ги прикажува полигоните на зоните заедно со локацијата, кулата, секторот, технологијата, насоката, радиусот и оценката за квалитет. Се користи за визуелен преглед на планираната секторска покриеност. |
| | 30 | |
| | 31 | [attachment:"02 Network coverage map.sql"] |
| | 32 | |
| | 33 | === Site Coverage Summary |
| | 34 | |
| | 35 | v_site_coverage_summary ги сумира секторите и зоните за секоја мрежна локација. Ги прикажува просечниот квалитет, обединетата површина во km² и бројот на отворени прекини. Преклопените делови од зоните не се бројат двапати при пресметката на површината. |
| | 36 | |
| | 37 | [attachment:"03 Site coverage summary.sql"] |
| | 38 | |
| | 39 | === Customer Coverage Detail |
| | 40 | |
| | 41 | v_customer_coverage_detail ја споредува примарната адреса на активен корисник со активните секторски полигони. За секој сектор што ја покрива адресата ги прикажува технологијата, квалитетот и растојанието до мрежната локација. |
| | 42 | |
| | 43 | [attachment:"04 Customer coverage detail.sql"] |
| | 44 | |
| | 45 | === Open Outage Customer Impact |
| | 46 | |
| | 47 | v_open_outage_customer_impact ги поврзува отворените мрежни прекини со примарните адреси во зоните на засегнатата локација. Се користи за процена кои корисници потенцијално се засегнати; резултатот не потврдува прекин на услугата кај секој прикажан корисник. |
| | 48 | |
| | 49 | [attachment:"05 Open outage customer impact.sql"] |
| | 50 | |
| | 51 | === Sector Traffic Map |
| | 52 | |
| | 53 | v_sector_traffic_map ги сумира повиците, SMS пораките и интернет сесиите по сектор и ги поврзува резултатите со секторскиот полигон. Секој вид сообраќај се агрегира одделно за спојувањето на табелите да не го умножи бројот на настани. |
| | 54 | |
| | 55 | [attachment:"06 Sector traffic map.sql"] |
| | 56 | |
| | 57 | === Coverage Overlap Analysis |
| | 58 | |
| | 59 | v_coverage_overlap_analysis ја пресметува геометриската пресечна површина на зони од различни мрежни локации. Секој пар зони се прикажува еднаш. Погледот помага да се анализира каде се преклопува планираната покриеност. |
| | 60 | |
| | 61 | [attachment:"07 Coverage overlap analysis.sql"] |
| | 62 | |
| | 63 | === Uncovered Primary Addresses |
| | 64 | |
| | 65 | v_uncovered_primary_addresses ги наоѓа примарните адреси на активни корисници што не се во ниту една активна секторска зона. Се користи за откривање можни празнини во моделот на покриеност. |
| | 66 | |
| | 67 | [attachment:"08 Uncovered primary addresses.sql"] |
| | 68 | |
| | 69 | == GIS функции |
| | 70 | |
| | 71 | === Build Sector Coverage |
| | 72 | |
| | 73 | build_sector_coverage го создава секторскиот полигон од точка, насока, ширина и радиус. |
| | 74 | |
| | 75 | [attachment:"01 Build sector coverage.sql"] |
| | 76 | |
| | 77 | === Set Coverage Zone Geometry |
| | 78 | |
| | 79 | set_coverage_zone_geometry ја наоѓа локацијата и параметрите на секторот и ја поставува геометријата на зоната пред зачувување. |
| | 80 | |
| | 81 | [attachment:"02 Set coverage zone geometry.sql"] |
| | 82 | |
| | 83 | === Rebuild Coverage After Site Change |
| | 84 | |
| | 85 | rebuild_coverage_after_site_change ги обновува зоните кога се менуваат координатите на мрежната локација. |
| | 86 | |
| | 87 | [attachment:"03 Rebuild coverage after site change.sql"] |
| | 88 | |
| | 89 | === Rebuild Coverage After Sector Change |
| | 90 | |
| | 91 | rebuild_coverage_after_sector_change ја обновува зоната кога на секторот се менуваат кулата, azimuth или beamwidth. |
| | 92 | |
| | 93 | [attachment:"04 Rebuild coverage after sector change.sql"] |
| | 94 | |
| | 95 | === Rebuild Coverage After Tower Move |
| | 96 | |
| | 97 | rebuild_coverage_after_tower_move ги обновува зоните на секторите кога кулата се преместува на друга локација. |
| | 98 | |
| | 99 | [attachment:"05 Rebuild coverage after tower move.sql"] |
| | 100 | |
| | 101 | === Find Nearest Network Sites |
| | 102 | |
| | 103 | find_nearest_network_sites ги наоѓа најблиските активни мрежни локации до зададени координати и го враќа растојанието во метри. |
| | 104 | |
| | 105 | [attachment:"06 Find nearest network sites.sql"] |
| | 106 | |
| | 107 | === Get Customer Primary Address Coverage |
| | 108 | |
| | 109 | get_customer_primary_address_coverage ги наоѓа активните сектори што ја покриваат примарната адреса на даден корисник. |
| | 110 | |
| | 111 | [attachment:"07 Get customer primary address coverage.sql"] |
| | 112 | |
| | 113 | === Calculate Site Coverage Area |
| | 114 | |
| | 115 | calculate_site_coverage_area_sq_km ги обединува полигоните на една локација и ја пресметува нивната вкупна површина без двојно броење на преклопувањата. |
| | 116 | |
| | 117 | [attachment:"08 Calculate site coverage area.sql"] |
| | 118 | |
| | 119 | == GIS процедури |
| | 120 | |
| | 121 | === Update Coverage Radius |
| | 122 | |
| | 123 | proc_update_coverage_radius го менува радиусот на избрана зона по проверка дека таа постои и дека новата вредност е меѓу 100 и 50 000 метри. Промената го активира тригерот што го создава новиот полигон. |
| | 124 | |
| | 125 | [attachment:"01 Update coverage radius.sql"] |
| | 126 | |
| | 127 | === Relocate Network Site |
| | 128 | |
| | 129 | proc_relocate_network_site ги проверува координатите и ја преместува избраната мрежна локација. Новата точка се создава автоматски од координатите, а тригерот ги пресметува повторно зоните поврзани со локацијата. |
| | 130 | |
| | 131 | [attachment:"02 Relocate network site.sql"] |
| | 132 | |
| | 133 | === Refresh All Coverage Geometries |
| | 134 | |
| | 135 | proc_refresh_all_coverage_geometries иницира повторна пресметка на полигоните за сите зони. Таа е корисна по поставување на GIS модулот или кога треба целосно да се обноват геометриите од тековните координати, насоки и радиуси. |
| | 136 | |
| | 137 | [attachment:"03 Refresh all coverage geometries.sql"] |
| | 138 | |
| | 139 | == GIS тригери |
| | 140 | |
| | 141 | === Coverage Zone Geometry Trigger |
| | 142 | |
| | 143 | trg_coverage_zones_set_geometry се извршува пред INSERT или UPDATE на coverage_zones. Ја повикува set_coverage_zone_geometry за полигонот да одговара на тековната локација, сектор и радиус. |
| | 144 | |
| | 145 | [attachment:"01 Coverage zone geometry trigger.sql"] |
| | 146 | |
| | 147 | === Site Coordinate Rebuild Trigger |
| | 148 | |
| | 149 | trg_network_sites_rebuild_coverage се извршува по промена на latitude или longitude во network_sites и ги обновува полигоните на секторите поврзани со таа локација. |
| | 150 | |
| | 151 | [attachment:"02 Site coordinate rebuild trigger.sql"] |
| | 152 | |
| | 153 | === Sector Settings Rebuild Trigger |
| | 154 | |
| | 155 | trg_tower_sectors_rebuild_coverage се извршува по промена на tower_id, azimuth или beamwidth во tower_sectors и ја обновува засегнатата зона. |
| | 156 | |
| | 157 | [attachment:"03 Sector settings rebuild trigger.sql"] |
| | 158 | |
| | 159 | === Tower Move Rebuild Trigger |
| | 160 | |
| | 161 | trg_cell_towers_rebuild_coverage се извршува по промена на site_id во cell_towers. Ги обновува зоните на сите сектори на преместената кула. |
| | 162 | |
| | 163 | [attachment:"04 Tower move rebuild trigger.sql"] |
| | 164 | |
| | 165 | == Индекси и примена |
| | 166 | |
| | 167 | GIS модулот додава GiST просторни индекси за адресните точки, точките на мрежните локации, пребарувањето по географско растојание и полигоните на зоните, како и индекс за поврзување на зоните со секторите. Тие ги поддржуваат пребарувањата за покриеност, блиски локации и спојувањето со податоците за мрежата. |
| | 168 | |
| | 169 | Во QGIS може да се прикажат мрежните локации, секторските полигони, непокриените адреси, преклопувањата и потенцијално засегнатите корисници. Моделот не ги пресметува влијанието на теренот, зградите или реалната моќност на антените, па картата служи за демонстрација и почетна анализа на покриеноста. |