Příklad tisku pomocí výškopisných dat

V tomto návodu se budeme zabývat tiskem reliéfu pomocí výškopisných dat. Tento způsob tisku nám nabízí mnohem větší možnosti jak při výběru lokality, tak i co se přesnosti týče. Postup je však náročnější a výškopisná data ve větším rozlišení je těžké sehnat a někdy mohou být i zpoplatněna značnou sumou.

Výškopisná data

Výškopisná data je typ dat, který nám zadává rovinné souřadnice (x,y) a jako parametr dále výšku (h nebo z) daného bodu. Takto shromážděna data mají své přednosti i nedostatky. Nachází se většinou v jednom ze dvou textových formátů - plain text(.txt) nebo jako soubor Shuttle Radar Topography Mission(.hgt)

Výraznou předností je velikost takových knihoven. Vzhledem k tomu, že jsou data uchovávana v textové podobě, je velice jednoduché je přenášet a pracovat s nimi. Pro představu, komprimovaná knihovna obsahující data (v hexadecimálním tvaru) o reliéfu téměř celé Evropy s přesností na 30 m, dosahují velikosti pouze 300 MB. Takovýto soubor ve formátu .tif by s největší pravděpodobností dosahoval velikosti několika PB.
Jedním z nedostatků pak může být například fakt, že bez vhodné konverze jsou tato data naprosto nenázorná a to i v případě, že máme soubor ve formátu .txt. Navíc, pokud se jedná o SRTM(.hgt) soubor, data jsou pro běžného smrtelníka naprosto nečitelná. Dále se nám také může stát, že program, ve kterém pracujeme, neumí importovat tato data a jsme tedy odkázáni na konvertory mezi formáty. Více o .hgt formátu naleznete zde.

Získání dat (.hgt)

Nyní si ukážeme jeden ze způsobů jak bezplatně získat data s 30m přesností, která byla mimo jiné použita k vytvoření modelu reliéfu vodní nádrže Lipno.
Na této internetové adrese je pomocí obdelníků znázorněno pokrytí pevniny. Po kliknutí na políčko M33 (název se objeví najedeme-li myší na daný obdélník) se objeví dialog pro stáhnutí archivu s daty. Tento archiv uložíme a po následném rozbalení jsme připraveni tato data importovat.

Práce v QGISu

Pro úpravy objektu před tiskem použijeme program QGIS. Kromě toho, že je dostupný bezplatně zde, má také spoustu příjemných vlastností pro práci s 3D modely reliéfu.
Import knihovny provedeme buď běžným drag & dropem nebo v menu Layer - Add layer - Add Raster layer vybereme jednotlivé soubory. Dále pro příjemnější práci s rastrem je vhodné tyto vrstvy spojit, čehož se docílí klikneme-li v menu na Raster - Miscellaneous - Merge... Objeví se nám vyskakovací okno, které po nás požaduje parametry spojení vrstev. Nejprve je potřeba vybrat vrstvy, které chceme spojit (v našem případě všechny). Dále je potřeba změnit Output data type na hodnotu Int32 a vhodné je i zaškrtnout možnost Grab pseudocolor table from first layer. Poté tuto vrstvu uložíme do samostatného .tif souboru a stiskneme Run.

Po doběhnutí algoritmu a smazání jednotlivých dlaždic bychom měli vidět celistvý model reliéfu. Nyní je potřeba z něj vyřezat část, kterou chceme tisknout. Toho docílíme opět nástrojem Raster a volbou Extraction - Clip Raster by Extent... Dále můžeme buď pomocí volby Draw on Canvas nakreslit obdélník, který chceme vyříznout, případně je možné určit oblast pomocí geografických souřadnic. Nakonec nám zbývá pouze uložit tuto vrstvu do samostatného souboru a můžeme znovu spustit tlačítkem Run .

Jakmile algoritmus skončí, objeví se část modelu zbarvená do jiného odstínu. Tuto část budeme nyní chtít opět exportovat do souboru .stl, který pak už je připraven k tisku nebo jiným úpravám ve vhodném programu (např. Cinema 4D).

Export do STL

