Как объединить шейп файлы в один

Обновлено: 05.07.2024

Ну, собственно вопрос в названии темы. Но если точнее, то, как объединять кривые в 2013 версии?

Администратор 3D галереи

да и вообще там хорошие контрольки (если тебе нужно для этого.)

Владимир Забелин

Активный участник
"говорят, в Москве кур доят.."
структура DAG - это один из краеугольных камней ядра Maya. с самой первой версии. и команда parent -shape работает одинаково во всех версиях майа.
надо поменьше слушать, что говорят, и хоть раз не полениться и указательным пальцем правой руки дотянуться до клавиши F1

Александр Чернега

Знаток

В тот то и дело, посмотрел я в хелпе, а там ничего. Описываются флаги МEL кода, которые делают обычный parent(рис1). А нужно, что бы несколько кривых сливались (отображались в оутлайнере) в одну.

В 2011-ой, по адресу C:\Program Files\Autodesk\Maya2011\devkit\plug-ins, был файл
multiCurveNode.mel. В новых версиях его убрали.

В 2014-ой, такое можно провернуть способом показанным на видео в первом посте.

Направлять незнающих на путь истинный, это конечно дело нужное! Но благо есть люди, отвечающие по существу.

Вложения

3219345.jpg

Владимир Забелин

Активный участник

первый класс средней школы. урок чтения для специалистов в области компьютерной графики:
1. открываем программу Maya
2. выбираем пункт меню help>MEL command reference
3. ищем команду parent.
4.читаем глазами головы

parent [-absolute] [-addObject] [-noConnections] [-relative] [-removeObject] [-shape] [-world] [dagObject. ] [dagObject]

5.думаем мозгом черепной коробки и обнаруживаем, что флаг -shape в описании команды все-таки присутствует.
6. героическим усилием глазной мышцы ниже по тексту ищем описание этого флага

The parent command usually only operates on transforms. Using this flags allows a shape that is specified to be directly parented under the given transform. This is used to instance a shape node. (ie. "parent -add -shape" is equivalent to the "instance" command). This flag is primarily used by the file format.

7. нечеловеческим напряжением мысли читаем примеры использования команды внизу.
8. думаем мозгом головы и пальцами рук на пишущей машинке набираем что-то типа

9. если вы сломались не дойдя до пункта 9, то лучше пока не поздно переквалифицироваться в управдомы.
Активный участник
Владимир, все намного проще и уже показано в видео из первого поста.
Просто человек не внимателен.

Владимир Забелин

Активный участник
Активный участник
Я имел ввиду то, что это делается и без скрипта
1) рисуем сколько угодно кривых
2) создаем пустую группу.
3) выделяем кривые и группу (в последнюю очередь)
4) parent -s -r;
5) наслаждаемся результатом.

Владимир Забелин

Активный участник
zka, вы в этом смысле.
ну, в принципе, да, только нужно не забыть сначала отресетить трансформации кривых, выделять именнно шейпы кривых, а потом удалять оставшийся "мусор" в виде пустых трансформов. но Вы правы, вся эта суперсекретная информация легко извлекается из документации, было бы желание

Александр Чернега

Знаток

Да zka, признаю, в этом был не прав!
Просто после проделывания всех этих пунктов, нужно было отключить отображение Шейпов. Тогда бы все скомбайненые кривые, отображались в виде одной.
Но как это не странно, я все равно не жалею что не разобрался сразу и задал этот вопрос! Так как получил наводку на скрипт с уже готовой кучей манипуляторов и еще дополнительными возможностями. А так бы каждый раз мудохался с созданием пустых групп, объединением, последующим удалением нод от соединенных кривых и т.д.

Владимир Забелин, в хелп я таки заглядывал. Но там же не все так просто. Нельзя написать parent и прилепить к нему –combine или –color (с последующими настройками). Нужно создавать переменные, массивы, делать циклы. В общем получается нехилый код. Так что не совсем верно писать "нужно всего лишь нажать на кнопку". Это то же что и на вопрос "как сделать пост обработку", ответить - "нужно всего лишь дважды щелкнуть по файлу Nuke.exe (а там уже дело нескольких нод)". Познания у меня в Меле на уровне начинающего любителя. И пока хотя бы плотно-поверхностно не вкурю в анимацию (и все с ней связанное), не буду их расширять. Так что вот и лажу по форумам, попрошайничая

