[Talk-br] Vetorização de matas no OSM com Sentinel-2

Paulo Carvalho paulo.r.m.carvalho em gmail.com
Domingo Setembro 16 21:39:30 UTC 2018


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 <
paulo.r.m.carvalho em gmail.com> 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. <svolk2 em hotmail.com>
> 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 <paulo.r.m.carvalho em gmail.com>
>> 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. <svolk2 em hotmail.com<mailto:
>> svolk2 em hotmail.com>> escreveu:
>> Valeu, vou pesquisar.
>> Tamo chegando lá.
>>
>> - - - - - - - - - - - - - - - -
>> Sérgio - http://www.openstreetmap.org/user/smaprs
>>
>>
>> ________________________________
>> De: Paulo Carvalho <paulo.r.m.carvalho em gmail.com<mailto:
>> paulo.r.m.carvalho em gmail.com>>
>> 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
>> Talk-br em openstreetmap.org
>> https://lists.openstreetmap.org/listinfo/talk-br
>>
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://lists.openstreetmap.org/pipermail/talk-br/attachments/20180916/8157a795/attachment.html>


Mais detalhes sobre a lista de discussão Talk-br