Codificado camadas vetoriais com WKT (Well Known Text)

Importando arquivos CSV com geometria

Quando importamos um arquivo CSV no QGIS, sempre existe a possibilidade de incluir a geometria das feições. Geralmente quando isso é possível significa indicar quais atributos representam a longitude (X) e a latitude (Y), o que resulta em uma camada vetorial de pontos.

Importação de geometria de ponto por arquivo CSV no QGIS

Mas existe a possibilidade de importar a geometria de feições mais complexas que meros pontos, desde que um atributo armazene o código WKT da geometria. Antes de ver isso na prática, vamos fazer uma volta pelos fundamentos do formato vetorial.

O formato vetorial

Aqui no blog eu tenho focado bastante no processamento de camadas raster, isto é, em dados representados pelo formato matricial. Nesse formato, os dados são tidos primordialmente como variáveis espaciais continuamente distribuídas no espaço – um campo bidimensional. Assim, uma amostragem regular de pontos no espaço resulta nas imagens que vemos, com os píxeis sendo a menor unidade de informação disponível. Quando o QGIS renderiza a camada raster estamos, literalmente, vendo os valores da variável, que são codificados em uma escala de cores.

Mas o formato matricial na verdade nem é tão comum nas aplicações gerais de SIG, sendo mais focalizado em áreas que envolvem sensoriamento remoto, meio ambiente e recursos hídricos. Muito mais banal é o formato vetorial.

O formato vetorial na representação de dados geoespaciais é muito mais familiar, pois resulta em objetos discretos distribuídos no espaço. Esses objetos, quando vistos em uma tela lembram desenhos que podemos facilmente desenhar em um pedaço de papel. Os atributos desses objetos são então adicionados pela conexão com uma tabela, ou banco de dados relacional, o que também parece algo bem intuitivo. Na verdade, não precisa ser uma tabela, mas muitas tabelas, com muitos atributos diversos, inclusive de texto, não só de números.

A extensão mais famosa para codificar um arquivo em dado vetorial é o shapefile (que na verdade é uma coleção de arquivos, cada um cumprindo uma função). Outra extensão famosa é o KML (e KMZ) do Google Earth. Sem falar do geopackage, que (ainda bem) tenderá a substituir o shapefile. Apesar de diferentes, todos esses arquivos são formas vetoriais de codificar a informação geoespacial. Por isso, compartilham os fundamentos da representação vetorial.

Vértices e dimensões

A representação vetorial, com algumas exceções exóticas, se baseia puramente em descrever como pontos estão ligados na superfície terrestre. Esses pontos, que vamos chamar de vértices, são meramente pares de coordenadas X (longitude) e Y (latitude).

Assim, o objeto geográfico mais simples possível é o Ponto, composto por apenas um vértice e zero dimensões. Um objeto geográfico com uma dimensão é uma Linha, que consiste (geralmente) por uma sequência ordena de vértices. Por fim, podemos representar objetos bidimensionais no espaço, que consistem (geralmente) em Polígonos.

Geometrias primitivas de objetos vetoriais, com destaque para os vértices

Esses três tipos de objetos podem eventualmente possuir mais de uma parte, sendo então elevados à categoria de Multiponto, Multilinha ou Multipolígono. Um exemplo típico é a representação dos países do mundo como polígonos de múltiplas partes (ou seja, multipolígonos) em razão de ilhas ou territórios descontínuos, como a ilha de Fernando de Noronha, o Alasca ou a Guiana Francesa.

Objetos vetoriais com partes únicas e múltiplas

A linguagem WKT (Well Known Text)

Uma forma prática de entender e acessar os fundamentos da representação vetorial é com a linguagem WKT (Well Known Text) . WKT não é uma linguagem de programação, mas sim uma linguagem de marcação, ou Markup. É uma forma de literalmente escrever um objeto vetorial. Vou apresentar uns exemplos.

Se você quer um Ponto, aí vai:

Point (5.1 6.2)

É simples assim. O primeiro número é o X e o segundo é o Y. Sem vírgulas para separar e o separador decimal é o ponto.

Multiponto com três partes:

MultiPoint ((5.6 11), (4.2, 9.7), (4.8 7.1))

Linha com quatro vértices:

LineString (0.5 1.3, 1.5 3.4, 1.8 4.2, 2.9 5.9)

Multilinha com três linhas de quatro vértices:

MultiLineString ((-36.0 -9.1, -25.6 -9.8, -19.3 -6.0, -17.1 -0.9, -16.4 3.4, -14.4 6.9, -10.7 9.2),(-16.6 -5.1, -13.8 -1.7, -10.8 1.2, -4.1 4.8))

Polígono:

Polygon ((1.2 1.3, 1.4 2.1, 2.2 2.7, 2.4 1.1, 1.2 1.3))

Note que para o polígono se “fechar” é preciso que o último vértice seja igual ao primeiro.

Multipolígono com duas partes:

MultiPolygon (((1.2 1.3, 1.4 2.1, 2.2 2.7, 2.4 1.1, 1.2 1.3)), ((4.2 4.3, 4.4 5.1, 5.2 5.7, 5.4 4.1, 4.2 4.3)))

A geometria rebaixada a atributo

Com a linguagem WKT, percebemos que a geometria de um objeto vetorial pode cair na vala comum dos outros atributos. Em uma planilha eletrônica ou arquivo de texto você pode criar uma nova coluna e escrever a geometria que representa os objetos de cada linha da tabela. Depois, no QGIS, isso permitirá importar o arquivo CSV. No formulário de importação, em vez de apontar os campos de longitude e latitude, indique o campo da geometria WKT.

Importação de geometria por WKT, no QGIS.

1 comentário

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: