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

Sérgio V. svolk2 em hotmail.com
Sexta Setembro 14 20:09:49 UTC 2018


Ok, ainda vou ver como fazer pra "definir a marca do crossplot para um único pixel"


A coisa que me intriga ainda é que estava reexaminando as imagens e histogramas, nos pontos onde há certeza das 2 classes, wood e forest, que pode ser confirmada na alta resolução do Bing.

E os histogramas me parecem ainda indicar que apontam para a confirmação da formulação empírica / gambiarra B11 x ((1-NDVI)*4000), nos valores de classes e diferenciação de:

1)wood (mais velha, pouco menos úmida, menos ativa em clorofila)

2)forest  (mais jovem, mais úmida, mais ativa em clorofila)

3)o que não é nenhum dos 2 e pode ser retirado de vetorização (para "null").


Imagens junto com histogramas correspondentes do caso B11 x ((1-NDVI)*4000):

https://i.imgur.com/4uKNw1r.jpg


É a mesma área que peguei como exemplo desde o início, porque tem todos os tipos que poderiam interferir, e dá pra examinar se o resultado distingue bem wood e forest do resto:

wood; forest; river; pond; campos ralos; farmland; estradas; ...


Nos histogramas, no NDVI, as forest ocupam sempre os níveis mais altos, de vegetação crescendo ativamente; como próprio do NDVI; enquanto as wood variam mais no espectro: há área velhas e algumas em crescimento. Então há mistura das 2 classes.

Já no B11 se destacam bem claramente entre si: uma não invade a margem de valores da outra.


Se não fosse a água no B11 (~50a300) se misturar com forest(~150a1200), daria pra usar só B11.


-No Cerrado, por exemplo, bastou usar só B11, não tem mata jovem/forest, nem mais úmida, deu pra usar só B11:

água no B11 (~50a600) ;  wood(~1000a1300).

É que também os tipos são de vegetação do Cerrado são diferentes, matas mais secas, mais castigadas, do que as matas mais úmidas da Mata Atlântica. Acho sempre vão apresentar valores um tanto diferentes tendendo pro mais seco.

https://wiki.openstreetmap.org/wiki/User:SergioAJV/Sentinel-2_vectorizing_tests#Cerrado_.28vetorizado_e_100.25_validado_para_OSM.29


-Já na Amazônia, úmida mas também com áreas de mata velha, a ponderação teve que ser não x4000, mas x500, para B11 + ((1- NDVI ) * 500 ):

https://wiki.openstreetmap.org/wiki/User:SergioAJV/Sentinel-2_vectorizing_tests#Amaz.C3.B4nia_.28vetorizado_e_100.25_validado_para_OSM.29


Claro, se tivesse um índice ou fórmula única pra usar em todos biomas igualmente, seria melhor sem dúvida.

Não sei se é possível.


No scatterplot ainda vou ver como identificar os grupos ali dentro da mancha.

Ainda vou ver o que vc indicou mais.

Obrigado!



- - - - - - - - - - - - - - - -

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


________________________________
De: Paulo Carvalho <paulo.r.m.carvalho em gmail.com>
Enviado: sexta-feira, 14 de setembro de 2018 13:45
Para: OSM talk-br
Assunto: Re: [Talk-br] Vetorização de matas no OSM com Sentinel-2

Oi, Sérgio, vamos lá...

Em sex, 14 de set de 2018 às 12:25, Sérgio V. <svolk2 em hotmail.com<mailto:svolk2 em hotmail.com>> escreveu:

Bom dia Paulo, pessoal.

Fiz upscaling pra ver crossplot/scatterplot, com 549x549 px =   301.401 pixels (pontos);
 - Imagem original tava com 10.980x10.980 px = 120.560.400 pixels : 120.560.400 pontos, inviável, processador e RAM assobiaram.

Perfeito. Não se faz análise exploratória dos dados com tantos pontos. 120M de amostras é impossível mesmo.  E mesmo se fosse viável, daria para ver pouco.

