Ok, vou 1o. listar e traduzir os passos do método pra ver como fazer no QGIS 
como vc indicou. Vou procurar focar em 2 variáveis, B11 x NDVI (ou B11 e EVI2), 
acho que simplifica e basta por EVI e NDVI serem muito parecidos.

Esta semana vai me apertar o trabalho, então acho que só vou poder executar na 
semana que vem. Vou demorar um pouco pra trazer mais resultados.

Obrigado por enquanto, ótimas orientações suas! Acho que podemos chegar a um 
método viável pra aplicar em matas em qualquer lugar, potencializar o 
mapeamento de matas no Brasil todo.


- - - - - - - - - - - - - - - -
Sérgio - http://www.openstreetmap.org/user/smaprs
________________________________
De: Paulo Carvalho <[email protected]>
Enviado: domingo, 16 de setembro de 2018 18:39:30
Para: OSM talk-br
Assunto: Re: [Talk-br] Vetorização de matas no OSM com Sentinel-2

Oi, tinha um erro na minha descrição do procedimento MDS:

3) Computar a matriz B, cujos elementos bij = -1/2 * ( dij^2 - di.^2 - d.j^2 + 
d..^2 ), onde (esqueci do sinal de menos antes do 1/2)
bij = elemento da matriz B
dij = elemento da matriz de dessemelhanças
di.^2 = média dos elementos do i-ésimo vetor-linha (linha de uma matriz) da 
matriz de dessemelhanças multiplicada por ela mesma (D^2 = D*D).
d.j^2 = média dos elementos do j-ésimo vetor-coluna (coluna de uma matriz) da 
matriz de dessemelhanças multiplicada por ela mesma
d..^2 = média de todos os elementos da matriz de dessemelhanças multiplicada 
por ela mesma

Caso queiras conferir, ver toda a teoria de MDS aqui: 
http://polisci.msu.edu/jacoby/research/scaling/intromds/Jacoby-Ciuk,%20MDS,%20V2,%2010-29-14.pdf

Em dom, 16 de set de 2018 às 17:53, Paulo Carvalho 
<[email protected]<mailto:[email protected]>> escreveu:
Oi, o método MDS pode ser implementado como um script em Python (acedito que o 
QGis tenha um console Python) caso o QGis não tenha MDS diretamente.  Se 
tiveres o SciPy e o NumPy disponíveis no console do QGis, é viável fazer no 
Python (teste com os comandos import scipy e import numpy).  Quanto aos 
múltiplos crossplots com os possíveis pares de variáveis, muita gente faz isso 
mesmo, mas não é a mesma coisa do que uma análise conjunta.

Em dom, 16 de set de 2018 às 14:45, Sérgio V. 
<[email protected]<mailto:[email protected]>> escreveu:
Ok, vou testar.
A curva do arco de parábola ali é o crossplot de EVI2 x NDVI.
Na verdade fiz 4 crossplot
B11xNDVI, B11xEVI2; EVI2xNDVI,
e o 3V B11xNDVIxEVI2. B11 no eixo x.
O que exibe ali na figura é estes 2 últimos.
Só coloquei B11 com NDVI e EVI2 pra ver qual melhor, sendo base de informação 
já a B11. Pois NDVI e EVI2 tendo basicamente o mesmo propósito e mostrando 
histograma semelhante, tendo o mesmo comportamento para os mesmos objetos na 
imagem, pensei que basta uma.
Assim penso usar EVI2 com B11, só estas 2 basicamente. O B11 quase já 
classifica tudo que eu precisava.
Vou ver como testar o que você indicou agora, obrigado!

- - - - - - - - - - - - - - - -
Sérgio - http://www.openstreetmap.org/user/smaprs
________________________________
De: Paulo Carvalho 
<[email protected]<mailto:[email protected]>>
Enviado: domingo, 16 de setembro de 2018 11:13:03
Para: OSM talk-br
Assunto: Re: [Talk-br] Vetorização de matas no OSM com Sentinel-2

Sérgio, vi um arco de parábola no teu último gráfico.  Acredito que tenhas 
feito isso para poder usar três variáveis (combinando duas) no crossplot 2D.  
Para combinar múltiplas variáveis em duas coordenadas para ver um crossplot, 
use MDS: https://en.wikipedia.org/wiki/Multidimensional_scaling

Acredito que com alguns passos de cálculo seja possível criar as coordenadas 
MDS, que nada mais são de que outras variáveis, e plotá-las no crossplot 2D 
para ver os grupos.

