Como converter um shapefile para WKT?

12

Estou tentando converter um shapefile no formato simples Texto conhecido (WKT) no exemplo abaixo (em http://en.wikipedia.org/wiki/Well-known_text ).

MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),
((20 35, 45 20, 30 5, 10 10, 10 30, 20 35),
(30 20, 20 25, 20 15, 30 20)))

Sei que uso o QGIS para salvar o shapefile como um CSV e posso usar ogr2ogr para fazer qualquer número de conversões. De fato, ogr2ogr -f CSV out.wkt source.shp -lco GEOMETRY=AS_WKTme deixa tão perto quanto cheguei até agora, mas não chego lá. Alguma sugestão?

ps Como observado pelo Mapperz, esse tópico é muito semelhante a este . Esse segmento, embora fornecesse a abordagem ogr2ogr que observei acima, não resolveu esse desafio em particular. A saída ogr2ogr que estou obtendo se parece com isso (truncou as linhas). Aparentemente, eu ainda não descobri como fazer o ogr2ogr usar multipolígono.

WKT,AREA,PERIMETER,PINUPOND_,PINUPOND_I,CODE
"POLYGON ((-120.630531650950061 50.838562484449184, . . .
"POLYGON ((-123.206067372148397 51.038984074378327, . . .
Gregory
fonte
Qual é o problema com a saída ogr2ogr?
til_b
@til_b: endereçado na edição.
Gregory
1
A sua forma é MULTIPOLYGON?
Jürgen Zornig 19/03/2013
@ JürgenZornig: Como posso saber? Faria sentido que fosse um multipolígono, mas eu gostaria de verificar isso.
22413 Gregory

Respostas:

10

O texto conhecido não se destina a salvar camadas como arquivos de forma que consistem em muitos objetos. O WKT define como representar a geometria de um objeto. Essa geometria pode ser única ou múltipla. Geometrias de várias partes significam que a geometria de um objeto consiste em várias partes. Por exemplo, as ilhas havaianas podem ser representadas como um objeto, mas consistem em muitas geometrias.

O arquivo de forma é uma coleção desses tipos de objetos. Os objetos geralmente também possuem algumas informações de atributo que também fazem parte de um arquivo de formas.

Sua abordagem ogr2ogr converte esses objetos para o formato csv com geometria WKT (e representações de texto dos atributos). Se você realmente deseja combinar todas as geometrias em um MULTIPOLYGON, primeiro é necessário converter todos os objetos em uma multi geometria. Você pode fazer isso no QGIS. Selecione no menu Vetor Geometry Tools e depois Singleparts to Multiparts. Então você pode converter isso em wkt com ogr2ogr.

Espero que isso faça sentido.

LauriK
fonte
Isso faz sentido e terei a chance de experimentá-lo em breve.
22713 Gregory
Ok, no QGIS, usei Vector / Geometry Tools / Single parts para multipart. Salvei a saída como um novo shapefile, mas quando carreguei esse arquivo no QGIS, ele aparece em branco e a tabela de atributos está completamente vazia (talvez nulo seja uma descrição melhor, pois também não há cabeçalhos).
Gregory
Você @pyrogerg selecionou algum campo exclusivo quando a ferramenta solicitou isso? Isso significa que a ferramenta "agrupa" todos os recursos que têm o mesmo valor nesse campo. Se você não possui nenhum campo que deseja exclusivo, basta criar um com a calculadora de campo. Você pode acessá-lo na tabela de atributos. Verifique se a camada está no modo de edição (ícone da caneta). Em seguida, selecione a Calculadora de campos e "calcule", por exemplo, o valor 1 para cada linha de um novo campo.
21313 LauriK
1
+1 Tomei a liberdade de esclarecer melhor sua edição mencionando explicitamente que a saída incluirá os atributos.
whuber
4

Eu escrevi um plugin QGIS que salva imediatamente a camada ativa em um arquivo .wkt.

O nome do plug-in é "WktExport". Você pode procurá-lo no painel de plug-in padrão do QGIS.

BTW, o link para a página do plugin é este:

https://plugins.qgis.org/plugins/wktexport/

O plug-in "WktExport" para QGIS cria uma pasta chamada "WktExport" onde está o SHP original e insira na pasta um arquivo .wkt contendo os elementos no formato ascii WKT de todos os objetos do SHP (mas também KML ou outro arquivo original formato).

O nome do arquivo .wkt está dentro da data e hora do salvamento, portanto, salvando-o muitas vezes, você terá muitas versões do mesmo arquivo.

Isso pode ser útil para criar animações de um progresso de trabalho cartográfico ou para documentar o status atual de um arquivo.

Por favor, envie uma mensagem para a lista qgis-developer, especialmente se você achar o wktexport útil.

Geo DrinX
fonte
O link do projeto está quebrado.
Luke Hutchison