Більше

Використання% i% “.csv” в ArcPy для іменування вихідного файлу CSV?

Використання% i% “.csv” в ArcPy для іменування вихідного файлу CSV?


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

У FieldCalculator ми можемо використовувати% i% або% n%, щоб мати суфікс змінної - наприклад, якщо мій вихідний файл txt називається output.txt і створюється другий output.txt, це автоматично змінюється на output01.txt

Я хочу зробити те саме з ModelBuilder, але якщо я не можу використовувати% i%.

import arcpy, os from arcpy import env import os.path env.overwriteOutput = True #Enter FeatureClass path in dialogbuilder model fc = arcpy.GetParameterAsText (0) check = arcpy.GetParameterAsText (1) #Get FeatureClass name fcname. basename (fc) #define Output Directory outputTxtFilePath = "PATH" # Визначити ім'я файлу outputTxtFilename = "" + fcname +% i% + ". txt" # повний шлях до файлу outputTxtFile = outputTxtFilePath + outputTxtFilename # Створіть список полів за допомогою Поля функції ListFields = arcpy.ListFields (fc) #open csv file csv = open (outputTxtFile, 'w') #write описувати результати у файл txt csv.write (fc) для поля в полях: #create string txtStr = "Feldname: {0}  n Тип: {1}  n Länge {2} ". Format (field.name, field.type, field.length) + ' n' csv.write (txtStr) csv.close () #Open txt-файл, якщо позначено, якщо str (позначено) == 'true': os.system ('notepad' + outputTxtFile) else: exit

це працює нормально, якщо я видалю% i%, але тоді кожен файл перезаписується.


Ви можете додати функцію python, яка витягує будь-яке числове значення з визначеного імені вихідного текстового файлу і додає або присвоює йому 1:

def getValue (x): try: return ".join (i для i в x, якщо i.isdigit ()), крім ValueError: pass fcname = os.path.basename (fc) fcnameNoEXT = fcname.split ('.') [ 0] i = 1, якщо os.path.exists (fc): value = getValue (fcname) if value: newValue = i + int (value) outputTxtFilename = "" + fcnameNoEXT.replace (str (value), str ( newValue)) + ".txt" else: outputTxtFilename = "" + fcnameNoEXT + "{} .txt" .format (i)

Якщо клас вхідних даних або набір даних має невідому або невизначену систему координат, ви можете вказати систему координат вхідного набору даних за допомогою параметра Вхідна система координат. Це дозволяє вказати систему координат даних, не змінюючи вхідні дані (що може бути неможливим, якщо введення має формат лише для читання). Крім того, ви можете використовувати інструмент «Визначити проекцію», щоб назавжди призначити систему координат набору даних.

Покриття, покриття VPF, набори растрових даних та растрові каталоги не підтримуються як вхідні дані до цього інструменту. Використовуйте інструмент Project Raster для проектування наборів растрових даних.

Щоб спроектувати охоплення, використовуйте інструмент «Проект» на панелі інструментів «Покриття».

    Наприклад, географічне перетворення не потрібне при проектуванні з GCS_North_American_1983 на NAD_1983_UTM_Zone_12N, оскільки і вхідна, і вихідна системи координат мають дату NAD_1983. Однак проектування з GCS_North_American_1983 на WGS_1984_UTM_Zone_12N вимагає географічного перетворення, оскільки вхідна система координат використовує дату NAD_1983, тоді як вихідна система координат використовує дату WGS_1984.

Трансформації є двонаправленими. Наприклад, якщо перетворюєте дані з WGS 1984 в NAD 1927, ви можете вибрати перетворення під назвою NAD_1927_to_WGS_1984_3, і інструмент застосує його правильно.

Робоча область in_memory не підтримується як місце для запису вихідного набору даних.

  • Набір функцій, що містить мережевий набір даних: мережевий набір даних повинен бути відновлений
  • Набір об’єктів, що містить топологію: топологію слід перевірити ще раз

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

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

