libopencad - разработка новой библиотеки поддержки DWG (GSoC'16)

Вопросы по программному обеспечению NextGIS: Web, Mobile, QGIS, Manager и многочисленным модулям
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

libopencad - разработка новой библиотеки поддержки DWG (GSoC'16)

Сообщение Дмитрий Барышников » 26 апр 2016, 20:22

Итак. Мы попали на GSoC с идеей разработки драйвера DWG в GDAL. Я буду менторить.
Чудес не обещаю. Пока планы скромные - реализация на чтение R13 - R15 базовых геометрий, послойность. Возможно успеем большее.
Уже читаем заголовок и основные секции.
Если есть идеи, что бы следовало сделать "по правильному", какие-то кейсы с которыми вы сталкивались на реальных данных и т.п. - делитесь. То что сейчас заложим, потом поменять будет сложно.

Boris
Гуру
Сообщения: 4205
Зарегистрирован: 10 апр 2006, 22:34
Репутация: 433
Откуда: Париж

Re: Google summer of code 2016

Сообщение Boris » 30 апр 2016, 20:38

Дмитрий Барышников писал(а):Итак. Мы попали на GSoC с идеей разработки драйвера DWG в GDAL. Я буду менторить.
Чудес не обещаю. Пока планы скромные - реализация на чтение R13 - R15 базовых геометрий, послойность. Возможно успеем большее.
Уже читаем заголовок и основные секции.
Если есть идеи, что бы следовало сделать "по правильному", какие-то кейсы с которыми вы сталкивались на реальных данных и т.п. - делитесь. То что сейчас заложим, потом поменять будет сложно.
Я сталкивался с Автокадо-поделками часто, и основная их проблема в том, что 98% чертежей создано апологетами CorelDraw: все нарисовано в 0 и с не соблюдением масштаба или искажением начальных величин (метры-мм или метры-дюймы). Так что, на мой взгляд, параметры, позволяющие сдвинуть начало координат и изменить масштаб, переназначить единицу измерения проекта - необходимы в опциях драйвера.

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Google summer of code 2016

Сообщение Дмитрий Барышников » 01 май 2016, 11:03

Я думаю это должно решаться стандартными средствами GDAL, через пользовательскую СК с установленными началом координат и масштабом. А с запихиванием всего в слой "0", тут ничего не поделаешь.
Вроде в ArcGIS как-то текстовые подписи через пересечение с геометриями преобразовывали в атрибуты. Или я ошибаюсь?

Boris
Гуру
Сообщения: 4205
Зарегистрирован: 10 апр 2006, 22:34
Репутация: 433
Откуда: Париж

Re: Google summer of code 2016

Сообщение Boris » 02 май 2016, 19:56

Дмитрий Барышников писал(а):Я думаю это должно решаться стандартными средствами GDAL, через пользовательскую СК с установленными началом координат и масштабом. А с запихиванием всего в слой "0", тут ничего не поделаешь.
Вроде в ArcGIS как-то текстовые подписи через пересечение с геометриями преобразовывали в атрибуты. Или я ошибаюсь?
1. начало координат я видел, а где там выставляется масштаб?
2. Я не понял вопроса про ArcGIS - он в продолжение какого то разговора и имееет отношение к ArcGIS или к DWG.
Советы к драйверу - это не я такой умный, а так делает FME, а оно, вроде как, - эталон перевода данных из формата в формат:
https://knowledge.safe.com/articles/272 ... ing-b.html
http://blog.websoftdev.com/fme/autocad- ... ta-and-fme
В моем понимании, в порядке убывания важности, вторым после бардака с привязкой идет возможность читать-писать атрибутивные данные - "Extended Entity Data", затем, третьим, - способ группировки данных в слои " Group Entities By" или сохранение этой информации в поля получаемых OGR-данных.
Естественно, вопрос с определением проекции, скрытой внутри DWG файла, - это отдельная задача, слабо связанная с собственно данными.

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Google summer of code 2016

Сообщение Дмитрий Барышников » 03 май 2016, 15:14

Boris писал(а): 1. начало координат я видел, а где там выставляется масштаб?
Например, вот http://www.gdal.org/classOGRSpatialRefe ... 28661e6729

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Google summer of code 2016

Сообщение Дмитрий Барышников » 24 май 2016, 10:37

Вопрос по DWG формату. Как принято, используется ли растры (например, ДДЗ), сколько картинок может быть вставлено в файл? Есть ли примеры, хоть с Ландсатом. На сколько это частый кейс, и нужен ли он в драйвере GDAL.

trir
Гуру
Сообщения: 5271
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1013
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Google summer of code 2016

Сообщение trir » 24 май 2016, 11:41

растры в dwg - это или городские планшеты, или ворованные спутниковые снимки. Но их может быть много, и могут перекрываться, а ещё с подрезкой
сколько картинок может быть вставлено в файл?
5-50, + фото :twisted:
А ещё куски съёмки могут быть внедрёнными ссылками или безымянными блоками
На сколько это частый кейс, и нужен ли он в драйвере GDAL.
наверно достаточно сделать файл привязки

Boris
Гуру
Сообщения: 4205
Зарегистрирован: 10 апр 2006, 22:34
Репутация: 433
Откуда: Париж

Re: Google summer of code 2016

Сообщение Boris » 24 май 2016, 18:42

Дмитрий Барышников писал(а):Вопрос по DWG формату. Как принято, используется ли растры (например, ДДЗ), сколько картинок может быть вставлено в файл? Есть ли примеры, хоть с Ландсатом. На сколько это частый кейс, и нужен ли он в драйвере GDAL.
Ну, если вы научите драйвер писать в DWG, это будет совсем обалдеть. Стандартный КАД файлы привязки читать не умеет, но может наследовать знание о привязке от разных расширений КАДа.

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Google summer of code 2016

Сообщение Дмитрий Барышников » 24 май 2016, 22:25

Boris писал(а): Ну, если вы научите драйвер писать в DWG, это будет совсем обалдеть.
Пока только чтение и даже не всех форматов. Работы многовато.

А можете примеры файлов с растрами подкинуть. Желательно в DWG R2000 (ACAD1015). Было бы неплохо что бы векторный слой присутствовал. На выходе должно получиться, что бы в QGIS можно было открыть такой файл и получить и растр и вектор, которые должны ложиться друг на друга.

sandyre
Новоприбывший
Сообщения: 5
Зарегистрирован: 11 мар 2016, 14:43
Репутация: 9

Re: Google summer of code 2016

Сообщение sandyre » 26 май 2016, 21:12

[delete]
Последний раз редактировалось sandyre 26 май 2016, 21:14, всего редактировалось 1 раз.
sun and dire

sandyre
Новоприбывший
Сообщения: 5
Зарегистрирован: 11 мар 2016, 14:43
Репутация: 9

Re: Google summer of code 2016

Сообщение sandyre » 26 май 2016, 21:12

Здравствуйте. Я слабо знаком с ACAD, однако держа под рукой спецификацию по DWG, и непосредственно ACAD появился ряд вопросов касательно видов геометрий (объектов) которые есть в ACAD. Более подробно - https://github.com/sandyre/libopencad/w ... geometries здесь. Там есть весь список геометрий, который я нашел, если что упустил - попрошу дополнить (в лс, или здесь).
sun and dire

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: libopencad - разработка новой библиотеки поддержки DWG (

Сообщение Максим Дубинин » 08 июл 2016, 15:03

дела с библиотекой идут и уже можно довольно много всего, например поддерживаются растры (спасибо Борису), поддерживаются осмысленные названия стилей. Библиотека уже лучше дефолтной поддержки DWG в ArcGIS, вот пара картинок:

помогите sandyre с тестовыми примерами, будет еще лучше

Сравнение ArcGIS и QGIS (libopencad):
Изображение


Открытие одного и того же файла в AutoCAD и QGIS (libopencad):
Изображение
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
ANAT01
Активный участник
Сообщения: 196
Зарегистрирован: 18 апр 2012, 14:41
Репутация: 57

Re: libopencad - разработка новой библиотеки поддержки DWG (

Сообщение ANAT01 » 08 июл 2016, 16:55

Интересует вопрос с обработкой блоков.
Так например если открывать блок, то по логике он должен будет отображаться в виде примитивов из которых он состоит, чтобы картинка qgis соответствовала cad. И если этого не произойдет, то человек не поймет, что за точка на карте.
С другой стороны блоки часто бывают типовыми объектами (канализац.люк, дерево, столб) условно зависящими от масштаба карты, которые следовало бы отображать в qgis в виде точек (ну и стилями подставлять нужный символ).
Таким образов в разных ситуациях требуется разный подход к отображению блоков.
Думаю это должно быть опциональной возможностью
упячка11111адинадинадин!!!!11

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: libopencad - разработка новой библиотеки поддержки DWG (

Сообщение Дмитрий Барышников » 09 июл 2016, 20:51

Нужны примеры таких файлов. Тогда можно будет придумать, что с ними делать. Есть openoptions в GDAL. Пока там только способ открытия (все читать или оптимизированное быстрое чтение). Можно через этот параметр управлять обработкой блоков при открытии файла.

По GSoC остался месяц, главная задача - привести текущее состояние библиотеки и драйвера к такому виду, что бы было принято в транк GDAL. Но постараемся с блоками тоже успеть.

Донецков
Гуру
Сообщения: 3058
Зарегистрирован: 19 май 2010, 19:44
Репутация: 189

libopencad - разработка новой библиотеки поддержки DWG (GSoC

Сообщение Донецков » 13 июл 2016, 10:22

Какие примеры файлов в dwg нужны, с какими примитивами и т.п. ? По возможности пришлю ...

Ответить

Вернуться в «NextGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя