153ZODH / 12. cvičení: Porovnání verzí

Z GeoWikiCZ
m (source)
Řádek 31: Řádek 31:
Nejprve přidáme mapset obsahující data MODIS do vyhledávací cesty.
Nejprve přidáme mapset obsahující data MODIS do vyhledávací cesty.


<source lang="bash">
  g.mapsets add=modis2002lst
  g.mapsets add=modis2002lst
  g.list rast mapset=modis2002lst
  g.list rast mapset=modis2002lst
</source>


Data zobrazíme.
Data zobrazíme.


<source lang="bash">
  # noc, 22:30h, teplota ve stupních Celsia
  # noc, 22:30h, teplota ve stupních Celsia
  g.region rast=terra_lst_night20020921
  g.region rast=terra_lst_night20020921
Řádek 42: Řádek 45:
  d.vect map=us_natlas_urban type=boundary color=brown
  d.vect map=us_natlas_urban type=boundary color=brown
  d.vect map=us_natlas_urban display=attr attrcol=NAME type=centroid where="AREA >= 0.002" lsize=12
  d.vect map=us_natlas_urban display=attr attrcol=NAME type=centroid where="AREA >= 0.002" lsize=12
</source>


[[Image:ZOD-cv12-terra-first.png|frame|center|Obr. č.1: Teplota povrchu - 21.09.02, noc 22:30h, terra_lst_night20020921 (bílá místa představují odfiltrované mraky)]]
[[Image:ZOD-cv12-terra-first.png|frame|center|Obr. č.1: Teplota povrchu - 21.09.02, noc 22:30h, terra_lst_night20020921 (bílá místa představují odfiltrované mraky)]]


<source lang="bash">
  # den, 10:30h
  # den, 10:30h
  d.rast.leg map=terra_lst_night20020922
  d.rast.leg map=terra_lst_night20020922
Řádek 50: Řádek 55:
  d.vect map=us_natlas_urban type=boundary color=brown
  d.vect map=us_natlas_urban type=boundary color=brown
  d.vect map=us_natlas_urban display=attr attrcol=NAME type=centroid where="AREA >= 0.002" lsize=12
  d.vect map=us_natlas_urban display=attr attrcol=NAME type=centroid where="AREA >= 0.002" lsize=12
</source>


[[Image:ZOD-cv12-terra-second.png|frame|center|Obr. č.2: Teplota povrhu - 22.09.02, noc 22:30h, terra_lst_night20020922]]
[[Image:ZOD-cv12-terra-second.png|frame|center|Obr. č.2: Teplota povrhu - 22.09.02, noc 22:30h, terra_lst_night20020922]]
Řádek 55: Řádek 61:
Rozdíl LST za 1 den vypočteme pomocí {{GrassPrikaz|r.mapcalc}}.
Rozdíl LST za 1 den vypočteme pomocí {{GrassPrikaz|r.mapcalc}}.


<source lang="bash">
  r.mapcalc "diff_den_noc = terra_lst_day20020922 - terra_lst_day20020921"
  r.mapcalc "diff_den_noc = terra_lst_day20020922 - terra_lst_day20020921"
  d.rast.leg map=diff_den
  d.rast.leg map=diff_den
Řádek 60: Řádek 67:
  d.vect map=us_natlas_urban type=boundary color=brown
  d.vect map=us_natlas_urban type=boundary color=brown
  d.vect map=us_natlas_urban display=attr attrcol=NAME type=centroid where="AREA >= 0.002" lsize=12
  d.vect map=us_natlas_urban display=attr attrcol=NAME type=centroid where="AREA >= 0.002" lsize=12
</source>


[[Image:ZOD-cv12-terra-diff.png|frame|center|Obr. č.3: Rozdíl teplot povrchu za 1 den]]
[[Image:ZOD-cv12-terra-diff.png|frame|center|Obr. č.3: Rozdíl teplot povrchu za 1 den]]
Řádek 71: Řádek 79:
Vypočteme denní LST průměry pro září 2002, modul {{GrassPrikaz|r.series}}.
Vypočteme denní LST průměry pro září 2002, modul {{GrassPrikaz|r.series}}.


<source lang="bash">
  for d in `seq 1 30` ; do
  for d in `seq 1 30` ; do
   DAY=`echo $d | awk '{printf "%02d\n", $1}'`
   DAY=`echo $d | awk '{printf "%02d\n", $1}'`
Řádek 82: Řádek 91:
   sleep 1
   sleep 1
  done
  done
</source>


