Подготовка файлов CSV для использования в ArcGIS Desktop?

16

Как подготовить файлы CSV для использования в ArcGIS Desktop.

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

Я прочитал на форуме Esri, что существует так называемый файл schema.ini, который как-то определяет типы полей, например, «Col22 = V002 Text», см. Здесь http://forums.esri.com/Thread.asp?c=93&f. = 1149 & т = 64464

Это довольно забавно, потому что я часто видел эти файлы .ini на своем диске, но никогда не задумывался, для чего они хороши. Довольно странно, что Excel хранит такие метаданные в дополнительном файле, поскольку другие программы, такие как R, не делают этого.

Я уже пытался манипулировать этим INI-файлом с небольшим успехом, так как я не нашел, как применить, например, строковый тип. На сайтах MS есть некоторая информация, см. Здесь: http://msdn.microsoft.com/en-us/library/windows/desktop/ms709353%28v=vs.85%29.aspx, но я не смог найти решение ,

Также мне не очень понравилась идея поработать с этим INI-файлом, потому что довольно сложно определить и напечатать все имена полей, скажем, 50 столбцов. И эти файлы .ini могут быть потеряны и т. Д.

Dspanes
источник

Ответы:

16

Мое быстрое решение - создать первую строку с фиктивными значениями, а затем удалить эту строку / запись после внесения в ArcGIS.

Эта первая строка содержит репрезентативные значения или часто совершенно разные значения (например, буквенные символы, даже если столбец содержит числа, которые я хочу использовать в качестве текстовых данных) и с наибольшим количеством символов, необходимых для этой строки (поскольку текстовые поля имеют тенденцию к усечению) ,

Значения даты / времени подвержены ошибкам импорта (особенно между форматами даты по умолчанию в Канаде и США), поэтому моя задача - разделить части даты / времени на отдельные столбцы (например, год, месяц, день, час, минута), а затем объедините их в новом вычислении поля после успешного ввода в ArcGIS.

Также необходим наконечник с географическими координатами от Джейми - укажите отрицательные значения для долготы западного полушария и широты южного полушария. А Юникод заботится о специальных символах.

И наконец, если после ввода в ArcGIS тип данных поля по-прежнему неверно истолковывается, я добавлю новое поле в правильный тип данных и вычислю / преобразую значения из исходного поля, но обычно фиктивная строка / запись заботится о большинстве, если нет все проблемы.

CCN
источник
8

Небольшое отклонение от традиционного слоя CSV-> ArcGIS может заключаться в использовании ogr2ogr для создания шейп-файла из CSV ПЕРЕД загрузкой его в ArcMap.

При использовании OGR вы можете вручную создать файл CSVT, который описывает типы столбцов, аналогично тому, что ArcGIS пытается сделать с файлом schema.ini.

В этом посте @underdark « Как указать типы данных столбцов CSV» (для использования в QGIS) объясняются подробности создания CSVT. Вы можете игнорировать использование QGIS, так как он просто использует ogr для импорта данных CSV в свой пользовательский интерфейс.

RyanKDalton-OffTheGridMaps
источник
7

С ArcGIS 10 вы можете сначала создать класс объектов и установить все типы полей, а затем загрузить файл .csv с помощью ArcCatalog. Просто щелкните правой кнопкой мыши класс объектов и выберите «Загрузить»> «Загрузить данные». Затем следуйте диалоговому окну Simple Data Loader для сопоставления полей и т. Д. Это простой загрузчик, в котором не так много опций, но он работает для хорошо отформатированных данных. Я не уверен, является ли это новым для 10, потому что у меня нет более удобной для проверки более ранней версии.

Rich Wawrzonek
источник
3

Правильный способ решить эти проблемы - использовать файл «schema.ini», как предложено @Kirk_Kuykendall в комментариях. Это стандартный метод Microsoft обработки входных данных из любого CSV в базу данных, где тип столбца можно интерпретировать неоднозначно.

ArcGIS учитывает эти файлы «schema.ini» при импорте из CSV.

См. Документацию Microsoft по адресу: https://docs.microsoft.com/en-us/sql/odbc/microsoft/schema-ini-file-text-file-driver?view=sql-server-2017.

Файл 'schema.ini' должен находиться в том же месте, что и ваш CSV-файл, и он может включать конфигурации для нескольких других CSV-файлов в одном и том же месте, если это необходимо.

Простой файл «schema.ini» для одного файла CSV, в котором есть только один столбец, который в противном случае читается с неверным типом, может выглядеть следующим образом:

[SomeFileName.csv]
Col2=SomeFieldName Long
Сын пляжа
источник
Подтверждено, что это работает в ArcGIS Pro. Я использовал другую работу, где вы добавляете верхнюю строку данных со значениями, которые соответствуют желаемому типу данных, который работает на один раз, но если таблица огромна или у вас есть автоматизация, это, безусловно, лучшее решение. Вы просто устанавливаете это и забываете это!
alexGIS
1

Обходной путь, который я нашел, - открыть CSV в текстовом редакторе (я использовал notepad ++) и снова сохранить как CSV. Я не вижу видимых изменений в содержимом файла, включая специальные символы разметки, но проблема, вероятно, связана с тем, как Excel форматирует файлы CSV. Я сохранял файл в Excel, используя стандартные параметры CSV «CSV (с разделителями-запятыми) (*. Csv)». Возможно, другой формат CSV будет работать лучше.

Дополнительная информация: Что-то фундаментальное, должно быть, изменилось в файле CSV, когда я сохранил его с помощью notepad ++, потому что теперь я могу редактировать и сохранять его в Excel, и он все еще импортируется как числовой с помощью arcmap. Я понятия не имею, что изменилось, хотя.

DrPo
источник
-2

Удивительно открыть исходный файл (для меня .txt) в текстовом редакторе (UltraEdit для меня) и сохранить его как .csv или .txt сработало. В UltraEdit, пандах или любом другом методе проверки я не вижу заметных изменений в файле.

Ни один из обходных путей, включая мой, не объясняет фундаментальную причину, по которой ArcMap только иногда решает читать числовые столбцы как текст.

Итак, это сработало дважды ... затем точно такая же процедура перестала работать.

Мне нужно удалить все объединения, удалить таблицу, закрыть ArcMap, открыть таблицу в текстовом редакторе, заново сохранить таблицу, открыть ArcMap, добавить таблицу и повторить объединение ... каждый раз, когда я что-либо изменяю в стол.

Уэсли Китластен
источник