ОШИБКА 000212: Не удается создать источник события XY Не удалось выполнить (MakeXYEventLayer)?

10

У меня есть CSV-файл размером 133 МБ и содержит более 1,3 миллиона строк данных. Каждая строка данных имеет свой широту / длину, и мне было интересно, как лучше всего отобразить эти точки на основе широты / долготы в ArcGIS Desktop 10 и в конечном итоге превратить их в точечный шейп-файл?

До сих пор я пробовал инструмент «Создать XY Event Layer», но это не помогает ...

ОШИБКА 000212: Невозможно создать источник события XY Не удалось выполнить (MakeXYEventLayer).

Файл CSV правильно отформатирован, а поля lat / long являются числовыми, поэтому я понятия не имею, почему он продолжает падать.

Вот как выглядят первые 2 строки моего CSV, а первая строка должна быть заголовком:

"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"

Любые идеи?

Фарлонг
источник
2
Вам нужно будет разбить файл - еще лучше загрузить его в базу данных - как минимум в файловую базу геоданных - gis.stackexchange.com/questions/4414/…
Mapperz
У меня есть рыболовная сеть, которую я хочу разбить на размер более 2 ГБ. Есть идеи, как это сделать в ArcGIS? Это будет очень полезно. Спасибо, Ibe
Ibe
Спасибо за указание. Еще один вопрос: есть ли в QGIS способ конвертировать растр в шейп-файл (размер шейп-файла снова будет больше 2 ГБ)?
Ibe

Ответы:

7

Это может быть немного сложнее, но если мои два цента чего-то стоят (и если вы используете продукты MS Office), я бы рекомендовал импортировать ваш .csv в базу данных MS Access .mdb в виде таблицы. (Примечание: для базы данных .mdb существует ограничение размера 2 ГБ ).

Затем вы можете добавить эту таблицу Access .mdb в ваш документ ArcMap и сделать щелчок правой кнопкой мыши> «Показать данные x, y»:

Rick-клик

Сохраняя ваши данные в базе данных и читая из этой таблицы для отображения ваших точек данных x, y, вы можете вносить изменения в свои данные, и эти изменения будут автоматически отражаться в точках данных x, y при следующем обновлении отображения карты. вместо того, чтобы каждый раз создавать новый шейп-файл или вид слоя. Это также кажется более надежным способом управления таким большим объемом данных.

Результирующие x, y точки данных

Джейсон
источник
2
2 ГБ - это максимальный предел для MS Access и Personal GeoDatabase - будьте осторожны при приближении к этому пределу, поскольку личные базы геоданных при редактировании больше, чем без редактирования
Mapperz
@Mapperz, вы правы, 2 ГБ - это ограничение размера базы данных .mdb, независимо от того, создается она Arc или нет. Я неправильно говорил. У меня есть несколько, размер которых приближается к 2 ГБ (но не больше), которые я использовал, между прочим, для картирования станций регистрации уровня воды на юго-востоке США.
Джейсон
Отлично, я загрузил его в mdb, затем экспортировал в файловую базу геоданных, и он работает отлично, спасибо!
Furlong
12

Поскольку значения полей Lat и Long заключены в "32.363544","-110.969778"кавычки, они на самом деле не считаются числовыми.

Для отображения данных xy необходимо, чтобы поля x и y были числовыми.

Удалите окружающие цитаты, и это должно работать. Если у вас есть доступ к Unix-машине, grep / sed наверняка облегчит эту работу. Есть также окна портов этих инструментов.

Кроме того, я бы избегал использовать «Long» в качестве имени поля - могут быть случаи, когда оно рассматривается как зарезервированное слово.

Кирк Куйкендалл
источник
1
правильный «32» является строкой и должен быть числовым
Mapperz
2

Есть ли в файле CSV строка заголовка, которая может сбить с толку ArcGIS?

Кроме того, попробуйте скопировать только одну из строк из CSV и посмотрите, работает ли она - таким образом вы можете устранить ошибки форматирования. Используйте текстовый редактор, такой как UltraEdit или Notepad ++, который способен открывать большие текстовые файлы, чтобы скопировать строку примера.

Я не знаю, как работает импортер ArcGIS, но вы можете обнаружить, что файл слишком велик, чтобы с ним не справиться, поэтому может потребоваться разбивка на куски.

MerseyViking
источник
2

Если у вас есть SQL Server Express, вы можете выполнить некоторые из них.

Это объединено из нескольких разных запросов (где лат / лонг были текстовыми полями):

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

Возможно, вам придется настроить сервер SQL для специальных распределенных запросов.

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

Это может быть излишним за 1 работу, но оно того стоит, если вы часто имеете дело с большим количеством разных файлов. Хотя с большими файлами, вы можете посмотреть bcp.exe ( http://msdn.microsoft.com/en-us/library/aa174646(v=sql.80).aspx ) для массового импорта.

Джей Камминс
источник
0

Если вы просто хотите создать шейп-файл из него, попробуйте QGIS www.qgis.org Текстовый плагин с разделителями, который можно загрузить из QGIS, делает это легко. Если вы хотите перенести его в ArcMap, сначала убедитесь, что проекция выполняется через ArcCatalog.

Юкка
источник
0

Также убедитесь, что в заголовках нет пробелов. Например, «UTM Zone» должно быть «UTM_Zone». Просто нужно помнить, так как это было проблемой для меня при импорте.

Тристан Форвард
источник