Класи об’єктів, які беруть участь у геометричній мережі, не можна проектувати самостійно - потрібно проектувати весь набір об’єктів, що містить мережу.

Багато інструментів геообробки обробляють налаштування середовища Output Coordinate System, і в багатьох робочих процесах ви можете використовувати цей параметр середовища замість інструмента Project. Наприклад, інструмент Union відзначає налаштування середовища Output Coordinate System, що означає, що ви можете об’єднати декілька класів об’єктів разом, всі вони знаходяться в іншій системі координат, і записати унізований вихід у клас об’єктів у зовсім іншій системі координат.

Запити на вибір та визначення шарів ігноруються цим інструментом - усі функції набору даних, на які посилається шар, будуть проектуватися. Щоб спроектувати лише вибрані функції, розгляньте можливість використання інструмента «Копіювати об’єкти» для створення тимчасового набору даних, який міститиме лише вибрані об’єкти, і використати цей проміжний набір даних як вхідні дані до інструменту «Проект».

Коли клас об’єктів у наборі даних об’єктів використовується як вхід, вихідні дані не можуть бути записані в той самий набір об’єктів. Це пов’язано з тим, що класи об’єктів у наборі об’єктів повинні мати однакову систему координат. У цьому випадку вихідний клас об’єкта буде записаний у базу геоданих, що містить набір об’єктів.

Коли параметр «Зберегти форму» встановлений, створюються вихідні функції, які точніше відображають їх справжнє прогнозоване місце. Зберегти форму особливо корисно в тих випадках, коли межа лінії або багатокутника оцифрована як довга пряма лінія з кількома вершинами. Якщо не встановити прапорець «Зберегти форму», проеціюються існуючі вершини вхідної лінії чи межі багатокутника, і результатом може бути функція, яка не точно розміщена в новій проекції. Коли встановлено прапорець "Зберегти форму" (з збереженням форми = "PRESERVE_SHAPE" у Python), додаткові вершини додаються до об'єкта перед проектуванням. Ці додаткові вершини зберігають спроектовану форму об’єкта. Параметр "Максимальне відхилення зміщення" визначає, скільки додаткових вершин додано, його значенням є максимальна відстань, яку може бути зміщено прогнозований об'єкт від його точного прогнозованого місця, як обчислює інструмент. Коли значення невелике, додається більше вершин. Виберіть значення, яке відповідає вашим потребам. Наприклад, якщо ваш прогнозований вихід призначений для загального невеликого картографічного відображення, може бути прийнятним велике відхилення. Якщо ваш прогнозований результат буде використаний для широкомасштабного аналізу малих площ, може знадобитися менший відхил.

Щоб виконати вертикальне перетворення, перевірте необов’язковий параметр Вертикальний у діалоговому вікні. За замовчуванням параметр "Вертикальний" вимкнено і вмикається лише тоді, коли вхідні та вихідні системи координат мають вертикальну систему координат (VCS), а вхідні координати класу характеристик мають z-значення. Крім того, у системі повинні бути встановлені додаткові дані (дані систем координат).

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


Параметри

Файли LAS або ZLAS, які будуть імпортовані в багатоточковий клас функцій. Якщо вказана папка, усі файли LAS, що містяться в ній, будуть імпортовані.

У діалоговому вікні інструменту папку також можна вказати як вхід, вибравши папку в Провіднику Windows і перетягнувши її у поле введення параметра.

Клас функцій, який буде створено.

Середня 2D-відстань між точками у вхідному файлі або файлах. Це може бути наближенням. Якщо зразки зразків проводились з різною щільністю, вкажіть менший інтервал. Значення потрібно вказувати в одиницях проекції вихідної системи координат.

Коди класифікації, що використовуються як фільтр запитів для точок даних LAS. Дійсні значення варіюються від 1 до 32. За замовчуванням фільтр не застосовується.

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

  • Усі повернення - Будь-яке повернення
  • 1-е повернення —1
  • 2-е повернення —2
  • 3-е повернення —3
  • 4-е повернення —4
  • 5-е повернення —5
  • 6-е повернення —6
  • 7-е повернення —7
  • 8-е повернення —8
  • Останнє повернення —Останнє повернення

