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

Z GeoWikiCZ
Řádek 44: Řádek 44:
  terra_lst_night
  terra_lst_night


Data zobrazíme.
Vybraná data zobrazíme.


<source lang="bash">
<source lang="bash">

Verze z 22. 11. 2009, 16:10

< 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 (lokace nc_spm_08):

  • 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 type=rast mapset=modis2002lst
 g.mlist mapset=modis2002lst | grep '[aqua|terra]' | sed 's/[0-9]//g' | uniq
aqua_lst_day
aqua_lst_night
terra_lst_day
terra_lst_night

Vybraná 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í