Зміна типу даних у таблиці атрибутів ArcGIS?


9

Як я можу змінити тип даних у таблиці атрибутів в ArcGIS для кількох полів?

Наприклад, якщо поля були експортовані як рядок з Excel, і я хотів би використовувати їх як числові значення?


1
Ви не можете виконати таблицю для таблиці, якщо типи даних не відповідають. Я знаю, що спробував.
Сем

будь ласка, уникайте формату та версії джерела даних. (ent database, shapefile, filegdb, personal gdb?)
Бред Несом

@Brad працює з shapefiles в arcgis 10.2, джерело даних локально знаходиться на моєму комп’ютері
Боротьба

Відповіді:



3

Ви не згадуєте, яку версію ArcGIS для Робочого столу ви використовуєте або де зберігаються ваші дані, але є сторінка Модифікація властивостей поля, яка описує, як за допомогою ArcGIS 10.2 (або пізнішої версії):

Деякі властивості поля можна змінити після створення таблиці або класу функцій

... але це стосується лише порожніх полів.

З 10.3 наведена вище функціональність також доступна за допомогою інструменту Alter Fields :

Перейменуйте поля та псевдоніми полів або змініть властивості поля.


потребують точності. з 10.2.1
GeoStoneMarten

Поля @GeoStoneMarten Alter у 10.2.1 видається лише для перейменування полів, тоді як моя відповідь стосується зміни типів даних, і я вважаю, що залишається дійсним. Однак, відповідь @Paul передбачає, що Alter Fields розширив свою функціональність і включив зміни типів даних у 10.3.
PolyGeo

Мало того, але так, якщо є існуючі дані ... Гаразд для іншого
GeoStoneMarten

2

Ви можете змінити тип даних поля для полів, які є у вашому класі функцій. Однак ви не зможете перетворити текстові поля в числові. Однак ви можете перетворити числові поля в рядки. Перегляньте сторінку допомоги Esri . Це не тільки для Enterprise geodatabase, вона працює чудово навіть для настільних баз геоданих, таких як файлова geodatabase.

Якщо таблиця або клас функцій перебуває у базі даних геоданих підприємства, робочої групи або настільних комп’ютерів , ви повинні підключитися як власник таблиці, щоб змінити властивості поля.

Оскільки ви маєте справу з Excel, найкращий спосіб переконатися у правильності типів даних - це визначення типів даних комірок безпосередньо в Excel перед імпортом будь-яких даних. Якщо у вас є текстове поле з цифрами, ви, звичайно, можете створити нове поле числового типу (наприклад, ціле чи подвійне) та обчислити значення на основі цього текстового поля. Це буде добре, якщо ваші цифри дійсно цифри ("12" буде працювати, але "12-1" не буде).


2

Наскільки мені відомо, це неможливо. У 10.3 полі Alter Field було розширено, що дозволило змінити тип поля; однак вона все ще працює лише тоді, коли в таблиці немає записів.

Ось один із підходів до цього:

  1. Додайте нове поле з тимчасовою назвою та правильним типом даних
  2. Використовуйте Calculate Fieldабо cursors(з кастингом, якщо потрібно)
  3. Видалити старе поле
  4. Alter Field перейменувати тимчасове поле
  5. (Необов’язково) Скопіюйте таблицю з деякими відображеннями поля, щоб відновити початковий порядок

Я ніколи цього не досліджував, але картографування полів може працювати для передачі полів новим типам даних, що значно спростить цей процес. Щось достеменно вивчити….


1
Зазвичай я спочатку перейменую старе поле. таким чином я можу створити нове поле, обчислити значення та видалити старе поле. Коли ви почнете обчислювати значення, можливо, знадобиться вибрати всі ненульові значення. та або перетворити / розділити будь-які рядкові значення
Брэд Несом

1
Також інструменти et et мають кілька безкоштовних функцій, які були б корисні. ian-ko.com Подивіться на безкоштовні функції гео-майстрів.
Бред Несом

@Brad Я розглядав безкоштовні функції, xtools був корисним, але я завжди відкритий для більше / кращих варіантів. дякую за вклад
Боротьба

@BradNesom, хороший момент! Це мало б значно більше сенсу.
Павло

1

Альтернативний спосіб полягає у відкритті .dbfфайлу в OpenOffice Calc (або еквіваленті) та ретельному зміні заголовків його стовпців. Наприклад, змініть тип з C(символу) на N(числовий). Проста порада: створіть резервну копію файлу перед спробою.


1

Хоча ви не можете змінити ім'я поля та тип даних у самому наборі даних, можна створити копію з потрібними змінами за допомогою інструменту ArcGIS "Клас функцій до класу функцій". У налаштуваннях ви можете змінити, імена, типи даних та інші характеристики полів.


1

Перш за все, потрібно спробувати зрозуміти, чому ArcGIS імпортує поле як тип рядка замість числового / подвійного типу даних. Я виявив, що навіть якщо ваша клітинка (в Excel) порожня, якщо в ній є "пробіли" (наприклад, коли ви натискаєте пробіл), ArcGIS буде інтерпретувати їх як символи. Якщо ви видалите їх, ви побачите, що вони тепер реєструватимуться як числові поля.


0

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

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


0

Якщо ваша мета - додати дані з таблиці X до іншої таблиці Y , але ви не можете, оскільки типи даних не відповідають , ви також можете виконати наступні дії:

  1. Експорт обох таблиць (.dbf)

  2. Відкрити таблицю Y у відмінній формі.

  3. Відкрити таблицю X у відмінній формі.

  4. Скопіюйте та вставте дані з таблиці X у таблицю Y, переконуючись, що ви копіюєте лише значення, а не форму.

  5. Тепер у вас є нова таблиця, що містить дані з обох таблиць із відповідними типами даних.

6. Імпортуйте цю таблицю в ArcMap


0

Ніхто не згадав набір інструментів рентгенівських інструментів для ArcGIS. Просто виконайте пошук у Google за "X-Ray ArcGIS". Існує кілька варіантів для кожної версії та платформи ArcGIS (ArcCatalog, ArcMap). Ось одна версія. Ось ще одна. Він підтримує багато функцій, пов’язаних з польовими та доменними, включаючи зміну типу поля, імені, псевдоніму, домену тощо в MS Excel та завантаження змін назад у GDB.

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