Властивості точки LAS, значення яких будуть зберігатися у полях двійкового великого об'єкта (BLOB) у таблиці атрибутів виводу. Якщо отримані об’єкти братимуть участь у наборі даних місцевості, збережені атрибути можна використовувати для символізації місцевості. У стовпці Ім'я вказується назва поля, яке буде використовуватися для зберігання зазначених атрибутів. Підтримуються такі властивості LAS:

  • ІНТЕНСИВНІСТЬ - Інтенсивність
  • RETURN_NUMBER - Номер повернення
  • NUMBER_OF_RETURNS - Кількість повернень за імпульс
  • SCAN_DIRECTION_FLAG - Прапор напрямку сканування
  • EDGE_OF_FLIGHTLINE - край лінії польоту
  • КЛАСИФІКАЦІЯ - Класифікація
  • SCAN_ANGLE_RANK - Ранг кута сканування
  • FILE_MARKER - маркер файлу
  • USER_BIT_FIELD - Значення даних користувача
  • GPS_TIME - час GPS
  • COLOR_RED - Червона смуга
  • COLOR_GREEN - Зелена смуга
  • COLOR_BLUE - Синя смуга

Система координат вхідного файлу LAS.

Суфікс файлів, які будуть імпортовані із вхідної папки. Цей параметр необхідний, коли папку вказано як вхід.

Коефіцієнт, на який буде помножено z-значення. Зазвичай це використовується для перетворення z лінійних одиниць, щоб вони відповідали лінійним одиницям x, y. За замовчуванням 1, що залишає значення висоти без змін. Цей параметр недоступний, якщо просторове посилання вхідної поверхні має вихідну точку z із заданою лінійною одиницею.

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

  • Не встановлено прапорець - Тільки файли LAS, знайдені у папці вводу, будуть перетворені в багатоточкові функції. Це за замовчуванням.
  • Позначено - Усі файли LAS, що знаходяться в підкаталогах папки вводу, будуть перетворені на багатоточкові функції.

Файли LAS або ZLAS, які будуть імпортовані в багатоточковий клас функцій. Якщо вказана папка, усі файли LAS, що містяться в ній, будуть імпортовані.

У діалоговому вікні інструменту папку також можна вказати як вхід, вибравши папку в Провіднику Windows і перетягнувши її у поле введення параметра.

Клас функцій, який буде створено.

Середня 2D-відстань між точками у вхідному файлі або файлах. Це може бути наближенням. Якщо зразки зразків проводились з різною щільністю, вкажіть менший інтервал. Значення потрібно вказувати в одиницях проекції вихідної системи координат.

Коди класифікації, що використовуються як фільтр запитів для точок даних LAS. Дійсні значення варіюються від 1 до 32. За замовчуванням фільтр не застосовується.

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

  • ANY_RETURNS - Будь-які повернення
  • 1 — 1
  • 2 — 2
  • 3 — 3
  • 4 — 4
  • 5 — 5
  • 6 — 6
  • 7 — 7
  • 8 — 8
  • LAST_RETURNS - Останні повернення

Властивості точки LAS, значення яких будуть зберігатися у полях двійкового великого об'єкта (BLOB) у таблиці атрибутів виводу. Якщо отримані об’єкти братимуть участь у наборі даних місцевості, збережені атрибути можна використовувати для символізації місцевості. У стовпці Ім'я вказується назва поля, яке буде використовуватися для зберігання зазначених атрибутів. Підтримуються такі властивості LAS:

  • ІНТЕНСИВНІСТЬ - Інтенсивність
  • RETURN_NUMBER - Номер повернення
  • NUMBER_OF_RETURNS - Кількість повернень за імпульс
  • SCAN_DIRECTION_FLAG - Прапор напрямку сканування
  • EDGE_OF_FLIGHTLINE - край лінії польоту
  • КЛАСИФІКАЦІЯ - Класифікація
  • SCAN_ANGLE_RANK - Ранг кута сканування
  • FILE_MARKER - маркер файлу
  • USER_BIT_FIELD - Значення даних користувача
  • GPS_TIME - час GPS
  • COLOR_RED - Червона смуга
  • COLOR_GREEN - Зелена смуга
  • COLOR_BLUE - Синя смуга

