Vous préparez des fichiers CSV pour les utiliser dans ArcGIS Desktop?

16

Comment préparer des fichiers CSV à utiliser dans ArcGIS Desktop.

Je pose la question parce que j'ai des problèmes à utiliser les fichiers CSV car ArcGIS attribue des types de champ incorrects à mes colonnes et interprète mal des caractères spéciaux tels que á ou ê.

J'ai lu sur le forum Esri qu'il existe un soi-disant fichier schema.ini qui définit en quelque sorte les types de champs, par exemple "Col22 = V002 Text" voir ici http://forums.esri.com/Thread.asp?c=93&f = 1149 & t = 64464

C'est assez drôle parce que j'ai souvent vu ces fichiers .ini sur mon disque, mais je ne me suis jamais demandé à quoi ils servaient. C'est un peu bizarre qu'Excel stocke de telles métadonnées dans un fichier supplémentaire car d'autres programmes comme R ne le font pas.

J'ai déjà essayé de manipuler ce fichier .ini avec peu de succès car je n'ai pas trouvé comment appliquer par exemple le type "string". Il y a quelques informations sur les sites MS, voir ici: http://msdn.microsoft.com/en-us/library/windows/desktop/ms709353%28v=vs.85%29.aspx mais je ne pouvais pas trouver une solution .

De plus, je n'aimais pas vraiment l'idée de travailler avec ce fichier .ini car c'est tout un tas de travail de définir et de taper tous les noms de champs quand j'ai disons 50 colonnes. Et ces fichiers .ini peuvent se perdre, etc.

Dspanes
la source

Réponses:

16

Ma solution rapide consiste à créer la première ligne avec des valeurs fictives, puis à supprimer cette ligne / cet enregistrement après l'avoir introduit dans ArcGIS.

Cette première ligne contient des valeurs représentatives ou des valeurs souvent très différentes (par exemple des caractères alphabétiques même si la colonne contient des nombres que je veux être du type de données texte) et avec le plus grand nombre de caractères nécessaires pour cette ligne (car les champs de texte ont tendance à être tronqués) .

Les valeurs de date / heure sont sujettes à des erreurs d'importation (en particulier entre les formats de date par défaut Canada / États-Unis), mon travail consiste donc à diviser les parties date / heure en colonnes distinctes (par exemple, année, mois, jour, heure, minute), puis les concaténer dans un nouveau calcul de champ après avoir réussi à les intégrer à ArcGIS.

La pointe des coordonnées géographiques de Jamie est également nécessaire - spécifiez des valeurs négatives pour la longitude de l'hémisphère occidental et la latitude de l'hémisphère sud. Et l'unicode s'occupe des caractères spéciaux.

Enfin, si un type de données de champ est encore mal interprété après avoir été importé dans ArcGIS, j'ajouterai un nouveau champ dans le type de données correct et calculera / convertira les valeurs du champ d'origine, mais généralement la ligne / l'enregistrement factice s'occupe de la plupart, sinon tous, problèmes.

ccn
la source
8

Un léger écart par rapport à la couche CSV-> ArcGIS traditionnelle pourrait être d' utiliser ogr2ogr pour créer votre fichier de formes à partir de CSV AVANT de le charger dans ArcMap.

Lorsque vous utilisez OGR , vous pouvez créer manuellement un fichier CSVT qui décrit vos types de colonnes, similaire à ce qu'ArcGIS tente de faire avec le fichier schema.ini.

Ce billet de @underdark sur Comment spécifier les types de données des colonnes CSV (à utiliser dans QGIS) explique les détails de la création d'un CSVT. Vous pouvez ignorer l'utilisation de QGIS, car il utilise simplement ogr pour importer les données CSV dans son interface utilisateur.

RyanKDalton-OffTheGridMaps
la source
7