K exportu použijeme plugin DEMto3D, který je však nejprve pořeba doinstalovat. V menu zvolíme Plugins - Manage and Install Plugins... a ve vyhledávači najdeme potřebný plugin.
Po instalaci se nám v menu Raster objeví nová volba DEMto3D - DEM 3D printing. Zde je potřeba nastavit několik parametrů. V prvé řadě vybereme vrstvu, ze které chceme tisknout. Dále pak část této vrstvy, určenou k tisku - v našem případě se jedná o celou vrstvu, kterou je možné vybrat pomocí prostředního tlačítka s lupou. Co se týče velikosti modelu, nastavení se budou samozřejmě lišit v závislosti na 3D tiskárně, kterou vlastníme, my jsme vybrali rozměry tak, aby se zaplnila celá tisková podložka. Vertikální násobení je také vhodné využít, ideální jsou hodnoty někde mezi 1.2 - 1.8. Plugin také umožňuje model rovnou rozřezat na x krát y dílků, což je více než příhodné pro tisk velikých modelů. V kolonce Height (m) můžeme nechat číslo 1 (na malé modely to nemá vliv) a jsme připraveni k exportu, který potvrdíme stiskem Export to STL.
Zde je vhodné podotknout, že není potřeba to přehánět s velikostí modelu. Může se totiž stát, že náš počítač není dostatečně hardwarově vybaven a program často spadne. Pokud nás program varuje, že export může trvat dlouho, je potřeba počítat s tím, že kromě dlouhého trvání, může i spadnout. To se bude opakovat dokud nezmenšíme model na přijatelnou velikost.

Program QGIS byl mimo jiné vybrán i kvůli tomu, že exportované .stl není potřeba dále upravovat (pro potřeby tiskárny). Tímto si značně zjednodušíme celý postup a vyhneme se zbytečným těžkostem. Model, který nyní máme k dispozici je plně připraven k tisku a není už potřeba jej opravovat v Netfabbu.

Práce s daty v plaintextové formě (.xyz)

Pokud máme k dispozici například data od ČÚZK, budou ve formě obyčejného (relativně čitelného) textu. Bohužel, v této formě z nich neumí QGIS vyčíst 3D model a je potřeba jej manuálně vytvořit. Níže si popíšeme, jak se od množiny bodů dostat k modelu. Pomocí těchto dat nebyl vytisknut 3D model, avšak je velice pravděpodobné, že tomu tak v budoucnosti bude.

Tvorba rastrového modelu

Nejprve je potřeba vytvořit novou vrstvu obsahující naše výškopisné údaje. V menu Layer vybereme možnost Add Layer - Add Delimited Text Layer... Otevře se nám dialog s možnostmi importu dat, po vybrání souboru zkontrolujeme tabulku s vzorovým náhledem. Pokud nemáme data setřízena do úhledné tabulky se třemi sloupci a mnoha řádky, musíme upravit několik parametrů. První řádek již buď musí obsahovat názvy proměnných, nebo je potřeba QGISu říci, že tam nejsou, a on jim přiřadí vlastní jména (x_field,y_field,...). V části Geometry Definition se ujistíme, že proměnné mají svá jména (v našem případě x,y,z), přičemž M field zůstane prázdné. Vizte níže, které údaje je potřeba nastavit.

Pokud by se nám stalo, že data nejsou setřízena do tří úhledných sloupců, je potřeba zjistit, jaké máme v souboru oddělovače mezi jednotlivými souřadnicemi. Toho lze docílit prostým způsobem "pokus-omyl" přičemž sledujeme tabulku s vzorovými daty dokud nedosáhneme kýženého výsledku. Je-li vše správně nastaveno, stisknutím Add přidáme novou vrstvu.

Nová vrstva se skládá z množství bodů bez jakýchkoliv meshů. Vytvoření meshů a hran dosáhneme pomocí nástroje Interpolation - TIN interpolation. V otevřeném dialogu uděláme následující nastavení: Vybereme vrstvu s daty, do tabulky přidáme vektorovou vrstvu složenou z bodů, jako Interpolation attribute vybereme z-souřadnici, rozsah nastavíme na celou vrstvu a nastavíme cíl uložení. Mimo tato nastavení bude s největší pravděpodobností ještě potřeba zmenšit počet řádků a sloupců (v závislosti na výkonu počítače). I při pár desítkách tisíc totiž může výpočet trvat hodiny.
Pokud jsme s nastavením spokojeni, spustíme algoritmus. Po jeho dokončení obdržíme vrstvu s výškopisnými daty převedenými na rastr. V tuto chvíli je velice rozumné vrstvu s body odstranit - dále ji už nebudeme potřebovat. Takto vytvořená vrstva v sobě nejspíše bude mít mnoho děr. Tyto díry opravíme pomocí nástroje Fill nodata z předinstalovaného GDAL pluginu. Nástroj otevřeme v části Processing Toolbox umístěné napravo (lze jej lehce najít pomocí vyhledávače). V tomto nástroji je potřeba jen vybrat vrstvu, kterou chceme opravit a vybrat, kde si přejeme výsledek uložit.

Pokud jsme postupovali podle předchozího návodu, měli bychom nyní mít vytvořen model, který v QGISu není potřeba dále upravovat. Pokud si přejeme domodelovat nějaké objekty či jinak měnit model, nejlepší je opět využít program Cinema 4D apod.
Náš model můžeme nyní vyexportovat stejně jako výše, pomocí nástroje DEMto3D.