Skif, шикарный скрипт, но был замечен один существенный баг (да и пару вопросов возникло). Что бы не засорять форум, опиши это все на странице скрипта.

Привет! Обращаюсь с еще одной просьбой по автоматизации.

Задача объединить в один шейп-файл множество отдельных файлов (*.shp) находящиеся в одной ветке дерева папок. В моем случае в наличии файлы только одного типа - линии.

ArcGIS10 или открытые инструменты. Спасибо.

UPD: добавил в название темы "подпапки"

Последний раз редактировалось oleg 01 авг 2011, 22:43, всего редактировалось 1 раз. Репутация: 528 Ваше звание: Author Контактная информация: QGIS: Вектор - Управление данными - Объединение shape-файлов пробовали? Spatial is now, more than ever, just another column- The Geometry Column. Репутация: 731 Ваше звание: NextGIS Откуда: Москва Контактная информация: Репутация: 494 Ваше звание: хрюкало Откуда: Санкт-Петербург Контактная информация: есть такая надстройка к Арке ET GeoWizards там тоже мердж, вроде работает даже более корректно, чем родной арковский Репутация: 15 Контактная информация:

Спасибо! Начал пробовать с Q-GIS.

В Q-GIS возможен выбор файлов только из одной папки. В моём случае файлы в разных подпапках но имеют общую верхнюю папку. Теоретически можно скопировать в одну используя маску по расширениям шейп-файлов, но это изначально для меня менее удобный путь, пока цель на автоматизацию и поиска шейпов в под-папочках.

C помошью Q-GIS не получилось собрать файлы полученные при конвертации с помощью скрипта из этой темы - gdal/phyton/csv2shp (пример в аттаче). Возможно есть какие-то аномалии с точки зрения fTools в структуре shp.

An error has occured while executing Python code:

Traceback (most recent call last):
File "C:\OSGeo4W\apps\qgis\python\plugins\fTools\tools\doMergeShapes.py", line 116, in accept
self.progressFiles.setRange( 0, self.inputFiles.count() )
AttributeError: 'NoneType' object has no attribute 'count'

Python version:
2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)]

QGIS version:
1.7.0-Wroclaw Wroclaw, 63ecdd7

/.qgis/python', 'C:\\Documents and Settings\\oseliverstov\\.qgis\\python\\plugins\\surveytools\\tools', 'C:\\OSGeo4W\\apps\\qgis\\python\\plugins\\fTools\\tools']

Несколько лет назад в Esri были разработаны три основных формата данных для хранения географической информации – покрытия, шейп-файлы и базы геоданных. Шейп-файлы были разработаны как простой формат для хранения географической и атрибутивной информации. В силу их простоты, шейп-файлы стали популярным форматом для обмена данными. Хотя шейп-файлы просты и удобны в работе, они имеют некоторые ограничения, которые отсутствуют в базах геоданных. При использовании шейп-файлов, эти ограничения следует учитывать. В целом,

Эти и другие проблемы делают шейп-файлы слабо пригодными для активной работы с базами данных – они не соответствуют современным способам создания, редактирования, поддержки версий и архивирования.

Когда следует использовать шейп-файл?

  • При экспорте данных для работы со сторонними (не- Esri ) программными приложениями
  • При экспорте данных для работы в ArcView GIS 3 или ArcInfo Workstation
  • Если необходимо быстро записать простые объекты и атрибуты, например для сервисов геообработки (однако необходимо помнить об ограничениях, которые описаны ниже.)

Когда не следует использовать шейп-файл?

С некоторыми исключениями, описанными ниже, шейп-файлы подходят для хранения простой геометрии пространственных объектов. Однако шейп-файлы имеют серьезные проблемы, связанные с хранением атрибутов. Например, они не могут хранить значения NULL, округлять числа, имеют ограниченную поддержку символов Unicode, не могут хранить поля, имена которых длиннее 10 знаков, и не могут хранить дату и время в одном поле. Это только основные ограничения. Кроме того, они не поддерживают возможности, присутствующие в базах геоданных, например, работу с доменами и подтипами. Поэтому, не следует использовать шейп-файлы, если вы хотите хранить сложные атрибуты и пользоваться возможностями, предоставляемыми базами геоданных.

Компоненты шейп-файлов и расширения файлов

Шейп-файлы хранятся в трех или более файлах, которые имеют одинаковый префикс и находятся в одной папке (рабочей области шейп-файлов). Отдельные файлы можно увидеть с помощью Проводника Windows, в ArcCatalog они не отображаются.

