Correção atmosférica: Difference between revisions

From GRASS-Wiki
Jump to navigation Jump to search
(Created page with "{{Trans|Português do Brasil|English}} See also the LANDSAT wiki page. '''Aim of this tutorial:''' * Transforming a Landsat ETM+ image from DN values to radiance values...")
 
(→‎Introdução: Pequena correção ortográfica)
 
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Trans|Português do Brasil|English}}
{{Trans|Português do Brasil|English}}


See also the [[LANDSAT]] wiki page.
Veja também a página wiki do [[LANDSAT]].


'''Aim of this tutorial:'''
'''Objetivo desse tutorial:'''


* Transforming a Landsat ETM+ image from DN values to radiance values
* Transformar os valores de nível de cinza (DN) de um imagem Landsat ETM+ para valores de radiância
* Conducting an atmospheric correction of a Landsat image using the {{cmd|i.atcorr}} module in GRASS GIS
* Realizar a correção atmosférica de uma imagem Landsat utilizando o módulo {{cmd|i.atcorr}} no GRASS GIS


== Introduction ==
== Introdução ==


The standard steps for processing satellite images are:
Os principais passos para o processamento de imagens de satélite são:


# Convert DN (digital number = pixel values) to ''Radiance at TOA'' (see formula below or use {{cmd|i.landsat.toar|version=65}}). {{cmd|i.landsat.toar|version=65}} supports all Landsat versions from MSS to TM to ETM+.
# Converter o valor de nível de cinza (DN - digital number = valor do pixel) para valor de radiância no topo da atmosfera (veja a fórmula abaixo ou use {{cmd|i.landsat.toar}}). {{cmd|i.landsat.toar}} suporta todas as versões do Landsat, desde MSS, até TM e ETM+.
# Perform atmospheric correction (which converts Radiance at TOA -> ''Reflectance at surface''): done by {{cmd|i.atcorr}}.
# Executar a correção atmosférica (a qual converte o valor da radiância no topo da atmosfera para o valor de radiância na superfície): realizado através de {{cmd|i.atcorr}}.


''Note:'' Remember, to check if water areas are > 0, since reflectance is always positive. If negative, you have a "cornichon" (pickle in English ;-0). Means the transform equation inputs are not belong to image processed.
''Nota:'' Lembre de verificar se as áreas cobertas com água possuem valor de nível de reflectância > 0, uma vez que a reflectância é sempre positiva. Se negativa, você tem um pepino a resolver! Valores negativos de reflectância indicam que as entradas da equação de transformação não pertencem à imagem processada.


== Requirements ==
== Requerimentos ==


* GRASS 6.4.0 or higher
* GRASS 6.4.0 ou superior
* North Carolina sample dataset (location): http://grass.osgeo.org/download/data.php
* Amostra de dados da Carolina do Norte - EUA (localização): http://grass.osgeo.org/download/data.php


After downloading of the North Carolina dataset, it must be unzipped into your GIS database. When starting GRASS GIS, select this GIS database, open the ‘nc_spm_08’ dataset as LOCATION, and ‘PERMANENT’ as MAPSET.  
Depois de baixar a amostra de dados da Carolina do Norte, descompacte a mesma e leve-a para dentro do seu banco de dados (''GIS database''). Quando abrir o GRASS GIS, selecione o banco de dados, abra o conjunto de dados ‘nc_spm_08’ como LOCATION, e ‘PERMANENT’ como MAPSET.


== Calculating radiance values ==
== Cálculo dos valores de radiância ==