V důsledku NULL hodnot ve vstupních datech některé výstupní vrstvy obsahují částečně nebo zcela hodnoty NULL. Odstranění tohoto efektu by vyžadovalo komplexní rekonstrukci časové řady.
V důsledku NULL hodnot ve vstupních datech některé výstupní vrstvy obsahují částečně nebo zcela hodnoty NULL. Odstranění tohoto efektu by vyžadovalo komplexní rekonstrukci časové řady.
Řádek 87: Řádek 97:
Podobně vytvoříme vrstvu průměrné LST za měsíc září 2002.
Podobně vytvoříme vrstvu průměrné LST za měsíc září 2002.


<source lang="bash">
  LIST=`g.mlist type=rast pattern="*lst*200209*" sep=","`
  LIST=`g.mlist type=rast pattern="*lst*200209*" sep=","`
  echo "$LIST"
  echo "$LIST"
  r.series input=$LIST output=lst_200209_avg method=average
  r.series input=$LIST output=lst_200209_avg method=average
  r.colors map=lst_200209_avg color=gyr
  r.colors map=lst_200209_avg color=gyr
</source>


[[Image:ZOD-cv12-prumerna-teplota-zari.png|frame|center|Obr č.4: Průměrná teplota povrchu září 2002]]
[[Image:ZOD-cv12-prumerna-teplota-zari.png|frame|center|Obr č.4: Průměrná teplota povrchu září 2002]]
Řádek 96: Řádek 108:
Určíme počet validních pixelů (not NULL) v časové řadě.
Určíme počet validních pixelů (not NULL) v časové řadě.


<source lang="bash">
  r.series input=$LIST output=lst_200209_avg_count method=count
  r.series input=$LIST output=lst_200209_avg_count method=count
  r.colors map=lst_200209_avg_count color=gyr
  r.colors map=lst_200209_avg_count color=gyr
Řádek 103: Řádek 116:
  d.vect map=us_natlas_urban type=boundary color=brown
  d.vect map=us_natlas_urban type=boundary color=brown
  d.vect map=us_natlas_urban diplay=attr attrcol=NANE type=centroid where="AREA >= 0.002" lsize=12
  d.vect map=us_natlas_urban diplay=attr attrcol=NANE type=centroid where="AREA >= 0.002" lsize=12
</source>


[[Image:ZOD-cv12-prumerna-teplota-zari-pocet.png|frame|center|Obr č.5: Počet validních pixelů (not NULL)]]
[[Image:ZOD-cv12-prumerna-teplota-zari-pocet.png|frame|center|Obr č.5: Počet validních pixelů (not NULL)]]
Řádek 108: Řádek 122:
Na základě počtu validních pixelu nastavíme filtr.
Na základě počtu validních pixelu nastavíme filtr.


<source lang="bash">
  r.mapcalc "lst_200209_avg_filt = if(lst_200209_avg_count > 5, lst_200209_avg, null())"
  r.mapcalc "lst_200209_avg_filt = if(lst_200209_avg_count > 5, lst_200209_avg, null())"


Řádek 114: Řádek 129:
  d.vect map=us_natlas_urban type=boundary color=brown
  d.vect map=us_natlas_urban type=boundary color=brown
  d.vect map=us_natlas_urban diplay=attr attrcol=NANE type=centroid where="AREA >= 0.002" lsize=12
  d.vect map=us_natlas_urban diplay=attr attrcol=NANE type=centroid where="AREA >= 0.002" lsize=12
</source>


