No QGIS, existem dois shapefiles que representam os dados em movimento entre as células e uma camada adicional, veja a imagem abaixo
Movendo dados definidos por:
Polígono
"LayerA"
(quadrados transparentes com contorno vermelho). Além disso, também se refere a círculos que representam os movimentos dentro das células, visualizados na posição dos"LayerA"
geocentróides.Camada de polilinha
"Flows"
(setas amarelas / cinza), transmite valores por meio de conexões entre geocentróides de"LayerA"
recursos
Camada alvo:
Além disso, já transferi "FLUX"
e mova valores dentro das células "LayerA"
para "LayerB"
polígonos. Veja minha pergunta anterior: Valores herdados entre polígonos no QGIS? . Foi feita usando o %
de $area
cálculo.
Pode haver uma solução / abordagem significativa de transferência / transmissão / transformação de conexões de fluxo representadas por "Flows"
e seus valores de relações de "LayerA"
em relações de "LayerB"
.
Como posso conseguir essas conexões como polilinhas?
Além disso, novos fluxos herdarão um estilo semelhante ao "Flows"
.
A pedido, posso fornecer uma amostra dos dados.
Os fluxos existirão não entre os recursos de "LayerA"
, mas entre os recursos de "LayerB"
. O objetivo principal é obter o atributo "FLUX"
(isto é, de / para) para conexões entre "LayerB"
possíveis como tabela / matriz de origem e destino.
Existem alguns requisitos / critérios que devem ser respeitados:
1. Não há conexões de fluxo entre as partes dos recursos (selecionadas em amarelo) na mesma célula
2. Não há conexões entre o mesmo recurso, mesmo que suas partes estejam em células diferentes
3. As conexões existem entre partes dos recursos "LayerB"
(com base na "Union"
saída) se estiverem inteiramente dentro de dois "LayerA"
recursos de célula distintos
4. O novo "FLUX"
valor que está sendo transportado será calculado conforme mostrado na imagem abaixo.
Por exemplo, há uma conexão entre duas células I
e II
, onde "FLUX"
está 100
. Assumindo outros valores, o "NEW_FLUX"
entre A'
e B''
estará ao redor 1.5625
. 100
é apenas um exemplo.
Referências:
fonte
Respostas:
Com as Camadas Virtuais, teoricamente, é possível (com shapefiles, o processo será muito longo, mas se as camadas estiverem em um Banco de Dados Espaciais, acho que é muito mais rápido).
Aqui o código:
A saída gráfica será semelhante a
O resultado foi testado manualmente. A diferença de
"FLUX"
valores é negligenciável.A saída final herdará estilos
"Flow"
e se parecerá comRecomendo testá-lo com alguns dados e, se levar muito tempo para conjuntos de dados grandes, execute as consultas passo a passo (
"inter_ab"
,"new_flux"
) e salve o resultado e execute a próxima consulta.fonte
Polygon_b
camada, e é o campo principalid_geofla
. Eu fiz a correção.Você pode fazer uma junção entre as três camadas e agregar por
layerB
. Camadas virtuais provavelmente podem ser usadas. Não tenho certeza se os dados importantes estão nalayerA
ou naflow
camada. Aqui está uma possibilidade (não testada):fonte
"Flows"
.sum(f.flow_var)
, ou mesmosum(fl.flow_var * a.poly_var)