Основной файл, в котором хранится геометрия объектов. В этом файле не хранятся атрибуты – только геометрия.

Парный к .shp файл, в котором хранятся местоположения отдельных ID пространственных объектов, находящихся в файле .shp.

Таблица dBASE, в которой находятся атрибуты пространственных объектов.

Файлы, в которых хранится пространственный индекс объектов.

Атрибутивный индекс, создающийся в ArcCatalog для каждой таблицы dBASE.

Индекс геокодирования для чтения-записи шейп-файлов.

Файл, в котором хранится информация о системе координат.

Метаданные для ArcGIS; хранит информацию о шейп-файле.

Ограничения по геометрии

  • Каждый файл-компонент шейп-файла не может быть более 2 GB, что составляет примерно 70 миллионов точечных объектов. Количество линейных или полигональных объектов, которые могут содержаться в шейп-файле, зависит от числа вершин этих объектов (вершина является эквивалентом точки).
  • В шейп-файлах не хранится значение допуска x,y, как в классах объектов базы геоданных. Допуск по x,y – это минимальное расстояние между координатами, ближе которого они будут считаться идентичными. Допуск используется при оценке взаимосвязей между пространственными объектами одного класса объектов, или между объектами нескольких различных классов. Он активно используется при редактировании объектов. Если вы выполняете любую операцию, включающую сравнение объектов, например, используете инструменты группы Наложение (Overlay), инструмент Вырезать (Clip) , инструмент Выбрать в слое по расположению (Select Layer By Location) , или любой инструмент, который использует в качестве входных данных два или более класса пространственных объектов, следует использовать класс объектов базы геоданных (который имеет допуск по x,y) вместо шейп-файлов.
  • Шейп-файл может занимать от трех до пяти раз больше места, по сравнению с файловой базой геоданных или SDE, поскольку использует иные методы сжатия.
  • Шейп-файлы поддерживают объекты-мультипатчи, но не поддерживают следующие возможности мультипатчей:
    • Координаты текстур
    • Текстуры и частичное окрашивание
    • Нормали освещенности

    Ограничения атрибутов

    • В отличие от других форматов, шейп-файл хранит числовые атрибуты в символьном, а не бинарном формате. Для реальных числовых значений (например, с десятичными знаками), это может привести к ошибкам из-за округления. Это ограничение касается только атрибутов, и не относится к хранению координат в столбце shape. В следующей таблице представлены значения ширины полей для каждого типа атрибутов:
    Примечание:

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

    Представление нулевого значения

    Шейп-файлы не поддерживают хранение пустых (Null) значений. Если класс объектов, содержащий значения NULL, конвертировать в шейп-файлы или конвертировать таблицу базы данных в файл dBASE, значения NULL будут заменены на значения, приведенные в следующей таблице.

    Внимание:

    При использовании шейп-файлов или файлов dBASE ( .dbf ) в качестве входных данных для инструментов ArcGIS не может определить, представляют ли значения полей значение NULL или допустимое значение.

    Число – если инструмент требует NULL, бесконечность или NaN (Не Число) в выходном значении.

    -1.7976931348623158e+308 (IEEE стандарт для максимального отрицательного значения)

    Число (все остальные инструменты геообработки).

    " " (пусто – без пробела)

    Хранится как ноль, но отображается как <null>

    Неподдерживаемые функции

    Шейп-файлы не имеют дополнительных типов данных, как другие рабочие области или классы объектов. При конвертации в шейп-файл класса объектов базы геоданных, или набора данных другого формата, следующие элементы будут потеряны:

    • Подтипы
    • Атрибутивные домены
    • Геометрические сети
    • Топологии
    • Аннотация

    Shape length и shape area

    Для классов линейных и полигональных объектов, хранящихся в базе геоданных, ArcGIS вычисляет и хранит поля shape_length и shape_area ; т.е., когда вы редактируете форму линии или полигона в классе объектов базу геоданных, значения полей shape_length и shape_area вычисляются заново с учетом изменений. Но для шейп-файлов этого не происходит. Даже если шейп-файл содержит поле shape_area или shape_leng , они не будут обновляться при изменении шейп-файла.

    Шейп-файлы и геообработка

    Любой инструмент геообработки, выходными данными которого является класс пространственных объектов, позволяет вам выбрать в качестве выходного набора данных шейп-файл или класс объектов базы геоданных. Точно так же, если выходными данными инструмента является таблица, вы можете выбрать таблицу базы геоданных или файл dBASE ( .dbf ). При выборе формата выходных данных, вы должны понимать возможные проблемы, которые возникают если в качестве входных данных задан класс объектов базы геоданных, а для выходных данных определен шейп-файл.

    Инструмент геообработки создает выходной класс объектов или таблицу автоматически. Автоматически создаваемые выходные данные базируются на ряде факторов, как описано в разделе Использование параметров среды Текущая и Временная рабочие области. Если в качестве временной рабочей области задана системная папка, а не база геоданных, автоматически создаваемый выходной класс объектов будет шейп-файлом или файлом dBASE (см. рис. ниже).

    Если в качестве временной рабочей области будет задана файловая база геоданных, автоматически создаваемый выходной класс объектов будет классом объектов этой базы геоданных, а не шейп-файлом или таблицей .dbf (см. рис. ниже).

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

    Пространственная привязка и шейп-файлы

    В разделе Пространственная привязка и геообработка обсуждается важность определения свойств пространственной привязки при использовании инструментов геообработки. Несколько параметров среды геообработки контролируют пространственную привязку данных при работе инструментов геообработки. Следующие параметры не поддерживаются, если в качестве выходных данных инструмента задан шейп-файл:

    За годы своего существования Esri разработала три основных формата данных для хранения географической информации — покрытия, шейп-файлы и базы геоданных. Шейп-файлы были разработаны как простой, нетопологический формат для хранения географической и атрибутивной информации. В силу их простоты, шейп-файлы стали популярным форматом для обмена данными. Хотя шейп-файлы просты и удобны в работе, они имеют некоторые ограничения, которые отсутствуют в базах геоданных. При использовании шейп-файлов, эти ограничения следует учитывать. В целом,

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

    Когда следует использовать шейп-файл?

    • При экспорте данных для работы с не- Esri -приложениями
    • При экспорте данных для работы в ArcView GIS 3 или ArcInfo Workstation
    • Если необходимо быстро записать простые объекты и атрибуты, например, для сервисов геообработки (однако, необходимо помнить об ограничения, которые описаны ниже.)

    Когда не следует использовать шейп-файл?

    С некоторыми исключениями, описанными ниже, шейп-файлы подходят для хранения простой геометрии пространственных объектов. Однако, шейп-файлы имеют серьезные проблемы, связанные с хранением атрибутов. Например, они не могут хранить значения NULL, округлять числа, имеют ограниченную поддержку символов Unicode, не могут хранить поля, имена которых длиннее 10 знаков, и не могут хранить дату и время в одном поле. Это только основные ограничения. Кроме того, они не поддерживают возможности, присутствующие в базах геоданных, например, работу с доменами и подтипами. Поэтому, не следует использовать шейп-файлы, если вы хотите хранить сложные атрибуты и пользоваться возможностями, предоставляемыми базами геоданных.

    Компоненты шейп-файлов и расширения файлов

    Шейп-файлы хранятся в трех или более файлах, которые имеют одинаковый префикс и находятся в одной папке (рабочей области шейп-файлов). Отдельные файлы можно увидеть с помощью Проводника Windows, в ArcCatalog они не отображаются.

    Основной файл, в котором хранится геометрия объектов. В этом файле не хранятся атрибуты - только геометрия.

    Парный к .shp файл, в котором хранятся местоположения отдельных ID пространственных объектов, находящихся в файле .shp.

    Таблица dBASE, в которой находятся атрибуты пространственных объектов.

    Файлы, в которых хранится пространственный индекс объектов.

    Атрибутивный индекс, создающийся в ArcCatalog для каждой таблицы dBASE.

    Индекс геокодирования для чтения-записи шейп-файлов.

    Файл, в котором хранится информация о системе координат.

    Метаданные для ArcGIS; хранит информацию о шейп-файле.

    Ограничения по геометрии

    • Каждый файл-компонент шейп-файла не может быть более 2 GB, что составляет примерно 70 миллионов точечных объектов. Количество линейных или полигональных объектов, которые могут содержаться в шейп-файле, зависит от числа вершин этих объектов (вершина является эквивалентом точки).
    • В шейп-файлах не хранится значение допуска x,y, как в классах объектов базы геоданных. Допуск по x,y это минимальное расстояние между координатами, прежде чем они будут считаться равными. Допуск используется при оценке взаимосвязей между пространственными объектами одного класса объектов, или между объектами нескольких различных классов. Он активно используется при редактировании объектов. Если вы выполняете любую операцию, включающую сравнение объектов, например, используете инструменты группы Наложение (Overlay), инструмент Вырезать (Clip) , инструмент Выбрать в слое по расположению (Select Layer By Location) , или любой инструмент, который использует в качестве входных данных два или более класса пространственных объектов, следует использовать класс объектов базы геоданных (который имеет допуск по x,y) вместо шейп-файлов.
    • Шейп-файл может занимать от трех до пяти раз больше места, по сравнению с файловой базой геоданных или SDE, поскольку использует иные методы сжатия.
    • Шейп-файлы поддерживают объекты мультипатч, но не поддерживают следующие возможности мультипатч:
      • Координаты текстур
      • Текстуры и частичное окрашивание
      • Нормали освещенности

      Ограничения атрибутов

      • В отличие от других форматов, шейп-файл хранит числовые атрибуты в символьном, а не бинарном формате. Для реальных числовых значений (например, с десятичными знаками), это может привести к ошибкам из-за округления. Это ограничение касается только атрибутов, и не относится к хранению координат в столбце shape. В следующей таблице представлены значения ширины полей для каждого типа атрибутов:

      Тип данных базы геоданных

      Ширина полей dBASE (число символов).

      Короткое целое (Short Integer)

      Длинное целое (Long Integer)

      Число с плавающей точкой (Float)

      Число с плавающей точкой (Float)

      Двойной точности (Double)

      Число с плавающей точкой (Float)

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

      Представление нулевого значения

      Шейп-файлы не поддерживают хранение пустых (Null) значений. Если класс объектов, содержащий значения NULL, конвертировать в шейп-файлы или конвертировать таблицу базы данных в файл dBASE, значения NULL будут заменены на значения, приведенные в следующей таблице.

      При использовании шейп-файлов или файлов dBASE ( .dbf ) в качестве входных данных для инструментов ArcGIS не может определить, представляют ли значения полей значение NULL или допустимое значение.

      Тип данных, содержащий пустые значения

      Подстановка значений NULL

      Число — Если инструмент требует NULL, бесконечность или NaN (Не Число) в выходном значении.

      -1.7976931348623158e+308 (IEEE стандарт для максимального отрицательного значения)

      Число (все остальные инструменты геообработки).

      Хранится как ноль, но отображается "<null>"

      Неподдерживаемые функции

      Шейп-файлы не имеют дополнительных типов данных, как другие рабочие области или классы объектов. При конвертации в шейп-файл класса объектов базы геоданных, или набора данных другого формата, следующие элементы будут потеряны:

      • Подтипы
      • Атрибутивные домены
      • Геометрические сети
      • Топологии
      • Аннотации

      Шейп-файлы и геообработка

      Любой инструмент геообработки, выходными данными которого является класс пространственных объектов, позволяет вам выбрать в качестве выходного набора данных шейп-файл или класс объектов базы геоданных. Точно также, если выходными данными инструмента является таблица, вы можете выбрать таблицу базы геоданных или файл dBASE ( .dbf ). При выборе формата выходных данных, вы должны понимать возможные проблемы, которые возникают если в качестве входных данных задан класса объектов базы геоданных, а для выходных данных определен шейп-файл.

      Инструмент геообработки создает выходной класс объектов или таблицу автоматически. Автоматически создаваемый набор выходных данных строится на основе ряда факторов, определяемых настройками параметров среды, более подробно описанных в разделе: Использование параметров среды Текущая и Временная рабочие области. Если в качестве временной рабочей области задана системная папка, а не база геоданных, автоматически создаваемый выходной класс объектов будет шейп-файлом или файлом dBASE (см. рис. ниже).

      Если в качестве временной рабочей области будет задана файловая база геоданных, автоматически создаваемый выходной класс объектов будет классом объектов этой базы геоданных, а не шейп-файлом или таблицей .dbf (см. рис. ниже).

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

      Пространственная привязка и шейп-файлы

      В разделе Пространственная привязка и геообработка обсуждается важность определения свойств пространственной привязки при использовании инструментов геообработки. Несколько параметров среды геообработки контролируют пространственную привязку данных при работе инструментов геообработки. Следующие параметры НЕ поддерживаются, если в качестве выходных данных инструмента задан шейп-файл:

      Читайте также: