Viac

Spôsob / nástroj na automatické generovanie mnohouholníkov na mape so znalosťou šírky a výšky a rozstupu polygónov


Potrebujem vytvoriť veľké množstvo polygónov (povedzme 1 000) na georeferencovanej mozaike (z leteckých snímok). Poznám výšku a šírku mnohouholníkov a viem aj medzery medzi nimi. Môžem tiež poskytnúť okraje obsahujúceho mnohouholníka.

Povedzme, že chcem vytvoriť polygóny 1m x 3mts s veľkosťou 0,5 mts (vertikálne aj horizontálne rozstupy) v oblasti vymedzenej obdĺžnikom definovaným bodmi (p1, p2, p3, p4).

Vie niekto o nástroji, ktorý by to robil automaticky? Alebo nejaké odporúčanie k jeho implementácii?


Ak nie ste oboznámení s programovaním v Pythone, ale viete, ako používať program Excel, môžete vytvoriť tabuľku, ktorá má mnohouholníkové rohy vo formáte WKT, uložiť tabuľku ako súbor .csv, otvorený v QGIS. Používanie formátu WKT v súbore CSV je užitočný trik, ktorý som získal z ďalších odpovedí tu. Umožňuje vám prevádzať najrôznejšie údaje na údaje, ktoré dokáže QGIS zvládnuť bez toho, aby ste potrebovali vedieť niečo nad rámec základných funkcií programu Excel.

Povedzme, že chcete 4 riadky, 5 stĺpcov obdĺžnikov, vysokých 0,25 stupňa a medzi riadkami 0,1 stupňa. Cols sú široké 0,3 stupňa, medzi ktorými je 0,05 stupňa. Pôvod mriežky je 10 ° zemepisnej šírky, -106 ° zemepisnej dĺžky. Vytvorte tabuľku s nasledujúcimi prvými dvoma riadkami:

Posledný stĺpec by mal mať v bunke hlavičky WKT a vytvára WKT a vyzerá takto (veľmi škaredo)

= CONCATENATE ("polygon ((", F2, "", D2, ",", F2, "", E2, ",", G2, "", E2, ",", G2, "", D2, " , ", F2," ", D2,")) ")

Pretože chceme 20 polygónov, vyplňte stĺpec A 1 až 20 a skopírujte stĺpce B až H vedľa týchto záznamov.

Uložte túto tabuľku ako súbor .csv.

Teraz otvorte QGIS a vyberte Layer-> Add Delimited Text Layer a vyhľadajte súbor csv, ktorý ste práve vytvorili. Nastavte Definíciu geometrie na WKT, Geometry Type = Detect, Geometry field na WKT (alebo čokoľvek, čo máte v bunke H1).

Potom kliknite na tlačidlo OK

Ak to chcete zovšeobecniť, nahraďte „5“ v rôznych vzorcoch ľubovoľným počtom stĺpcov. Nahraďte „0,25“ výškou riadku v príslušných jednotkách, „-0,3) šírkou stĺpca,„ 0,1 “medziriadkovým rozstupom,„ -0,05 “medziriadkovým rozstupom„ 10 “pôvodom Y (zemepisná šírka), „-106“ s pôvodom X (zemepisná dĺžka).

Ak nepracujete v stupňoch, budete musieť nastaviť CRS pre svoju novú vrstvu tak, aby zodpovedal CRS, ktorý používate. V závislosti od vašich preferencií sa vám môže po kliknutí na tlačidlo OK na vytvorenie vrstvy zobraziť výzva na zadanie CRS.


Môžete to urobiť bez použitia programovania pomocou nástroja „Vytvoriť sieťku“ v paneli nástrojov pre oblúk a nástroja „vyrovnávacia pamäť“ v paneli nástrojov editora. Po vytvorení sieťovaných polygónov musíte v okne na vytvorenie vyrovnávacej pamäte polygóny vyrovnať medzery ako zápornú hodnotu. Takto sa vytvorí mnohouholník s rozstupmi a staré polygóny môžete odstrániť. Vyskúšaj tento. u mna to funguje.