This is an old revision of the document!
Table of Contents
Precerpavaci elektrarna Cechy-stred
Prehradi-li se Labe na vytoku z CR, muze po osazeni telesa hraze turbinami vzniknout nejvetsi precerpavaci elektrarna v Ceske republice [citation needed]. Dopady stavby na zivotni prostredi jsou zanedbatelne, nebot moznost nezatopena mista osadit dle nadmorske vysky bud vetrniky, nebo repkou, o 666% vylepsi zivotni prostredi v CR.
Data o nadmorske vysce
Nadmorskou vysku pevniny zmapoval a zcenzurovanou verzi zverejnil spojenostatoamericky projekt SRTM. Data lze stahnout ve forme matic o rozmerech 1201×1201 16b integeru o kroku 1m; s vertikalni presnosti ~10m (hodnota skalaru) a plosnym rozlisenim 3“ (tri uhlove sekundy; ~90m).
Stazeni dat pro CR (zabere ~100MB):
#!/bin/bash for i in {48..51..1} do for e in {011..019..1} do wget http://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N"$i"E"$e".hgt.zip unzip ./N"$i"E"$e".hgt.zip -d ./ rm ./N"$i"E"$e".hgt.zip done done
Zpracovani SRTM dat
Existuje projekt gdal, ale je zabugovany k nepouzitelnosti, proto jsem napsal vlastni C programy “mergeWENS.c” (slouci SRTM matice do jedne) a “hgt2pngn.c” (prevede matici na png obrazek). Stazeni: http://brmlab.s0c4.net/brmdam.tgz
Slouceni .hgt matic do jedne velke matice
SRTM matice nelze trivialne napojit na sebe, protoze prvni/posledni radek/sloupec se prekryva se sousedni matici. Je tedy potreba pouzit muj mergeWENS.c:
clang ./mergeWENS.c -o ./mergeWENS mergeWENS #WE #NS input.hgt [...] output.hgt
- #WE = pocet west-to-east matic
- #NS = pocet north-to-south matic
- input.hgt … = vstupni hgt matice v poradi od severozapadu, pres severovychod a jihozapad k jihovychodu.
- output.hgt = vystupni matice
Pro CR a zaokrouhlene okoli (48-51 SS; 11-19 VD) je ten prikaz nasledujici:
./mergeWENS 9 4 ./N51E011.hgt ./N51E012.hgt ./N51E013.hgt ./N51E014.hgt ./N51E015.hgt ./N51E016.hgt ./N51E017.hgt ./N51E018.hgt ./N51E019.hgt ./N50E011.hgt ./N50E012.hgt ./N50E013.hgt ./N50E014.hgt ./N50E015.hgt ./N50E016.hgt ./N50E017.hgt ./N50E018.hgt ./N50E019.hgt ./N49E011.hgt ./N49E012.hgt ./N49E013.hgt ./N49E014.hgt ./N49E015.hgt ./N49E016.hgt ./N49E017.hgt ./N49E018.hgt ./N49E019.hgt ./N48E011.hgt ./N48E012.hgt ./N48E013.hgt ./N48E014.hgt ./N48E015.hgt ./N48E016.hgt ./N48E017.hgt ./N48E018.hgt ./N48E019.hgt ./NallEall.hgt
Konverze do png
Matici je pro potreby zobrazeni prevest do png, opet se opakuje situace se zabugovanymi nastroji v rezozitari/na internetech. Takze pouziju svuj hgt2pngn.c (potrebuje opencv-dev):
clang $(pkg-config --cflags --libs opencv) hgt2pngn.c -o hgt2pngn ./hgt2pngn width height mode input.hgt output.png
- width = pocet sloupcu vstupni matice
- height = pocet radku vstupni matice
- mode = rezim konverze vstupniho 16b skalaru:
- 8 = grayscale 8b png (ztrati se presnost)
- 16 = grayscale 16b png (bez ztraty presnosti, ale vetsina sw neumi zpracovat)
- 3 = RGB 8b png.
- Cervena = oblasti kde nejsou dostupna SRTM data
- Zelena = (vyska/256)*32
- modra = vyska%256
- input.hgt = vstupni matice
- output.png = vystupni png
MergeWENS vypise rozmery vystupni matice, coz NENI prosty soucet rozmeru vstupu (kvuli presahum matic do sousednich).
./hgt2pngn 10793 4798 8 ./NallEall.hgt ./NallEall.png ./hgt2pngn 10793 4798 16 ./NallEall.hgt ./NallEall.png ./hgt2pngn 10793 4798 3 ./NallEall.hgt ./NallEall.png
Vypocet a vykresleni zatopene plochy
K vypoctu zatopene plochy je potreba 16bit grayscale PNG z hgt2pngn. O vypocet se stara program damnflood, ktery krom grafickeho vystupu vypocte i nejnizsi bod hraze, jeji vysku, objem zadrzene vody v m^3 a zatopenou plochu v m^2.
clang $(pkg-config --cflags --libs opencv) -lm damnflood.c -o damnflood damnflood Ax Ay Bx By h input.png output.png
- Ax, Ay = souradnice pocatku hraze
- Bx, By = souradnice konce hraze
- h = jake vysky ma hladina dosahnout (v metrech nad morem)
- 0 znamena vykresleni pouze hraze (pro debugovani umisteni)
- input.png = 16b grayscale png
- output.png = 16b RGB png
Barvy:
- cervena = teleso hraze
- modra = zatopena oblast
- bily bod = chyba mereni SRTM
- odstiny sede (v podstate cerna) = nethnute informace o terenu z SRTM
Priklad:
./damnflood 3800 1400 4200 1450 423 ./NallEall16.png ./flood16.png Root : Top : Height = 123 : 501 : 378 Filling west/south side! Stats: Volume: 3523475351700 m^3 Area: 30450289500 m^2