E abri os histogramas.

Obtive os seguintes gráficos (em jpg no Imgur):

Histograma B11 : https://i.imgur.com/jsvnFjj.jpg

Só B11 parece dizer que há duas classes (as duas modas em 1200 e 2000 aproximadamente).  Não obstante um tanto misturadas.  Mas outra variável pode ajudar a desempatar.

Histograma NDVI : https://i.imgur.com/FrEZGOO.jpg
NDVI parece dizer que há três classes (as modas em 0,2; 0,6 e 0,7).  A classe em centrada em 0,2 parece bem separada.

Histograma (1-NDVI)*4000 : https://i.imgur.com/TUPi3Tl.jpg

Não percas tempo com isso.  Apenas mudou a escala.  Ela continuia informando a mesma coisa: que parece haver três classes.


Scatterplot B11 x NDVI : https://i.imgur.com/z4yPjtY.jpg
Scatterplot B11 x (1-NDVI)*4000 : https://i.imgur.com/j4WuO7C.jpg

Parece interessante, porém só aparece uma mancha negra.  Seria importante vermos onde os pontos estão concentrados.  Pontos concentrados são indícios de que há uma classe ali.  Há como definir a marca do crossplot para um único pixel?  Se não for possível, tenta reduzir a quantidade de amostras de ~100k para ~5k.

abcs,

PC

(c/ reescale para abranger próximo da área plotada.)

Anomalias de pixels acho que não tem muito.
Nuvem já remove na escolha de imagem, por cloud=0. E verifica com B10 se ainda tem alguma mínima.

A questão acho que centraria em encontrar uma referência de base universal (imagem original básica; ou algoritmo) para wood e forest, ou wood sozinho:
B11 sozinho ?
NDVI; ou EVI2; sozinhoS ?
Fórmula empírica (podem chamar gambiarra tb) tipo B11 * (1-NDVI)*4000 ?
Algum algoritmo mais pato (depois ainda vou estudar os algoritmos de classificação multivariados que vc indicou).
De todo modo, a base da classificação, e possibilidade de mapeamento, parte de imagem original e/ou índices mais aptos.

O objetivo a princípio é prático, para o OSM, não tanto científico: distinguir 2 classes, wood e forest, com precisão adequada, bastaria.

NDVI e EVI2 exibem imagens muito parecidas; EVI2 indicam que é melhor pra mata densa.
Mas comecei usando o NDVI, só pra eliminar o que não é vegetação; não pra fazer classe de vegetação, pois não encontrei valores limite aptos a separar classes.

O que o o (1-NDVI) faz é tornar NDVI tudo número positivo, pra poder depois multiplicar(potencializar) o B11.

Vi que O NDVI possibilita destacar tudo o que não é vegetação, e remover objetos que poderiam ainda ficar misturado no B11; por ter o foco em mapear matas.
O B11 foi que observei de imediato que mais destaca "wood" e "forest" entre si. Mas wood é o que mais tem no Brasil. Forest, menos.

Aí no B11, filtrado pelo x (1-NDVI)*4000, era só ver o range, só entre as 2, porque o resto já fica separado pelo NDVI.
(se focar só nas 2, wood e forest; no resto do Brasil quase só wood, natural; mas se quiser todo o resto de landcover, mais classes, aí fica mais elementos a considerar; também dá, mas de preferência não abordaria isso agora):
-forest (vegetaçao mais nova; mais escura; valores mais baixos)
-wood (vegetação mais velha, mais clara, valores mais altos)
E as anomalias (amplificação de anomalias), filtrando manual com "sieve" e "neighbors".
O fato é que o resultado, filtrando, mesmo perdendo informação, aproximou da real grupo de wood e forest no terreno.

Este que seria o objetivo: pegar wood e forest, quando há as 2 co-existindo; separadas entre si, e de todo o resto que não é.
Quando "não" tem as 2 co-existindo numa região (florestas plantadas é mais na região Sul-Sudeste do BR), pegar só mata nativa (wood).
Alcançando isto, tá feito para o objetivo inicial e prático!
Claro, ainda se poderia ir tentando encontrar uma formulação que possa ser mais abrangente, pegar mais objetos de landcover.

Bom, a ver o que acham.
Em investigação. Parcialmente já estou satisfeito com os resultados. O modo ainda pode ser meio empírico, ou não muito científico, artístico digamos, de ir lapidando até fechar os polígonos de classes iguais, mas funcionou. Claro, se pudermos facilitar e universalizar, melhor.

Obrigado pelos aportes já dados!



- - - - - - - - - - - - - - - -

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: quinta-feira, 13 de setembro de 2018 14:05
Para: OSM talk-br
Assunto: Re: [Talk-br] Vetorização de matas no OSM com Sentinel-2



Em qui, 13 de set de 2018 às 13:08, Sérgio V. <svolk2 em hotmail.com<mailto:svolk2 em hotmail.com>> escreveu:

Bom dia pessoal, Paulo e Gerald, obrigado pelos aportes!
Tenho muito interesse em que se possa aprimorar o processo, e/ou facilitar, onde possível e necessário.
-Gerald, baixei o artigo, vou olhar mais a fundo, exigirá mais tempo.
-Paulo, infelizmente não apareceu a imagem exemplo que vc enviou, o talk-list não exibe imagem, só link. Se puder mandar em link (tipo imgur.com<http://imgur.com>:  https://i.imgur.com/n3LV9qJ.jpg), seria ótimo.

Sem figuras?  Precisamos sair da década de 1990!  Aqui, é a figura 11 desse artigo: https://www.researchgate.net/publication/249553119_Optimizing_4D_fluid_imaging


Estou tomando muito em consideração as suas colocações técnicas.

Claro, quando cruzei B11+((1-NDVI)*4000), o objetivo foi arrastar pra fora tudo que não é mata, na Mata Altlâtica.Serviu ali.

Ok.

Não serviu nos outros biomas. Foquei só em forest e wood. Que já me pareceu bem identificável pelo B11, só que no B11 mistura perto de valores de água, e é mais afetado por sombra. Por isso a de filtra pelo NDVI o que não é matas. Usei só B11 e NDV( (B04 e B08). Não cruzei com a imagem RGB (TCI). Só usei ela pra observar.

Quando teu problema começa a "pedir um monte de IF's" trata-se de um problema de tomada de decisão de múltiplas variáveis.  Neste caso, a decisão é classificar cada pixel da imagem.  Se tu tentares escrever IF's dentro de IF's para 6 variáveis, vai complicar.  Na prática é um problema intratável diretamente.  Para esse tipo de problema deve-se usar um algoritmo de classificação desses já sugeridos.  Comece pelo crossplot B11 versus NDVI.  O que ele mostra?  Não tentemos abordar tudo isso de uma vez.  Baby steps...

Tinha testado o "SemiAutomaticClassificationPlugin (SCP)" https://github.com/semiautomaticgit/SemiAutomaticClassificationPlugin
Mas achei muito difícil, 200 páginas de manual. Não sou especialista nisto. O que obtive foi lendo um tanto, catando métodos, e adaptando ou inventando filtro conforme o necessário, como naquelas equações de ponderação, baseado em teste e observação dos resultados.

Do ponto de vista prático, pensava ainda no seguinte: não tenho, a princípio, a pretensão de mapear todo tipo de landcover. Mas quem quiser, e a comunidade concordar, claro. Pensei nas matas, por serem os agregados de vegetação mais densos, como um obstáculo geográfico; e pouco são mapeadas, ou razoavelmente bem, até pelo trabalho que dá, e dependendo de conhecimento nem sempre muito preciso. Apesar de gostar de matas, acho que são elementos acessórios no OSM. Ainda assim importantes de constar, como base de localização, referência cartográfica. Não necessitam de enorme resolução. Talvez ainda se pudesse baixar a resolução resultante. A ver o que vocês acham, e a comunidade. Enfim, tenho uma preferência pessoal por matas. Mas nada impede que um método permita mapear o resto. O objetivo é prático, cartografar o que seja de interesse e conveniente para o OSM.

Acredito sim que seria ótimo em termos de obtenção geral de informações poder até ampliar as classes possíveis de detectar, ou usar mais adequadamente se possível. É muito bem-vinda sua ideia de: "tem um ótimo potencial para criar um classificador automático ou supervisionado robusto e válido em qualquer lugar, o que reduziria MUITO a
quantidade de trabalho manual." Seria ótimo! Não entendi todos os passos que vc sugeriu, sou um tanto leigo no assunto quando passa para nível mais profundo. Vou pesquisar ainda com mais tempo o que vc falou. Se tiver uma formulação para indicar, os índices e métodos melhores, etc,  para possibilidades de mapeamento assistido, será muito bem-vinda, ótima contribuição! Penso num método que seja relativamente fácil. Que quem desejar se aprofundar um pouco possa fazer no OSM.

Seria bom se podermos encontrar meio para isso. Se quiser sugerir, podemos usar a mesma wiki para isso. Sobretudo afinamentos técnicos. O método tem objetivo de poder ser usado por qualquer um que tenha o interesse em se aprofundar pra mapear. Podemos usar a seção talk da mesma wiki, quem desejar contribuir, e ir afinando para imlplementar.
https://wiki.openstreetmap.org/wiki/Talk:Vetoriza%C3%A7%C3%A3o_de_matas_com_Sentinel-2
Obrigado antecipadamente pelas contribuições! Já registradas ali.

Por outro lado, a pergunta que ainda faço é: acham que o que tem ali já apresentaria resultado mapeável para upload ao OSM? Ainda que se possa afinar mais coisas.
Penso sobretudo para Mata Atlântica.
Baixar mais da atual resolução? (~ 100nós/km2; curvas com 1nó/10m).
Ou poderíamos antes afinar ou ampliar mais o método? Ou concomitantemente?

Eu acho que o método (atual) apresentou bons resultados, sobretudo nas áreas de bioma Mata Atlântica.
Onde pensava mais em usar pra mapear, pelos seguintes motivos:
-é a área de mata mais próxima da área de maior ocupação humana no Brasil, a faixa de 200km do litoral; é a que mais se transita;
-pode ser feita em tiles parciais; dificilmente uma área extrapola muito uma imagem;
-já no bioma Amazônia não, área de mata extrapola muito uma imagem;  precisaria fazer tudo junto, ou ir grudando as matas de cada tile, ou gerar mega multi-polígonos; eu deixaria pra outro momento, mas se alguém quiser abraçar esta área, mapear assistidamente, legal;
-cerrado tem alguma mata densa, mais ciliar; mapeia rápido, acredito; porém é extenso.
-caatinga tem pouca mata densa, não gera uma cobertura; ficaria mais pra "natural=scrub"; e cobre todo o terreno, quase homogeneamente; não como um destacado objeto geográfico; mas pode ser feito quem tiver interesse;
-pantanal, ainda vou testar;
-pampa, ainda vou testar; tem matas e campo que são mais próximos da Mata Atlântica, semelhantes ao exemplo testado; as matas são fáceis de marcar.

Porcentagem da área do Brasil:
Amazônia 49,29 %
Cerrado 23,92%
Mata Atlântica 13,04 %
Caatinga 9,92 %
Pampa 2,07 %
Pantanal 1,76 %

A ver o que acham.

Obrigado,




- - - - - - - - - - - - - - - -

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


________________________________
De: Gerald Weber <gweberbh em gmail.com<mailto:gweberbh em gmail.com>>
Enviado: quinta-feira, 13 de setembro de 2018 10:06
Para: OpenStreetMap no Brasil
Assunto: Re: [Talk-br] Vetorização de matas no OSM com Sentinel-2

Oi Sérgio

iniciativa fantástica, por acaso vi este artigo hoje:
Supervised Classification of Multisensor Remotely Sensed Images Using a Deep Learning Framework
http://www.mdpi.com/2072-4292/10/9/1429

talvez seja de interesse

abraço

Gerald

Obs: cirei um alerta no Google Acadêmico para me avisar sobre artigos científicos onde aparece a palavra "OpenStreetMap"

2018-09-12 20:40 GMT-03:00 Sérgio V. <svolk2 em hotmail.com<mailto:svolk2 em hotmail.com>>:

Prezados(as),

venho aqui expor e submeter à apreciação da comunidade OSM no Brasil uma proposta de método de mapeamento de matas para o OSM (natural=wood e landuse=forest) , baseado em vetorização semi-automatizada de imagens do satélite Sentinel-2, para o que peço autorização para uso em mapeamento no OSM no Brasil.

A proposta detalhada passo-a-passo encontra-se documentada na página wiki "Vetorização de matas com Sentinel-2":
https://wiki.openstreetmap.org/wiki/Vetoriza%C3%A7%C3%A3o_de_matas_com_Sentinel-2

Os testes já realizados (sem upload) encontram-se na página:
https://wiki.openstreetmap.org/wiki/User:SergioAJV/Sentinel-2_vectorizing_tests

O objetivo desta proposta, resumidamente, é contribuir com uma ferramenta para o mapeamento no OSM de grandes coberturas de matas.

A justificativa consiste, basicamente, em que o método possibilita mapear grandes áreas de mata, de municípios ou regiões de interesse, adequadamente, mais rapidamente, e com melhor precisão geométrica do que o que comumente pode ser encontrado ou realizado em mapeamento exclusivamente manual e com as imagens disponíveis nem sempre atualizadas e que, de todo modo, não permitem escolha, como de épocas do ano mais propícias à identificação de vegetação.

O método se destina a matas. Não se destina ao mapeamento de objetos pequenos. A resolução das imagens disponíveis é de 10 e 20m/pixel, e as geometrias resultantes da ordem de ~1nó/10m em curvas. Ainda assim maior do que se pode encontrar muitas vezes em mapeamento manual de "landcover", como matas. O processo pode gerar cerca de 100 a 150 nós por km2, em áreas com muita variedade de tipos de matas. O que significa cerca de 1.000.000 de nós a partir de 1 imagem Sentinel de 100x100km. Menos que isso em áreas mais homogêneas.

O método exige o controle ativo dos parâmetros de distinção de classes de vegetação e demais elementos geográficos a partir das imagens de satélite, em todo o andamento do processo, até o resultado final na geração de vetores .osm.
Exige certo tempo na aplicação dos passos, e sobretudo atenção, como na medição de valores de pixels para as classes de objetos, escolha de objetos para amostragem, bem como na verificação do resultado final. Não é um processo imediato. Ainda assim, permite grande ganho de tempo no mapeamento.

Mais detalhes podem ser encontrados nas citadas páginas de documentação.

Agradeço sua atenção e apreciação, acolhendo questões ou comentários no que desejarem e/ou julgarem necessário.



- - - - - - - - - - - - - - - -

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

_______________________________________________
Talk-br mailing list
Talk-br em openstreetmap.org<mailto:Talk-br em openstreetmap.org>
https://lists.openstreetmap.org/listinfo/talk-br




_______________________________________________
Talk-br mailing list
Talk-br em openstreetmap.org<mailto:Talk-br em openstreetmap.org>
https://lists.openstreetmap.org/listinfo/talk-br
_______________________________________________
Talk-br mailing list
Talk-br em openstreetmap.org<mailto: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/20180914/69f45b82/attachment-0001.html>


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