Система координат вхідного файлу LAS.

Суфікс файлів, які будуть імпортовані із вхідної папки. Цей параметр необхідний, коли папку вказано як вхід.

Коефіцієнт, на який буде помножено z-значення. Зазвичай це використовується для перетворення z лінійних одиниць, щоб вони відповідали лінійним одиницям x, y. За замовчуванням 1, що залишає значення висоти без змін. Цей параметр недоступний, якщо просторове посилання вхідної поверхні має вихідну точку z із заданою лінійною одиницею.

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

  • NO_RECURSION - Тільки файли LAS, знайдені у папці вводу, будуть перетворені в багатоточкові функції. Це за замовчуванням.
  • РЕКУРСІЯ - Усі файли LAS, що знаходяться в підкаталогах вхідної папки, будуть перетворені на багатоточкові функції.

Зразок коду

Наступний зразок демонструє використання цього інструменту у вікні Python.

Наступний зразок демонструє використання цього інструменту в окремому сценарії Python.


Mdhntd

Чи можуть європейці в Європі вимагати захисту згідно з Декларацією ООН про права корінних народів?

Що означає німецьке слово & # 187Sandbagger & # 171?

Яку сучасну вогнепальну зброю повинен взяти мандрівник у часі, щоб її можна було легко відтворити для історичної цивілізації?

Найбезпечніший спосіб впоратись із тим, що хтось забув підтвердити свій рахунок?

Що таке перетворення Кравчука і як воно пов’язане з перетвореннями Фур’є?

Чи є супутники на геосинхронних, але не геостаціонарних орбітах?

Чому чорних супер ГМ мало чи немає?

Скасована в останню хвилину робоча поїздка означає, що я втрачу тисячі доларів на запланованих канікулах

Груба сила розподільного щита

"Je suis petite, moi?", Мета "moi"?

Проблема сортування "Замінити". Базовий, але переслідує мене

Я виявив помилку в чиємусь коді, опублікованому в Інтернеті: який протокол?

Найпростіший набір інструкцій, який має компілятор c ++ / C для написання емулятора?

Космічний корабель рухається зі швидкістю X одиниць на годину. Але щодо чого саме? Це залежить від орбіти? Як

Заблокований DOS-комп'ютер видавав звук при натисканні клавіші. Який механізм спричинив це?

Чи повинен я мати одну руку на дроселі під час запалювання двигуна?

Чи сказав Гітлер цю цитату про домашнє навчання?

Наскільки важливі настрій і почуття автора для написання оповідання?

Коли зникнуть останні однозначні докази людства?

Коли куля на мотузці коливається по колу, чи існує як доцентрова сила, так і сила натягу?

Що може зробити великі експедиції неефективними для вивчення території, сповненої небезпек та цінних ресурсів?

Arcpy 'Append_management' набагато повільніше, ніж ArcMap Tool?

Мережа має низьку продуктивність у SDE Поліпшення швидкості обробки сценаріїв Python (продуктивності)? Інструмент ArcGIS & # 8220Merge & # 8221 на arcpy повільніший, ніж при запуску з інтерфейсом ArcGIS Зміни не зберігаються на сервері ArcGIS із сценарію ArcPy? Масовий шар ArcPy GDB LoadRoute з ArcPy та OSM Дані - дуже повільно Чому більшість набагато повільніша, ніж середня у фокусній статистиці? Експортування растрового шару за допомогою & # 8220Export Raster Data & # 8221 vs Copy RasterArcpy Slow to Read Datasets from Connection (.sde) FileWriting ArcPy point geometries feature geometries from GeoJSON / WebOptimizing Field Update - Оновлення курсору, ArcPy

