Більше

Форматування виразу SQL для засобу обчислення поля (управління)?


Я намагаюся взяти перепис населення та обчислити відсоток населення за кожним переписом у полі (Populati_2). Для цього я створюю нове поле із загальною сумою населення (поп).

Щоб отримати відсоток, я використовую наступний вираз на arcgis[Populati_2] / [Поп] * 100. Це чудово працює в arcgis, але коли я використовую його для обчислення управління полями або python, це просто не працює.

Я не знаю, як форматувати вираз, я перепробував кожну комбінацію, і вона просто не працює.

Ось частина сценарію:

arcpy.AddField_management (r "Результати  popjoin.dbf", "Pop", "LONG", "", "", "5") arcpy.AddField_management (r "Результати  popjoin.dbf", "Pop2", "DOUBLE "," "," "," 5 ") arcpy.CalculateField_management (r" Результати  popjoin.dbf "," Pop ", summed_total) arcpy.CalculateField_management (r" Результати  popjoin.dbf "," Pop2 "," Populati_2 ] / [Поп] * 100 ")

Це дає мені помилки, але наступне не дає мені помилок, але я отримую 0 у кожному рядку замість розрахунку.

вираз = "! Populati_2! /! Поп! * 100"

arcpy.CalculateField_management (r "Результати  popjoin.dbf", "Pop2", вираз, "PYTHON_9.3")

Як ви можете прочитати в командах, будьте обережні, що таке VBS і що а Python команда / вираз.

fc = "ім'я_файла" # http://gis.stackexchange.com/a/82251/53268 summed_total = 0 з arcpy.da.SearchCursor (fc, "Populati_2") як курсор: для рядка в курсорі: summed_total = summed_total + row [0] arcpy.AddField_management (fc, "Pop", "LONG", "", "", "5") arcpy.CalculateField_management (fc, "Pop", summed_total) arcpy.AddField_management (fc, "Pop2", " ДВОЙКИ "," "," "," 5 ") arcpy.CalculateField_management (fc," Pop2 ","! Populati_2! /! Pop! * 100 "," PYTHON "," # ")

Якщо у вас є проблеми з виразом, ви завжди можете використовувати поле обчислення полів для створення свого виразу. Подивіться свій старий результат вГеообробка -> Результати

Подвійним клацанням на Обчислити поле Ви можете відкрити панель інструментів. Тут ви можете використовувати конструктор виразів (переконайтесь, що ви встановили Python як парсер):


Якщо ви не впевнені у синтаксисі виразу, спробуйте наступне:

  1. Створіть модуль у ModuleBuilder, додайте інструмент «Обчислити поле», визначте всі параметри та запустіть модель.
  2. Якщо він успішно працює, експортуйте модель Файл> Експортувати в скрипт python
  3. Використовуйте синтаксис виразу python з експортованого .py з кроку 2 у ваш оператор обчислення поля python