Resumindo o método:
1) Calcular as dessemelhanças entre as amostras por uma fórmula de distância 
qualquer, por exemplo, a distância Euclideana: 
https://wikimedia.org/api/rest_v1/media/math/render/svg/c015e86e5cd0ed7a45f5c4c5107647b4d4970b14
 onde x e y são duas variáveis qualquer (ex.: B11 e NDVI), mas poderia ser 
três, quatro, etc. nessa soma de quadrados dentro da raíz;  i e j são os 
índices das amostras.  No exemplo, dij é a distância entre a i-ésima e a 
j-ésima amostra.  Tu podes usar outras fórmulas de distância, por exemplo, a 
distância de Manhattan.

2) Depois de calcular todas as dessemelhanças entre todas as amostras, os 
resultados são colocados em uma matriz: 
https://wikimedia.org/api/rest_v1/media/math/render/svg/ac5a364c06c41eede6a8689a417c79b0b984046d
Se houver 1.000 amostras, a matriz terá 1.000.000 de elementos.  A matriz de 
dessemelhança é como se fosse aquelas tabelas de distâncias entre cidades que 
havia nos mapas rodoviários de antigamente.

Seguindo a analogia das cidades, temos suas distâncias, mas não suas posições 
(x, y).  O problema consiste em encontrar a posição relativa (x, y)i de uma 
cidade i tal que, IDEALMENTE, a separação até uma cidade j seja igual à 
distância entre elas computadas no passo 2).  Ou seja, que o comprimento do 
vetor ||(xi - xj), (yi - yj)|| seja igual a dij.  Isso acontece se o número de 
variáveis de entrada for dois.  Como teremos 3 ou mais, o que estamos tentando 
fazer na prática é planificar algo que tem 3 ou mais dimensões, então o 
problema passa a ser de minimização porque as distâncias dij são calculadas em 
função das variáveis de entrada.  Assim o valor ||(xi - xj), (yi - yj)|| - dij 
deve ser o mínimo.

3) Computar a matriz B, cujos elementos bij = 1/2 * ( dij^2 - di.^2 - d.j^2 + 
d..^2 ), onde
bij = elemento da matriz B
dij = elemento da matriz de dessemelhanças
di. = i-ésimo vetor-linha (linha de uma matriz) da matriz de dessemelhanças
d.j = j-ésimo vetor-coluna (coluna de uma matriz) da matriz de dessemelhanças
d.. = toda a matriz de dessemelhanças (notação com dois pontos)
A notação de um vetor ou matriz "ao quadrado" (ex.: di.^2) quer dizer "pegue 
todos os elementos, eleve cada um ao quadrado e some tudo."

4) Decompor B em seus autovalores e autovetores (rever Álgebra Linear).  Essa 
decomposição resulta em duas matrizes: D = matriz com os autovalores em sua 
diagonal principal (os outros elementos são zero).  V = matriz cujas colunas 
são os autovetores.

5) Para um crossplot 2D, pegue os dois maiores autovalores de D e monte D1.  
Pegue os autovetores (colunas) de V correspondentes aos maiores autovalores e 
monte V1.  D1 será uma matriz 2 x 2 com os dois maiores autovalores e V1 terá 
uma linha para cada amostra (ex. 1000) e duas colunas.

6) Para cada elemento não zero de D1, inverta (se o elemento for 5, deve ser 
1/5) e tire a raíz quadrada.

7) A solução X será o produto das matrizes V1 e D1 X = V1 * D1.  X terá o 
número de linhas igual ao de amostras (ex. 1000) e 2 colunas.  A primeira 
coluna será a coordenada x e a segunda, y.  Essas coordenadas são usadas no 
crossplot.

Se quiseres um crossplot 3D, refaça os passos 5, 6 e 7, mas selecionado os três 
maiores autovalores e X terá três coordenadas (x, y, z).

Só isso!




Em sáb, 15 de set de 2018 às 20:12, Sérgio V. 
<[email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>>>
 escreveu:
Valeu, vou pesquisar.
Tamo chegando lá.

- - - - - - - - - - - - - - - -
Sérgio - http://www.openstreetmap.org/user/smaprs


________________________________
De: Paulo Carvalho 
<[email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>>>
Enviado: sábado, 15 de setembro de 2018 19:53
Para: OSM talk-br
Assunto: Re: [Talk-br] Vetorização de matas no OSM com Sentinel-2

MDS (multi dimensional scaling) também ajuda na análise multidimensional.  Veja 
se o QGis tem MDS.
.org/listinfo/talk-br

_______________________________________________
Talk-br mailing list
[email protected]<mailto:[email protected]>
https://lists.openstreetmap.org/listinfo/talk-br
_______________________________________________
Talk-br mailing list
[email protected]
https://lists.openstreetmap.org/listinfo/talk-br

Responder a