В основному у мене є сценарій, який захоплює дані веб-служби, аналізує їх, зберігає в посередницькому локальному fgdb, а потім додає ці дані до класу функцій в корпоративній gdb.

Частина сценарію, яка бере вічно, - це лише цей виклик всередині функції:

Від одного класу функцій у fgdb до іншого це блискавично

Від fgdb до бази геоданих підприємства це займає 19 хвилин. Незалежно від кількості рядків. 10 рядків, 100 рядків або 300 рядків займають 19 хвилин.

Я спробував ті самі точні дані за допомогою arcpy, а потім за допомогою ArcMap. ArcPy зайняв 19 хвилин, ArcMap - 1 секунду. (Для 138 записів). Вони були протестовані на одній машині.

Будь-яка причина, через яку це робиться?

Ви пробували шукати GIS SE, таке запитання виникає досить регулярно? Ось одна з можливих причин.

В основному у мене є сценарій, який захоплює дані веб-служби, аналізує їх, зберігає в посередницькому локальному fgdb, а потім додає ці дані до класу функцій в корпоративній gdb.

Частина сценарію, яка бере вічно, - це лише цей виклик всередині функції:

Від одного класу функцій у fgdb до іншого це блискавично

Від fgdb до бази геоданих підприємства це займає 19 хвилин. Незалежно від кількості рядків. 10 рядків, 100 рядків або 300 рядків займають 19 хвилин.

Я спробував ті самі точні дані за допомогою arcpy, а потім за допомогою ArcMap. ArcPy зайняв 19 хвилин, ArcMap - 1 секунду. (Для 138 записів). Вони були протестовані на одній машині.

Будь-яка причина, через яку це робиться?

Ви пробували шукати GIS SE, таке запитання виникає досить регулярно? Ось одна з можливих причин.

В основному у мене є сценарій, який захоплює дані веб-служби, аналізує їх, зберігає в посередницькому локальному fgdb, а потім додає ці дані до класу функцій в корпоративній gdb.

Частина сценарію, яка бере вічно, - це лише цей виклик всередині функції:

Від одного класу функцій у fgdb до іншого це блискавично

Від fgdb до бази геоданих підприємства це займає 19 хвилин. Незалежно від кількості рядків. 10 рядків, 100 рядків або 300 рядків займають 19 хвилин.

Я спробував ті самі точні дані за допомогою arcpy, а потім за допомогою ArcMap. ArcPy зайняв 19 хвилин, ArcMap - 1 секунду. (Для 138 записів). Вони були протестовані на одній машині.

Будь-яка причина, через яку це робиться?

В основному у мене є сценарій, який захоплює дані веб-служби, аналізує їх, зберігає в посередницькому локальному fgdb, а потім додає ці дані до класу функцій в корпоративній gdb.

Частина сценарію, яка бере вічно, - це лише цей виклик всередині функції:

Від одного класу функцій у fgdb до іншого це блискавично

Від fgdb до бази геоданих підприємства це займає 19 хвилин. Незалежно від кількості рядків. 10 рядків, 100 рядків або 300 рядків займають 19 хвилин.

Я спробував ті самі точні дані за допомогою arcpy, а потім за допомогою ArcMap. ArcPy зайняв 19 хвилин, ArcMap - 1 секунду. (Для 138 записів). Вони були протестовані на одній машині.

Будь-яка причина, через яку це робиться?

Ви пробували шукати GIS SE, таке запитання виникає досить регулярно? Ось одна з можливих причин.

Ви пробували шукати GIS SE, таке запитання виникає досить регулярно? Ось одна з можливих причин.

Ви пробували шукати GIS SE, таке запитання виникає досить регулярно? Ось одна з можливих причин.

Ви пробували шукати GIS SE, таке запитання виникає досить регулярно? Ось одна з можливих причин.


