При подготовке данных для моделирования весьма часто возникает необходимость в конвертации отметок рельефа из геоподосновы, сохраненной в формате Autocad DWG, в табличный вид (типа X, Y, Z) для того, чтоб скормить эти данные какому-нибудь интерполятору (Surfer или встроенный в PmWin “Field Interpolator”).
Я
почти уверен точно знаю, что эта задача может быть легко и быстро решена с помощью самого Autocad — достаточно запустить
соответствующую программу на LISP-е и радоваться жизни. К сожалению, я LISP-а не знаю, да и вообще не являюсь большим специалистом в автокаде.
В современных версиях автокада эта проблема решается еще проще: через инструмент, расположенный в пункте меню
Tools\Data Extraction. Инструмент довольно мощный, но в нестандартных случаях возможно придется повозиться.
Но проблему как-то надо решать. Я предлагаю использовать для этого MapInfo (согласен, для кого-то это выглядит сменой шила на мыло). Далее по пунктам:
- Конвертируем слой с отметками (желательно, чтоб слой содержал только отметки в текстовом виде, без самих точек) из формата Autocad DWG в формат MapInfo TAB (с помощью встроенного в MapInfo мини-приложения Universal Translator).
- Подчищаем полученную таблицу от нетекстовых элементов: это можно сделать несколькими способами, наиболее удобный и быстрый — мини-приложение MapCad, но можно и с помощью Query Select и функции ObjectInfo(obj, 1), но там придется сначала создать дополнительный столбец в таблицу, занести него результат выполнения функции ObjectInfo(obj, 1), а уж потом делать Query Select по этому столбцу, выбирая значения, отличные от 10 (а 10 — это как раз текстовые).
- Еще разок запускаем Update Column (создайте новый столбец с типом float или смените тип существующего столбца) с той же функцией, но с другими параметрами: ObjectInfo(obj, 3). Если все сделано правильно, то в вашей таблице появится столбец типа float с отметками рельефа.
- Запускаем мини-приложение Coordinate Extractor: в таблице теперь будут столбцы с координатами центра текстовой подписи отметки рельефа. Вот тут важно отметить явный недостаток рассматриваемого метода: наши точки будут немного смещены относительно реальных отметок — ровно на столько, на сколько отличаются координаты середины метки от координат точки замера. Если вы страдаете перфекционизмом, то эту проблему можно решить с помощью простейших математических операций со свежеполученными координатами.
- Запускаем Table/Create Points, если хотим заменить тектовые метки на точки (а уж сами метки пусть MapInfo своими силами рисует, благо соответствующий столбец в таблице уже есть).
- Экспортируем полученную таблицу в нужный текстовый формат (txt или csv).
Метода только выглядит громоздко, на самом же деле, у меня уходит на все эти действия не больше минуты — главное не сбиваться и соблюдать порядок действий.