Avec ArcGIS 10, vous pouvez créer la classe d'entités et définir d'abord tous les types de champs, puis charger le fichier .csv à l'aide d'ArcCatalog. Cliquez simplement avec le bouton droit sur la classe d'entités et choisissez Charger> Charger les données. Suivez ensuite la boîte de dialogue Simple Data Loader pour faire correspondre les champs, etc. Il s'agit d'un simple chargeur dans la mesure où il n'y a pas beaucoup d'options mais il fonctionne pour des données bien formatées. Je ne sais pas si c'est nouveau pour 10 car je n'ai pas de version antérieure à portée de main.

Rich Wawrzonek
la source
3

La bonne façon de résoudre ces problèmes est d'utiliser un fichier 'schema.ini' comme suggéré par @Kirk_Kuykendall dans les commentaires. Il s'agit d'une façon standard de Microsoft de gérer les entrées de l'un ou l'autre CSV dans une base de données où le type de colonne peut être interprété de manière ambiguë.

ArcGIS respecte ces fichiers «schema.ini» lors de l'importation à partir de CSV.

Voir la documentation de Microsoft sur: https://docs.microsoft.com/en-us/sql/odbc/microsoft/schema-ini-file-text-file-driver?view=sql-server-2017

Le fichier «schema.ini» doit se trouver au même emplacement que votre fichier CSV et il peut inclure des configurations pour plusieurs autres fichiers CSV au même emplacement si vous en avez besoin.

Un simple fichier "schema.ini" pour un seul fichier CSV qui n'a qu'une seule colonne qui autrement serait lu avec le mauvais type pourrait ressembler à ceci:

[SomeFileName.csv]
Col2=SomeFieldName Long
Fils d'une plage
la source
Confirmé que cela fonctionne dans ArcGIS Pro. J'utilisais l'autre travail autour duquel vous ajoutez une ligne de données supérieure avec des valeurs qui correspondent au type de données que vous désirez, ce qui fonctionne pour des choses ponctuelles, mais si la table est énorme ou si vous avez une automatisation, c'est la meilleure solution à coup sûr. Vous venez de le régler et de l'oublier!
alexGIS
1

Une solution de contournement que j'ai trouvée consiste à ouvrir le CSV dans un éditeur de texte (j'ai utilisé notepad ++) et à enregistrer à nouveau en tant que CSV. Je ne vois aucun changement visible dans le contenu du fichier, y compris des caractères de balisage spéciaux, mais le problème est probablement lié à la façon dont Excel formate les fichiers CSV. J'enregistrais le fichier dans Excel en utilisant les options CSV standard «CSV (délimité par des virgules) (*. Csv)». Peut-être qu'un format CSV différent fonctionnerait mieux.

Informations supplémentaires: quelque chose de fondamental doit avoir changé avec le fichier CSV lorsque je l'ai enregistré avec notepad ++, car maintenant je peux le modifier et l'enregistrer dans Excel et il est toujours importé sous forme numérique par arcmap. Je n'ai cependant aucune idée de ce qui a changé.

DrPo
la source
-2

Étonnamment, ouvrir le fichier d'origine (pour moi .txt) dans un éditeur de texte (UltraEdit pour moi) et l'enregistrer en tant que .csv ou .txt a fonctionné. Il n'y a aucun changement notable dans le fichier dans UltraEdit, pandas ou toute autre méthode d'examen que je peux voir.

Aucune des solutions de contournement, y compris la mienne, n'explique la raison fondamentale sous-jacente pour laquelle ArcMap ne décide parfois que de lire les colonnes numériques sous forme de texte.

Donc, cela a fonctionné deux fois ... puis la même procédure exacte a cessé de fonctionner.

Je dois supprimer toutes les jointures, supprimer la table, arrêter ArcMap, ouvrir la table dans un éditeur de texte, réenregistrer la table, ouvrir ArcMap, ajouter la table et refaire la jointure ... chaque fois que je change quoi que ce soit dans le table.

Wesley Kitlasten
la source