Процес: Видалити приєднання

Усі таблиці мають однакову назву, окрім номера FIPS.

Я часто виявляю, що конструктор моделей не може запуститись, як очікувалося, за цим сценарієм створення та розриву об’єднань, оскільки параметри, схоже, зависають від попередніх значень / налаштувань. Думає, що польові карти - це кошмар і ніколи не працює! Якби це був я, я б перейшов до середовища сценаріїв python, де ви маєте тотальний контроль параметрів параметрів над складними циклами. Ви викликаєте ті самі інструменти лише в середовищі сценаріїв.

Дякую за відповідь. Я перейшов до середовища сценаріїв, але отримую таку помилку: ExecuteError: Не вдалося виконати. Параметри недійсні. Значення не може бути класом функцій ПОМИЛКА 000840: Значення не є растровим шаром. ПОМИЛКА 000840: Значення не є рівнем растрового каталогу. ПОМИЛКА 000840: Значення не є шаром мозаїки.

Не можете насправді коментувати, не бачачи коду, пропонуєте внести зміни до свого питання та включити код?

Я часто виявляю, що конструктор моделей не працює належним чином за цим сценарієм створення та розриву об'єднань, оскільки параметри, схоже, зависають від попередніх значень / налаштувань. Думає, що польові карти - це кошмар і ніколи не працює! Якби це був я, я б перейшов до середовища сценаріїв python, де ви маєте тотальний контроль параметрів параметрів над складними циклами. Ви викликаєте ті самі інструменти лише в середовищі сценаріїв.

Дякую за відповідь. Я перейшов до середовища сценаріїв, але отримую таку помилку: ExecuteError: Не вдалося виконати. Параметри недійсні. Значення не може бути класом функцій ПОМИЛКА 000840: Значення не є растровим шаром. ПОМИЛКА 000840: Значення не є рівнем растрового каталогу. ПОМИЛКА 000840: Значення не є шаром мозаїки.

Не можете насправді коментувати, не бачачи коду, пропонуєте внести зміни до свого питання та включити код?

Я часто виявляю, що конструктор моделей не працює належним чином за цим сценарієм створення та розриву об'єднань, оскільки параметри, схоже, зависають від попередніх значень / налаштувань. Думає, що польові карти - це кошмар і ніколи не працює! Якби це був я, я б перейшов до середовища сценаріїв python, де ви маєте тотальний контроль параметрів параметрів над складними циклами. Ви викликаєте ті самі інструменти лише в середовищі сценаріїв.

Я часто виявляю, що конструктор моделей не працює належним чином за цим сценарієм створення та розриву об'єднань, оскільки параметри, схоже, зависають від попередніх значень / налаштувань. Думає, що польові карти - це кошмар і ніколи не працює! Якби це був я, я б перейшов до середовища сценаріїв python, де ви маєте тотальний контроль параметрів параметрів над складними циклами. Ви викликаєте ті самі інструменти лише в середовищі сценаріїв.

Дякую за відповідь. Я перейшов до середовища сценаріїв, але отримую таку помилку: ExecuteError: Не вдалося виконати. Параметри недійсні. Значення не може бути класом функцій ПОМИЛКА 000840: Значення не є растровим шаром. ПОМИЛКА 000840: Значення не є рівнем растрового каталогу. ПОМИЛКА 000840: Значення не є шаром мозаїки.

Дякую за відповідь. Я перейшов до середовища сценаріїв, але отримую таку помилку: ExecuteError: Не вдалося виконати. Параметри недійсні. Значення не може бути класом функцій ПОМИЛКА 000840: Значення не є растровим шаром. ПОМИЛКА 000840: Значення не є рівнем растрового каталогу. ПОМИЛКА 000840: Значення не є шаром мозаїки.

Не можете насправді коментувати, не бачачи коду, пропонуєте внести зміни до свого питання та включити код?

Не можете насправді коментувати, не бачачи коду, пропонуєте внести зміни до свого питання та включити код?