ERREUR 000212: impossible de créer la source d'événements XY. Échec de l'exécution (MakeXYEventLayer)?

10

J'ai un fichier csv d'une taille de 133 Mo et contenant plus de 1,3 million de lignes de données. Chaque ligne de données a son propre lat / long et je me demandais quelle serait la meilleure façon d'afficher ces points en fonction du lat / long dans ArcGIS Desktop 10 et finalement de le transformer en un fichier de formes de points?

Jusqu'à présent, j'ai essayé l'outil "Make XY Event Layer" mais cela continue d'échouer ...

ERREUR 000212: impossible de créer la source d'événements XY. Échec d'exécution (MakeXYEventLayer).

Le fichier csv est correctement formaté et les champs lat / long sont numériques, donc je n'ai aucune idée pourquoi il continue de planter.

Voici à quoi ressemblent les 2 premières lignes de mon CSV, la première ligne devrait être ce qui devrait être l'en-tête:

"LAT","LONG","CUSTOMER_MASTER_ID","STORE_NBR","TRANSACTION_DT","SKU_DIVISION_ID","SKU_DEPARTMENT_ID","SKU_CLASS_ID","SKU_CATEGORY_ID","SKU_NBR","SALES_AMT"
"32.363544","-110.969778","2000000792627","2940","8/11/2010","2060","3920","5120","84021","5127866","13.99"

Des idées?

Furlong
la source
2
Vous devrez diviser le fichier - encore mieux le charger dans une base de données - géodatabase fichier au minimum - gis.stackexchange.com/questions/4414/…
Mapperz
J'ai une résille que je veux casser en une taille supérieure à 2 Go. Une idée de comment le faire dans ArcGIS? Ce sera très utile. Merci, Ibe
Ibe
Merci d'avoir indiqué. Encore un Q: Existe-t-il un moyen dans QGIS de convertir un raster en fichier de formes (la taille du fichier de formes serait à nouveau supérieure à 2 Go)?
Ibe

Réponses:

7

Cela peut être un peu plus compliqué, mais si mes deux cents valent quelque chose (et si vous utilisez des produits MS Office), je vous recommande d'importer votre .csv dans une base de données MS Access .mdb sous forme de tableau. (Remarque: il existe une limite de taille de 2 Go pour une base de données .mdb ).

Vous pouvez ensuite ajouter cette table Access .mdb dans votre document ArcMap et faire un clic droit> "Afficher les données x, y":

Rick-clic

En conservant vos données dans une base de données et en lisant ce tableau pour afficher vos points de données x, y, vous pouvez apporter des modifications à vos données et ces modifications seront automatiquement reflétées dans les points de données x, y la prochaine fois que vous actualiserez l'affichage de la carte au lieu d'avoir à créer à chaque fois un nouveau fichier de formes ou vue de calque. Cela semble également être un moyen plus robuste de gérer une telle quantité de données.

Points de données x, y résultants

Jason
la source
2
2 Go est la limite maximale pour MS Access et Personal GeoDatabase - soyez prudent lorsque vous approchez de cette limite car les géodatabases personnelles en cours d'édition sont plus grandes que la non-édition.
Mapperz
@Mapperz, vous avez raison, 2 Go est la taille limite pour une base de données .mdb, qu'elle soit créée par Arc ou non. Je me suis mal exprimée. J'en ai plusieurs qui mesurent environ 2 Go (mais aucun de plus) que j'ai utilisé pour cartographier les stations d'enregistrement du niveau d'eau dans le sud-est des États-Unis, entre autres.
Jason
Excellent, je l'ai chargé dans une mdb, puis je l'ai exporté vers une géodatabase fichier et cela fonctionne très bien, merci!
Furlong
12

Étant donné que les valeurs des champs Lat et Long "32.363544","-110.969778"sont entourées de guillemets, elles ne sont pas vraiment traitées comme des valeurs numériques.

Pour afficher les données xy, les champs x et y doivent être numériques.

Supprimez les guillemets environnants et cela devrait fonctionner. Si vous avez accès à une machine unix, grep / sed rendrait ce travail plus facile. Il existe également des ports Windows pour ces outils.

De plus, j'éviterais d'utiliser "Long" comme nom de champ - il pourrait y avoir des cas où il est traité comme un mot réservé.

Kirk Kuykendall
la source
1
"32" correct est une chaîne et doit être numérique
Mapperz
2

Avez-vous une ligne d'en-tête dans le fichier CSV qui pourrait être source de confusion pour ArcGIS?

Essayez également de copier une seule des lignes du CSV et voyez si cela fonctionne - de cette façon, vous pouvez éliminer les erreurs de formatage. Utilisez un éditeur de texte comme UltraEdit ou Notepad ++ qui sont capables d'ouvrir de gros fichiers texte, pour copier votre exemple de ligne.

Je ne sais pas comment fonctionne l'importateur ArcGIS, mais vous pouvez trouver que le fichier est trop volumineux pour qu'il puisse y faire face, il peut donc avoir besoin d'être divisé en morceaux.

MerseyViking
la source
2

Si vous avez SQL Server Express, vous pourrez peut-être faire une partie du soulèvement.

Ceci est bricolé à partir de quelques requêtes différentes (où les lat / long étaient des champs de texte):

SELECT 
CONVERT(float,[latitude]) lat
,CONVERT(float,[longitude]) long
INTO TEMPPTS
FROM
OPENROWSET ('MSDASQL',
'Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=c:\temp;',
'SELECT * from GPSQuery.txt') g
WHERE longitude IS NOT NULL AND len(longitude) > 0
and [latitude] IS NOT NULL AND len([latitude]) > 0

Vous devrez peut-être configurer le serveur SQL pour les requêtes distribuées ad hoc.

sp_configure 'show advanced options', 1;
RECONFIGURE;
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO

Cela peut être exagéré pour 1 travail, mais ça vaut le coup si vous traitez fréquemment de nombreux fichiers différents. Bien qu'avec les gros fichiers, vous souhaitiez peut-être consulter bcp.exe ( http://msdn.microsoft.com/en-us/library/aa174646(v=sql.80).aspx ) pour l'importation en bloc.

Jay Cummins
la source
0

Si vous souhaitez simplement créer un fichier de formes à partir de celui-ci, essayez QGIS www.qgis.org Le plugin de texte délimité qui peut être chargé à partir de QGIS facilite cela. Si vous souhaitez ensuite l'intégrer dans ArcMap, assurez-vous d'abord de la projection via ArcCatalog.

Jukka
la source
0

Assurez-vous également que vos titres n'ont pas d'espaces. Par exemple, "UTM Zone" devrait être "UTM_Zone". Juste quelque chose à garder à l'esprit, car c'était un problème pour moi lors de l'importation.

Tristan Forward
la source