[[Image:ZOD-cv12-prumerna-teplota-zari-filtr.png|frame|center|Obr č.6: Průměrná teplota povrchu září 2002 (odfiltrovány místa s nízkým počtem validních pixelů]]
[[Image:ZOD-cv12-prumerna-teplota-zari-filtr.png|frame|center|Obr č.6: Průměrná teplota povrchu září 2002 (odfiltrovány místa s nízkým počtem validních pixelů]]

Verze z 19. 11. 2009, 10:54

< Stránky předmětuPředchozí cvičení

Multitemporální analýza

Osnova

Komplexní analýzy obrazových dat jsou založeny na monitorování zemského povrchu a atmosféry v různých prostorových rozlišeních a časových intervalech. Zaměříme se na analýzu časové řady dat MODIS (Moderate Resolution Imaging Spectroradiometer, satelit Terra a Aqua NASA).

Seznam příkazů

Multitemporální analýza

K dispozici jsou následující data:

  • Aqua (nosič, čas přeletu 1:30h)
  • Terra (10:30h)
  • Aqua (13:30h)
  • Terra (22:30h)

Nejprve přidáme mapset obsahující data MODIS do vyhledávací cesty.

 g.mapsets add=modis2002lst
 g.list rast mapset=modis2002lst

Data zobrazíme.

 # noc, 22:30h, teplota ve stupních Celsia
 g.region rast=terra_lst_night20020921
 d.rast.leg map=terra_lst_night20020921
 d.vect map=us_natlas_hydrogp type=boundary color=blue
 d.vect map=us_natlas_urban type=boundary color=brown
 d.vect map=us_natlas_urban display=attr attrcol=NAME type=centroid where="AREA >= 0.002" lsize=12
Obr. č.1: Teplota povrchu - 21.09.02, noc 22:30h, terra_lst_night20020921 (bílá místa představují odfiltrované mraky)
 # den, 10:30h
 d.rast.leg map=terra_lst_night20020922
 d.vect map=us_natlas_hydrogp type=boundary color=blue
 d.vect map=us_natlas_urban type=boundary color=brown
 d.vect map=us_natlas_urban display=attr attrcol=NAME type=centroid where="AREA >= 0.002" lsize=12
Obr. č.2: Teplota povrhu - 22.09.02, noc 22:30h, terra_lst_night20020922

Rozdíl LST za 1 den vypočteme pomocí r.mapcalc.

 r.mapcalc "diff_den_noc = terra_lst_day20020922 - terra_lst_day20020921"
 d.rast.leg map=diff_den
 d.vect map=us_natlas_hydrogp type=boundary color=blue
 d.vect map=us_natlas_urban type=boundary color=brown
 d.vect map=us_natlas_urban display=attr attrcol=NAME type=centroid where="AREA >= 0.002" lsize=12
Obr. č.3: Rozdíl teplot povrchu za 1 den

Závěr: Na rozdíl od zastavěných ploch se teplotně stabilní jeví vodní plochy.

Indikátory časových řad

Data jsou již předzpracována - digitální hodnoty odpovídající teplotě mraků byly odfiltrovány. Během výpočtu se hodnoty NULL mohou výrazněji promítnout do výsledku, např. při určování průměrné teploty povrchu.

Vypočteme denní LST průměry pro září 2002, modul r.series.

 for d in `seq 1 30` ; do
  DAY=`echo $d | awk '{printf "%02d\n", $1}'`
  LIST=`g.mlist type=rast pattern="*lst*200209${DAY}" separator=","`
  echo "$LIST"
  r.series -n input=$LIST output=lst_200209${DAY}_avg method=average
  d.rast.leg map=lst_200209${DAY}_avg
  d.vect map=us_natlas_hydrogp type=boundary color=blue
  d.vect map=us_natlas_urban type=boundary color=brown
  d.vect map=us_natlas_urban display=attr attrcol=NAME type=centroid where="AREA >= 0.002" lsize=12
  sleep 1
 done

V důsledku NULL hodnot ve vstupních datech některé výstupní vrstvy obsahují částečně nebo zcela hodnoty NULL. Odstranění tohoto efektu by vyžadovalo komplexní rekonstrukci časové řady.

Podobně vytvoříme vrstvu průměrné LST za měsíc září 2002.

 LIST=`g.mlist type=rast pattern="*lst*200209*" sep=","`
 echo "$LIST"
 r.series input=$LIST output=lst_200209_avg method=average
 r.colors map=lst_200209_avg color=gyr
Obr č.4: Průměrná teplota povrchu září 2002

Určíme počet validních pixelů (not NULL) v časové řadě.

 r.series input=$LIST output=lst_200209_avg_count method=count
 r.colors map=lst_200209_avg_count color=gyr

 d.rast.leg map=lst_200209_avg_count
 d.vect map=us_natlas_hydrogp type=boundary color=blue
 d.vect map=us_natlas_urban type=boundary color=brown
 d.vect map=us_natlas_urban diplay=attr attrcol=NANE type=centroid where="AREA >= 0.002" lsize=12
Obr č.5: Počet validních pixelů (not NULL)

Na základě počtu validních pixelu nastavíme filtr.

 r.mapcalc "lst_200209_avg_filt = if(lst_200209_avg_count > 5, lst_200209_avg, null())"

 d.rast.leg map=lst_200209_avg_filt
 d.vect map=us_natlas_hydrogp type=boundary color=blue
 d.vect map=us_natlas_urban type=boundary color=brown
 d.vect map=us_natlas_urban diplay=attr attrcol=NANE type=centroid where="AREA >= 0.002" lsize=12
Obr č.6: Průměrná teplota povrchu září 2002 (odfiltrovány místa s nízkým počtem validních pixelů

Zastavěné plochy přirozeně vykazují vyšší průměrnou teplotu v porovnání např. s vodními plochami.



< Stránky předmětuPředchozí cvičení