¿Cómo puedo convertir un archivo de Excel con columnas x, y en un archivo de forma de punto?
Hay algunos requisitos algo opcionales además de la creación correcta de un shapefile:
- Se deben conservar los tipos de columna (según los especificadores de formato de Excel) (especialmente los tipos de fecha)
- Los nombres de columna deben tomarse del encabezado
- Me gustaría hacer esto desde la línea de comandos
- Si puedo incluir referencias espaciales heterogéneas para los puntos en una tercera columna, estaría muy feliz :)
Respuestas:
Recomiendo usar OGR / GDAL , que es parte de la biblioteca GDAL . OGR admite un formato virtual que permite la especificación a través de un archivo XML. Si convierte su hoja de cálculo de Excel en un CSV, puede generar un VRT para acceder a los datos.
Asumiendo que tienes algo como esto
example.csv
:Puede crear un VRT de la
example.vrt
siguiente manera:A partir de GDAL 1.7, también puede especificar los tipos de datos de los campos de atributos utilizando el
<Field>
elemento dentro de<OGRVRTLayer>
, de esta manera:Tenga en cuenta que los archivos de forma almacenan atributos en el formato DBASE IV que tiene menos flexibilidad en los tipos de datos que Excel. Una vez que haya especificado su archivo VRT, puede usar la cadena de herramientas OGR normal para convertir los datos en un Shapefile:
Desafortunadamente, # 4 no es posible: la especificación del archivo de forma permite una sola proyección (visible aquí
example.prj
después del último paso).fuente
<Field>
etiqueta. Supongo que lo resolveré por mi cuenta :)Puede usar el complemento de texto delimitado que viene con QGIS (http://qgis.org ) para cargar el archivo de texto y luego guardarlo como un archivo de forma.
fuente
Aunque no desde la línea de comandos, puede hacerlo dentro de la aplicación ArcGIS. Desde 9.3.1, solo agregue el XLS directamente en ArcMap. Cree una capa de eventos XY desde XLS (es decir, elija las columnas X, Y y establezca su referencia espacial). Luego exporte esta capa de eventos XY a un nuevo .shp. Esto podría automatizarse fácilmente con un simple script de Python / VBA o un modelo en modelbuilder . Estaremos encantados de ayudar en este flujo de trabajo básico si necesita más información.
fuente
Busqué pero no pude encontrar una página de ayuda en Mostrar datos XY en la ayuda web, pero el proceso es simple.
Solo necesita el nivel de licencia ArcView (Básico) de ArcGIS (for) Desktop para hacer esto.
fuente
Siempre existe la opción aventurera. Podrías escribir el archivo de forma tú mismo. ESRI publica la especificación para shapefiles, que puede leer aquí:
http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf
Probablemente también deba escribir un archivo DBF. Puedes leer sobre el formato aquí:
http://www.clicketyclick.dk/databases/xbase/format/dbf.html#DBF_STRUCT
Sin duda, esto es exagerado, pero le daría la ventaja de tener control sobre todo el proceso.
fuente
Personalmente prefiero usar FME de Safe Software (http://www.safe.com), que no solo me permite trazar puntos a partir de valores XY, sino que me brinda la flexibilidad de transformar las coordenadas de una proyección a otra antes de trazar, especificar el tipo de delimitador, línea de inicio (en caso de que el archivo de texto tenga información de encabezado), adjunte atributos en caso de que el archivo de texto tenga X, Y, información de atributo para los datos del punto. En caso de que desee visualizar estos datos en Google Earth, puede escribirlos en formato KML mientras especifica también el estilo de punto KML. ~ SRG
fuente
Si desea realizar algún otro procesamiento en los datos x, y, puede cargar los datos en postgres, usar geomfromtext con concatenación para crear un tipo de datos de geometría y luego usar pgsql2shp para exportar a la forma. Este enfoque también le permitirá retener datos heterogéneos del sistema de referencia espacial en otra columna, que luego podría usar para convertir todos sus puntos en un sistema de referencia común dentro de la base de datos antes de exportar a la forma. Me doy cuenta de que esto implica más pasos que ogr / gdal, pero le dará mucha más flexibilidad.
fuente
¿Qué pasa con la carga de sus archivos CSV en Spaceiallite y luego usar OGR o QGIS para exportar a un shapefile?
http://www.gaia-gis.it/spatialite-2.2/index.html
Incluso puede exportar desde spaceialite a un shapefile directamente.
http://www.gaia-gis.it/spatialite-2.2/spatialite-2.2_tutorial.html#t3.1
fuente
Para una transformación más básica, puede usar el transformador de reemplazo de punto 2D en FME 2013. Debe señalar en qué columnas se ubican los valores X e Y y luego FME transformará estos valores en, por ejemplo, un archivo de forma con puntos.
Los nombres y tipos de columna se pueden configurar según sea necesario
fuente