У меня есть 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"
Любые идеи?
Ответы:
Это может быть немного сложнее, но если мои два цента чего-то стоят (и если вы используете продукты MS Office), я бы рекомендовал импортировать ваш .csv в базу данных MS Access .mdb в виде таблицы. (Примечание: для базы данных .mdb существует ограничение размера 2 ГБ ).
Затем вы можете добавить эту таблицу Access .mdb в ваш документ ArcMap и сделать щелчок правой кнопкой мыши> «Показать данные x, y»:
Сохраняя ваши данные в базе данных и читая из этой таблицы для отображения ваших точек данных x, y, вы можете вносить изменения в свои данные, и эти изменения будут автоматически отражаться в точках данных x, y при следующем обновлении отображения карты. вместо того, чтобы каждый раз создавать новый шейп-файл или вид слоя. Это также кажется более надежным способом управления таким большим объемом данных.
источник
Поскольку значения полей Lat и Long заключены в
"32.363544","-110.969778"
кавычки, они на самом деле не считаются числовыми.Для отображения данных xy необходимо, чтобы поля x и y были числовыми.
Удалите окружающие цитаты, и это должно работать. Если у вас есть доступ к Unix-машине, grep / sed наверняка облегчит эту работу. Есть также окна портов этих инструментов.
Кроме того, я бы избегал использовать «Long» в качестве имени поля - могут быть случаи, когда оно рассматривается как зарезервированное слово.
источник
Есть ли в файле CSV строка заголовка, которая может сбить с толку ArcGIS?
Кроме того, попробуйте скопировать только одну из строк из CSV и посмотрите, работает ли она - таким образом вы можете устранить ошибки форматирования. Используйте текстовый редактор, такой как UltraEdit или Notepad ++, который способен открывать большие текстовые файлы, чтобы скопировать строку примера.
Я не знаю, как работает импортер ArcGIS, но вы можете обнаружить, что файл слишком велик, чтобы с ним не справиться, поэтому может потребоваться разбивка на куски.
источник
Если у вас есть SQL Server Express, вы можете выполнить некоторые из них.
Это объединено из нескольких разных запросов (где лат / лонг были текстовыми полями):
Возможно, вам придется настроить сервер SQL для специальных распределенных запросов.
Это может быть излишним за 1 работу, но оно того стоит, если вы часто имеете дело с большим количеством разных файлов. Хотя с большими файлами, вы можете посмотреть bcp.exe ( http://msdn.microsoft.com/en-us/library/aa174646(v=sql.80).aspx ) для массового импорта.
источник
Если вы просто хотите создать шейп-файл из него, попробуйте QGIS www.qgis.org Текстовый плагин с разделителями, который можно загрузить из QGIS, делает это легко. Если вы хотите перенести его в ArcMap, сначала убедитесь, что проекция выполняется через ArcCatalog.
источник
Также убедитесь, что в заголовках нет пробелов. Например, «UTM Zone» должно быть «UTM_Zone». Просто нужно помнить, так как это было проблемой для меня при импорте.
источник