¿Prepara archivos CSV para usar en ArcGIS Desktop?

16

¿Cómo preparo los archivos CSV para usar en ArcGIS Desktop?

Pregunto porque tengo algunos problemas al usar archivos CSV porque ArcGIS atribuye tipos de campo incorrectos a mis columnas y también malinterpreta caracteres especiales como á o ê.

He leído en el foro de Esri que hay un llamado archivo schema.ini que define de alguna manera los tipos de campo, por ejemplo, "Col22 = Texto V002", consulte aquí http://forums.esri.com/Thread.asp?c=93&f = 1149 & t = 64464

Eso es divertido porque a menudo he visto estos archivos .ini en mi disco, pero nunca me he preguntado para qué sirven. Es un poco extraño que Excel almacene dichos metadatos en un archivo adicional ya que otros programas como R no lo hacen.

Ya intenté manipular este archivo .ini con poco éxito ya que no descubrí cómo aplicar, por ejemplo, el tipo "string". Hay información sobre los sitios de MS, consulte aquí: http://msdn.microsoft.com/en-us/library/windows/desktop/ms709353%28v=vs.85%29.aspx pero no pude encontrar una solución .

Tampoco me gustó mucho la idea de trabajar con este archivo .ini porque es bastante trabajo definir y escribir todos los nombres de campo cuando tengo, digamos, 50 columnas. Y estos archivos .ini pueden perderse, etc.

Dspanes
fuente

Respuestas:

16

Mi solución rápida es crear la primera fila, todo con valores ficticios, y luego eliminar esta fila / registro después de activar ArcGIS.

Esta primera fila contiene valores representativos o, a menudo, valores muy diferentes (por ejemplo, caracteres alfabéticos, incluso si la columna contiene números que quiero que sean de tipo de datos de texto) y con la mayor cantidad de caracteres necesarios para esa fila (porque los campos de texto tienden a truncarse) .

Los valores de fecha / hora están sujetos a errores de importación (especialmente entre los formatos de fecha predeterminados de Canadá / EE. UU.), Por lo que mi trabajo consiste en dividir las partes de fecha / hora en columnas separadas (por ejemplo, año, mes, día, hora, minuto), y luego concatene estos en un nuevo cálculo de campo después de introducirlos correctamente en ArcGIS.

La punta de coordenadas geográficas de Jamie también es necesaria: especifique valores negativos para la longitud del hemisferio occidental y la latitud del hemisferio sur. Y unicode se encarga de personajes especiales.

Por último, si un tipo de datos de campo aún se malinterpreta después de ingresar a ArcGIS, agregaré un nuevo campo en el tipo de datos correcto y calcularé / convertiré los valores del campo original, pero generalmente la fila / registro ficticio se ocupará de la mayoría, si no todos, problemas.

ccn
fuente
8

Una ligera desviación de la capa tradicional CSV-> ArcGIS podría ser usar ogr2ogr para crear su archivo de forma desde CSV ANTES de cargarlo en ArcMap.

Al usar OGR , puede crear manualmente un archivo CSVT que describa sus tipos de columna, similar a lo que ArcGIS intenta hacer con el archivo schema.ini.

Esta publicación de @underdark sobre Cómo especificar tipos de datos de columnas CSV (para usar en QGIS) explica los detalles de la creación de un CSVT. Puede ignorar el uso de QGIS, ya que solo usa ogr para importar los datos CSV en su interfaz de usuario.

RyanKDalton-OffTheGridMaps
fuente
7

Con ArcGIS 10, puede crear la clase de entidad y establecer primero todos los tipos de campo, luego cargar el archivo .csv usando ArcCatalog. Simplemente haga clic con el botón derecho en la clase de entidad y elija Cargar> Cargar datos. Luego, siga el cuadro de diálogo Cargador de datos simple para unir los campos, etc. Es un cargador simple en el sentido de que no hay muchas opciones, pero funciona para datos bien formateados. No estoy seguro de si esto es nuevo para 10 porque no tengo una versión anterior útil para verificar.

Rich Wawrzonek
fuente
3

La forma correcta de resolver estos problemas es mediante el uso de un archivo 'schema.ini' como lo sugiere @Kirk_Kuykendall en los comentarios. Esta es una forma estándar de Microsoft de manejar la entrada de CSV en una base de datos donde el tipo de columna podría interpretarse de manera ambigua.

ArcGIS respeta estos archivos 'schema.ini' al importar desde CSV.

Consulte la documentación de Microsoft en: https://docs.microsoft.com/en-us/sql/odbc/microsoft/schema-ini-file-text-file-driver?view=sql-server-2017

El archivo 'schema.ini' debe estar en la misma ubicación que su archivo CSV y puede incluir configuraciones para varios otros archivos CSV en la misma ubicación si lo necesita.

Un simple archivo 'schema.ini' para un solo archivo CSV que solo tiene una columna que de lo contrario se lee con el tipo incorrecto podría verse así:

[SomeFileName.csv]
Col2=SomeFieldName Long
Hijo de Playa
fuente
Confirmó que esto funciona en ArcGIS Pro. Estaba usando el otro trabajo en el que agrega una fila de datos superior con valores que coinciden con el tipo de datos que desea, que funciona por una sola vez, pero si la tabla es enorme o tiene automatización, esta es la mejor solución con seguridad. ¡Solo configúralo y olvídalo!
alexGIS
1

Una solución que he encontrado es abrir el CSV en un editor de texto (utilicé notepad ++) y guardarlo como CSV nuevamente. No veo ningún cambio visible en el contenido del archivo, incluidos los caracteres de marcado especiales, pero el problema probablemente esté relacionado con la forma en que Excel formatea los archivos CSV. Estaba guardando el archivo en Excel usando las opciones estándar de CSV 'CSV (delimitado por comas) (*. Csv)'. Quizás un formato CSV diferente funcionaría mejor.

Información adicional: Algo fundamental debe haber cambiado con el archivo CSV cuando lo guardé con notepad ++, porque ahora puedo editarlo y guardarlo en Excel y todavía es importado como numérico por arcmap. Sin embargo, no tengo idea de qué cambió.

DrPo
fuente
-2

Sorprendentemente, abrir el archivo original (para mí .txt) en un editor de texto (UltraEdit para mí) y guardarlo como .csv o .txt funcionó. No hay cambios notables en el archivo en UltraEdit, pandas o cualquier otro método de examen que pueda ver.

Ninguna de las soluciones, incluida la mía, explica la razón fundamental subyacente por la cual ArcMap solo a veces decide leer columnas de números como texto.

Entonces, esto funcionó dos veces ... luego el mismo procedimiento dejó de funcionar.

Tengo que eliminar todas las combinaciones, eliminar la tabla, cerrar ArcMap, abrir la tabla en un editor de texto, volver a guardar la tabla, abrir ArcMap, agregar la tabla y rehacer la unión ... cada vez que cambio algo en el mesa.

Wesley Kitlasten
fuente