The NC data set mapset contains, amongst others, a Landsat ETM+ image of 24th of May 2002. Every pixel of this image contains a DN or grey value. In order to be able to make calculations with satellite imagery, or compare values amongst different sensors, these values have to be converted to radiances or reflectances. The formulas to do this conversion are described here for Landsat images (or use [[GRASS_AddOns#i.landsat.toar|i.landsat.toar]]).
A amostra de dados da Carolina do Norte - EUA possui, entre outras coisas, uma imagem Landsat ETM+ do dia 24 de maio de 2002. Cada pixel dessa imagem contém um valor de nível de cinza (''DN - digital number''). Para que seja possível utilizar a imagem de satélite para a realização de cálculos, ou comparar valores entre diferentes sensores, esses valores de nível de cinza precisam ser convertidos para valores de radiância ou reflectância. As fórmulas usadas para fazer essa conversão estão descritas aqui para imagens Landsat (ou utilize {{cmd|i.landsat.toar}}).
The conversion from DN values to top-of-atmosphere radiances is done as follows:
A conversão de valor de nível de cinza para radiância no topo da atmosfera é realizada da seguinte maneira:


<!-- why doesn't TeX markup work??
<!-- why doesn't TeX markup work??
Line 36: Line 36:
  Lλ = ((LMAXλ - LMINλ)/(QCALMAX-QCALMIN)) * (QCAL-QCALMIN) + LMINλ
  Lλ = ((LMAXλ - LMINλ)/(QCALMAX-QCALMIN)) * (QCAL-QCALMIN) + LMINλ


Where:
Onde:


* Lλ - spectral Radiance at the sensor's aperture in watts/(meter squared * ster * μm), the apparent radiance as seen by the satellite sensor;
* Lλ - radiância espectral na abertura do sensor em watts/(metro quadrado * ster * μm), a radiação aparente tal como é vista pelo sensor do satélite;
* QCAL - the quantized calibrated pixel value in DN;
* QCAL - o valor quantizado calibrado de um pixel em nível de cinza;
* LMINλ - the spectral radiance that is scaled to QCALMIN in watts/(meter squared * ster * μm);
* LMINλ - a radiância espectral que é dimensionada para QCALMIN em watts/(metro quadrado * ster * μm);
* LMAXλ - the spectral radiance that is scaled to QCALMAX in watts/(meter squared * ster * μm);
* LMAXλ - a radiância espectral que é dimensionada para QCALMAX em watts/(metro quadrado * ster * μm);
* QCALMIN - the minimum quantized calibrated pixel value (corresponding to LMINλ) in DN;
* QCALMIN - o valor mínimo quantizado calibrado de um pixel (correspondente à LMINλ) em nível de cinza;
* QCALMAX - the maximum quantized calibrated pixel value (corresponding to LMAXλ) in DN=255.
* QCALMAX - o valor máximo quantizado calibrado de um pixel (correspondente à LMAXλ) em nível de cinza igual a 255.


LMINλ and LMAXλ are the radiances related to the minimal and maximal DN value, and are reported in the metadata file for each image, or in the table 1. High gain or low gain is also reported in the metadata file of each Landsat image. The minimal DN value (QCALMIN) is 1 for Landsat ETM+ images (1), and the maximal DN value (QCALMAX) is 255. QCAL is the DN value for every separate pixel in the Landsat image.  
LMINλ e LMAXλ são os valores de radiância correspondentes aos valores mínimo e máximo de nível de cinza, e são apresentados no arquivo de metadados para cada imagem, ou na tabela 1. As informações sobre elevado ganho (''high gain'') ou baixo ganho (''low gain'') também são apresentadas no arquivo de metadados para cada imagem Landsat. O menor valor de nível de cinza (QCALMIN) é igual a 1 para imagens Landsat ETM+ (1), e o valor máximo de nível de cinza (QCALMAX) é igual a 255. QCAL é o valor de nível de cinza para cada pixel individual na imagem Landsat.


Accessing the metadata:
Acesso aos metadados:


  {{cmd|r.info}} lsat7_2002_xx
  {{cmd|r.info}} lsat7_2002_xx


Under ‘comments’, the maximal and minimal radiance (LMAX and LMIN) for each band are given.  
Na opção ‘comments’, os valores máximo e mínimo de radiância (LMAX e LMIN) para cada banda são fornecidos.  


Power users may use this for nicely readable output (example for channel 1):
Também é possível usar o comando abaixo (''Power users'') para uma saída mais legível (exemplo para o canal 1):


  CHAN=1
  CHAN=1
  {{cmd|r.info}} lsat7_2002_${CHAN}0 -h | tr '\n' ' '  | sed 's+ ++g' | tr ':' '\n' | grep "LMIN_BAND${CHAN}\|LMAX_BAND${CHAN}"
  {{cmd|r.info}} lsat7_2002_${CHAN}0 -h | tr '\n' ' '  | sed 's+ ++g' | tr ':' '\n' | grep "LMIN_BAND${CHAN}\|LMAX_BAND${CHAN}"


Conversion to radiance (this calculation is done for band 1, for the other bands, the numbers in italics need to be replaced with their correct values):
Conversão para radiância (o procedimento descrito abaixo é para a banda 1; para as demanis bandas, os números em itálico precisam ser substituídos pelos valores corretos):


  {{cmd|g.region}} rast=lsat7_2002_10 -p
  {{cmd|g.region}} rast=lsat7_2002_10 -p
  {{cmd|r.mapcalc}} "lsat7_2002_10_rad=((''191.6'' - (''-6.2'')) / (255.0 - 1.0)) * (lsat7_2002_10 - 1.0) + (''-6.2'')"
  {{cmd|r.mapcalc}} "lsat7_2002_10_rad=((''191.6'' - (''-6.2'')) / (255.0 - 1.0)) * (lsat7_2002_10 - 1.0) + (''-6.2'')"


For faster computations, use an integer DEM:
Para processamento mais rápido, utilize um modelo digital de elevação com o valores inteiros:


  {{cmd|r.mapcalc}} "elev_int = round(elevation)"
{{cmd|r.mapcalc}} "elev_int = round(elevation)"


Find mean elevation to initialize computations (needed in 'icnd' file below)
Encontre o valor médio de elevação para iniciar o processamento (necessário no arquivo 'icnd' abaixo)


  {{cmd|r.univar}} elev_int
  {{cmd|r.univar}} elev_int


== Estimating the overpass time from the sun position ==
== Estimativa do horário de passagem a partir da posição do solo ==


The satellite overpass time can be estimated rather precisely from the sun position reported in metadata using {{cmd|r.sunmask}}:
O horário de passagem do satélite pode ser estimado com bastante precisão a partir da posição do sol apresentada nos metadados utilizando {{cmd|r.sunmask}}. Os [ftp://ftp.glcf.umiacs.umd.edu/glcf/Landsat/WRS2/p016/r035/p016r035_7x20020524.ETM-EarthSat-Orthorectified/p016r035_7x20020524.met metadados] desse exemplo são: SUN_AZIMUTH = 120,8810347; SUN_ELEVATION = 64,7730999.
The [ftp://ftp.glcf.umiacs.umd.edu/glcf/Landsat/WRS2/p016/r035/p016r035_7x20020524.ETM-EarthSat-Orthorectified/p016r035_7x20020524.met metadata] of this example report: SUN_AZIMUTH = 120.8810347, SUN_ELEVATION = 64.7730999


# iteratively change hour and minutes to obtain a good result, timezone needs to be correct of course:
Mude as horas (''hour'') e minutos (''min'') iterativamente para obter bons resultados; obviamente, o fuso horário (''timezone'') precisa estar correto:
  {{cmd|r.sunmask}} -s elev=elevation out=dummy year=2002 month=5 day=24 hour=10 min=42 sec=7 timezone=-5
  {{cmd|r.sunmask}} -s elev=elevation out=dummy year=2002 month=5 day=24 hour=10 min=42 sec=7 timezone=-5


Reports: sun azimuth: 121.342461, sun angle above horz.(refraction corrected): 65.396652
Relatório: azimute solar = 121,342461; ângulo solar acima do horizonte (corrigido para a refração) = 65,396652.


The resulting overpass local time 10:42:07 corresponds to 15:42 in GMT which corresponds to 15.67 in decimal GMT hours (decimal minutes: 42 * 100 / 60). This value is needed for the control file.
A hora de passagem local resultante 10:42:07 corresponde a 15:42 em GMT, que corresponde a 15,67 em horas GMT decimais (minuto decimal: 42 * 100 / 60). Esse valor é necessário para o arquivo de controle.


== Atmospheric correction ==
== Correção atmosférica ==


This radiance image can be used for the atmospheric correction with the '''6S algorithm'''. The algorithm will transform the top-of-the-atmosphere radiance values to top-of-canopy reflectance values using predefined information on the aerosol content and atmospheric composition of the time the image was taken. What follows describes the method to use this algorithm in GRASS GIS. Again, only the calculations for band 1 are shown, and the numbers to be changed for the other bands are indicated in red. The 'icnd_lsat1.txt' control file consists of the following parameters, and is written with a text editor:
This radiance image can be used for the atmospheric correction with the '''6S algorithm'''. The algorithm will transform the top-of-the-atmosphere radiance values to top-of-canopy reflectance values using predefined information on the aerosol content and atmospheric composition of the time the image was taken. What follows describes the method to use this algorithm in GRASS GIS. Again, only the calculations for band 1 are shown, and the numbers to be changed for the other bands are indicated in red. The 'icnd_lsat1.txt' control file consists of the following parameters, and is written with a text editor:
Line 113: Line 112:
More information on the use of {{cmd|i.atcorr}} for other images can be found in the {{cmd|i.atcorr}} manual.
More information on the use of {{cmd|i.atcorr}} for other images can be found in the {{cmd|i.atcorr}} manual.


== References ==
== Referências ==


* [http://6s.ltdri.org 6S Web site]
* [http://6s.ltdri.org 6S Web site]
Line 122: Line 121:
*  Song, C., Woodcock, C.E., Seto, K.C., Lenney, M.P., Macomber, S.A., 2001. Classification and Change Detection Using Landsat TM Data: When and How to Correct Atmospheric Effects? Remote Sensing of Environment 75, 230-244. [http://www.unc.edu/courses/2008spring/geog/577/001/www/Song01_RSE.pdf PDF]
*  Song, C., Woodcock, C.E., Seto, K.C., Lenney, M.P., Macomber, S.A., 2001. Classification and Change Detection Using Landsat TM Data: When and How to Correct Atmospheric Effects? Remote Sensing of Environment 75, 230-244. [http://www.unc.edu/courses/2008spring/geog/577/001/www/Song01_RSE.pdf PDF]


How to add new sensors to i.atcorr:
Como adicionar novos sensores ao i.atcorr:
* see http://trac.osgeo.org/grass/browser/grass/trunk/imagery/i.atcorr/README
* veja http://trac.osgeo.org/grass/browser/grass/trunk/imagery/i.atcorr/README


[[Category: Documentation]]
[[Category: Documentação]]
[[Category: Tutorial]]
[[Category: Tutoriais]]
[[Category: Image processing]]
[[Category: Processamento de imagens]]
[[Category:Languages/pt-br]]
[[Category: Languages/pt-br]]

Latest revision as of 18:34, 28 November 2013

This page is in progress of translating to Português do Brasil from English.


Veja também a página wiki do LANDSAT.

Objetivo desse tutorial:

  • Transformar os valores de nível de cinza (DN) de um imagem Landsat ETM+ para valores de radiância
  • Realizar a correção atmosférica de uma imagem Landsat utilizando o módulo i.atcorr no GRASS GIS

Introdução

Os principais passos para o processamento de imagens de satélite são:

  1. Converter o valor de nível de cinza (DN - digital number = valor do pixel) para valor de radiância no topo da atmosfera (veja a fórmula abaixo ou use i.landsat.toar). i.landsat.toar suporta todas as versões do Landsat, desde MSS, até TM e ETM+.
  2. Executar a correção atmosférica (a qual converte o valor da radiância no topo da atmosfera para o valor de radiância na superfície): realizado através de i.atcorr.

Nota: Lembre de verificar se as áreas cobertas com água possuem valor de nível de reflectância > 0, uma vez que a reflectância é sempre positiva. Se negativa, você tem um pepino a resolver! Valores negativos de reflectância indicam que as entradas da equação de transformação não pertencem à imagem processada.

Requerimentos

Depois de baixar a amostra de dados da Carolina do Norte, descompacte a mesma e leve-a para dentro do seu banco de dados (GIS database). Quando abrir o GRASS GIS, selecione o banco de dados, abra o conjunto de dados ‘nc_spm_08’ como LOCATION, e ‘PERMANENT’ como MAPSET.

Cálculo dos valores de radiância

A amostra de dados da Carolina do Norte - EUA possui, entre outras coisas, uma imagem Landsat ETM+ do dia 24 de maio de 2002. Cada pixel dessa imagem contém um valor de nível de cinza (DN - digital number). Para que seja possível utilizar a imagem de satélite para a realização de cálculos, ou comparar valores entre diferentes sensores, esses valores de nível de cinza precisam ser convertidos para valores de radiância ou reflectância. As fórmulas usadas para fazer essa conversão estão descritas aqui para imagens Landsat (ou utilize i.landsat.toar). A conversão de valor de nível de cinza para radiância no topo da atmosfera é realizada da seguinte maneira:

Lλ = ((LMAXλ - LMINλ)/(QCALMAX-QCALMIN)) * (QCAL-QCALMIN) + LMINλ

Onde:

  • Lλ - radiância espectral na abertura do sensor em watts/(metro quadrado * ster * μm), a radiação aparente tal como é vista pelo sensor do satélite;
  • QCAL - o valor quantizado calibrado de um pixel em nível de cinza;
  • LMINλ - a radiância espectral que é dimensionada para QCALMIN em watts/(metro quadrado * ster * μm);
  • LMAXλ - a radiância espectral que é dimensionada para QCALMAX em watts/(metro quadrado * ster * μm);
  • QCALMIN - o valor mínimo quantizado calibrado de um pixel (correspondente à LMINλ) em nível de cinza;
  • QCALMAX - o valor máximo quantizado calibrado de um pixel (correspondente à LMAXλ) em nível de cinza igual a 255.

LMINλ e LMAXλ são os valores de radiância correspondentes aos valores mínimo e máximo de nível de cinza, e são apresentados no arquivo de metadados para cada imagem, ou na tabela 1. As informações sobre elevado ganho (high gain) ou baixo ganho (low gain) também são apresentadas no arquivo de metadados para cada imagem Landsat. O menor valor de nível de cinza (QCALMIN) é igual a 1 para imagens Landsat ETM+ (1), e o valor máximo de nível de cinza (QCALMAX) é igual a 255. QCAL é o valor de nível de cinza para cada pixel individual na imagem Landsat.

Acesso aos metadados:

r.info lsat7_2002_xx

Na opção ‘comments’, os valores máximo e mínimo de radiância (LMAX e LMIN) para cada banda são fornecidos.

Também é possível usar o comando abaixo (Power users) para uma saída mais legível (exemplo para o canal 1):

CHAN=1
r.info lsat7_2002_${CHAN}0 -h | tr '\n' ' '  | sed 's+ ++g' | tr ':' '\n' | grep "LMIN_BAND${CHAN}\|LMAX_BAND${CHAN}"

Conversão para radiância (o procedimento descrito abaixo é para a banda 1; para as demanis bandas, os números em itálico precisam ser substituídos pelos valores corretos):

g.region rast=lsat7_2002_10 -p
r.mapcalc "lsat7_2002_10_rad=((191.6 - (-6.2)) / (255.0 - 1.0)) * (lsat7_2002_10 - 1.0) + (-6.2)"

Para processamento mais rápido, utilize um modelo digital de elevação com o valores inteiros:

r.mapcalc "elev_int = round(elevation)"

Encontre o valor médio de elevação para iniciar o processamento (necessário no arquivo 'icnd' abaixo)

r.univar elev_int

Estimativa do horário de passagem a partir da posição do solo

O horário de passagem do satélite pode ser estimado com bastante precisão a partir da posição do sol apresentada nos metadados utilizando r.sunmask. Os metadados desse exemplo são: SUN_AZIMUTH = 120,8810347; SUN_ELEVATION = 64,7730999.

Mude as horas (hour) e minutos (min) iterativamente para obter bons resultados; obviamente, o fuso horário (timezone) precisa estar correto:

r.sunmask -s elev=elevation out=dummy year=2002 month=5 day=24 hour=10 min=42 sec=7 timezone=-5

Relatório: azimute solar = 121,342461; ângulo solar acima do horizonte (corrigido para a refração) = 65,396652.

A hora de passagem local resultante 10:42:07 corresponde a 15:42 em GMT, que corresponde a 15,67 em horas GMT decimais (minuto decimal: 42 * 100 / 60). Esse valor é necessário para o arquivo de controle.

Correção atmosférica

This radiance image can be used for the atmospheric correction with the 6S algorithm. The algorithm will transform the top-of-the-atmosphere radiance values to top-of-canopy reflectance values using predefined information on the aerosol content and atmospheric composition of the time the image was taken. What follows describes the method to use this algorithm in GRASS GIS. Again, only the calculations for band 1 are shown, and the numbers to be changed for the other bands are indicated in red. The 'icnd_lsat1.txt' control file consists of the following parameters, and is written with a text editor:

8                          # indicates that it is an ETM+ image
05 24 15.67 -78.691 35.749 # image taken on the 24th of May, at 15:42 GMT in decimals; the center of the image lies at 78.691°W and 35.749°N 
2                          # the midlatitude summer atmospheric model
1                          # the continental aerosol model
50                         # the visibility for the aerosol model [km]
-0.110                     # the terrain lies 110 meters above sea level [km] * -1
-1000                      # image taken of a satellite sensor (1000)
61                         # spectral band, here 1: blue

TODO: understand if the MODIS Aerosol Product (MOD04) could be useful to estimate the visibility for the aerosol model.


This file is then used in the i.atcorr module:

i.atcorr -a -o iimg=lsat7_2002_10_rad ialt=elev_int icnd=icdn_lsat1.txt oimg=lsat7_2002_10_atcorr

Where:

  • -a refers to a Landsat image taken after July 2000
  • -o activates the cache acceleration
  • iimg is the image to be corrected
  • ialt is the altitude map which overrides the initialization value of 110 meters
  • icnd is the path to the icnd.txt file
  • oimg is the name of the output image

More information on the use of i.atcorr for other images can be found in the i.atcorr manual.

Referências

Como adicionar novos sensores ao i.atcorr: