Como representar distribuições de valor de atributo bimodal em um mapa

8

Estou procurando um método de visualização que me permita representar distribuições de valor de atributo bimodal ou mesmo multimodal em recursos de linha.

Uma distribuição bimodal possui dois modos diferentes que aparecem como picos distintos na função de densidade de probabilidade (imagem 1). Os valores médios, medianos e de desvio padrão são de pouca utilidade para descrever esses dados.

# 1 Exemplo de distribuição bimodal:

Exemplo de distribuição bimodal
(fonte: wikimedia.org )

Meu caso de uso é o seguinte: Para todos os links rodoviários em uma rede, associei medições de velocidade (muitas centenas por link) em distribuições bimodais - às vezes multimodais (três modos) -. Agora, estou procurando uma maneira de visualizar esses dados em um mapa.

Além de anexar um diagrama de barras a cada link, não encontrei nenhuma maneira de alcançar meu objetivo usando um GIS. Os resultados da visualização devem ser imprimíveis para que as animações não funcionem.

# 2 Exemplo de visualização usando diagramas:

Exemplos de segmentos de estrada com diagramas de barra

Todas as idéias são bem-vindas!

underdark
fonte
Você está usando "modal" no contexto do planejamento de transporte ou nas estatísticas? A escolha de alguém no modo de transporte é uma escala nominal (carro, ônibus ou trem), enquanto o comprimento do corpo é uma escala de proporção. pt.wikipedia.org/wiki/Level_of_measurement
Kirk Kuykendall
1
Modal como nas estatísticas, desculpe, pensei que ficaria claro com a imagem e a descrição da "distribuição bimodal".
Subterrâneo

Respostas:

4

Uma maneira de lidar com isso é agrupar seus dados de distribuição em classes de velocidade e calcular a porcentagem de cada segmento dentro de cada classe. Em seguida, você pode criar segmentos de linha paralelos e escalar sua largura com base na porcentagem para produzir algo como isto:

linha de velocidade bimodal

Isso pode ser feito no GRASS, por exemplo, usando v.parallel( página de manual ), que pode criar linhas paralelas em ambos os lados de um segmento a uma distância definida.

Da mesma forma, você pode criar um segmento de linha por emparelhamento de medição de velocidade da linha, com pequenos níveis de desvio adicionados às coordenadas. Em seguida, pinte os segmentos usando a velocidade como atributo. Isso também pode ser esclarecido usando a transparência, dependendo dos requisitos da saída, produzindo algo como:

linha de deslocamento bimodal

Finalmente, uma abordagem hibridizada seria usar um único gradiente de cor em todos os segmentos de linha e, em seguida, usar o canal alfa de um segmento como uma representação compactada da distribuição. Ao combinar esses elementos, você terá um conjunto de dados que usa cores para representar velocidade e a força da transparência para representar a prevalência do valor no segmento:

linha de saída bimodal

scw
fonte
Eu acho que a primeira ideia é brilhante, mas estou tendo dificuldades para visualizar a segunda como algo que não seja cinza. Você conhece um exemplo?
Matt Parker
Gosto da ideia, mas o problema que vejo na abordagem 1 é que informações sobre modos não são usadas. Como os compartimentos teriam que ser iguais para todos os segmentos, em alguns casos isso levaria a divisões ruins (por exemplo, divisão de um pico). A abordagem 2 parece ainda mais promissora. Exigiria algum pré-processamento e normalização para trabalhar com enormes conjuntos de dados, é claro. Algum OS GIS suporta o estilo de linhas de traços múltiplos, como mostrado na figura?
Subterrâneo
1
A transparência permite ver a densidade real das linhas - mais linhas produzem cores mais opacas. Basicamente, apenas impede que a massa de linhas verdes transforme todo o segmento em uma barra verde sólida. É um pouco estranho neste aplicativo, porque a sobreposição de linhas é causada por tremulação aleatória, em vez de plotagem real (compare com este gráfico de dispersão: had.co.nz/stat405/resources/drills/plot-drills/ggplots/… ).
Matt Parker
1
@underdark: algumas opções para o traçado múltiplo: coloque as linhas em valores diferentes para criar as larguras e depois colora cada polígono separadamente. Como alternativa, você pode escrever um pequeno python no QGIS com o novo simbolizador ( qgis.org/wiki/Symbology-NG ). Você não precisa se limitar a apenas três segmentos; pode fazer quantas caixas desejar com um desses métodos.
scw 4/08/10
1
Incluí um link para v.parallel na minha resposta, que deve fornecer uma boa maneira de calcular a primeira solução: criar segmentos de linhas paralelas a distâncias iguais às quantidades e ajustar sua espessura com ferramentas de simbolização como as do QGIS.
ACS
2

Talvez use um conjunto de linhas paralelas de largura fixa adjacentes. Cada linha pode ser desenhada para refletir a magnitude do compartimento correspondente (considere a escala de cinza: o escuro seria de alta frequência, a luz seria pequena). O resultado pareceria um pouco com o canal alfa da resposta do scw. Com efeito, você mancha o histograma / densidade ao longo de um segmento de linha de área. O fluxo de trabalho cartográfico geral seria um pouco complicado (devido à codificação manual ou do deslocamento linear - para não mencionar a manipulação de interseção), mas seria implementável no GIS padrão. Independentemente da técnica que você usar ou criar, se for um mapa elegante, compartilhe suas descobertas. Boa sorte!

(os comentários abaixo podem ser úteis para aqueles que tentam essa ideia)

Glennon
fonte
1
Eu tentei sua sugestão ontem. O problema que encontrei com sua solução em escala de cinza (seria ótimo para impressão) é que é difícil de interpretar porque o resultado depende da orientação da linha. Significado: Às vezes, as altas velocidades estão à esquerda, às vezes no lado direito da linha. Talvez tivesse que introduzir flechas adicionais, mas fica realmente cheio.
Subterrâneo
1
Obrigado pelo comentário. Você está certo. Direcionalidade é um problema. Uma sugestão visual adicional pode ser criada (como uma flecha ou uma linha fina na fronteira com a "pista rápida"). No final, no entanto, e após uma reflexão mais aprofundada, acho que a técnica do caminho classificado provavelmente deve ser aplicada apenas ao caso de uso restrito, quando a rede segue a mesma direção geral. Espero que essa discussão ajude outras pessoas.
Glennon
2

Por que não usar a solução em escala de cinza da glennon, mas espelhe-a para que você tenha alta velocidade nos dois lados da linha. A espessura aparente da linha indicará a velocidade média e as listras indicarão se há mais de um modo.

A imagem abaixo mostra como seria a amostra da pergunta com linhas espelhadas. Usei linhas pretas com opacidade na imagem esquerda e linhas codificadas por cores com opacidade à direita.

Eu adicionei um pouco de gama (2) à opacidade para que os picos se destacassem mais.

Linhas de escala de cinza e cores em largura fixa espelhadas http://img23.imageshack.us/img23/4920/mirrored.png

mkadunc
fonte
A largura da linha não mudaria. Glennon sugeriu linhas de largura fixa. O espelhamento das linhas dobraria a largura das linhas já muito amplas, impossibilitando a visualização de extensões de rede maiores. Além disso, acho que isso seria realmente difícil de interpretar.
Underdark
+1 Obrigado pelas imagens adicionais. Para dados diferentes, essa abordagem pode funcionar. Como a imagem 2 na minha pergunta indica, eu gostaria de trabalhar com aprox. 10 compartimentos ou, se possível, evite "agrupar" os dados todos juntos.
Subterrâneo
Minhas imagens realmente usam as distribuições da imagem nº 2 em sua pergunta. Apenas para esclarecer seu problema - se você tivesse que decidir (por exemplo, em uma grande rede, onde seria impossível mostrar todas as informações) reduzir a distribuição para uma única variável, você preferiria o número de picos, a velocidade média , velocidade de pico (ou seja, aquela com o pico mais alto) ou outra coisa?
Mkadunc 11/08/10
Minha solução favorita seria o número de picos, a velocidade desses picos e talvez algumas informações sobre a largura do pico. Se eu tivesse que escolher apenas uma variável, provavelmente usaria a velocidade de pico ... A velocidade média é o que tenho agora, mas quero mudar isso.
Underdark
0

O Silverlight (e provavelmente flex) suporta símbolos de linha animados. Você pode criar linhas tracejadas nas quais os traços se movem ao longo da linha com base na velocidade e a largura representa o volume de tráfego. Nunca vi padrões cartográficos sugeridos para símbolos animados, mas talvez existam.

Kirk Kuykendall
fonte
Na verdade, não vejo como isso possibilita visualizar uma distribuição bimodal das medições de velocidade. Linhas paralelas, uma por pico na distribuição ... parece confuso.
Underdark