Qual é a diferença entre CoordinateDimension e spatialDimension?

8

O padrão OpenGIS menciona três métodos para consultar as dimensões de uma geometria:

  • dimension(): a dimensão inerente da geometria:
    • 0 para Point
    • 1 para Curve
    • 2 para Surface
  • coordinateDimension(): o número de coordenadas da geometria:
    • 2 para X,Y
    • 3para X,Y,ZouX,Y,M
    • 4 para X,Y,Z,M
  • spatialDimension(): este não tem descrição neste documento.

Este documento RDF no site opengis.net descreve ainda coordinateDimensioncomo:

O número de medições ou eixos necessários para descrever a posição dessa geometria em um sistema de coordenadas.

E descreve spatialDimensioncomo:

O número de medições ou eixos necessários para descrever a posição espacial dessa geometria em um sistema de coordenadas.

Portanto, o último se refere à "posição espacial" em oposição à "posição", o que não me ajuda muito a entender a diferença entre eles.

Qual é a diferença entre coordinateDimension()e spatialDimension()?

Benjamin
fonte
Minha suposição seria que se spatialDimensionbaseie em um sistema de coordenadas geográficas (ou projetadas), enquanto coordinateDimensiontambém pode incluir qualquer sistema de coordenadas arbitrário ou local.
Erica
@Erica eu estava me perguntando se era o mesmo que coordinateDimension, mas apenas incluindo coordenadas "espaciais" X, Y, Z, e ignorando M; portanto, valores possíveis: 2para 2D, 3para 3D. Isso faria sentido?
Benjamin
Minha aposta seria no documento e o padrão é inconsistente. coordinateDimensionpode se referir à dimensão inerente, enquanto spatialDimensionà dimensão absoluta (com Ze / ou M). Minha suposição se origina da dimensionpropriedade do documento RDF , que se refere à dimensão topológica.
Gabor Farkas
Eu li esse documento como descrevendo spatialDimension como uma versão muito mais específica do CoordinateDimension. Por exemplo, retornando [0, 1, 2], [1,0,2], [0,0,2] para um triângulo 2D em vez de [ 0,1] [1,0] [0,0] .. o que acontece quando você o consulta? desde o doc coleções referências podem consistir de objetos geométricos w / diferentes dimensões, isso poderia ser apenas uma versão computador-cientista-friendly de coordinateDimension
ryansstack

Respostas:

5
  • dimensão (): refere-se à dimensão topológica (isto é, ponto / linha / área)
  • coordenateDimension (): retorna a dimensão da tupla conforme determinado (como statet no OP)
  • spatialDimension (): retorna a dimensão da tupla sem a parte de medição (com "M" sendo a medida em um sistema de referência linear )

Como é bastante óbvio para um literal 2D ou "4D", você basicamente precisa diferir entre as duas alternativas "3D".

O documento OGC sobre GeoSPARQL é (ligeiramente) mais preciso com:

Propriedade: geo: spatialDimension
A dimensão espacial é a dimensão da parte espacial das posições diretas
(tuplas de coordenadas) usadas na definição desse objeto geométrico. Se as posições diretas
não carregam uma coordenada de medida, isso será igual à dimensão da coordenada.
ymirsson
fonte
2

Das três opiniões expressas até agora, a sua, Benjamin, faz mais sentido para mim:

X, Ye Zsão dimensões espaciais e Msão outras coordenadas / dimensões.

Disclaimer: Eu nunca ouvi falar desses nomes de funções ( coordinateDimensione spatialDimension) antes, então não tenho autoridade. E não tenho certeza se poderia reivindicar alguma recompensa, se alguma vez me provar correta!

Martin F
fonte
1

Na geometria comum, temos espaço e tempo. O espaço é representado por três coordenadas e o tempo é adicional. As coisas relacionadas à posição do espaço são espaciais e as relacionadas ao tempo são temporais. Portanto, 'coordenadas espaciais' se referem àquelas relacionadas ao espaço e é o mesmo que 'dimensões espaciais'. As dimensões de coordenadas, por outro lado, podem ser espaciais, temporais ou qualquer outro.

Agora, o que é uma dimensão e qual é a diferença de uma variável. Tome como exemplo a pressão atmosférica 'p'. Se p for fixo em todos os lugares, é uma função de dimensão zero. Se variar à medida que você avança na direção 'z', é uma função de uma dimensão '1D' ep = p (z). Se varia com a altura e quando você se move lateralmente em qualquer direção, é uma função de 2 variáveis ​​p = p (r, z), onde r é a separação de onde você está e temos um problema 2D.

Se a variação à medida que avança for diferente do que quando se desloca lateralmente, você é uma função das três dimensões espaciais ep = p (x, y, z). Se p também variar com o tempo 't', você terá uma função de 4D, três espacial e uma temporal, e você terá p = p (x, y, z, t). Suponha que isso se refira a uma cidade e você queira que p seja geral para todas as cidades ao redor, então você tem 5D e assim por diante. Aqui, onde precisamos usar coordenadas, pois há uma mistura de vários tipos de dependências.

Finalmente, para se qualificar para ser uma dimensão ou uma coordenada, deve ser possível variar uma função (p neste caso) ao longo dessa dimensão, com as demais permanecendo fixas. É por isso que usamos linhas perpendiculares para as dimensões. Uma vez que é possível variar (z no nosso caso), mantendo a frente e o lado fixos. O mesmo pode ser dito para os outros. O tempo também é uma dimensão, pois você pode alterar o tempo sentado no mesmo ponto (x, y, z). Se você andar 45 graus para a frente ou para o lado, por exemplo, essa não é uma nova dimensão, pois ambos x, y serão alterados no processo. Nesse caso, decompomos o caminho em dois componentes, um frontal e outro lateral, para alcançar a caminhada de 45 graus.

Riad
fonte