Table of Contents
TerraAPP: Plataforma para aplicações em Áreas de Preservação Permanente
Apresentação teórica e prática de ferramentas desenvolvidas sobre a TerraLib no INPE para aplicações em Áreas de Preservação Permanente. O material pode ser utilizado desde que respeitada a licença:
TerraAPP: Plataforma para aplicações em Áreas de Preservação Permanente by Laercio M. Namikawa is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Extração de Leito do Rio em Imagens RapidEye
Objetivo: gerar a drenagem de margem dupla da lâmina de água no leito de rios detectáveis em imagens multiespectrais da constelação de satélites RapidEye, utilizando a informação de cor.
Metodologia:
- Usar a transformação de cores RGB para IHS
- Determinar os limiares de ângulos (da matiz H) e intensidade (da componente I) que caracterizam a lâmina de água.
- Aplicar os limiares definidos para definir os pixels de lâmina de água.
- Eliminar pixels detectados como água mas que são ruídos por meio de limiar de área mínima.
- Editar manualmente para eliminar ruídos maiores, lagoas e represas.
- Opcionalmente suavizar as margens da drenagem por spline.
Extração de Leito do Rio em Imagens RapidEye no SPRING
- Importar as bandas multiespectrais da imagem RapidEye entre as coberturas disponíveis.
- Aplicar transformação RGB para IHS na combinação de bandas 435 através do LEGAL.
- Determinar os limiares de ângulos (da matiz H) e intensidade (da componente I) que caracterizam a lâmina de água através da ferramenta de Contraste /Fatiamento/Arco-Íris.
- Aplicar os limiares definidos para definir os pixels de lâmina de água através do LEGAL.
- Vetorizar o mapa matricial de lâmina de água.
- Eliminar polígonos (que representam ruídos) menores que 1000 m2 através da ferramenta Limpar Vetores.
- Editar manualmente para eliminar ruídos maiores, lagoas e represas.
- Opcionalmente suavizar as margens da drenagem por spline.
- Copiar as linhas para um PI da categoria MNT.
- Converter todas as linhas para isolinhas.
- Aplicar a suavização.
- Copiar as linhas suavizadas de volta ao PI original
- Editar manualmente corrigir contornos da drenagem.
Programa Legal para Conversão RGB IHS em Imagem RapidEye
// Converte RGB para IHS // Adapted from Foley, VanDam 2nd.Ed.(p.592) // given r,g,b on [0 ... 1], // return (s,l) on [0 ... 1] h [0...360, -1= UNDEFINED] { Imagem ir ("CAT_Imagem"); Imagem ig ("CAT_Imagem"); Imagem ib ("CAT_Imagem"); MNT hue ("CAT_MNT"); MNT maxv ("CAT_MNT"); MNT red, green, blue ("CAT_MNT"); MNT iszero, minvl ("CAT_MNT"); MNT dltvl ("CAT_MNT"); MNT hue6 ("CAT_MNT"); MNT sat ("CAT_MNT"); ir = Recupere( Nome = "RapidEye2014_4" ); ig = Recupere( Nome = "RapidEye2014_3" ); ib = Recupere( Nome = "RapidEye2014_5" ); hue = Novo( Nome = "H_435" , ResX = 5 , ResY = 5 , Escala = 10000 ); maxv = Novo( Nome = "V_435" , ResX = 5 , ResY = 5 , Escala = 10000 ); red = New(Name="TMP_HSV_R",ResX=5,ResY=5,Escala=10000); green = New(Name="TMP_HSV_G",ResX=5,ResY=5,Escala=10000); blue = New(Name="TMP_HSV_B",ResX=5,ResY=5,Escala=10000); minvl = New(Name="TMP_MIN",ResX=5,ResY=5,Escala=10000); dltvl = New(Name="TMP_DLT",ResX=5,ResY=5,Escala=10000); sat = New(Name="TMP_SAT",ResX=5,ResY=5,Escala=10000); hue6 = New(Name="TMP_H6",ResX=5,ResY=5,Escala=10000); //Assume input image range 0-65535, output range 0-1 red = Digital(ir)/65535.; green = Digital(ig)/65535.; blue = Digital(ib)/65535.; // max := Maximum(r,g,b) maxv = (red >= green ) && (red >= blue ) ? red : (blue >= green) ? blue : green; // min := Minimum(r,g,b) minvl = (red <= green ) && (red <= blue) ? red : (blue <= green ) ? blue : green; // if max <> 0 then // s := (max-min)/max // else s := 0 dltvl = maxv - minvl; sat = (maxv == 0.0) ? 0.0 : dltvl/maxv; // if s = 0 then // h := UNDEFINED hue6 = (sat == 0.0) ? 0.0 : ( // else // begin // delta := max-min // if r = max then // h := (g-b)/delta (red == maxv) ? 60.0 * ((green - blue) / dltvl) : ( // else if g = max then // h := 2 + (b-r)/delta (green == maxv) ? 60.0 * (2.0 + ((blue - red) / dltvl)) : ( // else if b = max then // h := 4 + (r-g)/delta 60.0 * (4.0 + ((red - green) / dltvl)) ))); // h := h*60 // if h < 0 then // h := h + 360 hue = (sat == 0.0) ? -1.0 : ((hue6 < 0.0) ? hue6 + 360. : hue6); }
Aplicar os limiares definidos de lâmina de água através do LEGAL
Programa Legal para Aplicar os Limiares
{ MNT hue, maxv ("CAT_MNT"); Tematico slc ("Aguas"); hue = Recupere( Nome = "H_435" ); maxv = Recupere( Nome = "V_435" ); slc =Novo(Nome = "HV_35_95_03_07", ResX = 5, ResY = 5, Escala = 10000); slc = Atribua ( CategoriaFim = "Aguas" ) { "Rios" : ( hue > 35 && hue < 95 ) && ( maxv > 0.03 && maxv < 0.07 ) }; }