Como converter um arquivo do Excel com colunas x, y em um shapefile de ponto?
Existem alguns requisitos opcionais, além da criação correta de um shapefile:
- Os tipos de coluna (conforme os especificadores de formato do Excel) devem ser mantidos (especialmente os tipos de data)
- Os nomes das colunas devem ser retirados do cabeçalho
- Eu gosto de fazer isso a partir da linha de comando
- Se eu puder incluir referências espaciais heterogêneas para os pontos em uma terceira coluna, eu ficaria muito feliz :)
Respostas:
Eu recomendo usar o OGR / GDAL , que faz parte da biblioteca GDAL . OGR suporta um formato virtual que permite a especificação através de um arquivo XML. Se você converter sua planilha do Excel em um CSV, poderá gerar um VRT para acessar os dados.
Supondo que você tenha algo parecido com isto
example.csv
:Você pode criar um VRT da
example.vrt
seguinte maneira:A partir do GDAL 1.7, é possível especificar adicionalmente os tipos de dados dos campos de atributos usando o
<Field>
elemento dentro de<OGRVRTLayer>
, da seguinte forma:Lembre-se de que os shapefiles armazenam atributos no formato DBASE IV , com menos flexibilidade nos tipos de dados que o Excel. Depois de especificar seu arquivo VRT, você pode usar a cadeia de ferramentas OGR normal para converter os dados em um Shapefile:
Infelizmente, o nº 4 não é possível - a especificação do shapefile permite uma única projeção (visível aqui
example.prj
após a última etapa).fonte
<Field>
tag. Eu acho que vou descobrir isso sozinho :)Você pode usar o plug-in Delimited Text que acompanha o QGIS (http://qgis.org ) para carregar o arquivo de texto e salvá-lo como um shapefile.
fonte
Embora não seja da linha de comando, você pode fazer isso no ArcGIS App. Desde a 9.3.1, basta adicionar o XLS diretamente no ArcMap. Crie uma camada de eventos XY a partir do XLS (ou seja, escolha as colunas X, Y e defina sua referência espacial) Em seguida, exporte essa camada de eventos XY para um novo .shp Isso pode ser facilmente automatizado com um script python / VBA simples ou um modelo no modelbuilder . É um prazer ajudar com esse fluxo de trabalho básico, se você precisar de mais informações.
fonte
Procurei, mas não consegui encontrar uma página de ajuda em Exibir dados XY na ajuda da Web, mas o processo é simples.
Você só precisa do nível de licença do ArcView (Basic) do ArcGIS (for) Desktop para fazer isso.
fonte
Sempre há a opção aventureira. Você mesmo pode escrever o arquivo de formas. A ESRI publica a especificação para shapefiles, que você pode ler aqui:
http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf
Você provavelmente também precisará escrever um arquivo DBF. Você pode ler sobre o formato aqui:
http://www.clicketyclick.dk/databases/xbase/format/dbf.html#DBF_STRUCT
Sem dúvida, isso é um exagero, mas daria a vantagem de ter controle sobre todo o processo.
fonte
Pessoalmente, prefiro usar o FME da Safe Software (http://www.safe.com), que não só me permite plotar pontos a partir dos valores XY, mas também oferece a flexibilidade de transformar as coordenadas de uma projeção para outra antes de plotar, especifique o tipo de delimitador, linha de partida (caso o arquivo de texto contenha informações do cabeçalho), anexe atributos caso o arquivo de texto contenha informações X, Y, Attribute para os dados do ponto. Caso deseje visualizar esses dados no Google Earth, você pode gravá-los no formato KML, especificando também o estilo do ponto KML. ~ SRG
fonte
Se você quiser fazer algum outro processamento nos dados x, y, poderá carregar os dados no postgres, usar geomfromtext com concatenação para criar um tipo de dados de geometria e, em seguida, usar pgsql2shp para exportar para moldar. Essa abordagem também permitirá que você retenha dados heterogêneos do sistema de referência espacial em outra coluna, que você poderá usar para converter todos os seus pontos em um sistema de referência comum no banco de dados antes de exportar para o formato. Sei que isso envolve mais etapas do que ogr / gdal, mas lhe dará muito mais flexibilidade.
fonte
Que tal carregar seus arquivos CSV no spatiallite e usar o OGR ou QGIS para exportar para um shapefile.
http://www.gaia-gis.it/spatialite-2.2/index.html
Você pode até exportar diretamente do spatialite para um shapefile.
http://www.gaia-gis.it/spatialite-2.2/spatialite-2.2_tutorial.html#t3.1
fonte
Para uma transformação mais básica, você pode usar o transformador 2Dpointreplacer no FME 2013. Você precisa apontar em quais colunas os valores X e Y estão localizados e o FME transformará esses valores em, por exemplo, um arquivo de forma com pontos.
Os nomes e tipos de colunas podem ser configurados conforme necessário
fonte