153GIS1 - 11. cvičení - GRASS GIS: Porovnání verzí

Z GeoWikiCZ
mBez shrnutí editace
 
(Není zobrazeno 16 mezilehlých verzí od stejného uživatele.)
Řádek 1: Řádek 1:
Stránka obsahuje řešení úloh z [[153GIS1 2008 - 11. cvičení]] v [[GRASS GIS]].
Stránka obsahuje řešení úloh z [[153GIS1 2008 - 11. cvičení]] v [[GRASS GIS]]. Lokace 'gis1' ke stažení [http://josef.fsv.cvut.cz/~landa/vyuka/grass/gis1.tar.gz zde].


Poznámka: Vektorovou vrstvu 'obce' je potřeba před dalším zpracováním vyčistit - viz [[GRASS GIS - Konzistence vektorových dat]].
<div style="float: right">
<div style="float: right">
__TOC__
__TOC__
Řádek 9: Řádek 10:
;Kolik obcí začínající písmenem ‘K’ mělo v roce 2001 přes 5000 obyvatel?
;Kolik obcí začínající písmenem ‘K’ mělo v roce 2001 přes 5000 obyvatel?


{{GrassPrikaz|db.select}} sql="SELECT count(*) FROM obce where OB01 > 5000 AND NAZEV LIKE 'K%'"
{{GrassPrikaz|db.select}}
 
<source lang="bash">
db.select sql="SELECT count(*) FROM obce where OB01 > 5000 AND NAZEV LIKE 'K%'"
</source>


==== 2. ====
==== 2. ====


;Která ORP má největší rozlohu a kolik to je (v km2) ?
;Která ORP má největší rozlohu a kolik to je (v km<sup>2</sup>) ?


{{GrassPrikaz|v.db.addcol}} map=obce columns="area double precision"
{{GrassPrikaz|v.db.addcol}} {{bullet}} {{GrassPrikaz|v.to.db}} {{bullet}} {{GrassPrikaz|db.select}}
{{GrassPrikaz|v.to.db}} map=obce option=area column=area units=kilometer
 
{{GrassPrikaz|db.select}} sql="SELECT NAZORP,sum(AREA) FROM obce GROUP BY NAZORP ORDER BY sum(AREA) DESC LIMIT 1"
<source lang="bash">
v.db.addcol map=obce columns="area double precision"
v.to.db map=obce option=area column=area units=kilometer
db.select sql="SELECT NAZORP,sum(AREA) FROM obce GROUP BY NAZORP ORDER BY sum(AREA) DESC LIMIT 1"
</source>


==== 3. ====
==== 3. ====
Řádek 23: Řádek 32:
;Která ORP obsahuje nejvíc obcí a kolik to je ?
;Která ORP obsahuje nejvíc obcí a kolik to je ?


{{GrassPrikaz|db.select}} sql="SELECT NAZORP,count(*) FROM obce GROUP BY NAZORP ORDER BY count(*) DESC LIMIT 1"
{{GrassPrikaz|db.select}}
 
<source lang="bash">
db.select sql="SELECT NAZORP,count(*) FROM obce GROUP BY NAZORP ORDER BY count(*) DESC LIMIT 1"
</source>


==== 4. ====
==== 4. ====
Řádek 29: Řádek 42:
;Kolik procent území kraje zabírá Brno (na setiny procenta)?
;Kolik procent území kraje zabírá Brno (na setiny procenta)?


{{GrassPrikaz|db.select}} sql="SELECT 100*(area/(SELECT sum(AREA) FROM obce)) FROM obce WHERE NAZEV='Brno'"
{{GrassPrikaz|db.select}}
 
<source lang="bash">
db.select sql="SELECT 100*(area/(SELECT sum(AREA) FROM obce)) FROM obce WHERE NAZEV='Brno'"
</source>


==== 5. ====
==== 5. ====
Řádek 35: Řádek 52:
;Jaká je délka železnic na území Brna (v km) ?
;Jaká je délka železnic na území Brna (v km) ?


{{GrassPrikaz|v.extract}} input=obce output=brno where="NAZEV='Brno'"
{{GrassPrikaz|v.extract}} {{bullet}} {{GrassPrikaz|v.overlay}} {{bullet}} {{GrassPrikaz|v.db.addcol}} {{bullet}} {{GrassPrikaz|v.to.db}} {{bullet}} {{GrassPrikaz|db.select}}
{{GrassPrikaz|v.overlay}} ainput=zelez atype=line binput=brno btype=area output=zelez_brno operator=and
{{GrassPrikaz|v.db.addcol}} map=zelez_brno columns="length double precision"
{{GrassPrikaz|v.to.db}} map=zelez_brno opt=length column=length


<source lang=sql>
<source lang="bash">
SELECT sum(length) FROM zelez_brno
v.extract input=obce output=brno where="NAZEV='Brno'"
v.overlay ainput=zelez atype=line binput=brno btype=area output=zelez_brno operator=and
v.db.addcol map=zelez_brno columns="length double precision"
v.to.db map=zelez_brno opt=length column=length
db.select sql="SELECT sum(length) FROM zelez_brno"
</source>
</source>


Řádek 48: Řádek 66:
;Kolika obcemi prochází železnice ?
;Kolika obcemi prochází železnice ?


{{GrassPrikaz|v.select}} ainput=obce btype=area binput=zelez btype=line out=obce_zelez
{{GrassPrikaz|v.select}} {{bullet}} {{GrassPrikaz|v.info}}
{{GrassPrikaz|v.info}} -t map=obce_zelez | grep centroids
 
<source lang="bash">
v.select ainput=obce btype=area binput=zelez btype=line out=obce_zelez
v.info -t map=obce_zelez | grep centroids
</source>


==== 7. ====
==== 7. ====
Řádek 55: Řádek 77:
;Jaká je výměra území s nákazou (na celé km2) ?
;Jaká je výměra území s nákazou (na celé km2) ?


{{GrassPrikaz|v.db.addtable}} map=nakaza columns="area double precision"
{{GrassPrikaz|v.db.addtable}} {{bullet}} {{GrassPrikaz|v.to.db}} {{bullet}} {{GrassPrikaz|db.select}}
{{GrassPrikaz|v.to.db}} map=nakaza opt=area column=area units=kilometers


<source lang=sql>
<source lang="bash">
select sum(area) FROM nakaza
v.db.addtable map=nakaza columns="area double precision"
v.to.db map=nakaza opt=area column=area units=kilometers
db.select sql="SELECT sum(area) FROM nakaza"
</source>
</source>


Řádek 66: Řádek 89:
;Kolik obcí nákaza zasáhla ?
;Kolik obcí nákaza zasáhla ?


{{GrassPrikaz|v.select}} ainput=obce atype=area binput=nakaza btype=area output=obce_nakaza
{{GrassPrikaz|v.select}} {{bullet}} {{GrassPrikaz|v.info}}
{{GrassPrikaz|v.info}} -t map=obce_nakaza | grep centroids
 
<source lang="bash">
v.select ainput=obce atype=area binput=nakaza btype=area output=obce_nakaza
v.info -t map=obce_nakaza | grep centroids
</source>


==== 9. ====
==== 9. ====
Řádek 73: Řádek 100:
;Kolik chovných stanic nákaza zasáhla ?
;Kolik chovných stanic nákaza zasáhla ?


cat stanice.csv | grep -E '^[0-9]' | awk -F',' '{print $1,"-"$2,"-"$3}' | {{GrassPrikaz|v.in.ascii}} out=stanice x=2 y=3 cat=1 fs=' '
{{GrassPrikaz|v.in.ascii}} {{bullet}} {{GrassPrikaz|db.select}} {{bullet}} {{GrassPrikaz|v.info}}
{{GrassPrikaz|v.select}} ainput=stanice atype=point binput=nakaza btype=area out=stanice_nakaza
 
{{GrassPrikaz|v.info}} -t map=stanice_nakaza | grep points
<source lang="bash">
cat stanice.csv | grep -E '^[0-9]' | awk -F',' '{print $1,"-"$2,"-"$3}' | v.in.ascii out=stanice x=2 y=3 cat=1 fs=' '
v.select ainput=stanice atype=point binput=nakaza btype=area out=stanice_nakaza
v.info -t map=stanice_nakaza | grep points
</source>


==== 10. ====
==== 10. ====
Řádek 81: Řádek 112:
;Kolik chovných stanic je dál než 5 km od nejbližší železnice ?
;Kolik chovných stanic je dál než 5 km od nejbližší železnice ?


{{GrassPrikaz|v.db.addtable}} map=stanice columns="zelez_dist double precision"
{{GrassPrikaz|v.db.addtable}} {{bullet}} {{GrassPrikaz|v.distance}} {{bullet}} {{GrassPrikaz|db.select}}
{{GrassPrikaz|v.distance}} from=stanice from_type=point to=zelez to_type=line upload=dist column=zelez_dist
 
{{GrassPrikaz|db.select}} sql="SELECT count(*) FROM stanice WHERE zelez_dist > 5000"
<source lang="bash">
v.db.addtable map=stanice columns="zelez_dist double precision"
v.distance from=stanice from_type=point to=zelez to_type=line upload=dist column=zelez_dist
db.select sql="SELECT count(*) FROM stanice WHERE zelez_dist > 5000"
</source>


==== 11. ====
==== 11. ====


;Na které parcele (číslo podle WMS ČÚZK) leží bod o souř. (1160000, 600000) ?
;Na které parcele (číslo podle WMS ČÚZK) leží bod o souř. (1160000, 600000) ?
{{GrassPrikaz|v.in.ascii}} {{bullet}} {{GrassPrikaz|g.region}} {{bullet}} {{GrassPrikaz|r.in.wms}}
<source lang="bash">
echo "-600000|-1160000" | v.in.ascii output=bod
g.region vect=bod n=n+500 s=s-500 w=w-500 e=e+500
r.in.wms mapserver=http://wms.cuzk.cz/wms.asp layer=RST_DKM out=dkm
</source>


{{GIS}}
{{GIS}}
{{GFOSS}}
{{GRASS}}

Aktuální verze z 31. 7. 2010, 08:47

Stránka obsahuje řešení úloh z 153GIS1 2008 - 11. cvičení v GRASS GIS. Lokace 'gis1' ke stažení zde.

Poznámka: Vektorovou vrstvu 'obce' je potřeba před dalším zpracováním vyčistit - viz GRASS GIS - Konzistence vektorových dat.

1.

Kolik obcí začínající písmenem ‘K’ mělo v roce 2001 přes 5000 obyvatel?

db.select

db.select sql="SELECT count(*) FROM obce where OB01 > 5000 AND NAZEV LIKE 'K%'"

2.

Která ORP má největší rozlohu a kolik to je (v km2) ?

v.db.addcolv.to.dbdb.select

v.db.addcol map=obce columns="area double precision"
v.to.db map=obce option=area column=area units=kilometer
db.select sql="SELECT NAZORP,sum(AREA) FROM obce GROUP BY NAZORP ORDER BY sum(AREA) DESC LIMIT 1"

3.

Která ORP obsahuje nejvíc obcí a kolik to je ?

db.select

db.select sql="SELECT NAZORP,count(*) FROM obce GROUP BY NAZORP ORDER BY count(*) DESC LIMIT 1"

4.

Kolik procent území kraje zabírá Brno (na setiny procenta)?

db.select

db.select sql="SELECT 100*(area/(SELECT sum(AREA) FROM obce)) FROM obce WHERE NAZEV='Brno'"

5.

Jaká je délka železnic na území Brna (v km) ?

v.extractv.overlayv.db.addcolv.to.dbdb.select

v.extract input=obce output=brno where="NAZEV='Brno'"
v.overlay ainput=zelez atype=line binput=brno btype=area output=zelez_brno operator=and
v.db.addcol map=zelez_brno columns="length double precision"
v.to.db map=zelez_brno opt=length column=length
db.select sql="SELECT sum(length) FROM zelez_brno"

6.

Kolika obcemi prochází železnice ?

v.selectv.info

v.select ainput=obce btype=area binput=zelez btype=line out=obce_zelez
v.info -t map=obce_zelez | grep centroids

7.

Jaká je výměra území s nákazou (na celé km2) ?

v.db.addtablev.to.dbdb.select

v.db.addtable map=nakaza columns="area double precision"
v.to.db map=nakaza opt=area column=area units=kilometers
db.select sql="SELECT sum(area) FROM nakaza"

8.

Kolik obcí nákaza zasáhla ?

v.selectv.info

v.select ainput=obce atype=area binput=nakaza btype=area output=obce_nakaza
v.info -t map=obce_nakaza | grep centroids

9.

Kolik chovných stanic nákaza zasáhla ?

v.in.asciidb.selectv.info

cat stanice.csv | grep -E '^[0-9]' | awk -F',' '{print $1,"-"$2,"-"$3}' | v.in.ascii out=stanice x=2 y=3 cat=1 fs=' '
v.select ainput=stanice atype=point binput=nakaza btype=area out=stanice_nakaza
v.info -t map=stanice_nakaza | grep points

10.

Kolik chovných stanic je dál než 5 km od nejbližší železnice ?

v.db.addtablev.distancedb.select

v.db.addtable map=stanice columns="zelez_dist double precision"
v.distance from=stanice from_type=point to=zelez to_type=line upload=dist column=zelez_dist
db.select sql="SELECT count(*) FROM stanice WHERE zelez_dist > 5000"

11.

Na které parcele (číslo podle WMS ČÚZK) leží bod o souř. (1160000, 600000) ?

v.in.asciig.regionr.in.wms

echo "-600000|-1160000" | v.in.ascii output=bod
g.region vect=bod n=n+500 s=s-500 w=w-500 e=e+500
r.in.wms mapserver=http://wms.cuzk.cz/wms.asp layer=RST_DKM out=dkm