Upload
wgug
View
509
Download
0
Embed Size (px)
DESCRIPTION
prezentacja w formacie *.pdf z warsztatów "Analizy przestrzenne z wykorzystaniem GRASS" 13-16.09.2010. Autorzy: Paweł Netzel, Jacek Ślopek.
Citation preview
Obliczanie szorstkości w warunkach miejskich
Paweł NetzelJacek Ślopek
2
Szorstkość terenu
Co to jest szorstkość terenu?Wpływ szorstkości na jakość życiaProfil pionowy wiatruPrzewietrzanieTransport zanieczyszczeńParametr modeli transportuProblemy przy ocenie szorstkości
3
Specyfika warunków miejskich
Mozaika budynkówKaniony ulicZłożony kształt budynkuWysokie wartości szorstkościPrzeszkody
4
Dane wejściowe
Model terenu (płaski)Wysokości budynkówSkan lidarowyWysokości średnie dla budynkówKompleksy budynków
5
Metoda obliczeniowaWyznaczanie obszarów przypisywanych do budynków (lub ich grup), zgodne z podejściem Gala, Sümeghy i Ungera oraz Grimmonda i Oke'a (ilustracje na podstawie rycin z prac Gala i Ungera (Gal, Unger, 2009))
6
Metoda obliczeniowa cd
7
Metoda obliczeniowa cd
Współczynnik z0 – długość szorstkości definiuje się następująco:
gdzie– κ - stała von Karmana wynosząca 0,4;
– Cdh
- współczynnik oporu dla odosobnionych przeszkód
wynoszący 0,8;– h – uśredniona wysokość;
– λF - stosunek bocznej powierzchni budynków normalnej
do kierunku napływu;
– zd – wysokość nowej płaszczyzny zerowej dla danego
obszaru;
z0=h−z dexp −
0,5CdhF =h−zdexp − 0,4F
8
Metoda obliczeniowa cd
h=∑i=1
n
V i hi
∑i=1
n
V i
F =AF
AT
zd=h P0,6
P=AP
AT
gdzie– A
F(Θ) – suma pól rzutów powierzchni bocznych
budynków;
– AT – pole powierzchni obszaru przypisanego do danego
obiektu;
– AP – pole powierzchni rzutu budynków (lub grupy) na
płaszczyznę poziomą;
9
Uproszczenie modelu
Średnia wysokośćNapływy z 8 kierunkówŁatwość w obliczaniu powierzchni poprzecznejMożliwość użycia funkcji x() i y() z r.mapcalcSkrypt w GRASS
10
Identyfikacja budynków
Przypisanie każdemu budynkowi/kompleksowi budynków unikalnego identyfikatora
r.clump input=bud output=bud.clump
11
Obliczanie powierzchni oddz.
Obliczanie powierzchni oddziaływaniawarstwa=$1d=$2r=$3max=$4
while [ $d -lt $max ]doecho "$d / $max"d1=$(($d+$r))r.grow input=$warstwa$d output=$warstwa$d1
radius=$rd=$d1done
12
Obliczanie pow. pionowej
Powierzchnia prostopadła do kierunku napływu:
gdzie:h – wysokośc budynkul – długość rzutu budynku w kierunku napływu
Pk=h⋅l
13
Obliczanie pow. pionowej cd.
Powierzchnia prostopadła do kierunku napływu:
r.mapcalc 'Y=round(100*(y()-232617.5))'r.mapcalc 'X=round(100*(x()-553717.5))'r.mapcalc 'XY=round((Y-X)/sqrt(2))'r.mapcalc 'YX=round((Y+X)/sqrt(2))'
14
Obliczanie pow. pionowej cd.
Powierzchnia prostopadła do kierunku napływu:
r.statistics base=bud.clump cover=X method=min output=bud.clump.Xmin
r.statistics base=bud.clump cover=X method=max output=bud.clump.Xmax
......
15
Zestawienie statystyk
Składanie wynikowych plików tekstowych w tabelę statystyk układ wynikowy: clump, H, S_budynku, S_łatki, minX, maxX, minY, maxY, minXY, maxXY, minYX, maxYX
pr -tm J bud.clump.H bud.clump.S bud.clump.grow.S bud.clump.Xmin bud.clump.Xmax bud.clump.Ymin bud.clump.Ymax bud.clump.XYmin bud.clump.XYmax bud.clump.YXmin bud.clump.YXmax | awk '{print $1" "$2" "$4" "$6" "$8" "$10" "$12" "$14" "$16" "$18" "$20" "$22}' > bud.stats
16
Obliczanie Z0 i Z
d
Wyliczanie zd i z0, kład wynikowy: clump,zd,z0
awk '{dX=($6-$5)/100; dY=($8-$7)/100; dXY=($10-$9)/100; dYX=($12-$11)/100; if((dX>0) && (dY>0) && (dXY>0) && (dYX>0) && ($4>0)) {h=$2; lp=$3/$4; zd=h*lp^0.6; lfX=h*dX/$4; z0X=(h-zd)*exp(-sqrt(0.4/lfX)); lfY=h*dY/$4; z0Y=(h-zd)*exp(-sqrt(0.4/lfY)); lfXY=h*dXY/$4; z0XY=(h-zd)*exp(-sqrt(0.4/lfXY)); lfYX=h*dYX/$4; z0YX=(h-zd)*exp(-sqrt(0.4/lfYX)); print $1" "zd" "(z0X+z0Y+z0XY+z0YX)/4;}}' bud.stats >bud.zdz0
17
Obliczanie Z0 i Z
d cd.
Reklasyfikacja
awk '{print $1"="int($2*1000000)}' bud.zdz0 >bud.zd.rules
awk '{print $1"="int($3*1000000)}' bud.zdz0 >bud.z0.rules
r.mapcalc 'bud.grow250.zd=bud.grow250.reclass.zd/1000000.0'
r.mapcalc 'bud.grow250.z0=bud.grow250.reclass.z0/1000000.0'
18
Tereny niezabudowane
Łączenie wynikowej szorstkości w jedną warstwę - dodatkowe wartości zgodnie z klasyfikacja Davenporta (2000):
– woda (pokr=1) - z0=0.0002– zieleń srednia (pokr=3) - z0=0.5– zieleń wysoka (pokr=2) - z0=1.5– budynki (bud_z0) - z0=bud.z0– pozostałe tereny (trawa) - z0=0.01
r.mapcalc 'z0=if(pokr==1,0.0002,if(pokr==3,0.5,if(pokr==2,1.5,if(!isnull(bud.grow250.z0),bud.grow250.z0,0.01))))'
19
Mapa wynikowa Zd
20
Mapa wynikowa Z0
21
Wykorzystane polecenia
System GRASS– r.clump– r.grow– r.mapcalc– r.statistics– r.reclass
System operacyjny– pr– Awk
Potokowanie wynikówbash
22
Dziękuję!