Готуєте файли 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 & t = 64464

Це дивно, тому що я часто бачив ці файли .ini на своєму диску, але ніколи не замислювався над тим, для чого вони хороші. Це дивно, що Excel зберігає такі метадані у додатковому файлі, оскільки інші програми, такі як R, не роблять цього.

Я вже намагався маніпулювати цим .ini-файлом з невеликим успіхом, оскільки не з'ясував, як застосувати, наприклад, тип "string". Деякі відомості про сайти MS див. Тут: http://msdn.microsoft.com/en-us/library/windows/desktop/ms709353%28v=vs.85%29.aspx, але я не зміг знайти рішення .

Крім того, мені не дуже сподобалася ідея працювати з цим файлом .ini, тому що це досить велика робота з визначення та введення всіх імен полів, коли я скажу 50 стовпців. І ці .ini файли можуть загубитися тощо.

Відповіді:


16

Моє швидке виправлення - це створити перший рядок із фіксованими значеннями, а потім видалити цей рядок / запис після введення в ArcGIS.

Цей перший рядок містить репрезентативні значення або часто різко різні значення (наприклад, алфавітні символи, навіть якщо стовпець містить цифри, які я хочу бути типовими текстовими даними) та з найбільшою кількістю символів, необхідних для цього рядка (оскільки текстові поля мають тенденцію до урізання) .

Значення дати / часу підлягають помилкам імпорту (особливо між форматами дати за замовчуванням у Канаді / США), тому моя робота полягає в тому, щоб розділити дати / час на окремі стовпці (наприклад, рік, місяць, день, година, хвилина), а потім об'єднати їх у новий розрахунок на місцях після успішного впровадження в ArcGIS.

Також необхідний наконечник географічних координат від Джеймі - вкажіть негативні значення для довготи південної півкулі та широти південної півкулі. А unicode піклується про особливих символах.

Нарешті, якщо тип даних поля все ще неправильно трактується після введення в ArcGIS, я додаю нове поле у ​​правильний тип даних та обчислюю / перетворюю значення з вихідного поля, але зазвичай фіктивний рядок / запис бере на себе більшість, якщо ні всі проблеми.


8

Невеликий відхід від традиційного рівня CSV-> ArcGIS міг би використовувати ogr2ogr для створення свого файлу форми з CSV, перш ніж завантажувати його в ArcMap.

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

У цьому дописі @underdark про те, як вказати типи даних стовпців CSV (для використання в QGIS) пояснюються деталі створення CSVT. Ви можете ігнорувати використання QGIS, оскільки він просто використовує ogr для імпорту CSV-даних у свій інтерфейс користувача.


7

За допомогою ArcGIS 10 ви можете створити клас функцій та встановити спочатку всі типи полів, а потім завантажити файл .csv за допомогою ArcCatalog. Просто клацніть правою кнопкою миші клас функції та виберіть Завантажити> Завантажити дані. Потім перейдіть до діалогового вікна Простий навантажувач даних, щоб відповідати полям і т. Д. Це простий завантажувач, оскільки існує не так багато варіантів, але він працює для добре відформатованих даних. Я не впевнений, чи є це новим для 10, тому що я не маю зручної версії для перевірки.


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 у текстовому редакторі (я використовував блокнот ++) і знову зберегти як CSV. Я не бачу помітних змін у вмісті файлу, включаючи спеціальні символи розмітки, але проблема, ймовірно, пов'язана з тим, як Excel форматує файли CSV. Я зберігав файл в Excel, використовуючи стандартні параметри CSV "CSV (розділено комами) (*. Csv)". Можливо, інший формат CSV працював би краще.

Додаткова інформація: Щось основне, мабуть, змінилося з файлом CSV, коли я зберігав його за допомогою блокнота ++, тому що тепер я можу редагувати та зберігати його в excel, і він все ще імпортується як числовий аркмапом. У мене немає поняття, що змінилося, хоча.


-2

Дивно відкрити оригінальний файл (для мене .txt) у текстовому редакторі (для мене UltraEdit) і зберегти його як .csv або .txt. Немає помітних змін у файлі в UltraEdit, пандах чи будь-якому іншому способі дослідження, який я бачу.

Жоден із способів вирішення, включаючи мій власний, не пояснює основної причини, чому ArcMap лише іноді вирішує читати стовпці з цифрами як текст.

Отже, це працювало двічі ... тоді точно та сама процедура перестала працювати.

Мені потрібно видалити всі об'єднання, видалити таблицю, вимкнути ArcMap, відкрити таблицю в текстовому редакторі, знову зберегти таблицю, відкрити ArcMap, додати таблицю та повторити приєднання ... щоразу, коли я щось міняю в стіл.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.